Summary
RS-232 control protocol for the Primare NP5 Prisma MK2 network player. The spec covers a binary framed command protocol using STX/DLE/ETX with write/read command verbs, supporting power, volume, balance, mute, input queries, Bluetooth settings, factory reset, and device identification reads.
Transport
protocols:
- serial
serial:
baud_rate: 115200
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
auth:
type: none # inferred: no auth procedure in source
Traits
powerable: true # inferred from operate/standby commands
queryable: true # inferred from read commands
levelable: true # inferred from volume/balance commands
Actions
- id: power_toggle
label: Operate/Standby Toggle
kind: action
command: "02 57 01 00 10 03"
params: []
- id: standby_set
label: Standby
kind: action
command: "02 57 81 00 10 03"
params: []
- id: operate_set
label: Operate
kind: action
command: "02 57 81 01 10 03"
params: []
- id: volume_decrease
label: Volume Decrease
kind: action
command: "02 57 03 FF 10 03"
params: []
- id: volume_increase
label: Volume Increase
kind: action
command: "02 57 03 01 10 03"
params: []
- id: volume_set
label: Volume Set
kind: action
command: "02 57 83 {level} 10 03"
params:
- name: level
type: integer
description: Volume index (0x00..0x63, i.e. 0..99)
- id: volume_query
label: Volume Query
kind: query
command: "02 52 1F 00 10 03"
params: []
- id: balance_step_right
label: Balance One Step Right
kind: action
command: "02 57 04 FF 10 03"
params: []
- id: balance_step_left
label: Balance One Step Left
kind: action
command: "02 57 04 01 10 03"
params: []
- id: balance_set
label: Balance Set
kind: action
command: "02 57 84 {value} 10 03"
params:
- name: value
type: integer
description: Balance position (0x01..0x13, where 0x0A=centered; L9..L1, Center, R1..R9)
- id: mute_toggle
label: Mute/Unmute Toggle
kind: action
command: "02 57 09 00 10 03"
params: []
- id: mute_disable
label: Mute Disable (Unmute)
kind: action
command: "02 57 89 00 10 03"
params: []
- id: mute_enable
label: Mute Enable
kind: action
command: "02 57 89 01 10 03"
params: []
- id: verbose_toggle
label: Verbose Toggle
kind: action
command: "02 57 0D 00 10 03"
params: []
- id: verbose_disable
label: Disable Verbose
kind: action
command: "02 57 8D 00 10 03"
params: []
- id: verbose_enable
label: Enable Verbose
kind: action
command: "02 57 8D 01 10 03"
params: []
- id: factory_reset
label: Factory Reset
kind: action
command: "02 57 13 00 10 03"
params: []
- id: input_name_query
label: Read Current Input Alias
kind: query
command: "02 52 14 00 10 03"
params: []
- id: manufacturer_query
label: Read Manufacturer
kind: query
command: "02 52 15 00 10 03"
params: []
- id: model_query
label: Read Model Name
kind: query
command: "02 52 16 00 10 03"
params: []
- id: firmware_version_query
label: Read Firmware Version
kind: query
command: "02 52 17 00 10 03"
params: []
- id: bluetooth_visibility_toggle
label: Bluetooth Visibility Toggle
kind: action
command: "02 57 18 00 10 03"
params: []
- id: bluetooth_visibility_disable
label: Bluetooth Visibility Disable
kind: action
command: "02 57 98 00 10 03"
params: []
- id: bluetooth_visibility_enable
label: Bluetooth Visibility Enable
kind: action
command: "02 57 98 01 10 03"
params: []
- id: bluetooth_autoconnect_toggle
label: Bluetooth Auto-Connect Toggle
kind: action
command: "02 57 19 00 10 03"
params: []
- id: bluetooth_autoconnect_disable
label: Bluetooth Auto-Connect Disable
kind: action
command: "02 57 99 00 10 03"
params: []
- id: bluetooth_autoconnect_enable
label: Bluetooth Auto-Connect Enable
kind: action
command: "02 57 99 01 10 03"
params: []
- id: bluetooth_name_query
label: Read Bluetooth Name
kind: query
command: "02 52 1C 00 10 03"
params: []
Feedbacks
- id: power_state
type: enum
values: [operate, standby]
- id: volume
type: integer
description: Volume index 0..99 (0x00..0x63)
- id: balance
type: integer
description: Balance position 0x01..0x13 (L9..L1, 0x0A=Center, R1..R9)
- id: mute_state
type: enum
values: [unmuted, muted]
- id: verbose_state
type: enum
values: [disabled, enabled]
- id: bluetooth_visibility
type: enum
values: [disabled, enabled]
- id: bluetooth_autoconnect
type: enum
values: [disabled, enabled]
- id: input_name
type: string
- id: manufacturer
type: string
- id: model_name
type: string
- id: firmware_version
type: string
- id: bluetooth_name
type: string
Variables
- name: volume_level
type: integer
range: [0, 99]
description: 0x00..0x63 per source volume table
- name: balance_position
type: integer
range: [1, 19]
description: 0x01..0x13; 0x0A = centered
Events
# Verbose-mode unsolicited replies are framed as <STX> <variable> [<value>] <DLE> <ETX>
# when the device has verbose replies enabled. Other unsolicited notifications:
# UNRESOLVED: source does not document unsolicited event frames beyond verbose replies.
Macros
# UNRESOLVED: source does not document multi-step macro sequences.
Safety
confirmation_required_for:
- factory_reset
interlocks: []
# UNRESOLVED: source does not document interlock procedures or safety warnings.
Notes
Frame format: every command is a 6-byte packet <STX> <command> <variable> [<value>] <DLE> <ETX>. The command byte is 0x57 (W) for write, 0x52 (R) for read. Replies (when verbose is enabled) use <STX> <variable> [<value>] <DLE> <ETX> and may include multi-byte value payloads (e.g. input alias, model, firmware string). The source table was tested with firmware v1.99; no other firmware compatibility range stated.
The source PDF header reads "Primare NP5 Prisma MK2 - RS232 Command List" while the operator-supplied device name is "Primare Sc15 Prisma Preamplifier And Network Player". The action and feedback payload hex bytes are taken verbatim from the NP5 Prisma MK2 command list. Operator should confirm that the Sc15 Prisma uses the same RS-232 framing before driving the device.
Balance steps are stored as a 19-position integer (0x01..0x13); the source enumerates L9..L1, Center (0x0A), and R1..R9 — these are not 19 separate opcodes, but a single balance_set action with the value field shown. Likewise volume is a single volume_set action with level 0..99, not 100 separate actions.
Provenance
source_domains:
- primare.net
source_urls:
- https://primare.net/wp-content/uploads/2020/08/NP5-Prisma-MK2-RS232-Command-list-2021-10-04.pdf
retrieved_at: 2026-07-10T10:59:19.873Z
last_checked_at: 2026-07-13T06:40:26.497Z
Verification Summary
verdict: verified
checked_at: 2026-07-13T06:40:26.497Z
matched_actions: 28
action_count: 28
confidence: medium
summary: "All 28 spec actions matched verbatim in source table after removal of the 3 fabricated opcode-swap query commands; perfect one-to-one command coverage; transport params confirmed (115200/8/N/1). (5 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "input selection (source select) commands not present in the source table; only \"Read current input name\" query exists. Source device name in input prompt is \"Sc15 Prisma\" but source PDF references \"NP5 Prisma MK2\" — model compatibility may need operator confirmation."
- "source does not document unsolicited event frames beyond verbose replies."
- "source does not document multi-step macro sequences."
- "source does not document interlock procedures or safety warnings."
- "input select (source) commands not present in the source — only the read-alias query is documented. Voltage/current/power specs not stated. Physical connector pinout (DB-9 vs 3.5mm TRS, used by some Primare units) not stated. Whether verbose replies arrive unsolicited or only in response to commands is ambiguous — source shows them only as \"replies on the following format when a command is received\"."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0