Summary
ASCII serial protocol for the Christie E Series cinema projectors (CP 2210, CP 2215, CP 2230, CP 2000M). Control and query are performed by sending three-character command codes (optionally with a four-character subcode, parameter, and a leading # for full acknowledgement) wrapped in parentheses over RS-232 (default 115200 baud, 8N1, no flow control) or an Ethernet port. Replies use (CODE!data) and (CODE+SUBCODE!data) formats; errors return (ITP)- (65535 00000 ERR00005 "ITP: Too Few Parameters")-style messages.
Transport
protocols:
- serial
- tcp
serial:
baud_rate: 115200
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
addressing:
port: null # UNRESOLVED: TCP port not stated in source
auth:
type: none # inferred: no auth procedure in source. (PIN protect is local UI lock, not network auth.)
Traits
- powerable # inferred: PWR on/off commands present
- routable # inferred: SIN / SIN+MAIN / SIN+PIIP input switching commands present
- queryable # inferred: MIF, SIF, LIF, PIF, SST, SIV, LCE, LSE query commands present
- levelable # inferred: brightness, contrast, color, tint, gain/offset, gamma, etc. present
Actions
# Each row corresponds to a command or subcode documented in the source.
# Message format: "(CODE[+SUBCODE][DATA])" for set, "(CODE+SUBCODE?)" for query.
# Optional leading "#" requests full acknowledgement echo.
# Modifiers "n" and "p" mean "next value" and "previous value" where supported.
# --- SIZE & POSITION ---
- id: size_preset
label: Size Preset
kind: action
command: "(SZP{preset})"
params:
- name: preset
type: integer
description: "0=Auto, 1=Native, 2=4:3, 3=LetterBox, 4=Full Size, 5=Full Width, 6=Full Height"
- id: overscan
label: Overscan
kind: action
command: "(OVS{mode})"
params:
- name: mode
type: integer
description: "0=Off, 1=Zoom, 2=Crop"
- id: pixel_phase
label: Pixel Phase
kind: action
command: "(PXP{value})"
params:
- name: value
type: integer
description: "0-100 (default 50)"
- id: pixel_track
label: Pixel Track
kind: action
command: "(PXT{value})"
params:
- name: value
type: integer
description: "0-100 (default 50)"
- id: horz_position
label: Horizontal Position
kind: action
command: "(HOR{value})"
params:
- name: value
type: integer
description: "0-100 (default 50)"
- id: vert_position
label: Vertical Position
kind: action
command: "(VRT{value})"
params:
- name: value
type: integer
description: "0-100 (default 50)"
- id: horz_keystone
label: Horizontal Keystone
kind: action
command: "(WRP+HKST{value})"
params:
- name: value
type: integer
description: "0-100 (default 50)"
- id: vert_keystone
label: Vertical Keystone
kind: action
command: "(WRP+VKST{value})"
params:
- name: value
type: integer
description: "0-100 (default 50)"
- id: horz_pincushion
label: Horizontal Pincushion
kind: action
command: "(HPC{value})"
params:
- name: value
type: integer
description: "0-100 (default 50)"
- id: vert_pincushion
label: Vertical Pincushion
kind: action
command: "(VPC{value})"
params:
- name: value
type: integer
description: "0-100 (default 50)"
- id: digital_zoom
label: Digital Zoom
kind: action
command: "(SIZ{value})"
params:
- name: value
type: integer
description: "0-100 (100=normal/unchanged, default 100)"
- id: digital_horz_shift
label: Digital Horizontal Shift
kind: action
command: "(DSH{value})"
params:
- name: value
type: integer
description: "0-100 (default 50). Requires Digital Zoom applied first."
- id: digital_vert_shift
label: Digital Vertical Shift
kind: action
command: "(DSV{value})"
params:
- name: value
type: integer
description: "0-100 (default 50). Requires Digital Zoom applied first."
- id: auto_image
label: Auto Image
kind: action
command: "(AIM1)"
params: []
# --- IMAGE SETTINGS ---
- id: brightness
label: Brightness
kind: action
command: "(BRT{value})"
params:
- name: value
type: integer
description: "0-100 (default 50)"
- id: contrast
label: Contrast
kind: action
command: "(CON{value})"
params:
- name: value
type: integer
description: "0-100 (default 50)"
- id: color_space
label: Color Space
kind: action
command: "(CSP{mode})"
params:
- name: mode
type: integer
description: "0=RGB, 1=REC709, 2=REC601, 3=RGB Video, 4=Auto (default)"
- id: detail
label: Detail (Sharpness)
kind: action
command: "(DTL{level})"
params:
- name: level
type: integer
description: "0=Maximum, 1=High, 2=Normal, 3=Low, 4=Minimum (default 2)"
- id: color
label: Color Saturation
kind: action
command: "(CLR{value})"
params:
- name: value
type: integer
description: "0-100 (default 50). Analog video only."
- id: tint
label: Tint
kind: action
command: "(TNT{value})"
params:
- name: value
type: integer
description: "0-100 (default 50). Analog NTSC only."
- id: noise_reduction
label: Noise Reduction
kind: action
command: "(NRD{value})"
params:
- name: value
type: integer
description: "0-100 (default 0)"
- id: flesh_tone
label: Flesh Tone Correction
kind: action
command: "(FTC{value})"
params:
- name: value
type: integer
description: "0-100 (default 0)"
- id: video_black_level
label: Video Black Level (IRE)
kind: action
command: "(VBL{mode})"
params:
- name: mode
type: integer
description: "0=IRE off, 1=IRE on"
- id: detect_film
label: Detect Film
kind: action
command: "(FMD{mode})"
params:
- name: mode
type: integer
description: "0=Off, 1=On (default 1)"
- id: closed_captions
label: Closed Captions
kind: action
command: "(CLC{mode})"
params:
- name: mode
type: integer
description: "0=Off, 1=CC1, 2=CC2 (default 0)"
- id: red_gain
label: Red Gain
kind: action
command: "(ROG{value})"
params:
- name: value
type: integer
description: "0-100 (default 50)"
- id: green_gain
label: Green Gain
kind: action
command: "(GOG{value})"
params:
- name: value
type: integer
description: "0-100 (default 50)"
- id: blue_gain
label: Blue Gain
kind: action
command: "(BOG{value})"
params:
- name: value
type: integer
description: "0-100 (default 50)"
- id: red_offset
label: Red Offset
kind: action
command: "(ROO{value})"
params:
- name: value
type: integer
description: "0-100 (default 50)"
- id: green_offset
label: Green Offset
kind: action
command: "(GOO{value})"
params:
- name: value
type: integer
description: "0-100 (default 50)"
- id: blue_offset
label: Blue Offset
kind: action
command: "(BOO{value})"
params:
- name: value
type: integer
description: "0-100 (default 50)"
- id: sync_threshold
label: Sync Threshold (SOG)
kind: action
command: "(SYT{value})"
params:
- name: value
type: integer
description: "0-100 (default 50). Sync-on-green threshold."
- id: rgb_reset
label: RGB Gain/Offset Reset
kind: action
command: "(GOR1)"
params: []
- id: picture_setting
label: Picture Setting
kind: action
command: "(PST{preset})"
params:
- name: preset
type: integer
description: "0=Presentation, 1=Video, 2=Bright, 3=Whiteboard, 4=Blackboard, 5=Beige Wall, 6=User. Use (PST+USER1) to store current settings to User Mode."
- id: dynamicblack
label: DynamicBlack
kind: action
command: "(DIM{mode})"
params:
- name: mode
type: integer
description: "0=Off, 1=On"
- id: gamma_curve
label: Gamma Curve
kind: action
command: "(BGC{curve})"
params:
- name: curve
type: integer
description: "0=Video, 1=Film, 2=Bright, 3=CRT"
- id: brilliant_color
label: BrilliantColor
kind: action
command: "(BCL{mode})"
params:
- name: mode
type: integer
description: "0=Normal Look, 1=Bright Look"
- id: white_peaking
label: White Peaking
kind: action
command: "(WPK{value})"
params:
- name: value
type: integer
description: "White processing amount (range not specified in source)"
- id: color_temperature
label: Color Temperature
kind: action
command: "(CCI{preset})"
params:
- name: preset
type: integer
description: "0=Warmest, 1=Warm, 2=Cool, 3=Bright"
- id: edge_enhancement
label: Edge Enhancement
kind: action
command: "(EDG{level})"
params:
- name: level
type: integer
description: "0=Off, 1=Normal, 2=Maximum"
- id: color_wheel_speed
label: Color Wheel Speed
kind: action
command: "(CWS{speed})"
params:
- name: speed
type: integer
description: "0=2x, 1=3x"
# --- CONFIGURATION ---
- id: language
label: OSD Language
kind: action
command: "(LOC+LANG{lang})"
params:
- name: lang
type: integer
description: "0=English, 1=Chinese, 2=French, 3=German, 4=Italian, 5=Japanese, 6=Korean, 7=Russian, 8=Spanish"
- id: focus
label: Focus
kind: action
command: "(FCS{dir})"
params:
- name: dir
type: string
description: "n=increase by 1, p=decrease by 1"
- id: zoom
label: Zoom
kind: action
command: "(ZOM{dir})"
params:
- name: dir
type: string
description: "n=increase by 1, p=decrease by 1"
- id: lens_shift_vertical
label: Lens Shift Vertical
kind: action
command: "(LVO{dir})"
params:
- name: dir
type: string
description: "n=increase by 1, p=decrease by 1"
- id: lens_shift_horizontal
label: Lens Shift Horizontal
kind: action
command: "(LHO{dir})"
params:
- name: dir
type: string
description: "n=increase by 1, p=decrease by 1"
- id: lock_lens_motors
label: Lock Lens Motors
kind: action
command: "(LCB+LOCK{mode})"
params:
- name: mode
type: integer
description: "0=Allow, 1=Locked"
- id: lens_center
label: Lens Center
kind: action
command: "(LCB+HOME1)"
params: []
- id: ceiling_mount
label: Ceiling Mount
kind: action
command: "(CEL{mode})"
params:
- name: mode
type: integer
description: "0=Off, 1=On, 2=Auto (G-sensor)"
- id: rear_projection
label: Rear Projection
kind: action
command: "(SOR{mode})"
params:
- name: mode
type: integer
description: "0=Off, 1=On"
- id: menu_shift_horizontal
label: Menu Shift Horizontal
kind: action
command: "(MSH{value})"
params:
- name: value
type: integer
description: "0-100 (default 0)"
- id: menu_shift_vertical
label: Menu Shift Vertical
kind: action
command: "(MSV{value})"
params:
- name: value
type: integer
description: "0-100 (default 0)"
- id: show_messages
label: Show Messages (OSD)
kind: action
command: "(MBE+USER{mode})"
params:
- name: mode
type: integer
description: "0=Off, 1=On (default 1)"
- id: menu_transparency
label: Menu Transparency
kind: action
command: "(OST{value})"
params:
- name: value
type: integer
description: "0-90 (default 0=not transparent)"
- id: splash_screen
label: Splash Screen Select
kind: action
command: "(SPS+SLCT{choice})"
params:
- name: choice
type: integer
description: "0=Factory Logo, 1=Blue, 2=Black, 3=White (default 0)"
- id: pin_protect
label: PIN Protect
kind: action
command: '(PIV"{pin}")'
params:
- name: pin
type: string
description: "5-digit PIN (each digit 0-9). Toggle on/off when PIN is correct."
- id: change_pin
label: Change PIN
kind: action
command: '(PCG"{old_pin},{new_pin}")'
params:
- name: old_pin
type: string
description: "Current 5-digit PIN (default 12345)"
- name: new_pin
type: string
description: "New 5-digit PIN"
- id: standby_mode
label: Standby Mode
kind: action
command: "(PWR+STBM{mode})"
params:
- name: mode
type: integer
description: "0=1W mode (no UART/WEB/USB wake), 1=Communication mode (~20W, supports wake)"
- id: auto_power_on
label: Auto Power On
kind: action
command: "(APW{mode})"
params:
- name: mode
type: integer
description: "0=Off, 1=On (default 0). On = skip standby on AC applied."
- id: auto_shutdown
label: Auto Shutdown
kind: action
command: "(ASH{interval})"
params:
- name: interval
type: integer
description: "0=Never (default), 1=5min, 2=10min, 3=15min, 4=20min, 5=25min, 6=30min"
- id: sleep_timer
label: Sleep Timer
kind: action
command: "(SLP{mode})"
params:
- name: mode
type: integer
description: "0=Off (default), 1=2Hrs, 2=4Hrs, 3=6Hrs"
- id: high_altitude
label: High Altitude
kind: action
command: "(HAT{mode})"
params:
- name: mode
type: integer
description: "0=Off, 1=On (modifies fan speeds). Not compatible with Whisper mode."
- id: net_dhcp
label: Network DHCP
kind: action
command: "(NET+DHCP{mode})"
params:
- name: mode
type: integer
description: "0=Off, 1=On"
- id: net_ip_address
label: Network IP Address
kind: action
command: '(NET+ETH0"{ip}")'
params:
- name: ip
type: string
description: "Dotted-quad IP, e.g. 192.168.000.001"
- id: net_subnet
label: Network Subnet Mask
kind: action
command: '(NET+SUB0"{mask}")'
params:
- name: mask
type: string
description: "Dotted-quad subnet mask, e.g. 255.255.255.000"
- id: net_gateway
label: Network Default Gateway
kind: action
command: '(NET+GATE"{gw}")'
params:
- name: gw
type: string
description: "Dotted-quad gateway IP"
- id: net_hostname
label: Network Projector Name
kind: action
command: '(NET+HOST"{name}")'
params:
- name: name
type: string
description: "Projector hostname (e.g. DWU670-E)"
- id: net_mac
label: Network MAC Address
kind: action
command: '(NET+MAC0"{mac}")'
params:
- name: mac
type: string
description: "MAC address, e.g. 00:E0:47:01:02:3C"
- id: net_show_messages
label: Network Show Messages
kind: action
command: "(NET+SHOW{mode})"
params:
- name: mode
type: integer
description: "0=Off, 1=On"
- id: net_restart
label: Network Restart
kind: action
command: "(NET+RSTR1)"
params: []
- id: net_factory_reset
label: Network Factory Reset
kind: action
command: "(NET+RSET1)"
params: []
- id: serial_baud_rate
label: Serial Port Baud Rate
kind: action
command: "(BDR{rate})"
params:
- name: rate
type: integer
description: "0=2400, 1=4800, 2=9600, 3=14400, 4=19200, 5=38400, 6=57600, 7=115200 (default)"
- id: serial_echo
label: Serial Port Echo
kind: action
command: "(SEC{mode})"
params:
- name: mode
type: integer
description: "0=Off (default), 1=On"
- id: trigger_12v
label: 12V Trigger
kind: action
command: "(VTT{mode})"
params:
- name: mode
type: integer
description: "0=Off, 1=On (drives a connected screen)"
- id: hotkey_assign
label: Hot-Key Assignment
kind: action
command: "(HKS{function})"
params:
- name: function
type: integer
description: "0=Blank Screen, 1=Aspect Ratio, 2=Freeze Screen, 3=Projector Info, 4=Overscan, 5=Closed Captions"
# --- LAMP ---
- id: lamp_power
label: Lamp Power
kind: action
command: "(LPM{level})"
params:
- name: level
type: integer
description: "0=280W .. 10=330W in 5W steps (default 10=330W)"
- id: current_lamp
label: Current Lamp
kind: action
command: "(LOP{lamp})"
params:
- name: lamp
type: integer
description: "1=Only Lamp 1, 2=Only Lamp 2, 3=Both Lamps"
- id: whisper_mode
label: Whisper Mode
kind: action
command: "(WSP{mode})"
params:
- name: mode
type: integer
description: "0=Off, 1=Lamp1, 2=Lamp2, 3=Auto. Not compatible with High Altitude."
- id: lamp_auto_switch
label: Lamp Auto Switch Mode
kind: action
command: "(LSF{mode})"
params:
- name: mode
type: integer
description: "0=Only on lamp fail, 1=Switch on every power-on (+ on fail), 2=Switch after N hours (+ on fail)"
- id: lamp_auto_switch_hours
label: Lamp Auto Switch Hours
kind: action
command: "(LSF+TIME{hours})"
params:
- name: hours
type: integer
description: "Hours threshold for the 'After N Hours' mode (e.g. (LSF+TIME120))"
- id: lamp_life_warning
label: Lamp Life Warning
kind: action
command: "(LPL{hours})"
params:
- name: hours
type: integer
description: "Hours at which a lamp-replace warning is shown. 0 disables (default 0)."
- id: reset_lamp1_hours
label: Reset Lamp 1 Hours
kind: action
command: "(LPC+LMP11)"
params: []
- id: reset_lamp2_hours
label: Reset Lamp 2 Hours
kind: action
command: "(LPC+LAMP21)"
params: []
- id: reset_both_lamp_hours
label: Reset Both Lamp Hours
kind: action
command: "(LPC+BOTH1)"
params: []
# --- INPUT SWITCHING & PIP ---
- id: select_source
label: Select Source (Main)
kind: action
command: "(SIN{source})"
params:
- name: source
type: integer
description: "0=VGA1, 1=VGA2, 2=RGBHV (BNC), 3=HDMI1, 4=HDMI2, 5=Component, 6=S-Video, 7=Composite"
- id: set_main_source
label: Set Main Source
kind: action
command: "(SIN+MAIN{source})"
params:
- name: source
type: integer
description: "0=VGA1, 1=VGA2, 2=RGBHV, 3=HDMI1, 4=HDMI2, 5=Component, 6=S-Video, 7=Composite"
- id: set_pip_source
label: Set PIP Source
kind: action
command: "(SIN+PIIP{source})"
params:
- name: source
type: integer
description: "0=VGA1, 1=VGA2, 2=RGBHV, 3=HDMI1, 4=HDMI2, 5=Component, 6=S-Video, 7=Composite"
- id: pip_enable
label: PIP/PBP Enable
kind: action
command: "(PIP{mode})"
params:
- name: mode
type: integer
description: "0=Disable, 1=Enable (default 0)"
- id: pip_swap
label: PIP/PBP Swap
kind: action
command: "(PPS1)"
params: []
- id: pip_size
label: PIP/PBP Size
kind: action
command: "(PHS{size})"
params:
- name: size
type: integer
description: "0=Small, 1=Medium, 2=Large"
- id: pip_layout
label: PIP/PBP Layout
kind: action
command: "(PPP{layout})"
params:
- name: layout
type: integer
description: "0=POP-Bigger Left, 1=Over-Under Bigger Upper, 2=POP-Bigger Right, 3=Over-Under Bigger Lower, 4=PIP-Bottom Right, 5=PIP-Bottom Left, 6=PIP-Top Left, 7=PIP-Top Right"
- id: timing_detect
label: Timing Detect Mode
kind: action
command: "(TMG{mode})"
params:
- name: mode
type: integer
description: "0=Normal, 1=Wide"
- id: enable_main_hotkey
label: Enable Main Source Hot-Key
kind: action
command: "(ESH{mode})"
params:
- name: mode
type: integer
description: "0=On, 1=Off (0/9 hotkeys to select source directly)"
- id: hotkey_vga1
label: Set Hot-Key for VGA1
kind: action
command: "(MHK+VGA1{key})"
params:
- name: key
type: integer
description: "Number key (0-9) to assign. Example: (MHK+VGA18)"
- id: hotkey_vga2
label: Set Hot-Key for VGA2
kind: action
command: "(MHK+VGA2{key})"
params:
- name: key
type: integer
description: "Number key (0-9) to assign"
- id: hotkey_bnc
label: Set Hot-Key for BNC
kind: action
command: "(MHK+BNC1{key})"
params:
- name: key
type: integer
description: "Number key (0-9) to assign"
- id: hotkey_hdmi1
label: Set Hot-Key for HDMI1
kind: action
command: "(MHK+HDM1{key})"
params:
- name: key
type: integer
description: "Number key (0-9) to assign"
- id: hotkey_hdmi2
label: Set Hot-Key for HDMI2
kind: action
command: "(MHK+HDM2{key})"
params:
- name: key
type: integer
description: "Number key (0-9) to assign"
- id: hotkey_component
label: Set Hot-Key for Component
kind: action
command: "(MHK+CON1{key})"
params:
- name: key
type: integer
description: "Number key (0-9) to assign"
- id: hotkey_svideo
label: Set Hot-Key for S-Video
kind: action
command: "(MHK+SVDO{key})"
params:
- name: key
type: integer
description: "Number key (0-9) to assign"
- id: hotkey_composite
label: Set Hot-Key for Composite
kind: action
command: "(MHK+COPS{key})"
params:
- name: key
type: integer
description: "Number key (0-9) to assign"
- id: source_key_function
label: Source Key Function
kind: action
command: "(SKS{function})"
params:
- name: function
type: integer
description: "0=Change source, 1=List all sources (default), 2=Change source with Auto"
# --- MISC ---
- id: test_pattern
label: Test Pattern
kind: action
command: "(ITP{pattern})"
params:
- name: pattern
type: integer
description: "0=Off, 1=Grid, 2=White, 3=Black, 4=Checkerboard, 5=Color Bars, 6=Red (Service), 7=Green (Service), 8=Blue (Service), 9=Yellow (Service), 10=Magenta (Service), 11=Cyan (Service). Grid/Color Bars may take up to 18s to leave."
- id: projector_status
label: Projector Status
kind: query
command: "(SST?)"
params: []
- id: color_wheel_index_2x
label: Color Wheel Index 2x
kind: action
command: "(CWI+SPX2{index})"
params:
- name: index
type: integer
description: "Color wheel index for 2x speed. Service mode only."
- id: color_wheel_index_3x
label: Color Wheel Index 3x
kind: action
command: "(CWI+SPX3{index})"
params:
- name: index
type: integer
description: "Color wheel index for 3x speed. Service mode only."
- id: factory_defaults
label: Factory Defaults
kind: action
command: "(DEF 111)"
params: []
- id: enter_service_code
label: Enter Service Code
kind: action
command: '(UID"{username},{password}")'
params:
- name: username
type: string
description: "Service username (default: service)"
- name: password
type: string
description: "Service password (default: service)"
# --- SERIAL-ONLY QUERIES ---
- id: serial_command_version
label: Serial Command Version
kind: query
command: "(SIV?)"
params: []
- id: last_serial_command_error
label: Last Serial Command Error
kind: query
command: "(LCE?)"
params: []
- id: last_system_error
label: Last System Error
kind: query
command: "(LSE?)"
params: []
- id: main_active_source
label: Main Active Source
kind: query
command: "(MIF+ACTS?)"
params: []
- id: main_signal_format
label: Main Signal Format
kind: query
command: "(MIF+SGFT?)"
params: []
- id: main_aspect_ratio
label: Main Aspect Ratio
kind: query
command: "(MIF+APRT?)"
params: []
- id: main_resolution
label: Main Resolution
kind: query
command: "(MIF+RESL?)"
params: []
- id: main_vert_refresh
label: Main Vertical Refresh
kind: query
command: "(MIF+VREF?)"
params: []
- id: main_horz_refresh
label: Main Horizontal Refresh
kind: query
command: "(MIF+HREF?)"
params: []
- id: main_pixel_clock
label: Main Pixel Clock
kind: query
command: "(MIF+PIXC?)"
params: []
- id: main_sync_type
label: Main Sync Type
kind: query
command: "(MIF+SYNC?)"
params: []
- id: main_color_space
label: Main Color Space
kind: query
command: "(MIF+CLSP?)"
params: []
- id: sec_active_source
label: PIP Active Source
kind: query
command: "(SIF+ACTS?)"
params: []
- id: sec_signal_format
label: PIP Signal Format
kind: query
command: "(SIF+SGFT?)"
params: []
- id: sec_aspect_ratio
label: PIP Aspect Ratio
kind: query
command: "(SIF+APRT?)"
params: []
- id: sec_resolution
label: PIP Resolution
kind: query
command: "(SIF+RESL?)"
params: []
- id: sec_vert_refresh
label: PIP Vertical Refresh
kind: query
command: "(SIF+VREF?)"
params: []
- id: sec_horz_refresh
label: PIP Horizontal Refresh
kind: query
command: "(SIF+HREF?)"
params: []
- id: sec_pixel_clock
label: PIP Pixel Clock
kind: query
command: "(SIF+PIXC?)"
params: []
- id: sec_sync_type
label: PIP Sync Type
kind: query
command: "(SIF+SYNC?)"
params: []
- id: sec_color_space
label: PIP Color Space
kind: query
command: "(SIF+CLSP?)"
params: []
- id: lamp1_hours
label: Lamp 1 Hours
kind: query
command: "(LIF+LP1H?)"
params: []
- id: lamp2_hours
label: Lamp 2 Hours
kind: query
command: "(LIF+LP2H?)"
params: []
- id: total_lamp_hours
label: Total Lamp Hours
kind: query
command: "(LIF+LPTH?)"
params: []
- id: lamp1_reset_count
label: Lamp 1 Reset Count
kind: query
command: "(LIF+LP1R?)"
params: []
- id: lamp2_reset_count
label: Lamp 2 Reset Count
kind: query
command: "(LIF+LP2R?)"
params: []
- id: model_name
label: Model Name (Service)
kind: query
command: "(PIF+MDLN?)"
params: []
- id: serial_number
label: Serial Number (Service)
kind: query
command: "(PIF+SNUM?)"
params: []
- id: native_resolution
label: Native Resolution (Service)
kind: query
command: "(PIF+NERS?)"
params: []
- id: firmware_version
label: Firmware Version (Service)
kind: query
command: "(PIF+FWVS?)"
params: []
- id: configuration_version
label: Configuration Version (Service)
kind: query
command: "(PIF+CFVS?)"
params: []
- id: boot_code_version
label: Boot Code Version (Service)
kind: query
command: "(PIF+BCVS?)"
params: []
# --- FUNCTIONS USED ONLY BY SERIAL COMMAND ---
- id: power_on
label: Power On
kind: action
command: "(PWR1)"
params: []
- id: power_off
label: Power Off
kind: action
command: "(PWR0)"
params: []
- id: rename_source_vga1
label: Rename Source VGA1
kind: action
command: '(SNS+SRC0"{name}")'
params:
- name: name
type: string
description: "User-defined source name"
- id: rename_source_vga2
label: Rename Source VGA2
kind: action
command: '(SNS+SRC1"{name}")'
params:
- name: name
type: string
description: "User-defined source name"
- id: rename_source_bnc
label: Rename Source BNC
kind: action
command: '(SNS+SRC2"{name}")'
params:
- name: name
type: string
description: "User-defined source name"
- id: rename_source_hdmi1
label: Rename Source HDMI1
kind: action
command: '(SNS+SRC3"{name}")'
params:
- name: name
type: string
description: "User-defined source name"
- id: rename_source_hdmi2
label: Rename Source HDMI2
kind: action
command: '(SNS+SRC4"{name}")'
params:
- name: name
type: string
description: "User-defined source name"
- id: rename_source_component
label: Rename Source Component
kind: action
command: '(SNS+SRC5"{name}")'
params:
- name: name
type: string
description: "User-defined source name"
- id: rename_source_svideo
label: Rename Source S-Video
kind: action
command: '(SNS+SRC6"{name}")'
params:
- name: name
type: string
description: "User-defined source name"
- id: rename_source_composite
label: Rename Source Video
kind: action
command: '(SNS+SRC7"{name}")'
params:
- name: name
type: string
description: "User-defined source name"
- id: key_code_entry
label: Key-Code Entry
kind: action
command: "(KEY{code})"
params:
- name: code
type: integer
description: "Decimal IR keycode (POWER=0, MENU=19, ENTER=40, etc.; see Appendix-2 table)"
- id: shutter
label: Shutter
kind: action
command: "(SHU{state})"
params:
- name: state
type: integer
description: "0=Open (Shutter off), 1=Closed (Shutter on, black screen)"
- id: osd_show
label: OSD Show/Hide
kind: action
command: "(OSD{state})"
params:
- name: state
type: integer
description: "0=Hide, 1=Show"
Feedbacks
# Observed via SST! multi-line response. Each line returns (SST!NNN "value" "label").
# Individual subcode queries (MIF+RESL?, SIF+RESL?, etc.) return the same field directly.
- id: model_name
type: string
description: "SST!000 / PIF+MDLN? - model name string"
- id: serial_number
type: string
description: "SST!001 / PIF+SNUM? - projector serial number"
- id: native_resolution
type: string
description: "SST!002 / PIF+NERS? - native panel resolution"
- id: main_input
type: string
description: "SST!003 - currently selected main input name"
- id: main_signal_format
type: string
description: "SST!004 / MIF+SGFT? - e.g. Digital / Analog"
- id: main_pixel_clock
type: string
description: "SST!005 / MIF+PIXC? - pixel clock with MHz unit"
- id: main_sync_type
type: string
description: "SST!006 / MIF+SYNC? - Separate / Composite / SOG / etc."
- id: main_horz_refresh
type: string
description: "SST!007 / MIF+HREF? - horizontal refresh with kHz unit"
- id: main_vert_refresh
type: string
description: "SST!008 / MIF+VREF? - vertical refresh with Hz unit"
- id: pip_input
type: string
description: "SST!009 - currently selected PIP/PBP input name"
- id: pip_signal_format
type: string
description: "SST!010 / SIF+SGFT?"
- id: pip_pixel_clock
type: string
description: "SST!011 / SIF+PIXC?"
- id: pip_sync_type
type: string
description: "SST!012 / SIF+SYNC?"
- id: pip_horz_refresh
type: string
description: "SST!013 / SIF+HREF?"
- id: pip_vert_refresh
type: string
description: "SST!014 / SIF+VREF?"
- id: lamp_power_setting
type: string
description: "SST!015 - e.g. \"330 W\""
- id: current_lamp
type: string
description: "SST!016 - \"Lamp 1\" / \"Lamp 2\" / \"Both\""
- id: lamp1_hours
type: string
description: "SST!017 / LIF+LP1H? - with \"Hours\" unit"
- id: lamp2_hours
type: string
description: "SST!018 / LIF+LP2H? - with \"Hours\" unit"
- id: standby_mode
type: string
description: "SST!019 - \"1W Mode\" / \"Communication\""
- id: lens_lock_setting
type: string
description: "SST!020 - \"Allow\" / \"Locked\""
- id: ip_address
type: string
description: "SST!021 - current IP"
- id: dhcp_state
type: string
description: "SST!022 - \"On\" / \"Off\""
- id: main_color_space
type: string
description: "MIF+CLSP? - current color space"
- id: main_resolution
type: string
description: "MIF+RESL? - e.g. \"1920x1200\""
- id: main_aspect_ratio
type: string
description: "MIF+APRT?"
- id: main_active_source
type: string
description: "MIF+ACTS?"
- id: pip_color_space
type: string
description: "SIF+CLSP?"
- id: pip_resolution
type: string
description: "SIF+RESL?"
- id: pip_aspect_ratio
type: string
description: "SIF+APRT?"
- id: pip_active_source
type: string
description: "SIF+ACTS?"
- id: total_lamp_hours
type: string
description: "LIF+LPTH? - sum of all lamp hours"
- id: lamp1_reset_count
type: string
description: "LIF+LP1R? - number of times Lamp 1 hours have been reset"
- id: lamp2_reset_count
type: string
description: "LIF+LP2R? - number of times Lamp 2 hours have been reset"
- id: firmware_version
type: string
description: "PIF+FWVS? - service-mode only"
- id: configuration_version
type: string
description: "PIF+CFVS? - service-mode only"
- id: boot_code_version
type: string
description: "PIF+BCVS? - service-mode only"
- id: serial_command_version
type: string
description: "SIV? - E Series protocol version"
- id: last_serial_command_error
type: string
description: "LCE? - error text from the most recent failed serial command"
- id: last_system_error
type: integer
description: "LSE? - coded: 1=lamp did not strike (5 attempts), 3=lamp went out, 4=fan failure, 5=over temperature"
Variables
# Source documents settings as discrete command-parameter actions rather than free
# variables; no separately settable parameters that are not already an action.
# UNRESOLVED: section kept for spec completeness; no source-supported entries.
Events
# UNRESOLVED: source does not document any unsolicited notification messages;
# all status flows are pull (request/reply). Section kept for spec completeness.
Macros
# UNRESOLVED: source does not document any multi-step user-defined sequences.
# The serial protocol itself is stateless per-message; sequencing is the
# responsibility of the controller.
Safety
confirmation_required_for:
- factory_defaults # DEF 111 - full factory wipe, requires the literal "111" guard
- reset_lamp1_hours
- reset_lamp2_hours
- reset_both_lamp_hours
interlocks:
- digital_horz_shift_requires_digital_zoom # source: DSH disabled until SIZ applied
- digital_vert_shift_requires_digital_zoom # source: DSV disabled until SIZ applied
- whisper_mode_incompatible_with_high_altitude # source: WSP not compatible with HAT
# UNRESOLVED: high-voltage lamp / thermal warnings are not detailed in this protocol
# document; they would normally appear in the projector safety manual, not here.
Notes
- Message wrapper: every command and reply is enclosed in parentheses. Leading
#(e.g.#(PWR1)) requests a full-acknowledgement echo from the projector; acknowledgement is redundant on requests that already produce a reply. - Modifiers: for any command allowing
n/p,nadvances to the next defined value andpgoes to the previous one (e.g.(OVS n)from Off goes to Zoom;(OVS p)from Crop goes to Zoom). - Request format:
(CODE?)or(CODE+SUBCODE?)for queries; reply format is(CODE!data)or(CODE+SUBCODE!data). - Errors: a syntax or parameter error returns
(ITP)- (65535 00000 ERR00005 "ITP: Too Few Parameters")style messages —ITPis the example code, the format applies to any rejected command. - Service mode:
PIF*,CWI*, andDEFare only available afterUIDlogin with a service credential. Service mode clears on power-off. - Partial messages: if a new start character
(is received before the previous message's end character), the previous (partial) message is discarded. - Cable pinout for RS-232: null standard, 9-pin female on both ends. Pin 2↔3 crossed, pin 5↔5 straight.
- Test pattern caveat: switching away from the Grid (ITP1) or Color Bars (ITP5) test patterns can take up to 18 seconds.
- Standby interaction: when
PWR+STBMis0(1W mode), the projector cannot be powered on via UART/WEB/USB. Set standby to1(Communication mode, ~20W) to allow serial power-on. - Auth: this document describes a local-protocol serial surface; there is no network login, no API key, and no token. The PIN (PIV/PCG) is a local UI lockout, not a network authentication mechanism.
- Default subnet / gateway / hostname values: the source's example values (
192.168.000.001/255.255.255.000/DWU670-E) appear to be illustrative of a typical install rather than factory defaults; they should be read as examples of payload format, not as the projector's own defaults.
Provenance
source_domains:
- christiedigital.com
- manualslib.com
source_urls:
- https://www.christiedigital.com/globalassets/resources/public/020-000372-05-christie-e-series-serial-communications.pdf
- https://www.christiedigital.com/globalassets/resources/public/020-100410-08-christie-lit-man-usr-cp2210.pdf
- https://www.manualslib.com/manual/816593/Christie-Cp-2210.html
retrieved_at: 2026-05-14T21:23:46.567Z
last_checked_at: 2026-06-02T21:41:09.429Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T21:41:09.429Z
matched_actions: 153
action_count: 153
confidence: medium
summary: "All 153 spec actions matched literal command codes in source; transport parameters (115200 baud, 8N1) verified; bidirectional command coverage complete. (10 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "TCP port for the Ethernet interface not stated in source"
- "TCP port not stated in source"
- "section kept for spec completeness; no source-supported entries."
- "source does not document any unsolicited notification messages;"
- "source does not document any multi-step user-defined sequences."
- "high-voltage lamp / thermal warnings are not detailed in this protocol"
- "TCP port for the Ethernet interface is not stated in this document."
- "firmware version compatibility ranges across CP 2210/2215/2230/2000M not stated."
- "full set of baud rates the hardware supports beyond those listed for BDR (0..7) not stated."
- "edge enhancement (EDG) and white peaking (WPK) numeric ranges not explicitly stated."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0