Summary
Canon 4K501ST multimedia projector, controllable via RS-232C (19200 8N2, CR-delimited ASCII) or LAN (TCP/IP, port 33336). Commands take the form <COMMAND>=<value> for settings and GET=<COMMAND> for reference; responses are i:OK / i:BUSY, g:<command>=<value>, or e:<error> strings terminated with CR. Spec covers all 66 user commands from the vendor command list.
Transport
protocols:
- tcp
- serial
addressing:
port: 33336
serial:
baud_rate: 19200
data_bits: 8
parity: none
stop_bits: 2
flow_control: none
auth:
type: none # inferred: no auth procedure in source
Traits
# inferred from command evidence in source
traits:
- powerable # POWER command present
- routable # INPUT input-signal selection present
- queryable # GET= reference commands present
- levelable # AVOL, BRI, CONT, HUE, SAT, SHARP, GAMMA numeric settings present
Actions
# Setting commands: `CMD=value` + CR. Reference commands: `GET=CMD` + CR.
# Delimiter CR (0Dh) implied on every command - not repeated per entry.
# --- 6-axis color adjustment ---
- id: 6axadj_set
label: 6-axis Color Adjustment On/Off
kind: action
command: "6AXADJ={state}"
params:
- name: state
type: enum
values: [ON, OFF]
- id: 6axadj_query
label: 6-axis Color Adjustment Query
kind: query
command: "GET=6AXADJ"
params: []
- id: 6axr_set
label: 6-axis Adjustment Red (hue/saturation/brightness)
kind: action
command: "6AXR={hue},{saturation},{brightness}"
params:
- name: hue
type: integer
description: "R hue, -20 to 20"
- name: saturation
type: integer
description: "R saturation, -20 to 20"
- name: brightness
type: integer
description: "R brightness, -20 to 20"
- id: 6axr_query
label: 6-axis Adjustment Red Query
kind: query
command: "GET=6AXR"
params: []
- id: 6axg_set
label: 6-axis Adjustment Green (hue/saturation/brightness)
kind: action
command: "6AXG={hue},{saturation},{brightness}"
params:
- name: hue
type: integer
description: "G hue, -20 to 20"
- name: saturation
type: integer
description: "G saturation, -20 to 20"
- name: brightness
type: integer
description: "G brightness, -20 to 20"
- id: 6axg_query
label: 6-axis Adjustment Green Query
kind: query
command: "GET=6AXG"
params: []
- id: 6axb_set
label: 6-axis Adjustment Blue (hue/saturation/brightness)
kind: action
command: "6AXB={hue},{saturation},{brightness}"
params:
- name: hue
type: integer
description: "B hue, -20 to 20"
- name: saturation
type: integer
description: "B saturation, -20 to 20"
- name: brightness
type: integer
description: "B brightness, -20 to 20"
- id: 6axb_query
label: 6-axis Adjustment Blue Query
kind: query
command: "GET=6AXB"
params: []
- id: 6axc_set
label: 6-axis Adjustment Cyan (hue/saturation/brightness)
kind: action
command: "6AXC={hue},{saturation},{brightness}"
params:
- name: hue
type: integer
description: "C hue, -20 to 20"
- name: saturation
type: integer
description: "C saturation, -20 to 20"
- name: brightness
type: integer
description: "C brightness, -20 to 20"
- id: 6axc_query
label: 6-axis Adjustment Cyan Query
kind: query
command: "GET=6AXC"
params: []
- id: 6axm_set
label: 6-axis Adjustment Magenta (hue/saturation/brightness)
kind: action
command: "6AXM={hue},{saturation},{brightness}"
params:
- name: hue
type: integer
description: "M hue, -20 to 20"
- name: saturation
type: integer
description: "M saturation, -20 to 20"
- name: brightness
type: integer
description: "M brightness, -20 to 20"
- id: 6axm_query
label: 6-axis Adjustment Magenta Query
kind: query
command: "GET=6AXM"
params: []
- id: 6axy_set
label: 6-axis Adjustment Yellow (hue/saturation/brightness)
kind: action
command: "6AXY={hue},{saturation},{brightness}"
params:
- name: hue
type: integer
description: "Y hue, -20 to 20"
- name: saturation
type: integer
description: "Y saturation, -20 to 20"
- name: brightness
type: integer
description: "Y brightness, -20 to 20"
- id: 6axy_query
label: 6-axis Adjustment Yellow Query
kind: query
command: "GET=6AXY"
params: []
# --- Ambient light ---
- id: ambadj_set
label: Ambient Light Correction Adjustment
kind: action
command: "AMBADJ={state}"
params:
- name: state
type: enum
values: [ON]
- id: ambadj_query
label: Ambient Light Correction Query
kind: query
command: "GET=AMBADJ"
params: []
- id: amblevel_set
label: Ambient Light Level Setting
kind: action
command: "AMBLEVEL={level}"
params:
- name: level
type: enum
values: [WEAK, STRONG]
- id: amblevel_query
label: Ambient Light Level Query
kind: query
command: "GET=AMBLEVEL"
params: []
- id: ambtype_set
label: Ambient Light Type Setting
kind: action
command: "AMBTYPE={type}"
params:
- name: type
type: enum
values: [TG, FL]
description: "TG=Tungsten lamp, FL=Fluorescent lamp"
- id: ambtype_query
label: Ambient Light Type Query
kind: query
command: "GET=AMBTYPE"
params: []
# --- Audio input terminal selection ---
- id: aseld1_set
label: DVI-1 Audio Input Terminal Selection
kind: action
command: "ASELD1={terminal}"
params:
- name: terminal
type: string
description: "Digital PC audio terminal selection ID (example value: 1). UNRESOLVED: valid values not enumerated in source"
- id: aseld1_query
label: DVI-1 Audio Input Terminal Query
kind: query
command: "GET=ASELD1"
params: []
- id: aseld2_set
label: DVI-2 Audio Input Terminal Selection
kind: action
command: "ASELD2={terminal}"
params:
- name: terminal
type: string
description: "Digital PC audio terminal selection ID (example value: 1). UNRESOLVED: valid values not enumerated in source"
- id: aseld2_query
label: DVI-2 Audio Input Terminal Query
kind: query
command: "GET=ASELD2"
params: []
- id: aseld3_set
label: DVI-3 Audio Input Terminal Selection
kind: action
command: "ASELD3={terminal}"
params:
- name: terminal
type: string
description: "Digital PC audio terminal selection ID (example value: 1). UNRESOLVED: valid values not enumerated in source"
- id: aseld3_query
label: DVI-3 Audio Input Terminal Query
kind: query
command: "GET=ASELD3"
params: []
- id: aseld4_set
label: DVI-4 Audio Input Terminal Selection
kind: action
command: "ASELD4={terminal}"
params:
- name: terminal
type: string
description: "Digital PC audio terminal selection ID (example value: 1). UNRESOLVED: valid values not enumerated in source"
- id: aseld4_query
label: DVI-4 Audio Input Terminal Query
kind: query
command: "GET=ASELD4"
params: []
- id: aseldx2_set
label: DVI 1x2 Audio Input Terminal Selection
kind: action
command: "ASELDX2={terminal}"
params:
- name: terminal
type: string
description: "Digital PC audio terminal selection ID (example value: 1). UNRESOLVED: valid values not enumerated in source"
- id: aseldx2_query
label: DVI 1x2 Audio Input Terminal Query
kind: query
command: "GET=ASELDX2"
params: []
- id: aseldx4_set
label: DVI 2x2 / 1x4 Audio Input Terminal Selection
kind: action
command: "ASELDX4={terminal}"
params:
- name: terminal
type: string
description: "Digital PC audio terminal selection ID (example value: 1). UNRESOLVED: valid values not enumerated in source"
- id: aseldx4_query
label: DVI 2x2 / 1x4 Audio Input Terminal Query
kind: query
command: "GET=ASELDX4"
params: []
- id: aselh1_set
label: HDMI-1 Audio Input Terminal Selection
kind: action
command: "ASELH1={terminal}"
params:
- name: terminal
type: enum
values: [H1]
description: "H1 = HDMI1 audio"
- id: aselh1_query
label: HDMI-1 Audio Input Terminal Query
kind: query
command: "GET=ASELH1"
params: []
- id: aselh2_set
label: HDMI-2 Audio Input Terminal Selection
kind: action
command: "ASELH2={terminal}"
params:
- name: terminal
type: enum
values: [H2, OFF]
description: "H2 = HDMI2 audio, OFF = turned off"
- id: aselh2_query
label: HDMI-2 Audio Input Terminal Query
kind: query
command: "GET=ASELH2"
params: []
- id: aselhx2_set
label: HDMIx2 Audio Input Terminal Selection
kind: action
command: "ASELHX2={terminal}"
params:
- name: terminal
type: enum
values: [H1, H2, "1"]
description: "H1 = HDMI1 audio, H2 = HDMI2 audio, 1 = Audio in 1"
- id: aselhx2_query
label: HDMIx2 Audio Input Terminal Query
kind: query
command: "GET=ASELHX2"
params: []
# --- Picture / image settings ---
- id: aspect_set
label: Aspect Ratio Setting
kind: action
command: "ASPECT={mode}"
params:
- name: mode
type: enum
values: [AUTO, TRUE]
- id: aspect_query
label: Aspect Ratio Query
kind: query
command: "GET=ASPECT"
params: []
- id: avol_set
label: Audio Volume Adjustment
kind: action
command: "AVOL={volume}"
params:
- name: volume
type: integer
description: "Audio volume, 0 to 20. Adjusting during mute cancels mute"
- id: avol_query
label: Audio Volume Query
kind: query
command: "GET=AVOL"
params: []
- id: blank_set
label: Screen Blank
kind: action
command: "BLANK={state}"
params:
- name: state
type: enum
values: [ON, OFF]
description: "Executing in FREEZE status cancels FREEZE and becomes BLANK"
- id: blank_query
label: Screen Blank Query
kind: query
command: "GET=BLANK"
params: []
- id: bri_set
label: Brightness Setting
kind: action
command: "BRI={level}"
params:
- name: level
type: integer
description: "-20 to 20"
- id: bri_query
label: Brightness Query
kind: query
command: "GET=BRI"
params: []
- id: color_temp_set
label: Color Temperature Setting
kind: action
command: "COLOR_TEMP={level}"
params:
- name: level
type: integer
description: "-17 to 21"
- id: color_temp_query
label: Color Temperature Query
kind: query
command: "GET=COLOR_TEMP"
params: []
- id: cont_set
label: Contrast Setting
kind: action
command: "CONT={level}"
params:
- name: level
type: integer
description: "-20 to 20"
- id: cont_query
label: Contrast Query
kind: query
command: "GET=CONT"
params: []
- id: dgamma_set
label: Dynamic Gamma Setting
kind: action
command: "DGAMMA={mode}"
params:
- name: mode
type: enum
values: [WEAK]
description: "UNRESOLVED: only WEAK shown in source example; other values not enumerated"
- id: dgamma_query
label: Dynamic Gamma Query
kind: query
command: "GET=DGAMMA"
params: []
- id: fine_gamma_r_set
label: Fine Gamma R Setting
kind: action
command: "FINE_GAMMA_R={values}"
params:
- name: values
type: string
description: "Comma-separated adjustment point values (9 points in example), each 0 to 1024. Menu enforces point1-point9 >= 128; user commands do not"
- id: fine_gamma_r_query
label: Fine Gamma R Query
kind: query
command: "GET=FINE_GAMMA_R"
params: []
- id: fine_gamma_g_set
label: Fine Gamma G Setting
kind: action
command: "FINE_GAMMA_G={values}"
params:
- name: values
type: string
description: "Comma-separated adjustment point values (9 points in example), each 0 to 1024"
- id: fine_gamma_g_query
label: Fine Gamma G Query
kind: query
command: "GET=FINE_GAMMA_G"
params: []
- id: fine_gamma_b_set
label: Fine Gamma B Setting
kind: action
command: "FINE_GAMMA_B={values}"
params:
- name: values
type: string
description: "Comma-separated adjustment point values (9 points in example), each 0 to 1024"
- id: fine_gamma_b_query
label: Fine Gamma B Query
kind: query
command: "GET=FINE_GAMMA_B"
params: []
- id: fltwrn_set
label: Air Filter Cleaning Warning Display
kind: action
command: "FLTWRN={state}"
params:
- name: state
type: enum
values: [ON, OFF]
description: "ON from parameter table; OFF from usage example in source"
- id: fltwrn_query
label: Air Filter Cleaning Warning Query
kind: query
command: "GET=FLTWRN"
params: []
- id: freeze_set
label: Screen Freeze
kind: action
command: "FREEZE={state}"
params:
- name: state
type: enum
values: [ON, OFF]
- id: freeze_query
label: Screen Freeze Query
kind: query
command: "GET=FREEZE"
params: []
- id: gamma_set
label: Gamma Adjustment
kind: action
command: "GAMMA={level}"
params:
- name: level
type: integer
description: "-10 to 10"
- id: gamma_query
label: Gamma Adjustment Query
kind: query
command: "GET=GAMMA"
params: []
- id: htmpinf_set
label: High Temperature Caution Display Setting
kind: action
command: "HTMPINF={state}"
params:
- name: state
type: enum
values: [ON]
description: "UNRESOLVED: only ON documented; OFF presumed but not stated"
- id: htmpinf_query
label: High Temperature Caution Display Query
kind: query
command: "GET=HTMPINF"
params: []
- id: hue_set
label: Hue Setting
kind: action
command: "HUE={level}"
params:
- name: level
type: integer
description: "-20 to 20"
- id: hue_query
label: Hue Query
kind: query
command: "GET=HUE"
params: []
- id: image_set
label: Image Mode Setting
kind: action
command: "IMAGE={mode}"
params:
- name: mode
type: enum
values: [STANDARD, PRESENTATION, PHOTO_SRGB, DCM_SIM, DYNAMIC, VIDEO, USER_1, USER_2, USER_3]
description: "Changing mode reapplies the mode's unique setting-item set"
- id: image_query
label: Image Mode Query
kind: query
command: "GET=IMAGE"
params: []
- id: imageflip_set
label: Flip Display Setting
kind: action
command: "IMAGEFLIP={mode}"
params:
- name: mode
type: enum
values: [NONE, CEILING, REAR, REAR_CEILING]
description: "Flipping display initializes keystone distortion settings"
- id: imageflip_query
label: Flip Display Query
kind: query
command: "GET=IMAGEFLIP"
params: []
- id: input_set
label: Input Signal Selection
kind: action
command: "INPUT={input}"
params:
- name: input
type: enum
values: [HDMI1, HDMI2, HDMI1X2, D-RGB1, D-RGB2, D-RGB3, D-RGB4, D-RGB1X2, D-RGB2X2, D-RGB1X4]
- id: input_query
label: Input Signal Query
kind: query
command: "GET=INPUT"
params: []
- id: iris_set
label: Iris Setting
kind: action
command: "IRIS={mode}"
params:
- name: mode
type: enum
values: [OPEN, CLOSE1, CLOSE2, CLOSE3]
- id: iris_query
label: Iris Setting Query
kind: query
command: "GET=IRIS"
params: []
# --- Keys / panel / remote ---
- id: krep_set
label: Key Repeat Setting
kind: action
command: "KREP={state}"
params:
- name: state
type: enum
values: [OFF, ON]
- id: krep_query
label: Key Repeat Query
kind: query
command: "GET=KREP"
params: []
- id: lamp_set
label: Lamp Mode Setting
kind: action
command: "LAMP={mode}"
params:
- name: mode
type: enum
values: [FULL, ECO]
- id: lamp_query
label: Lamp Mode Query
kind: query
command: "GET=LAMP"
params: []
- id: lmpwrn_set
label: Lamp Replacement Warning Display Setting
kind: action
command: "LMPWRN={state}"
params:
- name: state
type: enum
values: [OFF, ON]
- id: lmpwrn_query
label: Lamp Replacement Warning Query
kind: query
command: "GET=LMPWRN"
params: []
- id: lposld_set
label: Lens Position Load
kind: action
command: "LPOSLD={position}"
params:
- name: position
type: enum
values: ["1", "2", "3"]
description: "Cannot be set when position save has not been executed; position save itself is menu-only"
- id: main_emulation
label: Unit Control Panel Emulation
kind: action
command: "MAIN={button}"
params:
- name: button
type: enum
values: [POWER, POWER_OFF, MENU, INPUT, AUTOPC, KEYSTONE, UP, "UP+REP", DOWN, "DOWN+REP", LEFT, "LEFT+REP", RIGHT, "RIGHT+REP", OK, "*-REP"]
description: "+REP = button press start; always end with *-REP (button press end). i:OK means request accepted, not executed. All params except POWER invalid in standby"
# --- Memory color ---
- id: memf_set
label: Memory Color Adjustment Flesh
kind: action
command: "MEMF={level}"
params:
- name: level
type: enum
values: [MIDDLE]
description: "UNRESOLVED: only MIDDLE shown in source example; other values not enumerated. Applies to current input signal and image mode"
- id: memf_query
label: Memory Color Adjustment Flesh Query
kind: query
command: "GET=MEMF"
params: []
- id: memg_set
label: Memory Color Adjustment Green
kind: action
command: "MEMG={level}"
params:
- name: level
type: enum
values: [MIDDLE]
description: "UNRESOLVED: only MIDDLE shown in source example"
- id: memg_query
label: Memory Color Adjustment Green Query
kind: query
command: "GET=MEMG"
params: []
- id: mems_set
label: Memory Color Adjustment Sky
kind: action
command: "MEMS={level}"
params:
- name: level
type: enum
values: [MIDDLE]
description: "UNRESOLVED: only MIDDLE shown in source example"
- id: mems_query
label: Memory Color Adjustment Sky Query
kind: query
command: "GET=MEMS"
params: []
- id: mute_set
label: Audio Mute
kind: action
command: "MUTE={state}"
params:
- name: state
type: enum
values: [ON, OFF]
description: "Mute always OFF after power-on; volume adjustment cancels mute"
- id: mute_query
label: Audio Mute Query
kind: query
command: "GET=MUTE"
params: []
- id: nr_set
label: Random Noise Reduction Setting
kind: action
command: "NR={level}"
params:
- name: level
type: enum
values: [MIDDLE]
description: "UNRESOLVED: only MIDDLE shown in source example; other values not enumerated"
- id: nr_query
label: Random Noise Reduction Query
kind: query
command: "GET=NR"
params: []
- id: nrmpg_set
label: MPEG Noise Reduction Setting
kind: action
command: "NRMPG={level}"
params:
- name: level
type: enum
values: [MIDDLE]
description: "UNRESOLVED: only MIDDLE shown in source example; other values not enumerated"
- id: nrmpg_query
label: MPEG Noise Reduction Query
kind: query
command: "GET=NRMPG"
params: []
# --- Power ---
- id: power_set
label: Power Supply Control
kind: action
command: "POWER={state}"
params:
- name: state
type: enum
values: [ON, OFF]
- id: power_query
label: Power Status Query
kind: query
command: "GET=POWER"
params: []
# response: g:POWER=<OFF|OFF2ON|ON|ON2PMM|PMM|PMM2ON|ON2OFF> - see Feedbacks
# --- RGB gain/offset ---
- id: rgbgain_set
label: RGB Gain Adjustment
kind: action
command: "RGBGAIN={r},{g},{b}"
params:
- name: r
type: integer
description: "R gain, -60 to 60"
- name: g
type: integer
description: "G gain, -60 to 60"
- name: b
type: integer
description: "B gain, -60 to 60"
- id: rgbgain_query
label: RGB Gain Query
kind: query
command: "GET=RGBGAIN"
params: []
- id: rgboffset_set
label: RGB Offset Adjustment
kind: action
command: "RGBOFFSET={r},{g},{b}"
params:
- name: r
type: integer
description: "R offset, -60 to 60"
- name: g
type: integer
description: "G offset, -60 to 60"
- name: b
type: integer
description: "B offset, -60 to 60"
- id: rgboffset_query
label: RGB Offset Query
kind: query
command: "GET=RGBOFFSET"
params: []
- id: sat_set
label: Color Saturation Setting
kind: action
command: "SAT={level}"
params:
- name: level
type: integer
description: "-20 to 20"
- id: sat_query
label: Color Saturation Query
kind: query
command: "GET=SAT"
params: []
- id: saveimgprof_set
label: User Memory Creation/Storage/Deletion
kind: action
command: "SAVEIMGPROF={operation}"
params:
- name: operation
type: enum
values: [USER_1, USER_2, USER_3, DEL_ALL]
description: "DEL_ALL restores factory-default state"
- id: saveimgprof_query
label: User Memory Presence Query
kind: query
command: "GET=SAVEIMGPROF"
params: []
# response: g:SAVEIMGPROF=<count>:<user1>,<user2>,<user3>
- id: sharp_set
label: Sharpness Setting
kind: action
command: "SHARP={level}"
params:
- name: level
type: integer
description: "-10 to 10"
- id: sharp_query
label: Sharpness Query
kind: query
command: "GET=SHARP"
params: []
- id: sigmsg_set
label: Input Status Display Setting
kind: action
command: "SIGMSG={state}"
params:
- name: state
type: enum
values: [ON]
description: "UNRESOLVED: only ON documented; OFF presumed but not stated"
- id: sigmsg_query
label: Input Status Display Query
kind: query
command: "GET=SIGMSG"
params: []
- id: tptn_set
label: Test Pattern Setting
kind: action
command: "TPTN={pattern}"
params:
- name: pattern
type: enum
values: [OFF, CB1, SSH1, SSH2, SSH3, SSV1, SSV2, SSV3, RTF1, RTF2, RTF3, RTF4, RTH1, RTH2, RTH3, RTH4, SSC1, SSC2, CKR1, CKR2, MUL1, MUL2, CHR1, FCS1, BDR1, CRS1, CRS2, CRS3, DCM1]
description: "OFF plus 28 test patterns (color bar, stair steps, rasters, checker, DICOM chart, etc.)"
- id: tptn_query
label: Test Pattern Query
kind: query
command: "GET=TPTN"
params: []
# --- Remote control emulation ---
- id: rc_emulation
label: Remote Control Operation Emulation
kind: action
command: "RC={button}"
params:
- name: button
type: enum
values: [POWER, POWER_OFF, MENU, EXIT, INPUT, DPC, APC1, APC2, HDMI, COMP, ASPECT, AUTOPC, UP, "UP+REP", DOWN, "DOWN+REP", LEFT, "LEFT+REP", RIGHT, "RIGHT+REP", OK, FOCUS, ZOOM, SHIFT, TPTN, KEYSTONE, NUM_0, NUM_1, NUM_2, NUM_3, NUM_4, NUM_5, NUM_6, NUM_7, NUM_8, NUM_9, DZOOM_P, "DZOOM_P+REP", DZOOM_M, "DZOOM_M+REP", VOL_P, "VOL_P+REP", VOL_M, "VOL_M+REP", MUTE, FN, IMAGE, FREEZE, BLANK, GAMMA, SPLIT, ECO, "*-REP"]
description: "+REP = button press start; always send *-REP at end to finish press. i:OK means request accepted, not executed"
# --- Inquiry-only commands ---
- id: comver_query
label: User Command Version Inquiry
kind: query
command: "GET=COMVER"
params: []
- id: err_query
label: Error Information Inquiry
kind: query
command: "GET=ERR"
params: []
- id: lampcounter_query
label: Lamp Counter Inquiry
kind: query
command: "GET=LAMPCOUNTER"
params: []
- id: prodcode_query
label: Product Name Inquiry
kind: query
command: "GET=PRODCODE"
params: []
- id: romver_query
label: Firmware Version Inquiry
kind: query
command: "GET=ROMVER"
params: []
- id: signal_info_query
label: Displayed Signal Information Inquiry
kind: query
command: "GET=SIGNAL_INFO"
params: []
- id: signalstatus_query
label: Signal Detection Inquiry
kind: query
command: "GET=SIGNALSTATUS"
params: []
- id: temp_query
label: Temperature Sensor Value Inquiry
kind: query
command: "GET=TEMP"
params: []
Feedbacks
- id: power_mode
type: enum
values: [OFF, OFF2ON, ON, ON2PMM, PMM, PMM2ON, ON2OFF]
description: "From GET=POWER response. Transition values: OFF2ON (OFF->ON), ON2PMM (ON->lamp off), PMM2ON (lamp off->ON), ON2OFF (ON->OFF)"
- id: error_state
type: enum
values: [NO_ERROR, ABNORMAL_TEMPERATURE, FAULTY_LAMP, FAULTY_LAMP_COVER, FAULTY_COOLING_FAN, FAULTY_POWER_SUPPLY, FAULTY_AIR_FILTER]
description: "From GET=ERR. Warning LED state; NO_ERROR when LED not lit"
- id: signal_status
type: enum
values: [NO_SIGNAL, DISPLAYING, SETTING, UNSUPPORTED, INSUFFICIENT]
description: "From GET=SIGNALSTATUS for selected input. e:1011 returned during BLANK"
- id: lamp_counter
type: string
description: "From GET=LAMPCOUNTER. Bracketed code encoding cumulative lamp-on hours, e.g. \"[GGG_____]\" = 1080-1619 H"
- id: temperature_sensors
type: string
description: "From GET=TEMP. Format <sensor count>,<value 1>,...,<value n>; count can be 0. Example: 5,28.5,53.3,53.3,53.3,33.0"
- id: command_version
type: string
description: "From GET=COMVER. 2-digit + 4-digit format, e.g. \"01.1234\""
- id: product_code
type: string
description: "From GET=PRODCODE. Returns \"4K501ST\""
- id: rom_version
type: string
description: "From GET=ROMVER. Example \"01.234567_12345\""
- id: signal_info
type: string
description: "From GET=SIGNAL_INFO. Example \"1920 x 1200 60\". Empty for USB/LAN display; e:1011 during test pattern"
- id: user_memory_status
type: string
description: "From GET=SAVEIMGPROF. Format <count>:<user1 present>,<user2 present>,<user3 present>, e.g. 3:0,1,1"
- id: command_ack
type: enum
values: [OK, BUSY]
description: "Normal response prefix i:. BUSY during internal processing - wait and resend"
- id: error_response
type: string
description: "Error responses e:<error ID> <info>: e:0002 INVALID_COMMAND, e:000A INVALID_PARAMETER, e:F001 SYSTEM, e:0005 NOT_POWER_SUPPLIED, e:1011 FUNCTION_NOT_AVAILABLE, e:201F INVALID_SIGNAL"
Variables
# All settable parameters are represented as discrete Actions (set + query pairs).
# No additional variables beyond those actions. Section N/A.
Events
# No unsolicited notifications documented in source. Projector only responds to commands.
# UNRESOLVED: no event mechanism stated
Macros
# No multi-step sequences described in source. Section N/A.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no explicit interlock procedures or power-on
# sequencing requirements. Note: error-processing section (chapter 8) is a
# picture omitted during extraction.
Notes
- Command format:
<command text>=<value>+ CR (0Dh), or bare<command text>+ CR. Queries useGET=<command>. Max 256 characters including delimiter. - Response format: first char is type (
inormal,greference,eerror) followed by:. All responses CR-terminated. - Serial: RS-232C start-stop sync half-duplex, 19200 bps, 8 data bits, 2 stop bits, no parity, no flow/error control, no break signal. 9-pin crossover cable, 3-line SD/RD/SG.
- LAN: TCP port 33336; socket closes after 30 s without a command; network function must be enabled on projector first.
- Timeouts: Tc (inter-character) 1 s — exceeding it or missing delimiter within 256 chars discards the partial command; Tr (command→response) 15 s — resend on timeout.
- Strict request/response lock-step: next command only after response; 2nd+ simultaneous commands discarded; LAN packets with embedded multiple commands process only the first.
- Commands are case-insensitive; use uppercase by convention.
- Power-mode restrictions: commands executable only in modes marked Yes (LAN: SL0/SL1/SL3/PM/ON; RS-232C: ST/PM/ON). In standby only a portion of commands work (e.g. POWER, GET=ERR, MAIN, RC, TEMP, COMVER, PRODCODE, ROMVER, LAMPCOUNTER).
- Naming discrepancy in source: command list spells FINEGAMMAR/FINEGAMMAG/FINEGAMMAB; command details and examples use FINE_GAMMA_R/FINE_GAMMA_G/FINE_GAMMA_B. This spec uses the detail spelling.
- MAIN/RC emulation:
i:OKacknowledges request acceptance only (including POWER_OFF) — no confirmation of actual execution. - Lamp/filt warnings display 10 s at startup regardless of trigger source (button or command).
Provenance
source_domains:
- files.canon-europe.com
source_urls:
- https://files.canon-europe.com/files/webcontent/pdf/4K501ST_UC_E_YT1-1467-000.pdf
retrieved_at: 2026-05-14T21:18:58.349Z
last_checked_at: 2026-09-09T22:17:02.764Z
Verification Summary
verdict: verified
checked_at: 2026-09-09T22:17:02.764Z
matched_actions: 121
action_count: 121
confidence: medium
summary: "All 121 spec action units decompose the 66 source commands (set/query pairs plus inquiry-only); every mnemonic verified in source command list and details; transport params match. (13 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "network configuration (IP addressing method) not described; several parameter enums (DGAMMA, MEMF/MEMG/MEMS, NR, NRMPG, ASELD*) not enumerated in source; power-mode restriction tables partially unreadable in extraction"
- "valid values not enumerated in source\""
- "only WEAK shown in source example; other values not enumerated\""
- "only ON documented; OFF presumed but not stated\""
- "only MIDDLE shown in source example; other values not enumerated. Applies to current input signal and image mode\""
- "only MIDDLE shown in source example\""
- "only MIDDLE shown in source example; other values not enumerated\""
- "no event mechanism stated"
- "source contains no explicit interlock procedures or power-on"
- "DGAMMA, MEMF/MEMG/MEMS, NR, NRMPG parameter value lists not enumerated in source (examples show WEAK / MIDDLE only)"
- "ASELD1-4/ASELDX2/ASELDX4 parameter values not enumerated in source (example shows 1)"
- "input-restriction columns per command unreadable in extraction; only FREEZE/NR/NRMPG/TEMP/MAIN restriction rows partially legible"
- "chapter 8 \"Error Processing\" is an omitted picture in the source extraction"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0