Summary

Sharp/NEC LED FA012I2 220 projector controlled via RS-232C serial or wired/wireless LAN (TCP port 7142). Binary command protocol with hex frames and a low-order-byte additive checksum. Covers power, input switching, picture/volume/aspect adjustment, lens shift/zoom/focus/memory, shutter, freeze, mute, eco mode, edge blending, PiP/PbP, and a broad set of status/information queries.

Transport

protocols:
  - serial
  - tcp
serial:
  baud_rate: [115200, 38400, 19200, 9600, 4800]  # auto-switchable; source lists all
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none  # UNRESOLVED: flow control not stated; source says full-duplex communication mode
addressing:
  port: 7142
auth:
  type: none  # inferred: no auth procedure in source

Traits

traits:
  - powerable   # inferred: POWER ON / POWER OFF commands
  - queryable   # inferred: extensive status/information request commands
  - levelable   # inferred: brightness/contrast/color/volume/lamp adjust commands

Actions

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

- id: power_on
  label: Power On
  kind: action
  command: "02h 00h 00h 00h 00h 02h"
  params: []
  notes: While turning on the power, no other command can be accepted.

- id: power_off
  label: Power Off
  kind: action
  command: "02h 01h 00h 00h 00h 03h"
  params: []
  notes: During power-off (incl. cooling time), no other command can be accepted.

- id: input_sw_change
  label: Input SW Change
  kind: action
  command: "02h 03h 00h 00h 02h 01h {DATA01} {CKS}"
  params:
    - name: DATA01
      type: integer
      description: "Input terminal value (e.g. 06h = video). See Appendix 'Supplementary Information by Command'."
  notes: CKS = low-order byte of sum of all preceding bytes. Response DATA01 FFh = ended with error (no signal switch made).

- id: picture_mute_on
  label: Picture Mute On
  kind: action
  command: "02h 10h 00h 00h 00h 12h"
  params: []
  notes: Turned off on input/video signal switch.

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

- id: sound_mute_on
  label: Sound Mute On
  kind: action
  command: "02h 12h 00h 00h 00h 14h"
  params: []
  notes: Turned off on input/video signal switch or volume adjustment.

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

- id: onscreen_mute_on
  label: Onscreen Mute On
  kind: action
  command: "02h 14h 00h 00h 00h 16h"
  params: []
  notes: Turned off on input/video signal switch.

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

- id: picture_adjust
  label: Picture Adjust
  kind: action
  command: "03h 10h 00h 00h 05h {DATA01} FFh {DATA02} {DATA03} {DATA04} {CKS}"
  params:
    - name: DATA01
      type: integer
      description: "Adjustment target: 00h Brightness, 01h Contrast, 02h Color, 03h Hue, 04h Sharpness"
    - name: DATA02
      type: integer
      description: "Adjustment mode: 00h absolute, 01h relative"
    - name: DATA03
      type: integer
      description: Adjustment value (low-order 8 bits)
    - name: DATA04
      type: integer
      description: Adjustment value (high-order 8 bits)
  notes: CKS computed. Example set brightness to 10: 03h 10h 00h 00h 05h 00h FFh 00h 0Ah 00h 21h.

- id: volume_adjust
  label: Volume Adjust
  kind: action
  command: "03h 10h 00h 00h 05h 05h 00h {DATA01} {DATA02} {DATA03} {CKS}"
  params:
    - name: DATA01
      type: integer
      description: "Adjustment mode: 00h absolute, 01h relative"
    - name: DATA02
      type: integer
      description: Adjustment value (low-order 8 bits)
    - name: DATA03
      type: integer
      description: Adjustment value (high-order 8 bits)
  notes: Example set volume to 10: 03h 10h 00h 00h 05h 05h 00h 00h 0Ah 00h 27h.

- id: aspect_adjust
  label: Aspect Adjust
  kind: action
  command: "03h 10h 00h 00h 05h 18h 00h 00h {DATA01} 00h {CKS}"
  params:
    - name: DATA01
      type: integer
      description: "Aspect value. See Appendix 'Supplementary Information by Command'."

- id: other_adjust
  label: Other Adjust (Lamp/Light Adjust)
  kind: action
  command: "03h 10h 00h 00h 05h {DATA01} {DATA02} {DATA03} {DATA04} {DATA05} {CKS}"
  params:
    - name: DATA01
      type: integer
      description: "Adjustment target high byte (96h for LAMP ADJUST / LIGHT ADJUST)"
    - name: DATA02
      type: integer
      description: "Adjustment target low byte (FFh for LAMP ADJUST / LIGHT ADJUST)"
    - name: DATA03
      type: integer
      description: "Adjustment mode: 00h absolute, 01h relative"
    - name: DATA04
      type: integer
      description: Adjustment value (low-order 8 bits)
    - name: DATA05
      type: integer
      description: Adjustment value (high-order 8 bits)

