Summary

NEC NP-M Series projectors with binary command protocol over RS-232C serial and wired LAN (TCP port 7142). Supports power control, input switching, picture/audio adjustment, lens control (zoom, focus, shift), lens memory, shutter, muting, freeze, eco mode, edge blending, PIP/PbP, and extensive status querying including error status, lamp/filter usage, and model information. Commands use hexadecimal byte frames with checksum validation.

Transport

protocols:
  - serial
  - tcp
addressing:
  port: 7142  # TCP port for wired LAN
serial:
  baud_rate: [115200, 38400, 19200, 9600, 4800]
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none  # UNRESOLVED: RTS/CTS pins wired but flow control mode not stated
  connector: "D-SUB 9P (PC CONTROL port)"
  pinout:
    2: RxD
    3: TxD
    5: GND
    7: RTS
    8: CTS
auth:
  type: none  # inferred: no auth procedure in source

Traits

traits:
  - powerable    # inferred from power on/off commands
  - queryable    # inferred from extensive request/status commands
  - routable     # inferred from input switch command
  - levelable    # inferred from volume, picture, and lens adjustment commands
  - mutable      # inferred from picture/sound/onscreen mute commands

Actions

actions:
  - id: power_on
    label: "Power On"
    kind: action
    command_bytes: "02h 00h 00h 00h 00h 02h"
    response_success_bytes: "22h 00h <ID1> <ID2> 00h <CKS>"
    params: []
    notes: "No other commands accepted during power-on sequence."

  - id: power_off
    label: "Power Off"
    kind: action
    command_bytes: "02h 01h 00h 00h 00h 03h"
    response_success_bytes: "22h 01h <ID1> <ID2> 00h <CKS>"
    params: []
    notes: "No other commands accepted during power-off including cooling time."

  - id: input_switch
    label: "Input Switch"
    kind: action
    command_bytes: "02h 03h 00h 00h 02h 01h <DATA01> <CKS>"
    response_success_bytes: "22h 03h <ID1> <ID2> 01h <DATA01> <CKS>"
    params:
      - name: input
        type: integer
        description: "Input terminal hex code (varies by model - see supplementary tables)"
    notes: "DATA01=06h for VIDEO port. Response DATA01: 00h=success, FFh=error (no signal switch)."

  - id: picture_mute_on
    label: "Picture Mute On"
    kind: action
    command_bytes: "02h 10h 00h 00h 00h 12h"
    response_success_bytes: "22h 10h <ID1> <ID2> 00h <CKS>"
    params: []
    notes: "Automatically turned off on input terminal switch or video signal switch."

  - id: picture_mute_off
    label: "Picture Mute Off"
    kind: action
    command_bytes: "02h 11h 00h 00h 00h 13h"
    response_success_bytes: "22h 11h <ID1> <ID2> 00h <CKS>"
    params: []

  - id: sound_mute_on
    label: "Sound Mute On"
    kind: action
    command_bytes: "02h 12h 00h 00h 00h 14h"
    response_success_bytes: "22h 12h <ID1> <ID2> 00h <CKS>"
    params: []
    notes: "Automatically turned off on input switch, signal switch, or volume adjustment."

  - id: sound_mute_off
    label: "Sound Mute Off"
    kind: action
    command_bytes: "02h 13h 00h 00h 00h 15h"
    response_success_bytes: "22h 13h <ID1> <ID2> 00h <CKS>"
    params: []

  - id: onscreen_mute_on
    label: "Onscreen Mute On"
    kind: action
    command_bytes: "02h 14h 00h 00h 00h 16h"
    response_success_bytes: "22h 14h <ID1> <ID2> 00h <CKS>"
    params: []
    notes: "Automatically turned off on input terminal switch or video signal switch."

  - id: onscreen_mute_off
    label: "Onscreen Mute Off"
    kind: action
    command_bytes: "02h 15h 00h 00h 00h 17h"
    response_success_bytes: "22h 15h <ID1> <ID2> 00h <CKS>"
    params: []

  - id: picture_adjust
    label: "Picture Adjust"
    kind: action
    command_bytes: "03h 10h 00h 00h 05h <DATA01> FFh <DATA02> <DATA03> <DATA04> <CKS>"
    response_success_bytes: "23h 10h <ID1> <ID2> 02h <DATA01> <DATA02> <CKS>"
    params:
      - name: target
        type: integer
        description: "Adjustment target: 00h=Brightness, 01h=Contrast, 02h=Color, 03h=Hue, 04h=Sharpness"
      - name: mode
        type: integer
        description: "00h=absolute value, 01h=relative value"
      - name: value
        type: integer
        description: "16-bit signed adjustment value (low byte, high byte)"

  - id: volume_adjust
    label: "Volume Adjust"
    kind: action
    command_bytes: "03h 10h 00h 00h 05h 05h 00h <DATA01> <DATA02> <DATA03> <CKS>"
    response_success_bytes: "23h 10h <ID1> <ID2> 02h <DATA01> <DATA02> <CKS>"
    params:
      - name: mode
        type: integer
        description: "00h=absolute value, 01h=relative value"
      - name: value
        type: integer
        description: "16-bit signed adjustment value (low byte, high byte)"

  - id: aspect_adjust
    label: "Aspect Adjust"
    kind: action
    command_bytes: "03h 10h 00h 00h 05h 18h 00h 00h <DATA01> 00h <CKS>"
    response_success_bytes: "23h 10h <ID1> <ID2> 02h <DATA01> <DATA02> <CKS>"
    params:
      - name: aspect
        type: integer
        description: "Aspect value (varies by model - see supplementary tables)"

  - id: lamp_adjust
    label: "Lamp/Light Adjust"
    kind: action
    command_bytes: "03h 10h 00h 00h 05h 96h FFh <DATA03> <DATA04> <DATA05> <CKS>"
    response_success_bytes: "23h 10h <ID1> <ID2> 02h <DATA01> <DATA02> <CKS>"
    params:
      - name: mode
        type: integer
        description: "00h=absolute value, 01h=relative value"
      - name: value
        type: integer
        description: "16-bit signed adjustment value (low byte, high byte)"

  - id: remote_key_code
    label: "Remote Key Code"
    kind: action
    command_bytes: "02h 0Fh 00h 00h 02h <DATA01> <DATA02> <CKS>"
    response_success_bytes: "22h 0Fh <ID1> <ID2> 01h <DATA01> <CKS>"
    params:
      - name: key_code
        type: integer
        description: "WORD key code - examples: 0200h=POWER ON, 0300h=POWER OFF, 0500h=AUTO, 0600h=MENU, 0700h=UP, 0800h=DOWN, 0900h=RIGHT, 0A00h=LEFT, 0B00h=ENTER, 0C00h=EXIT, 8400h=VOLUME UP, 8500h=VOLUME DOWN, 8A00h=FREEZE"
    notes: "Response DATA01: 00h=success, FFh=error."

  - id: shutter_close
    label: "Shutter Close"
    kind: action
    command_bytes: "02h 16h 00h 00h 00h 18h"
    response_success_bytes: "22h 16h <ID1> <ID2> 00h <CKS>"
    params: []

  - id: shutter_open
    label: "Shutter Open"
    kind: action
    command_bytes: "02h 17h 00h 00h 00h 19h"
    response_success_bytes: "22h 17h <ID1> <ID2> 00h <CKS>"
    params: []

  - id: lens_control
    label: "Lens Control"
    kind: action
    command_bytes: "02h 18h 00h 00h 02h <DATA01> <DATA02> <CKS>"
    response_success_bytes: "22h 18h <ID1> <ID2> 01h <DATA01> <CKS>"
    params:
      - name: target
        type: integer
        description: "00h=Zoom, 01h=Focus, 02h=Lens Shift H, 03h=Lens Shift V, 06h=Periphery Focus"
      - name: content
        type: integer
        description: "00h=Stop, 01h=+1s, 02h=+0.5s, 03h=+0.25s, 7Fh=continuous plus, 81h=continuous minus, FDh=-0.25s, FEh=-0.5s, FFh=-1s"
    notes: "For 7Fh/81h (continuous), send 00h to stop."

  - id: lens_control_2
    label: "Lens Control 2 (Absolute/Relative)"
    kind: action
    command_bytes: "02h 1Dh 00h 00h 04h <DATA01> <DATA02> <DATA03> <DATA04> <CKS>"
    response_success_bytes: "22h 1Dh <ID1> <ID2> 02h <DATA01> <DATA02> <CKS>"
    params:
      - name: target
        type: integer
        description: "00h=Zoom, 01h=Focus, 02h=Lens Shift H, 03h=Lens Shift V, FFh=Stop"
      - name: mode
        type: integer
        description: "00h=absolute, 02h=relative"
      - name: value
        type: integer
        description: "16-bit adjustment value (low byte, high byte)"

  - id: lens_memory_control
    label: "Lens Memory Control"
    kind: action
    command_bytes: "02h 1Eh 00h 00h 01h <DATA01> <CKS>"
    response_success_bytes: "22h 1Eh <ID1> <ID2> 02h <DATA01> <DATA02> <CKS>"
    params:
      - name: operation
        type: integer
        description: "00h=MOVE, 01h=STORE, 02h=RESET"

  - id: reference_lens_memory_control
    label: "Reference Lens Memory Control"
    kind: action
    command_bytes: "02h 1Fh 00h 00h 01h <DATA01> <CKS>"
    response_success_bytes: "22h 1Fh <ID1> <ID2> 02h <DATA01> <DATA02> <CKS>"
    params:
      - name: operation
        type: integer
        description: "00h=MOVE, 01h=STORE, 02h=RESET"
    notes: "Controls the profile specified by lens_profile_set."

  - id: lens_memory_option_set
    label: "Lens Memory Option Set"
    kind: action
    command_bytes: "02h 21h 00h 00h 02h <DATA01> <DATA02> <CKS>"
    response_success_bytes: "22h 21h <ID1> <ID2> 02h <DATA01> <DATA02> <CKS>"
    params:
      - name: target
        type: integer
        description: "00h=LOAD BY SIGNAL, 01h=FORCED MUTE"
      - name: value
        type: integer
        description: "00h=OFF, 01h=ON"

  - id: lens_profile_set
    label: "Lens Profile Set"
    kind: action
    command_bytes: "02h 27h 00h 00h 01h <DATA01> <CKS>"
    response_success_bytes: "22h 27h <ID1> <ID2> 02h <DATA01> <DATA02> <CKS>"
    params:
      - name: profile
        type: integer
        description: "00h=Profile 1, 01h=Profile 2"

  - id: freeze_control
    label: "Freeze Control"
    kind: action
    command_bytes: "01h 98h 00h 00h 01h <DATA01> <CKS>"
    response_success_bytes: "21h 98h <ID1> <ID2> 01h <DATA01> <CKS>"
    params:
      - name: operation
        type: integer
        description: "01h=freeze on, 02h=freeze off"

  - id: eco_mode_set
    label: "Eco Mode Set"
    kind: action
    command_bytes: "03h B1h 00h 00h 02h 07h <DATA01> <CKS>"
    response_success_bytes: "23h B1h <ID1> <ID2> 02h 07h <DATA01> <CKS>"
    params:
      - name: eco_mode
        type: integer
        description: "Value varies by model - see supplementary tables"

  - id: projector_name_set
    label: "Projector Name Set"
    kind: action
    command_bytes: "03h B1h 00h 00h 12h 2Ch <DATA01-16> 00h <CKS>"
    response_success_bytes: "23h B1h <ID1> <ID2> 02h 2Ch <DATA01> <CKS>"
    params:
      - name: name
        type: string
        description: "Projector name (up to 16 bytes)"

  - id: pip_pbp_set
    label: "PIP/Picture by Picture Set"
    kind: action
    command_bytes: "03h B1h 00h 00h 03h C5h <DATA01> <DATA02> <CKS>"
    response_success_bytes: "23h B1h <ID1> <ID2> 03h C5h <DATA01> <DATA02> <CKS>"
    params:
      - name: target
        type: integer
        description: "00h=MODE, 01h=START POSITION, 02h=SUB INPUT/SUB INPUT 1, 09h=SUB INPUT 2, 0Ah=SUB INPUT 3"
      - name: value
        type: integer
        description: "MODE: 00h=PIP, 01h=PbP. POSITION: 00h=TL, 01h=TR, 02h=BL, 03h=BR. Sub input varies by model."

  - id: edge_blending_set
    label: "Edge Blending Set"
    kind: action
    command_bytes: "03h B1h 00h 00h 03h DFh 00h <DATA01> <CKS>"
    response_success_bytes: "23h B1h <ID1> <ID2> 03h DFh 00h <DATA01> <CKS>"
    params:
      - name: value
        type: integer
        description: "00h=OFF, 01h=ON"

  - id: audio_select_set
    label: "Audio Select Set"
    kind: action
    command_bytes: "03h C9h 00h 00h 03h 09h <DATA01> <DATA02> <CKS>"
    response_success_bytes: "23h C9h <ID1> <ID2> 03h 09h <DATA01> <DATA02> <CKS>"
    params:
      - name: input_terminal
        type: integer
        description: "Input terminal hex code"
      - name: audio_source
        type: integer
        description: "00h=same as specified terminal, 01h=BNC, 02h=COMPUTER"

