Summary

Control spec derived from the Sharp/NEC Projector Control Command Reference Manual (BDT140013 Revision 7.1). The device exposes a binary hex-framed command protocol over RS-232C serial (D-SUB 9P, PC CONTROL) and over wired/wireless LAN (TCP port 7142). Commands cover power, input switching, picture/volume/aspect/gain adjustment, mute, shutter, lens control and lens memory, status queries, LAN/eco/PIP/edge-blending settings, and base-model/serial-number information requests.

Transport

protocols:
  - serial
  - tcp
serial:
  baud_rate: 115200/38400/19200/9600/4800  # source lists all five; device auto/configurable
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: null  # UNRESOLVED: RTS/CTS pins wired (D-SUB 9P) but flow-control mode not explicitly stated in source
addressing:
  port: 7142  # TCP, stated for LAN command send/receive
auth:
  type: none  # inferred: no auth procedure in source

Traits

traits:
  - powerable    # inferred: 015 POWER ON / 016 POWER OFF present
  - queryable    # inferred: many status/information request commands present
  - levelable    # inferred: 030-1 PICTURE ADJUST / 030-2 VOLUME ADJUST / 030-15 OTHER ADJUST present

Actions

# Frame (hex): <STX-based> ... <CKS>. CKS = low byte of sum of all preceding bytes.
# ID1 = projector control ID; ID2 = model code (UNRESOLVED for this model).
# Verbatim command payloads below include the checksum byte exactly as written in the source.

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

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

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

- id: input_sw_change
  label: Input Switch Change (018)
  kind: action
  command: "02h 03h 00h 00h 02h 01h {data01} {checksum}"
  params:
    - name: data01
      type: hex
      description: "Input terminal code. Source example: 06h = video port. Full value table is in the Appendix (UNRESOLVED: not present in refined source)."
    - name: checksum
      type: computed
      description: "Low byte of sum of all preceding bytes. Example for data01=06h: 0Eh."

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

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

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

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

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

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

- id: picture_adjust
  label: Picture Adjust (030-1)
  kind: action
  command: "03h 10h 00h 00h 05h {data01} FFh {data02} {data03} {data04} {checksum}"
  params:
    - name: data01
      type: hex
      description: "Adjustment target: 00h=Brightness, 01h=Contrast, 02h=Color, 03h=Hue, 04h=Sharpness."
    - name: data02
      type: hex
      description: "Adjustment mode: 00h=absolute, 01h=relative."
    - name: data03
      type: hex
      description: "Adjustment value (low-order 8 bits)."
    - name: data04
      type: hex
      description: "Adjustment value (high-order 8 bits)."
    - name: checksum
      type: computed
      description: "Low byte of sum of preceding bytes. Source examples: brightness=10 → 21h; brightness=-10 → 0Ch."

- id: volume_adjust
  label: Volume Adjust (030-2)
  kind: action
  command: "03h 10h 00h 00h 05h 05h 00h {data01} {data02} {data03} {checksum}"
  params:
    - name: data01
      type: hex
      description: "Adjustment mode: 00h=absolute, 01h=relative."
    - name: data02
      type: hex
      description: "Adjustment value (low-order 8 bits)."
    - name: data03
      type: hex
      description: "Adjustment value (high-order 8 bits)."
    - name: checksum
      type: computed
      description: "Low byte of sum of preceding bytes. Source example volume=10 → 27h."

- id: aspect_adjust
  label: Aspect Adjust (030-12)
  kind: action
  command: "03h 10h 00h 00h 05h 18h 00h 00h {data01} 00h {checksum}"
  params:
    - name: data01
      type: hex
      description: "Aspect value. Full value table is in the Appendix (UNRESOLVED: not present in refined source)."
    - name: checksum
      type: computed
      description: "Low byte of sum of preceding bytes."

- id: other_adjust
  label: Other Adjust (030-15)
  kind: action
  command: "03h 10h 00h 00h 05h {data01} {data02} {data03} {data04} {data05} {checksum}"
  params:
    - name: data01
      type: hex
      description: "Adjustment target DATA01. Source: 96h = LAMP ADJUST / LIGHT ADJUST (paired with DATA02=FFh)."
    - name: data02
      type: hex
      description: "Adjustment target DATA02 (FFh with 96h)."
    - name: data03
      type: hex
      description: "Adjustment mode: 00h=absolute, 01h=relative."
    - name: data04
      type: hex
      description: "Adjustment value (low-order 8 bits)."
    - name: data05
      type: hex
      description: "Adjustment value (high-order 8 bits)."
    - name: checksum
      type: computed
      description: "Low byte of sum of preceding bytes."

