Summary

RS-232 serial control spec for the Primare Pre35 Prisma modular preamplifier and network player. Covers power, volume, balance, mute, Bluetooth visibility/auto-connect, verbose mode, factory reset, and device information queries via a binary command protocol. The source document is the RS232 Command List for the Primare NP5 Prisma MK2, which shares the same Prisma platform control protocol.

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 operate/standby commands
  - levelable  # inferred from volume and balance control commands
  - queryable  # inferred from read commands returning values

Actions

# All commands use binary framing: <STX>(0x02) <command> <variable> [<value>] <DLE>(0x10) <ETX>(0x03)
# Write commands use 0x57 (W), read commands use 0x52 (R).
# When verbose mode is enabled, the device replies on each command.

# --- Power ---
- id: power_toggle
  label: Operate/Standby Toggle
  kind: action
  command: "0x02 0x57 0x01 0x00 0x10 0x03"
  params: []

- id: power_set
  label: Operate/Standby Set
  kind: action
  command: "0x02 0x57 0x81 0x{state} 0x10 0x03"
  params:
    - name: state
      type: integer
      description: "0x00 = Standby, 0x01 = Operate"

# --- Volume ---
- 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 0x00 (vol 0) to 0x63 (vol 99). Hex byte value maps directly to displayed volume."

# --- Balance ---
- id: balance_step_right
  label: Balance One Step Right
  kind: action
  command: "0x02 0x57 0x04 0xFF 0x10 0x03"
  params: []

- id: balance_step_left
  label: Balance One Step Left
  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: "0x01=L9, 0x02=L8, 0x03=L7, 0x04=L6, 0x05=L5, 0x06=L4, 0x07=L3, 0x08=L2, 0x09=L1, 0x0A=Centered, 0x0B=R1, 0x0C=R2, 0x0D=R3, 0x0E=R4, 0x0F=R5, 0x10=R6, 0x11=R7, 0x12=R8, 0x13=R9"

# --- Mute ---
- id: mute_toggle
  label: Mute Toggle
  kind: action
  command: "0x02 0x57 0x09 0x00 0x10 0x03"
  params: []

- id: mute_set
  label: Mute Set
  kind: action
  command: "0x02 0x57 0x89 0x{state} 0x10 0x03"
  params:
    - name: state
      type: integer
      description: "0x00 = Mute disable (unmute), 0x01 = Mute enable"

# --- Verbose Mode ---
- id: verbose_toggle
  label: Verbose Toggle
  kind: action
  command: "0x02 0x57 0x0D 0x00 0x10 0x03"
  params: []

- id: verbose_set
  label: Verbose Set
  kind: action
  command: "0x02 0x57 0x8D 0x{state} 0x10 0x03"
  params:
    - name: state
      type: integer
      description: "0x00 = Disable verbose (no reply), 0x01 = Enable verbose (replies sent)"

# --- Factory Reset ---
- id: factory_reset
  label: Factory Reset
  kind: action
  command: "0x02 0x57 0x13 0x00 0x10 0x03"
  params: []

# --- Bluetooth ---
- id: bt_visible_toggle
  label: Bluetooth Visible Toggle
  kind: action
  command: "0x02 0x57 0x18 0x00 0x10 0x03"
  params: []

- id: bt_visible_set
  label: Bluetooth Visible Set
  kind: action
  command: "0x02 0x57 0x98 0x{state} 0x10 0x03"
  params:
    - name: state
      type: integer
      description: "0x00 = Disable, 0x01 = Enable"

- id: bt_auto_connect_toggle
  label: Bluetooth Auto-Connect Toggle
  kind: action
  command: "0x02 0x57 0x19 0x00 0x10 0x03"
  params: []

- id: bt_auto_connect_set
  label: Bluetooth Auto-Connect Set
  kind: action
  command: "0x02 0x57 0x99 0x{state} 0x10 0x03"
  params:
    - name: state
      type: integer
      description: "0x00 = Disable, 0x01 = Enable"

# --- Read / Query Commands ---
- id: read_input_name
  label: Read Current Input Name
  kind: query
  command: "0x02 0x52 0x14 0x00 0x10 0x03"
  params: []

- 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 Firmware Version
  kind: query
  command: "0x02 0x52 0x17 0x00 0x10 0x03"
  params: []

- id: read_volume
  label: Read Current Volume
  kind: query
  command: "0x02 0x52 0x1F 0x00 0x10 0x03"
  params: []

- id: read_bt_name
  label: Read Bluetooth Name
  kind: query
  command: "0x02 0x52 0x1C 0x00 0x10 0x03"
  params: []

Feedbacks

# Device replies only when verbose mode is enabled.
# Reply format: <STX>(0x02) <variable> [<value>] <DLE>(0x10) <ETX>(0x03)

- id: power_state
  type: enum
  values: [standby, operate]
  reply_pattern: "0x02 0x01 0x{value} 0x10 0x03"
  value_map:
    "0x00": standby
    "0x01": operate

- id: volume_level
  type: integer
  reply_pattern: "0x02 0x03 0x{value} 0x10 0x03"
  value_range: "0x00-0x63"