- id: information_request
  label: Information Request
  kind: query
  command: "03h 8Ah 00h 00h 00h 8Dh"
  params: []
  notes: Returns projector name (DATA01-49), lamp usage time seconds (DATA83-86), filter usage time seconds (DATA87-90). Updated at one-minute intervals.

- id: filter_usage_information_request
  label: Filter Usage Information Request
  kind: query
  command: "03h 95h 00h 00h 00h 98h"
  params: []
  notes: Returns filter usage time seconds (DATA01-04), filter alarm start time seconds (DATA05-08). -1 if no time defined.

- id: lamp_information_request_3
  label: Lamp Information Request 3
  kind: query
  command: "03h 96h 00h 00h 02h {DATA01} {DATA02} {CKS}"
  params:
    - name: DATA01
      type: integer
      description: "00h Lamp 1, 01h Lamp 2 (two-lamp models only)"
    - name: DATA02
      type: integer
      description: "Content: 01h lamp usage time (seconds), 04h lamp remaining life (%)"
  notes: Example get lamp usage time: 03h 96h 00h 00h 02h 00h 01h 9Ch. Negative remaining life if replacement deadline exceeded.

- id: carbon_savings_information_request
  label: Carbon Savings Information Request
  kind: query
  command: "03h 9Ah 00h 00h 01h {DATA01} {CKS}"
  params:
    - name: DATA01
      type: integer
      description: "00h Total Carbon Savings, 01h Carbon Savings during operation"
  notes: Returns kg (DATA02-05, max 99999) and mg (DATA06-09, max 999999).

- id: remote_key_code
  label: Remote Key Code
  kind: action
  command: "02h 0Fh 00h 00h 02h {DATA01} {DATA02} {CKS}"
  params:
    - name: DATA01
      type: integer
      description: "Key code low byte (WORD type). See key code list."
    - name: DATA02
      type: integer
      description: "Key code high byte. See key code list."
  notes: "Key code list: 02h/00h POWER ON, 03h/00h POWER OFF, 05h/00h AUTO, 06h/00h MENU, 07h/00h UP, 08h/00h DOWN, 09h/00h RIGHT, 0Ah/00h LEFT, 0Bh/00h ENTER, 0Ch/00h EXIT, 0Dh/00h HELP, 0Fh/00h MAGNIFY UP, 10h/00h MAGNIFY DOWN, 13h/00h MUTE, 29h/00h PICTURE, 4Bh/00h COMPUTER1, 4Ch/00h COMPUTER2, 4Fh/00h VIDEO1, 51h/00h S-VIDEO1, 84h/00h VOLUME UP, 85h/00h VOLUME DOWN, 8Ah/00h FREEZE, A3h/00h ASPECT, D7h/00h SOURCE, EEh/00h LAMP MODE/ECO. Example AUTO: 02h 0Fh 00h 00h 02h 05h 00h 18h."

- id: shutter_close
  label: Shutter Close
  kind: action
  command: "02h 16h 00h 00h 00h 18h"
  params: []
  notes: Closes lens shutter.

- id: shutter_open
  label: Shutter Open
  kind: action
  command: "02h 17h 00h 00h 00h 19h"
  params: []
  notes: Opens lens shutter.

- id: lens_control
  label: Lens Control
  kind: action
  command: "02h 18h 00h 00h 02h {DATA01} {DATA02} {CKS}"
  params:
    - name: DATA01
      type: integer
      description: "Lens target: 06h Periphery Focus (and others per source)"
    - name: DATA02
      type: integer
      description: "Content: 00h Stop, 01h +1s, 02h +0.5s, 03h +0.25s, 7Fh drive +, 81h drive -, FDh -0.25s, FEh -0.5s, FFh -1s"
  notes: Send 00h to stop after 7Fh/81h. Same command can be reissued while driving to control without stop.

- id: lens_control_request
  label: Lens Control Request
  kind: query
  command: "02h 1Ch 00h 00h 02h {DATA01} 00h {CKS}"
  params:
    - name: DATA01
      type: integer
      description: Lens target
  notes: Returns upper/lower limit and current value (each as 16-bit).