- id: information_request
  label: Information Request (037)
  kind: query
  command: "03h 8Ah 00h 00h 00h 8Dh"
  params: []

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

- id: lamp_information_request_3
  label: Lamp Information Request 3 (037-4)
  kind: query
  command: "03h 96h 00h 00h 02h {data01} {data02} {checksum}"
  params:
    - name: data01
      type: hex
      description: "Lamp: 00h=Lamp 1, 01h=Lamp 2 (two-lamp models only)."
    - name: data02
      type: hex
      description: "Content: 01h=lamp usage time (s), 04h=lamp remaining life (%)."
    - name: checksum
      type: computed
      description: "Low byte of sum of preceding bytes. Source example (lamp1, usage) → 9Ch."

- id: carbon_savings_information_request
  label: Carbon Savings Information Request (037-6)
  kind: query
  command: "03h 9Ah 00h 00h 01h {data01} {checksum}"
  params:
    - name: data01
      type: hex
      description: "00h=Total Carbon Savings, 01h=Carbon Savings during operation."
    - name: checksum
      type: computed
      description: "Low byte of sum of preceding bytes."

- id: remote_key_code
  label: Remote Key Code (050)
  kind: action
  command: "02h 0Fh 00h 00h 02h {data01} {data02} {checksum}"
  params:
    - name: data01
      type: hex
      description: "Key code low byte (WORD type). Source key-code list includes: POWER ON 02h, POWER OFF 03h, AUTO 05h, MENU 06h, UP 07h, DOWN 08h, RIGHT 09h, LEFT 0Ah, ENTER 0Bh, EXIT 0Ch, HELP 0Dh, MAGNIFY UP 0Fh, MAGNIFY DOWN 10h, MUTE 13h, PICTURE 29h, COMPUTER1 4Bh, COMPUTER2 4Ch, VIDEO1 4Fh, S-VIDEO1 51h, VOLUME UP 84h, VOLUME DOWN 85h, FREEZE 8Ah, ASPECT A3h, SOURCE D7h, LAMP MODE/ECO EEh (DATA02 always 00h in source list)."
    - name: data02
      type: hex
      description: "Key code high byte (00h for all listed keys)."
    - name: checksum
      type: computed
      description: "Low byte of sum of preceding bytes. Source example (AUTO) → 18h."

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

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

- id: lens_control
  label: Lens Control (053)
  kind: action
  command: "02h 18h 00h 00h 02h {data01} {data02} {checksum}"
  params:
    - name: data01
      type: hex
      description: "Lens target. Source: 06h=Periphery Focus (only value listed)."
    - name: data02
      type: hex
      description: "Drive: 00h=Stop, 01h=+1s, 02h=+0.5s, 03h=+0.25s, 7Fh=drive +, 81h=drive -, FDh=-0.25s, FEh=-0.5s, FFh=-1s."
    - name: checksum
      type: computed
      description: "Low byte of sum of preceding bytes."

- id: lens_control_request
  label: Lens Control Request (053-1)
  kind: query
  command: "02h 1Ch 00h 00h 02h {data01} 00h {checksum}"
  params:
    - name: data01
      type: hex
      description: "Lens target (matching 053 DATA01)."
    - name: checksum
      type: computed
      description: "Low byte of sum of preceding bytes."

- id: lens_control_2
  label: Lens Control 2 (053-2)
  kind: action
  command: "02h 1Dh 00h 00h 04h {data01} {data02} {data03} {data04} {checksum}"
  params:
    - name: data01
      type: hex
      description: "Lens target (FFh=Stop)."
    - name: data02
      type: hex
      description: "Adjustment mode: 00h=absolute, 02h=relative."
    - name: data03
      type: hex
      description: "Adjustment value (low-order 8 bits)."
    - name: data04
      type: hex
      description: "Adjustment value (high-order 8 bits)."
    - name: checksum
      type: computed
      description: "Low byte of sum of preceding bytes."

- id: lens_memory_control
  label: Lens Memory Control (053-3)
  kind: action
  command: "02h 1Eh 00h 00h 01h {data01} {checksum}"
  params:
    - name: data01
      type: hex
      description: "00h=MOVE, 01h=STORE, 02h=RESET."
    - name: checksum
      type: computed
      description: "Low byte of sum of preceding bytes."

- id: reference_lens_memory_control
  label: Reference Lens Memory Control (053-4)
  kind: action
  command: "02h 1Fh 00h 00h 01h {data01} {checksum}"
  params:
    - name: data01
      type: hex
      description: "00h=MOVE, 01h=STORE, 02h=RESET. Acts on profile set by 053-10."
    - name: checksum
      type: computed
      description: "Low byte of sum of preceding bytes."

