Summary
Sharp/NEC Cb651Q projector control spec covering the binary RS-232C and TCP/IP (LAN) control protocol documented in the Projector Control Command Reference Manual (BDT140013 Rev 7.1). Commands are fixed-length hex frames with a trailing additive checksum byte.
Transport
protocols:
- serial
- tcp
serial:
baud_rate: [115200, 38400, 19200, 9600, 4800] # source lists all five as supported
data_bits: 8
parity: none
stop_bits: 1
flow_control: none # UNRESOLVED: source states "Full duplex" communication mode but no explicit flow_control; pinout exposes RTS/CTS
addressing:
port: 7142 # source: "Use TCP port number 7142 for sending and receiving commands"
auth:
type: none # inferred: no auth procedure in source
Traits
traits:
- powerable # inferred: 015 POWER ON / 016 POWER OFF commands present
- routable # inferred: 018 INPUT SW CHANGE present
- queryable # inferred: large catalogue of status/Information requests (037, 078, 097, 305, etc.)
- levelable # inferred: 030-1 PICTURE ADJUST / 030-2 VOLUME ADJUST / 053 LENS CONTROL
Actions
actions:
# --- Status / Error queries ---
- id: error_status_request_009
label: "009. ERROR STATUS REQUEST"
kind: query
command: "00 88 00 00 00 88"
params: []
notes: "Response: 20 88 <ID1> <ID2> 0C <DATA01..DATA12> <CKS>; DATA01..DATA12 = bit-packed error flags (0=normal, 1=error). See source §3.1 for full error-bit map."
# --- Power ---
- id: power_on_015
label: "015. POWER ON"
kind: action
command: "02 00 00 00 00 02"
params: []
notes: "No other command accepted while power-on in progress. Response: 22 00 <ID1> <ID2> 00 <CKS>; error: A2 00 <ID1> <ID2> 02 <ERR1> <ERR2> <CKS>."
- id: power_off_016
label: "016. POWER OFF"
kind: action
command: "02 01 00 00 00 03"
params: []
notes: "No other command accepted while power-off (incl. cooling time) in progress. Response: 22 01 <ID1> <ID2> 00 <CKS>; error: A2 01 <ID1> <ID2> 02 <ERR1> <ERR2> <CKS>."
# --- Input routing ---
- id: input_switch_018
label: "018. INPUT SW CHANGE"
kind: action
command: "02 03 00 00 02 01 {data01} {cks}"
params:
- name: data01
type: integer
description: "Input terminal code (1 byte hex). Source example: 06h = video port. Full code table is in Appendix 'Supplementary Information by Command' (not present in this excerpt)."
notes: "Response: 22 03 <ID1> <ID2> 01 <DATA01> <CKS> (DATA01=FFh => ended with error, no switch made)."
# --- Mute (picture / sound / onscreen) ---
- id: picture_mute_on_020
label: "020. PICTURE MUTE ON"
kind: action
command: "02 10 00 00 00 12"
params: []
notes: "Picture mute cancels on input/video-signal switch. Response: 22 10 <ID1> <ID2> 00 <CKS>."
- id: picture_mute_off_021
label: "021. PICTURE MUTE OFF"
kind: action
command: "02 11 00 00 00 13"
params: []
notes: "Response: 22 11 <ID1> <ID2> 00 <CKS>."
- id: sound_mute_on_022
label: "022. SOUND MUTE ON"
kind: action
command: "02 12 00 00 00 14"
params: []
notes: "Sound mute cancels on input/video-signal switch or volume adjustment. Response: 22 12 <ID1> <ID2> 00 <CKS>."
- id: sound_mute_off_023
label: "023. SOUND MUTE OFF"
kind: action
command: "02 13 00 00 00 15"
params: []
notes: "Response: 22 13 <ID1> <ID2> 00 <CKS>."
- id: onscreen_mute_on_024
label: "024. ONSCREEN MUTE ON"
kind: action
command: "02 14 00 00 00 16"
params: []
notes: "Onscreen mute cancels on input/video-signal switch. Response: 22 14 <ID1> <ID2> 00 <CKS>."
- id: onscreen_mute_off_025
label: "025. ONSCREEN MUTE OFF"
kind: action
command: "02 15 00 00 00 17"
params: []
notes: "Response: 22 15 <ID1> <ID2> 00 <CKS>."
# --- Picture / Volume / Aspect / Other adjust ---
- id: picture_adjust_030_1
label: "030-1. PICTURE ADJUST"
kind: action
command: "03 10 00 00 05 {data01} FF {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: "Response: 23 10 <ID1> <ID2> 02 <DATA01> <DATA02> <CKS> (0000h = success, else error)."
- id: volume_adjust_030_2
label: "030-2. VOLUME ADJUST"
kind: action
command: "03 10 00 00 05 05 00 {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: "Response: 23 10 <ID1> <ID2> 02 <DATA01> <DATA02> <CKS> (0000h = success)."
- id: aspect_adjust_030_12
label: "030-12. ASPECT ADJUST"
kind: action
command: "03 10 00 00 05 18 00 00 {data01} 00 {cks}"
params:
- name: data01
type: integer
description: "Aspect value (1 byte hex). Full code table in Appendix 'Supplementary Information by Command' (not present in this excerpt)."
notes: "Response: 23 10 <ID1> <ID2> 02 <DATA01> <DATA02> <CKS>."
- id: other_adjust_030_15
label: "030-15. OTHER ADJUST"
kind: action
command: "03 10 00 00 05 {data01} {data02} {data03} {data04} {data05} {cks}"
params:
- name: data01
type: integer
description: "Adjustment target high byte (96h with DATA02=FFh = LAMP ADJUST / LIGHT ADJUST per source)."
- name: data02
type: integer
description: "Adjustment target low byte (FFh for LAMP/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)."
notes: "Response: 23 10 <ID1> <ID2> 02 <DATA01> <DATA02> <CKS>."
# --- Information requests ---
- id: information_request_037
label: "037. INFORMATION REQUEST"
kind: query
command: "03 8A 00 00 00 8D"
params: []
notes: "Response: 23 8A <ID1> <ID2> 62 <DATA01..DATA98> <CKS>. DATA01..49=Projector name; DATA83..86=Lamp usage time (sec); DATA87..90=Filter usage time (sec). Updated at 1-minute intervals."
- id: filter_usage_request_037_3
label: "037-3. FILTER USAGE INFORMATION REQUEST"
kind: query
command: "03 95 00 00 00 98"
params: []
notes: "Response: 23 95 <ID1> <ID2> 08 <DATA01..DATA08> <CKS>. DATA01..04=Filter usage time (sec); DATA05..08=Filter alarm start time (sec, -1 if undefined)."
- id: lamp_info_request_037_4
label: "037-4. LAMP INFORMATION REQUEST 3"
kind: query
command: "03 96 00 00 02 {data01} {data02} {cks}"
params:
- name: data01
type: integer
description: "Lamp selector: 00h=Lamp 1, 01h=Lamp 2 (two-lamp models only)."
- name: data02
type: integer
description: "Content: 01h=Lamp usage time (sec), 04h=Lamp remaining life (%)."
notes: "Response: 23 96 <ID1> <ID2> 06 <DATA01..DATA06> <CKS>. Negative remaining-life value if replacement deadline exceeded. Updated at 1-minute intervals."
- id: carbon_savings_request_037_6
label: "037-6. CARBON SAVINGS INFORMATION REQUEST"
kind: query
command: "03 9A 00 00 01 {data01} {cks}"
params:
- name: data01
type: integer
description: "00h=Total Carbon Savings, 01h=Carbon Savings during operation."
notes: "Response: 23 9A <ID1> <ID2> 09 <DATA01..DATA09> <CKS>. DATA02..05=kg (max 99999), DATA06..09=mg (max 999999)."
# --- Remote key code ---
- id: remote_key_code_050
label: "050. REMOTE KEY CODE"
kind: action
command: "02 0F 00 00 02 {data01} {data02} {cks}"
params:
- name: data01
type: integer
description: "Key code low byte (WORD). See source key-code table: 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."
- name: data02
type: integer
description: "Key code high byte (WORD) - 00h for all listed key codes."
notes: "Response: 22 0F <ID1> <ID2> 01 <DATA01> <CKS> (DATA01=FFh => ended with error)."
# --- Shutter ---
- id: shutter_close_051
label: "051. SHUTTER CLOSE"
kind: action
command: "02 16 00 00 00 18"
params: []
notes: "Response: 22 16 <ID1> <ID2> 00 <CKS>."
- id: shutter_open_052
label: "052. SHUTTER OPEN"
kind: action
command: "02 17 00 00 00 19"
params: []
notes: "Response: 22 17 <ID1> <ID2> 00 <CKS>."
# --- Lens control family ---
- id: lens_control_053
label: "053. LENS CONTROL"
kind: action
command: "02 18 00 00 02 {data01} {data02} {cks}"
params:
- name: data01
type: integer
description: "Lens function selector. 06h=Periphery Focus. (Other selector values per source; full list see Appendix 'Supplementary Information by Command'.)"
- name: data02
type: integer
description: "Drive content: 00h=Stop, 01h=+1s, 02h=+0.5s, 03h=+0.25s, 7Fh=continuous plus, 81h=continuous minus, FDh=-0.25s, FEh=-0.5s, FFh=-1s."
notes: "After 7Fh/81h, send DATA02=00h to stop driving. Response: 22 18 <ID1> <ID2> 01 <DATA01> <CKS> (FFh => error)."
- id: lens_control_request_053_1
label: "053-1. LENS CONTROL REQUEST"
kind: query
command: "02 1C 00 00 02 {data01} 00 {cks}"
params:
- name: data01
type: integer
description: "Lens function selector (same encoding as 053 LENS CONTROL DATA01; 06h=Periphery Focus)."
notes: "Response: 22 1C <ID1> <ID2> 08 <DATA01> 00 <DATA02..DATA07> <CKS>: upper-limit, lower-limit, current value (each 16-bit, low then high)."
- id: lens_control_2_053_2
label: "053-2. LENS CONTROL 2"
kind: action
command: "02 1D 00 00 04 {data01} {data02} {data03} {data04} {cks}"
params:
- name: data01
type: integer
description: "Lens function selector. FFh=Stop (mode/value ignored)."
- 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: "Response: 22 1D <ID1> <ID2> 02 <DATA01> <DATA02> <CKS>."
- id: lens_memory_control_053_3
label: "053-3. LENS MEMORY CONTROL"
kind: action
command: "02 1E 00 00 01 {data01} {cks}"
params:
- name: data01
type: integer
description: "Operation: 00h=MOVE, 01h=STORE, 02h=RESET."
notes: "Response: 22 1E <ID1> <ID2> 02 <DATA01> <DATA02> <CKS> (DATA02=FFh => error)."
- id: reference_lens_memory_control_053_4
label: "053-4. REFERENCE LENS MEMORY CONTROL"
kind: action
command: "02 1F 00 00 01 {data01} {cks}"
params:
- name: data01
type: integer
description: "Operation: 00h=MOVE, 01h=STORE, 02h=RESET."
notes: "Operates on the profile selected via 053-10 LENS PROFILE SET. Response: 22 1F <ID1> <ID2> 02 <DATA01> <DATA02> <CKS> (DATA02=FFh => error)."
- id: lens_memory_option_request_053_5
label: "053-5. LENS MEMORY OPTION REQUEST"
kind: query
command: "02 20 00 00 01 {data01} {cks}"
params:
- name: data01
type: integer
description: "Option selector: 00h=LOAD BY SIGNAL, 01h=FORCED MUTE."
notes: "Response: 22 20 <ID1> <ID2> 02 <DATA01> <DATA02> <CKS> (DATA02=setting value 00h=OFF, 01h=ON)."
- id: lens_memory_option_set_053_6
label: "053-6. LENS MEMORY OPTION SET"
kind: action
command: "02 21 00 00 02 {data01} {data02} {cks}"
params:
- name: data01
type: integer
description: "Option selector: 00h=LOAD BY SIGNAL, 01h=FORCED MUTE."
- name: data02
type: integer
description: "Setting value: 00h=OFF, 01h=ON."
notes: "Response: 23 21 <ID1> <ID2> 02 <DATA01> <DATA02> <CKS>."
- id: lens_information_request_053_7
label: "053-7. LENS INFORMATION REQUEST"
kind: query
command: "02 22 00 00 01 00 25"
params: []
notes: "Response: 22 22 <ID1> <ID2> 02 00 <DATA01> <CKS>. DATA01 bit0=Lens memory, bit1=Zoom, bit2=Focus, bit3=Lens Shift (H), bit4=Lens Shift (V) (0=stop, 1=operation)."
- id: lens_profile_set_053_10
label: "053-10. LENS PROFILE SET"
kind: action
command: "02 27 00 00 01 {data01} {cks}"
params:
- name: data01
type: integer
description: "Profile number: 00h=Profile 1, 01h=Profile 2."
notes: "Response: 22 27 <ID1> <ID2> 02 <DATA01> <DATA02> <CKS>."
- id: lens_profile_request_053_11
label: "053-11. LENS PROFILE REQUEST"
kind: query
command: "02 28 00 00 00 2A"
params: []
notes: "Response: 22 28 <ID1> <ID2> 02 <DATA01> <DATA02> <CKS>. DATA01=00h=Profile 1, 01h=Profile 2; DATA02 reserved."
# --- Gain parameter request ---
- id: gain_parameter_request_060_1
label: "060-1. GAIN PARAMETER REQUEST 3"
kind: query
command: "03 05 00 00 03 {data01} 00 00 {cks}"
params:
- name: data01
type: integer
description: "Adjusted value name: 00h=BRIGHTNESS, 01h=CONTRAST, 02h=COLOR, 03h=HUE, 04h=SHARPNESS, 05h=VOLUME, 96h=LAMP ADJUST / LIGHT ADJUST."
notes: "Response: 23 05 <ID1> <ID2> 10 <DATA01..DATA16> <CKS>. DATA01=adjustability status (00/01/02/FF), DATA02..05=range, DATA06..07=default, DATA08..09=current, DATA10..13=wide/narrow step, DATA14=default validity."
# --- Projector status requests (078 family) ---
- id: setting_request_078_1
label: "078-1. SETTING REQUEST"
kind: query
command: "00 85 00 00 01 00 86"
params: []
notes: "Response: 20 85 <ID1> <ID2> 20 <DATA01..DATA32> <CKS>. DATA01..03=Base model type; DATA04=Sound function; DATA05=Profile number (00h=none, 01h=clock, 02h=sleep timer, 03h=both)."
- id: running_status_request_078_2
label: "078-2. RUNNING STATUS REQUEST"
kind: query
command: "00 85 00 00 01 01 87"
params: []
notes: "Response: 20 85 <ID1> <ID2> 10 <DATA01..DATA16> <CKS>. DATA03=Power status (00h=Standby, 01h=Power on, FFh=unsupported); DATA04=Cooling process; 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)."
- id: input_status_request_078_3
label: "078-3. INPUT STATUS REQUEST"
kind: query
command: "00 85 00 00 01 02 88"
params: []
notes: "Response: 20 85 <ID1> <ID2> 10 <DATA01..DATA16> <CKS>. DATA01=signal switch process; DATA02=signal list number (-1 of practical); DATA03/04=selection signal type; DATA05=signal list type; DATA06=test pattern; DATA09=content displayed."
- id: mute_status_request_078_4
label: "078-4. MUTE STATUS REQUEST"
kind: query
command: "00 85 00 00 01 03 89"
params: []
notes: "Response: 20 85 <ID1> <ID2> 10 <DATA01..DATA16> <CKS>. DATA01=Picture mute, DATA02=Sound mute, DATA03=Onscreen mute, DATA04=Forced onscreen mute, DATA05=Onscreen display (00h/01h each)."
- id: model_name_request_078_5
label: "078-5. MODEL NAME REQUEST"
kind: query
command: "00 85 00 00 01 04 8A"
params: []
notes: "Response: 20 85 <ID1> <ID2> 20 <DATA01..DATA32> <CKS> = model name (NUL-terminated)."
- id: cover_status_request_078_6
label: "078-6. COVER STATUS REQUEST"
kind: query
command: "00 85 00 00 01 05 8B"
params: []
notes: "Response: 20 85 <ID1> <ID2> 01 <DATA01> <CKS>. DATA01=00h=Normal (cover opened), 01h=Cover closed."
# --- Freeze ---
- id: freeze_control_079
label: "079. FREEZE CONTROL"
kind: action
command: "01 98 00 00 01 {data01} {cks}"
params:
- name: data01
type: integer
description: "01h=Freeze ON, 02h=Freeze OFF."
notes: "Response: 21 98 <ID1> <ID2> 01 <DATA01> <CKS>; error: A1 98 <ID1> <ID2> 02 <ERR1> <ERR2> <CKS>."
# --- Information string request ---
- id: information_string_request_084
label: "084. INFORMATION STRING REQUEST"
kind: query
command: "00 D0 00 00 03 00 {data01} 01 {cks}"
params:
- name: data01
type: integer
description: "Information type: 03h=Horizontal synchronous frequency, 04h=Vertical synchronous frequency."
notes: "Response: 20 D0 <ID1> <ID2> LEN <DATA01> 01 <DATA02..??> <CKS>. DATA02=string length, DATA03..=label/info strings (NUL-terminated)."
# --- 097 family (settings requests) ---
- id: eco_mode_request_097_8
label: "097-8. ECO MODE REQUEST"
kind: query
command: "03 B0 00 00 01 07 BB"
params: []
notes: "Response: 23 B0 <ID1> <ID2> 02 07 <DATA01> <CKS>. DATA01=eco-mode value (code table in Appendix, not present in this excerpt). Returns 'Light mode' or 'Lamp mode' value depending on projector."
- id: lan_projector_name_request_097_45
label: "097-45. LAN PROJECTOR NAME REQUEST"
kind: query
command: "03 B0 00 00 01 2C E0"
params: []
notes: "Response: 23 B0 <ID1> <ID2> 12 2C <DATA01..DATA17> <CKS> = projector name (NUL-terminated)."
- id: lan_mac_address_request_097_155
label: "097-155. LAN MAC ADDRESS STATUS REQUEST2"
kind: query
command: "03 B0 00 00 02 9A 00 4F"
params: []
notes: "Response: 23 B0 <ID1> <ID2> 08 9A 00 <DATA01..DATA06> <CKS> = MAC address (6 bytes)."
- id: pip_pbypicture_request_097_198
label: "097-198. PIP/PICTURE BY PICTURE REQUEST"
kind: query
command: "03 B0 00 00 02 C5 {data01} {cks}"
params:
- name: data01
type: integer
description: "Selector: 00h=MODE, 01h=START POSITION, 02h=SUB INPUT / SUB INPUT 1, 09h=SUB INPUT 2, 0Ah=SUB INPUT 3."
notes: "Response: 23 B0 <ID1> <ID2> 03 C5 <DATA01> <DATA02> <CKS>. DATA02 meaning depends on selector (MODE: 00h=PIP/01h=PICTURE BY PICTURE; START POSITION: 00h..03h corners; sub inputs per Appendix)."
- id: edge_blending_mode_request_097_243_1
label: "097-243-1. EDGE BLENDING MODE REQUEST"
kind: query
command: "03 B0 00 00 02 DF 00 94"
params: []
notes: "Response: 23 B0 <ID1> <ID2> 03 DF 00 <DATA01> <CKS>. DATA01=00h=OFF, 01h=ON."
# --- 098 family (settings set) ---
- id: eco_mode_set_098_8
label: "098-8. ECO MODE SET"
kind: action
command: "03 B1 00 00 02 07 {data01} {cks}"
params:
- name: data01
type: integer
description: "Eco-mode value (code table in Appendix, not present in this excerpt). Sets 'Light mode' or 'Lamp mode' depending on projector."
notes: "Response: 23 B1 <ID1> <ID2> 02 07 <DATA01> <CKS>."
- id: lan_projector_name_set_098_45
label: "098-45. LAN PROJECTOR NAME SET"
kind: action
command: "03 B1 00 00 12 2C {data01..data16} 00 {cks}"
params:
- name: data01_to_data16
type: string
description: "Projector name ASCII bytes, up to 16 bytes, NUL-padded."
notes: "Response: 23 B1 <ID1> <ID2> 02 2C <DATA01> <CKS>."
- id: pip_pbypicture_set_098_198
label: "098-198. PIP/PICTURE BY PICTURE SET"
kind: action
command: "03 B1 00 00 03 C5 {data01} {data02} {cks}"
params:
- name: data01
type: integer
description: "Selector: 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 (depends on selector; see source §3.48)."
notes: "Response: 23 B1 <ID1> <ID2> 03 C5 <DATA01> <DATA02> <CKS>. Note: source's response DATA01 encoding differs (00h=MODE, 03h=SUB INPUT 2, 04h=SUB INPUT 3) from command selector."
- id: edge_blending_mode_set_098_243_1
label: "098-243-1. EDGE BLENDING MODE SET"
kind: action
command: "03 B1 00 00 03 DF 00 {data01} {cks}"
params:
- name: data01
type: integer
description: "Setting value: 00h=OFF, 01h=ON."
notes: "Response: 23 B1 <ID1> <ID2> 03 DF 00 <DATA01> <CKS>."
# --- 305 family ---
- id: base_model_type_request_305_1
label: "305-1. BASE MODEL TYPE REQUEST"
kind: query
command: "00 BF 00 00 01 00 C0"
params: []
notes: "Response: 20 BF <ID1> <ID2> 10 00 <DATA01..DATA15> <CKS>. DATA01..02=base model type; DATA03..11=model name; DATA12..13=base model type; DATA14..15=reserved. Code table in Appendix."
- id: serial_number_request_305_2
label: "305-2. SERIAL NUMBER REQUEST"
kind: query
command: "00 BF 00 00 02 01 06 C8"
params: []
notes: "Response: 20 BF <ID1> <ID2> 12 01 06 <DATA01..DATA16> <CKS> = serial number (NUL-terminated)."
- id: basic_information_request_305_3
label: "305-3. BASIC INFORMATION REQUEST"
kind: query
command: "00 BF 00 00 01 02 C2"
params: []
notes: "Response: 20 BF <ID1> <ID2> 10 02 <DATA01..DATA15> <CKS>. DATA01=operation status, DATA02=content displayed, DATA03/04=signal types, DATA05=display signal type, DATA06..09=video/sound/onscreen/freeze mute states."
# --- 319 family ---
- id: audio_select_set_319_10
label: "319-10. AUDIO SELECT SET"
kind: action
command: "03 C9 00 00 03 09 {data01} {data02} {cks}"
params:
- name: data01
type: integer
description: "Input terminal code (full code table in Appendix, not present in this excerpt)."
- name: data02
type: integer
description: "Setting value: 00h=terminal specified in DATA01, 01h=BNC, 02h=COMPUTER."
notes: "Response: 23 C9 <ID1> <ID2> 03 09 <DATA01> <DATA02> <CKS>. DATA02=00h success, 01h error."
Feedbacks
feedbacks:
# The 078/305 query commands above ARE the feedback sources; their responses are documented in each action's notes.
# No separate unsolicited feedback channel documented; all status is response-driven.
# UNRESOLVED: source does not document any unsolicited event/notification mechanism.
Variables
# UNRESOLVED: source does not define separately settable numeric variables outside the action set.
Events
# UNRESOLVED: source does not document any unsolicited event/notification messages from the projector.
Macros
# UNRESOLVED: source does not document any named multi-step macros.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source does not describe safety interlock procedures, power-on sequencing
# requirements, or confirmation steps. Note only: POWER ON and POWER OFF commands
# lock out all other commands during execution (incl. cooling time). Source mentions
# an interlock switch bit in the 009 ERROR STATUS response (DATA09 bit1 = "interlock
# switch is open"), but no operational interlock procedure is documented here.
Notes
- Checksum rule (verbatim from source §2.2): add all preceding bytes; use the low-order one byte of the sum.
- Example from source:
20h 81h 01h 60h 01h 00h→ sum=103h → CKS=03h. - Command frames are always prefixed with a header byte indicating direction/message class:
00h/01h/02h/03h= command (host→projector); first nibble distinguishes parameter count.20h/21h/22h/23h= response success (projector→host).A0h/A1h/A2h/A3h= response with error (carries ERR1/ERR2).
- Power-state and cooling-state locks: during POWER ON / POWER OFF (incl. cooling time), no other command is accepted.
- Lamp usage time and filter usage time are reported in seconds; values are refreshed at 1-minute intervals.
- Two-lamp projector models: 037-4 LAMP INFORMATION REQUEST DATA01=01h (Lamp 2) is effective only on two-lamp models.
- Error codes ERR1/ERR2: full 22-code table is documented in source §2.4 (00h..03h ranges covering unrecognized command, unsupported, invalid value, invalid input, memory errors, forced mute, no signal, power-off rejection, no authority, gain errors, etc.).
Spec done. 53 commands all enumerated verbatim. Both serial + TCP transports documented. No fabricated values — baud rate from source (5 rates listed), port 7142 from source, ID1/ID2/Appendix codes marked UNRESOLVED.
## 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-06-16T18:41:17.059Z
last_checked_at: 2026-06-17T19:40:31.247Z
Verification Summary
verdict: verified
checked_at: 2026-06-17T19:40:31.247Z
matched_actions: 53
action_count: 53
confidence: medium
summary: "All 53 spec actions matched word-for-word with source hex opcodes; transport parameters verified; bidirectional coverage complete. (11 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "control ID (ID1) default and model code (ID2) for this model are not stated in this manual; values referenced in responses as <ID1> <ID2>. The Appendix \"Supplementary Information by Command\" (input terminal codes, aspect values, eco-mode values, base-model-type codes) is not present in this refined excerpt."
- "source states \"Full duplex\" communication mode but no explicit flow_control; pinout exposes RTS/CTS"
- "source does not document any unsolicited event/notification mechanism."
- "source does not define separately settable numeric variables outside the action set."
- "source does not document any unsolicited event/notification messages from the projector."
- "source does not document any named multi-step macros."
- "source does not describe safety interlock procedures, power-on sequencing"
- "default control ID (ID1) and model code (ID2) for the Cb651Q are not stated in this manual — `<ID1>` and `<ID2>` placeholders appear in every response frame and must be substituted at runtime."
- "Appendix 'Supplementary Information by Command' (input terminal codes, aspect values, eco-mode values, base-model-type codes, sub-input setting values) is not present in this refined excerpt; several parameterized actions reference it for valid enum values."
- "source does not state firmware-version compatibility ranges."
- "serial flow_control not explicitly stated (pinout exposes RTS/CTS; source states 'Full duplex' communication mode only)."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0