Summary
RS-232 command set for the Lumens DC192 / PC192 document camera (visualizer). Asynchronous half-duplex serial control at 9600 bps using a fixed 6-byte binary packet (STX A0h … ETX AFh). Covers power, lamp, zoom/focus, capture, image settings, source select, OSD, and status queries.
Transport
protocols:
- serial
serial:
baud_rate: 9600 # Transmit Speed: 9600bps
data_bits: 8 # Data Bit: 8Bit
parity: none # Parity Check: NA
stop_bits: 1 # Stop Bit: 1Bit
flow_control: none # inferred: simple async half-duplex link, no handshake described in source
# Start bit: 1 bit (stated)
auth:
type: none # inferred: no auth/login procedure in source
Packet Format
# 6-byte command packet (Section 4.1 of source):
# byte 1 (STX): A0h - start of command
# byte 2 (Command): 00h..FFh
# byte 3 (Param1): 00h..FFh
# byte 4 (Param2): 00h..FFh
# byte 5 (Status): 00h when sent; return packet carries status bits
# byte 6 (ETX): AFh - end of command
#
# Return packet status byte (St):
# 0 = ACK (action succeed / normal end)
# 1 = NAK (error in command packet / parity / framing / overrun / out-of-range data)
# 2 = IGNORE (cannot execute now / unsupported command)
# 3 = Not used
#
# Status byte bit map (return packet, bit meanings):
# bit 6 = Iris moving status (1=moving / 0=stop)
# bit 5 = Zoom moving status (1=moving / 0=stop)
# bit 4 = Focus moving status (1=moving / 0=stop)
# bit 1..0 = communication response (0=ACK / 1=NAK / 2=IGNORE / 3=not used)
#
# RS-232 wiring (DB9F, presenter <-> remote controller):
# pin 2 -> pin 3
# pin 3 -> pin 2
# pin 5 -> pin 5
# shell -> shell (drain)
Traits
traits:
- powerable # inferred: Power (B1h) and System ON/OFF (B0h) commands present
- queryable # inferred: many Call... status/version/position queries present
- levelable # inferred: audio mic/out volume, brightness, R/B gain controls present
- routable # inferred: Source live/PC (3Ah) selects Camera/PC/Source OFF output
Actions
# All payloads are the full 6-byte packet, hex, verbatim from source.
# {p1}/{p2}/{p3} denote variable parameter bytes documented in the source row.
- id: preset_factory_reset
label: Preset / Factory Reset
kind: action
command: "A0 03 {p1} {p2} 00 AF"
params:
- name: p1
type: integer
description: "0 = Preset; 1 = Factory Reset"
- name: p2
type: integer
description: "when p1=0: 00 = Preset Load, 01 = Preset Save"
- id: slideshow_on_off
label: Slide show On/Off
kind: action
command: "A0 04 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "00 = Off, 01 = On"
- id: slideshow_delay
label: Slide show Delay
kind: action
command: "A0 06 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "0..5 = 0.5s / 1s / 3s / 5s / 10s / Manual"
- id: image_record_quality
label: Image / Record Quality
kind: action
command: "A0 07 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "00 = High, 01 = Medium, 02 = Low"
- id: copy_nand_to_sd
label: Copy From Nand to SD
kind: action
command: "A0 08 00 00 00 AF"
params: []
- id: zoom_stop
label: Zoom Stop
kind: action
command: "A0 10 00 00 00 AF"
params: []
- id: zoom_start_no_af
label: Zoom Start (No AF)
kind: action
command: "A0 11 {p1} {p2} 00 AF"
params:
- name: p1
type: integer
description: "00 = Tele, 01 = Wide"
- id: zoom_direct_no_af
label: Zoom Direct (No AF)
kind: action
command: "A0 11 {p1} {p2} 00 AF"
params:
- name: p1
type: integer
description: "low byte of zoom value (0..855)"
- name: p2
type: integer
description: "high byte of zoom value (0..855); optical max per mode XGA=805 SXGA=802 WXGA=802 1080P=795 NTSC=810 PAL=810"
- id: auto_erase
label: Auto Erase
kind: action
command: "A0 14 {p1} 00 00 AF" # NOTE: return-packet table lists 13h for this row; command-packet table (sent) lists 14h
params:
- name: p1
type: integer
description: "00 = Auto Erase Off, 01 = Auto Erase On"
- id: focus_stop
label: Focus Stop
kind: action
command: "A0 19 00 00 00 AF"
params: []
- id: focus_start
label: Focus Start
kind: action
command: "A0 1A {p1} {p2} 00 AF"
params:
- name: p1
type: integer
description: "00 = Near, 01 = Far"
- name: p2
type: integer
description: "speed 00..06"
- id: focus_direct
label: Focus Direct
kind: action
command: "A0 1B {p1} {p2} {p3} AF"
params:
- name: p1
type: integer
description: "low byte of focus position (0..160 decimal)"
- name: p2
type: integer
description: "high byte of focus position (0..160 decimal)"
- name: p3
type: integer
description: "speed 00..06"
- id: zoom_start_with_af
label: Zoom Start (with AF)
kind: action
command: "A0 1D {p1} {p2} 00 AF"
params:
- name: p1
type: integer
description: "00 = Tele, 01 = Wide"
- id: zoom_direct_with_af
label: Zoom Direct (with AF)
kind: action
command: "A0 1D {p1} {p2} 00 AF"
params:
- name: p1
type: integer
description: "low byte of zoom value (0..855)"
- name: p2
type: integer
description: "high byte of zoom value (0..855); optical max per mode XGA=805 SXGA=802 WXGA=802 1080P=795 NTSC=810 PAL=810"
- id: white_balance
label: White Balance (AWB / Auto Tune)
kind: action
command: "A0 22 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "00 = Auto Tune, 01 = AWB"
- id: set_pan_mode
label: Set Pan Mode
kind: action
command: "A0 26 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "00 = Off, 01 = On"
- id: mask_mode
label: Mask Mode
kind: action
command: "A0 27 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "0 = Disable, 1 = Mask, 2 = Spotlight"
- id: freeze
label: Freeze
kind: action
command: "A0 2C {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "00 = Off, 01 = On"
- id: brightness_control
label: Brightness Control
kind: action
command: "A0 30 {p1} 00 00 AF" # UNRESOLVED: source byte columns show P1 then 00h; source comment references "P2=60/50Hz: 00~147" brightness value whose byte position is ambiguous in the table
params:
- name: p1
type: integer
description: "00 = Auto, 01 = Manual"
- name: brightness
type: integer
description: "UNRESOLVED: brightness value 00..147 (per 60/50Hz); source does not clearly map this to a packet byte"
- id: logo_delay
label: Logo Delay
kind: action
command: "A0 34 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "logo delay in seconds (4..30)"
- id: language_select
label: Language Select
kind: action
command: "A0 38 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "0..20 = English / Traditional Chinese / Simplified Chinese / German / French / Spanish / Russian / Dutch / Finnish / Polish / Italian / Portuguese / Swedish / Danish / Czech / Arabic / Japanese / Korean / Greek / Reserved / Latvia"
- id: brightness_step
label: Brightness Step
kind: action
command: "A0 39 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "00 = -1, 01 = +1"
- id: source_select
label: Source live/PC
kind: action
command: "A0 3A {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "00 = Camera, 01 = PC, 02 = Source OFF"
- id: disable_digital_zoom_after_optical
label: Disable Digital Zoom After Optical Zoom
kind: action
command: "A0 40 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "00 = Disable, 01 = Enable"
- id: call_master_version
label: Call Master Version
kind: query
command: "A0 45 00 00 00 AF"
params: []
- id: call_ae_status
label: Call AE Status
kind: query
command: "A0 46 00 00 00 AF"
params: []
- id: enable_disable_logo_image
label: Enable/Disable LOGO Image
kind: action
command: "A0 47 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "00 = default logo, 01 = user logo"
- id: playback_index_change_page
label: Playback Image Index Change Page
kind: action
command: "A0 4A {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "00 = Page Up, 01 = Page Down"
- id: all_osd_on_off
label: All OSD On/Off
kind: action
command: "A0 4B {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "00 = Off, 01 = On"
- id: call_slave_version
label: Call Slave Version
kind: query
command: "A0 4D 00 00 00 AF"
params: []
- id: frame_average
label: Frame Average
kind: action
command: "A0 4E {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "00 = LCD, 01 = DLP"
- id: call_lamp_status
label: Call Lamp Status
kind: query
command: "A0 50 00 00 00 AF"
params: []
- id: call_text_photo_status
label: Call Text/Photo Status
kind: query
command: "A0 51 00 00 00 AF"
params: []
- id: reg1
label: Register 1 (reg1)
kind: action
command: "A0 52 {p1} {p2} 00 AF"
params:
- name: p1
type: integer
description: "00 = Read, 01 = Write"
- name: p2
type: integer
description: "register value 0x00..0xFF"
- id: reg2
label: Register 2 (reg2)
kind: action
command: "A0 53 {p1} {p2} 00 AF"
params:
- name: p1
type: integer
description: "register access (see reg1 convention)"
- name: p2
type: integer
description: "register value 0x00..0xFF"
- id: reg3
label: Register 3 (reg3)
kind: action
command: "A0 54 {p1} {p2} 00 AF"
params:
- name: p1
type: integer
description: "register access (see reg1 convention)"
- name: p2
type: integer
description: "register value 0x00..0xFF"
- id: error_code
label: Error Code
kind: action
command: "A0 55 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "00 = Show Error Code, 01 = Clear Error Code"
- id: awb_correction
label: AWB Correction
kind: action
command: "A0 56 00 00 00 AF"
params: []
- id: call_ac_power_state
label: Call AC 50/60Hz Power State
kind: query
command: "A0 58 00 00 00 AF"
params: []
- id: keypad_detect
label: Keypad Detect
kind: action
command: "A0 59 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "00 = Stop, 01 = Start (enables debug detection messages sent via RS232)"
- id: call_zoom_position
label: Call Zoom Position
kind: query
command: "A0 60 00 00 00 AF"
params: []
- id: call_digital_zoom_position
label: Call Digital Zoom Position
kind: query
command: "A0 62 00 00 00 AF"
params: []
- id: call_focus_position
label: Call Focus Position
kind: query
command: "A0 64 00 00 00 AF"
params: []
- id: call_freeze_status
label: Call Freeze Status
kind: query
command: "A0 78 00 00 00 AF"
params: []
- id: call_brightness_position
label: Call Brightness Position
kind: query
command: "A0 89 00 00 00 AF"
params: []
- id: call_mix_zoom_position
label: Call Mix Zoom Position
kind: query
command: "A0 8A 00 00 00 AF"
params: []
- id: call_menu_status
label: Call Menu Status
kind: query
command: "A0 8B 00 00 00 AF"
params: []
- id: capture_action
label: Capture Action
kind: action
command: "A0 96 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "00 = Single Capture, 01 = Time Lapse, 02 = Record, 03 = Disabled"
- id: capture_time
label: Capture Time
kind: action
command: "A0 97 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "00..06 = 1hr / 2hr / 4hr / 8hr / 24hr / 48hr / 72hr"
- id: capture_interval
label: Capture Interval
kind: action
command: "A0 98 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "00..06 = 3s / 5s / 10s / 30s / 1min / 2min / 5min"
- id: key_function
label: Key Function
kind: action
command: "A0 A0 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "01..06 = Enter / Up / Down / Left / Right / Menu"
- id: set_rb_gain
label: Set R/B Gain
kind: action
command: "A0 A1 {p1} {p2} {p3} AF"
params:
- name: p1
type: integer
description: "01 = Red Gain, 02 = Blue Gain"
- name: p2
type: integer
description: "low byte of gain (0x100..0xFFF)"
- name: p3
type: integer
description: "high byte of gain (0x100..0xFFF)"
- id: call_rb_gain
label: Call R/B Gain
kind: query
command: "A0 A2 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "01 = Red Gain, 02 = Blue Gain"
- id: af_one_push_trigger
label: AF One Push Trigger
kind: action
command: "A0 A3 01 00 00 AF"
params: []
- id: set_gamma_mode
label: Set Gamma Mode
kind: action
command: "A0 A7 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "00 = Photo, 01 = Text, 02 = Gray"
- id: set_image_mode
label: Set Image Mode
kind: action
command: "A0 A9 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "00 = Normal, 01 = Slide, 02 = Film, 03 = Microscope"
- id: system_on_off
label: System ON/OFF
kind: action
command: "A0 B0 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "00 = Off, 01 = On"
- id: power
label: Power
kind: action
command: "A0 B1 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "00 = Off, 01 = On"
- id: capture
label: Capture
kind: action
command: "A0 B2 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "00 = Capture, 01 = Record"
- id: playback_thumbnail
label: Playback Thumbnail
kind: action
command: "A0 B3 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "00 = Thumbnail"
- id: preview_rotation
label: Preview Rotation
kind: action
command: "A0 B4 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "00 = Rotate 0, 01 = 180, 02 = Flip, 03 = Mirror"
- id: delete
label: Delete
kind: action
command: "A0 B6 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "00 = Delete one, 01 = Delete all, 02 = Format"
- id: call_system_status
label: Call System Status
kind: query
command: "A0 B7 00 00 00 AF"
params: []
- id: lamp_on_off
label: Lamp On/Off
kind: action
command: "A0 C1 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "00 = Lamp + Head Led OFF, 01 = Lamp + Head Led ON, 02 = Lamp ON, 03 = Head Led ON"
- id: firmware_upgrade
label: Firmware Upgrade
kind: action
command: "A0 CB {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "00 = with OSD, 01 = no OSD"
- id: set_audio_mic_volume
label: Set Audio Microphone Volume
kind: action
command: "A0 D4 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "volume 0..16 (decimal)"
- id: call_audio_mic_volume
label: Call Audio Microphone Volume
kind: query
command: "A0 D5 00 00 00 AF"
params: []
- id: set_audio_out_volume
label: Set Audio Out Volume
kind: action
command: "A0 D6 {p1} 00 00 AF"
params:
- name: p1
type: integer
description: "volume 0..31 (decimal)"
- id: call_audio_out_volume
label: Call Audio Out Volume
kind: query
command: "A0 D7 00 00 00 AF"
params: []
Feedbacks
# Every command returns a packet echoing the command bytes with byte 5 = status (St).
- id: command_status
type: enum
description: "Return-packet status byte (St) for any command"
values: [ack, nak, ignore]
- id: iris_moving_status
type: boolean
description: "Status byte bit 6: 1 = iris moving, 0 = stopped"
- id: zoom_moving_status
type: boolean
description: "Status byte bit 5: 1 = zoom moving, 0 = stopped"
- id: focus_moving_status
type: boolean
description: "Status byte bit 4: 1 = focus moving, 0 = stopped"
- id: master_version
type: string
description: "Call Master Version (45h) response: P1 P2 P3 ASCII version code"
- id: slave_version
type: string
description: "Call Slave Version (4Dh) response: P1 P2 P3 ASCII version code"
- id: ae_status
type: enum
description: "Call AE Status (46h) response"
values: [off, on]
- id: lamp_status
type: enum
description: "Call Lamp Status (50h) response"
values: [all_off, all_on, lamp_on, head_led_on]
- id: text_photo_status
type: enum
description: "Call Text/Photo Status (51h) response"
values: [photo, text, gray]
- id: ac_power_state
type: enum
description: "Call AC 50/60Hz Power State (58h) response"
values: [50hz, 60hz] # UNRESOLVED: source states the query exists but does not enumerate exact return byte values
- id: zoom_position
type: integer
description: "Call Zoom Position (60h) response: P1 low / P2 high (0..855)"
- id: digital_zoom_position
type: integer
description: "Call Digital Zoom Position (62h) response: P1 low / P2 high"
- id: focus_position
type: integer
description: "Call Focus Position (64h) response: P1 low / P2 high (0..160)"
- id: freeze_status
type: enum
description: "Call Freeze Status (78h) response"
values: [off, on]
- id: brightness_position
type: integer
description: "Call Brightness Position (89h) response: 00..147 (per 60/50Hz)"
- id: mix_zoom_position
type: integer
description: "Call Mix Zoom Position (8Ah) response: P1 low / P2 high (0..855)"
- id: menu_status
type: enum
description: "Call Menu Status (8Bh) response"
values: [off, on]
- id: system_status
type: object
description: "Call System Status (B7h) response: P1 = ready (00 not ready / 01 ready), P2 = power (00 off / 01 on)"
- id: rb_gain
type: integer
description: "Call R/B Gain (A2h) response: P1 low / P2 high (0x100..0xFFF)"
Variables
# Continuous settable parameters (set/call action pairs also exist above).
- id: audio_microphone_volume
type: integer
min: 0
max: 16
description: "Set/Call Audio Microphone Volume (D4h/D5h)"
- id: audio_out_volume
type: integer
min: 0
max: 31
description: "Set/Call Audio Out Volume (D6h/D7h)"
- id: brightness
type: integer
min: 0
max: 147
description: "Brightness value (60/50Hz); see brightness_control action - byte mapping UNRESOLVED"
- id: red_blue_gain
type: integer
min: 256 # 0x100
max: 4095 # 0xFFF
description: "R/B Gain (A1h set / A2h call), per Red or Blue channel"
# UNRESOLVED: no other named continuous variables described beyond the set/call pairs above.
Events
# Unsolicited notifications the device sends.
- id: keypad_detection_message
description: "When Keypad Detect (59h p1=01) is started, the device sends keypad detection/debug messages via RS232."
trigger: "keypad_detect started"
# UNRESOLVED: exact payload format of the detection message not specified in source.
Macros
# No multi-step sequences described explicitly in source.
# UNRESOLVED: none documented.
Safety
confirmation_required_for: []
interlocks: []
# No safety warnings, interlock procedures, or power-on sequencing requirements
# are stated in the source. Source describes only the command/response protocol.
Notes
- All commands use a fixed 6-byte binary packet framed by STX (A0h) and ETX (AFh); byte 5 is sent as 00h and carries the status (St) in the return packet.
- Return status: 0 = ACK (succeed), 1 = NAK (command error / parity / framing / overrun / out-of-range), 2 = IGNORE (busy or unsupported).
- Zoom/Focus/Iris moving status is reported in the status byte bits (see Packet Format).
- Optical zoom maxima differ by output resolution: XGA 805, SXGA 802, WXGA 802, 1080P 795, NTSC 810, PAL 810.
- Zoom Start (No AF) and Zoom Direct (No AF) share command byte 11h but are distinct functions (Tele/Wide enum vs absolute position); likewise Zoom Start/Direct (with AF) share 1Dh.
reg1/reg2/reg3(52h/53h/54h) are raw register read/write commands; only reg1 documents the Read/Write + value convention explicitly.- Command set version history: v1.0 (2013-07-02) first version; v1.1 (2014-01-06) added Set/Call Audio Microphone Volume and revised Audio Out Volume comments — v1.1 applies to firmware DGA106.
Spec done. 69 actions, full payloads verbatim. Serial RS-232 9600/8/N/1. Brightness byte mapping + AC-power/keypad return payloads left UNRESOLVED (source ambiguous).
## Provenance
```yaml
source_domains:
- mylumens.com
source_urls:
- "https://www.mylumens.com/Download/RS-232%20command%20set%202014-0225.pdf"
- "https://www.mylumens.com/Download/RS128%20-%20LC200%20RS-232%20command%20set_1_5.pdf"
- https://www.mylumens.com
- https://www.mylumens.com/Download/DC192-Manual-English-2015-0922.pdf
- https://www.mylumens.com/en/Downloads/4/technical-resources
retrieved_at: 2026-06-15T21:22:33.315Z
last_checked_at: 2026-06-16T07:08:35.093Z
```
## Verification Summary
```yaml
verdict: verified
checked_at: 2026-06-16T07:08:35.093Z
matched_actions: 69
action_count: 69
confidence: medium
summary: "All 69 spec actions match source opcodes one-to-one with correct packet shapes and full transport parameter coverage. (8 unresolved item(s) noted in Known Gaps.)"
```
## Known Gaps
```yaml
- "no voltage/current/power specs in source; no auth procedure described; command-set/firmware version is the only firmware info stated."
- "source byte columns show P1 then 00h; source comment references \"P2=60/50Hz: 00~147\" brightness value whose byte position is ambiguous in the table"
- "brightness value 00..147 (per 60/50Hz); source does not clearly map this to a packet byte\""
- "source states the query exists but does not enumerate exact return byte values"
- "no other named continuous variables described beyond the set/call pairs above."
- "exact payload format of the detection message not specified in source."
- "none documented."
- "voltage/current/power specs not in source; Auto Erase command byte differs between command-packet (14h) and return-packet (13h) tables — used 14h as sent; brightness_control value byte position ambiguous in source; AC power state and keypad-detection exact return payloads not enumerated; flow_control inferred as none."
```
---
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0