- id: lens_memory_option_request
  label: Lens Memory Option Request (053-5)
  kind: query
  command: "02h 20h 00h 00h 01h {data01} {checksum}"
  params:
    - name: data01
      type: hex
      description: "00h=LOAD BY SIGNAL, 01h=FORCED MUTE."
    - name: checksum
      type: computed
      description: "Low byte of sum of preceding bytes."

- id: lens_memory_option_set
  label: Lens Memory Option Set (053-6)
  kind: action
  command: "02h 21h 00h 00h 02h {data01} {data02} {checksum}"
  params:
    - name: data01
      type: hex
      description: "00h=LOAD BY SIGNAL, 01h=FORCED MUTE."
    - name: data02
      type: hex
      description: "Setting value: 00h=OFF, 01h=ON."
    - name: checksum
      type: computed
      description: "Low byte of sum of preceding bytes."

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

- id: lens_profile_set
  label: Lens Profile Set (053-10)
  kind: action
  command: "02h 27h 00h 00h 01h {data01} {checksum}"
  params:
    - name: data01
      type: hex
      description: "Profile number: 00h=Profile 1, 01h=Profile 2."
    - name: checksum
      type: computed
      description: "Low byte of sum of preceding bytes."

- id: lens_profile_request
  label: Lens Profile Request (053-11)
  kind: query
  command: "02h 28h 00h 00h 00h 2Ah"
  params: []

- id: gain_parameter_request_3
  label: Gain Parameter Request 3 (060-1)
  kind: query
  command: "03h 05h 00h 00h 03h {data01} 00h 00h {checksum}"
  params:
    - name: data01
      type: hex
      description: "00h=BRIGHTNESS, 01h=CONTRAST, 02h=COLOR, 03h=HUE, 04h=SHARPNESS, 05h=VOLUME, 96h=LAMP/LIGHT ADJUST."
    - name: checksum
      type: computed
      description: "Low byte of sum of preceding bytes. Source example (brightness) → 0Bh."

- id: setting_request
  label: Setting Request (078-1)
  kind: query
  command: "00h 85h 00h 00h 01h 00h 86h"
  params: []

- id: running_status_request
  label: Running Status Request (078-2)
  kind: query
  command: "00h 85h 00h 00h 01h 01h 87h"
  params: []

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

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

- id: model_name_request
  label: Model Name Request (078-5)
  kind: query
  command: "00h 85h 00h 00h 01h 04h 8Ah"
  params: []

- id: cover_status_request
  label: Cover Status Request (078-6)
  kind: query
  command: "00h 85h 00h 00h 01h 05h 8Bh"
  params: []

- id: freeze_control
  label: Freeze Control (079)
  kind: action
  command: "01h 98h 00h 00h 01h {data01} {checksum}"
  params:
    - name: data01
      type: hex
      description: "01h=Freeze On, 02h=Freeze Off."
    - name: checksum
      type: computed
      description: "Low byte of sum of preceding bytes."

- id: information_string_request
  label: Information String Request (084)
  kind: query
  command: "00h D0h 00h 00h 03h 00h {data01} 01h {checksum}"
  params:
    - name: data01
      type: hex
      description: "Information type: 03h=Horizontal sync frequency, 04h=Vertical sync frequency."
    - name: checksum
      type: computed
      description: "Low byte of sum of preceding bytes."

- id: eco_mode_request
  label: Eco Mode Request (097-8)
  kind: query
  command: "03h B0h 00h 00h 01h 07h BBh"
  params: []

- id: lan_projector_name_request
  label: LAN Projector Name Request (097-45)
  kind: query
  command: "03h B0h 00h 00h 01h 2Ch E0h"
  params: []

- id: lan_mac_address_status_request_2
  label: LAN MAC Address Status Request 2 (097-155)
  kind: query
  command: "03h B0h 00h 00h 02h 9Ah 00h 4Fh"
  params: []

- id: pip_picture_by_picture_request
  label: PIP / Picture By Picture Request (097-198)
  kind: query
  command: "03h B0h 00h 00h 02h C5h {data01} {checksum}"
  params:
    - name: data01
      type: hex
      description: "00h=MODE, 01h=START POSITION, 02h=SUB INPUT/SUB INPUT 1, 09h=SUB INPUT 2, 0Ah=SUB INPUT 3."
    - name: checksum
      type: computed
      description: "Low byte of sum of preceding bytes."

- id: edge_blending_mode_request
  label: Edge Blending Mode Request (097-243-1)
  kind: query
  command: "03h B0h 00h 00h 02h DFh 00h 94h"
  params: []