- id: lens_control_2
  label: Lens Control 2
  kind: action
  command: "02h 1Dh 00h 00h 04h {DATA01} {DATA02} {DATA03} {DATA04} {CKS}"
  params:
    - name: DATA01
      type: integer
      description: "FFh = Stop"
    - name: DATA02
      type: integer
      description: "Adjustment mode: 00h absolute, 02h relative"
    - name: DATA03
      type: integer
      description: Adjustment value (low-order 8 bits)
    - name: DATA04
      type: integer
      description: Adjustment value (high-order 8 bits)
  notes: If DATA01 = FFh (Stop), mode/value not referenced.

- id: lens_memory_control
  label: Lens Memory Control
  kind: action
  command: "02h 1Eh 00h 00h 01h {DATA01} {CKS}"
  params:
    - name: DATA01
      type: integer
      description: "00h MOVE, 01h STORE, 02h RESET"

- id: reference_lens_memory_control
  label: Reference Lens Memory Control
  kind: action
  command: "02h 1Fh 00h 00h 01h {DATA01} {CKS}"
  params:
    - name: DATA01
      type: integer
      description: "00h MOVE, 01h STORE, 02h RESET"
  notes: Controls profile number specified by LENS PROFILE SET.

- id: lens_memory_option_request
  label: Lens Memory Option Request
  kind: query
  command: "02h 20h 00h 00h 01h {DATA01} {CKS}"
  params:
    - name: DATA01
      type: integer
      description: "00h LOAD BY SIGNAL, 01h FORCED MUTE"
  notes: Returns setting value DATA02 (00h OFF, 01h ON).

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

- id: lens_information_request
  label: Lens Information Request
  kind: query
  command: "02h 22h 00h 00h 01h 00h 25h"
  params: []
  notes: Returns DATA01 bitfield: Bit0 Lens memory, Bit1 Zoom, Bit2 Focus, Bit3 Lens Shift (H), Bit4 Lens Shift (V) (0 Stop / 1 During operation).

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

- id: lens_profile_request
  label: Lens Profile Request
  kind: query
  command: "02h 28h 00h 00h 00h 2Ah"
  params: []
  notes: Returns DATA01 profile number (00h Profile 1, 01h Profile 2).

- id: gain_parameter_request_3
  label: Gain Parameter Request 3
  kind: query
  command: "03h 05h 00h 00h 03h {DATA01} 00h 00h {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 status, upper/lower limits, default, current, wide/narrow adjustment widths. Example brightness: 03h 05h 00h 00h 03h 00h 00h 00h 0Bh.

- id: setting_request
  label: Setting Request
  kind: query
  command: "00h 85h 00h 00h 01h 00h 86h"
  params: []
  notes: Returns base model type (DATA01-03), sound function (DATA04), profile number (DATA05).

- id: running_status_request
  label: Running Status Request
  kind: query
  command: "00h 85h 00h 00h 01h 01h 87h"
  params: []
  notes: Returns power status (DATA03), cooling process (DATA04), power on/off process (DATA05), operation status (DATA06).

- id: input_status_request
  label: Input Status Request
  kind: query
  command: "00h 85h 00h 00h 01h 02h 88h"
  params: []
  notes: Returns signal switch process (DATA01), signal list number -1 (DATA02), selection signal type 1 (DATA03), type 2 (DATA04), list type (DATA05), test pattern (DATA06), content displayed (DATA09).

- id: mute_status_request
  label: Mute Status Request
  kind: query
  command: "00h 85h 00h 00h 01h 03h 89h"
  params: []
  notes: Returns picture mute (DATA01), sound mute (DATA02), onscreen mute (DATA03), forced onscreen mute (DATA04), onscreen display (DATA05).

- id: model_name_request
  label: Model Name Request
  kind: query
  command: "00h 85h 00h 00h 01h 04h 8Ah"
  params: []
  notes: Returns model name (DATA01-32, NUL-terminated).

- id: cover_status_request
  label: Cover Status Request
  kind: query
  command: "00h 85h 00h 00h 01h 05h 8Bh"
  params: []
  notes: Returns DATA01: 00h Normal (cover opened), 01h Cover closed.

- id: freeze_control
  label: Freeze Control
  kind: action
  command: "01h 98h 00h 00h 01h {DATA01} {CKS}"
  params:
    - name: DATA01
      type: integer
      description: "01h freeze on, 02h freeze off"

- id: information_string_request
  label: Information String Request
  kind: query
  command: "00h D0h 00h 00h 03h 00h {DATA01} 01h {CKS}"
  params:
    - name: DATA01
      type: integer
      description: "Information type: 03h horizontal sync frequency, 04h vertical sync frequency"
  notes: Returns label/info string (English, NUL-terminated).

