Summary

The Roland XS-62S is a 6-channel video switcher with audio mixing, supporting remote control over TCP (Telnet, port 8023) and RS-232 (DB-9 male, 9600/38400 bps, 8N1, XON/XOFF). The protocol is ASCII framed by STX (0x02), a 3-letter command code, optional parameters separated by : and ,, and terminated by ;. The device replies with ACK (0x06) and emits unsolicited XON/XOFF/ERR notifications.

Transport

protocols:
  - tcp
  - serial
addressing:
  port: 8023
serial:
  baud_rate: [9600, 38400]
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: xon_xoff
auth:
  type: UNRESOLVED

Traits

- powerable
- routable
- queryable
- levelable

Actions

# Video-related operations
- id: select_pgm_channel
  label: Select channel for PGM/1
  kind: action
  command: "PGM{a}"
  params:
    - name: a
      type: integer
      description: "0=SDI IN 1, 1=SDI IN 2, 2=SDI IN 3, 3=SDI IN 4, 4=HDMI IN 5, 5=HDMI/ANLG IN 6, 6=STL/BKG IN 7, 7=STL/BKG IN 8"

- id: select_pvw_channel
  label: Select channel for PVW/2
  kind: action
  command: "PST{a}"
  params:
    - name: a
      type: integer
      description: "0=SDI IN 1, 1=SDI IN 2, 2=SDI IN 3, 3=SDI IN 4, 4=HDMI IN 5, 5=HDMI/ANLG IN 6, 6=STILL/BKG IN 7, 7=STILL/BKG IN 8"

- id: select_aux_channel
  label: Select channel for AUX/3
  kind: action
  command: "AUX{a}"
  params:
    - name: a
      type: integer
      description: "0=SDI IN 1, 1=SDI IN 2, 2=SDI IN 3, 3=SDI IN 4, 4=HDMI IN 5, 5=HDMI/ANLG IN 6, 6=STILL/BKG IN 7, 7=STILL/BKG IN 8"

- id: select_transition_effect
  label: Select transition effect
  kind: action
  command: "TRS{a}"
  params:
    - name: a
      type: integer
      description: "0=MIX, 1=MIX, 2=WIPE"

- id: set_transition_time
  label: Set video transition time
  kind: action
  command: "TIM{a}"
  params:
    - name: a
      type: integer
      description: "0 (0.0 sec) to 40 (4.0 sec)"

- id: cut_transition
  label: Use a cut to transition video
  kind: action
  command: "CUT"
  params: []

- id: take_button
  label: Press the [TAKE] button
  kind: action
  command: "TAK"
  params: []

- id: set_pinp
  label: Set the [PinP] button on/off
  kind: action
  command: "PPS{a}"
  params:
    - name: a
      type: integer
      description: "0=OFF, 1=PVW ON, 2=PGM ON"

- id: set_split
  label: Set SPLIT on/off
  kind: action
  command: "SPS{a}"
  params:
    - name: a
      type: integer
      description: "0=OFF, 1=PVW ON, 2=PGM ON"

- id: set_dsk
  label: Set DSK on/off
  kind: action
  command: "DSK{a}"
  params:
    - name: a
      type: integer
      description: "0=OFF, 1=ON"

- id: dsk_preview
  label: Preview the DSK composited result in the multi-view monitor
  kind: action
  command: "DVW{a}"
  params:
    - name: a
      type: integer
      description: "0=OFF, 1=ON"

- id: set_auto_mixing
  label: Set the [AUTO MIXING] button on/off
  kind: action
  command: "ATM{a}"
  params:
    - name: a
      type: integer
      description: "0=OFF, 1=ON"

- id: set_freeze
  label: Set the [FREEZE] button on/off
  kind: action
  command: "FRZ{a}"
  params:
    - name: a
      type: integer
      description: "0=OFF, 1=ON"

- id: query_video_output
  label: Verify the state of a video output channel
  kind: query
  command: "QVC{a}"  # source also shows "QVC{a,b}" variant for batch query
  params:
    - name: a
      type: integer
      description: "0=PGM/1, 1=PVW/2, 2=AUX/3; returns b 0-7"

