Summary

The Rotel A11 and A11MKII are integrated stereo amplifiers controllable via an ASCII-based RS-232 protocol. Commands terminate with !, response/status messages terminate with $. The A11MKII addition was appended to the protocol in version 1.10 (June 2024).

Transport

protocols:
  - serial
serial:
  baud_rate: 115200
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none
auth:
  type: none  # inferred: no auth procedure in source

Traits

- powerable      # inferred from power command examples
- routable       # inferred from source-select commands
- queryable      # inferred from query commands (power?, source?, volume?, ...)
- levelable      # inferred from volume/bass/treble/balance commands

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: 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_nn
  label: Set Volume to level n (01-96)
  kind: action
  command: "vol_nn!"
  params:
    - name: level
      type: integer
      description: Volume level (01-96)

- id: mute_toggle
  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: source_cd
  label: Source CD
  kind: action
  command: "cd!"
  params: []

- id: source_aux1
  label: Source Aux 1
  kind: action
  command: "aux1!"
  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_bluetooth
  label: Source Bluetooth
  kind: action
  command: "bluetooth!"
  params: []

- id: play
  label: Play Source
  kind: action
  command: "play!"
  params: []

- id: stop
  label: Stop Source
  kind: action
  command: "stop!"
  params: []

- id: pause
  label: Pause Source
  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: 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_minus_10
  label: Set Bass to -10
  kind: action
  command: "bass_-10!"
  params: []

- id: bass_000
  label: Set Bass to 0
  kind: action
  command: "bass_000!"
  params: []

- id: bass_plus_10
  label: Set Bass to +10
  kind: action
  command: "bass_+10!"
  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_minus_10
  label: Set Treble to -10
  kind: action
  command: "treble_-10!"
  params: []

- id: treble_000
  label: Set Treble to 0
  kind: action
  command: "treble_000!"
  params: []

- id: treble_plus_10
  label: Set Treble to +10
  kind: action
  command: "treble_+10!"
  params: []

- id: balance_right
  label: Balance Right
  kind: action
  command: "balance_r!"
  params: []

- id: balance_left
  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 0
  kind: action
  command: "balance_000!"
  params: []

- id: balance_R15
  label: Set Balance to Max Right
  kind: action
  command: "balance_R15!"
  params: []

- id: speaker_a_toggle
  label: Toggle Speaker A Output
  kind: action
  command: "speaker_a!"
  params: []

- id: speaker_b_toggle
  label: Toggle Speaker B Output
  kind: action
  command: "speaker_b!"
  params: []

- id: speaker_a_on
  label: Speaker A Output On
  kind: action
  command: "speaker_a_on!"
  params: []

- id: speaker_a_off
  label: Speaker A Output Off
  kind: action
  command: "speaker_a_off!"
  params: []

- id: speaker_b_on
  label: Speaker B Output On
  kind: action
  command: "speaker_b_on!"
  params: []

- id: speaker_b_off
  label: Speaker B Output Off
  kind: action
  command: "speaker_b_off!"
  params: []

- id: dimmer_toggle
  label: Toggle display dimmer
  kind: action
  command: "dimmer!"
  params: []

- id: dimmer_0
  label: Set display to brightest
  kind: action
  command: "dimmer_0!"
  params: []

- id: dimmer_1
  label: Set display to dimmer level 1
  kind: action
  command: "dimmer_1!"
  params: []

- id: dimmer_2
  label: Set display to dimmer level 2
  kind: action
  command: "dimmer_2!"
  params: []

- id: dimmer_3
  label: Set display to dimmer level 3
  kind: action
  command: "dimmer_3!"
  params: []

- id: dimmer_4
  label: Set display to dimmer level 4
  kind: action
  command: "dimmer_4!"
  params: []

- id: dimmer_5
  label: Set display to dimmer level 5
  kind: action
  command: "dimmer_5!"
  params: []

- id: dimmer_6
  label: Set display to dimmest
  kind: action
  command: "dimmer_6!"
  params: []

- id: rs232_update_on
  label: Set RS232 Update to Auto (On)
  kind: action
  command: "rs232_update_on!"
  params: []

