Summary
The Primare DD15 is a CD transport controlled over RS-232 using a fixed-length hexadecimal frame protocol. This spec covers the manufacturer-published RS-232 command list (rev 1.2, approved with DD15 firmware v1.25) including direct function commands, dim/menu/IR/verbose settings, factory reset, identity reads, and remote-style transport/track/playback commands.
Transport
protocols:
- serial
serial:
baud_rate: 115200
data_bits: 8
parity: none
stop_bits: 1
flow_control: none # UNRESOLVED: flow control not stated in source
auth:
type: none # inferred: no auth procedure in source
Traits
- powerable # inferred from Operate/Standby toggle and set commands
- queryable # inferred from Read manufacturer / model / version query commands
Actions
# Frame format observed: 0x02 0x57 <cmd> [param...] 0x10 0x03 (and 0x02 0x52 ... for reads).
# Commands below are reproduced verbatim from the vendor command list.
- id: operate_standby_toggle
label: Operate/Standby Toggle
kind: action
command: "02 57 01 00 10 03"
params: []
- id: operate_standby_set
label: Operate/Standby Set
kind: action
command: "02 57 81 {state} 10 03"
params:
- name: state
type: integer
description: "0 = Standby, 1 = Operate"
- id: dim_cycle
label: Dim Cycle
kind: action
command: "02 57 0a 00 10 03"
params: []
- id: dim_set
label: Dim Set
kind: action
command: "02 57 8a {level} 10 03"
params:
- name: level
type: integer
description: "0 = DIM OFF, 1 = DIM LOW, 2 = DIM MID, 3 = DIM HIGH"
- id: verbose_toggle
label: Verbose Toggle
kind: action
command: "02 57 0d 00 10 03"
params: []
- id: verbose_set
label: Verbose Set
kind: action
command: "02 57 8d {state} 10 03"
params:
- name: state
type: integer
description: "0 = Disable verbose, 1 = Enable verbose"
- id: menu_toggle
label: Menu Toggle
kind: action
command: "02 57 0e 00 10 03"
params: []
- id: menu_set
label: Menu Set
kind: action
command: "02 57 8e {state} 10 03"
params:
- name: state
type: integer
description: "0 = Exit settings menu, 1 = Enter settings menu"
- id: ir_input_toggle
label: IR Input Toggle
kind: action
command: "02 57 12 00 10 03"
params: []
- id: ir_input_set
label: IR Input Set
kind: action
command: "02 57 92 {input} 10 03"
params:
- name: input
type: integer
description: "0 = IR Front, 1 = IR Back"
- id: factory_reset
label: Factory Reset
kind: action
command: "02 57 13 00 10 03"
params: []
- id: read_manufacturer
label: Read Manufacturer
kind: query
command: "02 52 15 00 10 03"
params: []
- id: read_model
label: Read Model
kind: query
command: "02 52 16 00 10 03"
params: []
- id: read_version
label: Read Software Version
kind: query
command: "02 52 17 00 10 03"
params: []
- id: remote_standby_toggle
label: Remote Standby Toggle
kind: action
command: "02 57 0f 03 10 03"
params: []
- id: remote_operate
label: Remote Operate
kind: action
command: "02 57 0f 01 10 03"
params: []
- id: remote_up
label: Remote Up
kind: action
command: "02 57 0f 1a 10 03"
params: []
- id: remote_down
label: Remote Down
kind: action
command: "02 57 0f 1b 10 03"
params: []
- id: remote_left
label: Remote Left
kind: action
command: "02 57 0f 1c 10 03"
params: []
- id: remote_right
label: Remote Right
kind: action
command: "02 57 0f 1d 10 03"
params: []
- id: remote_dim
label: Remote Dim
kind: action
command: "02 57 0f 31 10 03"
params: []
- id: remote_menu
label: Remote Menu
kind: action
command: "02 57 0f 33 10 03"
params: []
- id: remote_select
label: Remote Select
kind: action
command: "02 57 0f 1e 10 03"
params: []
- id: remote_return
label: Remote Return
kind: action
command: "02 57 0f 1f 10 03"
params: []
- id: remote_info_short
label: Remote Info (Short Press)
kind: action
command: "02 57 0f 2f 10 03"
params: []
- id: remote_track_1
label: Track #1
kind: action
command: "02 57 0f 06 10 03"
params: []
- id: remote_track_2
label: Track #2
kind: action
command: "02 57 0f 08 10 03"
params: []
- id: remote_track_3
label: Track #3
kind: action
command: "02 57 0f 0a 10 03"
params: []
- id: remote_track_14
label: Track #14
kind: action
command: "02 57 0f 07 0c 10 03"
params: []
- id: remote_previous
label: Previous Track
kind: action
command: "02 57 0f 28 10 03"
params: []
- id: remote_next
label: Next Track
kind: action
command: "02 57 0f 27 10 03"
params: []
- id: remote_ffwd
label: Fast-Forward
kind: action
command: "02 57 0f 29 10 03"
params: []
- id: remote_frwd
label: Fast-Rewind
kind: action
command: "02 57 0f 2a 10 03"
params: []
- id: remote_play_pause
label: Play/Pause Toggle
kind: action
command: "02 57 0f 23 10 03"
params: []
- id: remote_play
label: Play
kind: action
command: "02 57 0f 21 10 03"
params: []
- id: remote_pause
label: Pause
kind: action
command: "02 57 0f 22 10 03"
params: []
- id: remote_stop
label: Stop
kind: action
command: "02 57 0f 25 10 03"
params: []
- id: remote_eject
label: Eject Disc
kind: action
command: "02 57 0f 24 10 03"
params: []
- id: remote_insert
label: Insert Disc
kind: action
command: "02 57 0f 26 10 03"
params: []
- id: remote_repeat
label: Repeat Toggle
kind: action
command: "02 57 0f 2b 10 03"
params: []
Feedbacks
- id: power_state
type: enum
values: [standby, operate]
description: "Reply to Operate/Standby Set / Toggle: 02 01 00 10 03 (Standby) or 02 01 01 10 03 (Operate)"
- id: dim_level
type: enum
values: [off, low, mid, high]
description: "Reply to Dim Set: 02 0a 00..03 10 03"
- id: verbose_state
type: enum
values: [disabled, enabled]
description: "Reply to Verbose Set: 02 0d 00..01 10 03"
- id: menu_state
type: enum
values: [exited, entered]
description: "Reply to Menu Set: 02 0e 00..01 10 03"
- id: ir_input
type: enum
values: [front, back]
description: "Reply to IR Input Set: 02 12 00..01 10 03"
- id: manufacturer
type: string
description: "Reply to Read Manufacturer: 'Primare'"
- id: model
type: string
description: "Reply to Read Model: 'DD15'"
- id: software_version
type: string
description: "Reply to Read Software Version (payload not specified in source)"
Variables
# UNRESOLVED: source documents no settable continuous parameters (e.g. volume, balance) - DD15 is a transport with no volume commands.
Events
# UNRESOLVED: source documents no unsolicited notification frames.
Macros
# UNRESOLVED: source documents no multi-step sequences.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no safety warnings, interlock procedures, or power-on sequencing requirements.
Notes
- All frames are bracketed by STX (0x02) and ETX (0x03); the second byte is 0x57 for control commands and 0x52 for read commands. The fifth byte is 0x10 across all documented frames; this appears to be a fixed field rather than a length or checksum (no checksum is documented in the source).
- Two redundant entries exist for "Standby toggle" / "Standby" / "Power toggle" (lines 29 and 31 both list
02 57 0f 03 10 03) — reproduced as a single actionremote_standby_toggle. - Remote track entries use a variable-length BCD-style encoding for track numbers > 9 (e.g. track 14 =
02 57 0f 07 0c 10 03, track 199 =02 57 0f 05 16 16 10). Source shows aTrack #Ytemplate (02 57 0f 0Y 10 03) but does not give a complete encoding table; only the explicit examples are encoded here. - Source rev 1.2 dated 2018-10-30, approved with DD15 firmware v1.25. No mention of other firmware compatibility.
- MUTE, color keys (RED/GREEN/YELLOW/BLUE), Volume +/-, and long-press info have no command payloads documented in source and are omitted.
Provenance
source_domains:
- primare.net
source_urls:
- https://primare.net/wp-content/uploads/2018/11/DD15-RS232-Command-list-official-rev1.2-2018-10-30.pdf
retrieved_at: 2026-07-10T10:58:10.656Z
last_checked_at: 2026-07-12T09:02:36.499Z
Verification Summary
verdict: verified
checked_at: 2026-07-12T09:02:36.499Z
matched_actions: 40
action_count: 40
confidence: medium
summary: "All 40 spec actions matched literally in source; single track variant (199) documented but not enumerated as separate action. (7 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "02 57 0f 05 16 16"
- "source does not document TCP/IP, HTTP, OSC, or any non-RS-232 transport. No safety, error-recovery, or fault-handling information is documented."
- "flow control not stated in source"
- "source documents no settable continuous parameters (e.g. volume, balance) - DD15 is a transport with no volume commands."
- "source documents no unsolicited notification frames."
- "source documents no multi-step sequences."
- "source contains no safety warnings, interlock procedures, or power-on sequencing requirements."
- "serial flow control (RTS/CTS/XON-XOFF) not stated in source."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0