Summary

HEX-based RS-232C control protocol for the Rotel RSP-1068 surround sound processor. Commands are 6-byte frames (Start/Count/DeviceID/Type/Key/Checksum) sent at 19200 baud, with feedback strings mirroring the front-panel display.

Transport

protocols:
  - serial
serial:
  baud_rate: 19200
  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 on/off/toggle commands
- routable  # inferred from source selection commands (main zone, record, zone 2)
- queryable  # inferred from front-display feedback string mirroring state
- levelable  # inferred from volume up/down/direct and tone control commands

Actions

# Table 1 - Type 10 Primary Commands (Type byte 0x10)

- id: power_toggle
  label: Power Toggle
  kind: action
  command: "FE 03 A1 10 0A BE"
  params: []

- id: power_off
  label: Power Off
  kind: action
  command: "FE 03 A1 10 4A FD 01"
  params: []

- id: power_on
  label: Power On
  kind: action
  command: "FE 03 A1 10 4B FF"
  params: []

- id: volume_up
  label: Volume Up
  kind: action
  command: "FE 03 A1 10 0B BF"
  params: []

- id: volume_down
  label: Volume Down
  kind: action
  command: "FE 03 A1 10 0C C0"
  params: []

- id: mute_toggle
  label: Mute Toggle
  kind: action
  command: "FE 03 A1 10 1E D2"
  params: []

- id: source_cd
  label: Source CD
  kind: action
  command: "FE 03 A1 10 02 B6"
  params: []

- id: source_tuner
  label: Source Tuner
  kind: action
  command: "FE 03 A1 10 03 B7"
  params: []

- id: source_tape
  label: Source Tape
  kind: action
  command: "FE 03 A1 10 04 B8"
  params: []

- id: source_video_1
  label: Source Video 1
  kind: action
  command: "FE 03 A1 10 05 B9"
  params: []

- id: source_video_2
  label: Source Video 2
  kind: action
  command: "FE 03 A1 10 06 BA"
  params: []

- id: source_video_3
  label: Source Video 3
  kind: action
  command: "FE 03 A1 10 07 BB"
  params: []

- id: source_video_4
  label: Source Video 4
  kind: action
  command: "FE 03 A1 10 08 BC"
  params: []

- id: source_video_5
  label: Source Video 5
  kind: action
  command: "FE 03 A1 10 09 BD"
  params: []

- id: source_multi_input
  label: Source Multi Input
  kind: action
  command: "FE 03 A1 10 15 C9"
  params: []

- id: surround_stereo
  label: Stereo
  kind: action
  command: "FE 03 A1 10 11 C5"
  params: []

- id: surround_dolby3_stereo
  label: Dolby 3 Stereo
  kind: action
  command: "FE 03 A1 10 12 C6"
  params: []

- id: surround_dolby_pro_logic
  label: Dolby Pro Logic
  kind: action
  command: "FE 03 A1 10 13 C7"
  params: []

- id: dsp_music_mode_toggle
  label: DSP Music Mode Toggle
  kind: action
  command: "FE 03 A1 10 14 C8"
  params: []

- id: dolby3_pl_toggle
  label: Dolby 3 Stereo / Pro Logic Toggle
  kind: action
  command: "FE 03 A1 10 53 07"
  params: []

- id: dts_neo6_music_cinema_toggle
  label: dts Neo:6 Music/Cinema Toggle
  kind: action
  command: "FE 03 A1 10 54 08"
  params: []

- id: music_1
  label: Music 1
  kind: action
  command: "FE 03 A1 10 57 0B"
  params: []

- id: music_2
  label: Music 2
  kind: action
  command: "FE 03 A1 10 58 0C"
  params: []

- id: music_3
  label: Music 3
  kind: action
  command: "FE 03 A1 10 59 0D"
  params: []

- id: music_4
  label: Music 4
  kind: action
  command: "FE 03 A1 10 5A 0E"
  params: []

- id: surround_5ch_stereo
  label: 5 Channel Stereo
  kind: action
  command: "FE 03 A1 10 5B 0F"
  params: []

