Summary
The Sharp/NEC NC2041L is a projector. This spec covers its external control protocol over RS-232C serial and TCP/IP wired LAN. Commands are binary, framed by header/footer bytes, parameterized by ID1 (control ID), ID2 (model code), CKS (checksum), and variable-length DATA fields, with command/response pairs returned for each operation.
Transport
protocols:
- serial
- tcp
serial:
baud_rate: 115200 # source lists 115200/38400/19200/9600/4800; 115200 is the listed maximum
data_bits: 8
parity: none
flow_control: none # source lists Full Duplex; RTS/CTS handshaking present on connector
stop_bits: 1
addressing:
port: 7142
auth:
type: none # inferred: no auth procedure in source
Traits
- powerable # POWER ON / POWER OFF commands
- routable # INPUT SW CHANGE, PIP/PICTURE BY PICTURE SET, AUDIO SELECT SET
- queryable # Multiple status/information requests
- levelable # VOLUME ADJUST (030-2), PICTURE ADJUST (030-1), OTHER ADJUST (030-15)
Actions
- 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 {DATA01} {CKS}"
params:
- name: DATA01
type: byte
description: Input terminal code (UNRESOLVED: full input terminal value table not in source)
- 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 {DATA01} FF {DATA02} {DATA03} {DATA04} {CKS}"
params:
- name: DATA01
type: byte
description: Adjustment target. 00h=Brightness, 01h=Contrast, 02h=Color, 03h=Hue, 04h=Sharpness
- name: DATA02
type: byte
description: Adjustment mode. 00h=absolute, 01h=relative
- name: DATA03
type: byte
description: Adjustment value (low-order 8 bits)
- name: DATA04
type: byte
description: Adjustment value (high-order 8 bits)
- id: volume_adjust
label: Volume Adjust
kind: action
command: "03 10 00 00 05 05 00 {DATA01} {DATA02} {DATA03} {CKS}"
params:
- name: DATA01
type: byte
description: Adjustment mode. 00h=absolute, 01h=relative
- name: DATA02
type: byte
description: Adjustment value (low-order 8 bits)
- name: DATA03
type: byte
description: Adjustment value (high-order 8 bits)
- id: aspect_adjust
label: Aspect Adjust
kind: action
command: "03 10 00 00 05 18 00 00 {DATA01} 00 {CKS}"
params:
- name: DATA01
type: byte
description: Aspect value (UNRESOLVED: value list in Appendix not in source)
- id: other_adjust
label: Other Adjust (Lamp/Light Adjust)
kind: action
command: "03 10 00 00 05 {DATA01} {DATA02} {DATA03} {DATA04} {DATA05} {CKS}"
params:
- name: DATA01
type: byte
description: 96h (high byte)
- name: DATA02
type: byte
description: FFh (low byte); together selects LAMP/LIGHT ADJUST
- name: DATA03
type: byte
description: Adjustment mode. 00h=absolute, 01h=relative
- name: DATA04
type: byte
description: Adjustment value (low-order 8 bits)
- name: DATA05
type: byte
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 {DATA01} {DATA02} {CKS}"
params:
- name: DATA01
type: byte
description: Lamp. 00h=Lamp 1, 01h=Lamp 2 (two-lamp models only)
- name: DATA02
type: byte
description: Content. 01h=usage time (seconds), 04h=remaining life (%)
- id: carbon_savings_information_request
label: Carbon Savings Information Request
kind: query
command: "03 9A 00 00 01 {DATA01} {CKS}"
params:
- name: DATA01
type: byte
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 {DATA01} {DATA02} {CKS}"
params:
- name: DATA01
type: byte
description: Key code high byte. Source lists POWER ON=02h, AUTO=05h, MENU=06h, ENTER=0Bh, MUTE=13h, COMPUTER1=29h..., see source key code list.
- name: DATA02
type: byte
description: Key code low byte (00h for all listed keys)
- 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 {DATA01} {DATA02} {CKS}"
params:
- name: DATA01
type: byte
description: Lens target. 06h=Periphery Focus (UNRESOLVED: other targets inferred cut off)
- name: DATA02
type: byte
description: Drive. 00h=Stop, 01h/02h/03h/FFh=timed plus, 7Fh=continuous plus, 81h/FEh/FDh=minus
- id: lens_control_request
label: Lens Control Request
kind: query
command: "02 1C 00 00 02 {DATA01} 00 {CKS}"
params:
- name: DATA01
type: byte
description: Lens parameter (UNRESOLVED: full enumeration not present in source excerpt)
- id: lens_control_2
label: Lens Control 2
kind: action
command: "02 1D 00 00 04 {DATA01} {DATA02} {DATA03} {DATA04} {CKS}"
params:
- name: DATA01
type: byte
description: FFh=Stop
- name: DATA02
type: byte
description: Adjustment mode. 00h=absolute, 02h=relative
- name: DATA03
type: byte
description: Adjustment value (low-order 8 bits)
- name: DATA04
type: byte
description: Adjustment value (high-order 8 bits)
- id: lens_memory_control
label: Lens Memory Control
kind: action
command: "02 1E 00 00 01 {DATA01} {CKS}"
params:
- name: DATA01
type: byte
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 {DATA01} {CKS}"
params:
- name: DATA01
type: byte
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 {DATA01} {CKS}"
params:
- name: DATA01
type: byte
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 {DATA01} {DATA02} {CKS}"
params:
- name: DATA01
type: byte
description: 00h=LOAD BY SIGNAL, 01h=FORCED MUTE
- name: DATA02
type: byte
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 {DATA01} {CKS}"
params:
- name: DATA01
type: byte
description: Profile number. 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 {DATA01} 00 00 {CKS}"
params:
- name: DATA01
type: byte
description: 00h=Brightness, 01h=Contrast, 02h=Color, 03h=Hue, 04h=Sharpness, 05h=Volume, 96h=Lamp/Light
- 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 {DATA01} {CKS}"
params:
- name: DATA01
type: byte
description: 01h=Freeze On, 02h=Freeze Off
- id: information_string_request
label: Information String Request
kind: query
command: "00 D0 00 00 03 00 {DATA01} 01 {CKS}"
params:
- name: DATA01
type: byte
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 {DATA01} {CKS}"
params:
- name: DATA01
type: byte
description: 00h=MODE, 01h=START POSITION, 02h=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 {DATA01} {CKS}"
params:
- name: DATA01
type: byte
description: Eco mode value (UNRESOLVED: value list in Appendix not in source)
- id: lan_projector_name_set
label: LAN Projector Name Set
kind: action
command: "03 B1 00 00 12 2C {DATA01...DATA16} 00 {CKS}"
params:
- name: name_bytes
type: bytes
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 {DATA01} {DATA02} {CKS}"
params:
- name: DATA01
type: byte
description: 00h=MODE, 01h=START POSITION, 02h=SUB INPUT/1, 09h=SUB INPUT 2, 0Ah=SUB INPUT 3
- name: DATA02
type: byte
description: Setting value (depends on DATA01; see source)
- id: edge_blending_mode_set
label: Edge Blending Mode Set
kind: action
command: "03 B1 00 00 03 DF 00 {DATA01} {CKS}"
params:
- name: DATA01
type: byte
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 {DATA01} {DATA02} {CKS}"
params:
- name: DATA01
type: byte
description: Input terminal (UNRESOLVED: full value table in Appendix not in source)
- name: DATA02
type: byte
description: 00h=specified terminal, 01h=BNC, 02h=COMPUTER
Feedbacks
- id: error_information
type: bytes
description: 12-byte error status returned by ERROR STATUS REQUEST (DATA01-DATA12)
- id: running_status_power
type: enum
values: [standby, power_on, not_supported]
- id: mute_picture
type: enum
values: [off, on]
- id: mute_sound
type: enum
values: [off, on]
- id: mute_onscreen
type: enum
values: [off, on]
- id: cover_status
type: enum
values: [normal_open, closed]
- id: operation_status
type: enum
values: [standby_sleep, power_on, cooling, standby_error, standby_power_saving, network_standby, not_supported]
Variables
# UNRESOLVED: settable parameters that are not discrete actions beyond Actions list above.
# Source treats each setting as a discrete command (e.g., eco_mode_set, edge_blending_mode_set),
# not as a settable variable.
Events
# UNRESOLVED: no unsolicited notification events described in the source.
Macros
# UNRESOLVED: no multi-step macro sequences described in source.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no explicit safety warnings, interlock procedures, or power-on
# sequencing requirements. NOTE: error code 02h/04h "Forced onscreen mute on" referenced but is
# not a safety interlock.
Notes
All commands share a binary framing convention: a command opcode/parameter prefix followed by ID1, ID2, data length, DATA bytes, and a trailing CKS (checksum) byte computed as the low-order byte of the sum of all preceding bytes. The source uses hex notation without "0x" or "h" suffixes; this spec preserves byte groupings with spaces for readability but values are otherwise verbatim.
The document explicitly mentions POWER ON and POWER OFF as commands that cannot be interrupted ("While this command is turning on the power, no other command can be accepted.") and implies the same for POWER OFF ("including the cooling time"). Operators should wait for these to complete before issuing further commands.
RTS/CTS hardware flow control is wired through the PC CONTROL D-SUB-9P connector (pins 7 and 8) but the communication mode is described as "Full duplex" without explicit flow-control setting — treat hardware flow control as UNRESOLVED for any specific software setting.
The "Supplementary Information by Command" appendix referenced throughout (for input terminals, aspect values, eco mode values, sub input values) was not present in the source excerpt; enum values for those DATA?? fields are therefore left as UNRESOLVED placeholders.
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-07-22T05:22:00.466Z
last_checked_at: 2026-07-22T07:46:31.743Z
Verification Summary
verdict: verified
checked_at: 2026-07-22T07:46:31.743Z
matched_actions: 53
action_count: 53
confidence: medium
summary: "All 53 spec actions match hex sequences verbatim in source; transport parameters verified; source command catalogue fully represented. (13 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "input terminal value table referenced as \"Supplementary Information by Command\" but not present in source"
- "full input terminal value table not in source)"
- "value list in Appendix not in source)"
- "other targets inferred cut off)"
- "full enumeration not present in source excerpt)"
- "full value table in Appendix not in source)"
- "settable parameters that are not discrete actions beyond Actions list above."
- "no unsolicited notification events described in the source."
- "no multi-step macro sequences described in source."
- "source contains no explicit safety warnings, interlock procedures, or power-on"
- "baud rate variants: source lists 115200/38400/19200/9600/4800 bps; this spec selects 115200 as the documented maximum."
- "full key code list for remote_key_code command contains keys not enumerated here in detail; see source for complete list."
- "firmware version compatibility not stated in source."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0