Summary

The Sharp/NEC E657Q is a large-format display controllable via a binary protocol over RS-232C serial and TCP/IP (wired or wireless LAN, TCP port 7142). This spec covers the command catalogue documented in the Sharp/NEC Projector Control Command Reference Manual (BDT140013 Rev 7.1), including power, input switching, mute, picture/volume/lens adjustment, lens memory, status queries, eco mode, PIP/PbP, edge blending, and information requests.

Transport

protocols:
  - serial
  - tcp
serial:
  baud_rate: 115200  # source lists selectable rates: 115200 / 38400 / 19200 / 9600 / 4800 bps
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none  # UNRESOLVED: flow control not stated; source states "Full duplex" communication mode only
addressing:
  port: 7142
auth:
  type: none  # inferred: no auth procedure in source

Traits

traits:
  - powerable  # inferred: POWER ON (015) / POWER OFF (016) commands present
  - queryable  # inferred: numerous status/information request commands present
  - levelable  # inferred: VOLUME ADJUST, PICTURE ADJUST, LENS CONTROL present

Actions

# Message framing (binary, hex bytes):
#   <class> <command> <ID1> <ID2> <LEN> <DATA...> <CKS>
# - class: 00h-03h (command), 20h-23h (success response), A0h-A3h (error response)
# - ID1 = control ID; ID2 = model code (command examples use 00h 00h; responses echo device ID1/ID2)
# - LEN = data byte count following LEN
# - CKS = low-order byte of the sum of all preceding bytes
# Enum values for input terminal / aspect / eco mode / sub-input that the source
# defers to an absent Appendix are marked UNRESOLVED.
actions:
  - id: error_status_request
    label: "009. ERROR STATUS REQUEST"
    kind: query
    command: "00 88 00 00 00 88"
    params: []

  - id: power_on
    label: "015. POWER ON"
    kind: action
    command: "02 00 00 00 00 02"
    params: []

  - id: power_off
    label: "016. POWER OFF"
    kind: action
    command: "02 01 00 00 00 03"
    params: []

  - id: input_sw_change
    label: "018. INPUT SW CHANGE"
    kind: action
    command: "02 03 00 00 02 01 {input} {checksum}"
    params:
      - name: input
        type: byte
        description: "Input terminal (DATA01). Source example: 06h = video port. Full value list deferred to Appendix 'Supplementary Information by Command'."
      - name: checksum
        type: byte
        description: "Computed: low byte of sum of all preceding bytes (e.g. input 06h -> CKS 0Eh)."

  - id: picture_mute_on
    label: "020. PICTURE MUTE ON"
    kind: action
    command: "02 10 00 00 00 12"
    params: []

  - id: picture_mute_off
    label: "021. PICTURE MUTE OFF"
    kind: action
    command: "02 11 00 00 00 13"
    params: []

  - id: sound_mute_on
    label: "022. SOUND MUTE ON"
    kind: action
    command: "02 12 00 00 00 14"
    params: []

  - id: sound_mute_off
    label: "023. SOUND MUTE OFF"
    kind: action
    command: "02 13 00 00 00 15"
    params: []

  - id: onscreen_mute_on
    label: "024. ONSCREEN MUTE ON"
    kind: action
    command: "02 14 00 00 00 16"
    params: []

  - id: onscreen_mute_off
    label: "025. ONSCREEN MUTE OFF"
    kind: action
    command: "02 15 00 00 00 17"
    params: []

  - id: picture_adjust
    label: "030-1. PICTURE ADJUST"
    kind: action
    command: "03 10 00 00 05 {target} FF {mode} {value_lo} {value_hi} {checksum}"
    params:
      - name: target
        type: byte
        description: "Adjustment target (DATA01): 00h=Brightness, 01h=Contrast, 02h=Color, 03h=Hue, 04h=Sharpness."
      - name: mode
        type: byte
        description: "Adjustment mode (DATA02): 00h=absolute, 01h=relative."
      - name: value_lo
        type: byte
        description: "Adjustment value low-order 8 bits (DATA03)."
      - name: value_hi
        type: byte
        description: "Adjustment value high-order 8 bits (DATA04)."
      - name: checksum
        type: byte
        description: "Computed: low byte of sum of all preceding bytes."

  - id: volume_adjust
    label: "030-2. VOLUME ADJUST"
    kind: action
    command: "03 10 00 00 05 05 00 {mode} {value_lo} {value_hi} {checksum}"
    params:
      - name: mode
        type: byte
        description: "Adjustment mode (DATA01): 00h=absolute, 01h=relative."
      - name: value_lo
        type: byte
        description: "Adjustment value low-order 8 bits (DATA02)."
      - name: value_hi
        type: byte
        description: "Adjustment value high-order 8 bits (DATA03)."
      - name: checksum
        type: byte
        description: "Computed: low byte of sum of all preceding bytes (value 10 -> 27h)."

  - id: aspect_adjust
    label: "030-12. ASPECT ADJUST"
    kind: action
    command: "03 10 00 00 05 18 00 00 {aspect} 00 {checksum}"
    params:
      - name: aspect
        type: byte
        description: "Aspect value (DATA01). Value list deferred to Appendix 'Supplementary Information by Command'."
      - name: checksum
        type: byte
        description: "Computed: low byte of sum of all preceding bytes."

  - id: other_adjust
    label: "030-15. OTHER ADJUST"
    kind: action
    command: "03 10 00 00 05 {target_lo} {target_hi} {mode} {value_lo} {value_hi} {checksum}"
    params:
      - name: target_lo
        type: byte
        description: "Adjustment target low byte (DATA01). Documented target: 96h = LAMP ADJUST / LIGHT ADJUST."
      - name: target_hi
        type: byte
        description: "Adjustment target high byte (DATA02). Documented: FFh."
      - name: mode
        type: byte
        description: "Adjustment mode (DATA03): 00h=absolute, 01h=relative."
      - name: value_lo
        type: byte
        description: "Adjustment value low-order 8 bits (DATA04)."
      - name: value_hi
        type: byte
        description: "Adjustment value high-order 8 bits (DATA05)."
      - name: checksum
        type: byte
        description: "Computed: low byte of sum of all preceding bytes."

  - id: information_request
    label: "037. INFORMATION REQUEST"
    kind: query
    command: "03 8A 00 00 00 8D"
    params: []

  - id: filter_usage_information_request
    label: "037-3. FILTER USAGE INFORMATION REQUEST"
    kind: query
    command: "03 95 00 00 00 98"
    params: []

  - id: lamp_information_request_3
    label: "037-4. LAMP INFORMATION REQUEST 3"
    kind: query
    command: "03 96 00 00 02 {lamp} {content} {checksum}"
    params:
      - name: lamp
        type: byte
        description: "Lamp selector (DATA01): 00h=Lamp 1, 01h=Lamp 2 (two-lamp models only)."
      - name: content
        type: byte
        description: "Content (DATA02): 01h=lamp usage time (seconds), 04h=lamp remaining life (%)."
      - name: checksum
        type: byte
        description: "Computed: low byte of sum of all preceding bytes (lamp1 usage -> 9Ch)."

  - id: carbon_savings_information_request
    label: "037-6. CARBON SAVINGS INFORMATION REQUEST"
    kind: query
    command: "03 9A 00 00 01 {type} {checksum}"
    params:
      - name: type
        type: byte
        description: "Carbon savings type (DATA01): 00h=Total Carbon Savings, 01h=Carbon Savings during operation."
      - name: checksum
        type: byte
        description: "Computed: low byte of sum of all preceding bytes."

  - id: remote_key_code
    label: "050. REMOTE KEY CODE"
    kind: action
    command: "02 0F 00 00 02 {keycode_lo} {keycode_hi} {checksum}"
    params:
      - name: keycode_lo
        type: byte
        description: "Key code low byte (DATA01), WORD-type key code."
      - name: keycode_hi
        type: byte
        description: "Key code high byte (DATA02)."
      - name: checksum
        type: byte
        description: "Computed: low byte of sum of all preceding bytes (AUTO -> 18h)."

  - id: shutter_close
    label: "051. SHUTTER CLOSE"
    kind: action
    command: "02 16 00 00 00 18"
    params: []

  - id: shutter_open
    label: "052. SHUTTER OPEN"
    kind: action
    command: "02 17 00 00 00 19"
    params: []

  - id: lens_control
    label: "053. LENS CONTROL"
    kind: action
    command: "02 18 00 00 02 {target} {action} {checksum}"
    params:
      - name: target
        type: byte
        description: "Adjustment target (DATA01). Documented: 06h=Periphery Focus."
      - name: action
        type: byte
        description: "Drive action (DATA02): 00h=Stop, 01h=+1s, 02h=+0.5s, 03h=+0.25s, 7Fh=plus drive, 81h=minus drive, FDh=-0.25s, FEh=-0.5s, FFh=-1s."
      - name: checksum
        type: byte
        description: "Computed: low byte of sum of all preceding bytes."

  - id: lens_control_request
    label: "053-1. LENS CONTROL REQUEST"
    kind: query
    command: "02 1C 00 00 02 {target} 00 {checksum}"
    params:
      - name: target
        type: byte
        description: "Adjustment target (DATA01)."
      - name: checksum
        type: byte
        description: "Computed: low byte of sum of all preceding bytes."

  - id: lens_control_2
    label: "053-2. LENS CONTROL 2"
    kind: action
    command: "02 1D 00 00 04 {target} {mode} {value_lo} {value_hi} {checksum}"
    params:
      - name: target
        type: byte
        description: "Lens axis (DATA01). FFh=Stop (mode/value ignored)."
      - name: mode
        type: byte
        description: "Adjustment mode (DATA02): 00h=absolute, 02h=relative."
      - name: value_lo
        type: byte
        description: "Adjustment value low-order 8 bits (DATA03)."
      - name: value_hi
        type: byte
        description: "Adjustment value high-order 8 bits (DATA04)."
      - name: checksum
        type: byte
        description: "Computed: low byte of sum of all preceding bytes."

  - id: lens_memory_control
    label: "053-3. LENS MEMORY CONTROL"
    kind: action
    command: "02 1E 00 00 01 {operation} {checksum}"
    params:
      - name: operation
        type: byte
        description: "Memory operation (DATA01): 00h=MOVE, 01h=STORE, 02h=RESET."
      - name: checksum
        type: byte
        description: "Computed: low byte of sum of all preceding bytes."

  - id: reference_lens_memory_control
    label: "053-4. REFERENCE LENS MEMORY CONTROL"
    kind: action
    command: "02 1F 00 00 01 {operation} {checksum}"
    params:
      - name: operation
        type: byte
        description: "Reference memory operation (DATA01): 00h=MOVE, 01h=STORE, 02h=RESET."
      - name: checksum
        type: byte
        description: "Computed: low byte of sum of all preceding bytes."

  - id: lens_memory_option_request
    label: "053-5. LENS MEMORY OPTION REQUEST"
    kind: query
    command: "02 20 00 00 01 {option} {checksum}"
    params:
      - name: option
        type: byte
        description: "Option (DATA01): 00h=LOAD BY SIGNAL, 01h=FORCED MUTE."
      - name: checksum
        type: byte
        description: "Computed: low byte of sum of all preceding bytes."

  - id: lens_memory_option_set
    label: "053-6. LENS MEMORY OPTION SET"
    kind: action
    command: "02 21 00 00 02 {option} {value} {checksum}"
    params:
      - name: option
        type: byte
        description: "Option (DATA01): 00h=LOAD BY SIGNAL, 01h=FORCED MUTE."
      - name: value
        type: byte
        description: "Setting value (DATA02): 00h=OFF, 01h=ON."
      - name: checksum
        type: byte
        description: "Computed: low byte of sum of all preceding bytes."

  - id: lens_information_request
    label: "053-7. LENS INFORMATION REQUEST"
    kind: query
    command: "02 22 00 00 01 00 25"
    params: []

  - id: lens_profile_set
    label: "053-10. LENS PROFILE SET"
    kind: action
    command: "02 27 00 00 01 {profile} {checksum}"
    params:
      - name: profile
        type: byte
        description: "Profile number (DATA01): 00h=Profile 1, 01h=Profile 2."
      - name: checksum
        type: byte
        description: "Computed: low byte of sum of all preceding bytes."

  - id: lens_profile_request
    label: "053-11. LENS PROFILE REQUEST"
    kind: query
    command: "02 28 00 00 00 2A"
    params: []

  - id: gain_parameter_request_3
    label: "060-1. GAIN PARAMETER REQUEST 3"
    kind: query
    command: "03 05 00 00 03 {name} 00 00 {checksum}"
    params:
      - name: name
        type: byte
        description: "Adjusted value name (DATA01): 00h=BRIGHTNESS, 01h=CONTRAST, 02h=COLOR, 03h=HUE, 04h=SHARPNESS, 05h=VOLUME, 96h=LAMP/LIGHT ADJUST."
      - name: checksum
        type: byte
        description: "Computed: low byte of sum of all preceding bytes (brightness -> 0Bh)."

  - id: setting_request
    label: "078-1. SETTING REQUEST"
    kind: query
    command: "00 85 00 00 01 00 86"
    params: []

  - id: running_status_request
    label: "078-2. RUNNING STATUS REQUEST"
    kind: query
    command: "00 85 00 00 01 01 87"
    params: []

  - id: input_status_request
    label: "078-3. INPUT STATUS REQUEST"
    kind: query
    command: "00 85 00 00 01 02 88"
    params: []

  - id: mute_status_request
    label: "078-4. MUTE STATUS REQUEST"
    kind: query
    command: "00 85 00 00 01 03 89"
    params: []

  - id: model_name_request
    label: "078-5. MODEL NAME REQUEST"
    kind: query
    command: "00 85 00 00 01 04 8A"
    params: []

  - id: cover_status_request
    label: "078-6. COVER STATUS REQUEST"
    kind: query
    command: "00 85 00 00 01 05 8B"
    params: []

  - id: freeze_control
    label: "079. FREEZE CONTROL"
    kind: action
    command: "01 98 00 00 01 {state} {checksum}"
    params:
      - name: state
        type: byte
        description: "Freeze state (DATA01): 01h=freeze on, 02h=freeze off."
      - name: checksum
        type: byte
        description: "Computed: low byte of sum of all preceding bytes."

  - id: information_string_request
    label: "084. INFORMATION STRING REQUEST"
    kind: query
    command: "00 D0 00 00 03 00 {type} 01 {checksum}"
    params:
      - name: type
        type: byte
        description: "Information type (DATA01): 03h=Horizontal sync frequency, 04h=Vertical sync frequency."
      - name: checksum
        type: byte
        description: "Computed: low byte of sum of all preceding bytes."

  - id: eco_mode_request
    label: "097-8. ECO MODE REQUEST"
    kind: query
    command: "03 B0 00 00 01 07 BB"
    params: []

  - id: lan_projector_name_request
    label: "097-45. LAN PROJECTOR NAME REQUEST"
    kind: query
    command: "03 B0 00 00 01 2C E0"
    params: []

  - id: lan_mac_address_request_2
    label: "097-155. LAN MAC ADDRESS STATUS REQUEST2"
    kind: query
    command: "03 B0 00 00 02 9A 00 4F"
    params: []

  - id: pip_picture_by_picture_request
    label: "097-198. PIP/PICTURE BY PICTURE REQUEST"
    kind: query
    command: "03 B0 00 00 02 C5 {item} {checksum}"
    params:
      - name: item
        type: byte
        description: "Item (DATA01): 00h=MODE, 01h=START POSITION, 02h=SUB INPUT / SUB INPUT 1, 09h=SUB INPUT 2, 0Ah=SUB INPUT 3."
      - name: checksum
        type: byte
        description: "Computed: low byte of sum of all preceding bytes."

  - id: edge_blending_mode_request
    label: "097-243-1. EDGE BLENDING MODE REQUEST"
    kind: query
    command: "03 B0 00 00 02 DF 00 94"
    params: []

  - id: eco_mode_set
    label: "098-8. ECO MODE SET"
    kind: action
    command: "03 B1 00 00 02 07 {value} {checksum}"
    params:
      - name: value
        type: byte
        description: "Eco mode value (DATA01). Value list deferred to Appendix 'Supplementary Information by Command'."
      - name: checksum
        type: byte
        description: "Computed: low byte of sum of all preceding bytes."

  - id: lan_projector_name_set
    label: "098-45. LAN PROJECTOR NAME SET"
    kind: action
    command: "03 B1 00 00 12 2C {name_01} {name_02} {name_03} {name_04} {name_05} {name_06} {name_07} {name_08} {name_09} {name_10} {name_11} {name_12} {name_13} {name_14} {name_15} {name_16} 00 {checksum}"
    params:
      - name: name
        type: string
        description: "Projector name (DATA01-16), up to 16 bytes, NUL-terminated."
      - name: checksum
        type: byte
        description: "Computed: low byte of sum of all preceding bytes."

  - id: pip_picture_by_picture_set
    label: "098-198. PIP/PICTURE BY PICTURE SET"
    kind: action
    command: "03 B1 00 00 03 C5 {item} {value} {checksum}"
    params:
      - name: item
        type: byte
        description: "Item (DATA01): 00h=MODE, 01h=START POSITION, 02h=SUB INPUT / SUB INPUT 1, 09h=SUB INPUT 2, 0Ah=SUB INPUT 3."
      - name: value
        type: byte
        description: "Setting value (DATA02). MODE: 00h=PIP, 01h=PICTURE BY PICTURE. START POSITION: 00h=TOP-LEFT, 01h=TOP-RIGHT, 02h=BOTTOM-LEFT, 03h=BOTTOM-RIGHT. Sub-input values deferred to Appendix."
      - name: checksum
        type: byte
        description: "Computed: low byte of sum of all preceding bytes."

  - id: edge_blending_mode_set
    label: "098-243-1. EDGE BLENDING MODE SET"
    kind: action
    command: "03 B1 00 00 03 DF 00 {value} {checksum}"
    params:
      - name: value
        type: byte
        description: "Edge blending setting (DATA01): 00h=OFF, 01h=ON."
      - name: checksum
        type: byte
        description: "Computed: low byte of sum of all preceding bytes."

  - id: base_model_type_request
    label: "305-1. BASE MODEL TYPE REQUEST"
    kind: query
    command: "00 BF 00 00 01 00 C0"
    params: []

  - id: serial_number_request
    label: "305-2. SERIAL NUMBER REQUEST"
    kind: query
    command: "00 BF 00 00 02 01 06 C8"
    params: []

  - id: basic_information_request
    label: "305-3. BASIC INFORMATION REQUEST"
    kind: query
    command: "00 BF 00 00 01 02 C2"
    params: []

  - id: audio_select_set
    label: "319-10. AUDIO SELECT SET"
    kind: action
    command: "03 C9 00 00 03 09 {input} {setting} {checksum}"
    params:
      - name: input
        type: byte
        description: "Input terminal (DATA01). Value list deferred to Appendix 'Supplementary Information by Command'."
      - name: setting
        type: byte
        description: "Audio setting (DATA02): 00h=terminal specified in DATA01, 01h=BNC, 02h=COMPUTER."
      - name: checksum
        type: byte
        description: "Computed: low byte of sum of all preceding bytes."

