Summary
RS-232C control spec for the Sanyo PLC-ZM5000 / PLC-ZM5000L projector. Defines Functional Execution Commands (remote/console key equivalents) and Status Read Commands (projector state queries). All commands are ASCII, start with C, end with carriage return (0x0D).
Transport
protocols:
- serial
serial:
baud_rate: 19200 # initial setting; 9600 also supported. Service-mode changeable.
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
# UNRESOLVED: source specifies D-Sub 9Pin (COM ↔ CONTROL PORT) but does not state
# the cable pinout (TX/RX crossover) - dedicated serial cable required per source.
auth:
type: none # inferred: no auth procedure in source
Traits
traits:
- powerable # inferred: C00/C01/C02 power on/off commands present
- queryable # inferred: CR0-CR7 status read commands returning values
- levelable # inferred: VOLUME +/-, BRIGHTNESS +/-, ZOOM +/-, FOCUS +/- present
Actions
# All commands sent as ASCII `C` + two-char code + CR (0x0D). Source writes payloads
# as e.g. "C00" [CR]; here shown as "C00\r" where \r = 0x0D carriage return.
# ACK response = 0x06 0x0D ([ACK][CR]); decode failure = "?" + CR.
# Pipelining interval after ACK: 100ms for VOLUME/ZOOM/FOCUS/LENS-SHIFT, 500ms others.
# --- Power ---
- id: power_on
label: Power On
kind: action
command: "C00\r"
params: []
notes: "No-op if already ON. Sending during Countdown terminates Countdown."
- id: power_off_quick
label: Power Off (Quick)
kind: action
command: "C01\r"
params: []
notes: "Quick power off; skips 'Power OFF?' confirmation message."
- id: power_off
label: Power Off
kind: action
command: "C02\r"
params: []
notes: "Mirrors ON/STAND-BY button. First send shows 'Power OFF?'; second send executes. Terminates Countdown if sent during it."
# --- Input selection ---
- id: select_input_1
label: Select Input 1
kind: action
command: "C05\r"
params: []
- id: select_input_2
label: Select Input 2
kind: action
command: "C06\r"
params: []
- id: select_input_3
label: Select Input 3
kind: action
command: "C07\r"
params: []
- id: select_network
label: Select Network Input
kind: action
command: "C08\r"
params: []
- id: select_input_2_video
label: Select Input 2 Video
kind: action
command: "C23\r"
params: []
- id: select_input_2_ypbpr
label: Select Input 2 Y,Pb/Cb,Pr/Cr
kind: action
command: "C24\r"
params: []
- id: select_input_2_rgb
label: Select Input 2 RGB
kind: action
command: "C25\r"
params: []
- id: select_input_3_video
label: Select Input 3 Video
kind: action
command: "C33\r"
params: []
- id: select_input_3_svideo
label: Select Input 3 S-Video
kind: action
command: "C34\r"
params: []
- id: select_input_3_ypbpr
label: Select Input 3 Y,Pb/Cb,Pr/Cr
kind: action
command: "C35\r"
params: []
- id: select_input_1_hdmi
label: Select Input 1 HDMI
kind: action
command: "C4F\r"
params: []
- id: select_input_1_analog_rgb
label: Select Input 1 Analog RGB
kind: action
command: "C50\r"
params: []
- id: select_input_1_scart
label: Select Input 1 SCART
kind: action
command: "C51\r"
params: []
- id: select_input_1_dvi_pc_digital
label: Select Input 1 DVI (PC Digital)
kind: action
command: "C52\r"
params: []
- id: select_input_1_dvi_av_hdcp
label: Select Input 1 DVI (AV HDCP)
kind: action
command: "C53\r"
params: []
# --- Audio ---
- id: volume_up
label: Volume Up
kind: action
command: "C09\r"
params: []
notes: "Pipeline at 100ms intervals."
- id: volume_down
label: Volume Down
kind: action
command: "C0A\r"
params: []
notes: "Pipeline at 100ms intervals."
- 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: []
# --- Video mute / shutter ---
- id: video_mute_on
label: Video Mute On (Shutter Close)
kind: action
command: "C0D\r"
params: []
- id: video_mute_off
label: Video Mute Off (Shutter Open)
kind: action
command: "C0E\r"
params: []
# --- Screen size ---
- id: screen_normal_size
label: Screen Normal Size (4:3)
kind: action
command: "C0F\r"
params: []
- id: screen_full_size
label: Screen Full Size
kind: action
command: "C10\r"
params: []
# --- OSD / Menu ---
- 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: []
notes: "Clears OSD under all conditions."
# --- Image adjustments ---
- id: brightness_up
label: Brightness Up
kind: action
command: "C20\r"
params: []
- id: brightness_down
label: Brightness Down
kind: action
command: "C21\r"
params: []
- id: image_switch
label: Switch Image Setting
kind: action
command: "C27\r"
params: []
# --- Direct On / Power Management (EEPROM-persisted) ---
- id: direct_on_enable
label: Direct On Enable
kind: action
command: "C28\r"
params: []
notes: "Stored in EEPROM; retained across power cycles."
- id: direct_on_disable
label: Direct On Disable
kind: action
command: "C29\r"
params: []
notes: "Stored in EEPROM; retained across power cycles."
- id: power_management_ready
label: Power Management Ready
kind: action
command: "C2A\r"
params: []
notes: "Stored in EEPROM; retained across power cycles."
- id: power_management_off
label: Power Management Off
kind: action
command: "C2B\r"
params: []
notes: "Stored in EEPROM; retained across power cycles."
- id: power_management_shutdown
label: Power Management Shutdown
kind: action
command: "C2E\r"
params: []
notes: "Stored in EEPROM; retained across power cycles."
# --- Digital zoom ---
- id: dzoom_up
label: Digital Zoom Up
kind: action
command: "C30\r"
params: []
- id: dzoom_down
label: Digital Zoom Down
kind: action
command: "C31\r"
params: []
# --- Pointer / navigation ---
- 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 (Select)
kind: action
command: "C3F\r"
params: []
# --- Freeze ---
- id: freeze_on
label: Freeze On
kind: action
command: "C43\r"
params: []
- id: freeze_off
label: Freeze Off
kind: action
command: "C44\r"
params: []
# --- Lens / zoom / focus ---
- id: zoom_up
label: Zoom Up (Expand)
kind: action
command: "C47\r"
params: []
notes: "Pipeline at 100ms intervals."
- id: zoom_down
label: Zoom Down (Reduce)
kind: action
command: "C46\r"
params: []
notes: "Pipeline at 100ms intervals."
- id: focus_up
label: Focus Up (Longer Focal Length)
kind: action
command: "C4B\r"
params: []
notes: "Pipeline at 100ms intervals."
- id: focus_down
label: Focus Down (Shorter Focal Length)
kind: action
command: "C4A\r"
params: []
notes: "Pipeline at 100ms intervals."
- id: lens_shift_up
label: Lens Shift Up
kind: action
command: "C5D\r"
params: []
notes: "Pipeline at 100ms intervals."
- id: lens_shift_down
label: Lens Shift Down
kind: action
command: "C5E\r"
params: []
notes: "Pipeline at 100ms intervals."
- id: lens_shift_left
label: Lens Shift Left
kind: action
command: "C5F\r"
params: []
notes: "Pipeline at 100ms intervals."
- id: lens_shift_right
label: Lens Shift Right
kind: action
command: "C60\r"
params: []
notes: "Pipeline at 100ms intervals."
# --- Auto PC / Timer ---
- id: auto_pc_adj
label: Auto PC Adj
kind: action
command: "C89\r"
params: []
notes: "Sending during Auto PC Adj process terminates it."
- id: presentation_timer_start
label: Presentation Timer Start
kind: action
command: "C8A\r"
params: []
- id: presentation_timer_exit
label: Presentation Timer Exit
kind: action
command: "C8B\r"
params: []
# --- Keystone ---
- id: keystone_up
label: Keystone Up (Reduce Upper)
kind: action
command: "C8E\r"
params: []
- id: keystone_down
label: Keystone Down (Reduce Lower)
kind: action
command: "C8F\r"
params: []
- id: keystone_right
label: Keystone Right (Reduce Right)
kind: action
command: "C90\r"
params: []
- id: keystone_left
label: Keystone Left (Reduce Left)
kind: action
command: "C91\r"
params: []
# --- Status read (query) commands; format: "CR" + one char + CR ---
- id: status_read
label: Status Read (Operating Status)
kind: query
command: "CR0\r"
params: []
notes: "Returns 2-char hex status code + CR. See Feedbacks.status_state."
- id: input_mode_read
label: Input Mode Read
kind: query
command: "CR1\r"
params: []
notes: "Returns '1'..'4' + CR ('4' only on Networking-capable models)."
- id: lamp_time_read
label: Lamp Time Read
kind: query
command: "CR3\r"
params: []
notes: "Returns 5-digit lamp hours (coefficient-applied) + CR. e.g. '00410' = 410h."
- id: setting_read
label: Setting Read (Screen Setting)
kind: query
command: "CR4\r"
params: []
notes: "Returns 2-char ceiling/rear code + CR."
- id: temp_read
label: Temp Read
kind: query
command: "CR6\r"
params: []
notes: "Returns '%1_%2_%3' + CR (underscore = space). Each field formatted '_00.0' / '-05.5' / 'E00.0'."
- id: lamp_mode_read
label: Lamp Mode Read
kind: query
command: "CR7\r"
params: []
notes: "Returns '00' (lamp ON) or '01' (lamp OFF) + CR."
Feedbacks
- id: status_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 Abnormal Temperature
- "88" # Standby after Cooling Down due to Abnormal Temperature
- "24" # Power-Save Cooling Down in process
- "04" # Power Save
- "21" # Cooling Down after OFF due to Lamp Failure
- "81" # Standby after Cooling Down due to Lamp Failure
- "2C" # Cooling Down due to Shutter Management
- "8C" # Standby after Cooling Down due to Shutter Management
source_query: status_read
- id: input_mode
type: enum
values:
- "1" # Input 1
- "2" # Input 2
- "3" # Input 3
- "4" # Input 4 (Networking-capable models only)
source_query: input_mode_read
- id: lamp_time_hours
type: integer
source_query: lamp_time_read
notes: "5-digit string; coefficient-applied hours, not raw."
- id: screen_setting
type: enum
values:
- "11" # Normal
- "10" # Rear & Ceiling ON
- "01" # Rear ON
- "00" # Ceiling ON
source_query: setting_read
- id: temperatures
type: string
source_query: temp_read
notes: "Three sensor readings, space-separated, each '_00.0' / '-05.5' / 'E00.0'."
- id: lamp_mode
type: enum
values:
- "00" # Lamp ON
- "01" # Lamp OFF
source_query: lamp_mode_read
- id: command_ack
type: literal
values: ["\\x06\\r"] # [ACK][CR] - 0x06 0x0D, returned on accepted Functional Execution Command
- id: command_nack
type: literal
values: ["?\\r"] # "?" + CR, returned when received data cannot be decoded
Variables
# UNRESOLVED: source documents no settable numeric parameter with explicit value
# range (brightness/volume/zoom adjusted via +/- key equivalents only). No
# Variables entries populated.
Events
# UNRESOLVED: source documents no unsolicited notifications. All responses are
# solicited by a command (ACK for functional commands, data string for reads).
Macros
# UNRESOLVED: source documents no multi-step command sequences.
Safety
confirmation_required_for: []
interlocks:
- id: power_on_init_delay
description: "Approx. 7 seconds internal initialization after AC power plug-in. Commands not processed during this window. Do not issue commands."
- id: power_on_warmup_lockout
description: "During 7 seconds after POWER ON in Standby mode, Functional Execution Commands return ACK but are not executed. Status Read Commands execute 500ms after ACK for POWER ON."
- id: input_switch_lockout
description: "During 5 seconds after INPUT switching command, Functional Execution Commands return ACK but are not executed. Status Read Commands execute 500ms after ACK for INPUT switch."
- id: countdown_lockout
description: "During Countdown after POWER ON and Cooling after POWER OFF, Functional Execution Commands return ACK but are not executed. Limited exceptions: see source 6.4.1."
- id: cooling_down_lockout
description: "During Cooling Down (normal, abnormal-temp, power-save, lamp-failure, shutter-management), NO Functional Execution Commands are executed."
- id: abnormal_status_lockout
description: "In Abnormal Temperature, Abnormal Power, Abnormal Filter, Cooling due to Abnormal Temperature status: no Functional Execution Commands executed."
- id: eco_standby_lockout
description: "When 'Eco' mode is selected in Standby mode menu, all Functional Execution and Status Read Commands are invalid in Standby."
# UNRESOLVED: source does not state explicit confirmation/interlock procedures
# beyond status-gated command acceptance; values above are direct descriptions
# of source-stated behavior, not inferences.
Notes
- Command framing: Every command is one line, starts with
C, ends with carriage return (0x0D). Decoding begins on receipt of CR. Capital letters (A–Z) only. - Buffer clear: Receive buffer clears on receipt of LF (0x0A) or EOF (0x1A), or if >1 second elapses between first byte and CR for a single command.
- Pipelining intervals (after ACK receipt, before next command):
- 100ms for VOLUME +/-, ZOOM +/-, FOCUS +/-, LENS-SHIFT UP/DOWN/LEFT/RIGHT
- 500ms for all other Functional Execution Commands
- ≥500ms for Status Read Commands
- Pipelining behavior (VOLUME/ZOOM/FOCUS type): function executes for 120ms per received command; repeat command within 120ms extends execution by another 120ms; different command within 120ms or no command for 120ms stops pipelining.
- No-subsequent-command rule: Do not send another command before receiving the response, unless >5 seconds have elapsed with no response.
- Cable: Dedicated serial D-Sub 9Pin cable required (PC COM ↔ projector CONTROL PORT). Pinout not specified.
- Operation-requirements table (source 6.4.1) governs which commands are accepted in each projector status (Standby, Countdown, Cooling, Power Save, Abnormal states, Eco Standby, Input button Mode2/Mode3). See Safety interlocks.
- "---" rows in the source command tables mean "No Function" and are omitted from this spec.
Provenance
source_domains:
- audiogeneral.com
- manualslib.com
source_urls:
- https://www.audiogeneral.com/Sanyo/plczm5000l_rs232.pdf
- https://www.manualslib.com/manual/439273/Sanyo-Plc-Zm5000l-5000-Lumens.html
- https://www.manualslib.com/manual/439275/Sanyo-Plc-Zm5000l-5000-Lumens.html
- https://www.manualslib.com/manual/652507/Sanyo-Plc-Zm5000.html
- https://www.manualslib.com/manual/485310/Sanyo-Plc-Zm5000l-5000-Lumens.html
retrieved_at: 2026-08-02T12:37:34.313Z
last_checked_at: 2026-08-05T08:37:52.395Z
Verification Summary
verdict: verified
checked_at: 2026-08-05T08:37:52.395Z
matched_actions: 67
action_count: 67
confidence: medium
summary: "All 67 spec actions (61 functional + 6 status) match source commands verbatim; transport values corroborated by §2.1. (10 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "vendor doc authored by SANYO Electric Co., Ltd DS Company Projector Division; entity manufacturer token is \"Sanyo North America Corp\" per operator. No voltage/power/lamp-wattage specs in source."
- "source specifies D-Sub 9Pin (COM ↔ CONTROL PORT) but does not state"
- "source documents no settable numeric parameter with explicit value"
- "source documents no unsolicited notifications. All responses are"
- "source documents no multi-step command sequences."
- "source does not state explicit confirmation/interlock procedures"
- "firmware version compatibility not stated (doc cover says Ver.1.00 but device firmware range unknown)."
- "serial cable pinout / TX-RX crossover not documented in source."
- "lamp wattage, power draw, voltage specs not in this control doc."
- "exact list of Networking-capable models vs base models for CR1='4' response not enumerated."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0