- id: eco_mode_request
  label: Eco Mode Request
  kind: query
  command: "03h B0h 00h 00h 01h 07h BBh"
  params: []
  notes: Returns eco/light/lamp mode value. See Appendix 'Supplementary Information by Command'.

- id: lan_projector_name_request
  label: LAN Projector Name Request
  kind: query
  command: "03h B0h 00h 00h 01h 2Ch E0h"
  params: []
  notes: Returns projector name (DATA01-17, NUL-terminated).

- id: lan_mac_address_status_request_2
  label: LAN MAC Address Status Request 2
  kind: query
  command: "03h B0h 00h 00h 02h 9Ah 00h 4Fh"
  params: []
  notes: Returns MAC address (DATA01-06).

- id: pip_picture_by_picture_request
  label: PIP/Picture By Picture Request
  kind: query
  command: "03h B0h 00h 00h 02h C5h {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"
  notes: Returns DATA02 setting value (mode/position/sub-input per DATA01).

- id: edge_blending_mode_request
  label: Edge Blending Mode Request
  kind: query
  command: "03h B0h 00h 00h 02h DFh 00h 94h"
  params: []
  notes: Returns DATA01: 00h OFF, 01h ON.

- id: eco_mode_set
  label: Eco Mode Set
  kind: action
  command: "03h B1h 00h 00h 02h 07h {DATA01} {CKS}"
  params:
    - name: DATA01
      type: integer
      description: "Eco/light/lamp mode value. See Appendix 'Supplementary Information by Command'."

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

- id: pip_picture_by_picture_set
  label: PIP/Picture By Picture Set
  kind: action
  command: "03h B1h 00h 00h 03h C5h {DATA01} {DATA02} {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"
    - name: DATA02
      type: integer
      description: "Setting value (PIP/PbP for MODE; TOP-LEFT/TOP-RIGHT/BOTTOM-LEFT/BOTTOM-RIGHT for position; sub-input value otherwise)."

- id: edge_blending_mode_set
  label: Edge Blending Mode Set
  kind: action
  command: "03h B1h 00h 00h 03h DFh 00h {DATA01} {CKS}"
  params:
    - name: DATA01
      type: integer
      description: "Setting value: 00h OFF, 01h ON"

- id: base_model_type_request
  label: Base Model Type Request
  kind: query
  command: "00h BFh 00h 00h 01h 00h C0h"
  params: []
  notes: Returns base model type (DATA01-02, DATA12-13), model name (DATA03-11).

- id: serial_number_request
  label: Serial Number Request
  kind: query
  command: "00h BFh 00h 00h 02h 01h 06h C8h"
  params: []
  notes: Returns serial number (DATA01-16, NUL-terminated).

- id: basic_information_request
  label: Basic Information Request
  kind: query
  command: "00h BFh 00h 00h 01h 02h C2h"
  params: []
  notes: Returns operation status (DATA01), content displayed (DATA02), signal types (DATA03-05), video/sound/onscreen mute (DATA06-08), freeze status (DATA09).

- id: audio_select_set
  label: Audio Select Set
  kind: action
  command: "03h C9h 00h 00h 03h 09h {DATA01} {DATA02} {CKS}"
  params:
    - name: DATA01
      type: integer
      description: "Input terminal. See Appendix 'Supplementary Information by Command'."
    - name: DATA02
      type: integer
      description: "Setting value: 00h terminal specified in DATA01, 01h BNC, 02h COMPUTER"

Feedbacks

# Success response frame per command: header 2Xh (X = cmd group) + cmd bytes + ID1 ID2 + LEN + DATA + CKS.
# Error response frame: header AXh + cmd bytes + ID1 ID2 + 02h + ERR1 ERR2 + CKS.
- id: command_error
  type: enum
  values:
    - "ERR1/ERR2 00h/00h: command not recognized"
    - "ERR1/ERR2 00h/01h: command not supported by model"
    - "ERR1/ERR2 01h/00h: specified value invalid"
    - "ERR1/ERR2 01h/01h: specified input terminal invalid"
    - "ERR1/ERR2 01h/02h: specified language invalid"
    - "ERR1/ERR2 02h/00h: memory allocation error"
    - "ERR1/ERR2 02h/02h: memory in use"
    - "ERR1/ERR2 02h/03h: specified value cannot be set"
    - "ERR1/ERR2 02h/04h: forced onscreen mute on"
    - "ERR1/ERR2 02h/06h: viewer error"
    - "ERR1/ERR2 02h/07h: no signal"
    - "ERR1/ERR2 02h/08h: test pattern or filter displayed"
    - "ERR1/ERR2 02h/09h: no PC card inserted"
    - "ERR1/ERR2 02h/0Ah: memory operation error"
    - "ERR1/ERR2 02h/0Ch: entry list displayed"
    - "ERR1/ERR2 02h/0Dh: command not accepted (power off)"
    - "ERR1/ERR2 02h/0Eh: command execution failed"
    - "ERR1/ERR2 02h/0Fh: no authority for operation"
    - "ERR1/ERR2 03h/00h: specified gain number incorrect"
    - "ERR1/ERR2 03h/01h: specified gain invalid"
    - "ERR1/ERR2 03h/02h: adjustment failed"