- id: eco_mode_set
  label: Eco Mode Set (098-8)
  kind: action
  command: "03h B1h 00h 00h 02h 07h {data01} {checksum}"
  params:
    - name: data01
      type: hex
      description: "Eco-mode value. Full value table is in the Appendix (UNRESOLVED: not present in refined source)."
    - name: checksum
      type: computed
      description: "Low byte of sum of preceding bytes."

- id: lan_projector_name_set
  label: LAN Projector Name Set (098-45)
  kind: action
  command: "03h B1h 00h 00h 12h 2Ch {data01} ... {data16} 00h {checksum}"
  params:
    - name: data01_16
      type: string
      description: "Projector name, up to 16 bytes (NUL-terminated via trailing 00h)."
    - name: checksum
      type: computed
      description: "Low byte of sum of preceding bytes."

- id: pip_picture_by_picture_set
  label: PIP / Picture By Picture Set (098-198)
  kind: action
  command: "03h B1h 00h 00h 03h C5h {data01} {data02} {checksum}"
  params:
    - name: data01
      type: hex
      description: "00h=MODE, 01h=START POSITION, 02h=SUB INPUT/SUB INPUT 1, 09h=SUB INPUT 2, 0Ah=SUB INPUT 3."
    - name: data02
      type: hex
      description: "Setting value (MODE: 00h=PIP,01h=PbP; START POSITION: 00h=TOP-LEFT..03h=BOTTOM-RIGHT; sub-input values per Appendix, UNRESOLVED)."
    - name: checksum
      type: computed
      description: "Low byte of sum of preceding bytes."

- id: edge_blending_mode_set
  label: Edge Blending Mode Set (098-243-1)
  kind: action
  command: "03h B1h 00h 00h 03h DFh 00h {data01} {checksum}"
  params:
    - name: data01
      type: hex
      description: "Setting value: 00h=OFF, 01h=ON."
    - name: checksum
      type: computed
      description: "Low byte of sum of preceding bytes."

- id: base_model_type_request
  label: Base Model Type Request (305-1)
  kind: query
  command: "00h BFh 00h 00h 01h 00h C0h"
  params: []

- id: serial_number_request
  label: Serial Number Request (305-2)
  kind: query
  command: "00h BFh 00h 00h 02h 01h 06h C8h"
  params: []

- id: basic_information_request
  label: Basic Information Request (305-3)
  kind: query
  command: "00h BFh 00h 00h 01h 02h C2h"
  params: []

- id: audio_select_set
  label: Audio Select Set (319-10)
  kind: action
  command: "03h C9h 00h 00h 03h 09h {data01} {data02} {checksum}"
  params:
    - name: data01
      type: hex
      description: "Input terminal. Full value table in Appendix (UNRESOLVED: not present in refined source)."
    - name: data02
      type: hex
      description: "Setting value: 00h=the terminal in DATA01, 01h=BNC, 02h=COMPUTER."
    - name: checksum
      type: computed
      description: "Low byte of sum of preceding bytes."

Feedbacks

- id: error_status
  type: bitmask
  description: "DATA01-12 error bits from 009. 0=normal, 1=error (cover, fan, temperature, lamp, mirror cover, interlock switch, etc.)."

- id: power_status
  type: enum
  values: [standby, power_on, cooling, standby_error, standby_power_saving, network_standby]
  description: "DATA03/06 of 078-2 RUNNING STATUS REQUEST."

- id: mute_status
  type: object
  description: "078-4: picture mute, sound mute, onscreen mute, forced onscreen mute, onscreen display (each on/off)."

- id: cover_status
  type: enum
  values: [normal_opened, closed]
  description: "078-6 mirror/lens cover status."

- id: lamp_info
  type: object
  description: "037-4: lamp usage time (s) and remaining life (%). Negative remaining life if past replacement deadline."

- id: filter_usage
  type: object
  description: "037-3: filter usage time (s) and alarm start time (s); -1 if undefined."

- id: carbon_savings
  type: object
  description: "037-6: total / during-operation carbon savings (kg + mg)."

- id: lamp_filter_info
  type: object
  description: "037: projector name, lamp usage time (s), filter usage time (s). Updated 1-minute intervals."

- id: lens_position
  type: object
  description: "053-1: upper/lower/current adjustment range for requested lens target."

- id: lens_motion
  type: bitmask
  description: "053-7: lens memory / zoom / focus / lens-shift-H / lens-shift-V in-motion bits."

- id: lens_profile
  type: enum
  values: [profile_1, profile_2]
  description: "053-11 selected reference lens memory profile."

