Summary
Sony camera control protocol (VISCA) over UDP/IP. Controls ILME-FR7/FR7K PTZ camera via VISCA commands and inquiries. Transport: UDP, port 52381. Supports pan/tilt/zoom, focus, exposure, white balance, color correction, tally, and preset recall. No authentication required.
Transport
protocols:
- udp
addressing:
port: 52381
# UNRESOLVED: base_url not applicable for UDP
auth:
type: none # inferred: no auth procedure in source
Traits
- powerable # power on/standby commands present
- routable # pan/tilt/zoom/input routing commands present
- queryable # inquiry commands returning state present
- levelable # gain, iris, zoom, focus level control present
Actions
# Power
- id: power
label: Power
kind: action
params:
- name: state
type: integer
description: 2=On, 3=Standby
# Pan/Tilt Drive
- id: pantilt_up
label: Pan/Tilt Up
kind: action
params:
- name: pan_speed
type: integer
description: 01-18/32 (speed step Normal/Extended)
- name: tilt_speed
type: integer
description: 01-18/32 (speed step Normal/Extended)
- id: pantilt_down
label: Pan/Tilt Down
kind: action
params:
- name: pan_speed
type: integer
- name: tilt_speed
type: integer
- id: pantilt_left
label: Pan/Tilt Left
kind: action
params:
- name: pan_speed
type: integer
- name: tilt_speed
type: integer
- id: pantilt_right
label: Pan/Tilt Right
kind: action
params:
- name: pan_speed
type: integer
- name: tilt_speed
type: integer
- id: pantilt_upleft
label: Pan/Tilt UpLeft
kind: action
params:
- name: pan_speed
type: integer
- name: tilt_speed
type: integer
- id: pantilt_upright
label: Pan/Tilt UpRight
kind: action
params:
- name: pan_speed
type: integer
- name: tilt_speed
type: integer
- id: pantilt_downleft
label: Pan/Tilt DownLeft
kind: action
params:
- name: pan_speed
type: integer
- name: tilt_speed
type: integer
- id: pantilt_downright
label: Pan/Tilt DownRight
kind: action
params:
- name: pan_speed
type: integer
- name: tilt_speed
type: integer
- id: pantilt_stop
label: Pan/Tilt Stop
kind: action
params:
- name: pan_speed
type: integer
- name: tilt_speed
type: integer
- id: pantilt_abs
label: Pan/Tilt Absolute Position
kind: action
params:
- name: pan_speed
type: integer
- name: tilt_speed
type: integer
- name: pan_pos
type: string
description: Pan coordinate hex (00000-f6359)
- name: tilt_pos
type: string
description: Tilt coordinate hex
- id: pantilt_rel
label: Pan/Tilt Relative Position
kind: action
params:
- name: pan_speed
type: integer
- name: tilt_speed
type: integer
- name: pan_delta
type: string
- name: tilt_delta
type: string
- id: pantilt_home
label: Pan/Tilt Home
kind: action
params: []
- id: pantilt_reset
label: Pan/Tilt Reset
kind: action
params: []
# Zoom
- id: zoom_tele
label: Zoom Tele (Standard Speed)
kind: action
params: []
- id: zoom_wide
label: Zoom Wide (Standard Speed)
kind: action
params: []
- id: zoom_tele_var
label: Zoom Tele (Variable Speed)
kind: action
params:
- name: speed
type: integer
description: 0-7 (Slow-Fast)
- id: zoom_wide_var
label: Zoom Wide (Variable Speed)
kind: action
params:
- name: speed
type: integer
- id: zoom_stop
label: Zoom Stop
kind: action
params: []
- id: zoom_direct
label: Zoom Direct Position
kind: action
params:
- name: position
type: string
description: Hex zoom position 0000-6000
# Focus
- id: focus_mode
label: Focus Mode
kind: action
params:
- name: mode
type: integer
description: 02=Auto, 03=Manual, 10=Toggle
- id: focus_far
label: Focus Far
kind: action
params: []
- id: focus_near
label: Focus Near
kind: action
params: []
- id: focus_stop
label: Focus Stop
kind: action
params: []
- id: focus_direct
label: Focus Direct Position
kind: action
params:
- name: position
type: string
description: Hex focus position 0000-FFFF
# Iris/Gain/Shutter/AE
- id: iris_up
label: Iris Up
kind: action
params:
- name: step
type: string
description: Step 01-FF
- id: iris_down
label: Iris Down
kind: action
params:
- name: step
type: string
- id: auto_iris
label: Auto Iris
kind: action
params:
- name: state
type: integer
description: 2=On, 3=Off
- id: gain_agc
label: Gain AGC
kind: action
params:
- name: state
type: integer
description: 2=On, 3=Off
- id: auto_shutter
label: Auto Shutter
kind: action
params:
- name: state
type: integer
description: 2=On, 3=Off
- id: ae_level
label: AE Level
kind: action
params:
- name: dir
type: integer
description: 02=Up, 03=Down
- id: backlight
label: Backlight Compensation
kind: action
params:
- name: state
type: integer
description: 2=On, 3=Off
- id: spotlight
label: Spotlight Compensation
kind: action
params:
- name: state
type: integer
description: 2=On, 3=Off
# White Balance
- id: wb_mode
label: White Balance Mode
kind: action
params:
- name: mode
type: integer
description: 4=ATW, 5=Memory A, A=Preset
- id: wb_set
label: White Balance Set
kind: action
params: []
- id: r_gain
label: R Gain
kind: action
params:
- name: dir
type: integer
description: 02=Up, 03=Down
- name: step
type: string
description: Step 01-FF
- id: r_gain_direct
label: R Gain Direct
kind: action
params:
- name: value
type: string
description: Hex 0000-07BC
- id: b_gain
label: B Gain
kind: action
params:
- name: dir
type: integer
description: 02=Up, 03=Down
- name: step
type: string
- id: b_gain_direct
label: B Gain Direct
kind: action
params:
- name: value
type: string
- id: color_temp
label: Color Temperature
kind: action
params:
- name: dir
type: integer
- name: step
type: string
- id: color_temp_direct
label: Color Temperature Direct
kind: action
params:
- name: value
type: string
description: Hex 07D0-3A98
- id: tint
label: Tint
kind: action
params:
- name: dir
type: integer
- name: step
type: string
- id: offset_color_temp
label: Offset Color Temperature
kind: action
params:
- name: dir
type: integer
- name: step
type: string
- id: offset_tint
label: Offset Tint
kind: action
params:
- name: dir
type: integer
- name: step
type: string
# ND Filter
- id: nd_filter_mode
label: ND Filter Mode
kind: action
params:
- name: preset
type: integer
description: 0=Preset, 1=Variable
- id: nd_variable
label: ND Variable
kind: action
params:
- name: dir
type: integer
description: 02=Up, 03=Down
- id: auto_nd_filter
label: Auto ND Filter
kind: action
params:
- name: state
type: integer
description: 2=On, 3=Off
- id: nd_clear
label: ND Clear
kind: action
params:
- name: state
type: integer
description: 2=Filtered, 3=Clear
- id: nd_preset
label: ND Preset
kind: action
params:
- name: preset
type: integer
description: 0=Clear, 1=Preset 1, 2=Preset 2, 3=Preset 3
# Detail/Knee
- id: detail_setting
label: Detail Setting
kind: action
params:
- name: state
type: integer
description: 2=On, 3=Off
- id: detail_level
label: Detail Level
kind: action
params:
- name: dir
type: integer
description: 02=Up, 03=Down
- id: detail_direct
label: Detail Level Direct
kind: action
params:
- name: level
type: string
description: Hex 00-0E
- id: knee_setting
label: Knee Setting
kind: action
params:
- name: state
type: integer
description: 2=On, 3=Off
- id: knee_mode
label: Knee Mode
kind: action
params:
- name: mode
type: integer
description: 0=Auto, 4=Manual
- id: knee_slope
label: Knee Slope
kind: action
params:
- name: value
type: string
description: Hex 00-C6
- id: knee_point
label: Knee Point
kind: action
params:
- name: value
type: string
description: Hex 00-22
# Audio
- id: audio_level_control
label: Audio Level Control
kind: action
params:
- name: channel
type: integer
description: 1=CH1, 2=CH2
- name: mode
type: integer
description: 0=Manual, 1=Auto
- id: input_level_up
label: Input Level Up
kind: action
params:
- name: target
type: integer
description: 0=Master, 1=CH1, 2=CH2
- name: step
type: string
- id: input_level_down
label: Input Level Down
kind: action
params:
- name: target
type: integer
- name: step
type: string
- id: input_level_direct
label: Input Level Direct
kind: action
params:
- name: target
type: integer
- name: level
type: string
description: Hex 00-63
# Preset
- id: preset_set
label: Preset Set
kind: action
params:
- name: number
type: integer
description: 00-63
- id: preset_reset
label: Preset Reset
kind: action
params:
- name: number
type: integer
- id: preset_recall
label: Preset Recall
kind: action
params:
- name: number
type: integer
- id: preset_speed_select
label: Preset Speed Select
kind: action
params:
- name: mode
type: integer
description: 1=Separate, 2=Common
- id: preset_speed_separate
label: Preset Speed Separate
kind: action
params:
- name: number
type: integer
- name: speed
type: string
- id: preset_speed_common
label: Preset Speed Common
kind: action
params:
- name: speed
type: string
# Tally
- id: tally_red
label: Tally Red
kind: action
params:
- name: state
type: integer
description: 2=On, 3=Off
- id: tally_green
label: Tally Green
kind: action
params:
- name: state
type: integer
description: 2=On, 3=Off
# Other
- id: color_bar
label: Color Bar
kind: action
params:
- name: state
type: integer
description: 2=On, 3=Off
- id: display
label: Display
kind: action
params:
- name: action
type: integer
description: 0=Release, 1=Press
- id: lens_init
label: Lens Initialize
kind: action
params: []
- id: menu_onoff
label: Menu On/Off
kind: action
params:
- name: state
type: integer
description: 2=On, 3=Off, 10=Toggle
- id: menu_multiselector
label: Menu Multi Selector
kind: action
params:
- name: direction
type: integer
description: 31=Up, 32=Down, 13=Left, 23=Right, 11=Up-Left, 21=Up-Right, 12=Down-Left, 22=Down-Right, 70=Set, 71=Cancel/Back
- name: action
type: integer
description: 0=Release, 1=Press
- id: direct_menu
label: Direct Menu
kind: action
params:
- name: item
type: integer
description: 00=ND Filter, 01=Iris, 02=ISO/Gain, 03=Shutter, 04=AE Level/Mode, 7F=Direct Menu exit
- name: action
type: integer
description: 0=Release, 1=Press
- id: record
label: Recording
kind: action
params:
- name: action
type: integer
description: 0=Release, 1=Press
- id: assignable_button
label: Assignable Button
kind: action
params:
- name: button
type: integer
description: 01-09=Button 1-9, 7F=Focus Hold
- name: action
type: integer
description: 0=Release, 1=Press
- id: multifunction_dial_set
label: Multi Function Dial Set
kind: action
params:
- name: action
type: integer
description: 1=Set
- name: param
type: string
description: 00=Release, 01=Press
- id: multifunction_dial_cwccw
label: Multi Function Dial CW/CCW
kind: action
params:
- name: direction
type: integer
description: 2=CW, 3=CCW
- name: step
type: string
- id: pantilt_ramp_curve
label: Pan/Tilt Ramp Curve
kind: action
params:
- name: curve
type: integer
description: 1-9
- id: pantilt_speed_step
label: Pan/Tilt Speed Step
kind: action
params:
- name: step
type: integer
description: 08=Normal, 18=Extended
- id: pantilt_speed_mode
label: Pan/Tilt Speed Mode
kind: action
params:
- name: mode
type: integer
description: 3=Normal, 2=Slow
- id: pantilt_limit_set
label: Pan/Tilt Limit Set
kind: action
params:
- name: corner
type: integer
description: 0=DownLeft, 1=UpRight
- name: pan_pos
type: string
- name: tilt_pos
type: string
- id: pantilt_limit_clear
label: Pan/Tilt Limit Clear
kind: action
params:
- name: corner
type: integer
- id: ptz_trace_rec_start
label: PTZ Trace Rec Start
kind: action
params:
- name: trace_num
type: integer
description: 0-F (trace 1-16)
- id: ptz_trace_rec_stop
label: PTZ Trace Rec Stop
kind: action
params: []
- id: ptz_trace_play_prepare
label: PTZ Trace Play Prepare
kind: action
params:
- name: trace_num
type: integer
- id: ptz_trace_play_start
label: PTZ Trace Play Start
kind: action
params: []
- id: ptz_trace_delete
label: PTZ Trace Delete
kind: action
params:
- name: trace_num
type: integer
- id: if_clear
label: IF Clear
kind: action
params: []
Feedbacks
# ACK/Completion reply format: y0 4z FF (ACK), y0 5z FF (Completion), y0 6z pp FF (Error)
# y=9 fixed for VISCA over IP; z=socket number
- id: visca_ack
label: VISCA ACK
type: packet
description: Returned when command accepted. y0 4z FF.
- id: visca_completion
label: VISCA Completion
type: packet
description: Returned when command executed. y0 5z FF.
- id: visca_error
label: VISCA Error
type: packet
description: y0 6z pp FF - Syntax Error (02), Command Buffer Full (03), Command Canceled (04), No Socket (05), Command Not Executable (41).
Variables
# UNRESOLVED: queryable state values documented in inquiry reply packets
# Populated via inquiry commands (see Actions for queries)
# Key queryable states:
- id: power_state
label: Power State
type: enum
values: [on, standby]
query: 8x 09 04 00 FF -> y0 50 0p FF (p: 2=On, 3=Standby)
- id: zoom_position
label: Zoom Position
type: integer
range: "0000-6000"
query: 8x 09 04 47 FF -> y0 50 0z 0z 0z 0z FF
- id: focus_position
label: Focus Position
type: integer
range: "0000-FFFF"
query: 8x 09 04 48 FF -> y0 50 0p 0p 0p 0p FF
- id: pantilt_position
label: Pan/Tilt Position
type: string
query: 8x 09 06 12 FF -> y0 50 0p 0p 0p 0p 0p 0t 0t 0t 0t 0t FF
- id: shooting_mode
label: Shooting Mode
type: enum
values: [custom, cine_ei, flexible_iso, cine_ei_quick]
query: 8x 09 05 30 FF -> y0 50 0p FF
- id: nd_filter_mode
label: ND Filter Mode
type: enum
values: [preset, variable]
query: 8x 09 7E 04 52 FF
- id: white_balance_mode
label: White Balance Mode
type: enum
values: [atw, memory_a, preset]
query: 8x 09 04 35 FF
- id: software_version
label: Software Version
type: string
query: 8x 09 00 02 FF -> y0 50 pp pp qq qq rr rr 0s FF
Events
# UNRESOLVED: device-initiated (unsolicited) events not documented in source
# VISCA over IP does not support device-side event push; controller polls
Macros
# UNRESOLVED: explicit multi-step macros not identified in source
# Camera IP setup sequence documented for network configuration (separate UDP port 52380):
# 1. Controller sends ENQ broadcast on 52380
# 2. Camera responds with MAC, IP, MASK, GATEWAY, NAME, WRITE status
# 3. Controller sends network settings via broadcast on 52380
# 4. Camera responds ACK/NACK
Safety
confirmation_required_for: []
interlocks:
- id: pantilt_cancel_timing
description: To cancel PAN-TILT Drive, wait ≥200 msec after executing, then send cancel command. Wait ≥200 msec after cancel before issuing next PAN-TILT Drive command.
- id: tally_lamp_expiry
description: Tally lamp turns off if no On command received for 15 seconds after TALLY ON. Does not auto-expire if tally lit by non-VISCA input.
- id: write_timeout
description: WRITE flag auto-disables 20 minutes after first power-on; network settings cannot be changed after timeout.
Notes
VISCA over IP wraps VISCA command packets in a message header (8 bytes) with payload type, length, and sequence number. UDP transport on port 52381. Controller address fixed to 0, peripheral address fixed to 1. Broadcast address prohibited. Device supports 2 command sockets. No authentication required.
Provenance
source_domains:
- pro.sony
- sony.com
- github.com
source_urls:
- https://pro.sony/s3/2022/09/14131603/VISCA-Command-List-Version-2.00.pdf
- https://www.sony.com/electronics/support/res/manuals/E042/3230148ee903c204b912cca5c2c3f5aa/E0421001M.pdf
- https://www.sony.com/electronics/support/res/manuals/E776/ba2eb983d7ce445ab18afc783c068418/E7761001M.pdf
- https://github.com/bitfocus/companion-module-sony-visca
retrieved_at: 2026-04-30T03:14:34.194Z
last_checked_at: 2026-06-02T22:14:58.497Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T22:14:58.497Z
matched_actions: 89
action_count: 89
confidence: medium
summary: "All 89 spec actions traced to source (dip-safe re-verify). (9 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "RS-232 VISCA serial config not detailed in this source; IP-only portion documented"
- "base_url not applicable for UDP"
- "queryable state values documented in inquiry reply packets"
- "device-initiated (unsolicited) events not documented in source"
- "explicit multi-step macros not identified in source"
- "RS-232 serial baud rate / serial config not detailed in this IP-focused source document"
- "firmware version compatibility not stated"
- "VISCA Network Change command not supported over IP"
- "Address Set command not supported over IP"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0