Summary
Optoma ZU-series RS-232 control protocol covering the ZU655, ZU660, DAZULLZ, and DAZULUU projectors. Control is via a serial (UART) ASCII protocol using a ~ lead code, two-digit projector ID, three-digit command code, optional value, and <CR> terminator. Optoma publishes one shared ZU-series protocol document; the source notes "Some commands are not supported, it depends on models." SHDZ680 and TPZ760 share the family ID but have no model-specific documentation located.
Transport
protocols:
- serial
serial:
baud_rate: 19200 # source: "default is 19200 bps"; supports 9600-115200
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
# Additional source note: UART16550 FIFO: Disable; long cable runs may need lower baud rate.
auth:
type: none # inferred: no auth procedure in source
# Command framing (verbatim from source):
# Write: ~ <ProjID 00-99> <Cmd 000-999> <space> <value 0-9999> <CR>
# Read: ~ <ProjID 00-99> <Cmd 000-999> <CR>
# Lead code "~" = HEX 7E ; <CR> = HEX 0D ; ProjID 00 = all projectors
# Pass response = "P", Fail response = "F"
# Read pass response = "Ok <value>", Fail = "F"
# Unsolicited standby notice: "INFO<value><CR>"
Traits
traits:
- powerable # inferred from Power On/Off commands (~XX001 / ~XX000)
- queryable # inferred from many Read commands returning values
- levelable # inferred from brightness/contrast/volume/keystone set commands
Actions
# All commands use the framing documented in Transport.
# "command" field shows the verbatim template with the variable part in braces.
# Projector ID slot is shown as {pid} (00-99; 00 = all). Commands below assume pid=00.
# Many rows come from a corrupted PDF table extraction; ranges/enum maps preserved
# as best-readable from source. Where ambiguity exists, note says so.
# ---- Power / System ----
- id: power_off
label: Power Off
kind: action
command: "~0000&2"
params: []
notes: "Source row: Power Off ~XX000 0 & 2 F P"
- id: power_on
label: Power On
kind: action
command: "~0001"
params: []
notes: "Source row: Power On ~XX001 1 F P"
- id: resync
label: Re-Sync
kind: action
command: "~0011"
params: []
- id: av_mute_off
label: AV Mute Off
kind: action
command: "~0020&2"
params: []
- id: av_mute_on
label: AV Mute On
kind: action
command: "~0021"
params: []
- id: mute_off
label: Mute Off
kind: action
command: "~0030&2"
params: []
- id: mute_on
label: Mute On
kind: action
command: "~0031"
params: []
- id: freeze_unfreeze
label: Freeze Unfreeze
kind: action
command: "~0040&2"
params: []
- id: freeze
label: Freeze
kind: action
command: "~0041"
params: []
- id: zoom_plus
label: Zoom Plus
kind: action
command: "~0051"
params: []
- id: zoom_minus
label: Zoom Minus
kind: action
command: "~0061"
params: []
# ---- Direct Power / Standby Settings ----
- id: direct_power_set
label: Direct Power On
kind: action
command: "~0105{value}"
params:
- name: value
type: integer
description: "0=Off, 1=On"
- id: signal_power_set
label: Signal Power On
kind: action
command: "~0104{value}"
params:
- name: value
type: integer
description: "0=Off, 1=On"
- id: reset_to_default
label: Reset to Default
kind: action
command: "~0112{value}"
params:
- name: value
type: integer
description: "1=Yes (Cancel/Yes row)"
- id: auto_power_off_set
label: Auto Power Off (minutes)
kind: action
command: "~0106{value}"
params:
- name: value
type: integer
description: "0~120, 5 min increments"
- id: ssi_power_mode_set
label: SSI Power Mode
kind: action
command: "~0110{value}"
params:
- name: value
type: integer
description: "1=Normal, 2=Eco"
- id: high_altitude_set
label: High Altitude
kind: action
command: "~0101{value}"
params:
- name: value
type: integer
description: "0=Off, 1=On"
# ---- Picture / Color Mode ----
- id: color_mode_set
label: Color Mode Set
kind: action
command: "~020{value}"
params:
- name: value
type: integer
description: "Source enum (corrupted extraction): 0=None, 1=PC, 3=Movie, 4=Blending, 5=Game, 6=User, others per source"
notes: "UNRESOLVED: exact enum→value map partially corrupted in extracted table."
- id: brightness_set
label: Brightness
kind: action
command: "~0210{value}"
params:
- name: value
type: integer
description: "0~100 (Blending variant 0~8)"
- id: brightness_minus
label: Brightness Minus
kind: action
command: "~0461"
params: []
- id: brightness_plus
label: Brightness Plus
kind: action
command: "~0462"
params: []
- id: contrast_set
label: Contrast
kind: action
command: "~0220{value}"
params:
- name: value
type: integer
description: "0~100"
- id: contrast_minus
label: Contrast Minus
kind: action
command: "~0471"
params: []
- id: contrast_plus
label: Contrast Plus
kind: action
command: "~0472"
params: []
- id: sharpness_set
label: Sharpness
kind: action
command: "~0230{value}"
params:
- name: value
type: integer
description: "0~31"
- id: saturation_set
label: Saturation
kind: action
command: "~0450{value}"
params:
- name: value
type: integer
description: "0~100 (VGA Video only)"
notes: "UNRESOLVED: code 450 also appears for LAN Standby in source - possible extraction collision."
- id: hue_set
label: Hue
kind: action
command: "~0440{value}"
params:
- name: value
type: integer
description: "0~100 (VGA Video only)"
# ---- Gamma ----
- id: gamma_set
label: Gamma
kind: action
command: "~035{value}"
params:
- name: value
type: integer
description: "Source values: 16=Cubit, 15=Enhphoto, 4=2.2, 12=2.4"
# ---- Color Temperature ----
- id: color_temp_set
label: Color Temperature
kind: action
command: "~036{value}"
params:
- name: value
type: integer
description: "10=6500K, 11=7500K, 12=8300K"
# ---- Color Matching (W / R / G / B / C / Y / M) ----
- id: cm_w_red_set
label: Color Match (W) Red
kind: action
command: "~0345{value}"
params:
- name: value
type: integer
description: "1~199"
- id: cm_w_green_set
label: Color Match (W) Green
kind: action
command: "~0346{value}"
params:
- name: value
type: integer
description: "1~199"
- id: cm_w_blue_set
label: Color Match (W) Blue
kind: action
command: "~0347{value}"
params:
- name: value
type: integer
description: "1~199"
- id: cm_r_saturation_set
label: Color Match (R) Saturation
kind: action
command: "~0333{value}"
params:
- name: value
type: integer
description: "0~199"
- id: cm_r_hue_set
label: Color Match (R) Hue
kind: action
command: "~0327{value}"
params:
- name: value
type: integer
description: "-99~99"
- id: cm_r_gain_set
label: Color Match (R) Gain
kind: action
command: "~0339{value}"
params:
- name: value
type: integer
description: "1~199"
- id: cm_g_saturation_set
label: Color Match (G) Saturation
kind: action
command: "~0334{value}"
params:
- name: value
type: integer
description: "0~199"
- id: cm_g_hue_set
label: Color Match (G) Hue
kind: action
command: "~0328{value}"
params:
- name: value
type: integer
description: "-99~99"
- id: cm_g_gain_set
label: Color Match (G) Gain
kind: action
command: "~0340{value}"
params:
- name: value
type: integer
description: "1~199"
- id: cm_b_saturation_set
label: Color Match (B) Saturation
kind: action
command: "~0335{value}"
params:
- name: value
type: integer
description: "0~199"
- id: cm_b_hue_set
label: Color Match (B) Hue
kind: action
command: "~0329{value}"
params:
- name: value
type: integer
description: "-99~99"
- id: cm_b_gain_set
label: Color Match (B) Gain
kind: action
command: "~0341{value}"
params:
- name: value
type: integer
description: "1~199"
- id: cm_c_saturation_set
label: Color Match (C) Saturation
kind: action
command: "~0336{value}"
params:
- name: value
type: integer
description: "0~199"
- id: cm_c_hue_set
label: Color Match (C) Hue
kind: action
command: "~0330{value}"
params:
- name: value
type: integer
description: "-99~99"
- id: cm_c_gain_set
label: Color Match (C) Gain
kind: action
command: "~0342{value}"
params:
- name: value
type: integer
description: "1~199"
- id: cm_y_saturation_set
label: Color Match (Y) Saturation
kind: action
command: "~0337{value}"
params:
- name: value
type: integer
description: "0~199"
- id: cm_y_hue_set
label: Color Match (Y) Hue
kind: action
command: "~0331{value}"
params:
- name: value
type: integer
description: "-99~99"
- id: cm_y_gain_set
label: Color Match (Y) Gain
kind: action
command: "~0343{value}"
params:
- name: value
type: integer
description: "1~199"
- id: cm_m_saturation_set
label: Color Match (M) Saturation
kind: action
command: "~0338{value}"
params:
- name: value
type: integer
description: "0~199"
- id: cm_m_hue_set
label: Color Match (M) Hue
kind: action
command: "~0332{value}"
params:
- name: value
type: integer
description: "-99~99"
- id: cm_m_gain_set
label: Color Match (M) Gain
kind: action
command: "~0344{value}"
params:
- name: value
type: integer
description: "1~199"
# ---- Aspect Ratio ----
- id: aspect_ratio_set
label: Aspect Ratio
kind: action
command: "~060{value}"
params:
- name: value
type: integer
description: "1=4:3, 2=16:9, 3=16:10, 7=Auto"
# ---- Display / Screen geometry ----
- id: phase_set
label: Phase
kind: action
command: "~074{value}"
params:
- name: value
type: integer
description: "0~31"
- id: clock_set
label: Clock
kind: action
command: "~073{value}"
params:
- name: value
type: integer
description: "-5~5"
- id: h_position_set
label: H. Position
kind: action
command: "~075{value}"
params:
- name: value
type: integer
description: "-5~5"
- id: v_position_set
label: V. Position
kind: action
command: "~076{value}"
params:
- name: value
type: integer
description: "-5~5 (source row shows -5~2; PDF extraction may be off)"
- id: digital_zoom_set
label: Digital Zoom
kind: action
command: "~062{value}"
params:
- name: value
type: integer
description: "0~10"
- id: projection_set
label: Projection Mode
kind: action
command: "~071{value}"
params:
- name: value
type: integer
description: "1=Front, 2=Rear, 3=Front Ceiling, 4=Rear Ceiling"
- id: v_keystone_set
label: V Keystone
kind: action
command: "~066{value}"
params:
- name: value
type: integer
description: "-40~40"
- id: h_keystone_set
label: H Keystone
kind: action
command: "~065{value}"
params:
- name: value
type: integer
description: "-40~40"
- id: size_set
label: Size
kind: action
command: "~067{value}"
params:
- name: value
type: integer
description: "0 ~ -25"
- id: image_h_shift_set
label: Image H Shift
kind: action
command: "~068{value}"
params:
- name: value
type: integer
description: "250 ~ -250"
- id: image_v_shift_set
label: Image V Shift
kind: action
command: "~069{value}"
params:
- name: value
type: integer
description: "100 ~ -100"
# ---- Setting / Language / Menu ----
- id: language_set
label: Language
kind: action
command: "~070{value}"
params:
- name: value
type: integer
description: "1=English,2=Deutsch,3=Français,4=Italiano,5=Español,6=Português,7=Polski,8=Nederlands,9=Svenska,10=Norwegian,11=Suomi,12=ελληνικά,13=繁體中文,14=簡体中文,15=日本語,16=한국어,17=Русский,18=Magyar,19=Čeština,20=عربي,21=ไทย,22=Türkçe,23=فارسی,24=Dansk,25=Vietnamese,26=Indonesia,27=Romanian,28=Slovakian"
- id: menu_location_set
label: Menu Location
kind: action
command: "~072{value}"
params:
- name: value
type: integer
description: "1=Top left,2=Top right,3=Center,4=Bottom left,5=Bottom right"
- id: vga_out_standby_set
label: VGA Out (Standby)
kind: action
command: "~0309{value}"
params:
- name: value
type: integer
description: "0=Off, 1=On"
- id: lan_standby_set
label: LAN (Standby)
kind: action
command: "~0450{value}"
params:
- name: value
type: integer
description: "0=Off, 1=On"
notes: "UNRESOLVED: code 450 collides with Saturation in extracted table; original PDF should be checked."
- id: input_source_set
label: Input Source
kind: action
command: "~0121{value}"
params:
- name: value
type: integer
description: "Source enum (corrupted): 1=HDMI, 3=VGA2, 5=Video, 10=Multimedia, 92=NetworkDisplay/VGA, others per Note*1 cc map"
# ---- Audio ----
- id: speaker_set
label: Speaker
kind: action
command: "~0310{value}"
params:
- name: value
type: integer
description: "0=Off, 1=On"
- id: audio_out_set
label: Audio Out
kind: action
command: "~0510{value}"
params:
- name: value
type: integer
description: "0=Off, 1=On"
- id: volume_mic_set
label: Volume Microphone
kind: action
command: "~0562{value}"
params:
- name: value
type: integer
description: "0=Off, 1=On, 2=muted (per source 0&2 / 1)"
- id: mute_toggle
label: Mute
kind: action
command: "~080{value}"
params:
- name: value
type: integer
description: "0=Off, 1=On"
- id: volume_set
label: Volume
kind: action
command: "~081{value}"
params:
- name: value
type: integer
description: "0~30"
- id: mic_volume_set
label: Microphone Volume
kind: action
command: "~093{value}"
params:
- name: value
type: integer
description: "0~30"
# ---- Logo ----
- id: logo_set
label: Logo
kind: action
command: "~082{value}"
params:
- name: value
type: integer
description: "1=Default, 2=User"
- id: logo_capture
label: Logo Capture
kind: action
command: "~083{value}"
params:
- name: value
type: integer
description: "1=Yes (Cancel/Yes)"
# ---- Source / Auto ----
- id: auto_source_set
label: Auto Source
kind: action
command: "~0563{value}"
params:
- name: value
type: integer
description: "0=Off, 1=On"
- id: test_pattern_grid
label: Test Pattern Grid
kind: action
command: "~0195{value}"
params:
- name: value
type: integer
description: "1=On, 0=None"
# ---- 3D ----
- id: td_format_set
label: 3D Format
kind: action
command: "~0405{value}"
params:
- name: value
type: integer
description: "Auto=4, On=5, Off=6, FramePacking=7, SbS-Half=1, TopBottom=2, FrameSeq=3, FieldSeq=9"
- id: td_invert_set
label: 3D Invert
kind: action
command: "~0231{value}"
params:
- name: value
type: integer
description: "0=Off, 1=On"
# ---- Filter ----
- id: filter_reminder_set
label: Filter Reminder
kind: action
command: "~0322{value}"
params:
- name: value
type: integer
description: "0~1000"
- id: optional_filter_cleaning_reminder_set
label: Optional Filter Cleaning Reminder
kind: action
command: "~0323{value}"
params:
- name: value
type: integer
description: "0=No, 1=Yes (row shows 0&2 F P)"
- id: open_info_menu
label: Open Info Menu
kind: action
command: "~0313{value}"
params:
- name: value
type: integer
description: "1=open, 0/2=close"
# ---- Remote Control Simulation (Keypad Emulation) ----
# Source documents each as a distinct row under "Remote Control Simulation".
- id: rc_power
label: RC Power
kind: action
command: "~0140{value}"
params:
- name: value
type: integer
description: "1"
notes: "Source row maps to Remote 'Power' = 1."
- id: rc_power_off
label: RC Power Off
kind: action
command: "~0140{value}"
params:
- name: value
type: integer
description: "50"
notes: "Source: Power Off = 50."
- id: rc_up
label: RC Up
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "10"}]
- id: rc_left
label: RC Left
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "11"}]
- id: rc_enter
label: RC Enter
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "12"}]
- id: rc_right
label: RC Right
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "13"}]
- id: rc_down
label: RC Down
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "14"}]
- id: rc_v_keystone_plus
label: RC V Keystone +
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "15"}]
- id: rc_v_keystone_minus
label: RC V Keystone -
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "16"}]
- id: rc_volume_minus
label: RC Volume -
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "17"}]
- id: rc_volume_plus
label: RC Volume +
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "18"}]
- id: rc_menu
label: RC Menu
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "20"}]
- id: rc_zoom_plus
label: RC Zoom+
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "32"}]
- id: rc_zoom_minus
label: RC Zoom-
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "33"}]
- id: rc_vga1
label: RC VGA-1
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "23"}]
- id: rc_av_mute
label: RC AV Mute
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "24"}]
- id: rc_freeze
label: RC Freeze
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "30"}]
- id: rc_mode
label: RC Mode
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "36"}]
- id: rc_format
label: RC Format
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "37"}]
- id: rc_info
label: RC Info
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "40"}]
- id: rc_resync
label: RC Re-sync
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "41"}]
- id: rc_hdmi1
label: RC HDMI 1
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "42"}]
- id: rc_hdmi2
label: RC HDMI 2
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "43"}]
- id: rc_source
label: RC Source
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "47"}]
- id: rc_key_1
label: RC Key 1
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "51"}]
- id: rc_key_2
label: RC Key 2
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "52"}]
- id: rc_key_3
label: RC Key 3
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "53"}]
- id: rc_key_4
label: RC Key 4
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "54"}]
- id: rc_key_5
label: RC Key 5
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "55"}]
- id: rc_key_6
label: RC Key 6
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "56"}]
- id: rc_key_7
label: RC Key 7
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "57"}]
- id: rc_key_8
label: RC Key 8
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "58"}]
- id: rc_key_9
label: RC Key 9
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "59"}]
- id: rc_key_0
label: RC Key 0
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "60"}]
- id: rc_pip_pbp
label: RC PIP/PBP
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "63"}]
- id: rc_geometric_correction
label: RC Geometric Correction
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "68"}]
- id: rc_hotkey_f1
label: RC Hot Key F1
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "70"}]
- id: rc_hotkey_f2
label: RC Hot Key F2
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "71"}]
- id: rc_hotkey_f3
label: RC Hot Key F3
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "72"}]
- id: rc_exit
label: RC Exit
kind: action
command: "~0140{value}"
params: [{name: value, type: integer, description: "74"}]
Feedbacks
# Read commands (source "Read CMD" column) - each returns "Ok <value>" on pass.
- id: power_state_query
type: enum
values: [off, on]
command: "~0124"
notes: "Returns 0=Off / 1=On"
- id: color_mode_query
type: enum
command: "~0123"
notes: "Returns Color Mode enum value"
- id: brightness_query
type: integer
command: "~0125"
- id: contrast_query
type: integer
command: "~0126"
- id: color_temp_query
type: enum
command: "~0128"
- id: aspect_ratio_query
type: enum
command: "~0127"
- id: mute_state_query
type: enum
values: [off, on]
command: "~0356"
- id: av_mute_state_query
type: enum
values: [off, on]
command: "~0355"
- id: v_keystone_query
type: integer
command: "~0543"
- id: h_keystone_query
type: integer
command: "~0544"
- id: size_query
type: integer
command: "~0545"
- id: image_h_shift_query
type: integer
command: "~0546"
- id: image_v_shift_query
type: integer
command: "~0547"
- id: projection_query
type: enum
command: "~0129"
notes: "Returns 0=Front,2=Rear,1=FrontCeiling,3=RearCeiling"
- id: model_name_query
type: string
command: "~0151"
- id: snid_query
type: string
command: "~0353"
- id: main_source_resolution_query
type: string
command: "~0150"
- id: sw_version_query
type: string
command: "~0122"
- id: ssi_hours_normal_query
type: integer
command: "~0108"
notes: "Source shows ~XX108 returns normal/eco hours"
- id: ssi_hours_used_normal_query
type: integer
command: "~01083"
notes: "UNRESOLVED: code formatting ambiguous in extracted table (~XX108 3 vs ~XX1083)."
- id: ssi_hours_used_eco_query
type: integer
command: "~01084"
- id: ssi_power_mode_query
type: enum
command: "~0150"
notes: "Source: ~XX150 1 → 5; maps to SSI Power Mode. Returns 1=Normal,0=Eco per set row."
- id: filter_usage_hours_query
type: integer
command: "~0321"
- id: network_status_query
type: enum
values: [disconnected, connected]
command: "~0871"
- id: ip_address_query
type: string
command: "~0873"
- id: dhcp_client_query
type: enum
command: "~0150"
notes: "UNRESOLVED: code 150 reused across multiple read rows in extracted table - ambiguous."
- id: mac_address_query
type: string
command: "~0555"
# UNRESOLVED: several additional Information read rows (Sub Source Resolution, System Temperature,
# Standby Power Mode, Light Source Mode) share ambiguous codes due to PDF table corruption.
Variables
# All settable parameters are represented as Actions above (Optoma exposes them as write commands).
# UNRESOLVED: no separately-modeled continuous variables beyond those actions.
Events
# Source documents an unsolicited "System Automatically Standby" notification:
# "INFO<value><CR>"
# Values documented (row "System Auto Send"):
- id: system_auto_send
type: enum
values:
- {value: 0, label: Standby Mode}
- {value: 4, label: LD Fail}
- {value: 6, label: Fan Lock}
- {value: 7, label: Over Temperature}
- {value: 12, label: Color Wheel Unexpected Stop}
- {value: 13, label: Power Good Error}
- {value: 21, label: "LD NTC (1) Over Temperature"}
- {value: 24, label: System Ready}
notes: "Unsolicited; format 'INFO<n><CR>'."
Macros
# UNRESOLVED: no multi-step sequences described explicitly in source.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no explicit safety warnings or interlock procedures.
# Note: "High Altitude" setting exists (0101) but no safety interlock text accompanies it.
Notes
- Optoma publishes one shared RS-232 protocol across the ZU-series; the source explicitly notes "Some commands are not supported, it depends on models." Per-model command availability matrix is not provided.
- Projector ID 00 broadcasts to all projectors on the bus; 01–99 address individual units.
- HEX reference:
~=7E,0-9=30-39, Space=20,<CR>=0D. Example from source: ASCII~00195 1<CR>= HEX7E 30 30 31 39 35 20 31 0D. - Baud rate default 19200; supported range 9600–115200. UART16550 FIFO disabled.
- Pass response is single char
P; Fail isF. Read pass returnsOk <value>. - The
Info String(read 1) packs multiple fields into one token of shapeabbbbbccddddee— see source Note*1 for the cc (input source) and ee (display mode) enumeration maps. - SHDZ680 and TPZ760 are listed in the family but have no model-specific protocol doc located; they are presumed to share the generic ZU-series protocol but this is unverified.
Provenance
source_domains:
- region-resource.optoma.com
- optomaeurope.com
- optoma.de
source_urls:
- https://region-resource.optoma.com/products/import/Documents/471bc1d6-63f6-4825-aeef-2414e9cc5f99.pdf
- https://region-resource.optoma.com/products/import/Documents/fcc27c8d-3ab3-462f-a7f3-ee35633fdb8c.pdf
- https://region-resource.optoma.com/products/import/Documents/cf45148a-8c4b-4489-8689-b9b1c8d09d14.pdf
- https://www.optomaeurope.com/ContentStorage/Documents/731aa26e-4842-4414-999a-422879b17cee.pdf
- https://optoma.de/uploads/RS232/DS309-RS232-en.pdf
retrieved_at: 2026-06-16T01:52:03.661Z
last_checked_at: 2026-06-16T07:10:04.939Z
Verification Summary
verdict: verified
checked_at: 2026-06-16T07:10:04.939Z
matched_actions: 122
action_count: 122
confidence: medium
summary: "All 122 spec actions matched literally against source command table; transport parameters verified; comprehensive coverage of ZU-series protocol. (16 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "SHDZ680 / TPZ760 model-specific command coverage not located."
- "exact per-model support matrix of the generic command set is not stated in source."
- "source PDF command table suffered column-shift corruption during text extraction; some parameter ranges / enum mappings may be imprecise. Verifier should re-check against original PDF."
- "exact enum→value map partially corrupted in extracted table.\""
- "code 450 also appears for LAN Standby in source - possible extraction collision.\""
- "code 450 collides with Saturation in extracted table; original PDF should be checked.\""
- "code formatting ambiguous in extracted table (~XX108 3 vs ~XX1083).\""
- "code 150 reused across multiple read rows in extracted table - ambiguous.\""
- "several additional Information read rows (Sub Source Resolution, System Temperature,"
- "no separately-modeled continuous variables beyond those actions."
- "no multi-step sequences described explicitly in source."
- "source contains no explicit safety warnings or interlock procedures."
- "SHDZ680 / TPZ760 model-specific documentation not located."
- "exact per-model command subset not documented in source."
- "source PDF command table suffered column-shift corruption during text extraction; some enum maps and the 450/150 code collisions should be re-verified against the original PDF (region-resource.optoma.com fcc27c8d-... and cf45148a-...)."
- "firmware version compatibility not stated in source."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0