Summary

Multi-channel power amplifier with RS-232C ASCII control at 115200 baud, 8N1, no flow control. Supports 4 channels (A-D, prefixes 0A/0B/0C/0D) with independent volume, balance, mute, and power control per channel. Analog/digital input selection supported on D-series models with Main SW V2.45+. Signal Sense mode on V02 units (SW V2.43+) disables power commands.

Transport

protocols:
  - serial
serial:
  baud_rate: 115200
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none  # source: "The RS232 hardware does not support flow control"
auth:
  type: none  # inferred: no auth procedure in source

Traits

- powerable
- routable  # input selection on D-series models
- levelable  # volume, balance
- queryable

Actions

- 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: channel_on
  label: Channel On
  kind: action
  command: "channel_on!"
  params:
    - name: channel
      type: enum
      values: [0A, 0B, 0C, 0D]
      description: Channel prefix. Omit for all channels.

- id: channel_off
  label: Channel Off
  kind: action
  command: "channel_off!"
  params:
    - name: channel
      type: enum
      values: [0A, 0B, 0C, 0D]
      description: Channel prefix. Omit for all channels.

- id: volume_up
  label: Volume Up
  kind: action
  command: "volume_up!"
  params:
    - name: channel
      type: enum
      values: [0A, 0B, 0C, 0D]
      description: Channel prefix. Omit for all channels.

- id: volume_down
  label: Volume Down
  kind: action
  command: "volume_down!"
  params:
    - name: channel
      type: enum
      values: [0A, 0B, 0C, 0D]
      description: Channel prefix. Omit for all channels.

- id: volume_set
  label: Set Volume
  kind: action
  command: "volume_n!"
  params:
    - name: level
      type: integer
      description: Volume level 1-96
    - name: channel
      type: enum
      values: [0A, 0B, 0C, 0D]
      description: Channel prefix. Omit for all channels.

- id: volume_l_up
  label: Left Channel Volume Up
  kind: action
  command: "volume_l_up!"
  params:
    - name: channel
      type: enum
      values: [0A, 0B, 0C, 0D]
      description: Channel prefix. Omit for all channels.

- id: volume_r_up
  label: Right Channel Volume Up
  kind: action
  command: "volume_r_up!"
  params:
    - name: channel
      type: enum
      values: [0A, 0B, 0C, 0D]
      description: Channel prefix. Omit for all channels.

- id: volume_l_down
  label: Left Channel Volume Down
  kind: action
  command: "volume_l_down!"
  params:
    - name: channel
      type: enum
      values: [0A, 0B, 0C, 0D]
      description: Channel prefix. Omit for all channels.

- id: volume_r_down
  label: Right Channel Volume Down
  kind: action
  command: "volume_r_down!"
  params:
    - name: channel
      type: enum
      values: [0A, 0B, 0C, 0D]
      description: Channel prefix. Omit for all channels.

- id: volume_l_set
  label: Set Left Channel Volume
  kind: action
  command: "volume_l_n!"
  params:
    - name: level
      type: integer
      description: Volume level 1-96
    - name: channel
      type: enum
      values: [0A, 0B, 0C, 0D]
      description: Channel prefix. Omit for all channels.

- id: volume_r_set
  label: Set Right Channel Volume
  kind: action
  command: "volume_r_n!"
  params:
    - name: level
      type: integer
      description: Volume level 1-96
    - name: channel
      type: enum
      values: [0A, 0B, 0C, 0D]
      description: Channel prefix. Omit for all channels.

- id: mute_toggle
  label: Mute Toggle
  kind: action
  command: "mute!"
  params:
    - name: channel
      type: enum
      values: [0A, 0B, 0C, 0D]
      description: Channel prefix. Omit for all channels.

- id: mute_on
  label: Mute On
  kind: action
  command: "mute_on!"
  params:
    - name: channel
      type: enum
      values: [0A, 0B, 0C, 0D]
      description: Channel prefix. Omit for all channels.

- id: mute_off
  label: Mute Off
  kind: action
  command: "mute_off!"
  params:
    - name: channel
      type: enum
      values: [0A, 0B, 0C, 0D]
      description: Channel prefix. Omit for all channels.

- id: balance_right
  label: Balance Right
  kind: action
  command: "balance_right!"
  params:
    - name: channel
      type: enum
      values: [0A, 0B, 0C, 0D]
      description: Channel prefix. Omit for all channels.

- id: balance_left
  label: Balance Left
  kind: action
  command: "balance_left!"
  params:
    - name: channel
      type: enum
      values: [0A, 0B, 0C, 0D]
      description: Channel prefix. Omit for all channels.

- id: balance_L15
  label: Set Balance Max Left
  kind: action
  command: "balance_L15!"
  params:
    - name: channel
      type: enum
      values: [0A, 0B, 0C, 0D]
      description: Channel prefix. Omit for all channels.

