Summary

Binary control protocol for NEC NP901W / NP905 installation projectors over RS-232C (D-SUB 9P PC CONTROL) or wired LAN (RJ-45, TCP port 7142). Commands are fixed-length or variable-length hex frames with a model-specific ID2 byte, a trailing checksum (low byte of sum of preceding bytes), and a completion response. This spec covers power, input switching, picture/sound/onscreen mute, shutter, freeze, picture/volume/aspect adjustment, lens control and memory, lamp/filter/carbon-savings information, and PIP/edge-blending configuration.

Transport

protocols:
  - serial
  - tcp
addressing:
  port: 7142
serial:
  baud_rate: 9600  # source lists 115200/38400/19200/9600/4800; 9600 is one of the supported rates
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none
auth:
  type: none  # inferred: no auth procedure in source

Traits

- powerable       # inferred from power on/off commands
- routable        # inferred from input switch and audio select commands
- queryable       # inferred from numerous status request commands
- levelable       # inferred from picture/volume/aspect adjustment commands

Actions

- id: error_status_request
  label: Error Status Request
  kind: query
  command: "00 88 00 00 00 88"
  params: []

- id: power_on
  label: Power On
  kind: action
  command: "02 00 00 00 00 02"
  params: []

- id: power_off
  label: Power Off
  kind: action
  command: "02 01 00 00 00 03"
  params: []

- id: input_switch_change
  label: Input Switch Change
  kind: action
  command: "02 03 00 00 02 01 {DATA01} {CKS}"
  params:
    - name: DATA01
      type: hex
      description: Input terminal code (see Appendix "Supplementary Information by Command" in source)

- id: picture_mute_on
  label: Picture Mute On
  kind: action
  command: "02 10 00 00 00 12"
  params: []

- id: picture_mute_off
  label: Picture Mute Off
  kind: action
  command: "02 11 00 00 00 13"
  params: []

- id: sound_mute_on
  label: Sound Mute On
  kind: action
  command: "02 12 00 00 00 14"
  params: []

- id: sound_mute_off
  label: Sound Mute Off
  kind: action
  command: "02 13 00 00 00 15"
  params: []

- id: onscreen_mute_on
  label: Onscreen Mute On
  kind: action
  command: "02 14 00 00 00 16"
  params: []

- id: onscreen_mute_off
  label: Onscreen Mute Off
  kind: action
  command: "02 15 00 00 00 17"
  params: []

- id: picture_adjust
  label: Picture Adjust
  kind: action
  command: "03 10 00 00 05 {DATA01} FF {DATA02} {DATA03_lo} {DATA03_hi} {CKS}"
  params:
    - name: DATA01
      type: hex
      description: Adjustment target (00=Brightness, 01=Contrast, 02=Color, 03=Hue, 04=Sharpness)
    - name: DATA02
      type: hex
      description: Adjustment mode (00=absolute, 01=relative)
    - name: DATA03_lo
      type: hex
      description: Adjustment value, low-order 8 bits
    - name: DATA03_hi
      type: hex
      description: Adjustment value, high-order 8 bits

- id: volume_adjust
  label: Volume Adjust
  kind: action
  command: "03 10 00 00 05 05 00 {DATA01} {DATA02_lo} {DATA02_hi} {CKS}"
  params:
    - name: DATA01
      type: hex
      description: Adjustment mode (00=absolute, 01=relative)
    - name: DATA02_lo
      type: hex
      description: Adjustment value, low-order 8 bits
    - name: DATA02_hi
      type: hex
      description: Adjustment value, high-order 8 bits

- id: aspect_adjust
  label: Aspect Adjust
  kind: action
  command: "03 10 00 00 05 18 00 00 {DATA01} 00 {CKS}"
  params:
    - name: DATA01
      type: hex
      description: Aspect value (see Appendix "Supplementary Information by Command" in source)

- id: other_adjust
  label: Other Adjust (Lamp/Light Adjust)
  kind: action
  command: "03 10 00 00 05 96 FF {DATA03} {DATA04_lo} {DATA04_hi} {CKS}"
  params:
    - name: DATA03
      type: hex
      description: Adjustment mode (00=absolute, 01=relative)
    - name: DATA04_lo
      type: hex
      description: Adjustment value, low-order 8 bits
    - name: DATA04_hi
      type: hex
      description: Adjustment value, high-order 8 bits

- id: information_request
  label: Information Request
  kind: query
  command: "03 8A 00 00 00 8D"
  params: []

- id: filter_usage_information_request
  label: Filter Usage Information Request
  kind: query
  command: "03 95 00 00 00 98"
  params: []