- id: set_edid
  label: Set the EDID
  kind: action
  command: "EDD{a},{b}"
  params:
    - name: a
      type: integer
      description: "0=HDMI IN 5, 1=HDMI IN 6, 2=RGB IN 6"
    - name: b
      type: integer
      description: "0=INTERNAL, 1=SVGA, 2=XGA, 3=WXGA, 4=FWXGA, 5=SXGA, 6=SXGA+, 7=UXGA, 8=WUXGA, 9=720p, 10=1080i, 11=1080p (when a=2 only 0-8 valid)"

- id: set_input_scaling
  label: Input scaling type setting
  kind: action
  command: "VIA{a},{b}"
  params:
    - name: a
      type: integer
      description: "0=HDMI IN 5, 1=HDMI IN 6, 2=RGB IN 6"
    - name: b
      type: integer
      description: "0=FULL, 1=LETTERBOX, 2=CROP, 3=DOT BY DOT, 4=MANUAL"

- id: set_scaler_resolution
  label: Resolution setting for scaler out
  kind: action
  command: "VOR{a}"
  params:
    - name: a
      type: integer
      description: "0=480p/576p, 1=720p, 2=1080p, 3=SVGA, 4=XGA, 5=WXGA, 6=SXGA, 7=FWXGA, 8=SXGA+, 9=UXGA, 10=WUXGA"

- id: query_scaler_resolution
  label: Verify the state of the scaler out resolution
  kind: query
  command: "QVR"
  params: []

- id: set_scaler_scaling
  label: Scaling type of scaler out setting
  kind: action
  command: "VOA{a}"
  params:
    - name: a
      type: integer
      description: "0=FULL, 1=LETTERBOX, 2=CROP, 3=DOT BY DOT, 4=MANUAL"

- id: set_hdmi_color_space
  label: Select the color space for the HDMI output
  kind: action
  command: "VOC{a},{b}"
  params:
    - name: a
      type: integer
      description: "0=HDMI OUT 1, 1=HDMI OUT 2, 2=HDMI OUT 3"
    - name: b
      type: integer
      description: "0=YCC, 1=RGB(0-255), 2=RGB(16-235)"

- id: set_hdmi_signal_type
  label: Set the signal type for the HDMI output
  kind: action
  command: "VOD{a},{b}"
  params:
    - name: a
      type: integer
      description: "0=HDMI OUT 1, 1=HDMI OUT 2, 2=HDMI OUT 3"
    - name: b
      type: integer
      description: "0=DVI-D, 1=HDMI"

- id: set_pinp_position
  label: When using PinP compositing, adjust the display position of the video
  kind: action
  command: "PIP{a},{b}"
  params:
    - name: a
      type: integer
      description: "-250 to 250 (horizontal position of inset screen)"
    - name: b
      type: integer
      description: "-250 to 250 (vertical position of inset screen)"

- id: set_split_position
  label: When using SPLIT compositing, adjust the display position of the video
  kind: action
  command: "SPT{a},{b}"
  params:
    - name: a
      type: integer
      description: "-250 to 250 (V-CENTER horizontal, or H-CENTER vertical)"
    - name: b
      type: integer
      description: "-250 to 250 (companion axis)"

- id: set_dsk_source
  label: During DSK composition, set the channel of the overlaid logo or image
  kind: action
  command: "DSS{a}"
  params:
    - name: a
      type: integer
      description: "0=SDI IN 1, 1=SDI IN 2, 2=SDI IN 3, 3=SDI IN 4, 4=HDMI IN 5, 5=HDMI/ANLG IN 6, 6=STILL/BKG IN 7, 7=STILL/BKG IN 8"

- id: set_dsk_key_level
  label: Adjust the key level (amount of extraction) for DSK composition
  kind: action
  command: "KYL{a}"
  params:
    - name: a
      type: integer
      description: "0 to 255"

