Summary
NEC X431BT-R Series professional projector supporting both RS-232C serial and wired TCP/IP control. The projector accepts hexadecimal command packets with checksum validation and returns acknowledgements or data responses. Supported functions include power control, input routing, picture/sound muting, lens positioning, eco mode, and comprehensive status querying.
Transport
protocols:
- serial
- tcp
serial:
baud_rate: null # UNRESOLVED: no single default; source lists 115200/38400/19200/9600/4800 bps configurable
data_bits: 8
parity: none
stop_bits: 1
flow_control: none # full-duplex; RTS/CTS pins present but no flow-control setting stated
addressing:
port: 7142 # stated for wired LAN send/receive
auth:
type: none # inferred: no auth/login procedure in source
Traits
- powerable # inferred from POWER ON / POWER OFF commands
- routable # inferred from INPUT SW CHANGE command
- queryable # inferred from many REQUEST commands
- levelable # inferred from PICTURE ADJUST / VOLUME ADJUST / OTHER ADJUST
Actions
# --- Power ---
- id: power_on
label: Power On
kind: action
command: "02 00 00 00 00 02"
params: []
description: Turns on projector power. No other command accepted during power-on sequence.
- id: power_off
label: Power Off
kind: action
command: "02 01 00 00 00 03"
params: []
description: Turns off projector power. No other command accepted during cooling sequence.
# --- Input routing ---
- id: input_sw_change
label: Input Switch Change
kind: action
command: "02 03 00 00 02 01 {input} {checksum}"
params:
- name: input
type: integer
description: "Input terminal hex code (e.g. 06h=VIDEO, 01h=COMPUTER, A1h=HDMI, 20h=LAN). See Appendix input terminal table."
- name: checksum
type: string
description: "Low-order byte of sum of all preceding bytes."
description: Switches input terminal or entry list. See Appendix for full input terminal code table.
# --- Mutes ---
- id: picture_mute_on
label: Picture Mute On
kind: action
command: "02 10 00 00 00 12"
params: []
description: Turns picture mute on. Cancelled by input switch or video signal switch.
- id: picture_mute_off
label: Picture Mute Off
kind: action
command: "02 11 00 00 00 13"
params: []
- id: sound_mute_on
label: Sound Mute On
kind: action
command: "02 12 00 00 00 14"
params: []
description: Turns sound mute on. Cancelled by input switch, video signal switch, or volume adjustment.
- id: sound_mute_off
label: Sound Mute Off
kind: action
command: "02 13 00 00 00 15"
params: []
- id: onscreen_mute_on
label: Onscreen Mute On
kind: action
command: "02 14 00 00 00 16"
params: []
description: Turns onscreen mute on. Cancelled by input switch or video signal switch.
- id: onscreen_mute_off
label: Onscreen Mute Off
kind: action
command: "02 15 00 00 00 17"
params: []
# --- Adjustments (030 group) ---
- id: picture_adjust
label: Picture Adjust
kind: action
command: "03 10 00 00 05 {target} FF {value_lo} {value_hi} {checksum}"
params:
- name: target
type: integer
description: "Adjustment target (00h=Brightness, 01h=Contrast, 02h=Color, 03h=Hue, 04h=Sharpness)"
- name: mode
type: integer
description: "Adjustment mode (00h=absolute, 01h=relative)"
- name: value_lo
type: integer
description: "Adjustment value low-order byte (16-bit signed)"
- name: value_hi
type: integer
description: "Adjustment value high-order byte (16-bit signed; negative = two's complement)"
- name: checksum
type: string
description: "Low-order byte of sum of all preceding bytes."
description: Adjusts picture parameters. Value is 16-bit signed; negative values represented in two's complement. DATA02 mode byte hardcoded FFh in source.
- id: volume_adjust
label: Volume Adjust
kind: action
command: "03 10 00 00 05 05 00 {mode} {value_lo} {value_hi} {checksum}"
params:
- name: mode
type: integer
description: "Adjustment mode (00h=absolute, 01h=relative)"
- name: value_lo
type: integer
description: "Adjustment value low-order byte (16-bit signed)"
- name: value_hi
type: integer
description: "Adjustment value high-order byte (16-bit signed)"
- name: checksum
type: string
description: "Low-order byte of sum of all preceding bytes."
- id: aspect_adjust
label: Aspect Adjust
kind: action
command: "03 10 00 00 05 18 00 00 {value} 00 {checksum}"
params:
- name: value
type: integer
description: "Aspect mode hex code (00h=AUTO, 01h=WIDE ZOOM, 02h=16:9, 03h=NATIVE, 04h=4:3, 05h=15:9, 06h=16:10, 07h=LETTER BOX/ZOOM, 08h=ZOOM, 09h/10h=FULL). See Appendix."
- name: checksum
type: string
description: "Low-order byte of sum of all preceding bytes."
description: Adjusts aspect ratio. See Appendix for full aspect code table.
- id: other_adjust
label: Other Adjust (Lamp/Light)
kind: action
command: "03 10 00 00 05 {target_lo} {target_hi} {mode} {value_lo} {value_hi} {checksum}"
params:
- name: target_lo
type: integer
description: "Target low byte (96h for LAMP ADJUST / LIGHT ADJUST)"
- name: target_hi
type: integer
description: "Target high byte (FFh for LAMP ADJUST / LIGHT ADJUST)"
- name: mode
type: integer
description: "Adjustment mode (00h=absolute, 01h=relative)"
- name: value_lo
type: integer
description: "Adjustment value low-order byte (16-bit signed)"
- name: value_hi
type: integer
description: "Adjustment value high-order byte (16-bit signed)"
- name: checksum
type: string
description: "Low-order byte of sum of all preceding bytes."
# --- Remote key ---
- id: remote_key_code
label: Remote Key Code
kind: action
command: "02 0F 00 00 02 {key_lo} {key_hi} {checksum}"
params:
- name: key_lo
type: integer
description: "Key code low byte (DATA01). Key codes: 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."
- name: key_hi
type: integer
description: "Key code high byte (DATA02, typically 00h)"
- name: checksum
type: string
description: "Low-order byte of sum of all preceding bytes."
description: Sends remote control key code to projector.
# --- Shutter ---
- id: shutter_close
label: Shutter Close
kind: action
command: "02 16 00 00 00 18"
params: []
description: Closes the lens shutter.
- id: shutter_open
label: Shutter Open
kind: action
command: "02 17 00 00 00 19"
params: []
description: Opens the lens shutter.
# --- Lens ---
- id: lens_control
label: Lens Control
kind: action
command: "02 18 00 00 02 {target} {direction} {checksum}"
params:
- name: target
type: integer
description: "Target (06h=Periphery Focus)"
- name: direction
type: integer
description: "Direction/stop (00h=Stop, 01h=Drive+1s, 02h=Drive+0.5s, 03h=Drive+0.25s, 7Fh=Drive continuous+, 81h=Drive continuous-, FDh=Drive-0.25s, FEh=Drive-0.5s, FFh=Drive-1s)"
- name: checksum
type: string
description: "Low-order byte of sum of all preceding bytes."
description: Adjusts lens position. Sending 7Fh or 81h while lens is moving stops it with 00h.
- id: lens_control_2
label: Lens Control 2
kind: action
command: "02 1D 00 00 04 {control} {mode} {value_lo} {value_hi} {checksum}"
params:
- name: control
type: integer
description: "Control (FFh=Stop, otherwise drive)"
- name: mode
type: integer
description: "Mode (00h=absolute, 02h=relative)"
- name: value_lo
type: integer
description: "16-bit adjustment value low-order byte"
- name: value_hi
type: integer
description: "16-bit adjustment value high-order byte"
- name: checksum
type: string
description: "Low-order byte of sum of all preceding bytes."
description: Fine lens position adjustment with absolute or relative mode.
- id: lens_memory_control
label: Lens Memory Control
kind: action
command: "02 1E 00 00 01 {operation} {checksum}"
params:
- name: operation
type: integer
description: "Operation (00h=MOVE, 01h=STORE, 02h=RESET)"
- name: checksum
type: string
description: "Low-order byte of sum of all preceding bytes."
description: Controls lens memory (MOVE, STORE, RESET).
- id: reference_lens_memory_control
label: Reference Lens Memory Control
kind: action
command: "02 1F 00 00 01 {operation} {checksum}"
params:
- name: operation
type: integer
description: "Operation (00h=MOVE, 01h=STORE, 02h=RESET)"
- name: checksum
type: string
description: "Low-order byte of sum of all preceding bytes."
description: Controls reference lens memory by profile number set via LENS PROFILE SET.
- id: lens_memory_option_set
label: Lens Memory Option Set
kind: action
command: "02 21 00 00 02 {option} {value} {checksum}"
params:
- name: option
type: integer
description: "Option (00h=LOAD BY SIGNAL, 01h=FORCED MUTE)"
- name: value
type: integer
description: "Setting (00h=OFF, 01h=ON)"
- name: checksum
type: string
description: "Low-order byte of sum of all preceding bytes."
- id: lens_profile_set
label: Lens Profile Set
kind: action
command: "02 27 00 00 01 {profile} {checksum}"
params:
- name: profile
type: integer
description: "Profile number (00h=Profile 1, 01h=Profile 2)"
- name: checksum
type: string
description: "Low-order byte of sum of all preceding bytes."
description: Selects profile number for reference lens memory.
# --- Freeze ---
- id: freeze_control
label: Freeze Control
kind: action
command: "01 98 00 00 01 {action} {checksum}"
params:
- name: action
type: integer
description: "Action (01h=Freeze ON, 02h=Freeze OFF)"
- name: checksum
type: string
description: "Low-order byte of sum of all preceding bytes."
# --- Eco mode ---
- id: eco_mode_set
label: Eco Mode Set
kind: action
command: "03 B1 00 00 02 07 {mode} {checksum}"
params:
- name: mode
type: integer
description: "Eco mode hex code (00h=OFF/Normal, 01h=Normal/AUTO ECO/ON, 02h=ECO1, 03h=ECO2, 04h=LONG LIFE, 05h=BOOST, 06h=SILENT). Values vary by model; see Appendix."
- name: checksum
type: string
description: "Low-order byte of sum of all preceding bytes."
description: Sets eco mode (Light mode or Lamp mode depending on projector).
# --- LAN name ---
- id: lan_projector_name_set
label: LAN Projector Name Set
kind: action
command: "03 B1 00 00 12 2C {name_16_bytes} 00 {checksum}"
params:
- name: name_16_bytes
type: string
description: "Projector name (up to 16 bytes), followed by NUL terminator"
- name: checksum
type: string
description: "Low-order byte of sum of all preceding bytes."
description: Sets the projector name over LAN.
# --- PIP / Picture by Picture ---
- id: pip_picture_by_picture_set
label: PIP/Picture by Picture Set
kind: action
command: "03 B1 00 00 03 C5 {target} {value} {checksum}"
params:
- name: target
type: integer
description: "Target (00h=MODE, 01h=START POSITION, 02h=SUB INPUT/SUB INPUT 1, 09h=SUB INPUT 2, 0Ah=SUB INPUT 3)"
- name: value
type: integer
description: "Setting value (MODE: 00h=PIP, 01h=PICTURE BY PICTURE; POSITION: 00h=TOP-LEFT, 01h=TOP-RIGHT, 02h=BOTTOM-LEFT, 03h=BOTTOM-RIGHT)"
- name: checksum
type: string
description: "Low-order byte of sum of all preceding bytes."
description: Sets picture-in-picture or picture-by-picture mode and position.
# --- Edge blending ---
- id: edge_blending_mode_set
label: Edge Blending Mode Set
kind: action
command: "03 B1 00 00 03 DF 00 {mode} {checksum}"
params:
- name: mode
type: integer
description: "Mode (00h=OFF, 01h=ON)"
- name: checksum
type: string
description: "Low-order byte of sum of all preceding bytes."
# --- Audio select ---
- id: audio_select_set
label: Audio Select Set
kind: action
command: "03 C9 00 00 03 09 {input} {value} {checksum}"
params:
- name: input
type: integer
description: "Input terminal hex code for audio source. See Appendix input terminal table."
- name: value
type: integer
description: "Setting value (00h=terminal specified in DATA01, 01h=BNC, 02h=COMPUTER)"
- name: checksum
type: string
description: "Low-order byte of sum of all preceding bytes."
description: Sets audio input source. See Appendix for full input terminal codes.
# ====================================================================
# QUERY COMMANDS (REQUEST family) - request payload commands.
# Response shape documented in corresponding Feedback entry.
# ====================================================================
- id: error_status_request
label: Error Status Request
kind: query
command: "00 88 00 00 00 88"
params: []
description: "Gets error information (12 bytes). See Feedback error_status."
- id: information_request
label: Information Request
kind: query
command: "03 8A 00 00 00 8D"
params: []
description: "Gets projector info (name, lamp usage, filter usage). See Feedback projector_info."
- id: filter_usage_information_request
label: Filter Usage Information Request
kind: query
command: "03 95 00 00 00 98"
params: []
description: "Gets filter usage time and alarm start time. See Feedback filter_usage."
- id: lamp_information_request_3
label: Lamp Information Request 3
kind: query
command: "03 96 00 00 02 {lamp} {content} {checksum}"
params:
- name: lamp
type: integer
description: "Lamp number (00h=Lamp1, 01h=Lamp2)"
- name: content
type: integer
description: "Content (01h=usage time seconds, 04h=remaining life percent)"
- name: checksum
type: string
description: "Low-order byte of sum of all preceding bytes."
description: "Gets lamp usage time / remaining life. See Feedback lamp_info."
- id: carbon_savings_information_request
label: Carbon Savings Information Request
kind: query
command: "03 9A 00 00 01 {type} {checksum}"
params:
- name: type
type: integer
description: "Type (00h=Total, 01h=Operation)"
- name: checksum
type: string
description: "Low-order byte of sum of all preceding bytes."
description: "Gets carbon savings values. See Feedback carbon_savings."
- id: lens_control_request
label: Lens Control Request
kind: query
command: "02 1C 00 00 02 {target} 00 {checksum}"
params:
- name: target
type: integer
description: "Lens target to query"
- name: checksum
type: string
description: "Low-order byte of sum of all preceding bytes."
description: "Gets adjusted lens position values (limits + current). See Feedback lens_position."
- id: lens_memory_option_request
label: Lens Memory Option Request
kind: query
command: "02 20 00 00 01 {option} {checksum}"
params:
- name: option
type: integer
description: "Option (00h=LOAD BY SIGNAL, 01h=FORCED MUTE)"
- name: checksum
type: string
description: "Low-order byte of sum of all preceding bytes."
description: "Gets lens memory option setting. See Feedback lens_memory_option."
- id: lens_information_request
label: Lens Information Request
kind: query
command: "02 22 00 00 01 00 25"
params: []
description: "Gets lens movement status bitfield. See Feedback lens_info."
- id: lens_profile_request
label: Lens Profile Request
kind: query
command: "02 28 00 00 00 2A"
params: []
description: "Gets selected reference lens memory profile number. See Feedback lens_profile."
- id: gain_parameter_request_3
label: Gain Parameter Request 3
kind: query
command: "03 05 00 00 03 {target} 00 00 {checksum}"
params:
- name: target
type: integer
description: "Adjusted value name (00h=BRIGHTNESS, 01h=CONTRAST, 02h=COLOR, 03h=HUE, 04h=SHARPNESS, 05h=VOLUME, 96h=LAMP/LIGHT ADJUST)"
- name: checksum
type: string
description: "Low-order byte of sum of all preceding bytes."
description: "Gets gain parameter ranges + current value. See Feedback gain_parameter."
- id: setting_request
label: Setting Request
kind: query
command: "00 85 00 00 01 00 86"
params: []
description: "Gets projector setting info (base model, sound, profile/clock). See Feedback setting_info."
- id: running_status_request
label: Running Status Request
kind: query
command: "00 85 00 00 01 01 87"
params: []
description: "Gets operation status (power, cooling, on/off process). See Feedback running_status and power_state."
- id: input_status_request
label: Input Status Request
kind: query
command: "00 85 00 00 01 02 88"
params: []
description: "Gets input signal status. See Feedback input_status."
- id: mute_status_request
label: Mute Status Request
kind: query
command: "00 85 00 00 01 03 89"
params: []
description: "Gets picture/sound/onscreen mute status. See Feedback mute_status."
- id: model_name_request
label: Model Name Request
kind: query
command: "00 85 00 00 01 04 8A"
params: []
description: "Gets model name string. See Feedback model_name."
- id: cover_status_request
label: Cover Status Request
kind: query
command: "00 85 00 00 01 05 8B"
params: []
description: "Gets mirror/lens cover status. See Feedback cover_status."
- id: information_string_request
label: Information String Request
kind: query
command: "00 D0 00 00 03 00 {type} 01 {checksum}"
params:
- name: type
type: integer
description: "Information type (03h=Horizontal sync freq, 04h=Vertical sync freq)"
- name: checksum
type: string
description: "Low-order byte of sum of all preceding bytes."
description: "Gets information strings (English) e.g. sync frequencies. See Feedback info_string."
- id: eco_mode_request
label: Eco Mode Request
kind: query
command: "03 B0 00 00 01 07 BB"
params: []
description: "Gets eco mode setting. See Feedback eco_mode."
- id: lan_projector_name_request
label: LAN Projector Name Request
kind: query
command: "03 B0 00 00 01 2C E0"
params: []
description: "Gets projector name (LAN). See Feedback lan_projector_name."
- id: lan_mac_address_request_2
label: LAN MAC Address Status Request 2
kind: query
command: "03 B0 00 00 02 9A 00 4F"
params: []
description: "Gets MAC address. See Feedback mac_address."
- id: pip_picture_by_picture_request
label: PIP/Picture by Picture Request
kind: query
command: "03 B0 00 00 02 C5 {target} {checksum}"
params:
- name: target
type: integer
description: "Target (00h=MODE, 01h=START POSITION, 02h=SUB INPUT/SUB INPUT 1, 09h=SUB INPUT 2, 0Ah=SUB INPUT 3)"
- name: checksum
type: string
description: "Low-order byte of sum of all preceding bytes."
description: "Gets PIP/PbP setting. See Feedback pip_status."
- id: edge_blending_mode_request
label: Edge Blending Mode Request
kind: query
command: "03 B0 00 00 02 DF 00 94"
params: []
description: "Gets edge blending setting. See Feedback edge_blending_mode."
- id: base_model_type_request
label: Base Model Type Request
kind: query
command: "00 BF 00 00 01 00 C0"
params: []
description: "Gets base model type and model name. See Feedback base_model_type."
- id: serial_number_request
label: Serial Number Request
kind: query
command: "00 BF 00 00 02 01 06 C8"
params: []
description: "Gets serial number string. See Feedback serial_number."
- id: basic_information_request
label: Basic Information Request
kind: query
command: "00 BF 00 00 01 02 C2"
params: []
description: "Gets basic operation status. See Feedback basic_info."
Feedbacks
- id: error_status
label: Error Status
type: bitfield
description: Returns 12 bytes of error information. Bit=0 normal, Bit=1 error. DATA01: Cover error(Bit0), Temp error(Bit1), Fan error(Bit3), Fan error(Bit4), Power error(Bit5), Lamp off(Bit6), Lamp moratorium(Bit7). DATA02: Lamp time exceeded(Bit0), Formatter error(Bit1), Lamp2 off(Bit2). DATA03: FPGA error(Bit1), Temp sensor error(Bit2), Lamp data error(Bit4), Mirror cover error(Bit5), Lamp2 moratorium(Bit6), Lamp2 time exceeded(Bit7). DATA04: Lamp2 not present(Bit0), Lamp2 data error(Bit1), Dust temp error(Bit2), Foreign matter sensor(Bit3), Ballast comm error(Bit5), Iris cal error(Bit6), Lens not installed(Bit7). DATA09: Portrait cover side up(Bit0), Interlock switch open(Bit1), Slave CPU error(Bit2), Formatter error(Bit3).
- id: power_state
label: Power State
type: enum
values:
- "00h: Standby"
- "01h: Power on"
- "04h: Power on"
- "05h: Cooling"
- "06h: Standby (error)"
- "0Fh: Standby (Power saving)"
- "10h: Network standby"
- "FFh: Not supported"
description: From RUNNING STATUS REQUEST (DATA03/DATA06) and BASIC INFORMATION REQUEST (DATA01).
- id: running_status
label: Running Status
type: object
description: "DATA01-02: Reserved. DATA03: Power status. DATA04: Cooling process (00h=not executed, 01h=during execution, FFh=not supported). DATA05: Power On/Off process. DATA06: Operation status (00h=Standby Sleep, 04h=Power on, 05h=Cooling, 06h=Standby error, 0Fh=Standby Power saving, 10h=Network standby, FFh=not supported)."
- id: input_status
label: Input Status
type: object
description: "DATA01: Signal switch process. DATA02: Signal list number (returned value+1=practical). DATA03: Selection signal type 1 (01h=1, 02h=2, 03h=3, 04h=4, 05h=5). DATA04: Selection signal type 2 (01h=COMPUTER, 02h=VIDEO, 03h=S-VIDEO, 04h=COMPONENT, 05h=Reserved, 07h=VIEWER1-5, 20h=DVI-D, 21h=HDMI, 22h=DisplayPort, 23h=VIEWER6-10, FFh=Not Source Input). DATA05: Signal list type. DATA06: Test pattern display. DATA09: Content displayed (00h=Video signal, 01h=No signal, 02h=Viewer, 03h=Test pattern, 04h=LAN, FFh=Not supported)."
- id: mute_status
label: Mute Status
type: object
description: "DATA01: Picture mute (00h=Off, 01h=On). DATA02: Sound mute (00h=Off, 01h=On). DATA03: Onscreen mute (00h=Off, 01h=On). DATA04: Forced onscreen mute (00h=Off, 01h=On). DATA05: Onscreen display (00h=Not displayed, 01h=Displayed)."
- id: model_name
label: Model Name
type: string
description: Returns model name string (up to 32 bytes, NUL-terminated) from MODEL NAME REQUEST.
- id: cover_status
label: Cover Status
type: enum
values:
- "00h: Normal (cover opened)"
- "01h: Cover closed"
description: Status of mirror cover or lens cover from COVER STATUS REQUEST.
- id: projector_info
label: Projector Info
type: object
description: "DATA01-49: Projector name. DATA83-86: Lamp usage time (seconds, updated 1min). DATA87-90: Filter usage time (seconds). From INFORMATION REQUEST."
- id: filter_usage
label: Filter Usage Info
type: object
description: "DATA01-04: Filter usage time (seconds). DATA05-08: Filter alarm start time (seconds). Returns -1 if undefined. From FILTER USAGE INFORMATION REQUEST."
- id: lamp_info
label: Lamp Information
type: object
description: "DATA01: Lamp number (00h=Lamp1, 01h=Lamp2). DATA02: Content (01h=usage time seconds, 04h=remaining life percent). DATA03-06: Obtained value. Eco mode affects returned values. Remaining life returns negative if deadline exceeded. From LAMP INFORMATION REQUEST 3."
- id: carbon_savings
label: Carbon Savings Info
type: object
description: "DATA01: Type (00h=Total, 01h=Operation). DATA02-05: Carbon Savings in kg (max 99999). DATA06-09: Carbon Savings in mg (max 999999). From CARBON SAVINGS INFORMATION REQUEST."
- id: lens_position
label: Lens Position
type: object
description: "DATA02-03: Upper limit (16-bit). DATA04-05: Lower limit (16-bit). DATA06-07: Current value (16-bit). From LENS CONTROL REQUEST."
- id: lens_info
label: Lens Information
type: bitfield
description: "DATA01 bitfield: Bit0=Lens memory(0=Stop,1=Moving), Bit1=Zoom(0=Stop,1=Moving), Bit2=Focus(0=Stop,1=Moving), Bit3=Lens Shift H(0=Stop,1=Moving), Bit4=Lens Shift V(0=Stop,1=Moving). From LENS INFORMATION REQUEST."
- id: gain_parameter
label: Gain Parameter
type: object
description: "DATA01: Status (00h=Display not possible, 01h=Adjustment not possible, 02h=Adjustment possible, FFh=Gain does not exist). DATA02-03: Upper limit. DATA04-05: Lower limit. DATA06-07: Default. DATA08-09: Current value. DATA10-11: Wide width. DATA12-13: Narrow width. DATA14: Default valid flag (00h=invalid, 01h=valid). Targets: 00h=PICTURE/BRIGHTNESS, 01h=CONTRAST, 02h=COLOR, 03h=HUE, 04h=SHARPNESS, 05h=VOLUME, 96h=LAMP/LIGHT. From GAIN PARAMETER REQUEST 3."
- id: setting_info
label: Setting Info
type: object
description: "DATA01-03: Base model type. DATA04: Sound function (00h=Not available, 01h=Available). DATA05: Profile number / Clock function / Sleep timer. From SETTING REQUEST."
- id: eco_mode
label: Eco Mode
type: integer
description: Returns eco mode hex code (00h=OFF, 01h=Normal/AUTO, 02h=ECO1, 03h=ECO2, 04h=LONG LIFE, 05h=BOOST, 06h=SILENT). Values vary by model. From ECO MODE REQUEST.
- id: lens_memory_option
label: Lens Memory Option
type: object
description: "DATA01: Option (00h=LOAD BY SIGNAL, 01h=FORCED MUTE). DATA02: Setting (00h=OFF, 01h=ON). From LENS MEMORY OPTION REQUEST."
- id: lens_profile
label: Lens Profile
type: enum
values:
- "00h: Profile 1"
- "01h: Profile 2"
description: Selected profile number from LENS PROFILE REQUEST.
- id: lan_projector_name
label: LAN Projector Name
type: string
description: Projector name string (up to 17 bytes, NUL-terminated) from LAN PROJECTOR NAME REQUEST.
- id: mac_address
label: MAC Address
type: string
description: MAC address (6 bytes) from LAN MAC ADDRESS STATUS REQUEST2.
- id: pip_status
label: PIP/Picture by Picture Status
type: object
description: "DATA01: Target (00h=MODE, 01h=START POSITION, 02h=SUB INPUT). DATA02: Setting value (MODE: 00h=PIP, 01h=PICTURE BY PICTURE; POSITION: 00h=TOP-LEFT,01h=TOP-RIGHT,02h=BOTTOM-LEFT,03h=BOTTOM-RIGHT). From PIP/PICTURE BY PICTURE REQUEST."
- id: edge_blending_mode
label: Edge Blending Mode
type: enum
values:
- "00h: OFF"
- "01h: ON"
description: Edge blending setting from EDGE BLENDING MODE REQUEST.
- id: serial_number
label: Serial Number
type: string
description: Serial number string (up to 16 bytes, NUL-terminated) from SERIAL NUMBER REQUEST.
- id: base_model_type
label: Base Model Type
type: object
description: "DATA01-02 and DATA12-13: Base model type codes. DATA03-11: Model name. From BASE MODEL TYPE REQUEST."
- id: basic_info
label: Basic Information
type: object
description: "DATA01: Operation status. DATA02: Content displayed. DATA03: Selection signal type 1. DATA04: Selection signal type 2. DATA05: Display signal type. DATA06: Video mute. DATA07: Sound mute. DATA08: Onscreen mute. DATA09: Freeze status. From BASIC INFORMATION REQUEST."
- id: info_string
label: Information String
type: string
description: "DATA01: Info type (03h=Horizontal sync freq, 04h=Vertical sync freq). DATA02: String length. DATA03-??: NUL-terminated string. From INFORMATION STRING REQUEST."
- id: audio_select
label: Audio Select Status
type: object
description: "DATA01: Input terminal. DATA02: Execution result (00h=success, 01h=error). From AUDIO SELECT SET response."
- id: error_codes
label: Error Codes (ERR1/ERR2)
type: object
description: "Response error code pairs. ERR1/ERR2: 00h/00h=unrecognized command; 00h/01h=not supported by model; 01h/00h=invalid value; 01h/01h=invalid input terminal; 01h/02h=invalid language; 02h/00h=memory allocation error; 02h/02h=memory in use; 02h/03h=value cannot be set; 02h/04h=forced onscreen mute on; 02h/06h=viewer error; 02h/07h=no signal; 02h/08h=test pattern/filter displayed; 02h/09h=no PC card; 02h/0Ah=memory operation error; 02h/0Ch=entry list displayed; 02h/0Dh=power off; 02h/0Eh=command execution failed; 02h/0Fh=no authority; 03h/00h=incorrect gain number; 03h/01h=invalid gain; 03h/02h=adjustment failed."
Variables
# No standalone settable parameter commands separate from Actions.
# Volume is adjusted via volume_adjust action.
# Eco mode is set via eco_mode_set action.
# Projector name is set via lan_projector_name_set action.
# Edge blending is set via edge_blending_mode_set action.
# PIP/PbP is set via pip_picture_by_picture_set action.
Events
# UNRESOLVED: no unsolicited event/notification messages described in source.
# All communication is command-response; device does not initiate.
Macros
# No explicit multi-step macros described in source.
Safety
confirmation_required_for: []
interlocks:
- description: Interlock switch open state reported in error status (DATA09 Bit1). Projector may not accept commands when interlock is open.
- description: Some models require specific standby modes to receive commands via serial or LAN. Supported standby modes vary by model (Normal, Active, Eco, NORMAL, NETWORK STANDBY, SLEEP, OFF, ON, STANDBY POWER ON for serial; Normal, NORMAL, NETWORK STANDBY, SLEEP, HTBaseT STANDBY, OFF, ON, STANDBY POWER ON for wired LAN). Serial and LAN standby mode support differs on some models. Some models only support certain standby modes for LAN vs serial control.
source: Standby Mode settings section
# UNRESOLVED: no explicit safety warnings, interlock procedures, or power-on sequencing requirements beyond general command timing notes
Notes
- Commands use 6-byte header packet format:
[HEADER1] [HEADER2] [ID1] [ID2] [LEN] [DATA...]followed by checksum byte. Header1 varies (00h/01h/02h/03h for queries/actions). Response prefixes: A0h/A1h/A2h/A3h. - Checksum is low-order byte of sum of all preceding bytes.
- ID1 is the control ID set on the projector. ID2 is the model code (varies by model).
- Commands 015 (POWER ON) and 016 (POWER OFF) block all other commands during execution.
- Power on and power off commands cannot be accepted during cooling/power-off sequences.
- Lamp usage time, filter usage time, and lamp remaining life are updated at 1-minute intervals despite 1-second resolution.
- Lamp remaining life returns negative value when lamp replacement deadline is exceeded.
- Signal list number returned is 1 less than practical value (add 1 to get actual).
- Portrait cover orientation and HDBaseT standby mode are model-dependent features indicated in extended status.
- The Appendix "Supplementary Information by Command" IS included in this source and covers input terminal codes, aspect codes, eco mode codes, selection signal type codes, and audio select codes. Per-input/per-model hex variations noted in Appendix tables.
Upgrade done. Summary of changes:
- **`command:` injected on all 27 existing actions** (verbatim hex w/ parameterized braces + checksum note).
- **25 query actions added** (`kind: query`) — every `*.REQUEST` command now mirrored in Actions, cross-ref'd to its Feedback.
- **`port: 7142` fixed** (was wrongly `null`; source states it explicitly).
- **`flow_control: none` note** added (full-duplex stated, no flow-control setting).
- **Traits annotated** w/ inference rationale.
- **Appendix UNRESOLVED resolved** — source now includes Appendix tables.
- **`error_codes` Feedback added** (full ERR1/ERR2 table from §2.4).
- All existing IDs/shapes preserved; nothing deleted.
## 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-07-14T23:29:05.353Z
last_checked_at: 2026-07-21T23:36:10.677Z
```
## Verification Summary
```yaml
verdict: verified
checked_at: 2026-07-21T23:36:10.677Z
matched_actions: 53
action_count: 53
confidence: medium
summary: "All 53 spec actions match source command table verbatim; every hex opcode, parameter, and transport value present in source. (5 unresolved item(s) noted in Known Gaps.)"
```
## Known Gaps
```yaml
- "exact base model code (ID2) for X431BT-R not stated in this command reference; varies by model"
- "no single default; source lists 115200/38400/19200/9600/4800 bps configurable"
- "no unsolicited event/notification messages described in source."
- "no explicit safety warnings, interlock procedures, or power-on sequencing requirements beyond general command timing notes"
- "exact base model code (ID2) and model-specific Appendix variant selections for X431BT-R not pinned in this generic command reference."
```
---
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0