Summary
NEC XC10 Series projector control via binary protocol over RS-232C and TCP port 7142. Source: BDT140013 Revision 7.1 command reference. Commands are hex framed with header, control ID, model code, data, and checksum.
Transport
protocols:
- serial
- tcp
serial:
baud_rate: 115200 # source supports 115200/38400/19200/9600/4800; 115200 listed first
data_bits: 8
parity: none
stop_bits: 1
flow_control: none # UNRESOLVED: flow control not specified; "Full duplex" stated but no RTS/CTS handshaking rule
addressing:
port: 7142
auth:
type: none # inferred: no auth procedure in source
Traits
- powerable # inferred from POWER ON / POWER OFF command examples
- routable # inferred from INPUT SW CHANGE command
- queryable # inferred from ERROR STATUS REQUEST, INFORMATION REQUEST, etc.
- levelable # inferred from VOLUME ADJUST, PICTURE ADJUST, LAMP ADJUST commands
Actions
# Frame format: HEADER TYPE ID1 ID2 LEN DATA... CKS
# CKS = low-order 1 byte of sum of all preceding bytes
# ID1 = control ID of projector; ID2 = model code (vary by model)
# Each command below lists the literal byte sequence (no CKS computed) from the source.
- id: error_status_request
label: Error Status Request
kind: query
command: "00 88 00 00 00 88"
params: []
- id: power_on
label: Power On
kind: action
command: "02 00 00 00 00 02"
params: []
- id: power_off
label: Power Off
kind: action
command: "02 01 00 00 00 03"
params: []
- id: input_switch_change
label: Input Switch Change
kind: action
command: "02 03 00 00 02 01 {input} {cks}"
params:
- name: input
type: integer
description: Input terminal code (see Appendix in source for value mapping)
- id: picture_mute_on
label: Picture Mute On
kind: action
command: "02 10 00 00 00 12"
params: []
- 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: []
- 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: []
- id: onscreen_mute_off
label: Onscreen Mute Off
kind: action
command: "02 15 00 00 00 17"
params: []
- id: picture_adjust
label: Picture Adjust
kind: action
command: "03 10 00 00 05 {target} FF {mode} {value_lo} {value_hi} {cks}"
params:
- name: target
type: integer
description: Adjustment target: 00h Brightness, 01h Contrast, 02h Color, 03h Hue, 04h Sharpness
- name: mode
type: integer
description: 00h absolute, 01h relative
- name: value_lo
type: integer
description: Adjustment value low-order 8 bits (signed)
- name: value_hi
type: integer
description: Adjustment value high-order 8 bits (signed)
- id: volume_adjust
label: Volume Adjust
kind: action
command: "03 10 00 00 05 05 00 {mode} {value_lo} {value_hi} {cks}"
params:
- name: mode
type: integer
description: 00h absolute, 01h relative
- name: value_lo
type: integer
description: Volume value low-order 8 bits
- name: value_hi
type: integer
description: Volume value high-order 8 bits
- id: aspect_adjust
label: Aspect Adjust
kind: action
command: "03 10 00 00 05 18 00 00 {aspect} 00 {cks}"
params:
- name: aspect
type: integer
description: Aspect value (see Appendix in source)
- id: other_adjust_lamp
label: Other Adjust (Lamp/Light Adjust)
kind: action
command: "03 10 00 00 05 96 FF {mode} {value_lo} {value_hi} {cks}"
params:
- name: mode
type: integer
description: 00h absolute, 01h relative
- name: value_lo
type: integer
description: Adjustment value low-order 8 bits
- name: value_hi
type: integer
description: Adjustment value high-order 8 bits
- id: information_request
label: Information Request
kind: query
command: "03 8A 00 00 00 8D"
params: []
- id: filter_usage_information_request
label: Filter Usage Information Request
kind: query
command: "03 95 00 00 00 98"
params: []
- id: lamp_information_request_3
label: Lamp Information Request 3
kind: query
command: "03 96 00 00 02 {lamp} {content} {cks}"
params:
- name: lamp
type: integer
description: 00h Lamp 1, 01h Lamp 2 (two-lamp models only)
- name: content
type: integer
description: 01h Lamp usage time (seconds), 04h Lamp remaining life (%)
- id: carbon_savings_information_request
label: Carbon Savings Information Request
kind: query
command: "03 9A 00 00 01 {type} {cks}"
params:
- name: type
type: integer
description: 00h Total Carbon Savings, 01h Carbon Savings during operation
- id: remote_key_code
label: Remote Key Code
kind: action
command: "02 0F 00 00 02 {key_lo} {key_hi} {cks}"
params:
- name: key_lo
type: integer
description: Key code low byte (e.g. 05h AUTO, 02h POWER ON, 03h POWER OFF, 84h VOLUME UP, 85h VOLUME DOWN)
- name: key_hi
type: integer
description: Key code high byte (typically 00h)
- id: shutter_close
label: Shutter Close
kind: action
command: "02 16 00 00 00 18"
params: []
- id: shutter_open
label: Shutter Open
kind: action
command: "02 17 00 00 00 19"
params: []
- id: lens_control
label: Lens Control
kind: action
command: "02 18 00 00 02 {target} {content} {cks}"
params:
- name: target
type: integer
description: Lens target (e.g. 06h Periphery Focus)
- name: content
type: integer
description: 00h Stop, 01h 1s plus, 02h 0.5s plus, 03h 0.25s plus, 7Fh continuous plus, 81h continuous minus, FDh 0.25s minus, FEh 0.5s minus, FFh 1s minus
- id: lens_control_request
label: Lens Control Request
kind: query
command: "02 1C 00 00 02 {target} 00 {cks}"
params:
- name: target
type: integer
description: Lens target code
- id: lens_control_2
label: Lens Control 2
kind: action
command: "02 1D 00 00 04 {flag} {mode} {value_lo} {value_hi} {cks}"
params:
- name: flag
type: integer
description: FFh to stop; other values to drive
- name: mode
type: integer
description: 00h absolute, 02h relative
- name: value_lo
type: integer
description: Adjustment value low-order 8 bits
- name: value_hi
type: integer
description: Adjustment value high-order 8 bits
- id: lens_memory_control
label: Lens Memory Control
kind: action
command: "02 1E 00 00 01 {op} {cks}"
params:
- name: op
type: integer
description: 00h MOVE, 01h STORE, 02h RESET
- id: reference_lens_memory_control
label: Reference Lens Memory Control
kind: action
command: "02 1F 00 00 01 {op} {cks}"
params:
- name: op
type: integer
description: 00h MOVE, 01h STORE, 02h RESET
- id: lens_memory_option_request
label: Lens Memory Option Request
kind: query
command: "02 20 00 00 01 {option} {cks}"
params:
- name: option
type: integer
description: 00h LOAD BY SIGNAL, 01h FORCED MUTE
- id: lens_memory_option_set
label: Lens Memory Option Set
kind: action
command: "02 21 00 00 02 {option} {value} {cks}"
params:
- name: option
type: integer
description: 00h LOAD BY SIGNAL, 01h FORCED MUTE
- name: value
type: integer
description: 00h OFF, 01h ON
- id: lens_information_request
label: Lens Information Request
kind: query
command: "02 22 00 00 01 00 25"
params: []
- id: lens_profile_set
label: Lens Profile Set
kind: action
command: "02 27 00 00 01 {profile} {cks}"
params:
- name: profile
type: integer
description: 00h Profile 1, 01h Profile 2
- id: lens_profile_request
label: Lens Profile Request
kind: query
command: "02 28 00 00 00 2A"
params: []
- id: gain_parameter_request_3
label: Gain Parameter Request 3
kind: query
command: "03 05 00 00 03 {name} 00 00 {cks}"
params:
- name: name
type: integer
description: 00h Brightness, 01h Contrast, 02h Color, 03h Hue, 04h Sharpness, 05h Volume, 96h Lamp/Light Adjust
- id: setting_request
label: Setting Request
kind: query
command: "00 85 00 00 01 00 86"
params: []
- id: running_status_request
label: Running Status Request
kind: query
command: "00 85 00 00 01 01 87"
params: []
- id: input_status_request
label: Input Status Request
kind: query
command: "00 85 00 00 01 02 88"
params: []
- id: mute_status_request
label: Mute Status Request
kind: query
command: "00 85 00 00 01 03 89"
params: []
- id: model_name_request
label: Model Name Request
kind: query
command: "00 85 00 00 01 04 8A"
params: []
- id: cover_status_request
label: Cover Status Request
kind: query
command: "00 85 00 00 01 05 8B"
params: []
- id: freeze_control
label: Freeze Control
kind: action
command: "01 98 00 00 01 {state} {cks}"
params:
- name: state
type: integer
description: 01h freeze on, 02h freeze off
- id: information_string_request
label: Information String Request
kind: query
command: "00 D0 00 00 03 00 {type} 01 {cks}"
params:
- name: type
type: integer
description: 03h Horizontal sync frequency, 04h Vertical sync frequency
- id: eco_mode_request
label: Eco Mode Request
kind: query
command: "03 B0 00 00 01 07 BB"
params: []
- id: lan_projector_name_request
label: LAN Projector Name Request
kind: query
command: "03 B0 00 00 01 2C E0"
params: []
- id: lan_mac_address_status_request_2
label: LAN MAC Address Status Request 2
kind: query
command: "03 B0 00 00 02 9A 00 4F"
params: []
- id: pip_picture_by_picture_request
label: PIP / Picture by Picture Request
kind: query
command: "03 B0 00 00 02 C5 {item} {cks}"
params:
- name: item
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: Edge Blending Mode Request
kind: query
command: "03 B0 00 00 02 DF 00 94"
params: []
- id: eco_mode_set
label: Eco Mode Set
kind: action
command: "03 B1 00 00 02 07 {value} {cks}"
params:
- name: value
type: integer
description: Eco mode value (see Appendix in source)
- id: lan_projector_name_set
label: LAN Projector Name Set
kind: action
command: "03 B1 00 00 12 2C {name_16_bytes} 00 {cks}"
params:
- name: name_16_bytes
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: "03 B1 00 00 03 C5 {item} {value} {cks}"
params:
- name: item
type: integer
description: 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 (depends on item; see Appendix for sub input values)
- id: edge_blending_mode_set
label: Edge Blending Mode Set
kind: action
command: "03 B1 00 00 03 DF 00 {state} {cks}"
params:
- name: state
type: integer
description: 00h OFF, 01h ON
- id: base_model_type_request
label: Base Model Type Request
kind: query
command: "00 BF 00 00 01 00 C0"
params: []
- id: serial_number_request
label: Serial Number Request
kind: query
command: "00 BF 00 00 02 01 06 C8"
params: []
- id: basic_information_request
label: Basic Information Request
kind: query
command: "00 BF 00 00 01 02 C2"
params: []
- id: audio_select_set
label: Audio Select Set
kind: action
command: "03 C9 00 00 03 09 {input} {value} {cks}"
params:
- name: input
type: integer
description: Input terminal code (see Appendix in source)
- name: value
type: integer
description: 00h the terminal specified in input, 01h BNC, 02h COMPUTER
Feedbacks
# Source documents response frames but treats each command's response as part of that command.
# The following observable state fields are queryable:
- id: error_status
label: Error Status
type: bytes
description: 12-byte bitfield from ERROR STATUS REQUEST. Bits set to 1 indicate errors (cover, temperature, fan, power, lamp, formatter, FPGA, etc.)
- id: running_power_status
label: Power Status
type: enum
values: [standby, power_on, unsupported]
- id: running_cooling_process
label: Cooling Process
type: enum
values: [not_executed, during_execution, unsupported]
- id: running_power_on_off_process
label: Power On/Off Process
type: enum
values: [not_executed, during_execution, unsupported]
- id: running_operation_status
label: Operation Status
type: enum
values: [standby_sleep, power_on, cooling, standby_error, standby_power_saving, network_standby, unsupported]
- id: picture_mute
label: Picture Mute
type: enum
values: [off, on]
- id: sound_mute
label: Sound Mute
type: enum
values: [off, on]
- id: onscreen_mute
label: Onscreen Mute
type: enum
values: [off, on]
- id: forced_onscreen_mute
label: Forced Onscreen Mute
type: enum
values: [off, on]
- id: onscreen_display
label: Onscreen Display
type: enum
values: [not_displayed, displayed]
- id: cover_status
label: Cover Status
type: enum
values: [normal_open, cover_closed]
- id: freeze_status
label: Freeze Status
type: enum
values: [off, on]
- id: lamp_usage_time_seconds
label: Lamp Usage Time
type: integer
description: Seconds of lamp usage
- id: lamp_remaining_life_percent
label: Lamp Remaining Life
type: integer
description: Percent remaining; negative if replacement deadline exceeded
- id: filter_usage_time_seconds
label: Filter Usage Time
type: integer
description: Seconds; returns -1 if no time defined
- id: filter_alarm_start_time_seconds
label: Filter Alarm Start Time
type: integer
description: Seconds; returns -1 if no time defined
- id: carbon_savings_total_kg
label: Total Carbon Savings
type: number
description: Max 99999 kg
- id: carbon_savings_total_mg
label: Total Carbon Savings (mg)
type: integer
description: Max 999999 mg
- id: carbon_savings_operation_kg
label: Carbon Savings During Operation
type: number
description: Max 99999 kg
- id: carbon_savings_operation_mg
label: Carbon Savings During Operation (mg)
type: integer
description: Max 999999 mg
- id: projector_name
label: Projector Name
type: string
description: NUL-terminated string, up to 16 bytes
- id: model_name
label: Model Name
type: string
description: NUL-terminated string, up to 32 bytes
- id: serial_number
label: Serial Number
type: string
description: NUL-terminated string, up to 16 bytes
- id: base_model_type
label: Base Model Type
type: integer
description: Model type code; see Appendix in source
- id: mac_address
label: MAC Address
type: string
description: 6-byte MAC
- id: signal_list_number
label: Signal List Number
type: integer
description: Returned value is one less than the practical number
- id: signal_type_1
label: Selection Signal Type 1
type: integer
description: 1-5
- id: signal_type_2
label: Selection Signal Type 2
type: enum
values: [computer, video, s_video, component, reserved, viewer_1_5, dvi_d, hdmi, display_port, viewer_6_10, not_source_input]
- id: signal_list_type
label: Signal List Type
type: enum
values: [default, user, unsupported]
- id: test_pattern_display
label: Test Pattern Display
type: enum
values: [not_displayed, displayed, unsupported]
- id: content_displayed
label: Content Displayed
type: enum
values: [video_signal, no_signal, viewer, test_pattern, lan, unsupported]
- id: horizontal_sync_frequency
label: Horizontal Sync Frequency
type: string
description: Label/information string
- id: vertical_sync_frequency
label: Vertical Sync Frequency
type: string
description: Label/information string
- id: lens_position_upper_limit
label: Lens Position Upper Limit
type: integer
- id: lens_position_lower_limit
label: Lens Position Lower Limit
type: integer
- id: lens_position_current
label: Lens Position Current Value
type: integer
- id: lens_status_bits
label: Lens Status Bits
type: integer
description: Bit0 Lens memory, Bit1 Zoom, Bit2 Focus, Bit3 Lens Shift H, Bit4 Lens Shift V; 0=Stop, 1=During operation
- id: lens_profile
label: Selected Lens Profile
type: enum
values: [profile_1, profile_2]
- id: gain_value_upper_limit
label: Gain Value Upper Limit
type: integer
- id: gain_value_lower_limit
label: Gain Value Lower Limit
type: integer
- id: gain_value_default
label: Gain Value Default
type: integer
- id: gain_value_current
label: Gain Value Current
type: integer
- id: gain_adjustment_status
label: Gain Adjustment Status
type: enum
values: [display_not_possible, adjustment_not_possible, adjustment_possible, gain_not_exist]
- id: eco_mode_value
label: Eco Mode Value
type: integer
description: See Appendix in source
- id: pip_pbp_mode
label: PIP/PBP Mode
type: enum
values: [pip, picture_by_picture]
- id: pip_pbp_start_position
label: PIP/PBP Start Position
type: enum
values: [top_left, top_right, bottom_left, bottom_right]
- id: pip_pbp_sub_input
label: PIP/PBP Sub Input
type: integer
description: See Appendix in source
- id: edge_blending_mode
label: Edge Blending Mode
type: enum
values: [off, on]
- id: sound_function_available
label: Sound Function
type: enum
values: [not_available, available]
- id: profile_function
label: Profile Function
type: enum
values: [not_available, clock, sleep_timer, clock_and_sleep_timer]
Variables
# Lens memory load-by-signal and forced-mute options
- id: lens_memory_load_by_signal
label: Lens Memory Load by Signal
type: enum
values: [off, on]
description: Set via LENS MEMORY OPTION SET (00h)
- id: lens_memory_forced_mute
label: Lens Memory Forced Mute
type: enum
values: [off, on]
description: Set via LENS MEMORY OPTION SET (01h)
Events
# UNRESOLVED: source describes request/response only, not unsolicited notifications
Macros
# UNRESOLVED: no multi-step sequences described in source
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source notes POWER ON and POWER OFF cannot accept other commands during execution (including cooling time), but does not document safety interlocks or power-on sequencing requirements.
Notes
Source: NEC Projector Control Command Reference Manual BDT140013 Revision 7.1. All commands use a binary frame: header byte, type byte, ID1 (control ID, set per-projector), ID2 (model code, varies by model), LEN (data length), DATA..., CKS (low byte of sum of all preceding bytes). Many command values are described in an Appendix "Supplementary Information by Command" that is not included in this source extract — referenced fields are documented as parameters with "see Appendix" notes. Serial connection supports 115200/38400/19200/9600/4800 baud; this spec defaults to 115200 (first listed). TCP port 7142. During power-on or power-off (including cooling), no other command is accepted.
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-05-22T22:51:11.476Z
last_checked_at: 2026-06-12T19:27:40.092Z
Verification Summary
verdict: verified
checked_at: 2026-06-12T19:27:40.092Z
matched_actions: 53
action_count: 53
confidence: medium
summary: "All 53 spec command sequences found verbatim in BDT140013 Revision 7.1; transport parameters (baud, data/parity/stop bits, TCP port) confirmed in source. (6 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "firmware version range; exact list of XC10 sub-models covered by this reference"
- "flow control not specified; \"Full duplex\" stated but no RTS/CTS handshaking rule"
- "source describes request/response only, not unsolicited notifications"
- "no multi-step sequences described in source"
- "source notes POWER ON and POWER OFF cannot accept other commands during execution (including cooling time), but does not document safety interlocks or power-on sequencing requirements."
- "firmware version range; complete input-terminal value mapping; complete aspect value mapping; complete eco-mode value mapping; complete sub-input value mapping; complete base model type value mapping; complete \"Supplementary Information by Command\" appendix"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0