Summary
PTZ camera with dual control interfaces: RS-232 serial using a modified VISCA binary protocol, and Telnet (TCP) using a text-based ASCII CLI. The RS-232 port carries VISCA commands only; the Telnet CLI carries a separate set of high-level camera, streaming, and system commands. The VISCA command set is similar but not identical to Sony VISCA and is not compatible with Vaddio Joysticks.
Transport
protocols:
- serial
- tcp
serial:
baud_rate: 9600
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
notes: 38400 bps available via DIP switch; 9600 is default. RS-232 RJ-45 pin 7=RXD, pin 8=TXD, pin 6=GND.
addressing:
port: 23
auth:
type: basic # Telnet requires admin username/password; RS-232 has no auth
notes: Telnet uses same credentials as embedded web server admin account. Default credentials documented in source.
Traits
traits:
- powerable # CAM_Power on/off; system reboot
- queryable # VISCA inquiry commands; telnet get commands
- levelable # zoom/focus position; pan/tilt speed; streaming quality/resolution
Actions
# === RS-232 / VISCA Binary Commands ===
- id: visca_address_set
label: Address Set (Broadcast)
kind: action
transport: serial
command: "88 30 01 FF"
params: []
- id: visca_if_clear
label: Interface Clear
kind: action
transport: serial
command: "88 01 00 01 FF"
params: []
- id: visca_command_cancel
label: Command Cancel
kind: action
transport: serial
command: "8x 2p FF"
params:
- name: socket
type: integer
description: "Socket number (1 or 2)"
- id: visca_cam_power
label: Camera Power
kind: action
transport: serial
command:
on: "8x 01 04 00 02 FF"
off: "8x 01 04 00 03 FF"
params:
- name: state
type: enum
values: [on, off, standby]
description: "off and standby both send the off packet"
- id: visca_cam_zoom
label: Camera Zoom
kind: action
transport: serial
command:
stop: "8x 01 04 07 00 FF"
tele: "8x 01 04 07 02 FF"
wide: "8x 01 04 07 03 FF"
tele_variable: "8x 01 04 07 2p FF"
wide_variable: "8x 01 04 07 3p FF"
direct: "8x 01 04 47 0p 0q 0r 0s FF"
direct_variable: "8x 01 7E 01 4A 0v 0p0q0r 0s FF"
params:
- name: direction
type: enum
values: [stop, tele, wide]
description: "Zoom direction or stop"
- name: speed
type: integer
min: 0
max: 7
required: false
description: "Variable speed (0-7) for tele_variable/wide_variable/direct_variable"
- name: position
type: integer
min: 0
max: 1715
required: false
description: "Direct zoom position (0x000-0x6B3 = 0-1715 decimal)"
- id: visca_cam_focus
label: Camera Focus
kind: action
transport: serial
command:
stop: "8x 01 04 08 00 FF"
far: "8x 01 04 08 02 FF"
near: "8x 01 04 08 03 FF"
far_variable: "8x 01 04 08 2p FF"
near_variable: "8x 01 04 08 3p FF"
auto: "8x 01 04 38 02 FF"
manual: "8x 01 04 38 03 FF"
toggle_auto_manual: "8x 01 04 38 10 FF"
direct: "8x 01 04 48 0p0q0r 0s FF"
params:
- name: direction
type: enum
values: [stop, far, near]
required: false
description: "Focus direction or stop"
- name: speed
type: integer
min: 0
max: 15
required: false
description: "Variable speed for far_variable/near_variable"
- name: mode
type: enum
values: [auto, manual, toggle]
required: false
description: "Focus mode"
- name: position
type: integer
min: 0
max: 49152
required: false
description: "Direct focus position (0x000-0xC000 = 0-49152 decimal). Dependent on zoom position."
- id: visca_cam_backlight
label: Camera Backlight
kind: action
transport: serial
command:
on: "8x 01 04 33 02 FF"
off: "8x 01 04 33 03 FF"
params:
- name: state
type: enum
values: [on, off]
- id: visca_cam_memory
label: Camera Preset Memory
kind: action
transport: serial
command:
reset: "8x 01 04 3F 00 0p FF"
set: "8x 01 04 3F 01 0p FF"
recall: "8x 01 04 3F 02 0p FF"
params:
- name: action
type: enum
values: [reset, set, recall]
description: "Reset clears, Set stores, Recall moves to preset"
- name: preset
type: integer
min: 0
max: 14
description: "Preset number (0x0-0xE = 0-14)"
- id: visca_pan_tilt_drive
label: Pan-Tilt Drive
kind: action
transport: serial
command:
up: "8x 01 06 01 VV WW 03 01 FF"
down: "8x 01 06 01 VV WW 03 02 FF"
left: "8x 01 06 01 VV WW 01 03 FF"
right: "8x 01 06 01 VV WW 02 03 FF"
up_left: "8x 01 06 01 VV WW 01 01 FF"
up_right: "8x 01 06 01 VV WW 02 01 FF"
down_left: "8x 01 06 01 VV WW 01 02 FF"
down_right: "8x 01 06 01 VV WW 02 02 FF"
stop: "8x 01 06 01 VV WW 03 03 FF"
params:
- name: direction
type: enum
values: [up, down, left, right, up_left, up_right, down_left, down_right, stop]
- name: pan_speed
type: integer
min: 1
max: 24
description: "Pan speed (WW, 0x01-0x18)"
- name: tilt_speed
type: integer
min: 1
max: 20
description: "Tilt speed (VV, 0x01-0x14)"
- id: visca_pan_tilt_absolute
label: Pan-Tilt Absolute Position
kind: action
transport: serial
command: "81 01 06 02 VV WW 0Y 0Y 0Y 0Y 0Z 0Z 0Z 0Z FF"
params:
- name: pan_speed
type: integer
min: 1
max: 24
description: "Pan speed (WW, 0x01-0x18)"
- name: tilt_speed
type: integer
min: 1
max: 20
description: "Tilt speed (VV, 0x01-0x14)"
- name: pan_position
type: integer
min: -32700
max: 32700
description: "Pan position (0x8044-0x7FBC = -32700 to +32700)"
- name: tilt_position
type: integer
min: -5999
max: 19499
description: "Tilt position (0xE891-0x4C2B = -5999 to +19499)"
- id: visca_pan_tilt_home
label: Pan-Tilt Home
kind: action
transport: serial
command: "8x 01 06 04 FF"
params: []
- id: visca_pan_tilt_reset
label: Pan-Tilt Reset
kind: action
transport: serial
command: "81 01 06 05 FF"
params: []
- id: visca_tally
label: Tally
kind: action
transport: serial
command:
on: "8x 01 7E 01 0A 00 02 FF"
off: "8x 01 7E 01 0A 00 03 FF"
params:
- name: state
type: enum
values: [on, off]
- id: visca_preset_speed
label: Set Preset Speed
kind: action
transport: serial
command: "81 01 7E 01 0B WW SS ZZ FF"
params:
- name: pan_speed
type: integer
min: 1
max: 24
description: "Pan speed (WW, 0x01-0x18)"
- name: tilt_speed
type: integer
min: 1
max: 20
description: "Tilt speed (SS, 0x01-0x14)"
- name: zoom_speed
type: integer
min: 0
max: 7
description: "Zoom speed (ZZ, 0x00-0x07)"
# === Telnet / TCP ASCII Commands ===
- id: telnet_camera_home
label: Camera Home
kind: action
transport: tcp
command: "camera home"
response: "OK"
params: []
- id: telnet_camera_pan
label: Camera Pan
kind: action
transport: tcp
command: "camera pan {direction} [speed]"
response: "OK"
params:
- name: direction
type: enum
values: [left, right, stop]
- name: speed
type: integer
min: 1
max: 24
required: false
default: 12
description: "Pan speed (default: 12)"
- id: telnet_camera_tilt
label: Camera Tilt
kind: action
transport: tcp
command: "camera tilt {direction} [speed]"
response: "OK"
params:
- name: direction
type: enum
values: [up, down, stop]
- name: speed
type: integer
min: 1
max: 20
required: false
default: 10
description: "Tilt speed (default: 10)"
- id: telnet_camera_zoom
label: Camera Zoom
kind: action
transport: tcp
command: "camera zoom {direction} [speed]"
response: "OK"
params:
- name: direction
type: enum
values: [in, out, stop]
- name: speed
type: integer
min: 1
max: 7
required: false
default: 3
description: "Zoom speed (default: 3)"
- id: telnet_camera_preset
label: Camera Preset
kind: action
transport: tcp
command: "camera preset {action} {preset}"
response: "OK"
params:
- name: action
type: enum
values: [recall, store]
- name: preset
type: integer
min: 1
max: 6
description: "Preset number (1-6)"
- id: telnet_streaming_mode
label: Streaming Mode
kind: action
transport: tcp
command: "streaming mode {mode}"
response: "OK"
params:
- name: mode
type: enum
values: [usb, ethernet]
- id: telnet_streaming_quality
label: Streaming Quality
kind: action
transport: tcp
command: "streaming quality {quality}"
response: "OK"
params:
- name: quality
type: enum
values: [low, standard, high]
- id: telnet_streaming_resolution
label: Streaming Resolution
kind: action
transport: tcp
command: "streaming resolution {resolution}"
response: "OK"
params:
- name: resolution
type: enum
values: ["1080p", "720p", "4cif", "480p", "cif"]
- id: telnet_system_factory_reset
label: System Factory Reset
kind: action
transport: tcp
command: "system factory-reset {state}"
response: "factory-reset (software): {state}"
params:
- name: state
type: enum
values: [on, off]
description: "Enable/disable factory reset on next reboot"
- id: telnet_system_reboot
label: System Reboot
kind: action
transport: tcp
command: "system reboot [seconds]"
response: "Reboots system"
params:
- name: delay_seconds
type: integer
required: false
description: "Seconds to delay before reboot"
- id: telnet_network_ping
label: Network Ping
kind: action
transport: tcp
command: "network ping [count <count>] [size <size>] <destination-ip>"
params:
- name: destination
type: string
description: "Destination IP address"
- name: count
type: integer
required: false
default: 5
description: "Number of ECHO_REQUEST packets (default: 5)"
- name: size
type: integer
required: false
default: 56
description: "ICMP packet data size in bytes (default: 56)"
Feedbacks
# === VISCA Inquiry Commands (serial) ===
- id: visca_power_inquiry
label: Power State Inquiry
transport: serial
command: "8x 09 04 00 FF"
response:
on: "y0 50 02 FF"
off: "y0 50 03 FF"
type: enum
values: [on, off, standby]
- id: visca_zoom_position_inquiry
label: Zoom Position Inquiry
transport: serial
command: "8x 09 04 47 FF"
response: "y0 50 0p0q0r 0s FF"
type: integer
min: 0
max: 1715
description: "Zoom position (0x000-0x6B3)"
- id: visca_focus_position_inquiry
label: Focus Position Inquiry
transport: serial
command: "8x 09 04 48 FF"
response: "y0 50 0p0q0r 0s FF"
type: integer
min: 0
max: 49152
description: "Focus position (0x000-0xC000). Dependent on zoom position."
- id: visca_backlight_inquiry
label: Backlight Mode Inquiry
transport: serial
command: "8x 09 04 33 FF"
response:
on: "y0 50 02 FF"
off: "y0 50 03 FF"
type: enum
values: [on, off]
- id: visca_memory_inquiry
label: Current Preset Inquiry
transport: serial
command: "8x 09 04 3F FF"
response: "y0 50 0p FF"
type: integer
min: 0
max: 15
description: "Current preset number (0x0-0xF)"
- id: visca_pan_tilt_max_speed_inquiry
label: Pan-Tilt Max Speed Inquiry
transport: serial
command: "8x 09 06 11 FF"
response: "y0 50 pp qq FF"
type: object
description: "pp=Pan max speed (0x01-0x18), qq=Tilt max speed (0x01-0x14)"
- id: visca_pan_tilt_position_inquiry
label: Pan-Tilt Position Inquiry
transport: serial
command: "8x 09 06 12 FF"
response: "FF y0 50 0p 0p 0p 0p 0q 0q 0q 0q FF"
type: object
description: "pppp=Pan position (0x8044-0x7FB2), qqqq=Tilt position (0xE890-0x4C2C)"
- id: visca_tally_inquiry
label: Tally State Inquiry
transport: serial
command: "8x 09 7E 01 0A FF"
response:
on: "y0 50 02 FF"
off: "y0 50 03 FF"
type: enum
values: [on, off]
- id: visca_preset_speed_inquiry
label: Preset Speed Inquiry
transport: serial
command: "8x 09 7E 01 0B FF"
response: "y0 50 pp qq rr FF"
type: object
description: "pp=Pan speed (0x01-0x18), qq=Tilt speed (0x01-0x14), rr=Zoom speed (0x00-0x07)"
- id: visca_motor_config_inquiry
label: Motor Config Inquiry
transport: serial
command: "8x 09 7E 01 70 FF"
response:
hard_stops: "y0 50 00 FF"
soft_stops: "y0 50 01 FF"
type: enum
values: [hard_motor_stops, soft_motor_stops]
# === Telnet Get Commands (TCP) ===
- id: telnet_network_settings
label: Network Settings
transport: tcp
command: "network settings get"
response: "MAC Address: xx:xx:xx:xx:xx:xx IP Address: x.x.x.x Netmask: x.x.x.x Gateway: x.x.x.x"
type: object
description: "Returns MAC address, IP address, netmask, and gateway"
- id: telnet_streaming_mode_get
label: Streaming Mode Query
transport: tcp
command: "streaming mode get"
response: "mode: {usb|ethernet}"
type: enum
values: [usb, ethernet]
- id: telnet_streaming_quality_get
label: Streaming Quality Query
transport: tcp
command: "streaming quality get"
response: "quality: {low|standard|high}"
type: enum
values: [low, standard, high]
- id: telnet_streaming_resolution_get
label: Streaming Resolution Query
transport: tcp
command: "streaming resolution get"
response: "resolution: {1080p|720p|4cif|480p|cif}"
type: enum
values: ["1080p", "720p", "4cif", "480p", "cif"]
- id: telnet_factory_reset_status_get
label: Factory Reset Status Query
transport: tcp
command: "system factory-reset get"
response: "factory-reset (software): {on|off}"
type: object
description: "Returns software and hardware factory reset status"
- id: telnet_version_get
label: Software Version Query
transport: tcp
command: "version"
response: "Version string"
type: string
description: "Returns current software version"
Variables
# UNRESOLVED: no continuous settable variables beyond action-params identified in source
Events
# No unsolicited notification events documented in source.
Macros
# No multi-step macro sequences documented in source.
Safety
confirmation_required_for:
- telnet_system_factory_reset
- telnet_system_reboot
interlocks: []
# UNRESOLVED: no explicit safety warnings or interlock procedures in source
Notes
- Device has two independent control protocols on separate interfaces: VISCA binary on RS-232, text CLI on Telnet. The command sets are not interchangeable between interfaces.
- VISCA uses modified Sony VISCA format.
xin command bytes denotes the camera address (1-7).yin response bytes denotes the responder address. - RS-232 baud rate selectable via DIP switch: 9600 (default) or 38400 bps.
- Telnet session echoes all characters with VT100 escape sequence
ESC[J(hex 1B 5B 4A) appended. Most terminal programs strip this automatically. - Telnet commands terminated by carriage return.
CTRL+5clears the current serial buffer on the device during Telnet session.- Default IP address: 169.254.1.1 (fallback when no DHCP server found), subnet 255.255.0.0.
- VISCA preset memory: 16 presets (0-15) via RS-232; 6 presets (1-6) via Telnet.
- VISCA zoom range: 0x000-0x6B3 (0-1715). Focus range: 0x000-0xC000 (0-49152), dependent on zoom position.
- Pan range: -32700 to +32700 (0x8044-0x7FBC). Tilt range: -5999 to +19499 (0xE891-0x4C2B).
- RTSP port configurable via web interface: 554, or 1024-65535. HLS port fixed at 80.
- IP streaming supports RTSP and HLS formats (H.264, CIF through 1080p/30).
- Default streaming quality resolution via DIP rotary switch positions 0-7 (USB 2.0 output).
Provenance
source_domains:
- fullcompass.com
- res.cloudinary.com
- aca.im
source_urls:
- https://www.fullcompass.com/common/files/21194-VaddioClearVIEWHDUSBPTZincl9986990000Manual.pdf
- "https://res.cloudinary.com/iwh/image/upload/q_auto,g_center/assets/1/26/Vaddio_ClearVIEW_HD-20_Manual.pdf"
- "https://aca.im/driver_docs/Vaddio/vaddio%20clearveiw%20hd%20camera.pdf"
retrieved_at: 2026-05-04T12:48:28.924Z
last_checked_at: 2026-06-02T22:15:54.188Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T22:15:54.188Z
matched_actions: 25
action_count: 25
confidence: medium
summary: "All 25 spec actions traced to source (dip-safe re-verify). (11 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "this source covers only the HD-USB model; other ClearVIEW HD models (HD-18, HD-19, HD-20, HD-22) use a different command set"
- "firmware version compatibility not stated"
- "USB 2.0 control protocol mentioned but not documented in this source"
- "no continuous settable variables beyond action-params identified in source"
- "no explicit safety warnings or interlock procedures in source"
- "USB 2.0 control interface mentioned but protocol not documented"
- "web interface control mentioned but API not documented"
- "IR remote commander commands not mapped to protocol equivalents"
- "exact firmware version requirements for IP streaming (Release 2.0.x mentioned)"
- "error recovery / fault behavior sequences not documented"
- "command timing constraints not documented"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0