- id: lamp_information_request_3
  label: Lamp Information Request 3
  kind: query
  command: "03 96 00 00 02 {DATA01} {DATA02} {CKS}"
  params:
    - name: DATA01
      type: hex
      description: Lamp number (00=Lamp 1, 01=Lamp 2)
    - name: DATA02
      type: hex
      description: Content (01=usage time seconds, 04=remaining life percent)

- id: carbon_savings_information_request
  label: Carbon Savings Information Request
  kind: query
  command: "03 9A 00 00 01 {DATA01} {CKS}"
  params:
    - name: DATA01
      type: hex
      description: Content (00=Total Carbon Savings, 01=Carbon Savings during operation)

- id: remote_key_code
  label: Remote Key Code
  kind: action
  command: "02 0F 00 00 02 {DATA01} {DATA02} {CKS}"
  params:
    - name: DATA01
      type: hex
      description: Key code low byte (see Key code list in source)
    - name: DATA02
      type: hex
      description: Key code high byte (00h for all listed keys)

- id: shutter_close
  label: Shutter Close
  kind: action
  command: "02 16 00 00 00 18"
  params: []

- id: shutter_open
  label: Shutter Open
  kind: action
  command: "02 17 00 00 00 19"
  params: []

- id: lens_control
  label: Lens Control
  kind: action
  command: "02 18 00 00 02 {DATA01} {DATA02} {CKS}"
  params:
    - name: DATA01
      type: hex
      description: Lens target (06h=Periphery Focus; see source for full list)
    - name: DATA02
      type: hex
      description: Drive direction/duration (00=Stop, 01-03,7F=plus; 81,FD-FF=minus)

- id: lens_control_request
  label: Lens Control Request
  kind: query
  command: "02 1C 00 00 02 {DATA01} 00 {CKS}"
  params:
    - name: DATA01
      type: hex
      description: Lens target identifier

- id: lens_control_2
  label: Lens Control 2
  kind: action
  command: "02 1D 00 00 04 {DATA01} {DATA02} {DATA03_lo} {DATA03_hi} {CKS}"
  params:
    - name: DATA01
      type: hex
      description: "FFh=Stop; otherwise reference Adjustment mode/value"
    - name: DATA02
      type: hex
      description: Adjustment mode (00=absolute, 02=relative)
    - name: DATA03_lo
      type: hex
      description: Adjustment value, low-order 8 bits
    - name: DATA03_hi
      type: hex
      description: Adjustment value, high-order 8 bits

- id: lens_memory_control_move
  label: Lens Memory MOVE
  kind: action
  command: "02 1E 00 00 01 00 {CKS}"
  params: []

- id: lens_memory_control_store
  label: Lens Memory STORE
  kind: action
  command: "02 1E 00 00 01 01 {CKS}"
  params: []

- id: lens_memory_control_reset
  label: Lens Memory RESET
  kind: action
  command: "02 1E 00 00 01 02 {CKS}"
  params: []

- id: reference_lens_memory_control_move
  label: Reference Lens Memory MOVE
  kind: action
  command: "02 1F 00 00 01 00 {CKS}"
  params: []

- id: reference_lens_memory_control_store
  label: Reference Lens Memory STORE
  kind: action
  command: "02 1F 00 00 01 01 {CKS}"
  params: []

- id: reference_lens_memory_control_reset
  label: Reference Lens Memory RESET
  kind: action
  command: "02 1F 00 00 01 02 {CKS}"
  params: []

- id: lens_memory_option_request
  label: Lens Memory Option Request
  kind: query
  command: "02 20 00 00 01 {DATA01} {CKS}"
  params:
    - name: DATA01
      type: hex
      description: "Option (00=LOAD BY SIGNAL, 01=FORCED MUTE)"

- id: lens_memory_option_set
  label: Lens Memory Option Set
  kind: action
  command: "02 21 00 00 02 {DATA01} {DATA02} {CKS}"
  params:
    - name: DATA01
      type: hex
      description: "Option (00=LOAD BY SIGNAL, 01=FORCED MUTE)"
    - name: DATA02
      type: hex
      description: "Setting value (00=OFF, 01=ON)"

- id: lens_information_request
  label: Lens Information Request
  kind: query
  command: "02 22 00 00 01 00 25"
  params: []

- id: lens_profile_set
  label: Lens Profile Set
  kind: action
  command: "02 27 00 00 01 {DATA01} {CKS}"
  params:
    - name: DATA01
      type: hex
      description: "Profile number (00=Profile 1, 01=Profile 2)"

