Summary
RS-232C serial control spec for the Christie DHD800 projector (also documented as PDG-DHT8000L). Defines Basic Functional Execution Commands ("Cxx") and Status Read Commands ("CRx") terminated by carriage return (0x0D), plus an optional address-prefixed command form ("A###...") for multi-projector buses. Initial serial config: 9600 or 19200 baud, 8N1, no flow control.
Transport
protocols:
- serial
serial:
baud_rate: 19200 # initial setting value; 9600 also supported (selectable in Service Mode)
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
auth:
type: none # inferred: no auth procedure in source
Traits
- powerable # inferred from C00 POWER ON, C01 POWER OFF
- routable # inferred from C05-C08 INPUT 1-4 select
- queryable # inferred from CR0-CR7 status read commands
Actions
- id: power_on
label: Power ON
kind: action
command: "C00\r" # source: "C00" [CR]; CR literalized as \r
params: []
- id: power_off
label: Power OFF (Immediate)
kind: action
command: "C01\r"
params: []
- id: input_1
label: Select Input 1
kind: action
command: "C05\r"
params: []
- id: input_2
label: Select Input 2
kind: action
command: "C06\r"
params: []
- id: input_3
label: Select Input 3
kind: action
command: "C07\r"
params: []
- id: input_4
label: Select Input 4
kind: action
command: "C08\r"
params: []
- id: video_mute_on
label: Video Mute ON
kind: action
command: "C0D\r"
params: []
- id: video_mute_off
label: Video Mute OFF
kind: action
command: "C0E\r"
params: []
- id: screen_normal
label: Screen Normal Size
kind: action
command: "C0F\r"
params: []
- id: screen_full
label: Screen Full Size
kind: action
command: "C10\r"
params: []
- id: menu_on
label: Menu ON (OSD)
kind: action
command: "C1C\r"
params: []
- id: menu_off
label: Menu OFF (OSD)
kind: action
command: "C1D\r"
params: []
- id: display_clear
label: Display Clear (OSD)
kind: action
command: "C1E\r"
params: []
- id: image
label: Image (cycle image preset)
kind: action
command: "C27\r"
params: []
- id: dzoom_plus
label: D.ZOOM +
kind: action
command: "C30\r"
params: []
- id: dzoom_minus
label: D.ZOOM -
kind: action
command: "C31\r"
params: []
- id: pointer_right
label: Pointer Right
kind: action
command: "C3A\r"
params: []
- id: pointer_left
label: Pointer Left
kind: action
command: "C3B\r"
params: []
- id: pointer_up
label: Pointer Up
kind: action
command: "C3C\r" # source typo "POINITERUP" - opcode is C3C
params: []
- id: pointer_down
label: Pointer Down
kind: action
command: "C3D\r" # source typo "POINITER DOWN" - opcode is C3D
params: []
- id: enter
label: Enter / Select
kind: action
command: "C3F\r"
params: []
- id: freeze_on
label: Freeze ON
kind: action
command: "C43\r"
params: []
- id: freeze_off
label: Freeze OFF
kind: action
command: "C44\r"
params: []
- id: zoom_minus
label: Zoom -
kind: action
command: "C46\r"
params: []
- id: zoom_plus
label: Zoom +
kind: action
command: "C47\r"
params: []
- id: focus_minus
label: Focus -
kind: action
command: "C4A\r" # source typo "FOUCS -"
params: []
- id: focus_plus
label: Focus +
kind: action
command: "C4B\r" # source typo "FOUCS+"
params: []
- id: lens_shift_up
label: Lens Shift Up
kind: action
command: "C5D\r"
params: []
- id: lens_shift_down
label: Lens Shift Down
kind: action
command: "C5E\r"
params: []
- id: lens_shift_left
label: Lens Shift Left
kind: action
command: "C5F\r"
params: []
- id: lens_shift_right
label: Lens Shift Right
kind: action
command: "C60\r"
params: []
- id: auto_pc_adj
label: Auto PC Adjust
kind: action
command: "C89\r"
params: []
- id: presentation_timer
label: Presentation Timer
kind: action
command: "C8A\r"
params: []
- id: keystone_up
label: Keystone Up
kind: action
command: "C8E\r"
params: []
- id: keystone_down
label: Keystone Down
kind: action
command: "C8F\r"
params: []
- id: keystone_right
label: Keystone Right
kind: action
command: "C90\r"
params: []
- id: keystone_left
label: Keystone Left
kind: action
command: "C91\r"
params: []
- id: status_read
label: Status Read (projector state)
kind: query
command: "CR0\r"
params: []
- id: input_mode_read
label: Input Mode Read
kind: query
command: "CR1\r"
params: []
- id: lamp_time_read
label: Lamp Time Read (multi-lamp)
kind: query
command: "CR3\r"
params: []
- id: setting_read
label: Screen Setting Read (Ceiling/Rear)
kind: query
command: "CR4\r"
params: []
- id: temp_read
label: Internal Temperature Read (4 sensors)
kind: query
command: "CR6\r"
params: []
- id: lamp_mode_read
label: Lamp Mode Read (multi-lamp)
kind: query
command: "CR7\r"
params: []
Feedbacks
- id: ack
label: ACK (command accepted)
type: enum
values: [ack, error]
notes: |
Functional Execution Commands return "ACK [CR]" (0x06 0x0D) on accept, "?[CR]" on decode error.
Address-prefixed form ("A###Cxx") yields same ACK; broadcast address "FFF" returns no response.
- id: projector_status
label: Projector Status (CR0 response)
type: enum
values:
- power_on # "00"
- standby # "80"
- countdown # "40"
- cooling_down # "20"
- power_failure # "10"
- cooling_abnormal_temp # "28"
- rs232_busy # "02"
- power_mgmt_cooling # "24"
- power_management # "04"
- cooling_lamp_fail # "21"
- standby_lamp_fail # "81"
- standby_abnormal_temp # "88"
- cooling_shutter_mgmt # "2C"
- standby_shutter_mgmt # "8C"
- id: selected_input
label: Selected Input (CR1 response)
type: enum
values: ["1", "2", "3", "4"]
- id: lamp_hours
label: Lamp Running Hours (CR3 response)
type: string
notes: |
"%1_%2" [CR] - %1 = lamp 1 hours, %2 = lamp 2 hours; space-separated.
Example: "00410_00410" → both lamps 410 hours.
- id: screen_setting
label: Screen Setting (CR4 response)
type: enum
values:
- normal # "11"
- rear_ceiling # "10" (top/bottom reversed)
- rear # "01" (left/right reversed)
- ceiling # "00" (top/bottom + left/right reversed)
- id: internal_temps
label: Internal Temperatures (CR6 response)
type: string
notes: |
"%1_%2_%3_%4" [CR] - 4 sensor readings, format "00.0".
Negative temps prefixed "-" (e.g. "-05.5"); sensor error returns "E00.0".
Example: "_31.5__35.2__33.4__33.4".
- id: lamp_mode
label: Lamp Mode (CR7 response)
type: string
notes: |
2-digit hex "0F" [CR] form.
Digit 1 (mode): 0=2-lamp, 1=1-lamp using lamp 1, 2=1-lamp using lamp 2.
Digit 2 (per-lamp state, 4-bit): 0=ALL OFF, 1=lamp1 ON, 2=lamp2 ON, 3=ALL ON.
Variables
# UNRESOLVED: no settable parameter ranges (e.g. keystone degree, zoom step, focus step) are stated in source.
# Each lens/zoom/focus/keystone command is a discrete pipelined direction action, not a parameterized level.
Events
# UNRESOLVED: source describes no unsolicited notifications. All state is read via Status Read commands (CR0-CR7).
Macros
# UNRESOLVED: source does not define multi-step sequences.
Safety
confirmation_required_for:
- power_off # C01 is "immediate" power off; source flags it as distinct from front-panel power
interlocks: []
# Source describes operational states during which Functional Execution Commands are blocked:
# - Cooling Down (incl. abnormal temp, lamp fail, shutter management, power management)
# - Abnormal Temperature / Abnormal Power status
# - Input switching (5s lockout)
# - Power-on initialization (~7s after AC plug-in)
# During blocked states projector still returns ACK, but does not execute (except Status Read).
# Source does not define interlock procedures or recovery sequences - populate only from explicit text.
Notes
- Command syntax:
"Cxx" [CR]for functional,"CRx" [CR]for status read. CR = 0x0D. Source uses lowercase prohibition — senders must use uppercase A-Z. - Address-prefixed form:
"A" Address "C" Command [CR]or"A" Address "CR" Command [CR]; address = "001"–"999"; broadcast = "FFF" (executes but no response); initial unit address = "001" (set in Service Mode). - Baud rate selectable in Service Mode between 9600 and 19200; initial default is 19200.
- Pipelining rules: zoom/focus/lens-shift commands 100 ms interval; other commands 500 ms interval; status read 500 ms; reply timeout 5 s before next send.
- Source has typos in command table ("FOUCS", "POINITER", "KEYSTON E"); opcodes C4A/C4B, C3C/C3D, C8E–C91 are the authoritative mnemonics.
- Cable: dedicated D-Sub 9-pin serial cable (PC COM → Projector SERIAL PORT IN).
- AC initialization window: ~7 s after power plug-in where no commands are processed; during POWER ON countdown (~7 s) only Status Read works (500 ms after ACK).
- "C01" POWER OFF is immediate (distinct from front-panel ON/STAND-BY which shows "Power Off" UI then enters countdown).
- During input switch, ~5 s lockout; Status Read works 500 ms after ACK.
Provenance
source_domains:
- christiedigital.com
- github.com
source_urls:
- https://www.christiedigital.com/globalassets/resources/public/020-000581-01-christie-lit-tech-ref-dhd800-rs232-bsc.pdf
- https://www.christiedigital.com/globalassets/resources/public/020-000246-01-dhd800-network-and-operation-user-manual.pdf
- https://github.com/aidenappl/Christie-DHD800-Projector-Commands
retrieved_at: 2026-07-22T00:20:53.754Z
last_checked_at: 2026-07-22T00:56:40.014Z
Verification Summary
verdict: verified
checked_at: 2026-07-22T00:56:40.014Z
matched_actions: 43
action_count: 43
confidence: medium
summary: "All 43 spec actions matched literally in source; transport values verified; bidirectional coverage complete. (4 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "source names \"DHD800\" on cover and \"PDG-DHT8000L\" in body; treated as compatible family. Exact power/voltage specs, fault-recovery sequences, and firmware compatibility ranges not stated."
- "no settable parameter ranges (e.g. keystone degree, zoom step, focus step) are stated in source."
- "source describes no unsolicited notifications. All state is read via Status Read commands (CR0-CR7)."
- "source does not define multi-step sequences."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0