Summary
RS-232C ASCII command set for Sanyo PLC-XT25 / PLC-XT20 / PLC-XT21 projectors. Commands are 2-character ASCII mnemonics prefixed with "C" (or "CR" for status read) and terminated by CR (0x0D). Document covers power, input selection, volume/mute, image controls, lens shift, keystone, freeze, and status queries.
Transport
protocols:
- serial
serial:
baud_rate: 19200 # initial; 9600 also supported (selectable in service mode)
data_bits: 8
parity: none
flow_control: none
stop_bits: 1
auth:
type: none # inferred: no auth procedure in source
Traits
- powerable # inferred from C00/C01/C02 power commands
- routable # inferred from input selection commands (C05-C08, C23-C25, C32-C34, C50-C54)
- queryable # inferred from CR0-CR7 status read commands
- levelable # inferred from C09/C0A (volume) and C20/C21 (brightness) commands
Actions
# Functional Execution Commands - ASCII "C{xx}" + [CR]
- id: power_on
label: Power ON
kind: action
command: "C00\r"
params: []
- id: power_off_quick
label: Power OFF (Quick)
kind: action
command: "C01\r"
params: []
- id: power_off
label: Power OFF
kind: action
command: "C02\r"
params: []
- id: input_1
label: INPUT 1
kind: action
command: "C05\r"
params: []
- id: input_2
label: INPUT 2
kind: action
command: "C06\r"
params: []
- id: input_3
label: INPUT 3
kind: action
command: "C07\r"
params: []
- id: input_network
label: NETWORK
kind: action
command: "C08\r"
params: []
- id: volume_up
label: Volume +
kind: action
command: "C09\r"
params: []
- id: volume_down
label: Volume -
kind: action
command: "C0A\r"
params: []
- id: sound_mute_on
label: Sound Mute ON
kind: action
command: "C0B\r"
params: []
- id: sound_mute_off
label: Sound Mute OFF
kind: action
command: "C0C\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_4_3
label: Screen Normal Size (4:3)
kind: action
command: "C0F\r"
params: []
- id: screen_wide_16_9
label: Screen Wide Size (16:9)
kind: action
command: "C10\r"
params: []
- id: menu_on
label: Menu ON
kind: action
command: "C1C\r"
params: []
- id: menu_off
label: Menu OFF
kind: action
command: "C1D\r"
params: []
- id: display_clear
label: Display Clear
kind: action
command: "C1E\r"
params: []
- id: brightness_up
label: Brightness +
kind: action
command: "C20\r"
params: []
- id: brightness_down
label: Brightness -
kind: action
command: "C21\r"
params: []
- id: input_2_video
label: INPUT 2 VIDEO
kind: action
command: "C23\r"
params: []
- id: input_2_component
label: INPUT 2 Y,Pb/Cb,Pr/Cr
kind: action
command: "C24\r"
params: []
- id: input_2_rgb
label: INPUT 2 RGB
kind: action
command: "C25\r"
params: []
- id: image
label: Image
kind: action
command: "C27\r"
params: []
- id: onstart_enable
label: ON START Enable
kind: action
command: "C28\r"
params: []
- id: onstart_disable
label: ON START Disable
kind: action
command: "C29\r"
params: []
- id: power_mgmt_ready
label: Power Management Ready
kind: action
command: "C2A\r"
params: []
- id: power_mgmt_off
label: Power Management OFF
kind: action
command: "C2B\r"
params: []
- id: power_mgmt_shutdown
label: Power Management Shut Down
kind: action
command: "C2E\r"
params: []
- id: dzoom_up
label: D.Zoom +
kind: action
command: "C30\r"
params: []
- id: dzoom_down
label: D.Zoom -
kind: action
command: "C31\r"
params: []
- id: input_3_auto
label: INPUT 3 AUTO
kind: action
command: "C32\r"
params: []
- id: input_3_video
label: INPUT 3 VIDEO
kind: action
command: "C33\r"
params: []
- id: input_3_svideo
label: INPUT 3 S-VIDEO
kind: action
command: "C34\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"
params: []
- id: pointer_down
label: Pointer Down
kind: action
command: "C3D\r"
params: []
- id: enter
label: Enter
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_down
label: Zoom -
kind: action
command: "C46\r"
params: []
- id: zoom_up
label: Zoom +
kind: action
command: "C47\r"
params: []
- id: focus_down
label: Focus -
kind: action
command: "C4A\r"
params: []
- id: focus_up
label: Focus +
kind: action
command: "C4B\r"
params: []
- id: input_1_analog_rgb
label: INPUT 1 Analog RGB
kind: action
command: "C50\r"
params: []
- id: input_1_scart
label: INPUT 1 Scart
kind: action
command: "C51\r"
params: []
- id: input_1_dvi_pc
label: INPUT 1 DVI (PC Digital)
kind: action
command: "C52\r"
params: []
- id: input_1_dvi_av_hdcp
label: INPUT 1 DVI (AV HDCP)
kind: action
command: "C53\r"
params: []
- id: input_1_component
label: INPUT 1 Component
kind: action
command: "C54\r"
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 Adj.
kind: action
command: "C89\r"
params: []
- id: presentation_timer
label: Presentation Timer
kind: action
command: "C8A\r"
params: []
- id: keystone_up
label: Keystone ↑
kind: action
command: "C8E\r"
params: []
- id: keystone_down
label: Keystone ↓
kind: action
command: "C8F\r"
params: []
# Status Read Commands - ASCII "CR{x}" + [CR]
- id: status_read
label: Projector Status Read
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
kind: query
command: "CR3\r"
params: []
- id: setting_read
label: Setting Read (Ceiling/Rear)
kind: query
command: "CR4\r"
params: []
- id: temp_read
label: Temperature Read
kind: query
command: "CR6\r"
params: []
- id: lamp_mode_read
label: Lamp Mode Read
kind: query
command: "CR7\r"
params: []
Feedbacks
- id: power_state
type: enum
values:
- "00" # Power ON
- "80" # Standby
- "40" # Countdown in process
- "20" # Cooling Down in process
- "10" # Power Failure
- "28" # Cooling Down due to Temperature Anomaly
- "88" # Coming back after Temperature Anomaly
- "24" # Power Save / Cooling Down in process
- "04" # Power Save
- "21" # Cooling Down due to lamp failure
- "81" # Standby after Cooling Down due to lamp failure
- id: input_mode
type: enum
values:
- "1" # Input 1
- "2" # Input 2
- "3" # Input 3
- "4" # Input 4
- id: lamp_hours
type: integer
description: Total lamp running hours, 5-digit zero-padded (e.g. "00410" = 410 hours)
- id: setting_ceiling_rear
type: enum
values:
- "11" # Normal Screen
- "10" # Rear & Ceiling ON
- "01" # Rear ON
- "00" # Ceiling ON
- id: temperature_sensors
type: string
description: Three space-separated readings: sensor1_sensor2_sensor3 (format "00.0", negative as "-05.5", error as "E00.0")
- id: lamp_mode
type: enum
values:
- "00" # Lamp OFF
- "01" # Lamp ON
Variables
# No settable numeric/state variables beyond discrete commands.
# Baud rate is settable in service mode (9600 or 19200) but is not a runtime-controllable variable.
Events
# Source does not document unsolicited event/notification messages from projector.
Macros
# Source does not document multi-step macro sequences.
Safety
confirmation_required_for:
- power_off # C02 displays "Power OFF?" and requires second send to execute
interlocks: []
# Source notes: 7-second internal initialization after AC plug-in (no commands accepted).
# Power management and temperature-anomaly states disable functional commands.
# Lamp-failure and power-failure cooling periods disable all functional commands.
Notes
Serial cable: D-Sub 9-pin (PC) to Mini 8-pin (projector Control Port). Initial baud 19200; 9600 selectable only via service mode. Frame: 8N1, no flow control.
Command termination: every command line must end with CR (0x0D); decoder starts on CR. Buffer is cleared on LF (0x0A), EOF (0x1A), or inter-character gap > 1s. Commands must be uppercase A-Z.
Inter-command delays after ACK: 100 ms for VOLUME+/- , ZOOM UP/DOWN, FOCUS UP/DOWN, LENS-SHIFT UP/DOWN/LEFT/RIGHT; 500 ms for all other functional commands. 500 ms minimum between status read commands. Issuing a new command before ACK (or >5s without response) is dropped.
ACK response: 0x06 0x0D. Decode error response: "?" 0x0D.
C02 (Power OFF) is two-step: first send displays "Power OFF?", second send during that prompt executes the actual power-off. C01 (Quick Power OFF) skips the confirmation.
Status Read Commands (CR0–CR7) remain valid during states (countdown, cooling, abnormal temp) where Functional Execution Commands are disabled.
C28/C29, C2A/C2B/C2E (ON START, Power Management settings) are stored in EEPROM and persist across power cycles.
Provenance
source_domains:
- audiogeneral.com
source_urls:
- https://www.audiogeneral.com/Sanyo/plcxt21_rs232_basic.pdf
retrieved_at: 2026-06-11T19:06:45.648Z
last_checked_at: 2026-06-12T19:38:24.737Z
Verification Summary
verdict: verified
checked_at: 2026-06-12T19:38:24.737Z
matched_actions: 64
action_count: 64
confidence: medium
summary: "All 64 spec actions (50 functional + 6 status + 8 parameter-variants) matched verbatim in source command tables; transport baud/bits/parity/flow all confirmed. (4 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "PLC-XT16 not explicitly covered by this source doc; family ID lumps it in but no commands verified for that model."
- "PLC-XT16 model coverage — source doc is XT25/XT20/XT21 only. Family ID includes XT16 but no commands verified for it."
- "firmware version compatibility range not stated in source."
- "IP/TCP control — Crestron help file references CNSP-615 cable and 19200/8/N/1 transport for PLC-XT20, but no TCP/REST command set documented in this source."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0