- id: surround_7ch_stereo
  label: 7 Channel Stereo
  kind: action
  command: "FE 03 A1 10 5C 10"
  params: []

- id: dolby_plii_cinema
  label: Dolby PLII Cinema
  kind: action
  command: "FE 03 A1 10 5D 11"
  params: []

- id: dolby_plii_music
  label: Dolby PLII Music
  kind: action
  command: "FE 03 A1 10 5E 12"
  params: []

- id: dolby_plii_game
  label: Dolby PLII Game
  kind: action
  command: "FE 03 A1 10 74 28"
  params: []

- id: dolby_pro_logic_5f
  label: Dolby Pro Logic
  kind: action
  command: "FE 03 A1 10 5F 13"
  params: []

- id: dts_neo6_music
  label: dts Neo:6 Music
  kind: action
  command: "FE 03 A1 10 60 14"
  params: []

- id: dts_neo6_cinema
  label: dts Neo:6 Cinema
  kind: action
  command: "FE 03 A1 10 61 15"
  params: []

- id: plii_panorama_toggle
  label: PLII Panorama Toggle
  kind: action
  command: "FE 03 A1 10 62 16"
  params: []

- id: plii_dimension_up
  label: PLII Dimension Up
  kind: action
  command: "FE 03 A1 10 63 17"
  params: []

- id: plii_dimension_down
  label: PLII Dimension Down
  kind: action
  command: "FE 03 A1 10 64 18"
  params: []

- id: plii_center_width_up
  label: PLII Center Width Up
  kind: action
  command: "FE 03 A1 10 65 19"
  params: []

- id: plii_center_width_down
  label: PLII Center Width Down
  kind: action
  command: "FE 03 A1 10 66 1A"
  params: []

- id: dolby_digital_ex_toggle
  label: Dolby Digital EX Toggle
  kind: action
  command: "FE 03 A1 10 68 1C"
  params: []

- id: next_surround_mode
  label: Next Surround Mode
  kind: action
  command: "FE 03 A1 10 22 D6"
  params: []

- id: treble_up
  label: Treble Up
  kind: action
  command: "FE 03 A1 10 0D C1"
  params: []

- id: treble_down
  label: Treble Down
  kind: action
  command: "FE 03 A1 10 0E C2"
  params: []

- id: bass_up
  label: Bass Up
  kind: action
  command: "FE 03 A1 10 0F C3"
  params: []

- id: bass_down
  label: Bass Down
  kind: action
  command: "FE 03 A1 10 10 C4"
  params: []

- id: tone_control_select
  label: Tone Control Select
  kind: action
  command: "FE 03 A1 10 67 1B"
  params: []

- id: osd_menu
  label: OSD Menu
  kind: action
  command: "FE 03 A1 10 18 CC"
  params: []

- id: osd_enter
  label: Enter
  kind: action
  command: "FE 03 A1 10 19 CD"
  params: []

- id: osd_cursor_right
  label: Cursor Right
  kind: action
  command: "FE 03 A1 10 1A CE"
  params: []

- id: osd_cursor_left
  label: Cursor Left
  kind: action
  command: "FE 03 A1 10 1B CF"
  params: []

- id: osd_cursor_up
  label: Cursor Up
  kind: action
  command: "FE 03 A1 10 1C D0"
  params: []

- id: osd_cursor_down
  label: Cursor Down
  kind: action
  command: "FE 03 A1 10 1D D1"
  params: []

- id: record_function_select
  label: Record Function Select
  kind: action
  command: "FE 03 A1 10 17 CB"
  params: []

- id: dynamic_range
  label: Dynamic Range
  kind: action
  command: "FE 03 A1 10 16 CA"
  params: []

- id: digital_input_select
  label: Digital Input Select
  kind: action
  command: "FE 03 A1 10 1F D3"
  params: []

- id: zone2_main_toggle
  label: Zone 2 / Main Toggle
  kind: action
  command: "FE 03 A1 10 23 D7"
  params: []

- id: temp_center_trim
  label: Temporary Center Trim
  kind: action
  command: "FE 03 A1 10 4C 00"
  params: []

