Summary

Crestron 1 Beyond IV-CAMA3-20 Series PTZ camera controlled via VISCA protocol over TCP (port 5500) or serial RS-232/RS-485 (9600 bps). Supports power, pan-tilt-zoom, focus, white balance, exposure, and preset management. No authentication required.

Transport

protocols:
  - tcp
  - serial
addressing:
  port: 5500  # TCP default; verify per model
serial:
  baud_rate: 9600  # stated for serial control
  data_bits: 8  # UNRESOLVED: data bits not stated - VISCA default
  parity: none  # UNRESOLVED: parity not stated - VISCA default
  stop_bits: 1  # UNRESOLVED: stop bits not stated - VISCA default
  flow_control: null  # UNRESOLVED: flow control not stated in source
auth:
  type: none  # inferred: no auth procedure in source

Traits

- powerable  # CAM_Power On/Off command present
- routable  # CAM_Memory preset Save/Recall present
- queryable  # inquiry commands returning state present (CAM_PowerInq, CAM_ZoomPosInq, etc.)
- levelable  # zoom, focus, iris, shutter, gain, bright, expcomp all have variable positioning

Actions

- id: power_on
  label: Power On
  kind: action
  params: []
  command: 8x 01 04 00 02 FF

- id: power_off
  label: Power Off
  kind: action
  params: []
  command: 8x 01 04 00 03 FF

- id: zoom_stop
  label: Zoom Stop
  kind: action
  params: []
  command: 8x 01 04 07 00 FF

- id: zoom_tele_standard
  label: Zoom Tele (Standard)
  kind: action
  params: []
  command: 8x 01 04 07 02 FF

- id: zoom_wide_standard
  label: Zoom Wide (Standard)
  kind: action
  params: []
  command: 8x 01 04 07 03 FF

- id: zoom_tele_variable
  label: Zoom Tele (Variable)
  kind: action
  params:
    - name: speed
      type: integer
      description: Speed 0 (Low) to 7 (High)
      range: [0, 7]
  command: 8x 01 04 07 2p FF  # p: speed

- id: zoom_wide_variable
  label: Zoom Wide (Variable)
  kind: action
  params:
    - name: speed
      type: integer
      description: Speed 0 (Low) to 7 (High)
      range: [0, 7]
  command: 8x 01 04 07 3p FF  # p: speed

- id: zoom_direct
  label: Zoom Direct
  kind: action
  params:
    - name: position
      type: integer
      description: Zoom position (0000-4000 hex)
      range: [0, 16384]
  command: 8x 01 04 47 0p 0q 0r 0s FF  # p,q,r,s: zoom position hex

- id: zoom_absolute
  label: Zoom Absolute Position
  kind: action
  params:
    - name: speed
      type: integer
      description: Speed 0-7
      range: [0, 7]
    - name: position
      type: integer
      description: Zoom position (0000-4000 hex)
      range: [0, 16384]
  command: 8x 01 04 47 0t 0p 01 04 0s FF  # t: speed; p,q,r,s: zoom position

- id: focus_stop
  label: Focus Stop
  kind: action
  params: []
  command: 8x 01 04 08 00 FF

- id: focus_far_standard
  label: Focus Far (Standard)
  kind: action
  params: []
  command: 8x 01 04 08 02 FF

- id: focus_near_standard
  label: Focus Near (Standard)
  kind: action
  params: []
  command: 8x 01 04 08 03 FF

- id: focus_far_variable
  label: Focus Far (Variable)
  kind: action
  params:
    - name: speed
      type: integer
      description: Speed 0 (Low) to 7 (High)
      range: [0, 7]
  command: 8x 01 04 08 2p FF  # p: speed

- id: focus_near_variable
  label: Focus Near (Variable)
  kind: action
  params:
    - name: speed
      type: integer
      description: Speed 0 (Low) to 7 (High)
      range: [0, 7]
  command: 8x 01 04 08 3p FF  # p: speed

- id: focus_direct
  label: Focus Direct
  kind: action
  params:
    - name: position
      type: integer
      description: Focus position
      range: [0, 16384]
  command: 8x 01 04 48 0p 0q 0r 0s FF  # p,q,r,s: focus position