- id: rs232_update_off
  label: Set RS232 Update to Manual (Off)
  kind: action
  command: "rs232_update_off!"
  params: []

- id: power_query
  label: Power Status Query
  kind: query
  command: "power?"
  params: []

- id: source_query
  label: Source Query
  kind: query
  command: "source?"
  params: []

- id: volume_query
  label: Volume Query
  kind: query
  command: "volume?"
  params: []

- id: mute_query
  label: Mute Status Query
  kind: query
  command: "mute?"
  params: []

- id: bypass_query
  label: Tone Bypass Query
  kind: query
  command: "bypass?"
  params: []

- id: bass_query
  label: Bass Level Query
  kind: query
  command: "bass?"
  params: []

- id: treble_query
  label: Treble Level Query
  kind: query
  command: "treble?"
  params: []

- id: balance_query
  label: Balance Query
  kind: query
  command: "balance?"
  params: []

- id: speaker_query
  label: Speaker Outputs Query
  kind: query
  command: "speaker?"
  params: []

- id: dimmer_query
  label: Display Dimmer Query
  kind: query
  command: "dimmer?"
  params: []

- id: version_query
  label: Main CPU Software Version Query
  kind: query
  command: "version?"
  params: []

- id: model_query
  label: Model Number Query
  kind: query
  command: "model?"
  params: []

Feedbacks

- id: power_state
  type: enum
  values: [on, standby]
  example: "power=on$"

- id: source_state
  type: enum
  values: [cd, aux1, tuner, phono, bluetooth]
  example: "source=cd$"

- id: volume_state
  type: integer
  range: "01-96"
  example: "volume=40$"

- id: mute_state
  type: enum
  values: [on, off]
  example: "mute=off$"

- id: bypass_state
  type: enum
  values: [on, off]
  example: "bypass=off$"

- id: bass_state
  type: string
  description: "+01 to +10, -01 to -10, or 000"
  example: "bass=+02$"

- id: treble_state
  type: string
  description: "+01 to +10, -01 to -10, or 000"
  example: "treble=-01$"

- id: balance_state
  type: string
  description: "L01-L15, R01-R15, or 000"
  example: "balance=L03$"

- id: speaker_state
  type: enum
  values: [a, b, a_b, off]
  example: "speaker=a$"

- id: dimmer_state
  type: enum
  values: [0, 1, 2, 3, 4, 5, 6]
  example: "dimmer=3$"

- id: version_state
  type: string
  description: Rotel main CPU software version
  example: "version=1.09$"

- id: model_state
  type: string
  example: "model=a11$"

Variables

# No discrete settable parameters beyond the action list above.

Events

# When rs232_update_on is set, any status change is transmitted as unsolicited
# feedback using the same `key=value$` format as the queries above.
# Each event payload matches the corresponding Feedback type.

Macros

# UNRESOLVED: source describes no multi-step sequences

Safety

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

Notes

All commands are ASCII text terminated by ! (no carriage return / line feed). All responses terminate with $. Do not include spaces inside command strings. Hardware lacks flow control; care required to avoid packet loss on the wire. Toggle rs232_update_on / rs232_update_off controls whether the unit pushes unsolicited status updates vs. requires polling.


Spec complete. Output above.

## Provenance

```yaml
source_domains:
  - rotel.com
source_urls:
  - "https://www.rotel.com/sites/default/files/product/rs232/A11-A11MKII%20Protocol.pdf"
  - https://www.rotel.com/manuals-resources/rs232-protocols
retrieved_at: 2026-06-30T16:14:39.019Z
last_checked_at: 2026-07-07T11:51:56.627Z

Verification Summary

verdict: verified
checked_at: 2026-07-07T11:51:56.627Z
matched_actions: 64
action_count: 64
confidence: medium
summary: "All 64 spec actions and their command mnemonics matched source documentation exactly; transport parameters (115200 baud, 8 bits, no parity) verified. (4 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "no Ethernet/IP control details in this source; control surface is RS-232 only"
- "source describes no multi-step sequences"
- "source contains no safety warnings or interlock procedures"
- "no Ethernet/IP control, no firmware compatibility ranges, no hardware pinout beyond the RS-232 serial settings listed above"

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