Summary

Integrated amplifier with RS-232C control; the A14 also supports IP control. ASCII protocol, commands end with !, responses end with $. No spaces in commands, no CR/LF. Supports power, volume, source selection, tone control, balance, speaker output, and display dimmer.

Transport

protocols:
  - serial
  - tcp  # A14 only; A12 is serial-only
addressing:
  port: 9590  # A14 IP control port; UNRESOLVED: A12 serial-only
serial:
  baud_rate: 115200
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none
auth:
  type: UNRESOLVED  # source does not state this (was inferred none: no auth procedure in source)

Traits

- powerable
- routable
- queryable
- levelable

Actions

- id: power_on
  label: Power On
  kind: action
  params: []

- id: power_off
  label: Power Off
  kind: action
  params: []

- id: power_toggle
  label: Power Toggle
  kind: action
  params: []

- id: vol_up
  label: Volume Up
  kind: action
  params: []

- id: vol_dwn
  label: Volume Down
  kind: action
  params: []

- id: vol_nn
  label: Set Volume
  kind: action
  params:
    - name: level
      type: integer
      description: Volume level 01-96

- id: mute_on
  label: Mute On
  kind: action
  params: []

- id: mute_off
  label: Mute Off
  kind: action
  params: []

- id: mute_toggle
  label: Mute Toggle
  kind: action
  params: []

- id: source_cd
  label: Source CD
  kind: action
  params: []

- id: source_coax1
  label: Source Coax 1
  kind: action
  params: []

- id: source_coax2
  label: Source Coax 2
  kind: action
  params: []

- id: source_opt1
  label: Source Optical 1
  kind: action
  params: []

- id: source_opt2
  label: Source Optical 2
  kind: action
  params: []

- id: source_aux1
  label: Source Aux 1
  kind: action
  params: []

- id: source_aux2
  label: Source Aux 2
  kind: action
  params: []

- id: source_tuner
  label: Source Tuner
  kind: action
  params: []

- id: source_phono
  label: Source Phono
  kind: action
  params: []

- id: source_usb
  label: Source Front USB
  kind: action
  params: []

- id: source_bluetooth
  label: Source Bluetooth
  kind: action
  params: []

- id: source_pcusb
  label: Source PC-USB
  kind: action
  params: []

- id: play
  label: Play
  kind: action
  params: []

- id: stop
  label: Stop
  kind: action
  params: []

- id: pause
  label: Pause
  kind: action
  params: []

- id: trkf
  label: Track Forward / Tune Up
  kind: action
  params: []

- id: trkb
  label: Track Backward / Tune Down
  kind: action
  params: []

- id: bypass_on
  label: Tone Bypass On
  kind: action
  params: []

- id: bypass_off
  label: Tone Bypass Off
  kind: action
  params: []

- id: bass_up
  label: Bass Up
  kind: action
  params: []

- id: bass_down
  label: Bass Down
  kind: action
  params: []

- id: bass_set
  label: Set Bass
  kind: action
  params:
    - name: level
      type: enum
      values: [-10, 0, 10]
      description: Supported settings map to bass_-10!, bass_000!, and bass_+10!

- id: treble_up
  label: Treble Up
  kind: action
  params: []

- id: treble_down
  label: Treble Down
  kind: action
  params: []

- id: treble_set
  label: Set Treble
  kind: action
  params:
    - name: level
      type: enum
      values: [-10, 0, 10]
      description: Supported settings map to treble_-10!, treble_000!, and treble_+10!

- id: balance_r
  label: Balance Right
  kind: action
  params: []

- id: balance_l
  label: Balance Left
  kind: action
  params: []

- id: balance_set
  label: Set Balance
  kind: action
  params:
    - name: setting
      type: enum
      values: [L15, "000", R15]
      description: Supported settings map to balance_L15!, balance_000!, and balance_R15!

- id: speaker_a_toggle
  label: Toggle Speaker A
  kind: action
  params: []

- id: speaker_b_toggle
  label: Toggle Speaker B
  kind: action
  params: []

- id: speaker_a_on
  label: Speaker A On
  kind: action
  params: []

- id: speaker_a_off
  label: Speaker A Off
  kind: action
  params: []

- id: speaker_b_on
  label: Speaker B On
  kind: action
  params: []

