Summary
Stereo receiver controlled via RS-232C using a HEX-based binary protocol. This spec covers the command set documented in the Rotel serial protocol reference: power, volume, source selection, tone control, tuner, numeric keys, and front-panel operations. Commands are fixed 6-byte frames; the device pushes unsolicited feedback frames mirroring front-panel display state.
Transport
protocols:
- serial
serial:
baud_rate: 2400
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
auth:
type: none # inferred: no auth procedure in source
Notes on framing (from source):
- Standard command frame:
FE 03 60 10 {Key} {Checksum}. Count byte (0x03) covers ID+Type+Key only; excludes Start and Checksum. - Send raw bytes only — no spaces, delimiters, CR, or LF.
- Device ID fixed at 0x60.
- Meta encoding (byte stuffing): any 0xFD in payload →
FD 00; any 0xFE →FD 01. Keeps 0xFE unique as start byte. - Checksum computation method not stated in source.
Traits
traits:
- powerable # inferred: power on/off/toggle commands present
- routable # inferred: source selection commands present
- levelable # inferred: volume up/down, bass/treble up/down present
Actions
# All frames: FE 03 60 10 {Key} {Checksum}. Spaces shown for clarity; send raw bytes.
- id: power_toggle
label: Power Toggle
kind: action
command: "FE 03 60 10 0A 7D"
params: []
- id: power_off
label: Power Off
kind: action
command: "FE 03 60 10 4A BD"
params: []
- id: power_on
label: Power On
kind: action
command: "FE 03 60 10 4B BE"
params: []
- id: volume_up
label: Volume Up
kind: action
command: "FE 03 60 10 0B 7E"
params: []
- id: volume_down
label: Volume Down
kind: action
command: "FE 03 60 10 0C 7F"
params: []
- id: mute_toggle
label: Mute Toggle
kind: action
command: "FE 03 60 10 1E 91"
params: []
- id: source_phono
label: Source Phono
kind: action
command: "FE 03 60 10 35 A8"
params: []
- id: source_cd
label: Source CD
kind: action
command: "FE 03 60 10 02 75"
params: []
- id: source_tuner
label: Source Tuner
kind: action
command: "FE 03 60 10 03 76"
params: []
- id: source_tape
label: Source Tape
kind: action
command: "FE 03 60 10 04 77"
params: []
- id: source_video_1
label: Source Video 1
kind: action
command: "FE 03 60 10 05 78"
params: []
- id: source_video_2
label: Source Video 2
kind: action
command: "FE 03 60 10 06 79"
params: []
- id: source_video_3
label: Source Video 3
kind: action
command: "FE 03 60 10 07 7A"
params: []
- id: source_video_4
label: Source Video 4
kind: action
command: "FE 03 60 10 08 7B"
params: []
- id: treble_up
label: Treble Up
kind: action
command: "FE 03 60 10 0D 80"
params: []
- id: treble_down
label: Treble Down
kind: action
command: "FE 03 60 10 0E 81"
params: []
- id: bass_up
label: Bass Up
kind: action
command: "FE 03 60 10 0F 82"
params: []
- id: bass_down
label: Bass Down
kind: action
command: "FE 03 60 10 10 83"
params: []
- id: source_label_character_enter
label: Front Panel Source Label - Character Enter
kind: action
command: "FE 03 60 10 19 8C"
params: []
- id: source_label_next_character
label: Front Panel Source Label - Next Character
kind: action
command: "FE 03 60 10 1A 8D"
params: []
- id: source_label_previous_character
label: Front Panel Source Label - Previous Character
kind: action
command: "FE 03 60 10 1B 8E"
params: []
- id: source_label_change
label: Front Panel Source Label - Source Label Change
kind: action
command: "FE 03 60 10 18 8B"
params: []
- id: tune_up
label: Tune Up
kind: action
command: "FE 03 60 10 28 9B"
params: []
- id: tune_down
label: Tune Down
kind: action
command: "FE 03 60 10 29 9C"
params: []
- id: tuner_memory
label: Tuner Memory
kind: action
command: "FE 03 60 10 27 9A"
params: []
- id: tuner_band_toggle
label: Tuner Band Toggle
kind: action
command: "FE 03 60 10 24 97"
params: []
- id: tuner_tune_preset
label: Tuner Tune/Preset Mode
kind: action
command: "FE 03 60 10 20 93"
params: []
- id: tuner_frequency_direct
label: Tuner Frequency Direct
kind: action
command: "FE 03 60 10 25 98"
params: []
- id: tuner_preset_scan
label: Tuner Preset Scan
kind: action
command: "FE 03 60 10 21 94"
params: []
- id: tuner_display
label: Tuner Display
kind: action
command: "FE 03 60 10 44 B3"
params: []
- id: tuner_fm_mono
label: Tuner FM Mono
kind: action
command: "FE 03 60 10 26 99"
params: []
- id: number_1
label: Number 1
kind: action
command: "FE 03 60 10 2A 9D"
params: []
- id: number_2
label: Number 2
kind: action
command: "FE 03 60 10 2B 9E"
params: []
- id: number_3
label: Number 3
kind: action
command: "FE 03 60 10 2C 9F"
params: []
- id: number_4
label: Number 4
kind: action
command: "FE 03 60 10 2D A0"
params: []
- id: number_5
label: Number 5
kind: action
command: "FE 03 60 10 2E A1"
params: []
- id: number_6
label: Number 6
kind: action
command: "FE 03 60 10 2F A2"
params: []
- id: number_7
label: Number 7
kind: action
command: "FE 03 60 10 30 A3"
params: []
- id: number_8
label: Number 8
kind: action
command: "FE 03 60 10 31 A4"
params: []
- id: number_9
label: Number 9
kind: action
command: "FE 03 60 10 32 A5"
params: []
- id: number_0
label: Number 0
kind: action
command: "FE 03 60 10 33 A6"
params: []
- id: record_function_select
label: Record Function Select
kind: action
command: "FE 03 60 10 17 8A"
params: []
- id: zone2_main
label: Zone 2/Main
kind: action
command: "FE 03 60 10 23 96"
params: []
- id: speaker_a_toggle
label: Speaker A Toggle
kind: action
command: "FE 03 60 10 50 C3"
params: []
- id: speaker_b_toggle
label: Speaker B Toggle
kind: action
command: "FE 03 60 10 51 C4"
params: []
- id: front_display_toggle
label: Front Display On/Off
kind: action
command: "FE 03 60 10 1F 92"
params: []
- id: display_refresh
label: Display Refresh
kind: action
command: "FE 03 60 10 FF 72"
params: []
Feedbacks
# Source documents no explicit query opcodes (no "?" commands). State is obtained
# only via unsolicited feedback frames pushed by the device (see Events).
Variables
# No settable parameter variables documented as addressable values. Volume, bass,
# treble, and tuner frequency are controlled via discrete up/down/toggle actions
# only; absolute-value set commands are not documented in source.
Events
# Unsolicited feedback frame pushed by device whenever front-panel display state changes.
# Standard response format: FE 0F 60 20 Flag1 Flag2 Char1 ... Char11 Checksum
# Count byte 0x0F = 15 (ID + Type + Flag1 + Flag2 + Char1..Char11).
- id: feedback_string
type: binary
description: |
17-byte frame mirroring front-panel display. Mirrors status visible on the unit.
Fields:
Flag1, Flag2 - bitmap of illuminated front-panel icons (see bit table below).
Char1..Char11 - ASCII text shown across the front display; may carry source
input, volume, or tuner frequency data. Must be parsed to extract values.
format: "FE 0F 60 20 {Flag1} {Flag2} {Char1..Char11} {Checksum}"
# Flag1 bit map:
# bit0 = Speaker B
# bit1 = Speaker A
# bit2 = DisplayMode 0
# bit3 = DisplayMode 1
# bit4 = StandbyLED
# Flag2 bit map:
# bit0 = AM
# bit1 = Preset
# bit2 = Memory
# bit3 = Auto
# bit4 = Tuned
# bit5 = Stereo
# bit6 = FM
# Display on/off encoded in DisplayMode bits: On = Mode1:0/Mode0:0; Off = Mode1:1/Mode0:0
Macros
# No multi-step sequences documented in source.
Safety
confirmation_required_for: []
interlocks: []
# No safety warnings, interlock procedures, or power-on sequencing requirements
# stated in source.
Notes
- Binary HEX protocol: data type labelled "String" in source settings table, but all payloads are hex byte sequences (not ASCII command strings). Treat frames as raw bytes.
- Frame structure:
Start(0xFE) Count(0x03) DeviceID(0x60) Type(0x10) Key Checksum. Count excludes Start and Checksum bytes. - Byte stuffing (meta encoding): 0xFD →
FD 00, 0xFE →FD 01anywhere in payload. None of the listed command keys trigger stuffing, but parsers must de-stuff response frames. - No CR/LF terminators — send exact bytes only.
- Version: source doc is "Version 1.00, February 6, 2012".
Provenance
source_domains:
- rotel.com
source_urls:
- "https://www.rotel.com/sites/default/files/product/rs232/RX1050%20Protocol.pdf"
- "https://www.rotel.com/sites/default/files/product/rs232/RX1052%20Protocol.pdf"
- https://www.rotel.com/manual-resources/rs232-protocols
retrieved_at: 2026-07-03T09:16:49.090Z
last_checked_at: 2026-07-07T12:36:17.779Z
Verification Summary
verdict: verified
checked_at: 2026-07-07T12:36:17.779Z
matched_actions: 47
action_count: 47
confidence: medium
summary: "All 47 spec actions matched verbatim in source command table; all transport parameters verified against source settings. (5 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "model identity — input device name \"RX-800\" does not match source document title \"RX-1050 RS232 HEX Protocol\". Source may be wrong family or input metadata may be wrong. Confirm against device."
- "checksum algorithm not documented in source"
- "checksum computation algorithm not documented in source"
- "model identity — input \"RX-800\" vs source title \"RX-1050\"; confirm correct family"
- "response checksum algorithm not documented"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0