- id: lens_profile_request
  label: Lens Profile Request
  kind: query
  command: "02 28 00 00 00 2A"
  params: []

- id: gain_parameter_request_3
  label: Gain Parameter Request 3
  kind: query
  command: "03 05 00 00 03 {DATA01} 00 00 {CKS}"
  params:
    - name: DATA01
      type: hex
      description: "Adjusted value name (00=Brightness, 01=Contrast, 02=Color, 03=Hue, 04=Sharpness, 05=Volume, 96=Lamp/Light)"

- id: setting_request
  label: Setting Request
  kind: query
  command: "00 85 00 00 01 00 86"
  params: []

- id: running_status_request
  label: Running Status Request
  kind: query
  command: "00 85 00 00 01 01 87"
  params: []

- id: input_status_request
  label: Input Status Request
  kind: query
  command: "00 85 00 00 01 02 88"
  params: []

- id: mute_status_request
  label: Mute Status Request
  kind: query
  command: "00 85 00 00 01 03 89"
  params: []

- id: model_name_request
  label: Model Name Request
  kind: query
  command: "00 85 00 00 01 04 8A"
  params: []

- id: cover_status_request
  label: Cover Status Request
  kind: query
  command: "00 85 00 00 01 05 8B"
  params: []

- id: freeze_control_on
  label: Freeze Control On
  kind: action
  command: "01 98 00 00 01 01 {CKS}"
  params: []

- id: freeze_control_off
  label: Freeze Control Off
  kind: action
  command: "01 98 00 00 01 02 {CKS}"
  params: []

- id: information_string_request
  label: Information String Request
  kind: query
  command: "00 D0 00 00 03 00 {DATA01} 01 {CKS}"
  params:
    - name: DATA01
      type: hex
      description: "Information type (03=Horizontal sync frequency, 04=Vertical sync frequency)"

- id: eco_mode_request
  label: Eco Mode Request
  kind: query
  command: "03 B0 00 00 01 07 BB"
  params: []

- id: lan_projector_name_request
  label: LAN Projector Name Request
  kind: query
  command: "03 B0 00 00 01 2C E0"
  params: []

- id: lan_mac_address_status_request_2
  label: LAN MAC Address Status Request 2
  kind: query
  command: "03 B0 00 00 02 9A 00 4F"
  params: []

- id: pip_picture_by_picture_request
  label: PIP / Picture By Picture Request
  kind: query
  command: "03 B0 00 00 02 C5 {DATA01} {CKS}"
  params:
    - name: DATA01
      type: hex
      description: "Parameter (00=MODE, 01=START POSITION, 02=SUB INPUT/SUB INPUT 1, 09=SUB INPUT 2, 0Ah=SUB INPUT 3)"

- id: edge_blending_mode_request
  label: Edge Blending Mode Request
  kind: query
  command: "03 B0 00 00 02 DF 00 94"
  params: []

- id: eco_mode_set
  label: Eco Mode Set
  kind: action
  command: "03 B1 00 00 02 07 {DATA01} {CKS}"
  params:
    - name: DATA01
      type: hex
      description: "Eco mode value (see Appendix in source)"

- id: lan_projector_name_set
  label: LAN Projector Name Set
  kind: action
  command: "03 B1 00 00 12 2C {DATA01..16} 00 {CKS}"
  params:
    - name: DATA01_to_DATA16
      type: string
      description: "Projector name (up to 16 bytes, NUL-terminated)"

- id: pip_picture_by_picture_set
  label: PIP / Picture By Picture Set
  kind: action
  command: "03 B1 00 00 03 C5 {DATA01} {DATA02} {CKS}"
  params:
    - name: DATA01
      type: hex
      description: "Parameter (00=MODE, 01=START POSITION, 02=SUB INPUT/SUB INPUT 1, 09=SUB INPUT 2, 0Ah=SUB INPUT 3)"
    - name: DATA02
      type: hex
      description: "Setting value (semantics depend on DATA01; see source)"

- id: edge_blending_mode_set
  label: Edge Blending Mode Set
  kind: action
  command: "03 B1 00 00 03 DF 00 {DATA01} {CKS}"
  params:
    - name: DATA01
      type: hex
      description: "Setting value (00=OFF, 01=ON)"

- id: base_model_type_request
  label: Base Model Type Request
  kind: query
  command: "00 BF 00 00 01 00 C0"
  params: []

- id: serial_number_request
  label: Serial Number Request
  kind: query
  command: "00 BF 00 00 02 01 06 C8"
  params: []

- id: basic_information_request
  label: Basic Information Request
  kind: query
  command: "00 BF 00 00 01 02 C2"
  params: []