Feedbacks

feedbacks:
  - id: power_state
    type: enum
    description: "From RUNNING STATUS REQUEST (078-2) DATA03: 00h=Standby, 01h=Power on, FFh=Not supported."
    values: [standby, power_on]
  - id: operation_status
    type: enum
    description: "From RUNNING STATUS REQUEST (078-2) DATA06: 00h=Standby(Sleep), 04h=Power on, 05h=Cooling, 06h=Standby(error), 0Fh=Standby(Power saving), 10h=Network standby."
    values: [standby_sleep, power_on, cooling, standby_error, standby_power_saving, network_standby]
  - id: cooling_process
    type: enum
    description: "From RUNNING STATUS REQUEST (078-2) DATA04: 00h=Not executed, 01h=During execution."
    values: [idle, running]
  - id: picture_mute_state
    type: enum
    description: "From MUTE STATUS REQUEST (078-4) DATA01: 00h=Off, 01h=On."
    values: [off, on]
  - id: sound_mute_state
    type: enum
    description: "From MUTE STATUS REQUEST (078-4) DATA02: 00h=Off, 01h=On."
    values: [off, on]
  - id: onscreen_mute_state
    type: enum
    description: "From MUTE STATUS REQUEST (078-4) DATA03: 00h=Off, 01h=On."
    values: [off, on]
  - id: freeze_state
    type: enum
    description: "From BASIC INFORMATION REQUEST (305-3) DATA09: 00h=Off, 01h=On."
    values: [off, on]
  - id: cover_status
    type: enum
    description: "From COVER STATUS REQUEST (078-6) DATA01: 00h=Normal(cover opened), 01h=Cover closed."
    values: [opened, closed]
  - id: eco_mode
    type: raw
    description: "From ECO MODE REQUEST (097-8) DATA01. Value list deferred to Appendix 'Supplementary Information by Command'."
  - id: edge_blending_mode
    type: enum
    description: "From EDGE BLENDING MODE REQUEST (097-243-1) DATA01: 00h=OFF, 01h=ON."
    values: [off, on]
  - id: lamp_usage_time
    type: integer
    unit: seconds
    description: "From LAMP INFORMATION REQUEST 3 (037-4), DATA03-06. Updated at one-minute intervals."
  - id: lamp_remaining_life
    type: integer
    unit: percent
    description: "From LAMP INFORMATION REQUEST 3 (037-4), DATA03-06. Negative if replacement deadline exceeded."
  - id: filter_usage_time
    type: integer
    unit: seconds
    description: "From FILTER USAGE INFORMATION REQUEST (037-3) DATA01-04. -1 if no time defined."
  - id: error_status
    type: raw
    description: "From ERROR STATUS REQUEST (009) DATA01-12 bitfield. 0=normal, 1=error."
  - id: model_name
    type: string
    description: "From MODEL NAME REQUEST (078-5) DATA01-32 (NUL-terminated)."
  - id: serial_number
    type: string
    description: "From SERIAL NUMBER REQUEST (305-2) DATA01-16 (NUL-terminated)."
  - id: mac_address
    type: string
    description: "From LAN MAC ADDRESS STATUS REQUEST2 (097-155) DATA01-06."
  - id: execution_result
    type: enum
    description: "Generic result for adjust commands (030-x): DATA01+DATA02 = 0000h success, other = error."
    values: [success, error]

