Summary

RS-232C and TCP/LAN control spec for a Sharp/NEC projector. Source is the vendor "Projector Control Command Reference Manual" (BDT140013 rev 7.1), a binary-frame protocol covering power, input switching, mutes, picture/volume/lens adjustments, lens memory, lamp/filter/carbon info queries, and status/setting requests. Transport over serial (RS-232C cross cable, D-SUB 9P) or wired/wireless LAN (TCP port 7142).

Transport

protocols:
  - tcp
  - serial
addressing:
  port: 7142  # TCP port for send/receive per source §1.2
serial:
  baud_rate: 9600  # source lists supported set: 115200/38400/19200/9600/4800 bps; default not stated, 9600 shown is lowest-supported placeholder - UNRESOLVED: default baud not stated
  supported_baud_rates: [115200, 38400, 19200, 9600, 4800]
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none  # UNRESOLVED: flow control not explicitly stated; "Full duplex" communication mode only
  communication_mode: full_duplex
  connector: D-SUB_9P  # PC CONTROL port, cross cable per source pin table
auth:
  type: none  # inferred: no auth procedure in source

Traits

traits:
  - powerable       # inferred: POWER ON / POWER OFF commands present
  - routable        # inferred: INPUT SW CHANGE, AUDIO SELECT SET present
  - queryable       # inferred: many status/information request commands present
  - levelable       # inferred: PICTURE/VOLUME/LAMP adjust commands present
  - mutable         # inferred: picture/sound/onscreen mute on/off present

Actions

