Summary
Multi-zone audio matrix switchers supporting analog (RCA) and digital (coax/optical) audio routing. Controlled via RS-232 serial or raw TCP/IP socket sharing the same ASCII command protocol (^CMD params$). Supports up to 128 zones depending on model, with per-zone volume, bass/treble, 5-band EQ, balance, lip-sync delay, and paging/doorbell functionality.
Transport
protocols:
- tcp
- serial
addressing:
port: 50005
serial:
baud_rate: 19200
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 # P command: power on/off/lock
- routable # SZ, DSZ: route sources to zones
- queryable # ? parameter on most commands
- levelable # VZ, VPZ, MV, BAZ, TRZ, EQ, GAZ, GAI, BLZ
Actions
actions:
- id: power_on
label: Power On
kind: action
command: "^P 1$"
description: Turn on power
params: []
- id: power_off
label: Power Off
kind: action
command: "^P 0$"
description: Turn off power if not locked
params: []
- id: power_off_forced
label: Power Off Forced
kind: action
command: "^P 2$"
description: Turn off power regardless of lock state
params: []
- id: power_on_locked
label: Power On Locked
kind: action
command: "^P 3$"
description: Turn on power and lock on; only P 2 can turn off
params: []
- id: power_toggle
label: Power Toggle
kind: action
command: "^P +$"
description: Toggle power state
params: []
- id: set_zone_source
label: Set Zone Source (Analog)
kind: action
command: "^SZ @{zone},{source}$"
description: Map a source to analog zone(s)
params:
- name: zone
type: string
description: "Zone number(s), e.g. 1 or 1:8 for range or 1@3@5 for multiple"
- name: source
type: integer
description: "Source number (0=disconnect, 1-32=analog RCA, 33-64=coax PCM, 65-80=optical PCM in extended I/O mode)"
- id: set_zone_source_seq_fwd
label: Sequence Zone Source Forward (Analog)
kind: action
command: "^SZ @{zone},+$"
description: Sequence zones forward through sources
params:
- name: zone
type: string
description: Zone number(s)
- id: set_zone_source_seq_rev
label: Sequence Zone Source Reverse (Analog)
kind: action
command: "^SZ @{zone},-$"
description: Sequence zones in reverse through sources
params:
- name: zone
type: string
description: Zone number(s)
- id: set_digital_zone_source
label: Set Zone Source (Digital)
kind: action
command: "^DSZ @{zone},{source}$"
description: Map a source to digital zone(s)
params:
- name: zone
type: string
description: Zone number(s)
- name: source
type: integer
description: "Digital source number"
- id: mute_zone
label: Mute Zone (Analog)
kind: action
command: "^MZ @{zone},{mute}$"
description: Hard mute/disconnect analog zone; remembers source
params:
- name: zone
type: string
description: Zone number(s)
- name: mute
type: integer
description: "0=Unmuted, 1=Muted"
- id: mute_zone_toggle
label: Mute Zone Toggle (Analog)
kind: action
command: "^MZ @{zone},+$"
description: Toggle mute on analog zone(s)
params:
- name: zone
type: string
description: Zone number(s)
- id: power_zone
label: Power Zone On/Off
kind: action
command: "^PZ @{zone},{pwr}$"
description: Power on/off an analog zone; may affect 12V triggers
params:
- name: zone
type: string
description: Zone number(s)
- name: pwr
type: integer
description: "0=Off, 1=On"
- id: mute_digital_zone
label: Mute Zone (Digital)
kind: action
command: "^DMZ @{zone},{mute}$"
description: Mute/disconnect digital zone
params:
- name: zone
type: string
description: Zone number(s)
- name: mute
type: integer
description: "0=Unmuted, 1=Muted"
- id: set_zone_switching_delay
label: Set Zone Switching Delay (Analog)
kind: action
command: "^DZ @{zone},{delay}$"
description: Set mute-before-switch delay in milliseconds
params:
- name: zone
type: string
description: Zone number(s)
- name: delay
type: integer
description: Delay in milliseconds
- id: set_digital_zone_switching_delay
label: Set Zone Switching Delay (Digital)
kind: action
command: "^DDZ @{zone},{delay}$"
description: Set mute-before-switch delay for digital zones in ms
params:
- name: zone
type: string
description: Zone number(s)
- name: delay
type: integer
description: Delay in milliseconds
- id: set_volume_zone
label: Set Zone Volume (dB)
kind: action
command: "^VZ @{zone},{vol}$"
description: Set zone volume in 0.5dB steps offset 200 (200=0dB, 0=mute, 248=+24dB)
params:
- name: zone
type: string
description: Zone number(s)
- name: vol
type: integer
description: "Volume 0-248, 0=mute, 200=0dB"
- id: set_volume_zone_pct
label: Set Zone Volume (Percent)
kind: action
command: "^VPZ @{zone},{vol}$"
description: Set zone volume as percentage 0-100
params:
- name: zone
type: string
description: Zone number(s)
- name: vol
type: integer
description: "0=mute, 100=max"
- id: volume_zone_up
label: Volume Up (dB steps)
kind: action
command: "^VZ @{zone},+{step}$"
description: Increase zone volume by step count (0.5dB per step)
params:
- name: zone
type: string
description: Zone number(s)
- name: step
type: integer
description: Number of 0.5dB steps
- id: volume_zone_down
label: Volume Down (dB steps)
kind: action
command: "^VZ @{zone},-{step}$"
description: Decrease zone volume by step count (0.5dB per step)
params:
- name: zone
type: string
description: Zone number(s)
- name: step
type: integer
description: Number of 0.5dB steps
- id: volume_zone_pct_up
label: Volume Up (Percent)
kind: action
command: "^VPZ @{zone},+{step}$"
description: Increase zone volume by step count (0.5dB per step)
params:
- name: zone
type: string
description: Zone number(s)
- name: step
type: integer
description: Number of 0.5dB steps
- id: volume_zone_pct_down
label: Volume Down (Percent)
kind: action
command: "^VPZ @{zone},-{step}$"
description: Decrease zone volume by step count (0.5dB per step)
params:
- name: zone
type: string
description: Zone number(s)
- name: step
type: integer
description: Number of 0.5dB steps
- id: set_master_volume
label: Set Master Volume
kind: action
command: "^MV {vol}$"
description: Set overall volume; 200=0dB, 0=mute, 248=+24dB
params:
- name: vol
type: integer
description: "0-248, 0=mute, 200=0dB"
- id: set_zone_min_volume
label: Set Zone Minimum Volume
kind: action
command: "^VMIZ @{zone},{minVol}$"
description: Set minimum volume limit per zone in 0.5dB steps offset 200
params:
- name: zone
type: string
description: Zone number(s)
- name: minVol
type: integer
description: "0 to maxVol-99"
- id: set_zone_max_volume
label: Set Zone Maximum Volume
kind: action
command: "^VMAZ @{zone},{maxVol}$"
description: Set maximum volume limit per zone in 0.5dB steps offset 200
params:
- name: zone
type: string
description: Zone number(s)
- name: maxVol
type: integer
description: "minVol+99 to 248"
- id: mute_volume_zone
label: Volume Mute Zone
kind: action
command: "^VMZ @{zone},{mute}$"
description: "Audio mute via volume processor; 0=Unmute, 1=Mute, 2=NoMute, +=Toggle"
params:
- name: zone
type: string
description: Zone number(s)
- name: mute
type: string
description: "0, 1, 2, or +"
- id: set_zone_balance
label: Set Zone Balance
kind: action
command: "^BLZ @{zone},{bal}$"
description: "Set balance; 0=full left, 200=center, 400=full right"
params:
- name: zone
type: string
description: Zone number(s)
- name: bal
type: integer
description: "0-400, 200=center"
- id: set_zone_gain
label: Set Zone Gain
kind: action
command: "^GAZ @{zone},{gain}$"
description: "Set zone output gain; 152=-24dB, 200=0dB, 248=+24dB"
params:
- name: zone
type: string
description: Zone number(s)
- name: gain
type: integer
description: "152-248, 200=0dB"
- id: set_source_gain
label: Set Source Gain (Input Trim)
kind: action
command: "^GAI @{source},{gain}$"
description: "Set source input gain; 152=-24dB, 200=0dB, 248=+24dB"
params:
- name: source
type: string
description: Source number(s)
- name: gain
type: integer
description: "152-248, 200=0dB"
- id: set_zone_bass
label: Set Zone Bass
kind: action
command: "^BAZ @{zone},{level}$"
description: "Set bass; 88=-20dB, 128=0dB, 168=+20dB"
params:
- name: zone
type: string
description: Zone number(s)
- name: level
type: integer
description: "88-168, 128=flat"
- id: set_zone_treble
label: Set Zone Treble
kind: action
command: "^TRZ @{zone},{level}$"
description: "Set treble; 88=-20dB, 128=0dB, 168=+20dB"
params:
- name: zone
type: string
description: Zone number(s)
- name: level
type: integer
description: "88-168, 128=flat"
- id: set_zone_eq_band
label: Set Zone EQ Band
kind: action
command: "^{band} @{zone},{level}$"
description: "Set 5-band EQ level per zone; bands EQ1Z(100Hz) EQ2Z(330Hz) EQ3Z(1kHz) EQ4Z(3.3kHz) EQ5Z(10kHz)"
params:
- name: band
type: string
description: "EQ1Z through EQ5Z"
- name: zone
type: string
description: Zone number(s)
- name: level
type: integer
description: "88-168, 128=flat"
- id: set_zone_filter_type
label: Set Zone Filter Type
kind: action
command: "^FTYPZ @{zone},{type}$"
description: "Enable low/high pass filter; 0=off, 2=LPF 12dB, 3=HPF 12dB, 4=LPF 24dB, 5=HPF 24dB"
params:
- name: zone
type: string
description: Zone number(s)
- name: type
type: integer
description: "0-5"
- id: set_zone_crossover_freq
label: Set Zone Crossover Frequency
kind: action
command: "^FFRQZ @{zone},{freq}$"
description: "Set crossover freq; 0=off, 1=50Hz through 32=300Hz"
params:
- name: zone
type: string
description: Zone number(s)
- name: freq
type: integer
description: "0-32"
- id: set_zone_stereo_mix
label: Set Zone Stereo Mix
kind: action
command: "^MXZ @{zone},{mix}$"
description: "Set stereo down-mix; 0=none, 1=swap, 2=sum, 3=left, 4=right, 5=L-R, 6=R-L"
params:
- name: zone
type: string
description: Zone number(s)
- name: mix
type: integer
description: "0-6"
- id: set_source_stereo_mix
label: Set Source Stereo Mix
kind: action
command: "^MXI @{source},{mix}$"
description: "Set input stereo down-mix; values same as MXZ"
params:
- name: source
type: string
description: Source number(s)
- name: mix
type: integer
description: "0-6"
- id: set_digital_routing
label: Set Digital Audio Routing
kind: action
command: "^DRZ @{zone},{routing}$"
description: "0=independent digital zone (via DSZ), 1=mirror associated analog zone"
params:
- name: zone
type: string
description: Coax zone number(s)
- name: routing
type: integer
description: "0 or 1"
- id: set_zone_lipsync
label: Set Zone Lip Sync Delay
kind: action
command: "^LSZ @{zone},{delay}$"
description: "Set lip sync delay in 48KHz samples (48 counts/ms, max 8191=170.65ms)"
params:
- name: zone
type: string
description: Zone number(s)
- name: delay
type: integer
description: "0-8191"
- id: set_source_lipsync
label: Set Source Lip Sync Delay
kind: action
command: "^LSI @{source},{delay}$"
description: "Set source lip sync delay in 48KHz samples"
params:
- name: source
type: string
description: Source number(s)
- name: delay
type: integer
description: "0-8191"
- id: lock_zone
label: Lock Zone to Another Zone
kind: action
command: "^LZ @{zone},{zoneToFollow}$"
description: Lock zone(s) to follow another zone's source/volume/tone
params:
- name: zone
type: string
description: Zone(s) to lock
- name: zoneToFollow
type: integer
description: Zone to follow
- id: set_control_settings
label: Set Control Settings
kind: action
command: "^XS {settings1},{settings2}$"
description: "Bitmapped control flags: ACK, ECO, CRE, ASY, XIO, MJP, UVL"
params:
- name: settings1
type: integer
description: Bitmapped settings word 1
- name: settings2
type: integer
description: Bitmapped settings word 2
- id: save_settings
label: Save Settings to EEPROM
kind: action
command: "^SS {settings}$"
description: "Save selected settings to EEPROM as power-on defaults (bitmapped)"
params:
- name: settings
type: integer
description: Bitmapped selection of which settings to save
- id: factory_reset
label: Factory Reset
kind: action
command: "^FS {settings}$"
description: "Reset selected parameters to factory defaults (bitmapped)"
params:
- name: settings
type: integer
description: Bitmapped selection of which settings to reset
- id: set_lighting
label: Set Front Panel Lighting
kind: action
command: "^LI {mode},{dim},{bright},{off}$"
description: "Set LED mode and intensities; mode 0=off, 1=dim, 2=bright, 3=auto-dim"
params:
- name: mode
type: integer
description: "0-3"
- name: dim
type: integer
description: "0-100 percent"
- name: bright
type: integer
description: "0-100 percent"
- name: off
type: integer
description: "0-100 percent"
- id: set_ip_mode
label: Set IP Mode
kind: action
command: "^IPSET {mode}$"
description: "0=Static, 1=DHCP"
params:
- name: mode
type: integer
description: "0 or 1"
- id: set_static_ip
label: Set Static IP Address
kind: action
command: "^IPA {xxx},{xxx},{xxx},{xxx}$"
description: Set the static IP address (applied on next IPSET 0)
params:
- name: xxx
type: integer
description: Octet value
- id: set_static_mask
label: Set Static IP Mask
kind: action
command: "^IPM {xxx},{xxx},{xxx},{xxx}$"
description: Set the static subnet mask (applied on next IPSET 0)
params:
- name: xxx
type: integer
description: Octet value
- id: set_static_gateway
label: Set Static IP Gateway
kind: action
command: "^IPG {xxx},{xxx},{xxx},{xxx}$"
description: Set the static gateway address (applied on next IPSET 0)
params:
- name: xxx
type: integer
description: Octet value
- id: set_12v_trigger
label: Set 12V Trigger
kind: action
command: "^STRG @{trg},{setting}$"
description: "0=Off, 1=On, 2=Follow zone power"
params:
- name: trg
type: string
description: Trigger number(s)
- name: setting
type: integer
description: "0-2"
- id: set_trigger_zone
label: Associate Zone with 12V Trigger
kind: action
command: "^TRGZ @{zone},{trg}$"
description: Associate zone(s) with a 12V trigger for power-follow behavior
params:
- name: zone
type: string
description: Zone number(s)
- name: trg
type: integer
description: 12V trigger number
- id: page_set_source_analog
label: Set Page Source (Analog)
kind: action
command: "^pASZ {preset},@{zone},{source}$"
description: Preset the analog source a zone switches to during a page
params:
- name: preset
type: integer
description: "Preset number >0"
- name: zone
type: string
description: Zone number
- name: source
type: integer
description: Source number
- id: page_set_source_digital
label: Set Page Source (Digital)
kind: action
command: "^pDSZ {preset},@{zone},{source}$"
description: Preset the digital source a zone switches to during a page
params:
- name: preset
type: integer
description: "Preset number >0"
- name: zone
type: string
description: Zone number
- name: source
type: integer
description: Source number
- id: page_set_volume
label: Set Page Volume (dB)
kind: action
command: "^pVZ {preset},@{zone},{vol_db}$"
description: Set paging volume for a zone in dB (absolute or relative with +/- prefix)
params:
- name: preset
type: integer
description: "Preset number >0"
- name: zone
type: string
description: Zone number
- name: vol_db
type: string
description: "Absolute or +/- relative volume"
- id: page_set_volume_pct
label: Set Page Volume (Percent)
kind: action
command: "^pVPZ {preset},@{zone},{vol_pct}$"
description: Set paging volume for a zone as percentage
params:
- name: preset
type: integer
description: "Preset number >0"
- name: zone
type: string
description: Zone number
- name: vol_pct
type: string
description: "0-100, or +/- relative"
- id: page_set_dnd
label: Set Do Not Disturb (Analog)
kind: action
command: "^pADNDZ {preset},{flag}$"
description: "0=Allow paging, 1=Do Not Disturb, 2=Allow but do not change source"
params:
- name: preset
type: integer
description: "Preset number >0"
- name: flag
type: integer
description: "0-2"
- id: page_set_switch
label: Set Page Back Panel Switch
kind: action
command: "^pDSW {switch},{action},{preset},{time}$"
description: Configure back panel dry contact/voltage trigger for paging
params:
- name: switch
type: integer
description: "1 or 2"
- name: action
type: integer
description: "0=disable, 1=active on, 2=active off, 3=timed on, 4=timed off"
- name: preset
type: integer
description: Preset number
- name: time
type: integer
description: Duration in ms for timed modes
- id: page_set_time
label: Set Page Timing
kind: action
command: "^pTIME {preset},{init_dly},{min_time}$"
description: Set initial delay and minimum page duration in milliseconds
params:
- name: preset
type: integer
description: Preset number
- name: init_dly
type: integer
description: Initial delay in ms
- name: min_time
type: integer
description: Minimum page time in ms
- id: page_start
label: Start or Stop Page
kind: action
command: "^pSET {preset},{time}$"
description: "0=Stop page, 1-2=Start page with given preset; time in ms or 0 for manual stop"
params:
- name: preset
type: integer
description: "0=stop, 1 or 2=start"
- name: time
type: integer
description: "Duration in ms, 0=wait for pSET 0"
- id: enable_extended_io
label: Enable Extended I/O Mode
kind: action
command: "^XS +32768$"
description: Set XIO bit for universal source numbering across models
params: []
Feedbacks
feedbacks:
- id: power_state
type: enum
command: "^P ?$"
response: "^=P {n}$"
values: ["0", "1", "3"]
description: "0=Off, 1=On, 3=Locked On"
- id: zone_source
type: string
command: "^SZ @{zone}?$"
response: "^=SZ @{zone},{source}$"
description: Current source mapped to each analog zone (3-digit fixed width)
- id: digital_zone_source
type: string
command: "^DSZ @{zone}?$"
response: "^=DSZ @{zone},{source}$"
description: Current source mapped to each digital zone (3-digit fixed width)
- id: zone_mute_state
type: enum
command: "^MZ @{zone}?$"
response: "^=MZ @{zone},{mute}$"
values: ["0", "1"]
description: "0=Unmuted, 1=Muted"
- id: zone_power_state
type: enum
command: "^PZ @{zone}?$"
response: "^=PZ @{zone},{pwr}$"
values: ["0", "1"]
description: "0=Off, 1=On"
- id: digital_zone_mute_state
type: enum
command: "^DMZ @{zone}?$"
response: "^=DMZ @{zone},{mute}$"
values: ["0", "1"]
description: "0=Unmuted, 1=Muted"
- id: zone_volume
type: integer
command: "^VZ @{zone}?$"
response: "^=VZ @{zone},{vol}$"
description: "Volume 0-248"
- id: zone_volume_pct
type: integer
command: "^VPZ @{zone}?$"
response: "^=VPZ @{zone},{vol}$"
description: "Volume 0-100"
- id: zone_min_volume
type: integer
command: "^VMIZ @{zone}?$"
response: "^=VMIZ @{zone},{minVol}$"
description: Minimum volume setting
- id: zone_max_volume
type: integer
command: "^VMAZ @{zone}?$"
response: "^=VMAZ @{zone},{maxVol}$"
description: Maximum volume setting
- id: zone_volume_mute
type: enum
command: "^VMZ @{zone}?$"
response: "^=VMZ @{zone},{mute}$"
values: ["0", "1"]
description: "0=Unmuted, 1=Muted"
- id: zone_balance
type: integer
command: "^BLZ @{zone}?$"
response: "^=BLZ @{zone},{bal}$"
description: "0-400, 200=center"
- id: zone_gain
type: integer
command: "^GAZ @{zone}?$"
response: "^=GAZ @{zone},{gain}$"
description: "152-248"
- id: source_gain
type: integer
command: "^GAI @{source}?$"
response: "^=GAI @{source},{gain}$"
description: "152-248"
- id: zone_bass
type: integer
command: "^BAZ @{zone}?$"
response: "^=BAZ @{zone},{level}$"
description: "88-168, 128=flat"
- id: zone_treble
type: integer
command: "^TRZ @{zone}?$"
response: "^=TRZ @{zone},{level}$"
description: "88-168, 128=flat"
- id: zone_eq_band
type: integer
command: "^{band} @{zone}?$"
response: "^={band} @{zone},{level}$"
description: "EQ1Z-EQ5Z level, 88-168"
- id: zone_filter_type
type: integer
command: "^FTYPZ @{zone}?$"
response: "^=FTYPZ @{zone},{type}$"
description: "0-5"
- id: zone_crossover_freq
type: integer
command: "^FFRQZ @{zone}?$"
response: "^=FFRQZ @{zone},{freq}$"
description: "0-32"
- id: zone_stereo_mix
type: integer
command: "^MXZ @{zone}?$"
response: "^=MXZ @{zone},{mix}$"
description: "0-6"
- id: zone_digital_routing
type: integer
command: "^DRZ @{zone}?$"
response: "^=DRZ @{zone},{routing}$"
description: "0 or 1"
- id: zone_lipsync
type: integer
command: "^LSZ @{zone}?$"
response: "^=LSZ @{zone},{delay}$"
description: "0-8191"
- id: source_lipsync
type: integer
command: "^LSI @{source}?$"
response: "^=LSI @{source},{delay}$"
description: "0-8191"
- id: zone_audio_type
type: enum
command: "^ATZ @{zone}?$"
response: "^=ATZ @{zone},{audio_type}$"
values: ["0", "1", "2", "3"]
description: "0=Analog/transitioning, 1=No SPDIF, 2=PCM stereo, 3=Encoded (Dolby/DTS)"
- id: firmware_version
type: string
command: "^V ?$"
response: '^=V "{model}",{fw},{serial}$'
description: Returns model name, firmware version, and serial number
- id: control_settings
type: string
command: "^XS ?$"
response: "^=XS {s1},{s2}$"
description: Current XS control settings bitmaps
- id: zone_switching_delay
type: integer
command: "^DZ @{zone}?$"
response: "^=DZ @{zone},{delay}$"
description: Analog zone switching delay in ms
- id: lighting
type: string
command: "^LI ?$"
response: "^=LI {mode},{dim},{bright},{off}$"
description: Front panel lighting mode and intensities
- id: ip_mode
type: enum
command: "^IPSET ?$"
response: "^=IPSET {mode}$"
values: ["0", "1"]
description: "0=Static, 1=DHCP"
- id: static_ip_address
type: string
command: "^IPA ?$"
response: "^=IPA {xxx},{xxx},{xxx},{xxx}$"
description: Configured static IP (not necessarily active)
- id: current_ip_address
type: string
command: "^IPAX ?$"
response: "^=IPAX {xxx},{xxx},{xxx},{xxx}$"
description: Currently active IP address
- id: current_ip_mask
type: string
command: "^IPMX ?$"
response: "^=IPMX {xxx},{xxx},{xxx},{xxx}$"
description: Currently active IP mask
- id: current_ip_gateway
type: string
command: "^IPGX ?$"
response: "^=IPGX {xxx},{xxx},{xxx},{xxx}$"
description: Currently active gateway address
- id: trigger_state
type: integer
command: "^STRG @{trg}?$"
response: "^=STRG @{trg},{setting}$"
description: "0=Off, 1=On, 2=Zone-controlled"
- id: error_response
type: enum
values: ["1", "2", "3", "5", "6", "7", "8"]
description: "Error codes: 1=Unrecognized cmd, 2=Param out of range, 3=Syntax error, 5=Param count, 6=Busy, 7=Buffer overflow, 8=Power required"
Variables
# UNRESOLVED: no settable parameters beyond those captured as actions/feedbacks
Events
events:
- id: async_parameter_change
description: "When XS ASY bit=1, response strings are sent automatically on any parameter change"
response_format: "^={CMD} {params}$"
- id: audio_type_change
description: "ATZ response sent automatically when a zone's audio source type changes"
response_format: "^=ATZ @{zone},{audio_type}$"
Macros
# UNRESOLVED: no multi-step sequences explicitly defined in source beyond paging presets
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings or interlock procedures found in source
Notes
- Command format is
^CMD params$— all commands start with^and end with$. Characters outside these delimiters are ignored. - Spaces between command and params are optional. CR/LF are ignored inside the frame.
- Response strings use fixed-width parameters with leading zeros for easier parsing (e.g.
@001,003). - Acknowledgement
^+$sent for every error-free command (can be disabled via XS ACK bit). - Error response format:
^!<error_number>$. - Query parameter
?returns current value(s) for most commands. - Zone ranges use
:separator (e.g.@1:8), multiple zones can be comma-separated or concatenated (e.g.@1@3@5). - Zones prefixed with
@, sources are plain numbers. - Extended I/O mode (
^XS +32768$) provides universal source numbering across all ProAudio models. - Paging has a hard 2-minute timeout limit.
- TCP connection auto-closes after 10 minutes of failed communication retries.
- Volume uses 0.5dB steps with offset 200 (200=0dB, 0=mute/-115dB, 248=+24dB).
- Bass/Treble/EQ use 0.5dB steps with offset 128 (128=0dB, range 88-168 = +/-20dB).
- Balance uses offset 200 (200=center, 0=full left, 400=full right).
Provenance
source_domains:
- pulse-eight.com
source_urls:
- https://www.pulse-eight.com/Downloads/SerialProtocol_v1-1.pdf
retrieved_at: 2026-05-23T20:48:53.689Z
last_checked_at: 2026-05-31T07:05:34.920Z
Verification Summary
verdict: verified
checked_at: 2026-05-31T07:05:34.920Z
matched_actions: 58
action_count: 58
confidence: medium
summary: "All 58 spec actions have literal wire-token matches in the source; transport (port 50005, 19200 8N1) confirmed; 4 paging-mute commands in source are not represented in spec but do not exceed the 5-command short threshold. (11 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- pAMZ
- pDMZ
- pVMZ
- pDDNDZ
- "exact Palladia model names not stated in source; source references ProAudio line"
- "firmware version compatibility range not stated"
- "flow_control setting not explicitly stated (omitted from serial port settings list)"
- "flow control not stated in source"
- "no settable parameters beyond those captured as actions/feedbacks"
- "no multi-step sequences explicitly defined in source beyond paging presets"
- "no safety warnings or interlock procedures found in source"
- "flow_control not stated for RS-232"
- "Palladia model names/numbers not documented in this source"
- "maximum number of concurrent TCP connections not stated"
- "VMLZ and VMT commands referenced (mute level, fade time) but not documented in this source excerpt"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0