Variables

variables:
  - id: volume
    type: integer
    description: "Set via VOLUME ADJUST (030-2). Range queryable via GAIN PARAMETER REQUEST 3 (060-1, name 05h)."
  - id: brightness
    type: integer
    description: "Set via PICTURE ADJUST (030-1, target 00h). Range via GAIN PARAMETER REQUEST 3 (060-1, name 00h)."
  - id: contrast
    type: integer
    description: "Set via PICTURE ADJUST (030-1, target 01h). Range via GAIN PARAMETER REQUEST 3 (060-1, name 01h)."
  - id: color
    type: integer
    description: "Set via PICTURE ADJUST (030-1, target 02h). Range via GAIN PARAMETER REQUEST 3 (060-1, name 02h)."
  - id: hue
    type: integer
    description: "Set via PICTURE ADJUST (030-1, target 03h). Range via GAIN PARAMETER REQUEST 3 (060-1, name 03h)."
  - id: sharpness
    type: integer
    description: "Set via PICTURE ADJUST (030-1, target 04h). Range via GAIN PARAMETER REQUEST 3 (060-1, name 04h)."
  - id: lamp_light_adjust
    type: integer
    description: "Set via OTHER ADJUST (030-15, target 96h/FFh). Range via GAIN PARAMETER REQUEST 3 (060-1, name 96h)."
  - id: projector_name
    type: string
    description: "Set via LAN PROJECTOR NAME SET (098-45), up to 16 bytes."