# Frame format: commands are hex byte strings; <ID1> = control ID, <ID2> = model
# code (device-specific), <CKS> = checksum (low byte of sum of all preceding bytes).
# All command bytes below are verbatim from source §3.
actions:
  - id: error_status_request
    label: "009. ERROR STATUS REQUEST"
    kind: query
    command: "00 88 00 00 00 88"
    params: []
    notes: "Returns DATA01-12 bitfield error info (cover/fan/temp/lamp/formatter/etc.)."

  - id: power_on
    label: "015. POWER ON"
    kind: action
    command: "02 00 00 00 00 02"
    params: []
    notes: "No other command accepted during power-on sequence."

  - id: power_off
    label: "016. POWER OFF"
    kind: action
    command: "02 01 00 00 00 03"
    params: []
    notes: "No other command accepted during power-off incl. cooling time."

  - id: input_sw_change
    label: "018. INPUT SW CHANGE"
    kind: action
    command: "02 03 00 00 02 01 {data01} {cks}"
    params:
      - name: data01
        type: integer
        description: "Input terminal byte (e.g. 06h=video port). Full list in 'Supplementary Information by Command' appendix - UNRESOLVED: appendix not in refined source."

  - id: picture_mute_on
    label: "020. PICTURE MUTE ON"
    kind: action
    command: "02 10 00 00 00 12"
    params: []
    notes: "Cleared on input/video switch."

  - 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: []
    notes: "Cleared on input/video switch or volume adjust."

  - 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: []
    notes: "Cleared on input/video switch."

  - 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 {data01} FF {data02} {data03} {data04} {cks}"
    params:
      - name: data01
        type: integer
        description: "Target: 00h=Brightness, 01h=Contrast, 02h=Color, 03h=Hue, 04h=Sharpness"
      - name: data02
        type: integer
        description: "Mode: 00h=absolute, 01h=relative"
      - name: data03
        type: integer
        description: "Value low 8 bits"
      - name: data04
        type: integer
        description: "Value high 8 bits"

  - id: volume_adjust
    label: "030-2. VOLUME ADJUST"
    kind: action
    command: "03 10 00 00 05 05 00 {data01} {data02} {data03} {cks}"
    params:
      - name: data01
        type: integer
        description: "Mode: 00h=absolute, 01h=relative"
      - name: data02
        type: integer
        description: "Value low 8 bits"
      - name: data03
        type: integer
        description: "Value high 8 bits"

  - id: aspect_adjust
    label: "030-12. ASPECT ADJUST"
    kind: action
    command: "03 10 00 00 05 18 00 00 {data01} 00 {cks}"
    params:
      - name: data01
        type: integer
        description: "Aspect value byte - list in 'Supplementary Information by Command' appendix - UNRESOLVED: appendix not in refined source."

  - id: other_adjust_lamp_light
    label: "030-15. OTHER ADJUST (LAMP/LIGHT)"
    kind: action
    command: "03 10 00 00 05 {data01} {data02} {data03} {data04} {data05} {cks}"
    params:
      - name: data01
        type: integer
        description: "Target high byte (96h for LAMP/LIGHT ADJUST)"
      - name: data02
        type: integer
        description: "Target low byte (FFh for LAMP/LIGHT ADJUST)"
      - name: data03
        type: integer
        description: "Mode: 00h=absolute, 01h=relative"
      - name: data04
        type: integer
        description: "Value low 8 bits"
      - name: data05
        type: integer
        description: "Value high 8 bits"

  - id: information_request
    label: "037. INFORMATION REQUEST"
    kind: query
    command: "03 8A 00 00 00 8D"
    params: []
    notes: "Returns projector name (DATA01-49), lamp usage sec (DATA83-86), filter usage sec (DATA87-90). Updated 1-min intervals."

  - id: filter_usage_information_request
    label: "037-3. FILTER USAGE INFORMATION REQUEST"
    kind: query
    command: "03 95 00 00 00 98"
    params: []
    notes: "Returns filter usage sec (DATA01-04), filter alarm start sec (DATA05-08). -1 if undefined."

  - id: lamp_information_request_3
    label: "037-4. LAMP INFORMATION REQUEST 3"
    kind: query
    command: "03 96 00 00 02 {data01} {data02} {cks}"
    params:
      - name: data01
        type: integer
        description: "Lamp: 00h=Lamp1, 01h=Lamp2 (two-lamp models only)"
      - name: data02
        type: integer
        description: "Content: 01h=usage sec, 04h=remaining life %"
    notes: "Negative remaining-life % returned if replacement deadline exceeded."

  - id: carbon_savings_information_request
    label: "037-6. CARBON SAVINGS INFORMATION REQUEST"
    kind: query
    command: "03 9A 00 00 01 {data01} {cks}"
    params:
      - name: data01
        type: integer
        description: "00h=Total, 01h=During operation"
    notes: "Returns kg (DATA02-05) and mg (DATA06-09)."

  - id: remote_key_code
    label: "050. REMOTE KEY CODE"
    kind: action
    command: "02 0F 00 00 02 {data01} {data02} {cks}"
    params:
      - name: data01
        type: integer
        description: "Key code low byte (WORD). E.g. 05h=AUTO, 06h=MENU, 07h=UP, 4Bh=COMPUTER1, 8Ah=FREEZE, D7h=SOURCE, EEh=LAMP MODE/ECO. See full key code list in source §3.19."
      - name: data02
        type: integer
        description: "Key code high byte (00h for all listed codes)"

  - 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 {data01} {data02} {cks}"
    params:
      - name: data01
        type: integer
        description: "Target (source shows 06h=Periphery Focus)"
      - name: data02
        type: integer
        description: "Action: 00h=stop, 01h=drive +1s, 02h=+0.5s, 03h=+0.25s, 7Fh=drive plus, 81h=drive minus, FDh=-0.25s, FEh=-0.5s, FFh=-1s"
    notes: "After 7Fh/81h send 00h to stop. Same command during drive overrides without stop."

  - id: lens_control_request
    label: "053-1. LENS CONTROL REQUEST"
    kind: query
    command: "02 1C 00 00 02 {data01} 00 {cks}"
    params:
      - name: data01
        type: integer
        description: "Lens target"
    notes: "Returns upper/lower range and current value (16-bit)."

  - id: lens_control_2
    label: "053-2. LENS CONTROL 2"
    kind: action
    command: "02 1D 00 00 04 {data01} {data02} {data03} {data04} {cks}"
    params:
      - name: data01
        type: integer
        description: "Target (FFh=Stop)"
      - name: data02
        type: integer
        description: "Mode: 00h=absolute, 02h=relative"
      - name: data03
        type: integer
        description: "Value low 8 bits"
      - name: data04
        type: integer
        description: "Value high 8 bits"

  - id: lens_memory_control
    label: "053-3. LENS MEMORY CONTROL"
    kind: action
    command: "02 1E 00 00 01 {data01} {cks}"
    params:
      - name: data01
        type: integer
        description: "00h=MOVE, 01h=STORE, 02h=RESET"

  - id: reference_lens_memory_control
    label: "053-4. REFERENCE LENS MEMORY CONTROL"
    kind: action
    command: "02 1F 00 00 01 {data01} {cks}"
    params:
      - name: data01
        type: integer
        description: "00h=MOVE, 01h=STORE, 02h=RESET"
    notes: "Operates on profile selected via 053-10 LENS PROFILE SET."

  - id: lens_memory_option_request
    label: "053-5. LENS MEMORY OPTION REQUEST"
    kind: query
    command: "02 20 00 00 01 {data01} {cks}"
    params:
      - name: data01
        type: integer
        description: "00h=LOAD BY SIGNAL, 01h=FORCED MUTE"
    notes: "Returns DATA02 setting 00h=OFF / 01h=ON."

  - id: lens_memory_option_set
    label: "053-6. LENS MEMORY OPTION SET"
    kind: action
    command: "02 21 00 00 02 {data01} {data02} {cks}"
    params:
      - name: data01
        type: integer
        description: "00h=LOAD BY SIGNAL, 01h=FORCED MUTE"
      - name: data02
        type: integer
        description: "00h=OFF, 01h=ON"

  - id: lens_information_request
    label: "053-7. LENS INFORMATION REQUEST"
    kind: query
    command: "02 22 00 00 01 00 25"
    params: []
    notes: "Returns DATA01 bitfield: lens memory/zoom/focus/shift(H)/(V) stop-or-operating."

  - id: lens_profile_set
    label: "053-10. LENS PROFILE SET"
    kind: action
    command: "02 27 00 00 01 {data01} {cks}"
    params:
      - name: data01
        type: integer
        description: "00h=Profile 1, 01h=Profile 2"

  - 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 {data01} 00 00 {cks}"
    params:
      - name: data01
        type: integer
        description: "00h=BRIGHTNESS, 01h=CONTRAST, 02h=COLOR, 03h=HUE, 04h=SHARPNESS, 05h=VOLUME, 96h=LAMP/LIGHT ADJUST"
    notes: "Returns 16-byte block: status, upper/lower/default/current range, wide/narrow adjust width."

  - id: setting_request
    label: "078-1. SETTING REQUEST"
    kind: query
    command: "00 85 00 00 01 00 86"
    params: []
    notes: "Returns base model type (DATA01-03), sound function (DATA04), profile/clock/sleep (DATA05)."

  - id: running_status_request
    label: "078-2. RUNNING STATUS REQUEST"
    kind: query
    command: "00 85 00 00 01 01 87"
    params: []
    notes: "Returns power status, cooling/power-on process, operation status (DATA03-06)."

  - id: input_status_request
    label: "078-3. INPUT STATUS REQUEST"
    kind: query
    command: "00 85 00 00 01 02 88"
    params: []
    notes: "Returns signal switch, list number, signal type 1/2, list type, test pattern, content."

  - id: mute_status_request
    label: "078-4. MUTE STATUS REQUEST"
    kind: query
    command: "00 85 00 00 01 03 89"
    params: []
    notes: "Returns picture/sound/onscreen/forced-onscreen mute + OSD display (DATA01-05)."

  - 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: []
    notes: "Returns 00h=Normal(opened), 01h=Cover closed."

  - id: freeze_control
    label: "079. FREEZE CONTROL"
    kind: action
    command: "01 98 00 00 01 {data01} {cks}"
    params:
      - name: data01
        type: integer
        description: "01h=freeze ON, 02h=freeze OFF"

  - id: information_string_request
    label: "084. INFORMATION STRING REQUEST"
    kind: query
    command: "00 D0 00 00 03 00 {data01} 01 {cks}"
    params:
      - name: data01
        type: integer
        description: "03h=Horizontal sync freq, 04h=Vertical sync freq"

  - id: eco_mode_request
    label: "097-8. ECO MODE REQUEST"
    kind: query
    command: "03 B0 00 00 01 07 BB"
    params: []
    notes: "Returns Light mode or Lamp mode depending on projector. Values in appendix - UNRESOLVED."

  - 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: []
    notes: "Returns MAC address DATA01-06."

  - id: pip_pbypicture_request
    label: "097-198. PIP/PICTURE BY PICTURE REQUEST"
    kind: query
    command: "03 B0 00 00 02 C5 {data01} {cks}"
    params:
      - name: data01
        type: integer
        description: "00h=MODE, 01h=START POSITION, 02h=SUB INPUT/SUB INPUT 1, 09h=SUB INPUT 2, 0Ah=SUB INPUT 3"

  - 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: []
    notes: "Returns 00h=OFF, 01h=ON."

  - id: eco_mode_set
    label: "098-8. ECO MODE SET"
    kind: action
    command: "03 B1 00 00 02 07 {data01} {cks}"
    params:
      - name: data01
        type: integer
        description: "Eco mode value - list in appendix - UNRESOLVED."

  - id: lan_projector_name_set
    label: "098-45. LAN PROJECTOR NAME SET"
    kind: action
    command: "03 B1 00 00 12 2C {data01..data16} 00 {cks}"
    params:
      - name: name
        type: string
        description: "Projector name, up to 16 bytes (DATA01-16)"
    notes: "Param name encoded across DATA01-16 + trailing 00h."

  - id: pip_pbypicture_set
    label: "098-198. PIP/PICTURE BY PICTURE SET"
    kind: action
    command: "03 B1 00 00 03 C5 {data01} {data02} {cks}"
    params:
      - name: data01
        type: integer
        description: "00h=MODE, 01h=START POSITION, 02h=SUB INPUT 1, 09h=SUB INPUT 2, 0Ah=SUB INPUT 3"
      - name: data02
        type: integer
        description: "Setting value (MODE: 00h=PIP/01h=PbP; START POSITION: 00h-03h corners; sub-input value list in appendix - UNRESOLVED)"

  - id: edge_blending_mode_set
    label: "098-243-1. EDGE BLENDING MODE SET"
    kind: action
    command: "03 B1 00 00 03 DF 00 {data01} {cks}"
    params:
      - name: data01
        type: integer
        description: "00h=OFF, 01h=ON"

  - id: base_model_type_request
    label: "305-1. BASE MODEL TYPE REQUEST"
    kind: query
    command: "00 BF 00 00 01 00 C0"
    params: []
    notes: "Returns base model type + model name (DATA03-11 NUL-terminated)."

  - 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: []
    notes: "Returns op status, content displayed, signal type, video/sound/onscreen mute, freeze (DATA01-09)."

  - id: audio_select_set
    label: "319-10. AUDIO SELECT SET"
    kind: action
    command: "03 C9 00 00 03 09 {data01} {data02} {cks}"
    params:
      - name: data01
        type: integer
        description: "Input terminal - list in appendix - UNRESOLVED"
      - name: data02
        type: integer
        description: "00h=terminal in DATA01, 01h=BNC, 02h=COMPUTER"