- id: balance_position
  type: enum
  reply_pattern: "0x02 0x04 0x{value} 0x10 0x03"
  value_map:
    "0x01": L9
    "0x02": L8
    "0x03": L7
    "0x04": L6
    "0x05": L5
    "0x06": L4
    "0x07": L3
    "0x08": L2
    "0x09": L1
    "0x0A": Centered
    "0x0B": R1
    "0x0C": R2
    "0x0D": R3
    "0x0E": R4
    "0x0F": R5
    "0x10": R6
    "0x11": R7
    "0x12": R8
    "0x13": R9

- id: mute_state
  type: enum
  values: [unmuted, muted]
  reply_pattern: "0x02 0x09 0x{value} 0x10 0x03"
  value_map:
    "0x00": unmuted
    "0x01": muted

- id: verbose_state
  type: enum
  values: [disabled, enabled]
  reply_pattern: "0x02 0x0D 0x{value} 0x10 0x03"
  value_map:
    "0x00": disabled
    "0x01": enabled

- id: bt_visible_state
  type: enum
  values: [disabled, enabled]
  reply_pattern: "0x02 0x18 0x{value} 0x10 0x03"
  value_map:
    "0x00": disabled
    "0x01": enabled

- id: bt_auto_connect_state
  type: enum
  values: [disabled, enabled]
  reply_pattern: "0x02 0x19 0x{value} 0x10 0x03"
  value_map:
    "0x00": disabled
    "0x01": enabled

- id: input_name
  type: string
  reply_pattern: "0x02 0x14 [alias] 0x10 0x03"
  description: "Alias of current input as a text string"

- id: manufacturer_name
  type: string
  reply_pattern: "0x02 0x15 [PRIMARE] 0x10 0x03"
  description: "Manufacturer string, always PRIMARE"

- id: model_name
  type: string
  reply_pattern: "0x02 0x16 [model] 0x10 0x03"
  description: "Model name string"

- id: firmware_version
  type: string
  reply_pattern: "0x02 0x17 [firmware] 0x10 0x03"
  description: "Firmware version string"

- id: current_volume
  type: integer
  reply_pattern: "0x02 0x1F [volume] 0x10 0x03"
  description: "Current volume level"

- id: bluetooth_name
  type: string
  reply_pattern: "0x02 0x1C [BT name] 0x10 0x03"
  description: "Bluetooth device name string"

Variables

# No settable parameters beyond those already represented as discrete Actions
# (volume, balance, mute, power, verbose, BT settings are all action-driven).

Events

# No unsolicited notifications documented in source. Device only replies when
# verbose mode is enabled and a command is received.
# UNRESOLVED: source does not document any push/event mechanism.

Macros

# No multi-step sequences described in source.

Safety

confirmation_required_for:
  - factory_reset  # resets device to factory default settings
interlocks: []
# UNRESOLVED: source contains no safety warnings or interlock procedures.

Notes

  • Source document is titled "Primare NP5 Prisma MK2 - RS232 Command List." The Pre35 Prisma and NP5 Prisma MK2 share the Prisma platform; the RS232 command set is expected to be identical but has not been verified against a Pre35 Prisma unit.
  • Command framing: every command is a binary sequence <STX>(0x02) <command> <variable> [<value>] <DLE>(0x10) <ETX>(0x03). Write commands use 0x57 (ASCII 'W'), read commands use 0x52 (ASCII 'R').
  • Verbose mode must be enabled (0x0D toggle or 0x8D set with value 0x01) for the device to send replies. With verbose disabled, no reply is sent.
  • Toggle commands use variable bytes in the 0x01–0x19 range; corresponding set commands use variable byte + 0x80 (e.g. toggle power = var 0x01, set power = var 0x81).
  • Volume range: hex byte 0x00–0x63 maps to displayed volume 0–99. The hex value equals the decimal display value.
  • Balance: 19 discrete positions from L9 (0x01) through Centered (0x0A) to R9 (0x13).
  • Source notes protocol was "Tested with v1.99" firmware on NP5 Prisma MK2.
  • Flow control setting is not specified in the source.

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:53.271Z
last_checked_at: 2026-07-12T09:02:37.416Z

Verification Summary

verdict: verified
checked_at: 2026-07-12T09:02:37.416Z
matched_actions: 23
action_count: 23
confidence: medium
summary: "All 23 spec actions matched exactly to source hex command sequences; transport parameters (115200 baud, 8 bits, no parity, 1 stop bit) verified in source header. (8 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "Source document is specifically titled for NP5 Prisma MK2, not Pre35 Prisma. Command set is expected to be identical across Prisma-platform devices but this has not been verified against a Pre35 Prisma unit. Input/source selection commands are not present in the source — the Pre35 Prisma as a preamplifier likely supports input switching but it is not documented here."
- "flow control not stated in source"
- "source does not document any push/event mechanism."
- "source contains no safety warnings or interlock procedures."
- "Source document covers NP5 Prisma MK2, not Pre35 Prisma directly."
- "Flow control (RTS/CTS, XON/XOFF) not stated in source."
- "No input/source selection commands documented — Pre35 Prisma as a preamplifier likely supports input switching but it is absent from this source."
- "Firmware version compatibility for Pre35 Prisma not stated."

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