Variables

# Settable parameters exposed via dedicated request/set commands (see Actions):
# - brightness, contrast, color, hue, sharpness (PICTURE ADJUST / GAIN PARAMETER REQUEST 3)
# - volume (VOLUME ADJUST / GAIN PARAMETER REQUEST 3)
# - lamp/light adjust (OTHER ADJUST / GAIN PARAMETER REQUEST 3)
# - aspect (ASPECT ADJUST)
# - eco/light/lamp mode (ECO MODE SET / ECO MODE REQUEST)
# - projector name (LAN PROJECTOR NAME SET)
# - lens memory option (LENS MEMORY OPTION SET)
# UNRESOLVED: exact min/max ranges only obtainable at runtime via GAIN PARAMETER REQUEST 3 limits; source does not publish static ranges.

Events

# UNRESOLVED: no unsolicited notification mechanism described in source. All status is poll-based via request commands.

Macros

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

Safety

confirmation_required_for:
  - power_off  # projector enters cooling; no commands accepted during cooldown
interlocks: []
notes: >-
  Power-on and power-off sequences block all other commands for the duration of
  the transition (including cooling time). Several error states (cover error,
  temperature error, fan error, lamp replacement moratorium) are reported via
  ERROR STATUS REQUEST and may prevent command acceptance (ERR 02h/0Dh when
  power off). Lens not installed properly, foreign-matter sensor, and interlock
  switch open are reported as error bits.
# UNRESOLVED: source states no explicit power-on sequencing procedure beyond command-blocking behavior.

Notes

  • Frame structure: Commands begin with a group header byte (00h–03h). Success responses begin with 20h–23h; error responses begin with A0h–A3h. The second byte echoes the command mnemonic. Responses carry ID1 (control ID) and ID2 (model code) which commands do not.
  • Checksum (CKS): low-order one byte (8 bits) of the sum of all preceding bytes. Example: 20h+81h+01h+60h+01h+00h = 103h → CKS = 03h.
  • Baud rate is auto-switchable across 4800/9600/19200/38400/115200 bps; all are valid.
  • Serial cable is a cross cable to the PC CONTROL port (D-SUB 9P); pinout documented in source (pin2 RxD, pin3 TxD, pin5 GND, pin7 RTS, pin8 CTS).
  • Usage-time fields (lamp/filter) return seconds and update at one-minute intervals.
  • Appendix "Supplementary Information by Command" (referenced for input terminal values, aspect values, eco mode values, sub-input values, base model types) is not included in this source excerpt.

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-16T17:51:32.146Z
last_checked_at: 2026-06-17T20:11:44.938Z

Verification Summary

verdict: verified
checked_at: 2026-06-17T20:11:44.938Z
matched_actions: 53
action_count: 53
confidence: medium
summary: "All 53 spec actions match source commands verbatim; transport parameters supported; one-to-one coverage. (10 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "wireless LAN unit details not specified (refers to operation manual). Firmware version compatibility not stated."
- "flow control not stated; source says full-duplex communication mode"
- "exact min/max ranges only obtainable at runtime via GAIN PARAMETER REQUEST 3 limits; source does not publish static ranges."
- "no unsolicited notification mechanism described in source. All status is poll-based via request commands."
- "no multi-step sequences described in source."
- "source states no explicit power-on sequencing procedure beyond command-blocking behavior."
- "firmware version compatibility not stated in source."
- "Appendix 'Supplementary Information by Command' enumerations (input terminal, aspect, eco mode, sub-input, base model type values) not present in source."
- "ID2 model code value for LED FA012I2 220 not stated."
- "flow_control not stated in source (full-duplex noted only)."

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