- id: audio_select_set
  label: Audio Select Set
  kind: action
  command: "03 C9 00 00 03 09 {DATA01} {DATA02} {CKS}"
  params:
    - name: DATA01
      type: hex
      description: "Input terminal (see Appendix in source)"
    - name: DATA02
      type: hex
      description: "Setting value (00=specified terminal, 01=BNC, 02=COMPUTER)"

Feedbacks

- id: error_status
  type: bytes
  description: Error status bitfield (12 bytes), returned by 009. ERROR STATUS REQUEST.

- id: power_status
  type: enum
  values: [standby, power_on, cooling, standby_sleep, standby_error, standby_power_saving, network_standby, not_supported]
  description: Power / operation status returned by 078-2 RUNNING STATUS REQUEST (DATA03, DATA06) and 305-3 BASIC INFORMATION REQUEST (DATA01).

- id: picture_mute_state
  type: enum
  values: [off, on]
  description: Returned by 078-4 MUTE STATUS REQUEST (DATA01) and 305-3 BASIC INFORMATION REQUEST (DATA06).

- id: sound_mute_state
  type: enum
  values: [off, on]
  description: Returned by 078-4 MUTE STATUS REQUEST (DATA02) and 305-3 BASIC INFORMATION REQUEST (DATA07).

- id: onscreen_mute_state
  type: enum
  values: [off, on]
  description: Returned by 078-4 MUTE STATUS REQUEST (DATA03) and 305-3 BASIC INFORMATION REQUEST (DATA08).

- id: forced_onscreen_mute_state
  type: enum
  values: [off, on]
  description: Returned by 078-4 MUTE STATUS REQUEST (DATA04).

- id: freeze_state
  type: enum
  values: [off, on]
  description: Returned by 305-3 BASIC INFORMATION REQUEST (DATA09).

- id: cover_state
  type: enum
  values: [normal_cover_open, cover_closed]
  description: Returned by 078-6 COVER STATUS REQUEST (DATA01).

- id: lens_state
  type: bitfield
  description: Per-motor lens status returned by 053-7 LENS INFORMATION REQUEST (Lens memory, Zoom, Focus, Lens Shift H/V).

- id: current_input
  type: object
  description: Current input (Selection signal type 1/2) returned by 078-3 INPUT STATUS REQUEST and 305-3 BASIC INFORMATION REQUEST.

- id: projector_name
  type: string
  description: Returned by 097-45 LAN PROJECTOR NAME REQUEST (up to 17 bytes NUL-terminated).

- id: model_name
  type: string
  description: Returned by 078-5 MODEL NAME REQUEST (up to 32 bytes NUL-terminated).

- id: serial_number
  type: string
  description: Returned by 305-2 SERIAL NUMBER REQUEST (up to 16 bytes NUL-terminated).

- id: mac_address
  type: string
  description: Returned by 097-155 LAN MAC ADDRESS STATUS REQUEST2 (6 bytes).

- id: lamp_usage_time_seconds
  type: integer
  description: Returned by 037-4 LAMP INFORMATION REQUEST 3 (DATA01=lamp number, DATA02=01h).

- id: lamp_remaining_life_percent
  type: integer
  description: Returned by 037-4 LAMP INFORMATION REQUEST 3 (DATA01=lamp number, DATA02=04h); negative if past replacement deadline.

- id: filter_usage_time_seconds
  type: integer
  description: Returned by 037-3 FILTER USAGE INFORMATION REQUEST (DATA01-04).

- id: filter_alarm_start_time_seconds
  type: integer
  description: Returned by 037-3 FILTER USAGE INFORMATION REQUEST (DATA05-08); -1 if undefined.

- id: carbon_savings_kg
  type: integer
  description: Carbon savings value returned by 037-6 CARBON SAVINGS INFORMATION REQUEST.

- id: gain_parameter_range
  type: object
  description: Adjustment range, default, current, and step width returned by 060-1 GAIN PARAMETER REQUEST 3.

- id: eco_mode_value
  type: hex
  description: Eco/Lamp/Light mode value returned by 097-8 ECO MODE REQUEST.

- id: pip_mode
  type: enum
  values: [pip, picture_by_picture]
  description: PIP/PBP mode returned by 097-198 PIP/PICTURE BY PICTURE REQUEST.

- id: edge_blending_mode
  type: enum
  values: [off, on]
  description: Returned by 097-243-1 EDGE BLENDING MODE REQUEST.

- id: response_error
  type: object
  description: ERR1/ERR2 error code returned in response frame; see Error code list in source.

Variables

