Summary

The Crestron 1 Beyond IV-CAM-I Series is a PTZ camera controllable via the VISCA binary protocol over TCP/IP (port 5500) or serial (RS‑232 / RS‑485, 9600 baud). This spec covers pan/tilt/zoom, focus, white balance, exposure, presets, freeze, and inquiry commands documented in the vendor VISCA command reference.

Transport

protocols:
  - tcp
  - serial
addressing:
  port: 5500
serial:
  baud_rate: 9600
  # UNRESOLVED: data_bits not stated in source
  # UNRESOLVED: parity not stated in source
  # UNRESOLVED: stop_bits not stated in source
  # UNRESOLVED: flow_control not stated in source
auth:
  type: none  # inferred: no auth procedure in source

Traits

traits:
  - powerable    # power on/off commands present
  - queryable    # extensive inquiry command set
  - levelable    # zoom, focus, gain, iris, shutter, bright have variable/direct control

Actions

actions:
  - id: power_on
    label: Power On
    kind: action
    command: "8x 01 04 00 02 FF"
    params:
      - name: camera_address
        type: integer
        description: "VISCA camera address (replaces x in command bytes)"
    notes: "x = camera address"

  - id: power_off
    label: Power Off
    kind: action
    command: "8x 01 04 00 03 FF"
    params:
      - name: camera_address
        type: integer
        description: "VISCA camera address (replaces x in command bytes)"

  - id: zoom_stop
    label: Zoom Stop
    kind: action
    command: "8x 01 04 07 00 FF"
    params:
      - name: camera_address
        type: integer

  - id: zoom_tele_standard
    label: Zoom Tele (Standard)
    kind: action
    command: "8x 01 04 07 02 FF"
    params:
      - name: camera_address
        type: integer

  - id: zoom_wide_standard
    label: Zoom Wide (Standard)
    kind: action
    command: "8x 01 04 07 03 FF"
    params:
      - name: camera_address
        type: integer

  - id: zoom_tele_variable
    label: Zoom Tele (Variable)
    kind: action
    command: "8x 01 04 07 2p FF"
    params:
      - name: camera_address
        type: integer
      - name: speed
        type: integer
        description: "Speed 0 (low) to 7 (high), replaces p in command bytes"

  - id: zoom_wide_variable
    label: Zoom Wide (Variable)
    kind: action
    command: "8x 01 04 07 3p FF"
    params:
      - name: camera_address
        type: integer
      - name: speed
        type: integer
        description: "Speed 0 (low) to 7 (high), replaces p in command bytes"

  - id: zoom_direct
    label: Zoom Direct
    kind: action
    command: "8x 01 04 47 0p 0q 0r 0s FF"
    params:
      - name: camera_address
        type: integer
      - name: position
        type: string
        description: "Zoom position as 4 hex nibbles (p,q,r,s)"

  - id: zoom_absolute
    label: Zoom Absolute Position
    kind: action
    command: "8x 01 04 47 0t 0p 01 04 0s FF"
    params:
      - name: camera_address
        type: integer
      - name: speed
        type: integer
        description: "Speed 0-7, replaces t"
      - name: position
        type: string
        description: "Zoom position as hex nibbles (p,q,r,s)"

  - id: focus_stop
    label: Focus Stop
    kind: action
    command: "8x 01 04 08 00 FF"
    params:
      - name: camera_address
        type: integer

  - id: focus_far_standard
    label: Focus Far (Standard)
    kind: action
    command: "8x 01 04 08 02 FF"
    params:
      - name: camera_address
        type: integer

  - id: focus_near_standard
    label: Focus Near (Standard)
    kind: action
    command: "8x 01 04 08 03 FF"
    params:
      - name: camera_address
        type: integer

  - id: focus_far_variable
    label: Focus Far (Variable)
    kind: action
    command: "8x 01 04 08 2p FF"
    params:
      - name: camera_address
        type: integer
      - name: speed
        type: integer
        description: "Speed 0 (low) to 7 (high), replaces p"

  - id: focus_near_variable
    label: Focus Near (Variable)
    kind: action
    command: "8x 01 04 08 3p FF"
    params:
      - name: camera_address
        type: integer
      - name: speed
        type: integer
        description: "Speed 0 (low) to 7 (high), replaces p"

  - id: focus_direct
    label: Focus Direct
    kind: action
    command: "8x 01 04 48 0p 0q 0r 0s FF"
    params:
      - name: camera_address
        type: integer
      - name: position
        type: string
        description: "Focus position as 4 hex nibbles (p,q,r,s)"

  - id: auto_focus_on
    label: Auto Focus On
    kind: action
    command: "8x 01 04 38 02 FF"
    params:
      - name: camera_address
        type: integer

  - id: manual_focus
    label: Manual Focus
    kind: action
    command: "8x 01 04 38 03 FF"
    params:
      - name: camera_address
        type: integer

  - id: focus_auto_manual_toggle
    label: Auto/Manual Focus Toggle
    kind: action
    command: "8x 01 04 38 10 FF"
    params:
      - name: camera_address
        type: integer

  - id: one_push_af_trigger
    label: One Push AF Trigger
    kind: action
    command: "8x 01 04 18 01 FF"
    params:
      - name: camera_address
        type: integer

  - id: zoom_focus_direct
    label: Zoom + Focus Direct
    kind: action
    command: "8x 01 04 47 0p 0q 0r 0s 0t 0u 0v 0w FF"
    params:
      - name: camera_address
        type: integer
      - name: zoom_position
        type: string
        description: "Zoom position as 4 hex nibbles (p,q,r,s)"
      - name: focus_position
        type: string
        description: "Focus position as 4 hex nibbles (t,u,v,w)"

  - id: wb_auto
    label: White Balance Auto
    kind: action
    command: "8x 01 04 35 00 FF"
    params:
      - name: camera_address
        type: integer

  - id: wb_indoor
    label: White Balance Indoor
    kind: action
    command: "8x 01 04 35 01 FF"
    params:
      - name: camera_address
        type: integer

  - id: wb_outdoor
    label: White Balance Outdoor
    kind: action
    command: "8x 01 04 35 02 FF"
    params:
      - name: camera_address
        type: integer

  - id: wb_one_push
    label: White Balance One Push Mode
    kind: action
    command: "8x 01 04 35 03 FF"
    params:
      - name: camera_address
        type: integer

  - id: wb_manual
    label: White Balance Manual
    kind: action
    command: "8x 01 04 35 05 FF"
    params:
      - name: camera_address
        type: integer

  - id: wb_one_push_trigger
    label: White Balance One Push Trigger
    kind: action
    command: "8x 01 04 10 05 FF"
    params:
      - name: camera_address
        type: integer

  - id: r_gain_reset
    label: R Gain Reset
    kind: action
    command: "8x 01 04 03 00 FF"
    params:
      - name: camera_address
        type: integer

  - id: r_gain_up
    label: R Gain Up
    kind: action
    command: "8x 01 04 03 02 FF"
    params:
      - name: camera_address
        type: integer

  - id: r_gain_down
    label: R Gain Down
    kind: action
    command: "8x 01 04 03 03 FF"
    params:
      - name: camera_address
        type: integer

  - id: r_gain_direct
    label: R Gain Direct
    kind: action
    command: "8x 01 04 43 00 00 0p 0q FF"
    params:
      - name: camera_address
        type: integer
      - name: gain
        type: string
        description: "R gain as 2 hex nibbles (p,q)"

  - id: b_gain_reset
    label: B Gain Reset
    kind: action
    command: "8x 01 04 04 00 FF"
    params:
      - name: camera_address
        type: integer

  - id: b_gain_up
    label: B Gain Up
    kind: action
    command: "8x 01 04 04 02 FF"
    params:
      - name: camera_address
        type: integer

  - id: b_gain_down
    label: B Gain Down
    kind: action
    command: "8x 01 04 04 03 FF"
    params:
      - name: camera_address
        type: integer

  - id: b_gain_direct
    label: B Gain Direct
    kind: action
    command: "8x 01 04 44 00 00 0p 0q FF"
    params:
      - name: camera_address
        type: integer
      - name: gain
        type: string
        description: "B gain as 2 hex nibbles (p,q)"

  - id: ae_full_auto
    label: AE Full Auto
    kind: action
    command: "8x 01 04 39 00 FF"
    params:
      - name: camera_address
        type: integer

  - id: ae_manual
    label: AE Manual
    kind: action
    command: "8x 01 04 39 03 FF"
    params:
      - name: camera_address
        type: integer

  - id: ae_shutter_priority
    label: AE Shutter Priority
    kind: action
    command: "8x 01 04 39 0A FF"
    params:
      - name: camera_address
        type: integer

  - id: ae_iris_priority
    label: AE Iris Priority
    kind: action
    command: "8x 01 04 39 0B FF"
    params:
      - name: camera_address
        type: integer

  - id: ae_bright
    label: AE Bright Mode
    kind: action
    command: "8x 01 04 39 0D FF"
    params:
      - name: camera_address
        type: integer

  - id: shutter_reset
    label: Shutter Reset
    kind: action
    command: "8x 01 04 0A 00 FF"
    params:
      - name: camera_address
        type: integer

  - id: shutter_up
    label: Shutter Up
    kind: action
    command: "8x 01 04 0A 02 FF"
    params:
      - name: camera_address
        type: integer

  - id: shutter_down
    label: Shutter Down
    kind: action
    command: "8x 01 04 0A 03 FF"
    params:
      - name: camera_address
        type: integer

  - id: shutter_direct
    label: Shutter Direct
    kind: action
    command: "8x 01 04 4A 00 00 0p 0q FF"
    params:
      - name: camera_address
        type: integer
      - name: position
        type: string
        description: "Shutter position as 2 hex nibbles (p,q)"

  - id: iris_reset
    label: Iris Reset
    kind: action
    command: "8x 01 04 0B 00 FF"
    params:
      - name: camera_address
        type: integer

  - id: iris_up
    label: Iris Up
    kind: action
    command: "8x 01 04 0B 02 FF"
    params:
      - name: camera_address
        type: integer

  - id: iris_down
    label: Iris Down
    kind: action
    command: "8x 01 04 0B 03 FF"
    params:
      - name: camera_address
        type: integer

  - id: iris_direct
    label: Iris Direct
    kind: action
    command: "8x 01 04 4B 00 00 0p 0q FF"
    params:
      - name: camera_address
        type: integer
      - name: position
        type: string
        description: "Iris position as 2 hex nibbles (p,q)"

  - id: gain_reset
    label: Gain Reset
    kind: action
    command: "8x 01 04 0C 00 FF"
    params:
      - name: camera_address
        type: integer

  - id: gain_up
    label: Gain Up
    kind: action
    command: "8x 01 04 0C 02 FF"
    params:
      - name: camera_address
        type: integer

  - id: gain_down
    label: Gain Down
    kind: action
    command: "8x 01 04 0C 03 FF"
    params:
      - name: camera_address
        type: integer

  - id: gain_direct
    label: Gain Direct
    kind: action
    command: "8x 01 04 4C 00 00 0p 0q FF"
    params:
      - name: camera_address
        type: integer
      - name: position
        type: string
        description: "Gain position as 2 hex nibbles (p,q)"

  - id: bright_reset
    label: Bright Reset
    kind: action
    command: "8x 01 04 0D 00 FF"
    params:
      - name: camera_address
        type: integer

  - id: bright_up
    label: Bright Up
    kind: action
    command: "8x 01 04 0D 02 FF"
    params:
      - name: camera_address
        type: integer

  - id: bright_down
    label: Bright Down
    kind: action
    command: "8x 01 04 0D 03 FF"
    params:
      - name: camera_address
        type: integer

  - id: bright_direct
    label: Bright Direct
    kind: action
    command: "8x 01 04 4D 00 00 0p 0q FF"
    params:
      - name: camera_address
        type: integer
      - name: position
        type: string
        description: "Bright position as 2 hex nibbles (p,q)"

  - id: exp_comp_on
    label: Exposure Compensation On
    kind: action
    command: "8x 01 04 3E 02 FF"
    params:
      - name: camera_address
        type: integer

  - id: exp_comp_off
    label: Exposure Compensation Off
    kind: action
    command: "8x 01 04 3E 03 FF"
    params:
      - name: camera_address
        type: integer

  - id: exp_comp_reset
    label: Exposure Compensation Reset
    kind: action
    command: "8x 01 04 0E 00 FF"
    params:
      - name: camera_address
        type: integer

  - id: exp_comp_up
    label: Exposure Compensation Up
    kind: action
    command: "8x 01 04 0E 02 FF"
    params:
      - name: camera_address
        type: integer

  - id: exp_comp_down
    label: Exposure Compensation Down
    kind: action
    command: "8x 01 04 0E 03 FF"
    params:
      - name: camera_address
        type: integer

  - id: exp_comp_direct
    label: Exposure Compensation Direct
    kind: action
    command: "8x 01 04 4E 00 00 0p 0q FF"
    params:
      - name: camera_address
        type: integer
      - name: position
        type: string
        description: "ExpComp position as 2 hex nibbles (p,q)"

  - id: backlight_on
    label: Backlight Compensation On
    kind: action
    command: "8x 01 04 33 02 FF"
    params:
      - name: camera_address
        type: integer

  - id: backlight_off
    label: Backlight Compensation Off
    kind: action
    command: "8x 01 04 33 03 FF"
    params:
      - name: camera_address
        type: integer

  - id: memory_reset
    label: Memory Reset
    kind: action
    command: "8x 01 04 3F 00 pp FF"
    params:
      - name: camera_address
        type: integer
      - name: memory_number
        type: integer
        description: "Memory number 0-255, replaces pp as hex"

  - id: memory_set
    label: Memory Set (Save Preset)
    kind: action
    command: "8x 01 04 3F 01 pp FF"
    params:
      - name: camera_address
        type: integer
      - name: memory_number
        type: integer
        description: "Memory number 0-255, replaces pp as hex"

  - id: memory_recall
    label: Memory Recall (Call Preset)
    kind: action
    command: "8x 01 04 3F 02 pp FF"
    params:
      - name: camera_address
        type: integer
      - name: memory_number
        type: integer
        description: "Memory number 0-255, replaces pp as hex"

  - id: freeze_on
    label: Freeze On
    kind: action
    command: "8x 01 04 62 02 FF"
    params:
      - name: camera_address
        type: integer

  - id: freeze_off
    label: Freeze Off
    kind: action
    command: "8x 01 04 62 03 FF"
    params:
      - name: camera_address
        type: integer

  - id: preset_freeze_on
    label: Preset Freeze On
    kind: action
    command: "8x 01 04 62 22 FF"
    params:
      - name: camera_address
        type: integer
    notes: "Freeze on when running preset"

  - id: preset_freeze_off
    label: Preset Freeze Off
    kind: action
    command: "8x 01 04 62 23 FF"
    params:
      - name: camera_address
        type: integer
    notes: "Freeze off when running preset"

  - id: ir_receive_on
    label: IR Receive On
    kind: action
    command: "8x 01 06 08 02 FF"
    params:
      - name: camera_address
        type: integer

  - id: ir_receive_off
    label: IR Receive Off
    kind: action
    command: "8x 01 06 08 03 FF"
    params:
      - name: camera_address
        type: integer

  - id: pantilt_up
    label: Pan-Tilt Up
    kind: action
    command: "8x 01 06 01 VV WW 03 01 FF"
    params:
      - name: camera_address
        type: integer
      - name: pan_speed
        type: string
        description: "Pan speed 0x01 (low) to 0x18 (high), replaces VV"
      - name: tilt_speed
        type: string
        description: "Tilt speed 0x01 (low) to 0x14 (high), replaces WW"

  - id: pantilt_down
    label: Pan-Tilt Down
    kind: action
    command: "8x 01 06 01 VV WW 03 02 FF"
    params:
      - name: camera_address
        type: integer
      - name: pan_speed
        type: string
      - name: tilt_speed
        type: string

  - id: pantilt_left
    label: Pan-Tilt Left
    kind: action
    command: "8x 01 06 01 VV WW 01 03 FF"
    params:
      - name: camera_address
        type: integer
      - name: pan_speed
        type: string
      - name: tilt_speed
        type: string

  - id: pantilt_right
    label: Pan-Tilt Right
    kind: action
    command: "8x 01 06 01 VV WW 02 03 FF"
    params:
      - name: camera_address
        type: integer
      - name: pan_speed
        type: string
      - name: tilt_speed
        type: string

  - id: pantilt_up_left
    label: Pan-Tilt Up Left
    kind: action
    command: "8x 01 06 01 VV WW 01 01 FF"
    params:
      - name: camera_address
        type: integer
      - name: pan_speed
        type: string
      - name: tilt_speed
        type: string

  - id: pantilt_up_right
    label: Pan-Tilt Up Right
    kind: action
    command: "8x 01 06 01 VV WW 02 01 FF"
    params:
      - name: camera_address
        type: integer
      - name: pan_speed
        type: string
      - name: tilt_speed
        type: string

  - id: pantilt_down_left
    label: Pan-Tilt Down Left
    kind: action
    command: "8x 01 06 01 VV WW 01 02 FF"
    params:
      - name: camera_address
        type: integer
      - name: pan_speed
        type: string
      - name: tilt_speed
        type: string

  - id: pantilt_down_right
    label: Pan-Tilt Down Right
    kind: action
    command: "8x 01 06 01 VV WW 02 02 FF"
    params:
      - name: camera_address
        type: integer
      - name: pan_speed
        type: string
      - name: tilt_speed
        type: string

  - id: pantilt_stop
    label: Pan-Tilt Stop
    kind: action
    command: "8x 01 06 01 VV WW 03 03 FF"
    params:
      - name: camera_address
        type: integer
      - name: pan_speed
        type: string
      - name: tilt_speed
        type: string

  - id: pantilt_absolute_position
    label: Pan-Tilt Absolute Position
    kind: action
    command: "8x 01 06 02 VV WW 0Y 0Y 0Y 0Y 0Z 0Z 0Z 0Z FF"
    params:
      - name: camera_address
        type: integer
      - name: pan_speed
        type: string
        description: "Replaces VV"
      - name: tilt_speed
        type: string
        description: "Replaces WW"
      - name: pan_position
        type: string
        description: "Pan position as 4 hex nibbles (YYYY)"
      - name: tilt_position
        type: string
        description: "Tilt position as 4 hex nibbles (ZZZZ)"

  - id: pantilt_relative_position
    label: Pan-Tilt Relative Position
    kind: action
    command: "8x 01 06 03 VV WW 0Y 0Y 0Y 0Y 0Z 0Z 0Z 0Z FF"
    params:
      - name: camera_address
        type: integer
      - name: pan_speed
        type: string
      - name: tilt_speed
        type: string
      - name: pan_position
        type: string
        description: "Relative pan position as 4 hex nibbles (YYYY)"
      - name: tilt_position
        type: string
        description: "Relative tilt position as 4 hex nibbles (ZZZZ)"

  - id: pantilt_home
    label: Pan-Tilt Home
    kind: action
    command: "8x 01 06 04 FF"
    params:
      - name: camera_address
        type: integer

  - id: pantilt_reset
    label: Pan-Tilt Reset
    kind: action
    command: "8x 01 06 05 FF"
    params:
      - name: camera_address
        type: integer

  - id: pantilt_limit_set
    label: Pan-Tilt Limit Set
    kind: action
    command: "8x 01 06 07 00 0W 0Y 0Y 0Y 0Y 0Z 0Z 0Z 0Z FF"
    params:
      - name: camera_address
        type: integer
      - name: corner
        type: integer
        description: "1 = Up Right, 0 = Down Left"
      - name: pan_position
        type: string
        description: "Pan limit position as 4 hex nibbles (YYYY)"
      - name: tilt_position
        type: string
        description: "Tilt limit position as 4 hex nibbles (ZZZZ)"

  - id: mount_mode_stand
    label: Mount Mode Stand
    kind: action
    command: "8x 01 04 A4 02 FF"
    params:
      - name: camera_address
        type: integer
    notes: "IV-CAM-P12 and IV-CAM-P20 only; inverted video and PTZ control off"

  - id: mount_mode_ceiling
    label: Mount Mode Ceiling
    kind: action
    command: "8x 01 04 A4 03 FF"
    params:
      - name: camera_address
        type: integer
    notes: "IV-CAM-P12 and IV-CAM-P20 only; inverted video and PTZ control on"

  - id: address_set_broadcast
    label: Address Set (Broadcast)
    kind: action
    command: "88 30 01 FF"
    params: []

  - id: if_clear
    label: Interface Clear (Broadcast)
    kind: action
    command: "88 01 00 01 FF"
    params: []

  - id: command_cancel
    label: Command Cancel
    kind: action
    command: "8x 2p FF"
    params:
      - name: camera_address
        type: integer
      - name: socket
        type: integer
        description: "Socket number (1 or 2), replaces p"