- id: focus_auto
  label: Auto Focus On/Off
  kind: action
  params:
    - name: enable
      type: boolean
      description: true = Auto Focus On, false = Manual Focus
  command: 8x 01 04 38 02 FF  # AF on
  # Off: 8x 01 04 38 03 FF

- id: focus_one_push
  label: One Push AF Trigger
  kind: action
  params: []
  command: 8x 01 04 18 01 FF

- id: zoom_focus_direct
  label: Zoom Focus Direct
  kind: action
  params:
    - name: zoom_position
      type: integer
      description: Zoom position
    - name: focus_position
      type: integer
      description: Focus position
  command: 8x 01 04 47 0p 0q 0r 0s 0t 0u 0v 0w FF

- id: wb_auto
  label: White Balance Auto
  kind: action
  params: []
  command: 8x 01 04 35 00 FF

- id: wb_indoor
  label: White Balance Indoor
  kind: action
  params: []
  command: 8x 01 04 35 01 FF

- id: wb_outdoor
  label: White Balance Outdoor
  kind: action
  params: []
  command: 8x 01 04 35 02 FF

- id: wb_one_push
  label: White Balance One Push
  kind: action
  params: []
  command: 8x 01 04 35 03 FF

- id: wb_manual
  label: White Balance Manual
  kind: action
  params: []
  command: 8x 01 04 35 05 FF

- id: wb_one_push_trigger
  label: White Balance One Push Trigger
  kind: action
  params: []
  command: 8x 01 04 10 05 FF

- id: rgain_reset
  label: R Gain Reset
  kind: action
  params: []
  command: 8x 01 04 03 00 FF

- id: rgain_up
  label: R Gain Up
  kind: action
  params: []
  command: 8x 01 04 03 02 FF

- id: rgain_down
  label: R Gain Down
  kind: action
  params: []
  command: 8x 01 04 03 03 FF

- id: rgain_direct
  label: R Gain Direct
  kind: action
  params:
    - name: position
      type: integer
      description: R Gain position
  command: 8x 01 04 43 00 00 0p 0q FF  # p,q: R Gain

- id: bgain_reset
  label: B Gain Reset
  kind: action
  params: []
  command: 8x 01 04 04 00 FF

- id: bgain_up
  label: B Gain Up
  kind: action
  params: []
  command: 8x 01 04 04 02 FF

- id: bgain_down
  label: B Gain Down
  kind: action
  params: []
  command: 8x 01 04 04 03 FF

- id: bgain_direct
  label: B Gain Direct
  kind: action
  params:
    - name: position
      type: integer
      description: B Gain position
  command: 8x 01 04 44 00 00 0p 0q FF  # p,q: B Gain

- id: ae_full_auto
  label: Auto Exposure Full Auto
  kind: action
  params: []
  command: 8x 01 04 39 00 FF

- id: ae_manual
  label: Auto Exposure Manual
  kind: action
  params: []
  command: 8x 01 04 39 03 FF

- id: ae_shutter_priority
  label: Auto Exposure Shutter Priority
  kind: action
  params: []
  command: 8x 01 04 39 0A FF

- id: ae_iris_priority
  label: Auto Exposure Iris Priority
  kind: action
  params: []
  command: 8x 01 04 39 0B FF

- id: ae_bright
  label: Auto Exposure Bright Mode
  kind: action
  params: []
  command: 8x 01 04 39 0D FF

- id: shutter_reset
  label: Shutter Reset
  kind: action
  params: []
  command: 8x 01 04 0A 00 FF

- id: shutter_up
  label: Shutter Up
  kind: action
  params: []
  command: 8x 01 04 0A 02 FF

- id: shutter_down
  label: Shutter Down
  kind: action
  params: []
  command: 8x 01 04 0A 03 FF

- id: shutter_direct
  label: Shutter Direct
  kind: action
  params:
    - name: position
      type: integer
      description: Shutter position
  command: 8x 01 04 4A 00 00 0p 0q FF  # p,q: shutter position

- id: iris_reset
  label: Iris Reset
  kind: action
  params: []
  command: 8x 01 04 0B 00 FF