Feedbacks

feedbacks:
  - id: command_response
    type: frame
    description: "Every command returns a response frame. Success: leading byte 20h/21h/22h/23h (mirrors command class) + ID1 ID2 + LEN + data + CKS. Failure: leading byte A0h/A1h/A2h/A3h + ID1 ID2 + 02h + ERR1 ERR2 + CKS."
  - id: error_codes
    type: enum
    description: "ERR1/ERR2 byte pair per source §2.4 error table (00h/00h=unrecognized, 00h/01h=unsupported by model, 01h/00h=invalid value, 01h/01h=invalid input terminal, 02h/0Dh=power off, 02h/0Eh=exec failed, 02h/0Fh=no authority, etc.)."

Variables

# N/A - settable parameters are encoded as DATA bytes inside Actions above.

Events

# UNRESOLVED: source describes no unsolicited notifications; all responses are command-ack.

Macros

# N/A - source documents no multi-step sequences.

Safety

confirmation_required_for: []
interlocks:
  - command: power_on
    note: "While power-on sequence runs, no other command accepted (source §3.2)."
  - command: power_off
    note: "During power-off incl. cooling time, no other command accepted (source §3.3)."
# UNRESOLVED: source contains no explicit safety warnings, interlock procedures, or
# power-on sequencing requirements beyond the per-command 'no other command accepted'
# notes above. Voltage/current/power specs not present in source.