Events

events: []  # UNRESOLVED: source describes no unsolicited notifications; all responses are command-triggered.

Macros

macros: []  # UNRESOLVED: source documents no multi-step command sequences.

Safety

confirmation_required_for:
  - power_off  # source: during power-off (incl. cooling time) no other command accepted
  - power_on   # source: during power-on no other command accepted
interlocks:
  - "POWER ON (015): while turning on, no other command can be accepted."
  - "POWER OFF (016): while turning off (including cooling time), no other command can be accepted."
  - "PICTURE/SOUND/ONSCREEN mute auto-clears on input terminal switch or video signal switch."
  - "SOUND mute also auto-clears on sound volume adjustment."
  - "Commands requiring power return ERR1=02h ERR2=0Dh ('command cannot be accepted because the power is off')."

Notes

  • Binary protocol. Each command is a hex byte sequence: <class> <command> <ID1> <ID2> <LEN> <DATA...> <CKS>. The command examples in the source use ID1=00h ID2=00h; responses (class 20h-23h) echo the device's actual control ID and model code.
  • Checksum (CKS): low-order byte of the sum of all preceding bytes. Example: 20+81+01+60+01+00 = 103h -> CKS = 03h.
  • Response classes: 20h-23h = successful response (mirrors command class); A0h-A3h = error response carrying <ERR1> <ERR2>.
  • Error codes (ERR1/ERR2): 00h/00h=unrecognized command; 00h/01h=not supported by model; 01h/00h=invalid value; 01h/01h=invalid input terminal; 02h/0Dh=power off; 02h/0Eh=execution failed; 02h/0Fh=no authority; 03h/00h=incorrect gain number; 03h/02h=adjustment failed. (See source §2.4 for full list.)
  • Lens control: after sending 7Fh (plus drive) or 81h (minus drive) in LENS CONTROL DATA02, stop by sending 00h. While the lens is being driven, the lens position can be controlled without a stop by re-issuing the same command.
  • Usage-time granularity: lamp/filter usage times are obtainable in one-second units but updated at one-minute intervals.
  • Appendix dependency: input terminal values, aspect values, eco mode values, base model types, and PIP sub-input values are referenced in the source as residing in an Appendix ("Supplementary Information by Command") that is not present in the provided text. These enums are therefore UNRESOLVED.