- id: iris_up
  label: Iris Up
  kind: action
  params: []
  command: 8x 01 04 0B 02 FF

- id: iris_down
  label: Iris Down
  kind: action
  params: []
  command: 8x 01 04 0B 03 FF

- id: iris_direct
  label: Iris Direct
  kind: action
  params:
    - name: position
      type: integer
      description: Iris position
  command: 8x 01 04 4B 00 00 0p 0q FF  # p,q: iris position

- id: gain_reset
  label: Gain Reset
  kind: action
  params: []
  command: 8x 01 04 0C 00 FF

- id: gain_up
  label: Gain Up
  kind: action
  params: []
  command: 8x 01 04 0C 02 FF

- id: gain_down
  label: Gain Down
  kind: action
  params: []
  command: 8x 01 04 0C 03 FF

- id: gain_direct
  label: Gain Direct
  kind: action
  params:
    - name: position
      type: integer
      description: Gain position
  command: 8x 01 04 4C 00 00 0p 0q FF  # p,q: gain position

- id: bright_reset
  label: Bright Reset
  kind: action
  params: []
  command: 8x 01 04 0D 00 FF

- id: bright_up
  label: Bright Up
  kind: action
  params: []
  command: 8x 01 04 0D 02 FF

- id: bright_down
  label: Bright Down
  kind: action
  params: []
  command: 8x 01 04 0D 03 FF

- id: bright_direct
  label: Bright Direct
  kind: action
  params:
    - name: position
      type: integer
      description: Bright position
  command: 8x 01 04 4D 00 00 0p 0q FF  # p,q: bright position

- id: expcomp_on
  label: Exposure Compensation On
  kind: action
  params: []
  command: 8x 01 04 3E 02 FF

- id: expcomp_off
  label: Exposure Compensation Off
  kind: action
  params: []
  command: 8x 01 04 3E 03 FF

- id: expcomp_reset
  label: Exposure Compensation Reset
  kind: action
  params: []
  command: 8x 01 04 0E 00 FF

- id: expcomp_up
  label: Exposure Compensation Up
  kind: action
  params: []
  command: 8x 01 04 0E 02 FF

- id: expcomp_down
  label: Exposure Compensation Down
  kind: action
  params: []
  command: 8x 01 04 0E 03 FF

- id: expcomp_direct
  label: Exposure Compensation Direct
  kind: action
  params:
    - name: position
      type: integer
      description: ExpComp position
  command: 8x 01 04 4E 00 00 0p 0q FF  # p,q: ExpComp position

- id: backlight_on
  label: Back Light Compensation On
  kind: action
  params: []
  command: 8x 01 04 33 02 FF

- id: backlight_off
  label: Back Light Compensation Off
  kind: action
  params: []
  command: 8x 01 04 33 03 FF

- id: preset_save
  label: Save Preset
  kind: action
  params:
    - name: preset
      type: integer
      description: Preset number (0-255)
      range: [0, 255]
  command: 8x 01 04 3F 01 pp FF  # pp: preset number

- id: preset_recall
  label: Recall Preset
  kind: action
  params:
    - name: preset
      type: integer
      description: Preset number (0-255)
      range: [0, 255]
  command: 8x 01 04 3F 02 pp FF  # pp: preset number; yy in source doc

- id: freeze_on
  label: Freeze On
  kind: action
  params: []
  command: 8x 01 04 62 02 FF

- id: freeze_off
  label: Freeze Off
  kind: action
  params: []
  command: 8x 01 04 62 03 FF

- id: freeze_on_preset
  label: Freeze On When Running Preset
  kind: action
  params: []
  command: 8x 01 04 62 22 FF

- id: freeze_off_preset
  label: Freeze Off When Running Preset
  kind: action
  params: []
  command: 8x 01 04 62 23 FF

- id: ir_receive_on
  label: IR Receive On
  kind: action
  params: []
  command: 8x 01 06 08 02 FF

- id: ir_receive_off
  label: IR Receive Off
  kind: action
  params: []
  command: 8x 01 06 08 03 FF

