Summary
Rotel RC-1590 stereo preamplifier. Supports RS-232C (115200 baud, 8N1, no flow control) and TCP/IP control (port 9590). ASCII protocol with "!" command terminator and "$" response terminator (V2.0 protocol, firmware V1.40+). V1.0 legacy protocol (firmware prior to V1.40) uses "!" response terminator and different command names. Covers power, volume, source selection, tone/balance, transport, dimmer, display, power mode, and network queries.
Transport
protocols:
- serial
- tcp
serial:
baud_rate: 115200
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
addressing:
port: 9590
auth:
type: none # inferred: no auth procedure in source
Traits
- powerable
- levelable
- routable
- queryable
Actions
# V2.0 protocol (firmware V1.40+). V1.0 legacy commands (firmware prior to V1.40) are listed
# in a separate section below. Command payloads are verbatim from source.
- id: power_on
label: Power On
kind: action
command: "power_on!"
params: []
- id: power_off
label: Power Off
kind: action
command: "power_off!"
params: []
- id: power_toggle
label: Power Toggle
kind: action
command: "power_toggle!"
params: []
- id: power_query
label: Power Status Query
kind: query
command: "power?"
params: []
- id: vol_up
label: Volume Up
kind: action
command: "vol_up!"
params: []
- id: vol_dwn
label: Volume Down
kind: action
command: "vol_dwn!"
params: []
- id: vol_min
label: Set Volume to Min
kind: action
command: "vol_min!"
params: []
- id: vol_nn
label: Set Volume to Level
kind: action
command: "vol_nn!"
params:
- name: level
type: integer
description: Volume level 01-96
- id: volume_query
label: Volume Query
kind: query
command: "volume?"
params: []
- id: mute
label: Mute Toggle
kind: action
command: "mute!"
params: []
- id: mute_on
label: Mute On
kind: action
command: "mute_on!"
params: []
- id: mute_off
label: Mute Off
kind: action
command: "mute_off!"
params: []
- id: mute_query
label: Mute Status Query
kind: query
command: "mute?"
params: []
- id: source_cd
label: Source CD
kind: action
command: "cd!"
params: []
- id: source_coax1
label: Source Coax 1
kind: action
command: "coax1!"
params: []
- id: source_coax2
label: Source Coax 2
kind: action
command: "coax2!"
params: []
- id: source_coax3
label: Source Coax 3
kind: action
command: "coax3!"
params: []
- id: source_opt1
label: Source Optical 1
kind: action
command: "opt1!"
params: []
- id: source_opt2
label: Source Optical 2
kind: action
command: "opt2!"
params: []
- id: source_opt3
label: Source Optical 3
kind: action
command: "opt3!"
params: []
- id: source_aux
label: Source Aux
kind: action
command: "aux!"
params: []
- id: source_tuner
label: Source Tuner
kind: action
command: "tuner!"
params: []
- id: source_phono
label: Source Phono
kind: action
command: "phono!"
params: []
- id: source_usb
label: Source Front USB
kind: action
command: "usb!"
params: []
- id: source_bluetooth
label: Source Bluetooth
kind: action
command: "bluetooth!"
params: []
- id: source_bal_xlr
label: Source XLR
kind: action
command: "bal_xlr!"
params: []
- id: source_pc_usb
label: Source PC-USB
kind: action
command: "pcusb!"
params: []
- id: source_query
label: Source Query
kind: query
command: "source?"
params: []
- id: play
label: Play
kind: action
command: "play!"
params: []
- id: stop
label: Stop
kind: action
command: "stop!"
params: []
- id: pause
label: Pause
kind: action
command: "pause!"
params: []
- id: trkf
label: Track Forward / Tune Up
kind: action
command: "trkf!"
params: []
- id: trkb
label: Track Backward / Tune Down
kind: action
command: "trkb!"
params: []
- id: bypass_on
label: Tone Bypass On
kind: action
command: "bypass_on!"
params: []
- id: bypass_off
label: Tone Bypass Off
kind: action
command: "bypass_off!"
params: []
- id: bypass_query
label: Tone Bypass Query
kind: query
command: "bypass?"
params: []
- id: bass_up
label: Bass Up
kind: action
command: "bass_up!"
params: []
- id: bass_down
label: Bass Down
kind: action
command: "bass_down!"
params: []
- id: bass_set
label: Set Bass to Level
kind: action
command: "bass_{level}!"
params:
- name: level
type: string
description: Bass value: one of -10, 000, +10 (full range -10..+10 documented but only three discrete commands listed)
- id: bass_query
label: Bass Level Query
kind: query
command: "bass?"
params: []
- id: treble_up
label: Treble Up
kind: action
command: "treble_up!"
params: []
- id: treble_down
label: Treble Down
kind: action
command: "treble_down!"
params: []
- id: treble_set
label: Set Treble to Level
kind: action
command: "treble_{level}!"
params:
- name: level
type: string
description: Treble value: one of -10, 000, +10 (full range -10..+10 documented but only three discrete commands listed)
- id: treble_query
label: Treble Level Query
kind: query
command: "treble?"
params: []
- id: balance_r
label: Balance Right
kind: action
command: "balance_r!"
params: []
- id: balance_l
label: Balance Left
kind: action
command: "balance_l!"
params: []
- id: balance_l15
label: Set Balance to Max Left
kind: action
command: "balance_l15!"
params: []
- id: balance_000
label: Set Balance to Center
kind: action
command: "balance_000!"
params: []
- id: balance_r15
label: Set Balance to Max Right
kind: action
command: "balance_r15!"
params: []
- id: balance_query
label: Balance Query
kind: query
command: "balance?"
params: []
- id: freq_query
label: Digital Input Frequency Query
kind: query
command: "freq?"
params: []
- id: dimmer_toggle
label: Toggle Dimmer
kind: action
command: "dimmer!"
params: []
- id: dimmer_0
label: Set Dimmer to Brightest (0)
kind: action
command: "dimmer_0!"
params: []
- id: dimmer_1
label: Set Dimmer to Level 1
kind: action
command: "dimmer_1!"
params: []
- id: dimmer_2
label: Set Dimmer to Level 2
kind: action
command: "dimmer_2!"
params: []
- id: dimmer_3
label: Set Dimmer to Level 3
kind: action
command: "dimmer_3!"
params: []
- id: dimmer_4
label: Set Dimmer to Level 4
kind: action
command: "dimmer_4!"
params: []
- id: dimmer_5
label: Set Dimmer to Level 5
kind: action
command: "dimmer_5!"
params: []
- id: dimmer_6
label: Set Dimmer to Dimmest (6)
kind: action
command: "dimmer_6!"
params: []
- id: dimmer_query
label: Dimmer Query
kind: query
command: "dimmer?"
params: []
- id: pcusb_class_1
label: Set PC-USB Audio Class to 1.0
kind: action
command: "pcusb_class_1!"
params: []
- id: pcusb_class_2
label: Set PC-USB Audio Class to 2.0
kind: action
command: "pcusb_class_2!"
params: []
- id: pcusb_query
label: PC-USB Class Query
kind: query
command: "pcusb?"
params: []
- id: rs232_update_on
label: Set RS232 Update to Auto
kind: action
command: "rs232_update_on!"
params: []
- id: rs232_update_off
label: Set RS232 Update to Manual
kind: action
command: "rs232_update_off!"
params: []
- id: version_query
label: Main CPU Version Query
kind: query
command: "version?"
params: []
- id: pc_version_query
label: PC-USB Version Query
kind: query
command: "pc_version?"
params: []
- id: ip_query
label: IP Address Query
kind: query
command: "ip?"
params: []
- id: mac_query
label: MAC Address Query
kind: query
command: "mac?"
params: []
- id: model_query
label: Model Number Query
kind: query
command: "model?"
params: []
- id: discover_query
label: Device Discover Query
kind: query
command: "discover?"
params: []
# --- V1.0 legacy protocol (firmware prior to V1.40) ---
# These commands use different names and "!" response terminator.
# Listed separately so V2.0 IDs above remain stable for V1.40+ deployments.
- id: v1_volume_up
label: Volume Up (V1.0 legacy)
kind: action
command: "volume_up!"
notes: V1.0 protocol only. Replaced by vol_up! in V2.0.
params: []
- id: v1_volume_down
label: Volume Down (V1.0 legacy)
kind: action
command: "volume_down!"
notes: V1.0 protocol only. Replaced by vol_dwn! in V2.0.
params: []
- id: v1_volume_min
label: Set Volume to Min (V1.0 legacy)
kind: action
command: "volume_min!"
notes: V1.0 protocol only. Replaced by vol_min! in V2.0.
params: []
- id: v1_volume_n
label: Set Volume to Level n (V1.0 legacy)
kind: action
command: "volume_n!"
notes: V1.0 protocol only. Replaced by vol_nn! in V2.0. Range 1-96.
params:
- name: level
type: integer
description: Volume level 1-96
- id: v1_track_fwd
label: Track Forward (V1.0 legacy)
kind: action
command: "track_fwd!"
notes: V1.0 protocol only. Replaced by trkf! in V2.0.
params: []
- id: v1_track_back
label: Track Backward (V1.0 legacy)
kind: action
command: "track_back!"
notes: V1.0 protocol only. Replaced by trkb! in V2.0.
params: []
- id: v1_fast_fwd
label: Fast Forward / Search Forward (V1.0 legacy)
kind: action
command: "fast_fwd!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
- id: v1_fast_back
label: Fast Backward / Search Backward (V1.0 legacy)
kind: action
command: "fast_back!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
- id: v1_pc_usb
label: Source PC-USB (V1.0 legacy)
kind: action
command: "pc_usb!"
notes: V1.0 protocol only. Replaced by pcusb! in V2.0.
params: []
- id: v1_rcd
label: Source Rotel CD (V1.0 legacy)
kind: action
command: "rcd!"
notes: V1.0 protocol only. Removed in V2.0. Maps to one of coax1/coax2/bal_xlr based on RCD input setup.
params: []
- id: v1_tone_on
label: Tone Controls On (V1.0 legacy)
kind: action
command: "tone_on!"
notes: V1.0 protocol only. Replaced by bypass_off! in V2.0.
params: []
- id: v1_tone_off
label: Tone Controls Off (V1.0 legacy)
kind: action
command: "tone_off!"
notes: V1.0 protocol only. Replaced by bypass_on! in V2.0.
params: []
- id: v1_balance_right
label: Balance Right (V1.0 legacy)
kind: action
command: "balance_right!"
notes: V1.0 protocol only. Replaced by balance_r! in V2.0.
params: []
- id: v1_balance_left
label: Balance Left (V1.0 legacy)
kind: action
command: "balance_left!"
notes: V1.0 protocol only. Replaced by balance_l! in V2.0.
params: []
- id: v1_balance_R15
label: Set Balance to Max Right (V1.0 legacy)
kind: action
command: "balance_R15!"
notes: V1.0 protocol only. Replaced by balance_r15! in V2.0.
params: []
- id: v1_balance_L15
label: Set Balance to Max Left (V1.0 legacy)
kind: action
command: "balance_L15!"
notes: V1.0 protocol only. Replaced by balance_l15! in V2.0.
params: []
- id: v1_power_mode_quick
label: Set Power Mode to Quick (V1.0 legacy)
kind: action
command: "power_mode_quick!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
- id: v1_power_mode_normal
label: Set Power Mode to Normal (V1.0 legacy)
kind: action
command: "power_mode_normal!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
- id: v1_factory_default_on
label: Reset to Factory Defaults (V1.0 legacy)
kind: action
command: "factory_default_on!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
- id: v1_display_update_auto
label: Set Display Update to Auto (V1.0 legacy)
kind: action
command: "display_update_auto!"
notes: V1.0 protocol only. Replaced by rs232_update_on! in V2.0.
params: []
- id: v1_display_update_manual
label: Set Display Update to Manual (V1.0 legacy)
kind: action
command: "display_update_manual!"
notes: V1.0 protocol only. Replaced by rs232_update_off! in V2.0.
params: []
- id: v1_menu
label: Display Menu (V1.0 legacy)
kind: action
command: "menu!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
- id: v1_exit
label: Exit Key (V1.0 legacy)
kind: action
command: "exit!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
- id: v1_up
label: Cursor Up (V1.0 legacy)
kind: action
command: "up!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
- id: v1_down
label: Cursor Down (V1.0 legacy)
kind: action
command: "down!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
- id: v1_left
label: Cursor Left (V1.0 legacy)
kind: action
command: "left!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
- id: v1_right
label: Cursor Right (V1.0 legacy)
kind: action
command: "right!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
- id: v1_enter
label: Enter Key (V1.0 legacy)
kind: action
command: "enter!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
- id: v1_num_1
label: Number Key 1 (V1.0 legacy)
kind: action
command: "1!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
- id: v1_num_2
label: Number Key 2 (V1.0 legacy)
kind: action
command: "2!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
- id: v1_num_3
label: Number Key 3 (V1.0 legacy)
kind: action
command: "3!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
- id: v1_num_4
label: Number Key 4 (V1.0 legacy)
kind: action
command: "4!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
- id: v1_num_5
label: Number Key 5 (V1.0 legacy)
kind: action
command: "5!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
- id: v1_num_6
label: Number Key 6 (V1.0 legacy)
kind: action
command: "6!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
- id: v1_num_7
label: Number Key 7 (V1.0 legacy)
kind: action
command: "7!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
- id: v1_num_8
label: Number Key 8 (V1.0 legacy)
kind: action
command: "8!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
- id: v1_num_9
label: Number Key 9 (V1.0 legacy)
kind: action
command: "9!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
- id: v1_num_0
label: Number Key 0 (V1.0 legacy)
kind: action
command: "0!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
# V1.0 feedback request commands
- id: v1_get_current_power
label: Power Status Query (V1.0 legacy)
kind: query
command: "get_current_power!"
notes: V1.0 protocol only. Replaced by power? in V2.0.
params: []
- id: v1_get_current_source
label: Source Query (V1.0 legacy)
kind: query
command: "get_current_source!"
notes: V1.0 protocol only. Replaced by source? in V2.0.
params: []
- id: v1_get_volume
label: Volume Query (V1.0 legacy)
kind: query
command: "get_volume!"
notes: V1.0 protocol only. Replaced by volume? in V2.0.
params: []
- id: v1_get_mute_status
label: Mute Status Query (V1.0 legacy)
kind: query
command: "get_mute_status!"
notes: V1.0 protocol only. Replaced by mute? in V2.0.
params: []
- id: v1_get_tone
label: Tone Control State Query (V1.0 legacy)
kind: query
command: "get_tone!"
notes: V1.0 protocol only. Replaced by bypass? in V2.0.
params: []
- id: v1_get_bass
label: Bass Level Query (V1.0 legacy)
kind: query
command: "get_bass!"
notes: V1.0 protocol only. Replaced by bass? in V2.0.
params: []
- id: v1_get_treble
label: Treble Level Query (V1.0 legacy)
kind: query
command: "get_treble!"
notes: V1.0 protocol only. Replaced by treble? in V2.0.
params: []
- id: v1_get_balance
label: Balance Query (V1.0 legacy)
kind: query
command: "get_balance!"
notes: V1.0 protocol only. Replaced by balance? in V2.0.
params: []
- id: v1_get_pcusb_class
label: PC-USB Class Query (V1.0 legacy)
kind: query
command: "get_pcusb_class!"
notes: V1.0 protocol only. Replaced by pcusb? in V2.0.
params: []
- id: v1_get_current_freq
label: Digital Input Frequency Query (V1.0 legacy)
kind: query
command: "get_current_freq!"
notes: V1.0 protocol only. Replaced by freq? in V2.0. V1.0 does not include 384 kHz response.
params: []
- id: v1_get_volume_max
label: Max Volume Query (V1.0 legacy)
kind: query
command: "get_volume_max!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
- id: v1_get_volume_min
label: Min Volume Query (V1.0 legacy)
kind: query
command: "get_volume_min!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
- id: v1_get_tone_max
label: Max Tone Value Query (V1.0 legacy)
kind: query
command: "get_tone_max!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
- id: v1_get_power_mode
label: Power Mode Query (V1.0 legacy)
kind: query
command: "get_power_mode!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
- id: v1_get_display
label: Full Display Query (V1.0 legacy)
kind: query
command: "get_display!"
notes: V1.0 protocol only. Removed in V2.0. Returns display=###,text format.
params: []
- id: v1_get_display1
label: Display Line 1 Query (V1.0 legacy)
kind: query
command: "get_display1!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
- id: v1_get_display2
label: Display Line 2 Query (V1.0 legacy)
kind: query
command: "get_display2!"
notes: V1.0 protocol only. Removed in V2.0.
params: []
- id: v1_get_product_type
label: Product Type Query (V1.0 legacy)
kind: query
command: "get_product_type!"
notes: V1.0 protocol only. Replaced by model? in V2.0.
params: []
- id: v1_get_product_version
label: Product Version Query (V1.0 legacy)
kind: query
command: "get_product_version!"
notes: V1.0 protocol only. Replaced by version? in V2.0.
params: []
- id: v1_get_display_size
label: Display Size Query (V1.0 legacy)
kind: query
command: "get_display_size!"
notes: V1.0 protocol only. Removed in V2.0. Requires Main Software V1.2.9 or later.
params: []
- id: v1_get_display_update
label: Display Update Mode Query (V1.0 legacy)
kind: query
command: "get_display_update!"
notes: V1.0 protocol only. Removed in V2.0. Requires Main Software V1.2.9 or later.
params: []
Feedbacks
- id: power_state
label: Power Status
type: enum
values:
- on
- standby
- id: source_state
label: Source Status
type: enum
values:
- cd
- coax1
- coax2
- coax3
- opt1
- opt2
- opt3
- aux
- tuner
- phono
- usb
- pc_usb
- bal_xlr
- bluetooth
notes: V1.0 adds _cd suffixed variants (e.g. coax1_cd) for Rotel Link RCD input.
- id: volume_state
label: Volume Level
type: integer
description: 00-96 (V2.0); 1-96 in V1.0.
- id: mute_state
label: Mute Status
type: enum
values:
- on
- off
- id: bypass_state
label: Tone Bypass State
type: enum
values:
- on
- off
- id: bass_state
label: Bass Level
type: string
description: 000, +01 to +10, -01 to -10
- id: treble_state
label: Treble Level
type: string
description: 000, +01 to +10, -01 to -10
- id: balance_state
label: Balance
type: string
description: 000, L01-L15, R01-R15
- id: freq_state
label: Digital Input Frequency
type: enum
values:
- "off"
- "32"
- "44.1"
- "48"
- "88.2"
- "96"
- "176.4"
- "192"
- "384"
notes: V1.0 does not include 384 kHz response.
- id: dimmer_state
label: Dimmer Level
type: integer
description: 0-6 (0=brightest, 6=dimmest)
- id: pcusb_class_state
label: PC-USB Class
type: enum
values:
- "1"
- "2"
- id: version_state
label: Main CPU Version
type: string
- id: pc_version_state
label: PC-USB Version
type: string
- id: ip_state
label: IP Address
type: string
notes: Returned as ipaddress=###.###.###.###$
- id: mac_state
label: MAC Address
type: string
notes: Uppercase hex, no separators.
- id: model_state
label: Model Number
type: string
- id: discover_state
label: Device Discover Response
type: string
description: Format: discover=ip=###.###.###.###port=#### mac=############
notes: Source example shows no space between ip value and port key.
- id: update_mode_state
label: RS232 Update Mode
type: enum
values:
- auto
- manual
- id: tone_state_v1
label: Tone Control State (V1.0 only)
type: enum
values:
- on
- off
notes: V1.0 only. Replaced by bypass_state in V2.0.
- id: power_mode_state_v1
label: Power Mode (V1.0 only)
type: enum
values:
- quick
- normal
notes: V1.0 only. Removed in V2.0.
- id: volume_max_state_v1
label: Max Volume Value (V1.0 only)
type: integer
notes: V1.0 only. Removed in V2.0.
- id: volume_min_state_v1
label: Min Volume Value (V1.0 only)
type: integer
notes: V1.0 only. Removed in V2.0.
- id: tone_max_state_v1
label: Max Tone Value (V1.0 only)
type: integer
notes: V1.0 only. Returned as tone_max=10! in V1.0.
- id: product_type_state_v1
label: Product Type (V1.0 only)
type: string
notes: V1.0 only. Format product_type=##,text. Replaced by model_state in V2.0.
- id: product_version_state_v1
label: Product Version (V1.0 only)
type: string
notes: V1.0 only. Format product_version=##,text. Replaced by version_state in V2.0.
- id: display_size_state_v1
label: Display Size (V1.0 only)
type: string
notes: V1.0 only. Format display_size=##,##. Requires Main Software V1.2.9+.
- id: display_update_state_v1
label: Display Update Mode (V1.0 only)
type: enum
values:
- auto
- manual
notes: V1.0 only. Requires Main Software V1.2.9+.
- id: display_state_v1
label: Full Display Text (V1.0 only)
type: string
notes: V1.0 only. Format display=###,text. 3-digit length prefix.
Variables
# Volume, bass, treble, balance are set via Actions with params.
# No separate Variables section needed.
Events
# UNRESOLVED: automatic display update events mentioned but no explicit event schema in source
# (Section 5 describes hex char mapping for display text but not a structured notification).
Macros
# No explicit multi-step macros described in source.
Safety
confirmation_required_for:
- factory_default_on # V1.0 only; resets unit to factory defaults
interlocks: []
# UNRESOLVED: no other safety warnings or interlock procedures in source
Notes
- Command terminator: "!" (commands). Response terminator: "$" (V2.0, firmware V1.40+), "!" (V1.0, firmware prior to V1.40). Do not send CR/LF after command.
- Do not include spaces in commands.
- Rotel Link RCD input selection (V1.0): affects response strings for that input (suffix "_cd" variant, e.g. source=coax1_cd!).
- PC-USB transport controls (play/stop/pause/track) require USB 2.0 mode on RC-1590.
- V2.0 protocol (V1.40+) changes: tone_on!/tone_off! renamed to bypass_off!/bypass_on!; display_update_auto!/display_update_manual! renamed to rs232_update_on!/rs232_update_off!; volume_up!/volume_down! shortened to vol_up!/vol_dwn!; track_fwd!/track_back! shortened to trkf!/trkb!; all feedback request get_* commands shortened to bare noun? queries. See Appendix A of source for full delta.
- V2.0 adds 384 kHz to freq? response. V1.0 freq? tops out at 192 kHz.
- RS-232 hardware does not support flow control; avoid packet loss by pacing commands.
- IP responses sent via same TCP port (9590) as commands received.
- Section 5: special hex character mapping (3-byte EE 82 xx sequences) for display symbols A,C,F,G,I,L,M,R,S,T, and play/pause/skip icons. Used when parsing display=###,text (V1.0) feedback.
- V1.0 get_display* responses include a 2- or 3-digit byte-count prefix followed by "," then text; the byte count does not include the length digits or the comma.
- V1.0 rcd! source select maps dynamically to whichever input is configured as the Rotel Link RCD input in setup (coax1, coax2, or bal_xlr).
Spec upgraded to revision 2. Added: literal `command:` payloads to every action, all V1.0 legacy actions (volume, transport, RCD, power mode, factory default, display update, menu, numeric), all V1.0/V2.0 query commands, balance_000 action, new feedbacks (V1.0 product_type, product_version, display_size, display_update, power_mode, tone_max, volume_max/min), Safety confirmation_required for factory_default_on.
## Provenance
```yaml
source_domains:
- rotel.com
source_urls:
- "https://www.rotel.com/sites/default/files/product/rs232/RC1590%20Protocol.pdf"
- https://www.rotel.com/manuals-resources/rs232-protocols
retrieved_at: 2026-05-22T14:55:41.363Z
last_checked_at: 2026-06-09T07:16:11.603Z
Verification Summary
verdict: verified
checked_at: 2026-06-09T07:16:11.603Z
matched_actions: 130
action_count: 130
confidence: medium
summary: "All 130 spec actions verified as literal matches in source; V2.0 and V1.0 protocols fully covered; transport parameters confirmed. (5 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "V1.0 (prior to V1.40) commands documented in Section 3/4 of source; not all enumerated as primary actions."
- "automatic display update events mentioned but no explicit event schema in source"
- "no other safety warnings or interlock procedures in source"
- "V1.0 freq? response max is 192 kHz, V2.0 adds 384 kHz."
- "exact volume scale boundary 0 vs 1 differs by protocol revision (vol_min! → 00 in V2.0, volume_min! → min in V1.0)."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0