Summary
Classe Audio SSP-300 AV surround sound processor controlled via RS-232C serial (9600 8N1, ASCII). Spec covers full command set: input/zone routing, volume, balance, channel trims, lip sync, power/standby, triggers, LCD intensity, status queries, and unsolicited status events. Source is the first-party Classe RS-232 spec covering SSP-300 and SSP-600 (SSP-300 address S300).
Transport
protocols:
- serial
serial:
baud_rate: 9600
data_bits: 8
parity: none
stop_bits: 1
flow_control: none # UNRESOLVED: flow control not stated in source; FIFO (16-byte) supported, no inter-byte minimum
auth:
type: none # inferred: no auth procedure in source
# Framing notes (from source):
# - All command/status data are ASCII bytes.
# - Each command line: optional address field "S300" + period delimiter + command string + CR/LF.
# Address and period may be omitted if controller is uniquely connected to the SSP-300.
# - Command string = ASCII between period and CR; leading blanks ignored.
# - Acknowledge reply within 100ms of LF: "!" + CR/LF (recognized) or "?" + CR/LF (unrecognized).
# - xVOL+/- (MVOL/ZVOL) must be received within 200ms of prior reply for acceleration mode.
Traits
traits:
- powerable # inferred: STBY / OPER commands present
- routable # inferred: MAIN n / ZONE n input selection present
- queryable # inferred: STAT MAIN / STAT MODE queries present
- levelable # inferred: VOLA / VOLZ / channel trim commands present
Actions
# Address prefix "S300." shown optional; commands below omit it (controller uniquely connected).
# Each command terminated by CR/LF.
actions:
# --- Input / zone routing ---
- id: main_input_set
label: Set Main Zone Input
kind: action
command: "MAIN {n}\r\n"
params:
- name: n
type: integer
description: Input number
- id: zone_input_set
label: Set Zone Input
kind: action
command: "ZONE {n}\r\n"
params:
- name: n
type: integer
description: Input number
- id: main_input_next
label: Main Input Next
kind: action
command: "MINP+\r\n"
params: []
- id: main_input_prev
label: Main Input Previous
kind: action
command: "MINP-\r\n"
params: []
- id: zone_input_next
label: Zone Input Next
kind: action
command: "ZINP+\r\n"
params: []
- id: zone_input_prev
label: Zone Input Previous
kind: action
command: "ZINP-\r\n"
params: []
# --- Zone on/off / mute ---
- id: zone_unmute
label: Zone On (Unmute)
kind: action
command: "ZUMT\r\n"
params: []
- id: zone_mute_standby
label: Zone Off (Standby/Mute)
kind: action
command: "ZMUT\r\n"
params: []
- id: zone_on
label: Zone On
kind: action
command: "ZON\r\n"
params: []
- id: zone_off
label: Zone Off
kind: action
command: "ZOFF\r\n"
params: []
- id: main_mute_engage
label: Mute Main
kind: action
command: "MUTE\r\n"
params: []
- id: main_mute_release
label: Unmute Main
kind: action
command: "UNMT\r\n"
params: []
# --- Listening position / volume ---
- id: listening_position_set
label: Set Listening Position
kind: action
command: "LPSN {m}\r\n"
params:
- name: m
type: integer
description: Listening position number
- id: main_volume_set
label: Set Main Volume (Absolute)
kind: action
command: "VOLA {vv}\r\n"
params:
- name: vv
type: integer
description: Absolute volume value (nearest possible applied; mute disengaged)
- id: zone_volume_set
label: Set Zone Volume (Absolute)
kind: action
command: "VOLZ {vv}\r\n"
params:
- name: vv
type: integer
description: Absolute zone output volume (00 = off)
- id: main_volume_up
label: Main Volume Up
kind: action
command: "MVOL+\r\n"
params: []
notes: "Acceleration mode: must be received within 200ms of prior reply."
- id: main_volume_down
label: Main Volume Down
kind: action
command: "MVOL-\r\n"
params: []
notes: "Acceleration mode: must be received within 200ms of prior reply."
- id: zone_volume_up
label: Zone Volume Up
kind: action
command: "ZVOL+\r\n"
params: []
notes: "Acceleration mode: must be received within 200ms of prior reply."
- id: zone_volume_down
label: Zone Volume Down
kind: action
command: "ZVOL-\r\n"
params: []
notes: "Acceleration mode: must be received within 200ms of prior reply."
# --- Balance ---
- id: balance_left
label: Balance Shift Left (1 dB)
kind: action
command: "BALL\r\n"
params: []
- id: balance_center
label: Balance Recenter
kind: action
command: "BALC\r\n"
params: []
- id: balance_right
label: Balance Shift Right (1 dB)
kind: action
command: "BALR\r\n"
params: []
# --- Temporary channel trims ---
- id: sub_trim_up
label: Sub Trim +1 dB (Temporary)
kind: action
command: "SUB+\r\n"
params: []
- id: sub_trim_down
label: Sub Trim -1 dB (Temporary)
kind: action
command: "SUB-\r\n"
params: []
- id: center_trim_up
label: Center Trim +1 dB (Temporary)
kind: action
command: "CNT+\r\n"
params: []
- id: center_trim_down
label: Center Trim -1 dB (Temporary)
kind: action
command: "CNT-\r\n"
params: []
- id: surround_trim_up
label: Surround Trim +1 dB (Temporary)
kind: action
command: "SRN+\r\n"
params: []
- id: surround_trim_down
label: Surround Trim -1 dB (Temporary)
kind: action
command: "SRN-\r\n"
params: []
- id: back_trim_up
label: Back Trim +1 dB (Temporary)
kind: action
command: "BAK+\r\n"
params: []
- id: back_trim_down
label: Back Trim -1 dB (Temporary)
kind: action
command: "BAK-\r\n"
params: []
# --- Lip sync ---
- id: lipsync_up
label: Lip Sync +1 ms
kind: action
command: "LSY+\r\n"
params: []
- id: lipsync_down
label: Lip Sync -1 ms
kind: action
command: "LSY-\r\n"
params: []
- id: lipsync_reset
label: Lip Sync Reset (No Delay)
kind: action
command: "LSY0\r\n"
params: []
- id: trims_reset
label: Reset Temporary Channel Offset Trims
kind: action
command: "TRM0\r\n"
params: []
# --- Dolby Digital late night ---
- id: dd_late_night_on
label: Dolby Digital Late Night Compression On
kind: action
command: "DDLN\r\n"
params: []
- id: dd_late_night_off
label: Dolby Digital Late Night Compression Off
kind: action
command: "DDNC\r\n"
params: []
# --- Power state ---
- id: standby
label: Standby
kind: action
command: "STBY\r\n"
params: []
- id: operate
label: Operate
kind: action
command: "OPER\r\n"
params: []
# --- Triggers ---
- id: trigger1_off
label: Trigger 1 Off
kind: action
command: "T1_0\r\n"
params: []
- id: trigger1_on
label: Trigger 1 On
kind: action
command: "T1_1\r\n"
params: []
- id: trigger2_off
label: Trigger 2 Off
kind: action
command: "T2_0\r\n"
params: []
- id: trigger2_on
label: Trigger 2 On
kind: action
command: "T2_1\r\n"
params: []
# --- Front panel LCD ---
- id: lcd_screen_saver
label: LCD Screen Saver (Low Power)
kind: action
command: "LCD0\r\n"
params: []
- id: lcd_low
label: LCD Low Intensity
kind: action
command: "LCD1\r\n"
params: []
- id: lcd_medium
label: LCD Medium Intensity
kind: action
command: "LCD2\r\n"
params: []
- id: lcd_high
label: LCD High Intensity
kind: action
command: "LCD3\r\n"
params: []
# --- IR passthrough ---
- id: ir_pass
label: Pass IR Code
kind: action
command: "IRC {nnn}\r\n"
params:
- name: nnn
type: integer
description: IR code number from SSP-300/600 IR code table
# --- Tape monitor ---
- id: tape_off
label: Tape Monitor Off
kind: action
command: "TAP0\r\n"
params: []
- id: tape_on
label: Tape Monitor On
kind: action
command: "TAP1\r\n"
params: []
# --- UI skin ---
- id: skin_set
label: Set Front Panel Skin
kind: action
command: "CSK {n}\r\n"
params:
- name: n
type: integer
description: Skin number (1 = Classe, ..., 5 = Green)
# --- Debug / config (SSP-600-only feature flagged in source) ---
- id: dbg_balcon
label: Debug Set Input Balanced Mode
kind: action
command: "DBGBALCON {n} {m}\r\n"
params:
- name: n
type: integer
description: Input number
- name: m
type: integer
description: Balanced mode (0 = off, 1 = on); source marks SSP-600 only
notes: "Source marks SSP600 only; behavior on SSP-300 UNRESOLVED."
- id: dbg_vidout
label: Debug Set Video Output State
kind: action
command: "DBGVIDOUT {n} {m}\r\n"
params:
- name: n
type: integer
description: Output video number
- name: m
type: integer
description: State (0 = off, 1 = on)
# --- Status queries ---
- id: query_main_status
label: Query Main Volume and Input
kind: query
command: "STAT MAIN\r\n"
params: []
- id: auto_status_on
label: Enable Automatic Status Updates
kind: action
command: "STAT AUTO\r\n"
params: []
- id: auto_status_off
label: Disable Automatic Status Updates
kind: action
command: "STAT OFF\r\n"
params: []
- id: query_mode
label: Query Current Post-Processing Mode
kind: query
command: "STAT MODE\r\n"
params: []
Feedbacks
# Acknowledge reply: device sends "!" + CR/LF within 100ms for recognized commands,
# "?" + CR/LF for unrecognized. See Events for status payloads.
feedbacks:
- id: command_ack
type: enum
values: ["!", "?"] # "!" = recognized, "?" = unrecognized
notes: "Single-char reply + CR/LF, sent within 100ms of command LF."
Variables
# No directly settable scalar parameter exposed as a single value endpoint in source.
# Volume, balance, trims, lip sync are all driven via discrete actions above.
# Post-processing mode has no set command in source (read via STAT MODE); menu-only set path UNRESOLVED.
Events
# Unsolicited status strings emitted by the SSP-300 (esp. when STAT AUTO enabled).
# No leading address field. Numeric placeholders {n}, {vv}, {NN} substituted by device.
events:
- id: sys_powerup
label: System Power-Up Complete
payload: "SY PWRUP"
notes: "SSP-300/600 has completed power up."
- id: sys_standby
label: System Entered Standby
payload: "SY STBY"
- id: sys_operate
label: System Entered Operate
payload: "SY OPER"
- id: volume_absolute
label: Volume Absolute Report
payload: "SY VOLA {vv}"
params:
- name: vv
type: integer
description: Current absolute volume; "muted" appended if mute engaged.
- id: volume_relative
label: Volume Relative (to THX level)
payload: "SY VOLR {sign}{vv}"
params:
- name: sign
type: string
description: "+/-"
- name: vv
type: integer
- id: main_input_report
label: Main Input Selection Report
payload: "SY MAIN {n} {NN}"
params:
- name: n
type: integer
description: Input number
- name: NN
type: string
description: Input name
- id: mode_report
label: Post-Processing Mode Report
payload: "SY MODE {n}"
params:
- name: n
type: integer
description: Mode index 0-34 (see enum below)
enum:
0: "multi-channel"
1: "multi-channel+THX"
2: "Dolby Pro Logic"
3: "Dolby Pro Logic+THX"
4: "music mode club"
5: "music mode natural"
6: "music mode concert"
7: "music mode party"
8: "music mode stadium"
9: "music mode 6"
10: "music mode 7"
11: "mono"
12: "mono+THX"
13: "custom"
14: "surround 6.1"
15: "stereo"
16: "stereo+THX"
17: "Dolby PLII Movie"
18: "Dolby PLII Movie+THX"
19: "Dolby PLII Music"
20: "Dolby PLIIx Music"
21: "Dolby PLIIx Movie"
22: "Dolby PLIIx Movie+THX"
23: "Dolby Digital EX"
24: "THX Ultra2 Music"
25: "THX Ultra2 Cinema"
26: "THX Surround EX"
28: "DTS Neo:6+THX"
29: "DTS Neo:6 Cinema"
30: "DTS Neo:6 Cinema+THX"
31: "DTS Neo:6 Music"
32: "DTS Matrix 6.1"
33: "DTS Matrix 6.1+THX"
34: "stereo 24/96"
notes: "Index 27 absent in source. Modes available depend on source stream."
Macros
# UNRESOLVED: no multi-step sequences explicitly documented in source.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no explicit safety warnings, interlock procedures,
# or power-on sequencing requirements. Trigger outputs (T1/T2) drive external
# equipment - verify downstream device state before toggling. Not stated in source.
Notes
- Source is the first-party Classe Audio RS-232 spec covering both SSP-300 and SSP-600. Address field differs:
S300for SSP-300,S600for SSP-600. Address + period delimiter optional when controller is uniquely connected; omitted commands are interpreted for local operation. - Line terminator: carriage return + line feed (
\r\n). Status strings also use CR/LF. - Acknowledge timing: reply issued within 100ms of command LF; if no reply after 100ms, reissue the command.
- xVOL acceleration:
MVOL+,MVOL-,ZVOL+,ZVOL-must arrive within 200ms of the previous reply to engage acceleration mode (per source note, marked(*)). - System setup allows other baud selections beyond 9600 (stated generically); specific alternates not enumerated. Default documented config = 9600 8N1.
- 16-byte FIFO on the SSP-300/600; no minimum inter-byte delay required by device, and the controller must likewise accept status bytes without inter-byte delays.
DBGBALCONis flagged SSP-600-only in the source; effect on SSP-300 UNRESOLVED.- Post-processing mode has no set command in the source (read via
STAT MODE); set path is menu-driven on the front panel — UNRESOLVED as a remote action. - Mode index
27is absent from the source table (jumps 26 → 28); reason not stated.
```Spec generated above. Full coverage: 9600 8N1, all ~50 source commands enumerated (no collapse), SY* events with mode enum 0-34 (idx 27 absent noted), ack !/? feedback, UNRESOLVED markers for firmware/voltage/auth/flow-control/mode-set/DBGBALCON-on-SSP300.
Provenance
source_domains:
- support.classeaudio.com
source_urls:
- https://support.classeaudio.com/files/documents/automation_and_control/rs232/CLASSE_SSP-300-600_RS232_Protocol.pdf
retrieved_at: 2026-06-15T13:14:49.053Z
last_checked_at: 2026-06-16T07:02:09.943Z
Verification Summary
verdict: verified
checked_at: 2026-06-16T07:02:09.943Z
matched_actions: 56
action_count: 56
confidence: medium
summary: "All 56 spec actions have literal command matches in the source document; all transport parameters verified; bidirectional coverage confirmed. (5 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "firmware version compatibility not stated. Voltage/power specs not in source. Auth not addressed in source (treated as none, see Transport)."
- "flow control not stated in source; FIFO (16-byte) supported, no inter-byte minimum"
- "no multi-step sequences explicitly documented in source."
- "source contains no explicit safety warnings, interlock procedures,"
- "firmware version compatibility not stated. Voltage/power/current specs not in source. Auth/login procedure not described (assumed none). Flow control not specified. DBGBALCON behavior on SSP-300 not stated. IR code table (numeric values for IRC nnn) not in this document — referenced only. Mode-set command absent."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0