- id: balance_000
  label: Set Balance Center
  kind: action
  command: "balance_000!"
  params:
    - name: channel
      type: enum
      values: [0A, 0B, 0C, 0D]
      description: Channel prefix. Omit for all channels.

- id: balance_R15
  label: Set Balance Max Right
  kind: action
  command: "balance_R15!"
  params:
    - name: channel
      type: enum
      values: [0A, 0B, 0C, 0D]
      description: Channel prefix. Omit for all channels.

- id: input_sel_auto
  label: Set Input Selection Auto
  kind: action
  command: "input_sel_auto!"
  params: []
  # Requires Main SW V2.45, RKB-D850/D8100 only

- id: input_sel_digital
  label: Select Optical Input
  kind: action
  command: "input_sel_digital!"
  params: []
  # Requires Main SW V2.45, RKB-D850/D8100 only

- id: input_sel_analog
  label: Select Analog Input
  kind: action
  command: "input_sel_analog!"
  params: []
  # Requires Main SW V2.45, RKB-D850/D8100 only

- id: display_update_auto
  label: Set Status Update Auto
  kind: action
  command: "display_update_auto!"
  params: []

- id: display_update_manual
  label: Set Status Update Manual
  kind: action
  command: "display_update_manual!"
  params: []

- id: factory_default_on
  label: Factory Default
  kind: action
  command: "factory_default_on!"
  params: []

- id: get_product_type
  label: Request Product Type
  kind: query
  command: "get_product_type!"
  params: []

- id: get_product_version
  label: Request Main CPU Software Version
  kind: query
  command: "get_product_version!"
  params: []

- id: get_display_update
  label: Request Status Update Mode
  kind: query
  command: "get_display_update!"
  params: []

- id: get_current_power
  label: Request Current Power Status
  kind: query
  command: "get_current_power!"
  params: []

- id: get_input_sel_mode
  label: Request Current Input Select Mode
  kind: query
  command: "get_input_sel_mode!"
  params: []
  # Requires Main SW V2.45, RKB-D850/D8100 only

- id: get_channel_status
  label: Request Current Channel Power Status
  kind: query
  command: "get_channel_status!"
  params:
    - name: channel
      type: enum
      values: [0A, 0B, 0C, 0D]
      description: Channel prefix. Omit for all channels.

- id: get_balance
  label: Request Current Balance Setting
  kind: query
  command: "get_balance!"
  params:
    - name: channel
      type: enum
      values: [0A, 0B, 0C, 0D]
      description: Channel prefix. Omit for all channels.

- id: get_current_freq
  label: Request Current Digital Input Frequency
  kind: query
  command: "get_current_freq!"
  params:
    - name: channel
      type: enum
      values: [0A, 0B, 0C, 0D]
      description: Channel prefix. Omit for all channels.

- id: get_amp_trim
  label: Request Current Level Trims
  kind: query
  command: "get_amp_trim!"
  params: []

- id: get_temperature
  label: Request Current Amplifier Temperature
  kind: query
  command: "get_temperature!"
  params: []

- id: get_fan_status
  label: Request Current Fan Speed Status
  kind: query
  command: "get_fan_status!"
  params: []

- id: get_amp_status
  label: Request Current Amplifier Status
  kind: query
  command: "get_amp_status!"
  params: []

- id: get_volume_max
  label: Request Max Volume Value
  kind: query
  command: "get_volume_max!"
  params: []

- id: get_volume_min
  label: Request Min Volume Value
  kind: query
  command: "get_volume_min!"
  params: []

- id: get_volume
  label: Request Current Volume
  kind: query
  command: "get_volume!"
  params:
    - name: channel
      type: enum
      values: [0A, 0B, 0C, 0D]
      description: Channel prefix. Omit for all channels.

- id: get_volume_l
  label: Request Current Left Channel Volume
  kind: query
  command: "get_volume_l!"
  params:
    - name: channel
      type: enum
      values: [0A, 0B, 0C, 0D]
      description: Channel prefix. Omit for all channels.

- id: get_volume_r
  label: Request Current Right Channel Volume
  kind: query
  command: "get_volume_r!"
  params:
    - name: channel
      type: enum
      values: [0A, 0B, 0C, 0D]
      description: Channel prefix. Omit for all channels.

Feedbacks

- id: power_state
  label: Power State
  type: enum
  values: [on, standby, SignalSenseMode]
  comment: SignalSenseMode returned for V02 units in Signal Sense mode (SW V2.43+)

- id: channel_power_state
  label: Channel Power State
  type: enum
  values: [on, off, amp_on, amp_off]
  comment: amp_on/amp_off returned when in Signal Sense mode