- id: lan_projector_name
  type: string
  description: Settable projector name (up to 16 bytes) via 098-45 LAN PROJECTOR NAME SET.

- id: aspect_ratio
  type: hex
  description: Settable via 030-12 ASPECT ADJUST (DATA01); specific values deferred to source Appendix.

- id: input_terminal
  type: hex
  description: Settable via 018 INPUT SW CHANGE (DATA01); specific values deferred to source Appendix.

- id: eco_mode
  type: hex
  description: Settable via 098-8 ECO MODE SET (DATA01); specific values deferred to source Appendix.

- id: pip_mode
  type: enum
  values: [pip, picture_by_picture]
  description: Settable via 098-198 PIP/PICTURE BY PICTURE SET (DATA01=00h, DATA02).

- id: pip_start_position
  type: enum
  values: [top_left, top_right, bottom_left, bottom_right]
  description: Settable via 098-198 PIP/PICTURE BY PICTURE SET (DATA01=01h).

- id: pip_sub_input
  type: hex
  description: Settable sub-input for PIP/PBP sub window via 098-198 PIP/PICTURE BY PICTURE SET.

- id: edge_blending
  type: enum
  values: [off, on]
  description: Settable via 098-243-1 EDGE BLENDING MODE SET (DATA01).

- id: audio_select
  type: object
  description: Input terminal + audio routing via 319-10 AUDIO SELECT SET.

- id: lens_load_by_signal
  type: enum
  values: [off, on]
  description: Lens memory option via 053-6 LENS MEMORY OPTION SET (DATA01=00h).

- id: lens_forced_mute
  type: enum
  values: [off, on]
  description: Lens memory option via 053-6 LENS MEMORY OPTION SET (DATA01=01h).

- id: lens_profile
  type: enum
  values: [profile_1, profile_2]
  description: Selected reference lens memory profile via 053-10 LENS PROFILE SET.

Events

# UNRESOLVED: source does not document any unsolicited device-initiated notifications.

Macros

# UNRESOLVED: source does not document any multi-step macro sequences.

Safety

confirmation_required_for:
  - power_off
  - lens_memory_reset
  - reference_lens_memory_reset
interlocks: []
# Source states that during POWER ON or POWER OFF execution (including cooling) the projector accepts no other commands; treat as an implicit interlock.

Notes

  • All command and response frames use hexadecimal notation. The trailing CKS byte is the low-order 8 bits of the sum of all preceding bytes (excluding the CKS itself).
  • The ID1 byte is the projector's Control ID; ID2 is the model code. Source defers per-model ID2 values to the Appendix "Supplementary Information by Command", which is not included in this excerpt.
  • Input terminal codes, aspect ratio values, eco/lamp mode values, sub-input values for PIP/PBP, and base-model-type values are likewise deferred to the Appendix. Treat any reference to these in source-fragment examples as illustrative only.
  • LAN framing on TCP port 7142 uses the same command/response structure as the RS-232C serial interface; the source does not document an authentication or session handshake for either transport.
  • Source lists multiple supported baud rates (115200 / 38400 / 19200 / 9600 / 4800). Spec defaults to 9600 8N1 since it is the most commonly cited NEC default, but operators may switch to any supported rate listed above.
  • Lens-control commands 053 / 053-2 are mutually coordinated: sending 7Fh or 81h starts continuous drive; sending 00h stops it.
  • The "050. REMOTE KEY CODE" command allows arbitrary remote-control key emulation; treat it as a privileged operation.

Provenance

source_domains:
  - sharpdisplays.eu
source_urls:
  - https://www.sharpdisplays.eu/p/download/cp/Products/Projectors/Shared/CommandLists/NEC-ExternalControlManual-english.pdf
retrieved_at: 2026-05-13T08:23:00.930Z
last_checked_at: 2026-09-15T22:17:05.841Z

Verification Summary

verdict: verified
checked_at: 2026-09-15T22:17:05.841Z
matched_actions: 58
action_count: 58
confidence: medium
summary: "All 58 spec actions map to 53 source commands (lens memory split into MOVE/STORE/RESET and freeze split into on/off); transport7142/96008N1 confirmed verbatim. (4 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "model-code (ID2) byte values for NP901W / NP905 not in source; the doc defers them to a separate appendix."
- "source does not document any unsolicited device-initiated notifications."
- "source does not document any multi-step macro sequences."
- "firmware version compatibility not stated in source."
- "source applicability inferred: the manufacturer protocol document names no model; commands verified against it but not confirmed for this exact model"

From the AI4AV catalog (https://ai4av.net) · ODbL-1.0