- id: pantilt_up
  label: Pan-Tilt Up
  kind: action
  params:
    - name: pan_speed
      type: integer
      description: Pan speed 0x01 (low) to 0x18 (high)
      range: [1, 24]
    - name: tilt_speed
      type: integer
      description: Tilt speed 0x01 (low) to 0x14 (high)
      range: [1, 20]
  command: 8x 01 06 01 VV WW 03 01 FF

- id: pantilt_down
  label: Pan-Tilt Down
  kind: action
  params:
    - name: pan_speed
      type: integer
      description: Pan speed 0x01 to 0x18
      range: [1, 24]
    - name: tilt_speed
      type: integer
      description: Tilt speed 0x01 to 0x14
      range: [1, 20]
  command: 8x 01 06 01 VV WW 03 02 FF

- id: pantilt_left
  label: Pan-Tilt Left
  kind: action
  params:
    - name: pan_speed
      type: integer
      description: Pan speed 0x01 to 0x18
      range: [1, 24]
    - name: tilt_speed
      type: integer
      description: Tilt speed 0x01 to 0x14
      range: [1, 20]
  command: 8x 01 06 01 VV WW 01 03 FF

- id: pantilt_right
  label: Pan-Tilt Right
  kind: action
  params:
    - name: pan_speed
      type: integer
      description: Pan speed 0x01 to 0x18
      range: [1, 24]
    - name: tilt_speed
      type: integer
      description: Tilt speed 0x01 to 0x14
      range: [1, 20]
  command: 8x 01 06 01 VV WW 02 03 FF

- id: pantilt_up_left
  label: Pan-Tilt Up Left
  kind: action
  params:
    - name: pan_speed
      type: integer
      description: Pan speed 0x01 to 0x18
      range: [1, 24]
    - name: tilt_speed
      type: integer
      description: Tilt speed 0x01 to 0x14
      range: [1, 20]
  command: 8x 01 06 01 VV WW 01 01 FF

- id: pantilt_up_right
  label: Pan-Tilt Up Right
  kind: action
  params:
    - name: pan_speed
      type: integer
      description: Pan speed 0x01 to 0x18
      range: [1, 24]
    - name: tilt_speed
      type: integer
      description: Tilt speed 0x01 to 0x14
      range: [1, 20]
  command: 8x 01 06 01 VV WW 02 01 FF

- id: pantilt_down_left
  label: Pan-Tilt Down Left
  kind: action
  params:
    - name: pan_speed
      type: integer
      description: Pan speed 0x01 to 0x18
      range: [1, 24]
    - name: tilt_speed
      type: integer
      description: Tilt speed 0x01 to 0x14
      range: [1, 20]
  command: 8x 01 06 01 VV WW 01 02 FF

- id: pantilt_down_right
  label: Pan-Tilt Down Right
  kind: action
  params:
    - name: pan_speed
      type: integer
      description: Pan speed 0x01 to 0x18
      range: [1, 24]
    - name: tilt_speed
      type: integer
      description: Tilt speed 0x01 to 0x14
      range: [1, 20]
  command: 8x 01 06 01 VV WW 02 02 FF

- id: pantilt_stop
  label: Pan-Tilt Stop
  kind: action
  params:
    - name: pan_speed
      type: integer
      description: Pan speed 0x01 to 0x18
      range: [1, 24]
    - name: tilt_speed
      type: integer
      description: Tilt speed 0x01 to 0x14
      range: [1, 20]
  command: 8x 01 06 01 VV WW 03 03 FF

- id: pantilt_absolute
  label: Pan-Tilt Absolute Position
  kind: action
  params:
    - name: pan_speed
      type: integer
      description: Pan speed
    - name: tilt_speed
      type: integer
      description: Tilt speed
    - name: pan_position
      type: integer
      description: Pan position (0-0xFFFF)
    - name: tilt_position
      type: integer
      description: Tilt position (0-0xFFFF)
  command: 8x 01 06 02 VV WW 0Y 0Y 0Y 0Y 0Z 0Z 0Z 0Z FF

