Summary
OSRD serial control protocol for Philips Electronics G3 AutoDome PTZ cameras. G3 supports standard opcodes 2–8 and, with firmware 5.00 or higher, extended opcodes 9, 10, 12, 15, 16, 18, and 19 over RS-232 or Bosch Biphase.
Transport
protocols:
- serial
serial:
baud_rate: 9600
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
auth:
type: none # inferred: no auth procedure in source
Traits
- queryable # inferred from position, ping, and information queries
- levelable # inferred from PTZ, focus, iris, and camera-level controls
Actions
- id: opcode_2_start_stop_fixed_speed
label: Opcode 2 - Start/Stop Fixed-speed PTZ, Focus, Iris
kind: action
command: "<0x86><Address MSB><Address LSB><0x02><Data Byte 1><Data Byte 2><checksum>"
params:
- name: Address MSB
type: integer
description: Upper 7 bits of 14-bit encoded camera number
- name: Address LSB
type: integer
description: Lower 7 bits of 14-bit encoded camera number
- name: Data Byte 1
type: integer
description: Pan Left, Tilt Up, Zoom Out, Focus Near, and Iris Brighter flags
- name: Data Byte 2
type: integer
description: Pan Right, Tilt Down, Zoom In, Focus Far, and Iris Darker flags
- name: checksum
type: integer
description: Lower 7 bits of sum of all preceding bytes
- id: opcode_3_fixed_speed_durational
label: Opcode 3 - Fixed-speed PTZ for Specified Period
kind: action
command: "<0x86><Address MSB><Address LSB><0x03><Data Byte 1><Data Byte 2><checksum>"
params:
- name: Address MSB
type: integer
description: Upper 7 address bits
- name: Address LSB
type: integer
description: Lower 7 address bits
- name: Data Byte 1
type: integer
description: Six-bit half-second duration and Focus Far flag
- name: Data Byte 2
type: integer
description: Focus Near, Zoom In/Out, Tilt Up/Down, and Pan Left/Right flags
- name: checksum
type: integer
description: Lower 7 bits of sum
- id: opcode_4_repetitive_fixed_speed_ptz
label: Opcode 4 - Repetitive Fixed-speed PTZ
kind: action
command: "<0x86><Address MSB><Address LSB><0x04><Data Byte 1><Data Byte 2><checksum>"
params:
- name: Address MSB
type: integer
description: Upper 7 address bits
- name: Address LSB
type: integer
description: Lower 7 address bits
- name: Data Byte 1
type: integer
description: Fixed bits and Focus Far flag
- name: Data Byte 2
type: integer
description: Focus Near, Zoom In/Out, Tilt Up/Down, and Pan Left/Right flags
- name: checksum
type: integer
description: Lower 7 bits of sum
- id: opcode_5_start_stop_variable_speed_ptz
label: Opcode 5 - Start/Stop Variable-speed PTZ
kind: action
command: "<0x86><Address MSB><Address LSB><0x05><Data Byte 1><Data Byte 2><Data Byte 3><checksum>"
params:
- name: Address MSB
type: integer
description: Upper 7 address bits
- name: Address LSB
type: integer
description: Lower 7 address bits
- name: Data Byte 1
type: integer
description: Zoom speed and tilt speed
- name: Data Byte 2
type: integer
description: Pan speed, iris direction, and Focus Far
- name: Data Byte 3
type: integer
description: Focus Near, Zoom In/Out, Tilt Up/Down, and Pan Left/Right flags
- name: checksum
type: integer
description: Lower 7 bits of sum
- id: opcode_6_repetitive_fixed_speed_zoom_focus_iris
label: Opcode 6 - Repetitive Fixed-speed Zoom, Focus, Iris
kind: action
command: "<0x86><Address MSB><Address LSB><0x06><Data Byte 1><Data Byte 2><checksum>"
params:
- name: Address MSB
type: integer
description: Upper 7 address bits
- name: Address LSB
type: integer
description: Lower 7 address bits
- name: Data Byte 1
type: integer
description: Unused data byte
- name: Data Byte 2
type: integer
description: Iris Brighter/Darker, Focus Far/Near, and Zoom In/Out flags
- name: checksum
type: integer
description: Lower 7 bits of sum
- id: opcode_7_aux_preposition
label: Opcode 7 - Auxiliary ON/OFF and Preposition SET/SHOT
kind: action
command: "<0x86><Address MSB><Address LSB><0x07><Data Byte 1><Data Byte 2><checksum>"
params:
- name: Address MSB
type: integer
description: Upper 7 address bits
- name: Address LSB
type: integer
description: Lower 7 address bits
- name: Data Byte 1
type: integer
description: Data bits 9-7 and four-bit function code
- name: Data Byte 2
type: integer
description: Data bits 6-0 of auxiliary or pre-position number
- name: checksum
type: integer
description: Lower 7 bits of sum
- id: opcode_8_repetitive_variable_speed_ptz
label: Opcode 8 - Repetitive Variable-speed PTZ, Focus, Iris
kind: action
command: "<0x86><Address MSB><Address LSB><0x08><Data Byte 1><Data Byte 2><Data Byte 3><checksum>"
params:
- name: Address MSB
type: integer
description: Upper 7 address bits
- name: Address LSB
type: integer
description: Lower 7 address bits
- name: Data Byte 1
type: integer
description: Zoom speed and tilt speed
- name: Data Byte 2
type: integer
description: Pan speed, iris direction, and Focus Far
- name: Data Byte 3
type: integer
description: Focus Near, Zoom In/Out, Tilt Up/Down, and Pan Left/Right flags
- name: checksum
type: integer
description: Lower 7 bits of sum
- id: opcode_9_fine_speed_ptz
label: Opcode 9 - Fine Speed PTZ
kind: action
command: "<0x86><Address MSB><Address LSB><0x09><Data Byte 1><Data Byte 2><Data Byte 3><Data Byte 4><checksum>"
params:
- name: Address MSB
type: integer
description: Upper 7 address bits
- name: Address LSB
type: integer
description: Lower 7 address bits
- name: Data Byte 1
type: integer
description: Pan speed 0-127, representing 1-128 degrees per second
- name: Data Byte 2
type: integer
description: Tilt speed 0-127, representing 1-128 degrees per second
- name: Data Byte 3
type: integer
description: Zoom speed, iris direction, and Focus Far
- name: Data Byte 4
type: integer
description: Focus Near, Zoom In/Out, Tilt Up/Down, and Pan Left/Right flags
- name: checksum
type: integer
description: Lower 7 bits of sum
- id: opcode_10_position_report_4byte
label: Opcode 10 - Position Report Query
kind: query
command: "<0x84><Address MSB><Address LSB><0x0A><checksum>"
params:
- name: Address MSB
type: integer
description: Upper 7 address bits
- name: Address LSB
type: integer
description: Lower 7 address bits
- name: checksum
type: integer
description: Lower 7 bits of sum
- id: opcode_10_position_command_long
label: Opcode 10 - Position Command
kind: action
command: "<0x8A|0x9C|0x90|0x91><Address MSB><Address LSB><0x0A><Pan Position Data Byte 1><Pan Position Data Byte 2><Pan Position Data Byte 3><Tilt Position Data Byte 1><Tilt Position Data Byte 2><Tilt Position Data Byte 3>[Pan Velocity/Acceleration Data Byte][Tilt Velocity/Acceleration Data Byte][Zoom/Focus/Iris Configuration and LSBs][Zoom Position Data Byte][Focus Position Data Byte][Iris Position Data Byte][Camera Setting Data Byte]<checksum>"
params:
- name: Address MSB
type: integer
description: Upper 7 address bits
- name: Address LSB
type: integer
description: Lower 7 address bits
- name: pan_position
type: integer
description: Absolute pan position 0-127999
- name: tilt_position
type: integer
description: Absolute tilt position 0-31999
- name: pan_velocity
type: integer
description: Optional value 0-7 for packet lengths 12 or greater
- name: pan_acceleration
type: integer
description: Optional value 0-7 for packet lengths 12 or greater
- name: tilt_velocity
type: integer
description: Optional value 0-7 for packet lengths 12 or greater
- name: tilt_acceleration
type: integer
description: Optional value 0-7 for packet lengths 12 or greater
- name: zoom_position
type: integer
description: Optional value 0x04-0xAA or 0xFF to ignore
- name: focus_position
type: integer
description: Optional value 0x08-0xFE or 0xFF to ignore
- name: iris_position
type: integer
description: Optional value 0x31-0xCF or 0xFF to ignore
- name: checksum
type: integer
description: Lower 7 bits of sum
- id: opcode_12_ping_no_data
label: Opcode 12 - Ping Without Data
kind: query
command: "<0x86><Address MSB><Address LSB><0x0C><0x00><Data Requested Data Byte><checksum>"
params:
- name: Address MSB
type: integer
description: Upper 7 address bits
- name: Address LSB
type: integer
description: Lower 7 address bits
- name: Data Requested Data Byte
type: integer
description: Requested-data flags
- name: checksum
type: integer
description: Lower 7 bits of sum
- id: opcode_12_ping_with_data
label: Opcode 12 - Ping With Data
kind: query
command: "<0x86><Address MSB><Address LSB><0x0C><0x01><Data Requested Data Byte><checksum>"
params:
- name: Address MSB
type: integer
description: Upper 7 address bits
- name: Address LSB
type: integer
description: Lower 7 address bits
- name: Data Requested Data Byte
type: integer
description: Camera settings, lens mode, iris, focus, zoom, tilt, and pan query flags
- name: checksum
type: integer
description: Lower 7 bits of sum
- id: opcode_15_info_request
label: Opcode 15 - Information Request
kind: query
command: "<0x87><Address MSB><Address LSB><0x0F><Data Requested Data Byte><AutoDome Data Requested Data Byte><Tracking Components Data Byte><checksum>"
params:
- name: Address MSB
type: integer
description: Upper 7 address bits
- name: Address LSB
type: integer
description: Lower 7 address bits
- name: Data Requested Data Byte
type: integer
description: AutoTrack, AutoDome information, tracking mode, and frequency flags
- name: AutoDome Data Requested Data Byte
type: integer
description: Device type, software version, line lock delay, camera settings, and E-Zoom flags
- name: Tracking Components Data Byte
type: integer
description: Camera, lens, iris, focus, zoom, tilt, and pan query flags
- name: checksum
type: integer
description: Lower 7 bits of sum
- id: opcode_16_title_set
label: Opcode 16 - Title Set
kind: action
command: "<0x8X><Address MSB><Address LSB><0x10><TitleNumber><Char1>…<Char16><checksum>"
params:
- name: Address MSB
type: integer
description: Upper 7 address bits
- name: Address LSB
type: integer
description: Lower 7 address bits
- name: TitleNumber
type: integer
description: 1-99 for shots or 100-116 for zones
- name: Title
type: string
description: Maximum 16 ASCII characters; leading spaces included
- name: checksum
type: integer
description: Lower 7 bits of sum; length is 0x85 plus character count
- id: opcode_18_aux_with_data
label: Opcode 18 - Auxiliary Command With Data
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><Auxiliary Code><Data><checksum>"
params:
- name: Address MSB
type: integer
description: Upper 7 address bits
- name: Address LSB
type: integer
description: Lower 7 address bits
- name: Auxiliary Code
type: integer
description: Auxiliary command code
- name: Data
type: integer
description: Auxiliary-specific pre-encoded or full-range data
- name: checksum
type: integer
description: Lower 7 bits of sum
- id: opcode_19_set_position
label: Opcode 19 - Set Position
kind: action
command: "<0x8B><Address MSB><Address LSB><0x13><Ignore Data><Pan Position Data Byte 1><Pan Position Data Byte 2><Tilt Position Data Byte 1><Tilt Position Data Byte 2><Focal Length Data Byte 1><Focal Length Data Byte 2><checksum>"
params:
- name: Address MSB
type: integer
description: Upper 7 address bits
- name: Address LSB
type: integer
description: Lower 7 address bits
- name: Ignore Data
type: integer
description: Ignore Zoom, Ignore Tilt, and Ignore Pan flags
- name: pan_position
type: integer
description: Pan in radians multiplied by 1000
- name: tilt_position
type: integer
description: Tilt in radians multiplied by 1000
- name: focal_length
type: integer
description: Focal length in millimeters multiplied by 10
- name: checksum
type: integer
description: Lower 7 bits of sum
- id: opcode_19_get_position
label: Opcode 19 - Get Position
kind: query
command: "<0x84><Address MSB><Address LSB><0x13><checksum>"
params:
- name: Address MSB
type: integer
description: Upper 7 address bits
- name: Address LSB
type: integer
description: Lower 7 address bits
- name: checksum
type: integer
description: Lower 7 bits of sum
- id: opcode_18_iris_control
label: Opcode 18 Auxiliary 3 - Iris Control
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><3><Data><checksum>"
params:
- name: Data
type: integer
description: 0=Auto, 1=Manual
- id: opcode_18_focus_control
label: Opcode 18 Auxiliary 4 - Focus Control
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><4><Data><checksum>"
params:
- name: Data
type: integer
description: 0=Spot, 1=Continuous Auto, 2=Continuous Manual
- id: opcode_18_return_on
label: Opcode 18 Auxiliary 9 - Return On
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><9><Data><checksum>"
params:
- name: Data
type: integer
description: 0=Off, 1=Preset 1, 2=Previous Aux
- id: opcode_18_autoiris_level
label: Opcode 18 Auxiliary 11 - AutoIris Level Adjustment
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><11><Data><checksum>"
params:
- name: Data
type: integer
description: Step 1-15
- id: opcode_18_autopan_speed
label: Opcode 18 Auxiliary 14 - AutoPan Speed
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><14><Data><checksum>"
params:
- name: Data
type: integer
description: 1-60 degrees per second
- id: opcode_18_preposition_tour_period
label: Opcode 18 Auxiliary 15 - Pre-position Tour Period
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><15><Data><checksum>"
params:
- name: Data
type: integer
description: Zero-based index into 3, 4, 5, 10, 15, 20, 25, 30, 40, 50, 60, 120, 180, 240, 300, 600 seconds
- id: opcode_18_autopivot
label: Opcode 18 Auxiliary 18 - AutoPivot
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><18><Data><checksum>"
params:
- name: Data
type: integer
description: 0=Off, 1=On
- id: opcode_18_backlight_compensation
label: Opcode 18 Auxiliary 20 - Backlight Compensation
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><20><Data><checksum>"
params:
- name: Data
type: integer
description: 0=Off, 1=On
- id: opcode_18_electronic_shutter
label: Opcode 18 Auxiliary 23 - Electronic Shutter
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><23><Data><checksum>"
params:
- name: Data
type: integer
description: Shutter index 0-21 as defined separately for NTSC and PAL
- id: opcode_18_electronic_stabilization
label: Opcode 18 Auxiliary 24 - Electronic Stabilization
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><24><Data><checksum>"
params:
- name: Data
type: integer
description: 0=Off, 1=On; 25X camera only
- id: opcode_18_white_balance
label: Opcode 18 Auxiliary 30 - White Balance
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><30><Data><checksum>"
params:
- name: Data
type: integer
description: 0=Auto, 1=Indoor, 2=Outdoor, 3=One Push, 4=Extended Auto
- id: opcode_18_line_lock_phase
label: Opcode 18 Auxiliary 41 - Line Lock Phase Adjust
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><41><Data><checksum>"
params:
- name: Data
type: integer
description: 0-359 degrees
- id: opcode_18_sync_mode
label: Opcode 18 Auxiliary 42 - Sync Mode
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><42><Data><checksum>"
params:
- name: Data
type: integer
description: 0=Line Lock, 1=Crystal
- id: opcode_18_agc
label: Opcode 18 Auxiliary 43 - AGC Maximum Gain
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><43><Data><checksum>"
params:
- name: Data
type: integer
description: 1=8 dB, 2=12 dB, 3=16 dB, 4=20 dB, 5=24 dB, 6=28 dB
- id: opcode_18_aperture_correction
label: Opcode 18 Auxiliary 44 - Aperture Correction
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><44><Data><checksum>"
params:
- name: Data
type: integer
description: Step 1-16
- id: opcode_18_night_mode
label: Opcode 18 Auxiliary 56 - Night Mode
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><56><Data><checksum>"
params:
- name: Data
type: integer
description: 0=Off, 1=On, 2=Auto
- id: opcode_18_ire
label: Opcode 18 Auxiliary 58 - IRE
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><58><Data><checksum>"
params:
- name: Data
type: integer
description: Source-defined step 1-10
- id: opcode_18_osd
label: Opcode 18 Auxiliary 60 - On-screen Display
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><60><Data><checksum>"
params:
- name: Data
type: integer
description: 0=Off, 1=On
- id: opcode_18_osd_adjust
label: Opcode 18 Auxiliary 61 - On-screen Display Adjust
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><61><Data><checksum>"
params:
- name: Data
type: integer
description: Bits 7-0 line number; bits 15-8 brightness
- id: opcode_18_alarm_relay_state
label: Opcode 18 Auxiliary 65 - Alarm/Relay State
kind: query
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><65><Data><checksum>"
params:
- name: Data
type: integer
description: Alarm inputs in bits 3-0 and set/get relay output in bit 4
- id: opcode_18_software_version
label: Opcode 18 Auxiliary 66 - Display Software Version
kind: query
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><66><Data><checksum>"
params: []
- id: opcode_18_digital_zoom
label: Opcode 18 Auxiliary 80 - Digital Zoom
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><80><Data><checksum>"
params:
- name: Data
type: integer
description: 0=Disable, 1=Enable
- id: opcode_18_sector_masking
label: Opcode 18 Auxiliary 86 - Sector Masking
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><86><Data><checksum>"
params:
- name: Data
type: integer
description: Bits 15-0 represent sectors 1-16
- id: opcode_18_zoom_polarity
label: Opcode 18 Auxiliary 91 - Zoom Polarity
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><91><Data><checksum>"
params:
- name: Data
type: integer
description: 0=Normal, 1=Reversed
- id: opcode_18_focus_polarity
label: Opcode 18 Auxiliary 92 - Focus Polarity
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><92><Data><checksum>"
params:
- name: Data
type: integer
description: 0=Normal, 1=Reversed
- id: opcode_18_iris_polarity
label: Opcode 18 Auxiliary 93 - Iris Polarity
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><93><Data><checksum>"
params:
- name: Data
type: integer
description: 0=Normal, 1=Reversed
- id: opcode_18_ptz_fixed_speed
label: Opcode 18 Auxiliary 201 - PTZ Fixed-speed Control Speed
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><201><Data><checksum>"
params:
- name: Data
type: integer
description: Step 1-15
- id: opcode_18_focus_speed
label: Opcode 18 Auxiliary 202 - Focus Speed
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><202><Data><checksum>"
params:
- name: Data
type: integer
description: Step 1-8
- id: opcode_18_iris_speed
label: Opcode 18 Auxiliary 203 - Iris Speed
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><203><Data><checksum>"
params:
- name: Data
type: integer
description: Step 1-10
- id: opcode_18_inactivity_period
label: Opcode 18 Auxiliary 204 - Inactivity Period
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><204><Data><checksum>"
params:
- name: Data
type: integer
description: Zero-based index into 3, 4, 5, 10, 15, 20, 25, 30, 40, 50, 60, 120, 180, 240, 300, 600 seconds
- id: opcode_18_max_zoom_speed
label: Opcode 18 Auxiliary 205 - Maximum Zoom Speed
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><205><Data><checksum>"
params:
- name: Data
type: integer
description: 0=Slowest, 1=Medium, 2=Fastest
- id: opcode_18_unique_identifier
label: Opcode 18 Auxiliary 206 - Unique Identifier
kind: query
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><206><Data><checksum>"
params: []
- id: opcode_18_password
label: Opcode 18 Auxiliary 207 - Password
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><207><Data><checksum>"
params:
- name: Data
type: string
description: Password in BCD format; credential value unresolved and must not be inferred
- id: opcode_18_boot_code_revision
label: Opcode 18 Auxiliary 208 - Boot Code Revision
kind: query
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><208><Data><checksum>"
params: []
- id: opcode_18_alarm_setup
label: Opcode 18 Auxiliary 209 - Alarm Setup Information
kind: action
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x12><209><Data><checksum>"
params:
- name: Data
type: integer
description: Alarm type, go-to-shot, OSD, transmit, and tracking bit fields
Feedbacks
- id: opcode_10_position_report
type: object
description: Opcode 0x0A reply containing pan and tilt positions
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x87><0x0A><Pan Position Data Byte 1><Pan Position Data Byte 2><Pan Position Data Byte 3><Tilt Position Data Byte 1><Tilt Position Data Byte 2><Tilt Position Data Byte 3><checksum>"
fields:
- name: pan_position
type: integer
range: 0..127999
- name: tilt_position
type: integer
range: 0..31999
- id: opcode_12_ping_reply_no_data
type: object
description: Ping type 0 communication reply
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x4C><0x00><0x00><0x00><0x00><checksum>"
fields:
- name: ping_type
type: integer
value: 0
- id: opcode_12_ping_reply
type: object
description: Ping type 1 reply carrying requested fields
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x4C><0x01><Data Requested Data Byte><…Requested Data…><checksum>"
fields:
- name: ping_type
type: integer
value: 1
- name: requested_data
type: bytes
description: Requested pan, tilt, zoom, focus, iris, lens mode, or camera settings
- id: opcode_15_info_reply
type: object
description: Requested AutoDome information reply
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x4F><Data Requested Data Byte><Autodome Data Requested Data Byte><0x00><…Requested Data…><checksum>"
fields:
- name: autodome_generation
type: enum
values: [0x02, 0x03]
- name: camera_type
type: enum
values: [0x42, 0x43]
- name: maximum_lens_zoom
type: integer
- name: software_version
type: string
- name: line_lock_delay
type: integer
- name: backlight_compensation
type: boolean
- name: agc
type: boolean
- name: white_balance
type: enum
values: [0x00, 0x01, 0x10, 0x11]
- name: e_zoom
type: integer
- id: opcode_15_automatic_position_reply
type: object
description: Unsolicited automatic tracking-position reply
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x4F><0x40><0x00><Tracking Components Data Byte><…Requested Data…><checksum>"
fields:
- name: pan_position
type: integer
range: 0..127999
- name: tilt_position
type: integer
range: 0..31999
- name: zoom_position
type: integer
range: 0x04..0xAA
- name: focus_position
type: integer
range: 0x08..0xFE
- name: iris_position
type: integer
range: 0x31..0xCF
- name: autofocus
type: boolean
- name: autoiris
type: boolean
- id: opcode_19_get_position_reply
type: object
description: G3 12-byte position reply
command: "<0x8B><Address MSB><Address LSB><0x53><Ignore Data><Pan Position Data Byte 1><Pan Position Data Byte 2><Tilt Position Data Byte 1><Tilt Position Data Byte 2><Focal Length Data Byte 1><Focal Length Data Byte 2><checksum>"
fields:
- name: ignore_data
type: integer
- name: pan_position_rad_x1000
type: integer
- name: tilt_position_rad_x1000
type: integer
- name: focal_length_mm_x10
type: integer
- id: opcode_18_alarm_relay_state_reply
type: object
description: Auxiliary 65 alarm-input and relay-output state
fields:
- name: alarm_input_state
type: integer
- name: relay_output_active
type: boolean
- id: opcode_18_software_version_reply
type: object
description: Auxiliary 66 software version
fields:
- name: major
type: integer
- name: minor
type: integer
- id: opcode_18_unique_identifier_reply
type: string
description: Auxiliary 206 FastAddress unique identifier burned into program flash
- id: opcode_18_boot_code_revision_reply
type: object
description: Auxiliary 208 boot-code revision
fields:
- name: major
type: integer
- name: minor
type: integer
Variables
- id: pan_position
type: integer
range: 0..127999
description: Pan position; 0 is Home and 127999 represents full 360-degree rotation
- id: tilt_position
type: integer
range: 0..31999
description: Tilt position; 0 is Home and 31999 represents 90-degree tilt
- id: zoom_position
type: integer
range: 0x04..0xAA
description: 0xFF means ignore in Opcode 10 position commands
- id: focus_position
type: integer
range: 0x08..0xFE
description: 0xFF means ignore in Opcode 10 position commands
- id: iris_position
type: integer
range: 0x31..0xCF
description: 0xFF means ignore in Opcode 10 position commands
- id: pan_velocity
type: integer
range: 0..7
description: Evenly spaced speeds from 10 to 130 degrees per second
- id: pan_acceleration
type: integer
range: 0..7
description: Evenly spaced acceleration from 10 to 130 degrees per second squared
- id: tilt_velocity
type: integer
range: 0..7
description: Evenly spaced speeds from 10 to 130 degrees per second
- id: tilt_acceleration
type: integer
range: 0..7
description: Evenly spaced acceleration from 10 to 130 degrees per second squared
- id: zoom_speed
type: integer
range: 0..7
description: 0=slowest, 7=fastest
- id: tilt_speed
type: integer
range: 0..15
description: 0=slowest, 15=fastest
- id: pan_speed
type: integer
range: 0..15
description: 0=slowest, 15=fastest
- id: white_balance
type: enum
values: [0x00, 0x01, 0x10, 0x11]
description: 0x00=Automatic, 0x01=Indoor, 0x10=Outdoor, 0x11=One-push
- id: autofocus
type: boolean
- id: autoiris
type: boolean
- id: backlight_compensation
type: boolean
- id: agc
type: boolean
- id: focal_length_mm_x10
type: integer
description: Focal length multiplied by 10
- id: autopan_speed_degrees_per_second
type: integer
range: 1..60
- id: line_lock_phase_degrees
type: integer
range: 0..359
- id: aperture_correction
type: integer
range: 1..16
- id: ptz_fixed_speed
type: integer
range: 1..15
- id: focus_speed
type: integer
range: 1..8
- id: iris_speed
type: integer
range: 1..10
- id: max_zoom_speed
type: enum
values: [0, 1, 2]
description: 0=Slowest, 1=Medium, 2=Fastest
Events
- id: opcode_15_automatic_position
description: Automatic position reply using opcode 0x4F and data-request byte 0x40
command: "<length byte w/Bit7 set><Address MSB><Address LSB><0x4F><0x40><0x00><Tracking Components Data Byte><…Requested Data…><checksum>"
# UNRESOLVED: trigger conditions and cadence for automatic position replies are not fully stated.
Macros
# UNRESOLVED: source calls Opcode 3 a "poor man's preposition" but defines no named multi-step macro.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source gives no safety warning, interlock procedure, or power-on sequence.
Notes
- Extended opcodes 9, 10, 12, 15, 16, 18, and 19 require G3 AutoDome firmware 5.00 or higher.
- Packet starts with length byte whose bit 7 is set. Every other OSRD byte has bit 7 cleared.
- Address is 14-bit encoded camera number minus one. Camera range is 1-16384.
- Checksum is sum of all preceding bytes, including length byte, bitwise AND 0x7F.
- Repetitive opcodes 4, 6, and 8 require transmission at no less than 20 Hz.
- If conflicting movement bits are set, result is undefined, but source says device resolves conflict without damage.
- New command aborts old command still being processed.
- G3 does not support Opcode 7 Aux Toggle, Aux On Latch, Aux Off Latch, or Cancel Latch Aux functions.
- Opcode 19 Set returns no reply.
- Opcode 16 overwrites prior titles and accepts at most 16 ASCII characters.
- Source also documents Opcode 20 BiCom tunneling, but support table limits it to VG4; it is not part of this G3 action set.
- Source gives RS-232 defaults as 9600 baud, 8 data bits, no parity, one stop bit, and no handshake.
- Bosch Biphase is an alternate electrical interface, but no separate AI4AV transport enum or complete configuration is stated.
Provenance
source_domains:
- assets.catalog.boschbuildingtechnologies.com
source_urls:
- https://assets.catalog.boschbuildingtechnologies.com/public/documents/OSRD_Protocol_Operation_Manual_enUS_9007201644423051.pdf
retrieved_at: 2026-07-24T20:00:59.084Z
last_checked_at: 2026-08-05T08:37:36.479Z
Verification Summary
verdict: verified
checked_at: 2026-08-05T08:37:36.479Z
matched_actions: 52
action_count: 52
confidence: medium
summary: "All 52 spec actions map to OSRD opcodes documented in source; Opcode 20 BiCom correctly excluded as VG4-only. (5 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "Opcode 20 BiCom (explicitly excluded from G3 per source §1.1)"
- "source gives default RS-232 parameters for receiver/drivers; applicability of those defaults to every G3 installation should be verified against hardware."
- "trigger conditions and cadence for automatic position replies are not fully stated."
- "source calls Opcode 3 a \"poor man's preposition\" but defines no named multi-step macro."
- "source gives no safety warning, interlock procedure, or power-on sequence."
- "Opcode 18 envelope layout and operation-specific get/set encoding are not shown in the refined source table; auxiliary command templates preserve documented opcode and auxiliary code without inventing missing bytes."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0