- id: set_dsk_key_gain
  label: Adjust the key gain (semi-transmissive region) for DSK composition
  kind: action
  command: "KYG{a}"
  params:
    - name: a
      type: integer
      description: "0 to 255"

- id: set_input_connector_ch6
  label: Select input connector for channel 6
  kind: action
  command: "IPS{a}"
  params:
    - name: a
      type: integer
      description: "0=HDMI, 1=RGB/COMPONENT"

- id: query_input_connector_ch6
  label: Query the input connector of video channel 6
  kind: query
  command: "QIP"  # source also shows "QIP{a}" variant
  params: []

- id: set_video_output_bus
  label: Set the bus assigned to the video output connector
  kind: action
  command: "VOS{a}"
  params:
    - name: a
      type: integer
      description: "0=PGM, 1=PVW, 2=AUX"

- id: query_video_output_bus
  label: Query the bus assigned to the video output connector
  kind: query
  command: "QVS{a}"  # source also shows "QVS{a,b}" variant
  params:
    - name: a
      type: integer
      description: "0=SDI OUT 1, 1=SDI OUT 2, 2=HDMI OUT 1, 3=HDMI OUT 2, 4=HDMI OUT 3"

# Audio-related operations
- id: set_pgm_input_volume
  label: Adjust input volume level for PGM/1 bus audio
  kind: action
  command: "IL1{a},{b}"
  params:
    - name: a
      type: integer
      description: "0=AUDIO IN 1, 1=AUDIO IN 2, 2=AUDIO IN 3, 3=AUDIO IN 4, 4=AUDIO IN 5/6, 5=SDI IN 1, 6=SDI IN 2, 7=SDI IN 3, 8=SDI IN 4, 9=HDMI IN 5, 10=HDMI IN 6"
    - name: b
      type: integer
      description: "-801 (-INF dB), -800 (-80.0dB) to 0 (0.0dB) to 100 (10.0dB)"

- id: set_pvw_input_volume
  label: Adjust input volume level for PVW/2 bus audio
  kind: action
  command: "IL2{a},{b}"
  params:
    - name: a
      type: integer
      description: "0=AUDIO IN 1, 1=AUDIO IN 2, 2=AUDIO IN 3, 3=AUDIO IN 4, 4=AUDIO IN 5/6, 5=SDI IN 1, 6=SDI IN 2, 7=SDI IN 3, 8=SDI IN 4, 9=HDMI IN 5, 10=HDMI IN 6"
    - name: b
      type: integer
      description: "-801 (-INF dB), -800 (-80.0dB) to 0 (0.0dB) to 100 (10.0dB)"

- id: set_master_output_volume
  label: Adjust output volume level for master out
  kind: action
  command: "OL1{a}"
  params:
    - name: a
      type: integer
      description: "-801 (-INF dB), -800 (-80.0dB) to 0 (0.0dB) to 100 (10.0dB)"

- id: set_pvw_output_volume
  label: Adjust output volume level for PVW/2 bus audio
  kind: action
  command: "OL2{a}"
  params:
    - name: a
      type: integer
      description: "-801 (-INF dB), -800 (-80.0dB) to 0 (0.0dB) to 100 (10.0dB)"

- id: set_aux_output_volume
  label: Adjust output volume level for AUX/3 bus audio
  kind: action
  command: "OL3{a}"
  params:
    - name: a
      type: integer
      description: "-801 (-INF dB), -800 (-80.0dB) to 0 (0.0dB) to 100 (10.0dB)"

- id: set_audio_delay
  label: Adjust delay time of input audio
  kind: action
  command: "ADT{a},{b}"
  params:
    - name: a
      type: integer
      description: "0=AUDIO IN 1, 1=AUDIO IN 2, 2=AUDIO IN 3, 3=AUDIO IN 4, 4=AUDIO IN 5/6"
    - name: b
      type: integer
      description: "0 (0.0 fps) to 120 (12.0 fps)"