- id: pantilt_relative
  label: Pan-Tilt Relative Position
  kind: action
  params:
    - name: pan_speed
      type: integer
      description: Pan speed
    - name: tilt_speed
      type: integer
      description: Tilt speed
    - name: pan_position
      type: integer
      description: Pan position delta
    - name: tilt_position
      type: integer
      description: Tilt position delta
  command: 8x 01 06 03 VV WW 0Y 0Y 0Y 0Y 0Z 0Z 0Z 0Z FF

- id: pantilt_home
  label: Pan-Tilt Home
  kind: action
  params: []
  command: 8x 01 06 04 FF

- id: pantilt_reset
  label: Pan-Tilt Reset
  kind: action
  params: []
  command: 8x 01 06 05 FF

- id: pantilt_limit_set
  label: Pan-Tilt Limit Set
  kind: action
  params:
    - name: limit_type
      type: integer
      description: "1 = Up Right limit, 0 = Down Left limit"
      range: [0, 1]
    - name: pan_limit
      type: integer
      description: Pan limit position
    - name: tilt_limit
      type: integer
      description: Tilt limit position
  command: 8x 01 06 07 00 0W 0Y 0Y 0Y 0Y 0Z 0Z 0Z 0Z FF

Feedbacks

- id: ack
  type: string
  values:
    - "z0 4y FF"
  description: ACK returned when command is accepted. y = Socket No.

- id: completion
  type: string
  values:
    - "z0 5y FF"
  description: Completion returned when command has been executed. y = Socket No.

- id: syntax_error
  type: string
  values:
    - "z0 60 02 FF"
  description: Returned when command format is illegal or parameters invalid.

- id: command_buffer_full
  type: string
  values:
    - "z0 60 03 FF"
  description: Returned when two sockets are already executing commands.

- id: command_canceled
  type: string
  values:
    - "z0 6y 04 FF"
  description: Returned when command in specified socket is canceled.

- id: no_socket
  type: string
  values:
    - "z0 6y 05 FF"
  description: Returned when no command in specified socket, or invalid socket number.

- id: command_not_executable
  type: string
  values:
    - "z0 6y 41 FF"
  description: Returned when command cannot be executed due to current conditions.

- id: power_state
  type: enum
  values:
    - on
    - off
    - internal_power_error  # y0 50 04 FF
  description: Power state query response. Inquiry CAM_PowerInq.

- id: zoom_position
  type: integer
  description: Zoom position (0-16384). Inquiry CAM_ZoomPosInq.

- id: focus_mode
  type: enum
  values:
    - auto_focus
    - manual_focus
  description: Focus mode query. Inquiry CAM_FocusModeInq.

- id: focus_position
  type: integer
  description: Focus position (0-16384). Inquiry CAM_FocusPosInq.

- id: wb_mode
  type: enum
  values:
    - auto
    - indoor
    - outdoor
    - one_push_wb
    - manual
  description: White balance mode query. Inquiry CAM_WBModeInq.

- id: rgain_position
  type: integer
  description: R Gain position. Inquiry CAM_RGainInq.

- id: bgain_position
  type: integer
  description: B Gain position. Inquiry CAM_BGainInq.

- id: ae_mode
  type: enum
  values:
    - full_auto
    - manual
    - shutter_priority
    - iris_priority
    - bright
  description: Auto exposure mode query. Inquiry CAM_AEModeInq.

- id: shutter_position
  type: integer
  description: Shutter position. Inquiry CAM_ShutterPosInq.

- id: iris_position
  type: integer
  description: Iris position. Inquiry CAM_IrisPosInq.

- id: gain_position
  type: integer
  description: Gain position. Inquiry CAM_GainPosInq.

- id: bright_position
  type: integer
  description: Bright position. Inquiry CAM_BrightPosInq.

- id: expcomp_mode
  type: enum
  values:
    - on
    - off
  description: Exposure compensation mode. Inquiry CAM_ExpCompModeInq.

- id: expcomp_position
  type: integer
  description: Exposure compensation position. Inquiry CAM_ExpCompPosInq.

- id: backlight_mode
  type: enum
  values:
    - on
    - off
  description: Back light compensation mode. Inquiry CAM_BacklightModeInq.

- id: memory_preset
  type: integer
  description: Last operated memory number (0-255). Inquiry CAM_MemoryInq.