Feedbacks

feedbacks:
  - id: ack
    type: raw
    response: "z0 4y FF"
    description: "ACK - command accepted. y = socket number. z = device address + 8."

  - id: completion
    type: raw
    response: "z0 5y FF"
    description: "Completion - command executed. y = socket number."

  - id: error_syntax
    type: raw
    response: "z0 60 02 FF"
    description: "Syntax error - command format incorrect or illegal parameters."

  - id: error_buffer_full
    type: raw
    response: "z0 60 03 FF"
    description: "Command buffer full - two sockets already in use."

  - id: error_command_canceled
    type: raw
    response: "z0 6y 04 FF"
    description: "Command canceled in specified socket. y = socket number."

  - id: error_no_socket
    type: raw
    response: "z0 6y 05 FF"
    description: "No command executing in specified socket. y = socket number."

  - id: error_not_executable
    type: raw
    response: "z0 6y 41 FF"
    description: "Command not executable under current conditions. y = socket number."

  - id: power_state_inquiry
    type: inquiry
    command: "8x 09 04 00 FF"
    response_map:
      "y0 50 02 FF": "On"
      "y0 50 03 FF": "Off (Standby)"
      "y0 50 04 FF": "Internal power circuit error"

  - id: zoom_position_inquiry
    type: inquiry
    command: "8x 09 04 47 FF"
    response: "y0 50 0p 0q 0r 0s FF"
    description: "Returns zoom position as 4 hex nibbles (p,q,r,s)."

  - id: focus_mode_inquiry
    type: inquiry
    command: "8x 09 04 38 FF"
    response_map:
      "y0 50 02 FF": "Auto Focus"
      "y0 50 03 FF": "Manual Focus"

  - id: focus_position_inquiry
    type: inquiry
    command: "8x 09 04 48 FF"
    response: "y0 50 0p 0q 0r 0s FF"
    description: "Returns focus position as 4 hex nibbles (p,q,r,s)."

  - id: wb_mode_inquiry
    type: inquiry
    command: "8x 09 04 35 FF"
    response_map:
      "y0 50 00 FF": "Auto"
      "y0 50 01 FF": "Indoor"
      "y0 50 02 FF": "Outdoor"
      "y0 50 03 FF": "One Push WB"
      "y0 50 05 FF": "Manual"

  - id: r_gain_inquiry
    type: inquiry
    command: "8x 09 04 43 FF"
    response: "y0 50 00 00 0p 0q FF"
    description: "Returns R gain as 2 hex nibbles (p,q)."

  - id: b_gain_inquiry
    type: inquiry
    command: "8x 09 04 44 FF"
    response: "y0 50 00 00 0p 0q FF"
    description: "Returns B gain as 2 hex nibbles (p,q)."

  - id: ae_mode_inquiry
    type: inquiry
    command: "8x 09 04 39 FF"
    response_map:
      "y0 50 00 FF": "Full Auto"
      "y0 50 03 FF": "Manual"
      "y0 50 0A FF": "Shutter Priority"
      "y0 50 0B FF": "Iris Priority"
      "y0 50 0D FF": "Bright"

  - id: shutter_position_inquiry
    type: inquiry
    command: "8x 09 04 4A FF"
    response: "y0 50 00 00 0p 0q FF"
    description: "Returns shutter position as 2 hex nibbles (p,q)."

  - id: iris_position_inquiry
    type: inquiry
    command: "8x 09 04 4B FF"
    response: "y0 50 00 00 0p 0q FF"
    description: "Returns iris position as 2 hex nibbles (p,q)."

  - id: gain_position_inquiry
    type: inquiry
    command: "8x 09 04 4C FF"
    response: "y0 50 00 00 0p 0q FF"
    description: "Returns gain position as 2 hex nibbles (p,q)."

  - id: bright_position_inquiry
    type: inquiry
    command: "8x 09 04 4D FF"
    response: "y0 50 00 00 0p 0q FF"
    description: "Returns bright position as 2 hex nibbles (p,q)."

  - id: exp_comp_mode_inquiry
    type: inquiry
    command: "8x 09 04 3E FF"
    response_map:
      "y0 50 02 FF": "On"
      "y0 50 03 FF": "Off"

  - id: exp_comp_position_inquiry
    type: inquiry
    command: "8x 09 04 4E FF"
    response: "y0 50 00 00 0p 0q FF"
    description: "Returns exposure compensation position as 2 hex nibbles (p,q)."

  - id: backlight_mode_inquiry
    type: inquiry
    command: "8x 09 04 33 FF"
    response_map:
      "y0 50 02 FF": "On"
      "y0 50 03 FF": "Off"

  - id: memory_inquiry
    type: inquiry
    command: "8x 09 04 3F FF"
    response: "y0 50 0p FF"
    description: "Returns last operated memory number (p)."

  - id: version_inquiry
    type: inquiry
    command: "8x 09 00 02 FF"
    response: "y0 50 00 01 mn pq rs tu vw FF"
    description: "Returns model code (m,n,p,q), ROM version (r,s,t,u), socket number (v,w)."

  - id: video_system_inquiry
    type: inquiry
    command: "8x 09 06 23 FF"
    response_map:
      "y0 50 00 FF": "1920x1080i/60 (60 Hz)"
      "y0 50 01 FF": "1920x1080p/30 (60 Hz)"
      "y0 50 02 FF": "1280x720p/60 (60 Hz)"
      "y0 50 03 FF": "1280x720p/30 (60 Hz)"
      "y0 50 07 FF": "1920x1080p/60 (60 Hz)"
      "y0 50 08 FF": "1920x1080i/50 (50 Hz)"
      "y0 50 09 FF": "1920x1080p/25 (50 Hz)"
      "y0 50 0A FF": "1280x720p/50 (50 Hz)"
      "y0 50 0B FF": "1280x720p/25 (50 Hz)"
      "y0 50 0F FF": "1920x1080p/50 (50 Hz)"

  - id: ir_receive_inquiry
    type: inquiry
    command: "8x 09 06 08 FF"
    response_map:
      "y0 50 02 FF": "On"
      "y0 50 03 FF": "Off"

  - id: pantilt_max_speed_inquiry
    type: inquiry
    command: "8x 09 06 11 FF"
    response: "y0 50 ww zz FF"
    description: "Returns pan max speed (ww) and tilt max speed (zz)."

  - id: pantilt_position_inquiry
    type: inquiry
    command: "8x 09 06 12 FF"
    response: "y0 50 0w 0w 0w 0w 0z 0z 0z 0z FF"
    description: "Returns pan position (wwww) and tilt position (zzzz) as 4 hex nibbles each."

  - id: pantilt_mode_inquiry
    type: inquiry
    command: "8x 09 06 10 FF"
    response: "y0 50 pq rs FF"
    description: "Returns pan/tilt status as 4 hex nibbles (p,q,r,s)."

  - id: tracking_inquiry
    type: inquiry
    command: "8x 09 08 01 FF"
    response_map:
      "y0 50 02 FF": "Tracking active"
      "y0 50 03 FF": "Tracking paused"

  - id: mount_mode_inquiry
    type: inquiry
    command: "8x 09 04 A4 FF"
    response_map:
      "y0 50 02 FF": "Stand"
      "y0 50 03 FF": "Ceiling"