- id: gain_parameter
  type: object
  description: "060-1: upper/lower/default/current/wide/narrow range + adjustability status for requested gain."

- id: projector_setting
  type: object
  description: "078-1: base model type, sound function, profile (clock/sleep timer)."

- id: input_status
  type: object
  description: "078-3: signal switch process, signal list number, selection signal types, test pattern, content displayed."

- id: model_name
  type: string
  description: "078-5 model name string."

- id: info_string
  type: string
  description: "084 horizontal/vertical sync frequency strings."

- id: eco_mode
  type: enum
  description: "097-8 eco / light / lamp mode value."

- id: lan_projector_name
  type: string
  description: "097-45 projector name."

- id: lan_mac_address
  type: string
  description: "097-155 MAC address (6 bytes)."

- id: pip_pbp_state
  type: object
  description: "097-198 MODE / START POSITION / SUB INPUT values."

- id: edge_blending_state
  type: enum
  values: [off, on]
  description: "097-243-1."

- id: base_model_type
  type: object
  description: "305-1 base model type + model name."

- id: serial_number
  type: string
  description: "305-2 serial number string."

- id: basic_information
  type: object
  description: "305-3: operation status, content displayed, selection signal type, video mute, sound mute, onscreen mute, freeze status."

Variables

- id: eco_mode_value
  description: "Set via 098-8 / read via 097-8."
  # UNRESOLVED: numeric enum values not present in refined source (Appendix missing).

- id: lan_projector_name
  description: "Set via 098-45 / read via 097-45 (up to 16 bytes)."

- id: pip_pbp_settings
  description: "Set via 098-198 / read via 097-198 (mode, start position, sub inputs)."

- id: edge_blending
  description: "Set via 098-243-1 / read via 097-243-1 (off/on)."

- id: audio_select
  description: "Set via 319-10 per input terminal."

Events

# No unsolicited notifications are documented in the source.

Macros

# No multi-step sequences are documented explicitly in the source.

Safety

confirmation_required_for: []
interlocks:
  - "Power On (015): while turning power on, no other command can be accepted."
  - "Power Off (016): while turning power off (including cooling time), no other command can be accepted."
# No additional safety warnings, interlock procedures, or power-on sequencing
# requirements are stated in the refined source beyond the power on/off block above.

Notes

  • Frame format: commands/responses are hex-framed. Checksum (CKS) = low-order byte of the sum of all preceding bytes (see worked example in source §2.2). Every command payload above carries its checksum verbatim where the source provides a fixed one; parameterized commands carry a {checksum} computed field.
  • IDs: ID1 = projector control ID (configurable); ID2 = model code. ID2 for this model is not stated in the source (UNRESOLVED).
  • Response convention: success responses are echoed with the command opcode in the A0h/A1h/A2h/A3h acknowledgement family and carry ERR1/ERR2 on failure (see source §2.4 error-code table).
  • Baud rate: five rates supported (115200 / 38400 / 19200 / 9600 / 4800); the device is configurable, so a single canonical baud_rate is not fixed by the source.
  • Refresh granularity: lamp/filter usage times are obtainable in 1-second units but updated at 1-minute intervals.

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-16T12:02:38.021Z
last_checked_at: 2026-06-17T19:42:03.927Z

Verification Summary

verdict: verified
checked_at: 2026-06-17T19:42:03.927Z
matched_actions: 53
action_count: 53
confidence: medium
summary: "All 53 spec actions matched literally to source with correct opcode sequences and parameters; transport settings (baud rates, port 7142) confirmed verbatim. (9 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "the source manual is a generic multi-model projector reference; it does not itself name the \"E224Fl Bk\" model. Confirm this manual applies to the E224Fl Bk against the device or vendor."
- "input-terminal value table (DATA01 of 018), aspect value table, base-model-type table, eco-mode value table, and sub-input value table are referenced to an \"Appendix: Supplementary Information by Command\" that is not present in the refined source."
- "ID2 (model code) value for this model is not stated in the source."
- "RTS/CTS pins wired (D-SUB 9P) but flow-control mode not explicitly stated in source"
- "not present in refined source).\""
- "numeric enum values not present in refined source (Appendix missing)."
- "source is a generic projector command reference (BDT140013 Rev 7.1) and does not name the \"E224Fl Bk\" — model applicability unconfirmed."
- "Appendix \"Supplementary Information by Command\" (input terminal, aspect, base-model-type, eco-mode, sub-input value tables) not present in refined source."
- "ID2 model code, exact flow-control mode, and firmware compatibility not stated in source."

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