Summary
RS-232 HEX control protocol for the Rotel RCC-1055 5-disc CD changer. Covers power, CD transport, disc selection, numeric track entry, and front-display commands. Two serial configurations exist depending on unit serial number (see Transport).
Transport
protocols:
- serial
serial:
baud_rate: 9600 # units AFTER serial # 077-7121001 (Black) / 977-7121001 (Silver); earlier units use 2400 - see Notes
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 Disc 1-5 / Next Disc / Drawer commands
Actions
# All commands share the standard format: FE 03 B0 10 {KEY} {CHK}
# Checksum computed over ID + Type + Key bytes only; do not include Start or Checksum.
# Meta-encoding rule: any FD or FE byte in the data stream must be escaped (FD → FD 00; FE → FD 01) so the Start byte is unambiguous.
# --- POWER ---
- id: power_toggle
label: Power Toggle
kind: action
command: "FE 03 B0 10 49 0C"
params: []
- id: power_on
label: Power On
kind: action
command: "FE 03 B0 10 4A 0D"
params: []
- id: power_off
label: Power Off
kind: action
command: "FE 03 B0 10 4B 0E"
params: []
# --- CD TRANSPORT ---
- id: play
label: Play
kind: action
command: "FE 03 B0 10 13 D6"
params: []
- id: stop
label: Stop
kind: action
command: "FE 03 B0 10 0F D2"
params: []
- id: pause
label: Pause
kind: action
command: "FE 03 B0 10 0B CE"
params: []
- id: track_next
label: Track >>
kind: action
command: "FE 03 B0 10 1A DD"
params: []
- id: track_previous
label: Track <<
kind: action
command: "FE 03 B0 10 0E D1"
params: []
- id: search_forward
label: Search >>
kind: action
command: "FE 03 B0 10 1E E1"
params: []
- id: search_reverse
label: Search <<
kind: action
command: "FE 03 B0 10 0A CD"
params: []
- id: number_1
label: Number 1
kind: action
command: "FE 03 B0 10 09 CC"
params: []
- id: number_2
label: Number 2
kind: action
command: "FE 03 B0 10 1D E0"
params: []
- id: number_3
label: Number 3
kind: action
command: "FE 03 B0 10 1F E2"
params: []
- id: number_4
label: Number 4
kind: action
command: "FE 03 B0 10 0D D0"
params: []
- id: number_5
label: Number 5
kind: action
command: "FE 03 B0 10 19 DC"
params: []
- id: number_6
label: Number 6
kind: action
command: "FE 03 B0 10 1B DE"
params: []
- id: number_7
label: Number 7
kind: action
command: "FE 03 B0 10 11 D4"
params: []
- id: number_8
label: Number 8
kind: action
command: "FE 03 B0 10 15 D8"
params: []
- id: number_9
label: Number 9
kind: action
command: "FE 03 B0 10 17 DA"
params: []
- id: number_10
label: Number 10
kind: action
command: "FE 03 B0 10 12 D5"
params: []
- id: number_plus_10
label: Number +10
kind: action
command: "FE 03 B0 10 16 D9"
params: []
- id: next_disc
label: Next Disc
kind: action
command: "FE 03 B0 10 41 04"
params: []
- id: disc_1
label: Disc 1
kind: action
command: "FE 03 B0 10 42 05"
params: []
- id: disc_2
label: Disc 2
kind: action
command: "FE 03 B0 10 43 06"
params: []
- id: disc_3
label: Disc 3
kind: action
command: "FE 03 B0 10 44 07"
params: []
- id: disc_4
label: Disc 4
kind: action
command: "FE 03 B0 10 45 08"
params: []
- id: disc_5
label: Disc 5
kind: action
command: "FE 03 B0 10 46 09"
params: []
- id: drawer_open_close
label: Drawer Open/Close
kind: action
command: "FE 03 B0 10 10 D3" # source row labelled "Drawer Open/Close" - bytes identical to Disc 4 row; see Notes
params: []
# --- ADDITIONAL ---
- id: random
label: Random
kind: action
command: "FE 03 B0 10 00 C3"
params: []
- id: repeat
label: Repeat
kind: action
command: "FE 03 B0 10 01 C4"
params: []
- id: time
label: Time
kind: action
command: "FE 03 B0 10 02 C5"
params: []
- id: program
label: Program
kind: action
command: "FE 03 B0 10 03 C6"
params: []
- id: scan
label: Scan
kind: action
command: "FE 03 B0 10 04 C7"
params: []
- id: review
label: Review
kind: action
command: "FE 03 B0 10 07 CA"
params: []
- id: release_key
label: Release Key
kind: action
command: "FE 03 B0 10 4F 12"
params: []
- id: front_display_on
label: Front Display On
kind: action
command: "FE 03 B0 10 47 0A"
params: []
- id: front_display_off
label: Front Display Off
kind: action
command: "FE 03 B0 10 48 0B"
params: []
Feedbacks
# Feedback string mirrors the front-panel display.
#
# Pre-serial-cut units (BEFORE 077-7121001 Black / 977-7121001 Silver):
# FE 0E B0 20 F1 F2 F3 F4 F5 C1 C2 C3 C4 C5 C6 C7 {CHK} (14 bytes payload)
#
# Post-serial-cut units (AFTER 077-7121001 Black / 977-7121001 Silver):
# FE 0E B0 20 F1 F2 F3 F4 F5 F6 C1 C2 C3 C4 C5 C6 C7 C8 {CHK} (16 bytes payload)
#
# F1..F5/F6 = icon flags (one bit per front-panel icon; see Notes for bit map)
# C1..C7/C8 = ASCII display characters (C1=DISC, C2-3/C2-4=TRACK, C4-5/C5-6=MIN, C6-7/C7-8=SEC)
- id: display_state
type: object
description: >
Full 14- or 16-byte feedback payload representing front-panel icon flags
and current disc/track/time ASCII readout. Bit decoding of F1..F5 (and F6
on newer units) is device-specific; see Notes.
- id: power_state
type: enum
values: [on, off, standby]
# UNRESOLVED: explicit power-state feedback encoding not isolated in source;
# inferred from front-panel POWER icon bit (Bit7 of F5) on the newer-unit map.
Variables
# UNRESOLVED: source documents no settable parameters beyond discrete key commands
Events
- id: front_panel_change
description: >
The unit emits a feedback string (Section 2 format) whenever the
front-panel display state changes, mirroring that change. Sent
unsolicited - no polling required.
Macros
# UNRESOLVED: no multi-step sequences described in source
Safety
confirmation_required_for: []
interlocks: []
Notes
Two production variants documented by serial-number cut:
- BEFORE serial # 077-7121001 (Black) / 977-7121001 (Silver): 2400 baud, feedback payload is 14 bytes (F1..F5 + C1..C7).
- AFTER serial # 077-7121001 (Black) / 977-7121001 (Silver): 9600 baud, feedback payload is 16 bytes (F1..F6 + C1..C8). F6 adds icon bits; C8 adds one extra SEC digit.
Command KEY bytes are identical across both variants; only the serial settings and feedback payload length differ. Spec assumes post-cut (9600) defaults.
Checksum: 1 byte, computed over the three payload bytes ID + Type + Key (i.e. 0xB0 + 0x10 + 0xKEY). Start (0xFE) and Checksum are NOT included in the sum. No carriage return / line feed after the packet.
Meta-encoding: any byte value 0xFD or 0xFE occurring anywhere in the data stream must be escaped as FD 00 (for FD) and FD 01 (for FE) so that the Start byte 0xFE is unambiguous. Apply this to outgoing commands and to inbound feedback parsing.
Source anomaly: rows for "Disc 4" and "Drawer Open/Close" both list bytes FE 03 B0 10 10 D3. The source clearly intended two distinct commands; the duplicate bytes may be a documentation error. Implementer should verify against a live unit before relying on the Disc 4 / Drawer mapping.
Front-panel icon bit maps (from source):
Pre-cut (F1..F5, MSB at Bit7):
- Flag1 (Bit0..Bit7): 16, 15, 14, 13, 12, 11, 10
- Flag2 (Bit0..Bit7): 9, 8, 7, 6, 5, 4, 3, 2
- Flag3: REMAIN(Bit0), 1(Bit1), (Bit2), REPT-DISC(Bit3), REPT-1(Bit4), REPT-ALL(Bit5), REPEAT(Bit6), (Bit7)
- Flag4: RANDOM(Bit0), PROGRAM(Bit1), INTRO(Bit2), :(Bit3), DISC(Bit4), TRACK(Bit5), MIN(Bit6), SEC(Bit7)
- Flag5: 5/(Bit0), 4/(Bit1), 3/(Bit2), 2/(Bit3), 1/(Bit4), PLAY(Bit5), PAUSE(Bit6), DISP OFF(Bit7)
Post-cut (F1..F6, MSB at Bit7):
- Flag1 (Bit0..Bit7): 20, 19, 18, 17, 16, 15, 14, 13
- Flag2 (Bit0..Bit7): 12, 11, 10, 9, 8, 7, 6, 5
- Flag3: 4(Bit0), 3(Bit1), 2(Bit2), 1(Bit3), (Bit4), RANDOM(Bit5), (Bit6), PROGRAM(Bit7)
- Flag4: :(Bit0), REMAIN(Bit1), EACH(Bit2), TOTAL(Bit3), SEC(Bit4), MIN(Bit5), TRACK(Bit6), DISC(Bit7)
- Flag5: CD(Bit0), HDCD(Bit1), MP3(Bit2), 1/(Bit3), 2/(Bit4), 3/(Bit5), 4/(Bit6), 5/(Bit7)
- Flag6: PAUSE(Bit0), INTRO(Bit1), PLAY(Bit2), REP-ALL(Bit3), REP-DISC(Bit4), REP-1(Bit5), REPEAT(Bit6), DISP OFF(Bit7)
ASCII fields: pre-cut C1=DISC, C2-3=TRACK, C4-5=MIN, C6-7=SEC; post-cut C1=DISC, C2-4=TRACK, C5-6=MIN, C7-8=SEC.
Provenance
source_domains:
- rotel.com
source_urls:
- "https://www.rotel.com/sites/default/files/product/rs232/RCC1055%20Protocol.pdf"
retrieved_at: 2026-04-30T04:31:55.596Z
last_checked_at: 2026-06-02T17:23:54.913Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T17:23:54.913Z
matched_actions: 37
action_count: 37
confidence: medium
summary: "All 37 spec hex commands match verbatim in source Section 1; disc_4 fix to 45 08 confirmed correct; transport values confirmed; source has exactly 37 commands. (5 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "no query (status) commands documented; only unsolicited feedback strings when front-panel display state changes"
- "explicit power-state feedback encoding not isolated in source;"
- "source documents no settable parameters beyond discrete key commands"
- "no multi-step sequences described in source"
- "no explicit status-query commands documented; power/transport state is observable only via unsolicited feedback strings when the front panel changes."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0