Summary
Christie Sapphire 4K40-RGBH is a 4K RGB laser projector in the Christie TruLife+ family. This spec covers the Christie TruLife+ ASCII serial command protocol over both RS-232 (RS232C) and Ethernet/TCP. Messages are parenthesized text: (CODE data), (CODE? ) requests, (CODE!data) replies, with optional +SUBCODE, $/# acknowledgment, and & checksum prefixes.
Transport
# Source documents both RS232 IN port and Ethernet port. Serial-over-Ethernet
# uses the Christie serial protocol on TCP port 3002 (stated). Default RS232
# baud is 115200 (stated via BDR default value 6). Data bits/parity/stop bits
# not stated. Flow control: Xon/Xoff (11h/13h) described in Flow control section.
protocols:
- tcp
- serial
addressing:
port: 3002 # stated: "connect to port 3002" for Christie serial protocol over Ethernet; configurable via NET+PORT (1024-49151, 3003 reserved)
serial:
baud_rate: 115200 # stated default (BDR+PRTA value 6); configurable 2400/9600/19200/38400/57600/115200
data_bits: null # UNRESOLVED: not stated in source
parity: null # UNRESOLVED: not stated in source
stop_bits: null # UNRESOLVED: not stated in source
flow_control: xon_xoff # inferred: Xon(11h)/Xoff(13h) flow control described in source
auth:
type: none # inferred: default Remote Access Level (RAL) = Free Access = operator level without login; UID login exists for elevated/service access
Traits
traits:
- powerable # inferred: PWR on/off commands present
- queryable # inferred: many request (?) commands returning state (PWR?, SHU?, SST?, etc.)
- routable # inferred: input/channel selection commands (SIN, CHA, SIN+PORT)
- levelable # inferred: laser power, lens position, gamma, sharpness set commands
Actions
# All command payloads verbatim from source (parenthesized ASCII). kind: query
# for request (?) forms, kind: action for set forms. Per coverage rule every
# documented opcode/subcode enumerated.
# --- ADR - Projector Address ---
- id: adr_query
label: Query Projector Address
kind: query
command: "(ADR?)"
params: []
- id: adr_set
label: Set Projector Address
kind: action
command: "(ADR {value})"
params:
- name: value
type: integer
description: "0 to 999; 65535 = reserved broadcast address"
# --- APW - Auto Power On ---
- id: apw_set
label: Set Auto Power On
kind: action
command: "(APW {value})"
params:
- name: value
type: integer
description: "0 = disable auto power up, 1 = enable auto power up"
# --- BDR - Baud Rate ---
- id: bdr_prta_query
label: Query RS232-IN Baud Rate
kind: query
command: "(BDR+PRTA?)"
params: []
- id: bdr_prta_set
label: Set RS232-IN Baud Rate
kind: action
command: "(BDR+PRTA {value})"
params:
- name: value
type: integer
description: "1=2400, 2=9600, 3=19200, 4=38400, 5=57600, 6=115200 (default). Service access required."
# --- BGC - Gamma Function ---
- id: bgc_set
label: Set Gamma Transfer Function
kind: action
command: "(BGC {value})"
params:
- name: value
type: integer
description: "0=Auto Detect, 1=sRGB, 2=Power Law, 3=Classic, 4=ITU-R BT.1886, 6=HDR/PQ, 7=Raw PQ clipped, 100+=custom"
# --- BLO - Black Level Offset ---
- id: blo_cali
label: Save Black Level Offset Factory Defaults
kind: action
command: "(BLO+CALI 1)"
params: []
- id: blo_bluo_set
label: Set Blue DMD Black Offset
kind: action
command: "(BLO+BLUO {value})"
params:
- name: value
type: integer
description: "0 to 100, 100 = 0.0010 (default)"
- id: blo_grno_set
label: Set Green DMD Black Offset
kind: action
command: "(BLO+GRNO {value})"
params:
- name: value
type: integer
description: "0 to 100"
- id: blo_redo_set
label: Set Red DMD Black Offset
kind: action
command: "(BLO+REDO {value})"
params:
- name: value
type: integer
description: "0 to 100"
- id: blo_maxo_set
label: Set Max Black Level Offset
kind: action
command: "(BLO+MAXO {value})"
params:
- name: value
type: integer
description: maximum value of black level offset
- id: blo_slct_set
label: Enable/Disable Black Level Offsets
kind: action
command: "(BLO+SLCT {value})"
params:
- name: value
type: integer
description: "0 = disable, 1 = enable (default)"
# --- CAV - Video Input Configuration ---
- id: cav_mode_query
label: Query Scaler FPGA Mode
kind: query
command: "(CAV+MODE?)"
params: []
- id: cav_mode_set
label: Set Scaler FPGA Mode
kind: action
command: "(CAV+MODE {value})"
params:
- name: value
type: integer
description: "0 = DP mode (default), 1 = SDVoE mode"
# --- CCA - Color Adjustment ---
- id: cca_copy_set
label: Copy Color Table
kind: action
command: "(CCA+COPY {value})"
params:
- name: value
type: integer
description: "0=Max Drives, 1=Color Temp, 2=HD Video, 5=DCI P3, 6=DCI P3 D65, 7=BT.2020"
- id: cca_ctmp_set
label: Set Color Temperature
kind: action
command: "(CCA+CTMP {value})"
params:
- name: value
type: integer
description: "3200 to 9300; 6500 default"
- id: cca_slct_set
label: Select Color Table
kind: action
command: "(CCA+SLCT {value})"
params:
- name: value
type: integer
description: "0=Max Drives,1=Color Temp,2=HD Video,3=Custom,4=Auto Detect(default),5=DCI P3,6=DCI P3 D65,7=BT.2020"
- id: cca_rdcx_set
label: Set Custom Red X Coordinate
kind: action
command: "(CCA+RDCX {value})"
params:
- name: value
type: integer
description: x coordinate for red, scaled by 10000
- id: cca_rdcy_set
label: Set Custom Red Y Coordinate
kind: action
command: "(CCA+RDCY {value})"
params:
- name: value
type: integer
description: y coordinate for red, scaled by 10000
- id: cca_gncx_set
label: Set Custom Green X Coordinate
kind: action
command: "(CCA+GNCX {value})"
params:
- name: value
type: integer
description: x coordinate for green, scaled by 10000
- id: cca_gncy_set
label: Set Custom Green Y Coordinate
kind: action
command: "(CCA+GNCY {value})"
params:
- name: value
type: integer
description: y coordinate for green, scaled by 10000
- id: cca_blcx_set
label: Set Custom Blue X Coordinate
kind: action
command: "(CCA+BLCX {value})"
params:
- name: value
type: integer
description: x coordinate for blue, scaled by 10000
- id: cca_blcy_set
label: Set Custom Blue Y Coordinate
kind: action
command: "(CCA+BLCY {value})"
params:
- name: value
type: integer
description: y coordinate for blue, scaled by 10000
- id: cca_whcx_set
label: Set Custom White X Coordinate
kind: action
command: "(CCA+WHCX {value})"
params:
- name: value
type: integer
description: x coordinate for white, scaled by 10000
- id: cca_whcy_set
label: Set Custom White Y Coordinate
kind: action
command: "(CCA+WHCY {value})"
params:
- name: value
type: integer
description: y coordinate for white, scaled by 10000
- id: cca_gofr_set
label: Set Green-of-Red Saturation
kind: action
command: "(CCA+GOFR {value})"
params:
- name: value
type: integer
description: "-1000 to 1000, 1000 = 100%"
- id: cca_bofr_set
label: Set Blue-of-Red Saturation
kind: action
command: "(CCA+BOFR {value})"
params:
- name: value
type: integer
description: "-1000 to 1000"
- id: cca_rofg_set
label: Set Red-of-Green Saturation
kind: action
command: "(CCA+ROFG {value})"
params:
- name: value
type: integer
description: "-1000 to 1000"
- id: cca_bofg_set
label: Set Blue-of-Green Saturation
kind: action
command: "(CCA+BOFG {value})"
params:
- name: value
type: integer
description: "-1000 to 1000"
- id: cca_rofb_set
label: Set Red-of-Blue Saturation
kind: action
command: "(CCA+ROFB {value})"
params:
- name: value
type: integer
description: "-1000 to 1000"
- id: cca_gofb_set
label: Set Green-of-Blue Saturation
kind: action
command: "(CCA+GOFB {value})"
params:
- name: value
type: integer
description: "-1000 to 1000"
- id: cca_rofr_set
label: Set Red-of-Red Saturation
kind: action
command: "(CCA+ROFR {value})"
params:
- name: value
type: integer
description: "0 to 1000, 1000 = 100%"
- id: cca_gofg_set
label: Set Green-of-Green Saturation
kind: action
command: "(CCA+GOFG {value})"
params:
- name: value
type: integer
description: "0 to 1000"
- id: cca_bofb_set_native
label: Set Blue-of-Blue Saturation
kind: action
command: "(CCA+BOFB {value})"
params:
- name: value
type: integer
description: "0 to 1000"
- id: cca_rofw_set
label: Set Red-of-White Saturation
kind: action
command: "(CCA+ROFW {value})"
params:
- name: value
type: integer
description: "0 to 1000"
- id: cca_gofw_set
label: Set Green-of-White Saturation
kind: action
command: "(CCA+GOFW {value})"
params:
- name: value
type: integer
description: "0 to 1000"
- id: cca_bofw_set
label: Set Blue-of-White Saturation
kind: action
command: "(CCA+BOFW {value})"
params:
- name: value
type: integer
description: "0 to 1000"
- id: cca_rdpx_set
label: Set Native Red X Primary
kind: action
command: "(CCA+RDPX {value})"
params:
- name: value
type: integer
description: native red x coordinate, scaled by 10000. Service user only.
- id: cca_rdpy_set
label: Set Native Red Y Primary
kind: action
command: "(CCA+RDPY {value})"
params:
- name: value
type: integer
description: native red y coordinate, scaled by 10000. Service user only.
- id: cca_gnpx_set
label: Set Native Green X Primary
kind: action
command: "(CCA+GNPX {value})"
params:
- name: value
type: integer
description: native green x coordinate, scaled by 10000. Service user only.
- id: cca_gnpy_set
label: Set Native Green Y Primary
kind: action
command: "(CCA+GNPY {value})"
params:
- name: value
type: integer
description: native green y coordinate, scaled by 10000. Service user only.
- id: cca_blpx_set
label: Set Native Blue X Primary
kind: action
command: "(CCA+BLPX {value})"
params:
- name: value
type: integer
description: native blue x coordinate, scaled by 10000. Service user only.
- id: cca_blpy_set
label: Set Native Blue Y Primary
kind: action
command: "(CCA+BLPY {value})"
params:
- name: value
type: integer
description: native blue y coordinate, scaled by 10000. Service user only.
- id: cca_whpx_set
label: Set Native White X Primary
kind: action
command: "(CCA+WHPX {value})"
params:
- name: value
type: integer
description: native white x coordinate, scaled by 10000. Service user only.
- id: cca_whpy_set
label: Set Native White Y Primary
kind: action
command: "(CCA+WHPY {value})"
params:
- name: value
type: integer
description: native white y coordinate, scaled by 10000. Service user only.
- id: cca_rset
label: Reset Native Color Primaries
kind: action
command: "(CCA+RSET)"
params: []
- id: cca_save
label: Save Native Color Primaries
kind: action
command: "(CCA+SAVE)"
params: []
# --- CHA - Channel ---
- id: cha_list_query
label: Query Available Channels List
kind: query
command: "(CHA?L)"
params: []
- id: cha_select
label: Select Channel
kind: action
command: "(CHA {channel})"
params:
- name: channel
type: integer
description: "channel id (e.g. 600=One-port HDMI0, 603=DP0, 622=Four-Port SDI, 636=Four-Port DP)"
# --- CHL - Christie Link Input Select ---
- id: chl_inpt_set
label: Set Christie Link Input
kind: action
command: "(CHL+INPT {value})"
params:
- name: value
type: integer
description: "0=default loopout, 1=port 1, 2=port 2"
# --- CLE - Color Enable ---
- id: cle_set
label: Enable Color in Video Path
kind: action
command: "(CLE {color})"
params:
- name: color
type: integer
description: "0=White,1=Red,2=Green,3=Blue,4=Yellow,5=Cyan,6=Magenta"
# --- COO - Cooling Option ---
- id: coo_hepa_set
label: Set Pressurized Filter Installed
kind: action
command: "(COO+HEPA {value})"
params:
- name: value
type: integer
description: "0 = not installed, 1 = installed"
# --- CSP - Color Space Selection ---
- id: csp_set
label: Set Color Space
kind: action
command: "(CSP {color_space})"
params:
- name: color_space
type: integer
description: "0=Auto,1=RGB full,2=YCbCr 709,3=RGB limited,4=YCbCr exp,5=YCbCr JPEG,6=YCbCr 2020,7=YCbCr 2020 full,8=XYZ"
# --- CUC - 1D Color Uniformity ---
- id: cuc_habl_set
label: Set Color Uniformity Luminance
kind: action
command: "(CUC+H{a}{b}L {luminance})"
params:
- name: a
type: integer
description: "point being measured (1 to 5)"
- name: b
type: string
description: "color R/G/B"
- name: luminance
type: integer
description: measured luminance value
- id: cuc_habx_set
label: Set Color Uniformity X Reading
kind: action
command: "(CUC+H{a}{b}X {measurement})"
params:
- name: a
type: integer
description: "point 1 to 5"
- name: b
type: string
description: "color R/G/B"
- name: measurement
type: integer
description: X coordinate of color
- id: cuc_haby_set
label: Set Color Uniformity Y Reading
kind: action
command: "(CUC+H{a}{b}Y {measurement})"
params:
- name: a
type: integer
description: "point 1 to 5"
- name: b
type: string
description: "color R/G/B"
- name: measurement
type: integer
description: Y coordinate of color
- id: cuc_slct_set
label: Enable/Disable Color Uniformity
kind: action
command: "(CUC+SLCT {value})"
params:
- name: value
type: integer
description: "0=disable(default),1=enable 1D,2=custom from file"
# --- DEF - Factory Defaults ---
- id: def_factory_reset
label: Factory Defaults Reset
kind: action
command: "(DEF 111)"
params: []
# --- DMX - DMX/ArtNet ---
- id: dmx_chan_set
label: Set Art-Net Base Channel
kind: action
command: "(DMX+CHAN {value})"
params:
- name: value
type: integer
description: "1 to 488; 1 default"
- id: dmx_enbl_set
label: Enable/Disable Art-Net Interface
kind: action
command: "(DMX+ENBL {value})"
params:
- name: value
type: integer
description: "0 = disable (default), 1 = enable"
- id: dmx_nets_set
label: Set Art-Net Network
kind: action
command: "(DMX+NETS {value})"
params:
- name: value
type: integer
description: "0 to 127; 0 default"
- id: dmx_subn_set
label: Set Art-Net Subnet
kind: action
command: "(DMX+SUBN {value})"
params:
- name: value
type: integer
description: "0 to 15; 0 default"
- id: dmx_unvs_set
label: Set Art-Net Universe
kind: action
command: "(DMX+UNVS {value})"
params:
- name: value
type: integer
description: "0 to 15; 0 default"
# --- DRK - 3D Dark Interval ---
- id: drk_set
label: Set 3D Dark Interval
kind: action
command: "(DRK {value})"
params:
- name: value
type: integer
description: "250 to 3000 microseconds; 690 default"
# --- DTL - Sharpness ---
- id: dtl_set
label: Set Sharpness
kind: action
command: "(DTL {value})"
params:
- name: value
type: integer
description: "0-49 soften, 50 default, 51-100 sharpen"
# --- EBB - Black Level Blending ---
- id: ebb_slct_list_query
label: Query Black Level Blends List
kind: query
command: "(EBB+SLCT?L)"
params: []
- id: ebb_slct_set
label: Select Black Level Blend
kind: action
command: "(EBB+SLCT {value})"
params:
- name: value
type: integer
description: "0=off(default),1-4=blend,11=basic"
# --- EBL - Edge Blending Select ---
- id: ebl_slct_list_query
label: Query Edge Blends List
kind: query
command: "(EBL+SLCT?L)"
params: []
- id: ebl_slct_set
label: Select Edge Blend
kind: action
command: "(EBL+SLCT {value})"
params:
- name: value
type: integer
description: "0=off,1-4=blend,11=basic"
# --- EDO - EDID Override ---
- id: edo_set
label: Set Expected Frame Rate
kind: action
command: "(EDO {rate})"
params:
- name: rate
type: integer
description: "24,25,30,50,60(default),120(3D license)"
- id: edo_advn_set
label: Set EDID Mode
kind: action
command: "(EDO+ADVN {value})"
params:
- name: value
type: integer
description: "0=legacy, 1=default"
# --- EME - Enable Asynchronous Serial Messages ---
- id: eme_set
label: Enable/Disable Async Serial Messages
kind: action
command: "(EME {value})"
params:
- name: value
type: integer
description: "0=disable, 1=enable (default)"
# --- ENH - Enhanced Healing ---
- id: enh_slct_set
label: Set Enhanced DMD Healing
kind: action
command: "(ENH+SLCT {value})"
params:
- name: value
type: integer
description: "0=off(default),1=on"
# --- ETP - Engine Test Pattern ---
- id: etp_set
label: Set Engine Test Pattern
kind: action
command: "(ETP {index})"
params:
- name: index
type: integer
description: "0=Flat Black ... 238=Color Bars ... 255=Off"
# --- EVT - Event Manager ---
- id: evt_all_query
label: Query All Events
kind: query
command: "(EVT)"
params: []
- id: evt_max_query
label: Query N Most Recent Events
kind: query
command: "(EVT {max})"
params:
- name: max
type: integer
description: maximum number of events to return
- id: evt_range_query
label: Query Events Between Timestamps
kind: query
command: "(EVT \"{start}\" \"{end}\")"
params:
- name: start
type: string
description: "yyyy-mm-dd hh:mm:ss"
- name: end
type: string
description: "yyyy-mm-dd hh:mm:ss"
# --- FCS - Lens Focus Position ---
- id: fcs_range_query
label: Query Focus Position Range
kind: query
command: "(FCS?m)"
params: []
- id: fcs_set
label: Set Lens Focus Position
kind: action
command: "(FCS {position})"
params:
- name: position
type: integer
description: numeric value within range returned by FCS?m
# --- FMD - Film Mode Detect ---
- id: fmd_set
label: Set Film Mode Detect
kind: action
command: "(FMD {value})"
params:
- name: value
type: integer
description: "0=off, 1=on (default)"
# --- FRD - Frame Delay ---
- id: frd_set
label: Set Frame Delay
kind: action
command: "(FRD {delay})"
params:
- name: delay
type: integer
description: "1000 to 3000 (1/1000ths of frame); 2000 default"
- id: frd_stat_query
label: Query Actual Frame Delay
kind: query
command: "(FRD+STAT?)"
params: []
- id: frd_time_query
label: Query Actual Frame Delay (ms)
kind: query
command: "(FRD+TIME?)"
params: []
# --- FRZ - Image Freeze ---
- id: frz_set
label: Freeze/Unfreeze Image
kind: action
command: "(FRZ {value})"
params:
- name: value
type: integer
description: "0=unfreeze(default),1=freeze"
# --- GAM - Gamma Power Value ---
- id: gam_set
label: Set Gamma Power Exponent
kind: action
command: "(GAM {exponent})"
params:
- name: exponent
type: integer
description: "1000 to 3000; 2200 default"
- id: gam_maxl_set
label: Set Max Screen Luminance
kind: action
command: "(GAM+MAXL {value})"
params:
- name: value
type: integer
description: "100 to 2000; 1000 default"
- id: gam_minl_set
label: Set Min Screen Luminance
kind: action
command: "(GAM+MINL {value})"
params:
- name: value
type: integer
description: "0 to 1000; 10 default"
- id: gam_pqwl_set
label: Set PQ White Level
kind: action
command: "(GAM+PQWL {value})"
params:
- name: value
type: integer
description: "50 to 2000; 1000 default"
- id: gam_slop_set
label: Set Gamma Linear Section Slope
kind: action
command: "(GAM+SLOP {value})"
params:
- name: value
type: integer
description: "1 to 100; 1 default"
# --- GIO - General Purpose Input/Output ---
- id: gio_cnfg_query
label: Query GPIO Pin Directions
kind: query
command: "(GIO+CNFG?)"
params: []
- id: gio_cnfg_set
label: Set GPIO Pin Directions
kind: action
command: "(GIO+CNFG \"{config}\")"
params:
- name: config
type: string
description: 7-char string of I/O/X
- id: gio_stat_query
label: Query GPIO Input States
kind: query
command: "(GIO+STAT?)"
params: []
- id: gio_stat_set
label: Set GPIO Output States
kind: action
command: "(GIO+STAT \"{config}\")"
params:
- name: config
type: string
description: 7-char string of H/L/X
- id: gpio_trig_set
label: Set GPIO Camera Trigger
kind: action
command: "(GPIO+TRIG {config})"
params:
- name: config
type: string
description: 7-char string of N/T/X
# --- HFR - High Frame Rate ---
- id: hfr_enbl_toggle
label: Toggle High Frame Rate Mode
kind: action
command: "(HFR+ENBL)"
params: []
# --- ITP - Test Pattern ---
- id: itp_set
label: Set Test Pattern
kind: action
command: "(ITP {index})"
params:
- name: index
type: integer
description: "0=Off ... 23=Integrator Rod ... 100-109=user"
- id: itp_freq_set
label: Set Test Pattern Frequency
kind: action
command: "(ITP+FREQ {value})"
params:
- name: value
type: integer
description: "2300 to 50000; 6000 default"
- id: itp_grdc_set
label: Set Grid Color Mode
kind: action
command: "(ITP+GRDC {value})"
params:
- name: value
type: integer
description: "0=white-on-black, 1=multi-color (default)"
- id: itp_grdm_set
label: Set Grid Motion
kind: action
command: "(ITP+GRDM {value})"
params:
- name: value
type: integer
description: "0=static(default), 1=moving"
- id: itp_grdp_set
label: Set Grid Pitch
kind: action
command: "(ITP+GRDP {pitch})"
params:
- name: pitch
type: integer
description: "2 to 127; 32 default"
- id: itp_grey_set
label: Set Flat Grey Level
kind: action
command: "(ITP+GREY {level})"
params:
- name: level
type: integer
description: "0 to 4095; 2048 default"
- id: itp_rmpl_set
label: Set Ramp Start Grey Level
kind: action
command: "(ITP+RMPL {level})"
params:
- name: level
type: integer
description: "0 to 4095; 0 default"
- id: itp_rmpm_set
label: Set Ramp Motion Speed
kind: action
command: "(ITP+RMPM {speed})"
params:
- name: speed
type: integer
description: "0 to 100; 0 default"
- id: itp_rmps_set
label: Set Ramp Slope
kind: action
command: "(ITP+RMPS {slope})"
params:
- name: slope
type: integer
description: "-10 to 10; 1 default"
# --- KEN - Keypad Enable ---
- id: ken_frnt_set
label: Enable/Disable Front IR Keypad
kind: action
command: "(KEN+FRNT {value})"
params:
- name: value
type: integer
description: "0=disable, 1=enable (default)"
- id: ken_rear_set
label: Enable/Disable Rear IR Keypad
kind: action
command: "(KEN+REAR {value})"
params:
- name: value
type: integer
description: "0=disable, 1=enable (default)"
- id: ken_wire_query
label: Query Wired Keypad State
kind: query
command: "(KEN+WIRE?)"
params: []
- id: ken_wire_set
label: Enable/Disable Wired Keypad
kind: action
command: "(KEN+WIRE {value})"
params:
- name: value
type: integer
description: "0=disable, 1=enable (default)"
# --- LAS - Light & Output Settings ---
- id: las_blup_set
label: Set Blue Laser Drive Level
kind: action
command: "(LAS+BLUP {value})"
params:
- name: value
type: integer
description: "0 to 1000 (1000=100%); 635 default"
- id: las_cfcm_set
label: Set Camera Friendly Color Mode
kind: action
command: "(LAS+CFCM {value})"
params:
- name: value
type: integer
description: "0=off(default),1=on"
- id: las_cfwx_set
label: Set Camera Friendly White X
kind: action
command: "(LAS+CFWX {value})"
params:
- name: value
type: integer
description: "2500 to 4500; 2740 default"
- id: las_cfwy_set
label: Set Camera Friendly White Y
kind: action
command: "(LAS+CFWY {value})"
params:
- name: value
type: integer
description: "2500 to 4500; 3250 default"
- id: las_csrx_query
label: Query Color Sensor X Reading
kind: query
command: "(LAS+CSRX?)"
params: []
- id: las_csry_query
label: Query Color Sensor Y Reading
kind: query
command: "(LAS+CSRY?)"
params: []
- id: las_csrz_query
label: Query Color Sensor Z Reading
kind: query
command: "(LAS+CSRZ?)"
params: []
- id: las_elbm_set
label: Set Low Brightness Mode
kind: action
command: "(LAS+ELBM {value})"
params:
- name: value
type: integer
description: "0=disable(default),1=enable"
- id: las_grnp_set
label: Set Green Laser Drive Level
kind: action
command: "(LAS+GRNP {value})"
params:
- name: value
type: integer
description: "0 to 1000; 615 default"
- id: las_maxa_set
label: Set Max Ambient Temperature
kind: action
command: "(LAS+MAXA {value})"
params:
- name: value
type: integer
description: "0 to 50 Celsius; 35 default"
- id: las_maxh_set
label: Set Expected Relative Humidity
kind: action
command: "(LAS+MAXH {value})"
params:
- name: value
type: integer
description: "0 to 100 percent; 80 default"
- id: las_mode_set
label: Set LiteLOC Mode
kind: action
command: "(LAS+MODE {value})"
params:
- name: value
type: integer
description: "0/2 deprecated, 1=disable, 3=enable, 4=enable (Sapphire 4K40-RGBH default)"
- id: las_phop_set
label: Set Phosphor Pump Drive Level
kind: action
command: "(LAS+PHOP {value})"
params:
- name: value
type: integer
description: "0 to 1000; 0 default (Sapphire 4K40-RGBH)"
- id: las_powr_set
label: Set Laser Power
kind: action
command: "(LAS+POWR {value})"
params:
- name: value
type: integer
description: "0 to 1000 (1000=100%); 750 default"
- id: las_redp_set
label: Set Red Laser Drive Level
kind: action
command: "(LAS+REDP {value})"
params:
- name: value
type: integer
description: "0 to 1000; 820 default"
- id: las_udec_set
label: Set LiteLOC Environmental Control Mode
kind: action
command: "(LAS+UDEC {value})"
params:
- name: value
type: integer
description: "0=automatic(default),1=manual"
- id: las_whtx_set
label: Set White X Color Target
kind: action
command: "(LAS+WHTX {value})"
params:
- name: value
type: integer
description: "2500 to 4500; 3127 default"
- id: las_whty_set
label: Set White Y Color Target
kind: action
command: "(LAS+WHTY {value})"
params:
- name: value
type: integer
description: "2500 to 4500; 3290 default"
# --- LCB - Lens Motor Calibration ---
- id: lcb_calibrate
label: Calibrate All Lens Motors
kind: action
command: "(LCB 1)"
params: []
- id: lcb_home
label: Home Lens Motors
kind: action
command: "(LCB+HOME)"
params: []
- id: lcb_lock_set
label: Lock/Unlock Lens Motors
kind: action
command: "(LCB+LOCK {value})"
params:
- name: value
type: integer
description: "0=unlock(default),1=lock"
- id: lcb_zomr_set
label: Set Lens Motorized Flag
kind: action
command: "(LCB+ZOMR {value})"
params:
- name: value
type: integer
description: "0=no zoom(default),1=zoom motor"
- id: lcb_zoom_calibrate
label: Calibrate Zoom Motor
kind: action
command: "(LCB+ZOOM 1)"
params: []
# --- LHO - Lens Horizontal Position ---
- id: lho_range_query
label: Query Horizontal Position Range
kind: query
command: "(LHO?m)"
params: []
- id: lho_set
label: Set Lens Horizontal Position
kind: action
command: "(LHO {position})"
params:
- name: position
type: integer
description: numeric value within range returned by LHO?m
# --- LMV - Lens Move ---
- id: lmv_absolute
label: Move Lens to Absolute Position
kind: action
command: "(LMV {horizontal} {vertical} {zoom} {focus})"
params:
- name: horizontal
type: integer
- name: vertical
type: integer
- name: zoom
type: integer
- name: focus
type: integer
- id: lmv_frun_set
label: Run/Stop Focus Motor
kind: action
command: "(LMV+FRUN {value})"
params:
- name: value
type: integer
description: "-1=outward,0=stop,1=inward"
- id: lmv_fstp_set
label: Step Focus Motor
kind: action
command: "(LMV+FSTP {steps})"
params:
- name: steps
type: integer
description: "negative=outward, positive=inward"
- id: lmv_hrun_set
label: Run/Stop Horizontal Motor
kind: action
command: "(LMV+HRUN {value})"
params:
- name: value
type: integer
description: "-1=left,0=stop,1=right"
- id: lmv_hstp_set
label: Step Horizontal Motor
kind: action
command: "(LMV+HSTP {steps})"
params:
- name: steps
type: integer
description: "negative=left, positive=right"
- id: lmv_vrun_set
label: Run/Stop Vertical Motor
kind: action
command: "(LMV+VRUN {value})"
params:
- name: value
type: integer
description: "-1=down,0=stop,1=up"
- id: lmv_vstp_set
label: Step Vertical Motor
kind: action
command: "(LMV+VSTP {steps})"
params:
- name: steps
type: integer
description: "negative=down, positive=up"
- id: lmv_zrun_set
label: Run/Stop Zoom Motor
kind: action
command: "(LMV+ZRUN {value})"
params:
- name: value
type: integer
description: "-1=smaller,0=stop,1=larger"
- id: lmv_zstp_set
label: Step Zoom Motor
kind: action
command: "(LMV+ZSTP {steps})"
params:
- name: steps
type: integer
description: "negative=smaller, positive=larger"
# --- LOC - Localization Settings ---
- id: loc_lang_query
label: Query UI Language
kind: query
command: "(LOC+LANG?)"
params: []
- id: loc_lang_set
label: Set UI Language
kind: action
command: "(LOC+LANG {value})"
params:
- name: value
type: integer
description: "0=English(default),1=French,2=German,3=Spanish,4=Italian,5=Chinese,6=Japanese,7=Korean,8=Russian"
- id: loc_temp_query
label: Query Temperature Units
kind: query
command: "(LOC+TEMP?)"
params: []
- id: loc_temp_set
label: Set Temperature Units
kind: action
command: "(LOC+TEMP {value})"
params:
- name: value
type: integer
description: "0=Celsius(default),1=Fahrenheit"
# --- LVO - Lens Vertical Position ---
- id: lvo_range_query
label: Query Vertical Position Range
kind: query
command: "(LVO?m)"
params: []
- id: lvo_set
label: Set Lens Vertical Position
kind: action
command: "(LVO {position})"
params:
- name: position
type: integer
description: numeric value within range returned by LVO?m
# --- MSP - OSD Menu Position ---
- id: msp_query
label: Query OSD Position
kind: query
command: "(MSP?)"
params: []
- id: msp_set
label: Set OSD Position
kind: action
command: "(MSP {value})"
params:
- name: value
type: integer
description: "0=top-left(default) ... 8=bottom-right"
# --- NET - Network Setup ---
- id: net_static_set
label: Set Static IP/Netmask/Gateway
kind: action
command: "(NET \"{ip}\" \"{subnet}\" \"{gateway}\")"
params:
- name: ip
type: string
- name: subnet
type: string
- name: gateway
type: string
description: optional
- id: net_dgrp_set
label: Set Device Group Name
kind: action
command: "(NET+DGRP \"{group}\")"
params:
- name: group
type: string
- id: net_dhcp_set
label: Enable DHCP
kind: action
command: "(NET+DHCP 1)"
params: []
- id: net_eth0_query
label: Query Projector IP Address
kind: query
command: "(NET+ETH0?)"
params: []
- id: net_gate_query
label: Query Gateway Address
kind: query
command: "(NET+GATE?)"
params: []
- id: net_host_set
label: Set Projector Host Name
kind: action
command: "(NET+HOST \"{name}\")"
params:
- name: name
type: string
- id: net_mac0_query
label: Query MAC Address
kind: query
command: "(NET+MAC0?)"
params: []
- id: net_port_query
label: Query Serial-over-TCP Port
kind: query
command: "(NET+PORT?)"
params: []
- id: net_port_set
label: Set Serial-over-TCP Port
kind: action
command: "(NET+PORT {port})"
params:
- name: port
type: integer
description: "1024 to 49151 (3003 reserved)"
- id: net_sub0_query
label: Query Netmask
kind: query
command: "(NET+SUB0?)"
params: []
# --- OSD - On Screen Display ---
- id: osd_query
label: Query OSD State
kind: query
command: "(OSD?)"
params: []
- id: osd_set
label: Show/Hide OSD
kind: action
command: "(OSD {value})"
params:
- name: value
type: integer
description: "0=hide, 1=show (default)"
# --- OTR - Output Resolution ---
- id: otr_query
label: Query Output Resolution
kind: query
command: "(OTR?)"
params: []
- id: otr_hres_query
label: Query Max Horizontal Resolution
kind: query
command: "(OTR+HRES?)"
params: []
- id: otr_vres_query
label: Query Max Vertical Resolution
kind: query
command: "(OTR+VRES?)"
params: []
# --- PHL - Disable Phase Locking (Sapphire 4K40-RGBH) ---
- id: phl_query
label: Query Phase Locking State
kind: query
command: "(PHL?)"
params: []
- id: phl_set
label: Enable/Disable Phase Locking
kind: action
command: "(PHL {value})"
params:
- name: value
type: integer
description: "0=enable locking(default),1=disable locking"
# --- PNG - Ping ---
- id: png_query
label: Ping Projector
kind: query
command: "(PNG?)"
params: []
# --- PRO - Profile ---
- id: pro_list_query
label: Query Available Profiles
kind: query
command: "(PRO?L)"
params: []
- id: pro_select
label: Select Profile
kind: action
command: "(PRO {x})"
params:
- name: x
type: integer
description: "0=default, 1-20=custom"
- id: pro_rset
label: Clear Profile
kind: action
command: "(PRO+RSET {x})"
params:
- name: x
type: integer
description: "1-20"
# --- PWR - Power ---
- id: pwr_query
label: Query Power State
kind: query
command: "(PWR?)"
params: []
- id: pwr_set
label: Set Power On/Off
kind: action
command: "(PWR {value})"
params:
- name: value
type: integer
description: "0=off, 1=on"
- id: pwr_elec_set
label: Set Video Electronics Override in Standby
kind: action
command: "(PWR+ELEC {value})"
params:
- name: value
type: integer
description: "0=disable(default),1=enable"
# --- RAL - Remote Access Level ---
- id: ral_set
label: Set Ethernet Port Access Level
kind: action
command: "(RAL {value})"
params:
- name: value
type: integer
description: "0=No Access,1=Login Required,2=Free Access (default)"
- id: ral_prta_set
label: Set RS232 Port Access Level
kind: action
command: "(RAL+PRTA {value})"
params:
- name: value
type: integer
description: "0=No Access,1=Login Required,2=Free Access"
# --- RBK - RealBlack ---
- id: rbk_losl_set
label: Set RealBlack Min Pixel Threshold
kind: action
command: "(RBK+LOSL {value})"
params:
- name: value
type: integer
description: "0 to 255; 0 default"
- id: rbk_slct_set
label: Enable/Disable RealBlack
kind: action
command: "(RBK+SLCT {value})"
params:
- name: value
type: integer
description: "0=disable(default),1=enable"
- id: rbk_time_set
label: Set RealBlack Dark Frame Time
kind: action
command: "(RBK+TIME {value})"
params:
- name: value
type: integer
description: "0 to 25 (tenths of seconds); 5 default"
# --- SDI - SDI Payload Override ---
- id: sdi_set
label: Set SDI Payload Override
kind: action
command: "(SDI {value})"
params:
- name: value
type: integer
description: "0=Auto(default),1=Custom,2-7=3G-A presets"
- id: sdi_payl_set
label: Set Custom SDI Payload
kind: action
command: "(SDI+PAYL \"{custom_string}\")"
params:
- name: custom_string
type: string
description: 4-byte hex string big-endian
# --- SHU - Shutter ---
- id: shu_query
label: Query Shutter State
kind: query
command: "(SHU?)"
params: []
- id: shu_set
label: Open/Close Shutter
kind: action
command: "(SHU {value})"
params:
- name: value
type: integer
description: "0=open, 1=close (default)"
- id: shu_inhb_query
label: Query Shutter Inhibit State
kind: query
command: "(SHU+INHB?)"
params: []
- id: shu_inhb_set
label: Set Shutter Inhibit
kind: action
command: "(SHU+INHB {value})"
params:
- name: value
type: integer
description: "0=enable opening on power on(default),1=disable"
# --- SIN - Select Input ---
- id: sin_list_query
label: Query Available Inputs List
kind: query
command: "(SIN?L)"
params: []
- id: sin_select
label: Select Input
kind: action
command: "(SIN {input})"
params:
- name: input
type: integer
description: subject to range returned by SIN?L
- id: sin_port_set
label: Set Input Port Configuration
kind: action
command: "(SIN+PORT {config})"
params:
- name: config
type: integer
description: "1=One-Port(default),2=Two-Port,4=Four-Port Quadrants,5/9/10=Mirage license"
# --- SNM - SNMP Configuration ---
- id: snm_lamp_set
label: Enable/Disable Light Source Faults Trap
kind: action
command: "(SNM+LAMP {value})"
params:
- name: value
type: integer
description: "0=disable,1=enable(default)"
- id: snm_life_set
label: Enable/Disable Light Source Life Trap
kind: action
command: "(SNM+LIFE {value})"
params:
- name: value
type: integer
description: "0=disable,1=enable(default)"
- id: snm_powr_set
label: Enable/Disable Power State Trap
kind: action
command: "(SNM+POWR {value})"
params:
- name: value
type: integer
description: "0=disable,1=enable(default)"
- id: snm_read_set
label: Set SNMP Read Community Name
kind: action
command: "(SNM+READ \"{name}\")"
params:
- name: name
type: string
description: max 32 chars; default "private"
- id: snm_sign_set
label: Enable/Disable Video Signal Trap
kind: action
command: "(SNM+SIGN {value})"
params:
- name: value
type: integer
description: "0=disable,1=enable(default)"
- id: snm_stal_set
label: Enable/Disable Fan/Cooling Faults Trap
kind: action
command: "(SNM+STAL {value})"
params:
- name: value
type: integer
description: "0=disable,1=enable(default)"
- id: snm_tip1_set
label: Set SNMP Trap IP 1
kind: action
command: "(SNM+TIP1 \"{ip}\")"
params:
- name: ip
type: string
description: 0.0.0.0 disables (default)
- id: snm_tip2_set
label: Set SNMP Trap IP 2
kind: action
command: "(SNM+TIP2 \"{ip}\")"
params:
- name: ip
type: string
- id: snm_tip3_set
label: Set SNMP Trap IP 3
kind: action
command: "(SNM+TIP3 \"{ip}\")"
params:
- name: ip
type: string
- id: snm_thrm_set
label: Enable/Disable Temperature Faults Trap
kind: action
command: "(SNM+THRM {value})"
params:
- name: value
type: integer
description: "0=disable,1=enable(default)"
# --- SOR - Screen Orientation ---
- id: sor_set
label: Set Screen Orientation
kind: action
command: "(SOR {value})"
params:
- name: value
type: integer
description: "0=Front(default),1=Rear,2=Front inverted,3=Rear inverted"
# --- SPS - Splash Screen ---
- id: sps_colr_set
label: Set Splash Screen Color
kind: action
command: "(SPS+COLR {value})"
params:
- name: value
type: integer
description: "1=Red,2=Green,3=Blue,7=Black(default)"
# --- SSP - Shifted Superposition ---
- id: ssp_slct_query
label: Query Actuator State
kind: query
command: "(SSP+SLCT?)"
params: []
- id: ssp_slct_set
label: Enable/Disable Shifted Superposition
kind: action
command: "(SSP+SLCT {value})"
params:
- name: value
type: integer
description: "0=disable,1=enable(default)"
- id: ssp_tmul_set
label: Set Actuator Multiplication Mode
kind: action
command: "(SSP+TMUL {val})"
params:
- name: val
type: integer
description: "0=disable,1=enable(default)"
# --- SST - Status ---
- id: sst_all_query
label: Query All Status Items
kind: query
command: "(SST?)"
params: []
- id: sst_group_query
label: Query Status Group
kind: query
command: "(SST+{group}?)"
params:
- name: group
type: string
description: four-letter status group identifier
- id: sst_item_query
label: Query Specific Status Item
kind: query
command: "(SST+{group}?{index})"
params:
- name: group
type: string
- name: index
type: integer
# --- STH - Stealth Mode ---
- id: sth_mode_query
label: Query Stealth Mode State
kind: query
command: "(STH+MODE?)"
params: []
- id: sth_mode_set
label: Enable/Disable Stealth Mode
kind: action
command: "(STH+MODE {value})"
params:
- name: value
type: integer
description: "0=disable(default),1=enable"
# --- SZP - Resize Presets ---
- id: szp_set
label: Set Resize/Aspect Ratio
kind: action
command: "(SZP {value})"
params:
- name: value
type: integer
description: "0=auto(default),1=no resize,2=full size,3=full width,4=full height"
# --- TDD - 3D Sync Delay ---
- id: tdd_query
label: Query 3D Sync Delay
kind: query
command: "(TDD?)"
params: []
- id: tdd_set
label: Set 3D Sync Delay
kind: action
command: "(TDD {value})"
params:
- name: value
type: integer
description: negative=before transition, 0=default, positive=after
# --- TDM - 3D Mode ---
- id: tdm_set
label: Set 3D Mode
kind: action
command: "(TDM {mode})"
params:
- name: mode
type: integer
description: "0=off,1=auto(default),2=force 3D,3=SbS,5=Tb,6=Frame Packing"
# --- TDN - Invert 3D Input ---
- id: tdn_set
label: Invert 3D Left/Right Eyes
kind: action
command: "(TDN {value})"
params:
- name: value
type: integer
description: "0=default order(default),1=inverted"
# --- TDO - 3D Sync Out ---
- id: tdo_query
label: Query 3D Sync Out
kind: query
command: "(TDO?)"
params: []
- id: tdo_set
label: Set 3D Sync Out Mode
kind: action
command: "(TDO {value})"
params:
- name: value
type: integer
description: "0=emitter(default),1=downstream projector"
# --- TDT - 3D Test Pattern ---
- id: tdt_set
label: Enable/Disable 3D Test Pattern
kind: action
command: "(TDT {value})"
params:
- name: value
type: integer
description: "0=disable,1=enable"
# --- THM - Video Thumbnails ---
- id: thm_set
label: Enable/Disable Video Thumbnails
kind: action
command: "(THM {value})"
params:
- name: value
type: integer
description: "0=off,1=on(default)"
# --- TMC - Thermal Management Control ---
- id: tmc_mode_query
label: Query Fan Control Profile
kind: query
command: "(TMC+MODE?)"
params: []
- id: tmc_mode_set
label: Set Fan Control Profile
kind: action
command: "(TMC+MODE {value})"
params:
- name: value
type: integer
description: "0=Standard(default),1=Quiet,2=Performance"
# --- TMD - Time and Date ---
- id: tmd_date_set
label: Set Date
kind: action
command: "(TMD+DATE \"{date}\")"
params:
- name: date
type: string
description: "YYYY/MM/DD"
- id: tmd_time_query
label: Query Time
kind: query
command: "(TMD+TIME?)"
params: []
- id: tmd_time_set
label: Set Time
kind: action
command: "(TMD+TIME \"{time}\")"
params:
- name: time
type: string
description: "hh:mm:ss"
# --- TWE - Disable Optimization ---
- id: twe_set
label: Enable/Disable Warp Optimization
kind: action
command: "(TWE {value})"
params:
- name: value
type: integer
description: "0=enable optimization(default),1=disable"
# --- UID - User ID ---
- id: uid_login
label: Login User
kind: action
command: "(UID \"{username}\" \"{password}\")"
params:
- name: username
type: string
- name: password
type: string
- id: uid_query
label: Query Current User
kind: query
command: "(UID?)"
params: []
- id: uid_logout
label: Logout Current User
kind: action
command: "(UID)"
params: []
# --- WRP - Warp Selection ---
- id: wrp_kgan_query
label: Query 2D Keystone Gain Compensation
kind: query
command: "(WRP+KGAN?)"
params: []
- id: wrp_kgan_set
label: Set 2D Keystone Gain Compensation
kind: action
command: "(WRP+KGAN {value})"
params:
- name: value
type: integer
description: "0=disable(default),1=enable"
- id: wrp_slct_list_query
label: Query Available Warp Maps
kind: query
command: "(WRP+SLCT?L)"
params: []
- id: wrp_slct_set
label: Select Warp Map
kind: action
command: "(WRP+SLCT {value})"
params:
- name: value
type: integer
description: "0=off,1-4=warp map,11=2D keystone"
# --- ZOM - Lens Zoom Position ---
- id: zom_range_query
label: Query Zoom Position Range
kind: query
command: "(ZOM?m)"
params: []
- id: zom_set
label: Set Lens Zoom Position
kind: action
command: "(ZOM {position})"
params:
- name: position
type: integer
description: numeric value within range returned by ZOM?m
Feedbacks
# Observable states returned by query/reply messages.
- id: power_state
type: enum
values: [standby, on, cooling_down, warming_up]
query: "(PWR?)"
reply_format: "(PWR!{code} \"{label}\") # 000=Standby,001=On,010=Cooling down,011=Warming up"
- id: shutter_state
type: enum
values: [open, closed]
query: "(SHU?)"
reply_format: "(SHU!{value}) # 0=open, 1=closed"
- id: laser_power
type: range
query: "(LAS+POWR?)"
reply_format: "(LAS+POWR!{value})"
- id: channel_list
type: list
query: "(CHA?L)"
reply_format: "(CHA!L001 001 {index} \"{label}\")"
- id: status_item
type: object
query: "(SST+{group}?{index})"
reply_format: "(SST+{group}!{index} {state} \"{value}\" \"{description}\") # state 000=OK,001=Warning,002=Error"
# UNRESOLVED: additional feedback values (e.g. CUC readings, FRD actual delay) not exhaustively enumerated
Variables
# Most settable parameters are exposed as discrete set actions in the Actions
# section (LAS+POWR, GAM, DTL, FCS, LHO, LVO, ZOM, etc.). No additional
# continuous variables beyond those actions are documented.
# UNRESOLVED: none identified beyond Actions
Events
# Asynchronous FYI/ERR messages generated by the projector (controlled by EME).
# Format: (65535 00000 {FYI|ERR}{code} "{message}")
- id: datetime_changed
description: "Generated when date or time changes."
message_format: "(65535 00000 FYI00916 \"Setting Date to {date}\")"
message_format_2: "(65535 00000 FYI00916 \"Setting Time to {time}\")"
- id: factory_defaults_applied
description: "Generated when factory defaults performed; reboot required."
message_format: "(65535 00000 FYI00919 \"All settings have been restored to their factory defaults. Reboot is required to take effect.\")"
- id: network_changed
description: "Generated when network settings change (operator change, DHCP renewal, cable event)."
message_format: "(65535 00000 FYI00915 \"Configured network: IP:{ip} Mask:{mask} Gateway:{gw}\")"
- id: status_change
description: "Generated when a status item transitions between OK/Warning/Error states."
message_format: "(65535 00000 FYI00000 \"(SST+{group}?{index}) {label} = {value}\")"
message_format_2: "(65535 00000 ERR00000 \"System Warning: (SST+{group}?{index}) {label} = {value}\")"
message_format_3: "(65535 00000 ERR00000 \"System Error: (SST+{group}?{index}) {label} = {value}\")"
Macros
# Explicit multi-step sequences documented in source.
- id: power_on_confirm
description: "Power on and confirm steady powered-on state (can take 20+ seconds)."
steps:
- "(PWR 1)"
- "poll (PWR?) until reply (PWR!001 \"On\") arrives (passes through (PWR!011 \"Warming Up\"))"
- id: power_off_confirm
description: "Power off; cool-down typically ~3 minutes. Projector may be powered on again before cool-down completes."
steps:
- "(PWR 0)"
- "poll (PWR?) until reply (PWR!000 \"Standby Mode\") arrives (passes through (PWR!010 \"Cooling Down\"))"
Safety
confirmation_required_for:
- "(DEF 111)" # factory reset; guarded by mandatory 111 argument per source
- "(PWR 1)" # power-on transitions through ~20s warm-up; commands may be delayed
- "(PWR 0)" # cool-down phase ~3 min (model dependent)
interlocks:
- "Shutter reports closed in Standby; shutter only operable when projector is On."
- "Some commands operational only when projector powered up / video electronics on."
- "BDR+PRTA set requires service level access."
- "CCA native-primary controls (RDPX/RDPY/GNPX/GNPY/BLPX/BLPY/WHPX/WHPY, RSET, SAVE) require service user."
# UNRESOLVED: full interlock/error-recovery sequences (e.g. thermal shutdown behavior)
# not exhaustively described in this control-protocol source.
Notes
- Message format: All commands are ASCII, wrapped in parentheses
( ... ). Three-letter function code, optional+four-letter subcode, optional data. Request =?after code, reply =!after code. Data is ASCII-decimal, fixed-width in replies (min 3 chars, zero-padded). - Acknowledgment prefixes:
$(simple ack, returns$on success /^NAK on failure),#(full ack, echoes message),&(checksum — low byte of ASCII sum of chars between(and checksum space, range 0-255, placed before)with leading space). - Flow control: Xon/Xoff software flow control (11h Xon / 13h Xoff) in both directions. Projector sends no more than 3 chars after receiving Xoff; controller may send up to 10 extra bytes after Xoff.
- Addressing for daisy-chained RS232: address prefix supported via ADR command;
65535= broadcast. - Error replies:
(CODE) - (65535 00000 ERR{code} "{message}"). Documented error codes 3-118 (e.g. 5=Too few parameters, 8=Checksum error, 118=System busy). - Sapphire 4K40-RGBH specifics: LAS+MODE default 4; LAS+PHOP (phosphor pump) applies; PHL (phase locking disable) applies.
## Provenance
```yaml
source_domains:
- christiedigital.com
- manualslib.com
source_urls:
- https://www.christiedigital.com/globalassets/resources/public/020-103316-13-Christie-LIT-TECH-REF-TruLifePlus-API.pdf
- "https://www.manualslib.com/manual/3714733/Christie-Sapphire-4k40-Rgbh.html?page=75"
retrieved_at: 2026-08-11T05:36:19.357Z
last_checked_at: 2026-08-19T09:06:22.133Z
```
## Verification Summary
```yaml
verdict: verified
checked_at: 2026-08-19T09:06:22.133Z
matched_actions: 232
action_count: 232
confidence: medium
summary: "Spec enumerates 232 action units that all map verbatim to documented TruLife+ mnemonics; transport (port 3002, baud 115200) is stated in source. (9 unresolved item(s) noted in Known Gaps.)"
```
## Known Gaps
```yaml
- "serial data_bits/parity/stop_bits not stated in source."
- "firmware version compatibility not stated in source."
- "exact default voltage/power specs not covered (out of scope for control doc)."
- "not stated in source"
- "additional feedback values (e.g. CUC readings, FRD actual delay) not exhaustively enumerated"
- "none identified beyond Actions"
- "full interlock/error-recovery sequences (e.g. thermal shutdown behavior)"
- "firmware version compatibility not stated."
- "connector pinout / cable wiring references User Guide (P/N 020-103315-XX), not in source."
```
---
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0