- id: temp_subwoofer_trim
  label: Temporary Subwoofer Trim
  kind: action
  command: "FE 03 A1 10 4D 01"
  params: []

- id: temp_surround_trim
  label: Temporary Surround Trim
  kind: action
  command: "FE 03 A1 10 4E 02"
  params: []

- id: cinema_eq_toggle
  label: Cinema EQ Toggle
  kind: action
  command: "FE 03 A1 10 4F 03"
  params: []

- id: front_display_on_off
  label: Front Display On/Off
  kind: action
  command: "FE 03 A1 10 52 06"
  params: []

- id: display_refresh
  label: Display Refresh
  kind: action
  command: "FE 03 A1 10 FF B3"
  params: []

# Table 2 - Type 14 Main Zone Commands (Type byte 0x14)

- id: main_zone_power_toggle
  label: Main Zone Power Toggle
  kind: action
  command: "FE 03 A1 14 0A C2"
  params: []

- id: main_zone_power_off
  label: Main Zone Power Off
  kind: action
  command: "FE 03 A1 14 4A 02"
  params: []

- id: main_zone_power_on
  label: Main Zone Power On
  kind: action
  command: "FE 03 A1 14 4B 03"
  params: []

- id: main_zone_volume_up
  label: Main Zone Volume Up
  kind: action
  command: "FE 03 A1 14 00 B8"
  params: []

- id: main_zone_volume_down
  label: Main Zone Volume Down
  kind: action
  command: "FE 03 A1 14 01 B9"
  params: []

- id: main_zone_mute_toggle
  label: Main Zone Mute Toggle
  kind: action
  command: "FE 03 A1 14 1E D6"
  params: []

- id: main_zone_mute_on
  label: Main Zone Mute On
  kind: action
  command: "FE 03 A1 14 6C 24"
  params: []

- id: main_zone_mute_off
  label: Main Zone Mute Off
  kind: action
  command: "FE 03 A1 14 6D 25"
  params: []

- id: main_zone_source_cd
  label: Main Zone Source CD
  kind: action
  command: "FE 03 A1 14 02 BA"
  params: []

- id: main_zone_source_tuner
  label: Main Zone Source Tuner
  kind: action
  command: "FE 03 A1 14 03 BB"
  params: []

- id: main_zone_source_tape
  label: Main Zone Source Tape
  kind: action
  command: "FE 03 A1 14 04 BC"
  params: []

- id: main_zone_source_video_1
  label: Main Zone Source Video 1
  kind: action
  command: "FE 03 A1 14 05 BD"
  params: []

- id: main_zone_source_video_2
  label: Main Zone Source Video 2
  kind: action
  command: "FE 03 A1 14 06 BE"
  params: []

- id: main_zone_source_video_3
  label: Main Zone Source Video 3
  kind: action
  command: "FE 03 A1 14 07 BF"
  params: []

- id: main_zone_source_video_4
  label: Main Zone Source Video 4
  kind: action
  command: "FE 03 A1 14 08 C0"
  params: []

- id: main_zone_source_video_5
  label: Main Zone Source Video 5
  kind: action
  command: "FE 03 A1 14 09 C1"
  params: []

# Table 3 - Type 15 Record Source Commands (Type byte 0x15)

- id: record_source_cd
  label: Record Source CD
  kind: action
  command: "FE 03 A1 15 02 BB"
  params: []

- id: record_source_tuner
  label: Record Source Tuner
  kind: action
  command: "FE 03 A1 15 03 BC"
  params: []

- id: record_source_tape
  label: Record Source Tape
  kind: action
  command: "FE 03 A1 15 04 BD"
  params: []

- id: record_source_video_1
  label: Record Source Video 1
  kind: action
  command: "FE 03 A1 15 05 BE"
  params: []

- id: record_source_video_2
  label: Record Source Video 2
  kind: action
  command: "FE 03 A1 15 06 BF"
  params: []

- id: record_source_video_3
  label: Record Source Video 3
  kind: action
  command: "FE 03 A1 15 07 C0"
  params: []

- id: record_source_video_4
  label: Record Source Video 4
  kind: action
  command: "FE 03 A1 15 08 C1"
  params: []