Notes

  • Source/device mismatch (critical): operator supplied device name "Sharp/NEC Ea193Mi Bk" (an NEC LCD monitor) but the refined source is the generic "Projector Control Command Reference Manual" (BDT140013 rev 7.1) describing a projector with lamp, lens shift, lens memory, and lens shutter. Confirm whether this is the correct source artifact for the Ea193Mi before publishing.
  • Checksum: CKS = low byte of sum of all preceding bytes (source §2.2 worked example: 20+81+01+60+01+00 = 103h → CKS=03h).
  • Frame parameters: ID1 = control ID set on projector; ID2 = model code (device-specific, not enumerated in source); LEN = data length following LEN.
  • Response framing: success response leading byte = command leading byte OR'd with 20h; failure response leading byte = command leading byte OR'd with 20h, plus 80h (i.e. A0h/A1h/A2h/A3h).
  • Appendix missing: "Supplementary Information by Command" appendix is referenced by multiple commands (input terminal values, aspect values, eco mode values, base model type values, sub input values) but is not present in the refined source — those enum lists are UNRESOLVED.
  • Baud rate: source lists supported rates 115200/38400/19200/9600/4800 bps but does not state the default/factory rate. baud_rate: 9600 in Transport is a placeholder from the supported set, not a stated default — UNRESOLVED.

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-06-16T16:30:59.716Z
last_checked_at: 2026-06-17T19:46:40.786Z