- id: volume_l_state
  label: Left Channel Volume State
  type: integer
  range: [0, 96]
  comment: Per channel. Returned with trailing underscore (e.g. volume_l_=##!)

- id: volume_r_state
  label: Right Channel Volume State
  type: integer
  range: [0, 96]
  comment: Per channel. Returned with trailing underscore (e.g. volume_r_=##!)

- id: mute_state
  label: Mute State
  type: enum
  values: [on, off]

- id: balance_state
  label: Balance State
  type: enum
  values: [L01, L02, L03, L04, L05, L06, L07, L08, L09, L10, L11, L12, L13, L14, L15, 000, R01, R02, R03, R04, R05, R06, R07, R08, R09, R10, R11, R12, R13, R14, R15]
  comment: Per channel. Format L01-15, 000, R01-15.

- id: input_sel_mode
  label: Input Selection Mode
  type: enum
  values: [auto, digital, analog]
  comment: RKB-D850/D8100 only, requires Main SW V2.45

- id: display_update_mode
  label: Display Update Mode
  type: enum
  values: [auto, manual]

- id: product_type
  label: Product Type
  type: string
  comment: Format "product_type=##,text" - 2-digit length prefix + comma + text, no terminating "!"

- id: product_version
  label: Product Version
  type: string
  comment: Format "product_version=##,text" - 2-digit length prefix + comma + text, no terminating "!"

- id: frequency
  label: Digital Input Frequency
  type: enum
  values: [off, 32, 44.1, 48, 88.2, 96, 176.4, 192]
  comment: Per channel for digital source input

- id: amp_trim
  label: Amplifier Trim
  type: enum
  values: [min, max, "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", "91", "92", "93", "94", "95", "96"]
  comment: Returns level trim per channel. Example values: 19, min, max.

- id: temperature
  label: Temperature
  type: string
  comment: RKB-850/D850: 3 values (AB, CD, PS). RKB-8100/D8100: 4 values (AB, CD, PS, PS). Format "temperature=32,32,34!"

- id: fan_status
  label: Fan Status
  type: enum
  values: [normal, high]

- id: amp_status
  label: Amplifier Status
  type: enum
  values: [normal, protection]

- id: volume_max
  label: Volume Max
  type: integer
  range: [0, 96]
  comment: Example volume_max=96!

- id: volume_min
  label: Volume Min
  type: integer
  range: [0, 96]
  comment: Example volume_min=0!

Variables

# All settable parameters exposed as discrete actions above.
# No additional variables beyond what is covered by Actions/Feedbacks.

Events

# In display_update_auto mode, device sends unsolicited status changes:
# - power state changes
# - temperature updates
# - input level trim changes
# - digital input frequency changes
# Each line separated by carriage return when multi-channel.
# UNRESOLVED: exact unsolicited event message formats not exhaustively documented

Macros

# No explicit multi-step macros documented in source.

Safety

confirmation_required_for: []
interlocks:
  - desc: RS232 volume control requires all 4 front panel level trims set to minimum
    source: "Enabling Volume Control section"
  - desc: Do not mix power_on/power_off with channel_on/channel_off - use one or the other
    source: "Power On vs Channel On section"
  - desc: Signal Sense mode disables RS232 power commands (V02 units with SW V2.43+)
    source: "Signal Sense Mode section"
  - desc: RS232 hardware does not support flow control; care needed to avoid packet loss
    source: "RS232 ASCII Controller Command List intro"

Notes

All commands terminated by "!". No spaces in commands. No carriage return/line feed after command. Responses terminated by "!" or byte count prefix (2-digit length + "," + text, no terminating character) for variable length text. Channel prefixes: 0A=ChA, 0B=ChB, 0C=ChC, 0D=ChD. Omit prefix for all-channel commands. Balance and individual L/R volume are mutually exclusive — using L/R volume resets balance to 0. Volume up/down set commands require n in 1-96. Balance L15/L01..L15, 000, R01..R15.

Provenance

source_domains:
  - rotel.com
source_urls:
  - "https://rotel.com/sites/default/files/product/rs232/RKB850%20Protocol.pdf"
retrieved_at: 2026-05-21T20:50:35.800Z
last_checked_at: 2026-06-09T07:16:12.342Z

Verification Summary

verdict: verified
checked_at: 2026-06-09T07:16:12.342Z
matched_actions: 45
action_count: 45
confidence: medium
summary: "All 45 spec actions found as exact literals in source; all transport parameters verified; one-to-one coverage. (5 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "Balance set range not exhaustively listed; only L15, 000, R15 shown as discrete commands"
- "exact unsolicited event message formats not exhaustively documented"
- "firmware version compatibility not stated in source"
- "exact unsolicited event message formats not fully documented"
- "balance_set parameterized action omitted; only L15, 000, R15 shown as discrete commands"

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