- id: record_source_video_5
  label: Record Source Video 5
  kind: action
  command: "FE 03 A1 15 09 C2"
  params: []

- id: record_follow_main
  label: Record Follow Main Zone Source
  kind: action
  command: "FE 03 A1 15 6B 24"
  params: []

# Table 4 - Type 16 Zone 2 Commands (Type byte 0x16)

- id: zone2_power_toggle
  label: Zone 2 Power Toggle
  kind: action
  command: "FE 03 A1 16 0A C4"
  params: []

- id: zone2_power_off
  label: Zone 2 Power Off
  kind: action
  command: "FE 03 A1 16 4A 04"
  params: []

- id: zone2_power_on
  label: Zone 2 Power On
  kind: action
  command: "FE 03 A1 16 4B 05"
  params: []

- id: zone2_volume_up
  label: Zone 2 Volume Up
  kind: action
  command: "FE 03 A1 16 00 BA"
  params: []

- id: zone2_volume_down
  label: Zone 2 Volume Down
  kind: action
  command: "FE 03 A1 16 01 BB"
  params: []

- id: zone2_mute_toggle
  label: Zone 2 Mute Toggle
  kind: action
  command: "FE 03 A1 16 1E D8"
  params: []

- id: zone2_mute_on
  label: Zone 2 Mute On
  kind: action
  command: "FE 03 A1 16 6C 26"
  params: []

- id: zone2_mute_off
  label: Zone 2 Mute Off
  kind: action
  command: "FE 03 A1 16 6D 27"
  params: []

- id: zone2_source_cd
  label: Zone 2 Source CD
  kind: action
  command: "FE 03 A1 16 02 BC"
  params: []

- id: zone2_source_tuner
  label: Zone 2 Source Tuner
  kind: action
  command: "FE 03 A1 16 03 BD"
  params: []

- id: zone2_source_tape
  label: Zone 2 Source Tape
  kind: action
  command: "FE 03 A1 16 04 BE"
  params: []

- id: zone2_source_video_1
  label: Zone 2 Source Video 1
  kind: action
  command: "FE 03 A1 16 05 BF"
  params: []

- id: zone2_source_video_2
  label: Zone 2 Source Video 2
  kind: action
  command: "FE 03 A1 16 06 C0"
  params: []

- id: zone2_source_video_3
  label: Zone 2 Source Video 3
  kind: action
  command: "FE 03 A1 16 07 C1"
  params: []

- id: zone2_source_video_4
  label: Zone 2 Source Video 4
  kind: action
  command: "FE 03 A1 16 08 C2"
  params: []

- id: zone2_source_video_5
  label: Zone 2 Source Video 5
  kind: action
  command: "FE 03 A1 16 09 C3"
  params: []

- id: zone2_follow_main
  label: Zone 2 Follow Main Zone Source
  kind: action
  command: "FE 03 A1 16 6B 25"
  params: []

# Table 5 - Type 30 Volume Direct Commands (Type byte 0x30)
# Source documents range 0x00-0x60 as a continuous scale; only sample values listed.
# Implemented as a single parameterized action.

- id: volume_set
  label: Volume Set (Main Zone)
  kind: action
  command: "FE 03 A1 30 {level} {checksum}"
  params:
    - name: level
      type: integer
      description: Volume level (hex 0x00 = Min, 0x60 = Max; range 0x00-0x60)
    - name: checksum
      type: string
      description: Computed checksum byte (see Notes for algorithm). For values whose raw low byte equals 0xFD or 0xFE, source requires Meta Encoding (FD 00 for FD, FD 01 for FE) - checksum byte itself may need escaping.

# Table 6 - Type 32 Zone 2 Volume Direct Commands (Type byte 0x32)

- id: zone2_volume_set
  label: Volume Set (Zone 2)
  kind: action
  command: "FE 03 A1 32 {level} {checksum}"
  params:
    - name: level
      type: integer
      description: Volume level (hex 0x00 = Min, 0x60 = Max; range 0x00-0x60)
    - name: checksum
      type: string
      description: Computed checksum byte. Meta Encoding rules apply for raw bytes equal to 0xFD or 0xFE.