Verification Summary

verdict: verified
checked_at: 2026-06-17T19:46:40.786Z
matched_actions: 53
action_count: 53
confidence: medium
summary: "All 53 spec commands matched verbatim to source with correct opcodes, parameters, and transport. (15 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "Source is generic projector manual, does NOT name \"Ea193Mi Bk\". Ea193Mi is an NEC LCD monitor product line; the source describes a projector with lamp, lens shift, lens memory, shutter — likely wrong/mismatched source artifact for this device. Confirm correct source before publishing."
- "Firmware version compatibility not stated in source."
- "ID2 (model code) value per-device not stated."
- "\"Supplementary Information by Command\" appendix referenced but not present in refined source — many enum value lists (input terminal, aspect, eco mode, base model type, sub input) unavailable."
- "default baud not stated"
- "flow control not explicitly stated; \"Full duplex\" communication mode only"
- "appendix not in refined source.\""
- "source describes no unsolicited notifications; all responses are command-ack."
- "source contains no explicit safety warnings, interlock procedures, or"
- "model name \"Ea193Mi Bk\" not in source — source is generic projector manual."
- "firmware version compatibility not stated."
- "default baud rate not stated (only supported set)."
- "flow control not stated."
- "ID2 model code per device not enumerated."
- "appendix enum lists (input terminal / aspect / eco mode / base model / sub input) not in refined source."

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