- id: query_volume
  label: Acquire information on volume level
  kind: query
  command: "QAL{a}"  # source also shows "QAL{b}" variant
  params:
    - name: a
      type: integer
      description: "0=AUDIO IN 1, 1=AUDIO IN 2, 2=AUDIO IN 3, 3=AUDIO IN 4, 4=AUDIO IN 5/6, 5=SDI IN 1, 6=SDI IN 2, 7=SDI IN 3, 8=SDI IN 4, 9=HDMI IN 5, 10=HDMI IN 6, 11=MASTER OUT, 12=PVW/2, 13=AUX/3, 14=ALL"

- id: set_audio_output_bus
  label: Assign the bus for an audio output connector
  kind: action
  command: "AOS{a},{b}"
  params:
    - name: a
      type: integer
      description: "0=AUDIO OUT XLR, 1=AUDIO OUT RCA, 2=PHONES"
    - name: b
      type: integer
      description: "0=PGM/1, 1=PVW/2, 2=AUX/3"

- id: query_audio_output_bus
  label: Query the state of the bus for an audio output connector
  kind: query
  command: "QAS{a}"  # source also shows "QAS{a,b}" variant
  params:
    - name: a
      type: integer
      description: "0=AUDIO OUT XLR, 1=AUDIO OUT RCA, 2=PHONES"

- id: set_input_mute
  label: Specify the mute function for input audio
  kind: action
  command: "IAM{a},{b}"
  params:
    - name: a
      type: integer
      description: "0=AUDIO IN 1, 1=AUDIO IN 2, 2=AUDIO IN 3, 3=AUDIO IN 4, 4=AUDIO IN 5/6, 5=SDI IN 1, 6=SDI IN 2, 7=SDI IN 3, 8=SDI IN 4, 9=HDMI IN 5, 10=HDMI IN 6"
    - name: b
      type: integer
      description: "0=OFF, 1=ON"

- id: set_input_solo
  label: Specify the solo function for input audio
  kind: action
  command: "IAS{a},{b}"
  params:
    - name: a
      type: integer
      description: "0=AUDIO IN 1, 1=AUDIO IN 2, 2=AUDIO IN 3, 3=AUDIO IN 4, 4=AUDIO IN 5/6, 5=SDI IN 1, 6=SDI IN 2, 7=SDI IN 3, 8=SDI IN 4, 9=HDMI IN 5, 10=HDMI IN 6"
    - name: b
      type: integer
      description: "0=OFF, 1=ON"

# System-related operations
- id: set_hdcp
  label: Set HDCP on/off
  kind: action
  command: "HCP{a}"
  params:
    - name: a
      type: integer
      description: "0=OFF, 1=ON"

- id: set_test_pattern
  label: Set test pattern
  kind: action
  command: "TPT{a}"
  params:
    - name: a
      type: integer
      description: "0=OFF, 1=75% COLOR BAR, 2=100% COLOR BAR, 3=RAMP, 4=STEP, 5=HATCH"

- id: set_test_tone
  label: Set test tone
  kind: action
  command: "TTN{a}"
  params:
    - name: a
      type: integer
      description: "0=OFF, 1=-20dB@1kHz, 2=-10dB@1kHz, 3=0dB@1kHz, 4=-20dB@400Hz, 5=-10dB@400Hz, 6=0dB@400Hz"

- id: recall_preset
  label: Call up preset memory
  kind: action
  command: "MEM{a}"
  params:
    - name: a
      type: integer
      description: "0=Preset 1, 1=Preset 2, 2=Preset 3, 3=Preset 4, 4=Preset 5, 5=Preset 6, 6=Preset 7, 7=Preset 8"

- id: query_panel_status
  label: Acquire status of the operating panel buttons
  kind: query
  command: "QPL{a}"  # source also shows "QPL{b}" variant
  params:
    - name: a
      type: integer
      description: "0=PGM/1, 1=PVW/2, 2=AUX/3, 3=PinP/SPLIT, 4=DSK, 5=FREEZE, 6=Video fade level, 7=ALL"

- id: gpo_output
  label: GPO output
  kind: action
  command: "GPO{a},{b}"
  params:
    - name: a
      type: integer
      description: "0=GPO1, 1=GPO2, 2=GPO3, 3=GPO4"
    - name: b
      type: integer
      description: "When ONE SHOT: 1=Output; When ALT: 0=OFF, 1=ON"