Feedbacks

feedbacks:
  - id: error_status
    label: "Error Status"
    type: binary_bitmap
    command_bytes: "00h 88h 00h 00h 00h 88h"
    response_bytes: "20h 88h <ID1> <ID2> 0Ch <DATA01-12> <CKS>"
    description: "12-byte error bitmap. Bits include: cover error, fan error, temperature error, power error, lamp off, lamp replacement moratorium, lamp usage exceeded, formatter error, FPGA error, lens not installed, interlock switch open."

  - id: projector_information
    label: "Projector Information"
    type: object
    command_bytes: "03h 8Ah 00h 00h 00h 8Dh"
    response_bytes: "23h 8Ah <ID1> <ID2> 62h <DATA01-98> <CKS>"
    fields:
      - name: projector_name
        bytes: "DATA01-49"
        description: "Projector name (NUL terminated)"
      - name: lamp_usage_seconds
        bytes: "DATA83-86"
        description: "Lamp usage time in seconds (updated at 1-minute intervals)"
      - name: filter_usage_seconds
        bytes: "DATA87-90"
        description: "Filter usage time in seconds"

  - id: filter_usage
    label: "Filter Usage Information"
    type: object
    command_bytes: "03h 95h 00h 00h 00h 98h"
    response_bytes: "23h 95h <ID1> <ID2> 08h <DATA01-08> <CKS>"
    fields:
      - name: filter_usage_seconds
        bytes: "DATA01-04"
        description: "Filter usage time in seconds"
      - name: filter_alarm_seconds
        bytes: "DATA05-08"
        description: "Filter alarm start time in seconds (-1 if undefined)"

  - id: lamp_information
    label: "Lamp Information"
    type: object
    command_bytes: "03h 96h 00h 00h 02h <DATA01> <DATA02> <CKS>"
    response_bytes: "23h 96h <ID1> <ID2> 06h <DATA01-06> <CKS>"
    params:
      - name: target
        description: "00h=Lamp 1, 01h=Lamp 2 (two-lamp models only)"
      - name: content
        description: "01h=usage time (seconds), 04h=remaining life (%)"
    fields:
      - name: value
        bytes: "DATA03-06"
        description: "Requested information. Negative remaining life if replacement deadline exceeded."

  - id: carbon_savings
    label: "Carbon Savings Information"
    type: object
    command_bytes: "03h 9Ah 00h 00h 01h <DATA01> <CKS>"
    response_bytes: "23h 9Ah <ID1> <ID2> 09h <DATA01-09> <CKS>"
    params:
      - name: target
        description: "00h=Total, 01h=During operation"
    fields:
      - name: kilograms
        bytes: "DATA02-05"
        description: "Carbon savings in kg (max 99999)"
      - name: milligrams
        bytes: "DATA06-09"
        description: "Carbon savings in mg (max 999999)"

  - id: running_status
    label: "Running Status"
    type: object
    command_bytes: "00h 85h 00h 00h 01h 01h 87h"
    response_bytes: "20h 85h <ID1> <ID2> 10h <DATA01-16> <CKS>"
    fields:
      - name: power_status
        bytes: DATA03
        values: ["00h=Standby", "01h=Power On", "FFh=Not supported"]
      - name: cooling
        bytes: DATA04
        values: ["00h=Not executing", "01h=Executing", "FFh=Not supported"]
      - name: power_on_off_process
        bytes: DATA05
        values: ["00h=Not executing", "01h=Executing", "FFh=Not supported"]
      - name: operation_status
        bytes: DATA06
        values: ["00h=Standby (Sleep)", "04h=Power On", "05h=Cooling", "06h=Standby (error)", "0Fh=Standby (Power saving)", "10h=Network standby"]

  - id: input_status
    label: "Input Status"
    type: object
    command_bytes: "00h 85h 00h 00h 01h 02h 88h"
    response_bytes: "20h 85h <ID1> <ID2> 10h <DATA01-16> <CKS>"
    fields:
      - name: signal_switch
        bytes: DATA01
        values: ["00h=Not executing", "01h=Executing"]
      - name: signal_list_number
        bytes: DATA02
        description: "Signal list number - 1 (add 1 for actual number)"
      - name: signal_type_1
        bytes: DATA03
      - name: signal_type_2
        bytes: DATA04
        values: ["01h=COMPUTER", "02h=VIDEO", "03h=S-VIDEO", "04h=COMPONENT", "07h=VIEWER(1-5)", "20h=DVI-D", "21h=HDMI", "22h=DisplayPort", "23h=VIEWER(6-10)", "FFh=Not Source Input"]
      - name: content_displayed
        bytes: DATA09
        values: ["00h=Video signal", "01h=No signal", "02h=Viewer", "03h=Test pattern", "04h=LAN"]

  - id: mute_status
    label: "Mute Status"
    type: object
    command_bytes: "00h 85h 00h 00h 01h 03h 89h"
    response_bytes: "20h 85h <ID1> <ID2> 10h <DATA01-16> <CKS>"
    fields:
      - name: picture_mute
        bytes: DATA01
        values: ["00h=Off", "01h=On", "FFh=Not supported"]
      - name: sound_mute
        bytes: DATA02
        values: ["00h=Off", "01h=On", "FFh=Not supported"]
      - name: onscreen_mute
        bytes: DATA03
        values: ["00h=Off", "01h=On", "FFh=Not supported"]
      - name: forced_onscreen_mute
        bytes: DATA04
        values: ["00h=Off", "01h=On", "FFh=Not supported"]
      - name: onscreen_display
        bytes: DATA05
        values: ["00h=Not displayed", "01h=Displayed", "FFh=Not supported"]

  - id: model_name
    label: "Model Name"
    type: string
    command_bytes: "00h 85h 00h 00h 01h 04h 8Ah"
    response_bytes: "20h 85h <ID1> <ID2> 20h <DATA01-32> <CKS>"
    description: "Model name (NUL terminated, up to 32 bytes)"

  - id: cover_status
    label: "Cover Status"
    type: enum
    command_bytes: "00h 85h 00h 00h 01h 05h 8Bh"
    response_bytes: "20h 85h <ID1> <ID2> 01h <DATA01> <CKS>"
    values: ["00h=Normal (cover opened)", "01h=Cover closed"]

  - id: lens_position
    label: "Lens Position"
    type: object
    command_bytes: "02h 1Ch 00h 00h 02h <DATA01> 00h <CKS>"
    response_bytes: "22h 1Ch <ID1> <ID2> 08h <DATA01> 00h <DATA02-07> <CKS>"
    params:
      - name: target
        description: "00h=Zoom, 01h=Focus, 02h=Lens Shift H, 03h=Lens Shift V"
    fields:
      - name: upper_limit
        bytes: "DATA02-03"
        description: "Upper limit of adjustment range"
      - name: lower_limit
        bytes: "DATA04-05"
        description: "Lower limit of adjustment range"
      - name: current_value
        bytes: "DATA06-07"
        description: "Current position value"

  - id: lens_information
    label: "Lens Information"
    type: binary_bitmap
    command_bytes: "02h 22h 00h 00h 01h 00h 25h"
    response_bytes: "22h 22h <ID1> <ID2> 02h 00h <DATA01> <CKS>"
    description: "Operation status per lens function. Bit0=Lens memory, Bit1=Zoom, Bit2=Focus, Bit3=Lens Shift H, Bit4=Lens Shift V. 0=Stop, 1=During operation."

  - id: lens_memory_option
    label: "Lens Memory Option"
    type: object
    command_bytes: "02h 20h 00h 00h 01h <DATA01> <CKS>"
    response_bytes: "22h 20h <ID1> <ID2> 02h <DATA01> <DATA02> <CKS>"
    params:
      - name: target
        description: "00h=LOAD BY SIGNAL, 01h=FORCED MUTE"
    fields:
      - name: value
        description: "00h=OFF, 01h=ON"

  - id: lens_profile
    label: "Lens Profile"
    type: enum
    command_bytes: "02h 28h 00h 00h 00h 2Ah"
    response_bytes: "22h 28h <ID1> <ID2> 02h <DATA01> <DATA02> <CKS>"
    values: ["00h=Profile 1", "01h=Profile 2"]

  - id: gain_parameter
    label: "Gain Parameter"
    type: object
    command_bytes: "03h 05h 00h 00h 03h <DATA01> 00h 00h <CKS>"
    response_bytes: "23h 05h <ID1> <ID2> 10h <DATA01-16> <CKS>"
    params:
      - name: name
        description: "00h=Brightness, 01h=Contrast, 02h=Color, 03h=Hue, 04h=Sharpness, 05h=Volume, 96h=Lamp/Light Adjust"
    fields:
      - name: status
        bytes: DATA01
        values: ["00h=Display not possible", "01h=Adjustment not possible", "02h=Adjustment possible", "FFh=Gain does not exist"]
      - name: upper_limit
        bytes: "DATA02-03"
      - name: lower_limit
        bytes: "DATA04-05"
      - name: default
        bytes: "DATA06-07"
      - name: current_value
        bytes: "DATA08-09"

  - id: setting_information
    label: "Setting Information"
    type: object
    command_bytes: "00h 85h 00h 00h 01h 00h 86h"
    response_bytes: "20h 85h <ID1> <ID2> 20h <DATA01-32> <CKS>"
    fields:
      - name: base_model_type
        bytes: "DATA01-03"
      - name: sound_function
        bytes: DATA04
        values: ["00h=Not available", "01h=Available"]
      - name: profile_number
        bytes: DATA05
        values: ["00h=Not available", "01h=Clock", "02h=Sleep timer", "03h=Clock + Sleep timer"]

  - id: eco_mode
    label: "Eco Mode"
    type: integer
    command_bytes: "03h B0h 00h 00h 01h 07h BBh"
    response_bytes: "23h B0h <ID1> <ID2> 02h 07h <DATA01> <CKS>"
    description: "Eco mode value (varies by model - see supplementary tables)"

  - id: projector_name
    label: "Projector Name"
    type: string
    command_bytes: "03h B0h 00h 00h 01h 2Ch E0h"
    response_bytes: "23h B0h <ID1> <ID2> 12h 2Ch <DATA01-17> <CKS>"
    description: "Projector name (NUL terminated, up to 17 bytes)"

  - id: mac_address
    label: "MAC Address"
    type: string
    command_bytes: "03h B0h 00h 00h 02h 9Ah 00h 4Fh"
    response_bytes: "23h B0h <ID1> <ID2> 08h 9Ah 00h <DATA01-06> <CKS>"
    description: "6-byte MAC address"

  - id: pip_pbp_status
    label: "PIP/Picture by Picture Status"
    type: object
    command_bytes: "03h B0h 00h 00h 02h C5h <DATA01> <CKS>"
    response_bytes: "23h B0h <ID1> <ID2> 03h C5h <DATA01> <DATA02> <CKS>"
    params:
      - name: target
        description: "00h=MODE, 01h=START POSITION, 02h=SUB INPUT 1, 09h=SUB INPUT 2, 0Ah=SUB INPUT 3"

  - id: edge_blending_status
    label: "Edge Blending Status"
    type: enum
    command_bytes: "03h B0h 00h 00h 02h DFh 00h 94h"
    response_bytes: "23h B0h <ID1> <ID2> 03h DFh 00h <DATA01> <CKS>"
    values: ["00h=OFF", "01h=ON"]

  - id: information_string
    label: "Information String"
    type: string
    command_bytes: "00h D0h 00h 00h 03h 00h <DATA01> 01h <CKS>"
    response_bytes: "20h D0h <ID1> <ID2> LEN <DATA01> 01h <DATA02-??> <CKS>"
    params:
      - name: info_type
        description: "03h=Horizontal sync frequency, 04h=Vertical sync frequency"

  - id: base_model_type
    label: "Base Model Type"
    type: object
    command_bytes: "00h BFh 00h 00h 01h 00h C0h"
    response_bytes: "20h BFh <ID1> <ID2> 10h 00h <DATA01-15> <CKS>"
    fields:
      - name: base_model_type
        bytes: "DATA01-02"
      - name: model_name
        bytes: "DATA03-11"
        description: "NUL terminated"

  - id: serial_number
    label: "Serial Number"
    type: string
    command_bytes: "00h BFh 00h 00h 02h 01h 06h C8h"
    response_bytes: "20h BFh <ID1> <ID2> 12h 01h 06h <DATA01-16> <CKS>"
    description: "Serial number (NUL terminated, up to 16 bytes)"

  - id: basic_information
    label: "Basic Information"
    type: object
    command_bytes: "00h BFh 00h 00h 01h 02h C2h"
    response_bytes: "20h BFh <ID1> <ID2> 10h 02h <DATA01-15> <CKS>"
    fields:
      - name: operation_status
        bytes: DATA01
        values: ["00h=Standby (Sleep)", "04h=Power On", "05h=Cooling", "06h=Standby (error)", "0Fh=Standby (Power saving)", "10h=Network standby"]
      - name: content_displayed
        bytes: DATA02
        values: ["00h=Video signal", "01h=No signal", "02h=Viewer", "03h=Test pattern", "04h=LAN", "05h=Test pattern (user)", "10h=Signal switching"]
      - name: video_mute
        bytes: DATA06
        values: ["00h=Off", "01h=On"]
      - name: sound_mute
        bytes: DATA07
        values: ["00h=Off", "01h=On"]
      - name: onscreen_mute
        bytes: DATA08
        values: ["00h=Off", "01h=On"]
      - name: freeze
        bytes: DATA09
        values: ["00h=Off", "01h=On"]

