Summary
The Primare CD35 Prisma is a CD player and network player with Prisma streaming technology. This spec covers RS-232 serial control, including power, volume, balance, mute, dim, transport (play/pause/stop/seek), tray operations, menu navigation, Bluetooth settings, and system query commands. All commands use a binary frame format with hex byte payloads.
Transport
protocols:
- serial
serial:
baud_rate: 115200
data_bits: 8
parity: none
stop_bits: 1
flow_control: null # UNRESOLVED: flow control not stated in source
auth:
type: none # inferred: no auth procedure in source
Traits
traits:
- powerable # inferred from power/standby command examples
- queryable # inferred from read manufacturer/model/version query examples
- levelable # inferred from volume set and balance set command examples
Actions
# ── Direct Commands ──────────────────────────────────────────────
# All frames: 0x02 = STX (start), 0x03 = ETX (end), 0x10 = DLE.
# 0x57 prefix = direct control command, 0x52 prefix = read/query,
# 0x0f sub-prefix (within 0x57 group) = remote emulation command.
- id: power_toggle
label: Power Toggle (Operate/Standby)
kind: action
command: "0x02 0x57 0x01 0x00 0x10 0x03"
params: []
- id: standby
label: Standby
kind: action
command: "0x02 0x57 0x81 0x00 0x10 0x03"
params: []
- id: operate
label: Operate (Power On)
kind: action
command: "0x02 0x57 0x81 0x01 0x10 0x03"
params: []
- id: volume_decrease
label: Volume Decrease
kind: action
command: "0x02 0x57 0x03 0xff 0x10 0x03"
params: []
- id: volume_increase
label: Volume Increase
kind: action
command: "0x02 0x57 0x03 0x01 0x10 0x03"
params: []
- id: volume_set
label: Volume Set
kind: action
command: "0x02 0x57 0x83 0x{level} 0x10 0x03"
params:
- name: level
type: integer
description: "Volume level in dB (0-99). Data byte 0x00=0dB through 0x63=99dB."
- id: balance_step_left
label: Balance Step Left
kind: action
command: "0x02 0x57 0x04 0xff 0x10 0x03"
params: []
- id: balance_step_right
label: Balance Step Right
kind: action
command: "0x02 0x57 0x04 0x01 0x10 0x03"
params: []
- id: balance_set
label: Balance Set
kind: action
command: "0x02 0x57 0x84 0x{value} 0x10 0x03"
params:
- name: value
type: integer
description: "Balance value 0x01-0x13 (1-19). 0x01=00LR-9, 0x0a=00LR00 (center), 0x13=-9LR00."
- id: mute_toggle
label: Mute Toggle
kind: action
command: "0x02 0x57 0x09 0x00 0x10 0x03"
params: []
- id: mute_disable
label: Mute Disable (Unmute)
kind: action
command: "0x02 0x57 0x89 0x00 0x10 0x03"
params: []
- id: mute_enable
label: Mute Enable
kind: action
command: "0x02 0x57 0x89 0x01 0x10 0x03"
params: []
- id: dim_cycle
label: Dim Cycle
kind: action
command: "0x02 0x57 0x0a 0x00 0x10 0x03"
params: []
- id: dim_off
label: Dim Off
kind: action
command: "0x02 0x57 0x8a 0x00 0x10 0x03"
params: []
- id: dim_low
label: Dim Low
kind: action
command: "0x02 0x57 0x8a 0x01 0x10 0x03"
params: []
- id: dim_mid
label: Dim Mid
kind: action
command: "0x02 0x57 0x8a 0x02 0x10 0x03"
params: []
- id: dim_high
label: Dim High
kind: action
command: "0x02 0x57 0x8a 0x03 0x10 0x03"
params: []
- id: verbose_toggle
label: Verbose Toggle
kind: action
command: "0x02 0x57 0x0d 0x00 0x10 0x03"
params: []
- id: verbose_disable
label: Verbose Disable
kind: action
command: "0x02 0x57 0x8d 0x00 0x10 0x03"
params: []
- id: verbose_enable
label: Verbose Enable
kind: action
command: "0x02 0x57 0x8d 0x01 0x10 0x03"
params: []
- id: menu_toggle
label: Menu Toggle (Enter/Leave)
kind: action
command: "0x02 0x57 0x0e 0x00 0x10 0x03"
params: []
- id: menu_exit
label: Menu Exit
kind: action
command: "0x02 0x57 0x8e 0x00 0x10 0x03"
params: []
- id: menu_enter
label: Menu Enter
kind: action
command: "0x02 0x57 0x8e 0x01 0x10 0x03"
params: []
- id: ir_input_toggle
label: IR Input Toggle
kind: action
command: "0x02 0x57 0x12 0x00 0x10 0x03"
params: []
- id: ir_input_front
label: IR Input Set Front
kind: action
command: "0x02 0x57 0x92 0x00 0x10 0x03"
params: []
- id: ir_input_back
label: IR Input Set Back
kind: action
command: "0x02 0x57 0x92 0x01 0x10 0x03"
params: []
- id: factory_reset
label: Factory Reset
kind: action
command: "0x02 0x57 0x13 0x00 0x10 0x03"
params: []
- id: bt_visible_toggle
label: Bluetooth Visible Toggle
kind: action
command: "0x02 0x57 0x18 0x00 0x10 0x03"
params: []
- id: bt_visible_disable
label: Bluetooth Visible Disable
kind: action
command: "0x02 0x57 0x98 0x00 0x10 0x03"
params: []
- id: bt_visible_enable
label: Bluetooth Visible Enable
kind: action
command: "0x02 0x57 0x98 0x01 0x10 0x03"
params: []
- id: bt_auto_connect_toggle
label: Bluetooth Auto-Connect Toggle
kind: action
command: "0x02 0x57 0x19 0x00 0x10 0x03"
params: []
- id: bt_auto_connect_disable
label: Bluetooth Auto-Connect Disable
kind: action
command: "0x02 0x57 0x99 0x00 0x10 0x03"
params: []
- id: bt_auto_connect_enable
label: Bluetooth Auto-Connect Enable
kind: action
command: "0x02 0x57 0x99 0x01 0x10 0x03"
params: []
# ── Read / Query Commands ────────────────────────────────────────
- id: read_manufacturer
label: Read Manufacturer
kind: query
command: "0x02 0x52 0x15 0x00 0x10 0x03"
params: []
- id: read_model
label: Read Model Name
kind: query
command: "0x02 0x52 0x16 0x00 0x10 0x03"
params: []
- id: read_version
label: Read Software Version
kind: query
command: "0x02 0x52 0x17 0x00 0x10 0x03"
params: []
- id: read_bt_name
label: Read Bluetooth Name
kind: query
command: "0x02 0x52 0x1c 0x00 0x10 0x03"
params: []
# ── Remote Emulation Commands (0x0f sub-prefix) ─────────────────
# These emulate the IR remote control over RS-232.
- id: remote_standby_toggle
label: Remote Standby Toggle
kind: action
command: "0x02 0x57 0x0f 0x03 0x10 0x03"
params: []
- id: remote_operate
label: Remote Operate
kind: action
command: "0x02 0x57 0x0f 0x01 0x10 0x03"
params: []
- id: remote_up
label: Remote Arrow Up
kind: action
command: "0x02 0x57 0x0f 0x1a 0x10 0x03"
params: []
- id: remote_down
label: Remote Arrow Down
kind: action
command: "0x02 0x57 0x0f 0x1b 0x10 0x03"
params: []
- id: remote_left
label: Remote Arrow Left
kind: action
command: "0x02 0x57 0x0f 0x1c 0x10 0x03"
params: []
- id: remote_right
label: Remote Arrow Right
kind: action
command: "0x02 0x57 0x0f 0x1d 0x10 0x03"
params: []
- id: remote_mute
label: Remote Mute Toggle
kind: action
command: "0x02 0x57 0x0f 0x2d 0x10 0x03"
params: []
- id: remote_dim
label: Remote Cycle Dim Mode
kind: action
command: "0x02 0x57 0x0f 0x31 0x10 0x03"
params: []
- id: remote_menu
label: Remote Toggle Menu
kind: action
command: "0x02 0x57 0x0f 0x33 0x10 0x03"
params: []
- id: remote_select
label: Remote Select
kind: action
command: "0x02 0x57 0x0f 0x1e 0x10 0x03"
params: []
- id: remote_return
label: Remote Return (Navigate Back)
kind: action
command: "0x02 0x57 0x0f 0x1f 0x10 0x03"
params: []
- id: remote_info_short
label: Remote Info (Short Press)
kind: action
command: "0x02 0x57 0x0f 0x2f 0x10 0x03"
params: []
- id: remote_info_long
label: Remote Info (Long Press)
kind: action
command: "0x02 0x57 0x0f 0x30 0x10 0x03"
params: []
- id: remote_track_select
label: Remote Track Select
kind: action
command: "0x02 0x57 0x0f 0x{track_data} 0x10 0x03"
params:
- name: track_data
type: hex
description: >
Track number encoded as hex byte(s).
Examples from source:
Track 1=0x06, Track 2=0x08, Track 3=0x0a,
Track 14=0x07 0x0c, Track 199=0x05 0x16 0x16.
UNRESOLVED: encoding algorithm for multi-digit track numbers not documented in source.
- id: remote_volume_up
label: Remote Volume Increase
kind: action
command: "0x02 0x57 0x0f 0x18 0x10 0x03"
params: []
- id: remote_volume_down
label: Remote Volume Decrease
kind: action
command: "0x02 0x57 0x0f 0x19 0x10 0x03"
params: []
- id: remote_previous
label: Remote Previous Track
kind: action
command: "0x02 0x57 0x0f 0x28 0x10 0x03"
params: []
- id: remote_next
label: Remote Next Track
kind: action
command: "0x02 0x57 0x0f 0x27 0x10 0x03"
params: []
- id: remote_ffwd
label: Remote Fast Forward
kind: action
command: "0x02 0x57 0x0f 0x29 0x10 0x03"
params: []
- id: remote_frwd
label: Remote Fast Rewind
kind: action
command: "0x02 0x57 0x0f 0x2a 0x10 0x03"
params: []
- id: remote_play_pause
label: Remote Play/Pause Toggle
kind: action
command: "0x02 0x57 0x0f 0x23 0x10 0x03"
params: []
- id: remote_play
label: Remote Play
kind: action
command: "0x02 0x57 0x0f 0x21 0x10 0x03"
params: []
- id: remote_pause
label: Remote Pause
kind: action
command: "0x02 0x57 0x0f 0x22 0x10 0x03"
params: []
- id: remote_stop
label: Remote Stop
kind: action
command: "0x02 0x57 0x0f 0x25 0x10 0x03"
params: []
- id: remote_open
label: Remote Open Tray
kind: action
command: "0x02 0x57 0x0f 0x24 0x10 0x03"
params: []
- id: remote_close
label: Remote Close Tray
kind: action
command: "0x02 0x57 0x0f 0x26 0x10 0x03"
params: []
- id: remote_repeat
label: Remote Toggle Repeat (repeat all / repeat off)
kind: action
command: "0x02 0x57 0x0f 0x2b 0x10 0x03"
params: []
Feedbacks
# Reply frames from CD35. Format: 0x02 [response_code] [value] 0x10 0x03.
# These are solicited responses to set/toggle commands.
- id: power_state_reply
type: enum
values: [standby, operate]
description: "Reply to power/standby commands. Standby: 0x02 0x01 0x00 0x10 0x03. Operate: 0x02 0x01 0x01 0x10 0x03."
- id: volume_level_reply
type: integer
description: "Reply to volume set: 0x02 0x03 0x{level} 0x10 0x03. Level 0x00-0x63 (0-99dB)."
- id: balance_level_reply
type: integer
description: "Reply to balance set: 0x02 0x04 0x{value} 0x10 0x03. Value 0x01-0x13 (1-19)."
- id: mute_state_reply
type: enum
values: [disabled, enabled]
description: "Reply to mute set. Disabled: 0x02 0x09 0x00 0x10 0x03. Enabled: 0x02 0x09 0x01 0x10 0x03."
- id: dim_state_reply
type: enum
values: [off, low, mid, high]
description: "Reply to dim set. Off: 0x02 0x0a 0x00 0x10 0x03. Low: 0x02 0x0a 0x01 0x10 0x03. Mid: 0x02 0x0a 0x02 0x10 0x03. High: 0x02 0x0a 0x03 0x10 0x03."
- id: verbose_state_reply
type: enum
values: [disabled, enabled]
description: "Reply to verbose set. Disabled: 0x02 0x0d 0x00 0x10 0x03. Enabled: 0x02 0x0d 0x01 0x10 0x03."
- id: menu_state_reply
type: enum
values: [exit, enter]
description: "Reply to menu set. Exit: 0x02 0x0e 0x00 0x10 0x03. Enter: 0x02 0x0e 0x01 0x10 0x03."
- id: ir_input_state_reply
type: enum
values: [front, back]
description: "Reply to IR input set. Front: 0x02 0x12 0x00 0x10 0x03. Back: 0x02 0x12 0x01 0x10 0x03."
- id: factory_reset_reply
type: boolean
description: "Reply to factory reset: 0x02 0x13 0x01 0x10 0x03."
- id: bt_visible_state_reply
type: enum
values: [disabled, enabled]
description: "Reply to BT visible set. Disabled: 0x02 0x18 0x00 0x10 0x03. Enabled: 0x02 0x18 0x01 0x10 0x03."
- id: bt_auto_connect_state_reply
type: enum
values: [disabled, enabled]
description: "Reply to BT auto-connect set. Disabled: 0x02 0x19 0x00 0x10 0x03. Enabled: 0x02 0x19 0x01 0x10 0x03."
- id: manufacturer_reply
type: string
description: "Reply to read manufacturer query. Returns 'Primare'."
- id: model_reply
type: string
description: "Reply to read model query. Returns 'CD35'."
Variables
# No settable parameters beyond those already represented as discrete actions.
# Volume and balance are settable via their respective set commands above.
Events
# Source documents no unsolicited notification events.
# Toggle commands (power, mute, dim, verbose, menu, IR, BT) reply with current state - see Feedbacks.
Macros
# Source documents no multi-step command sequences.
Safety
confirmation_required_for:
- factory_reset # destructive: resets all device settings
interlocks: []
# Source contains no explicit safety warnings or interlock procedures.
Notes
- All command frames use the format
0x02 [prefix] [command] [data] 0x10 0x03where 0x02=STX, 0x03=ETX, 0x10=DLE. - The 0x57 prefix group covers direct control commands; the 0x52 prefix group covers read/query commands.
- A second command group uses 0x57 0x0f as a sub-prefix for remote emulation commands that mirror the physical IR remote.
- Some functions have both a direct command and a remote emulation variant (e.g. power toggle, volume up/down, mute, dim, menu) with different byte sequences but equivalent effect.
- The source lists RED, GREEN, YELLOW, BLUE color buttons as "n/a" with no command bytes — these are not implemented in RS-232.
- Source tested with firmware v2.93, dated 2018-11-12.
Provenance
source_domains:
- primare.net
source_urls:
- https://primare.net/wp-content/uploads/2019/01/CD35-RS232-Command-list-official-2018-11-12.pdf
- https://primare.net/wp-content/uploads/2022/01/Primare-Prisma-API-TCPIP-and-RS232-2025-06-13.pdf
- https://primare.net/support/documents-downloads/
retrieved_at: 2026-07-10T20:17:43.621Z
last_checked_at: 2026-07-12T09:02:35.472Z
Verification Summary
verdict: verified
checked_at: 2026-07-12T09:02:35.472Z
matched_actions: 64
action_count: 64
confidence: medium
summary: "All 64 spec action hex sequences matched verbatim in source; transport parameters confirmed; bidirectional coverage complete. (8 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "track number encoding algorithm for multi-digit tracks (14, 199) is not fully documented in source"
- "no TCP/IP, HTTP, or network control protocol details documented in this source despite \"network player\" designation"
- "flow control not stated in source"
- "encoding algorithm for multi-digit track numbers not documented in source."
- "track number encoding for multi-digit values (track 14, track 199) is shown only as raw hex examples without a documented algorithm"
- "flow control setting not stated in source"
- "read version and read BT name query response formats not documented in source"
- "verbose mode response format (what additional data verbose mode returns) not documented"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0