- id: speaker_b_off
  label: Speaker B Off
  kind: action
  params: []

- id: dimmer_toggle
  label: Toggle Display Dimmer
  kind: action
  params: []

- id: dimmer_set
  label: Set Display Dimmer
  kind: action
  params:
    - name: level
      type: integer
      description: Dimmer level 0-6

- id: rs232_update_on
  label: RS232 Auto Update On
  kind: action
  params: []

- id: rs232_update_off
  label: RS232 Auto Update Off
  kind: action
  params: []

Feedbacks

- id: power_state
  label: Power State
  query_command: power?
  type: enum
  values: [on, standby]

- id: source_state
  label: Source State
  query_command: source?
  type: enum
  values: [cd, coax1, coax2, opt1, opt2, aux1, aux2, tuner, phono, usb, bluetooth, pc_usb]

- id: volume_state
  label: Volume State
  query_command: volume?
  type: integer
  description: Volume level 00-96

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

- id: bypass_state
  label: Tone Bypass State
  query_command: bypass?
  type: enum
  values: [on, off]

- id: bass_state
  label: Bass Level
  query_command: bass?
  type: integer
  description: Bass level -10 to +10

- id: treble_state
  label: Treble Level
  query_command: treble?
  type: integer
  description: Treble level -10 to +10

- id: balance_state
  label: Balance State
  query_command: balance?
  type: string
  description: Balance L00-15, R00-15, or 000

- id: speaker_state
  label: Speaker Output State
  query_command: speaker?
  type: enum
  values: [a, b, a_b, off]

- id: dimmer_state
  label: Display Dimmer State
  query_command: dimmer?
  type: integer
  description: Dimmer level 0-6

- id: freq_state
  label: Digital Input Frequency
  query_command: freq?
  type: enum
  values: [off, 32, 44.1, 48, 88.2, 96, 176.4, 192]

- id: pcusb_class_state
  label: PC-USB Class
  query_command: pcusb?
  type: enum
  values: [1, 2]

- id: version_state
  label: Main CPU Version
  query_command: version?
  type: string

- id: pc_version_state
  label: PC-USB Version
  query_command: pc_version?
  type: string

- id: model_state
  label: Model
  query_command: model?
  type: string

- id: update_mode_state
  label: RS232 Update Mode
  type: enum
  values: [auto, manual]

# A14-only feedbacks (UNRESOLVED: not applicable to A12)
# - id: ip_state
# - id: mac_state  
# - id: discover_state

Variables

# UNRESOLVED: all state is command-based or query-based; no independent variables

Events

# RS232 auto-update sends unsolicited status on change when rs232_update_on is set
# UNRESOLVED: full event schema not explicitly documented

Macros

# UNRESOLVED: no multi-step macros documented

Safety

confirmation_required_for: []
interlocks:
  - RS232 hardware does not support flow control; care needed when sending/receiving to avoid packet loss
# UNRESOLVED: no explicit safety warnings or interlock procedures beyond flow control note

Notes

Commands: ! terminator, no spaces, no CR/LF. Responses: $ terminator. Update mode auto-sends status changes when enabled; manual mode requires polling.

Provenance

source_domains:
  - rotel.com
source_urls:
  - "https://rotel.com/sites/default/files/product/rs232/A12-A14%20Protocol.pdf"
  - "https://rotel.com/sites/default/files/product/rs232/A12-A12MKII-A14-A14MKII%20Protocol.pdf"
retrieved_at: 2026-05-21T20:41:13.727Z
last_checked_at: 2026-10-07T12:36:51.490Z

Verification Summary

verdict: verified
checked_at: 2026-10-07T12:36:51.490Z
matched_actions: 62
action_count: 62
confidence: medium
summary: "All 62 action units match source commands with correct shapes, transport values are supported, and the source catalogue is fully covered apart from A14-only IP commands. (9 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "A14 IP-specific commands (ip?, mac?, discover?) not applicable to A12"
- "A12 serial-only"
- "not applicable to A12)"
- "all state is command-based or query-based; no independent variables"
- "full event schema not explicitly documented"
- "no multi-step macros documented"
- "no explicit safety warnings or interlock procedures beyond flow control note"
- "firmware version compatibility not stated"
- "A14 IP-specific commands (ip?, mac?, discover?) not applicable to A12 serial-only model"

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