Variables

# UNRESOLVED: no continuously settable parameters beyond discrete actions

Events

# UNRESOLVED: no unsolicited event/notification mechanism described in source

Macros

# UNRESOLVED: no multi-step macro sequences described in source

Safety

confirmation_required_for: []
interlocks: []
notes: >
  Error status (command 009) reports interlock switch status (DATA09 Bit1: 1=open).
  Error status also reports cover error, fan error, temperature error, power error.
  Power on/off commands block all other commands during execution (including cooling period).
  Some models cannot receive commands in standby mode over LAN.

Notes

  • Binary protocol: All commands and responses are hexadecimal byte frames. Frame structure: header bytes + ID1 (control ID) + ID2 (model code) + LEN + DATA fields + CKS (checksum).
  • Checksum: Sum all preceding bytes, use low-order 8 bits of result.
  • Error responses: Use prefix A0h/A1h/A2h/A3h (depending on command) with ERR1/ERR2 error codes. Common errors: 02h 0Dh = "command cannot be accepted because power is off", 02h 07h = "no signal".
  • Model-dependent values: Input terminal hex codes, eco mode values, and aspect values vary by model. Refer to the supplementary tables in the source document.
  • Standby mode: Standby mode settings for receiving commands vary by model (Normal, Active, Eco, Power-Saving, Network Standby, Sleep). See standby mode table in source.
  • Lamp usage: Updated at 1-minute intervals despite 1-second precision.
  • Lens control: Continuous drive mode (7Fh/81h) requires explicit stop command (00h).
  • Picture mute and sound mute are automatically cancelled on input switch or signal switch.

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-04-29T13:52:10.350Z
last_checked_at: 2026-06-02T22:10:52.002Z

Verification Summary

verdict: verified
checked_at: 2026-06-02T22:10:52.002Z
matched_actions: 28
action_count: 28
confidence: medium
summary: "All 28 spec actions traced to source (dip-safe re-verify). (14 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "input terminal hex codes vary by model — see supplementary tables in source"
- "eco mode values vary by model — see supplementary tables in source"
- "aspect values vary by model — see supplementary tables in source"
- "RTS/CTS pins wired but flow control mode not stated"
- "no continuously settable parameters beyond discrete actions"
- "no unsolicited event/notification mechanism described in source"
- "no multi-step macro sequences described in source"
- "default baud rate not stated — multiple rates supported"
- "exact input terminal codes are model-dependent and listed in supplementary tables"
- "eco mode value mapping is model-dependent"
- "aspect value mapping is model-dependent"
- "no response timeout specified"
- "no maximum command rate or throttling specified"
- "firmware version compatibility not stated"

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