## Provenance

```yaml
source_domains:
  - sharpdisplays.eu
source_urls:
  - https://www.sharpdisplays.eu/p/download/cp/Products/Projectors/Shared/CommandLists/NEC-ExternalControlManual-english.pdf
retrieved_at: 2026-06-16T19:32:30.626Z
last_checked_at: 2026-06-17T19:44:59.399Z

Verification Summary

verdict: verified
checked_at: 2026-06-17T19:44:59.399Z
matched_actions: 53
action_count: 53
confidence: medium
summary: "All 53 spec actions matched verbatim against source commands §3.1-§3.53; transport parameters fully verified. (10 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "This source manual is titled \"Projector Control Command Reference Manual\" and describes a generic Sharp/NEC projector command set. Mapping to the E657Q display model is operator-provided; command support on the specific E657Q hardware/firmware is not verified in this source."
- "Appendix \"Supplementary Information by Command\" (input terminal values, aspect values, base model types, eco mode values, sub-input values) is referenced but not included in the provided source text. Several enum values for input/aspect/eco remain unspecified."
- "firmware version compatibility not stated in source"
- "flow control not stated; source states \"Full duplex\" communication mode only"
- "source describes no unsolicited notifications; all responses are command-triggered."
- "source documents no multi-step command sequences."
- "Appendix \"Supplementary Information by Command\" not provided — input terminal, aspect, eco mode, base model type, and PIP sub-input enum lists incomplete."
- "flow_control not stated in source."
- "source is a generic projector command manual; confirmation that E657Q (a display) implements this full command set is not present in the source."
- "firmware version compatibility not stated in source."

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