Summary

RS-232C HEX-based control protocol for the Rotel RCC-1055 CD changer. Communication uses fixed 6-byte command frames and returns front-panel-mirroring feedback strings. All payloads are raw hex bytes.

Transport

protocols:
  - serial
serial:
  # Two hardware revisions exist, split by unit serial number:
  #   BEFORE serial # 077-7121001 (Black) / 977-7121001 (Silver) -> 2400 baud
  #   AFTER  serial # 077-7121001 (Black) / 977-7121001 (Silver) -> 9600 baud
  baud_rate: 9600  # newer units; older 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    (power toggle/on/off commands present)
traits:
  - powerable

Actions

# Standard command frame: Start(0xFE) Count(0x03) DeviceID(0xB0) Type(0x10) Key(0xXX) Checksum(0xXX).
# Count byte covers only ID+Type+Key (excludes Start and Checksum).
# Hex bytes shown with spaces for clarity; send raw bytes with NO spaces, delimiters, CR, or LF.
# Last byte is the checksum; value is given verbatim from source. Recomputation formula: UNRESOLVED.

# --- POWER COMMANDS ---
- 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 COMMANDS ---
- 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_prev
  label: Track <<
  kind: action
  command: "FE 03 B0 10 0E D1"
  params: []

- id: search_fwd
  label: Search >>
  kind: action
  command: "FE 03 B0 10 1E E1"
  params: []

- id: search_rev
  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"
  params: []

# --- ADDITIONAL COMMANDS ---
- 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

# The unit emits a response string mirroring its front-panel display. Any front-panel
# status change prompts a feedback string. Two frame variants exist by unit serial number.

- id: response_string_pre
  type: frame
  description: >-
    Response frame for units BEFORE serial # 077-7121001 (Black) / 977-7121001 (Silver).
    Layout: Start(0xFE) Count(0x0E) ID(0xB0) Type(0x20) F1 F2 F3 F4 F5 C1 C2 C3 C4 C5 C6 C7 Checksum.
    F1-F5: front-panel icon flag bytes (bitmapped). C1-C7: ASCII disc/track/time text
    (C1=DISC, C2-3=TRACK, C4-5=MIN, C6-7=SEC).

- id: response_string_post
  type: frame
  description: >-
    Response frame for units AFTER serial # 077-7121001 (Black) / 977-7121001 (Silver).
    Layout: Start(0xFE) Count(0x0E) ID(0xB0) Type(0x20) F1 F2 F3 F4 F5 F6 C1 C2 C3 C4 C5 C6 C7 C8 Checksum.
    F1-F6: front-panel icon flag bytes (bitmapped). C1-C8: ASCII disc/track/time text
    (C1=DISC, C2-4=TRACK, C5-6=MIN, C7-8=SEC).

Variables

# Flag-byte bitmaps (front-panel icons). Source documents bit-per-icon maps; not settable
# parameters, so represented here as read-only flag definitions rather than Variables.
# UNRESOLVED: no settable variables documented in source.

Events

# Unsolicited feedback strings are emitted on any front-panel status change. See Feedbacks
# section for frame layouts (response_string_pre / response_string_post).
# F1-F5 (pre) / F1-F6 (post) bitmaps encode which icons are lit, e.g. PLAY, PAUSE, RANDOM,
# PROGRAM, REPEAT / REPT-ALL / REPT-DISC / REPT-1, REMAIN, TOTAL, TIME-MIN, TIME-SEC,
# DISP OFF, disc/track digit segments.
# Meta encoding applies to feedback data bytes: FD -> FD 00, FE -> FD 01.

Macros

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

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no safety warnings, interlock procedures, or power-on sequencing requirements.

Notes

  • HEX protocol. Send raw bytes only — no spaces, delimiters, CR, or LF after commands.
  • Standard command frame: FE 03 B0 10 {key} {checksum}. Count byte (0x03) counts only ID+Type+Key.
  • Two unit revisions split on serial # 077-7121001 (Black) / 977-7121001 (Silver):
    • Before: 2400 baud. Feedback frame has F1-F5 + C1-C7 (14 data bytes incl. checksum region).
    • After: 9600 baud. Feedback frame has F1-F6 + C1-C8 (extended).
  • Meta encoding (byte stuffing): any FD in the payload becomes FD 00; any FE becomes FD 01. Keeps 0xFE unique as the start byte. Applies to both command and response data bytes.
  • "Release Key" command (FE 03 B0 10 4F 12) likely terminates a held/keypress command — semantics not elaborated in source.

Provenance

source_domains:
  - rotel.com
source_urls:
  - "https://rotel.com/sites/default/files/product/rs232/RCC1055%20Protocol.pdf"
retrieved_at: 2026-06-30T22:50:10.178Z
last_checked_at: 2026-07-07T12:32:44.037Z

Verification Summary

verdict: verified
checked_at: 2026-07-07T12:32:44.037Z
matched_actions: 37
action_count: 37
confidence: medium
summary: "All 37 spec actions match verbatim in source command table with correct hex codes and descriptions. (10 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "Source device name is RCC-1055 throughout the document; the input \"Device name: Rotel Rcc 955\" and entity_id rotel_rcc_955 do not match the documented product. Operator must confirm whether this spec targets the RCC-1055 or a RCC-955 unit, and whether the RCC-955 (if it exists) shares this protocol."
- "Checksum computation algorithm for the trailing byte is not described in source. Documented commands include the literal checksum byte verbatim, but the formula to recompute it for arbitrary frames is unknown."
- "No explicit query/status-request command is documented. Feedback strings are unsolicited and mirror front-panel changes; it is not stated whether polling is possible."
- "no settable variables documented in source."
- "no multi-step sequences described in source."
- "source contains no safety warnings, interlock procedures, or power-on sequencing requirements."
- "checksum computation formula not described; only literal checksum bytes are given per documented command."
- "input device name (RCC-955) vs documented product (RCC-1055) mismatch — operator must confirm target unit and protocol applicability."
- "no explicit query/poll command documented; feedback strings are unsolicited status mirrors only."
- "flag-bit (F1-F5 / F1-F6) and ASCII (C1-C7 / C1-C8) byte semantics are tabulated in source but not encoded here as structured fields; implementer should consult source tables for bit-to-icon mapping."

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