Variables

# UNRESOLVED: no continuous settable variables beyond the direct-position actions already
# documented in Actions. Zoom, focus, iris, gain, shutter, bright, and exp_comp all use
# direct-position commands that could be modeled as variables, but they are discrete actions
# in the VISCA binary protocol.

Events

# UNRESOLVED: source does not describe unsolicited notification events

Macros

# UNRESOLVED: no multi-step sequences described in source

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: source does not contain safety warnings, interlock procedures, or
# power-on sequencing requirements.

Notes

This device uses the Sony VISCA binary protocol over TCP (port 5500) or serial (RS‑232 / RS‑485, 9600 baud). All commands are hex byte sequences where x represents the camera address and z = device address + 8. The protocol supports two command sockets; if both are in use, a buffer-full error is returned.

VISCA commands use a request/response pattern: the camera returns an ACK (z0 4y FF) when a command is accepted and a completion message (z0 5y FF) when execution finishes. Inquiry commands return their data in the completion message.

Pan speed range is 0x01 (low) to 0x18 (high). Tilt speed range is 0x01 (low) to 0x14 (high).

Memory/preset numbers range from 0 to 255.

The CAM_MountMode commands (stand/ceiling) are noted as applicable to IV-CAM-P12 and IV-CAM-P20 models only; applicability to IV-CAM-I Series is not explicitly stated.