Feedbacks

# Standard Response String Format (Section 2 of source):
# FE 31 A1 20 [Char1..Char42] [Flag1..Flag5] [Checksum]
#
# Char1-Char42: ASCII representation of the 2-line front display
#   (source input, volume, surround mode, etc.)
# Flag1-Flag5: front-panel icon state; see Flag1-Flag5 table in source.
# Display On/Off status encoded in 2 bits of Flag3.
#
# Any front-display status change causes the unit to emit an unsolicited
# feedback string mirroring that change. No dedicated query command exists
# in the source - feedback is push-only.

- id: display_text
  type: string
  description: ASCII text from the unit's 2-line front display (42 bytes), including source, volume, and surround mode.

- id: display_flags
  type: object
  description: 5-byte front-panel icon flag bitmap (Flag1-Flag5). See source Section 2 for per-bit icon mapping.

Variables

# UNRESOLVED: no named variable parameters exposed in source. Volume, tone,
# source selection, etc. are all driven via discrete actions (UP/DOWN/direct-set),
# not via read/write variable protocol messages.

Events

# The unit pushes unsolicited feedback strings mirroring any front-display
# change. No event subscription handshake is documented.

- id: display_change
  description: Emitted whenever the front display status changes. Payload is the standard response string (FE 31 A1 20 ... Checksum).

Macros

# UNRESOLVED: no multi-step sequences documented in source.

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings, interlocks, or power-on sequencing requirements
# stated in the source document.

Notes

Model mismatch: Operator's entity bootstrap requested rotel_rsp_966, but the source document title is Rotel RSP-1068 RS232 HEX Protocol. All commands, flags, and feedback format in this spec describe the RSP-1068. Confirm with operator whether the RSP-966 shares this protocol family before merging.

Frame format: Every command is exactly 6 bytes: FE 03 A1 [Type] [Key] [Checksum]. The Count byte (0x03) covers ID + Type + Key only; it does NOT include Start or Checksum.

Checksum: Source documents only the byte position, not the algorithm. Standard Rotel convention is to compute the XOR of ID + Type + Key bytes (a single-byte XOR sum), but this is inferred, not stated in the source.

Meta Encoding: Any byte in the body equal to 0xFD must be escaped as FD 00, and any byte equal to 0xFE must be escaped as FD 01. Commands affected are highlighted red in the source; examples in this spec preserve the escaped form (FE 03 A1 10 4A FD 01 for Power Off, FE 03 A1 30 2A FD 01 for Volume 42, etc.). Escape applies to any byte including Checksum.

No CR/LF: Source explicitly states not to append carriage returns or line feeds after commands.

Volume direct range: Documented range is 0x000x60 (0–96). Source lists sample values only; full 97-step ladder implied but not enumerated.

Feedback flags: Flag3 bits DisplayMode0 and DisplayMode1 encode front-display On/Off state. Full 5×8 bit mapping is in source Section 2.

Provenance

source_domains:
  - rotel.com
source_urls:
  - "https://rotel.com/sites/default/files/product/rs232/RSP1068%20Protocol.pdf"
retrieved_at: 2026-07-01T14:24:48.768Z
last_checked_at: 2026-07-07T12:32:44.914Z

Verification Summary

verdict: verified
checked_at: 2026-07-07T12:32:44.914Z
matched_actions: 105
action_count: 105
confidence: medium
summary: "All 105 spec actions matched verbatim against source command tables; transport parameters (19200 baud, 8 data bits, no parity, 1 stop bit, no flow control) verified in source; full bidirectional coverage with Tables 1-6. (6 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "source document is titled RSP-1068; entity bootstrap requests RSP-966. Model coverage mismatch flagged for operator review."
- "no named variable parameters exposed in source. Volume, tone,"
- "no multi-step sequences documented in source."
- "no safety warnings, interlocks, or power-on sequencing requirements"
- "firmware version compatibility not stated in source"
- "checksum algorithm not stated in source (XOR-of-body inferred from Rotel convention, not from this document)"

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