- id: set_transition_mode
  label: Operation mode for video transition
  kind: action
  command: "MOD{a}"
  params:
    - name: a
      type: integer
      description: "0=PGM-PST, 1=DISSOLVE, 2=MATRIX"

- id: camera_preset_recall
  label: Camera control (preset recall)
  kind: action
  command: "CAM{a},{b}"
  params:
    - name: a
      type: integer
      description: "0-6 (camera ID)"
    - name: b
      type: integer
      description: "0=MEMORY1, 1=MEMORY2, 2=MEMORY3, 3=MEMORY4, 4=MEMORY5, 5=MEMORY6, 6=MEMORY7, 7=MEMORY8"

- id: query_crosspoint_tally
  label: Acquire cross-point status
  kind: query
  command: "TLY"  # source also shows "TLY{a,b,...,h}" variant
  params: []

- id: query_version
  label: Version information
  kind: query
  command: "VER"  # source also shows "VER:,{a}" variant
  params: []

- id: query_device_status
  label: Acquire status of XS-62S
  kind: query
  command: "ACS"
  params: []

Feedbacks

- id: ack
  type: enum
  values: [ok]
  description: "ACK (0x06) acknowledges a command. Some commands echo the parameter (e.g. ACK a)."

- id: error
  type: enum
  values: [syntax_error, invalid, out_of_range]
  description: "stxERR:a; - 0=syntax error, 4=invalid (conflicts with another setting), 5=out of range error"

Events

- id: flow_control_xon
  type: notification
  description: "stxXON; - unsolicited XON flow control signal"

- id: flow_control_xoff
  type: notification
  description: "stxXOFF; - unsolicited XOFF flow control signal"

- id: error_event
  type: notification
  description: "stxERR:{code}; - unsolicited error response with code 0/4/5"

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: source describes no explicit safety warnings or interlock procedures

Notes

Command framing on the wire: every command is wrapped with STX (0x02) prefix and ; terminator; parameters are separated by : and ,. Replies use ACK (0x06), sometimes followed by an echoed parameter. After each command, controllers must wait for ACK before sending the next. Operating mode (PGM-PST, DISSOLVE, MATRIX) affects which commands are valid — some return ERR:4 in DISSOLVE/MATRIX. The RS-232 cable must be a crossover. RS-232 supports 9600 and 38400 bps; its communication settings are 8N1 with XON/XOFF flow control. Camera control over RS-422 supports 9600 and 38400 bps, 8N1, with no flow control. LAN control uses Telnet on TCP port 8023. The source describes VISCA-compatible camera control over RS-422 and control of up to seven daisy-chained cameras, and control of up to six cameras via the CONTROL port (LAN), including JVC, Panasonic, Canon, PTZOptics, Avonic, and cameras supporting VISCA over IP. TALLY/GPIO connector is DB-25 female, with open-collector tally outputs rated 12V/200mA max; GPI inputs use no-voltage contact triggering with photocoupler.

Provenance

source_domains:
  - static.roland.com
source_urls:
  - https://static.roland.com/assets/media/pdf/XS-62S_reference_v31_eng02_W.pdf
retrieved_at: 2026-06-12T01:15:21.296Z
last_checked_at: 2026-10-07T10:50:11.326Z

Verification Summary

verdict: verified
checked_at: 2026-10-07T10:50:11.326Z
matched_actions: 52
action_count: 52
confidence: medium
summary: "All 52 spec actions map one-to-one to the source command tables, transport values match, and the spontaneous ERR/XON/XOFF messages are modelled as Events. (3 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "tally/GPIO pin-by-pin command mapping beyond GPO and GPI assignment; VISCA-over-IP and RS-422 camera control protocol details"
- "source describes no explicit safety warnings or interlock procedures"
- "TALLY output PGM/PST states are triggered by panel crosspoint selection, not by an explicit command — only GPO 1-4 are addressable via GPO command; firmware version compatibility not stated in source"

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