- id: ir_receive
  type: enum
  values:
    - on
    - off
  description: IR receiver state. Inquiry IR_Receive.

- id: pantilt_max_speed
  type: object
  description: Pan and tilt maximum speeds. Inquiry Pan-tiltMaxSpeedI.
  properties:
    pan_max_speed: integer
    tilt_max_speed: integer

- id: pantilt_position
  type: object
  description: Pan and tilt current positions. Inquiry Pan-tiltPosInq.
  properties:
    pan_position: integer
    tilt_position: integer

- id: pantilt_mode
  type: object
  description: Pan/tilt status. Inquiry Pan-tiltModeInq.

- id: video_system
  type: enum
  values:
    - "1920x1080i/60"
    - "1920x1080p/30"
    - "1280x720p/60"
    - "1280x720p/30"
    - "1920x1080p/60"
    - "1920x1080i/50"
    - "1920x1080p/25"
    - "1280x720p/50"
    - "1280x720p/25"
    - "1920x1080p/50"
  description: Video system. Inquiry VideoSystemInq.

- id: camera_tracking
  type: enum
  values:
    - active
    - paused
  description: Camera tracking state. Inquiry CAM_TrackingInq.

- id: camera_version
  type: object
  description: Model code and ROM version. Inquiry CAM_VersionInq.
  properties:
    model_code: string
    rom_version: string

Variables

# UNRESOLVED: Variables are settable parameters not covered by discrete actions.
# The source documents all controllable parameters as VISCA command packets.
# No separate Variables section needed - all parameters are covered in Actions.

Events

# UNRESOLVED: no unsolicited event notifications described in source.
# VISCA does not define autonomous device-initiated messages - all
# responses are replies to commands or inquiry commands.

Macros

# UNRESOLVED: no multi-step macro sequences described in source.

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings, interlock procedures, or power-on sequencing
# requirements stated in source.

Notes

VISCA protocol uses device address byte x (socket address) in command packets. Socket number y in response packets equals device address + 8. z in error/ACK/completion messages equals device address + 8.

Zoom position table: 12x zoom range 0000–4000 hex (1x–12x optical). 20x zoom range 0000–4000 hex (1x–20x optical). Both maps use the same hex range; actual optical ratio depends on lens model.

Exposure compensation position range: 0E+7 (0000) to 00-7 (4000), centered at 07 (3549).

Pan speed range: 0x01 (low) to 0x18 (high, 24). Tilt speed range: 0x01 (low) to 0x14 (high, 20).

Provenance

source_domains:
  - docs.crestron.com
source_urls:
  - https://docs.crestron.com/en-us/9440/Content/Topics/NextGenCameras/Configuration/VISCA-Commands.htm
retrieved_at: 2026-04-30T04:31:08.610Z
last_checked_at: 2026-06-02T22:05:37.277Z

Verification Summary

verdict: verified
checked_at: 2026-06-02T22:05:37.277Z
matched_actions: 83
action_count: 83
confidence: medium
summary: "All 83 spec actions traced to source (dip-safe re-verify). (15 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "mount mode restriction — CAM_MountMode applies only to IV-CAM-P12 and IV-CAM-P20 models, not confirmed for IV-CAMA3-20 Series"
- "data bits not stated - VISCA default"
- "parity not stated - VISCA default"
- "stop bits not stated - VISCA default"
- "flow control not stated in source"
- "Variables are settable parameters not covered by discrete actions."
- "no unsolicited event notifications described in source."
- "no multi-step macro sequences described in source."
- "no safety warnings, interlock procedures, or power-on sequencing"
- "CAM_MountMode commands (Stand/Ceiling) are documented for IV-CAM-P12 and IV-CAM-P20 only — applicability to IV-CAMA3-20 Series not confirmed"
- "data_bits, parity, stop_bits for serial — VISCA default 8/N/1 inferred but not stated"
- "flow_control settings for serial not stated"
- "TCP connection persistence / keepalive behavior not documented"
- "command timing and retry behavior not documented"
- "firmware version compatibility not stated"

From the AI4AV catalog (https://ai4av.net) · ODbL-1.0