Zoom position lookup tables for 12x and 20x optical zoom ratios are provided in the source (hex position values for each zoom ratio multiplier).

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.341Z
last_checked_at: 2026-06-03T06:35:44.782Z

Verification Summary

verdict: verified
checked_at: 2026-06-03T06:35:44.782Z
matched_actions: 91
action_count: 91
confidence: medium
summary: "Complete match: all 91 actions found in source (18 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "exact models within the IV-CAM-I Series are not enumerated in the source"
- "serial data bits, parity, stop bits, and flow control not stated in source"
- "no authentication or login procedure described in source"
- "data_bits not stated in source"
- "parity not stated in source"
- "stop_bits not stated in source"
- "flow_control not stated in source"
- "no continuous settable variables beyond the direct-position actions already"
- "source does not describe unsolicited notification events"
- "no multi-step sequences described in source"
- "source does not contain safety warnings, interlock procedures, or"
- "exact IV-CAM-I Series sub-models not enumerated"
- "serial data bits, parity, stop bits, flow control not specified"
- "command timing constraints and inter-command delays not specified"
- "maximum connection count or concurrent session limits not specified"
- "whether TCP connection is persistent or per-command not specified"
- "VISCA protocol version not stated"
- "applicability of CAM_MountMode to IV-CAM-I Series not confirmed"

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