Summary
RS-232 ASCII control protocol for the Apart Concept 1 amplifier. Four verbs (SET, GET, INC, DEC) operate on 26 attributes covering source selection, music/mic level, EQ, paging, RS-232 port settings, standby, and version queries. Connection is 19200 baud 8N1 with <CR> line terminators; instructions are not case sensitive. When MULTIZONE=ON, several level attributes require a zone suffix (ZONE1/ZONE2).
Transport
protocols:
- serial
serial:
baud_rate: 19200
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
auth:
type: none # inferred: no auth procedure in source
Physical pinout (DB-style connector, per source):
- Pin 2: TX (data transmission output from device)
- Pin 3: RX (data reception input to device)
- Pin 5: GND
- Other pins unused
Traits
- powerable # STANDBY ON/OFF
- routable # SELECT (A/B/C/D)
- queryable # GET commands across all attributes
- levelable # MSCLVL, MICLVL, EQBASS, EQTREB, IPGAIN
Actions
# ---------------- MULTIZONE / ZONELINK ----------------
- id: set_multizone
label: Set Multi-Zone Mode
kind: action
command: "SET MULTIZONE {value}"
params:
- name: value
type: string
description: Binary (0/1 or OFF/ON)
- id: get_multizone
label: Get Multi-Zone Mode
kind: query
command: "GET MULTIZONE"
- id: set_zonelink
label: Set Zone Link
kind: action
command: "SET ZONELINK {value}"
params:
- name: value
type: string
description: Binary (0/1 or OFF/ON); only meaningful when MULTIZONE=ON
- id: get_zonelink
label: Get Zone Link
kind: query
command: "GET ZONELINK"
# ---------------- MSCLVL (Music Level) ----------------
- id: set_msclvl
label: Set Music Level
kind: action
command: "SET MSCLVL {zone} {value}"
params:
- name: zone
type: string
description: ZONE1 or ZONE2 (required when MULTIZONE=ON and ZONELINK=ON)
- name: value
type: integer
description: -80 (OFF) to 0 in dB
- id: get_msclvl
label: Get Music Level
kind: query
command: "GET MSCLVL {zone}"
params:
- name: zone
type: string
description: ZONE1 or ZONE2 (required when MULTIZONE=ON and ZONELINK=ON)
- id: inc_msclvl
label: Increase Music Level
kind: action
command: "INC MSCLVL {zone} {step}"
params:
- name: zone
type: string
description: ZONE1 or ZONE2 (required when MULTIZONE=ON and ZONELINK=ON)
- name: step
type: integer
description: Step value 1-10 (clamped to 10; default 1)
- id: dec_msclvl
label: Decrease Music Level
kind: action
command: "DEC MSCLVL {zone} {step}"
params:
- name: zone
type: string
description: ZONE1 or ZONE2 (required when MULTIZONE=ON and ZONELINK=ON)
- name: step
type: integer
description: Step value 1-10 (clamped to 10; default 1)
# ---------------- MICLVL (Microphone Level) ----------------
- id: set_miclvl
label: Set Microphone Level
kind: action
command: "SET MICLVL {zone} {value}"
params:
- name: zone
type: string
description: ZONE1 or ZONE2 (required when MULTIZONE=ON)
- name: value
type: integer
description: -80 (OFF) to 0 in dB
- id: get_miclvl
label: Get Microphone Level
kind: query
command: "GET MICLVL {zone}"
params:
- name: zone
type: string
description: ZONE1 or ZONE2 (required when MULTIZONE=ON)
- id: inc_miclvl
label: Increase Microphone Level
kind: action
command: "INC MICLVL {zone} {step}"
params:
- name: zone
type: string
description: ZONE1 or ZONE2 (required when MULTIZONE=ON)
- name: step
type: integer
description: Step value 1-10 (clamped to 10; default 1)
- id: dec_miclvl
label: Decrease Microphone Level
kind: action
command: "DEC MICLVL {zone} {step}"
params:
- name: zone
type: string
description: ZONE1 or ZONE2 (required when MULTIZONE=ON)
- name: step
type: integer
description: Step value 1-10 (clamped to 10; default 1)
# ---------------- MAXMSCLVL / MAXMICLVL ----------------
- id: set_maxmsclvl
label: Set Maximum Music Level
kind: action
command: "SET MAXMSCLVL {zone} {value}"
params:
- name: zone
type: string
description: ZONE1 or ZONE2 (when MULTIZONE=ON and ZONELINK=ON; each zone has independent cap, max diff 40 dB)
- name: value
type: integer
description: Upper cap for MSCLVL in dB
- id: get_maxmsclvl
label: Get Maximum Music Level
kind: query
command: "GET MAXMSCLVL {zone}"
params:
- name: zone
type: string
description: ZONE1 or ZONE2 (when MULTIZONE=ON and ZONELINK=ON)
- id: set_maxmiclvl
label: Set Maximum Microphone Level
kind: action
command: "SET MAXMICLVL {value}"
params:
- name: value
type: integer
description: Upper cap for MICLVL in dB
- id: get_maxmiclvl
label: Get Maximum Microphone Level
kind: query
command: "GET MAXMICLVL"
# ---------------- SELECT ----------------
- id: set_select
label: Set Source Selection
kind: action
command: "SET SELECT {source}"
params:
- name: source
type: string
description: A, B, C, or D (zone-independent; same in both zones)
- id: get_select
label: Get Source Selection
kind: query
command: "GET SELECT"
# ---------------- EQ ----------------
- id: set_eqbass
label: Set Bass EQ
kind: action
command: "SET EQBASS {value}"
params:
- name: value
type: integer
description: -14 to 14 in steps of 2; out-of-step values rounded to nearest
- id: get_eqbass
label: Get Bass EQ
kind: query
command: "GET EQBASS"
- id: set_eqtreb
label: Set Treble EQ
kind: action
command: "SET EQTREB {value}"
params:
- name: value
type: integer
description: -14 to 14 in steps of 2; out-of-step values rounded to nearest
- id: get_eqtreb
label: Get Treble EQ
kind: query
command: "GET EQTREB"
# ---------------- STANDBY ----------------
- id: set_standby
label: Set Standby
kind: action
command: "SET STANDBY {value}"
params:
- name: value
type: string
description: Binary (0/1 or OFF/ON)
- id: get_standby
label: Get Standby State
kind: query
command: "GET STANDBY"
# ---------------- AUTOLD ----------------
- id: set_autold
label: Set Auto Loudness
kind: action
command: "SET AUTOLD {value}"
params:
- name: value
type: string
description: Binary (0/1 or OFF/ON); only active in stereo mode (MULTIZONE=OFF)
- id: get_autold
label: Get Auto Loudness
kind: query
command: "GET AUTOLD"
# ---------------- PAGACT (Paging Active) ----------------
- id: set_pagact
label: Set Paging Active
kind: action
command: "SET PAGACT {value}"
params:
- name: value
type: string
description: Binary (0/1 or OFF/ON); enables mic activation via contact closure on pin A or B at rear connector
- id: get_pagact
label: Get Paging Active
kind: query
command: "GET PAGACT"
# ---------------- IPGAIN (Input Gain) ----------------
- id: set_ipgain
label: Set Input Gain
kind: action
command: "SET IPGAIN {source} {value}"
params:
- name: source
type: string
description: A, B, C, or D
- name: value
type: integer
description: -20 to 14 in steps of 2
- id: get_ipgain
label: Get Input Gain
kind: query
command: "GET IPGAIN {source}"
params:
- name: source
type: string
description: A, B, C, or D
# ---------------- RS-232 port settings: ECHO / LF / BS / HEADER ----------------
- id: set_echo
label: Set Echo
kind: action
command: "SET ECHO {value}"
params:
- name: value
type: string
description: Binary (0/1 or OFF/ON); echoes received characters
- id: get_echo
label: Get Echo
kind: query
command: "GET ECHO"
- id: set_lf
label: Set Line Feed
kind: action
command: "SET LF {value}"
params:
- name: value
type: string
description: Binary (0/1 or OFF/ON); append <LF> (0x0A) after every <CR>
- id: get_lf
label: Get Line Feed
kind: query
command: "GET LF"
- id: set_bs
label: Set Back Space
kind: action
command: "SET BS {value}"
params:
- name: value
type: string
description: Binary (0/1 or OFF/ON); reply <BS><SP><BS> on received <BS> (only when ECHO=ON)
- id: get_bs
label: Get Back Space
kind: query
command: "GET BS"
- id: set_header
label: Set Header
kind: action
command: "SET HEADER {value}"
params:
- name: value
type: string
description: Binary (0/1 or OFF/ON); prefix every string with '>' (0x3E); only works when ECHO=OFF; instructions must then start with '> '
- id: get_header
label: Get Header
kind: query
command: "GET HEADER"
# ---------------- VALFB (Value Feedback) ----------------
- id: set_valfb
label: Set Value Feedback
kind: action
command: "SET VALFB {value}"
params:
- name: value
type: string
description: Binary (0/1 or OFF/ON); when ON, all value changes are pushed autonomously; default ON; IPGAIN and SOURCENAME are not pushed
- id: get_valfb
label: Get Value Feedback
kind: query
command: "GET VALFB"
# ---------------- INFO (bulk status) ----------------
- id: get_info
label: Get Bulk Status Info
kind: query
command: "GET INFO"
notes: Only works when VALFB=ON. IPGAIN and SOURCENAME are not included in reply.
# ---------------- SOURCENAME ----------------
- id: set_sourcename
label: Set Source Name
kind: action
command: "SET SOURCENAME {source} {name}"
params:
- name: source
type: string
description: A, B, C, or D
- name: name
type: string
description: Display label; case sensitive; may contain spaces
- id: get_sourcename
label: Get Source Name
kind: query
command: "GET SOURCENAME {source}"
params:
- name: source
type: string
description: A, B, C, or D
# ---------------- Version / identity ----------------
- id: get_serial
label: Get Serial Number
kind: query
command: "GET SERIAL"
notes: Returns 4-digit hex value, or "Not Yet Implemented!<CR>" if unprogrammed.
- id: get_hwvrsn
label: Get Hardware Version
kind: query
command: "GET HWVRSN"
- id: get_swvrsn
label: Get Software Version
kind: query
command: "GET SWVRSN"
# ---------------- RESTORE factory ----------------
- id: set_restore
label: Restore Factory Settings
kind: action
command: "SET RESTORE ON"
notes: Device replies "Please Cycle Power!<CR>"; user must power off then on. During power-on, factory settings are restored.
Feedbacks
- id: standby_state
type: enum
values: [on, off]
description: Standby mode
- id: multizone_state
type: enum
values: [on, off]
description: Multi-zone mode
- id: music_level
type: string
description: -79 to 0 in dB, or OFF (when set to -80)
- id: mic_level
type: string
description: -79 to 0 in dB, or OFF (when set to -80)
- id: max_music_level
type: integer
description: Upper cap for MSCLVL (dB)
- id: max_mic_level
type: integer
description: Upper cap for MICLVL (dB)
- id: selected_source
type: enum
values: [A, B, C, D]
- id: eq_bass
type: integer
description: -14 to 14
- id: eq_treb
type: integer
description: -14 to 14
- id: auto_loudness
type: enum
values: [on, off]
- id: paging_active
type: enum
values: [on, off]
- id: input_gain
type: object
description: Per-source gain (-20 to 14, indexed by source A/B/C/D)
- id: echo
type: enum
values: [on, off]
- id: line_feed
type: enum
values: [on, off]
- id: back_space
type: enum
values: [on, off]
- id: header
type: enum
values: [on, off]
- id: valfb
type: enum
values: [on, off]
- id: source_name
type: object
description: Per-source display label (indexed by A/B/C/D)
- id: serial_number
type: string
description: 4-digit hex, or "Not Yet Implemented"
- id: hw_version
type: string
- id: sw_version
type: string
Variables
# Settable runtime state. Mirror of attributes that accept SET/INC/DEC.
# INC/DEC supported: MSCLVL, MICLVL.
- multizone: binary
- zonelink: binary
- music_level: {zone1, zone2} dB or OFF
- mic_level: {zone1, zone2} dB or OFF
- max_music_level: {zone1, zone2} dB
- max_mic_level: dB
- selected_source: enum [A, B, C, D]
- eq_bass: -14..14 step 2
- eq_treb: -14..14 step 2
- standby: binary
- auto_loudness: binary
- paging_active: binary
- input_gain: per-source A/B/C/D, -20..14 step 2
- echo: binary
- line_feed: binary
- back_space: binary
- header: binary
- valfb: binary
- source_name: per-source A/B/C/D, free string
Events
# Unsolicited strings the device transmits.
- id: paging_change
pattern: "PAGING (ZONEx) ON<CR>"
description: Contact closure started paging; ZONEx is 1 or 2.
- id: paging_end
pattern: "PAGING (ZONEx) OFF<CR>"
description: Contact opened; paging ended.
- id: power_down
pattern: "POWER DOWN!<CR>"
description: Sent during power-down; may be truncated if too many variables to store.
- id: not_ready
pattern: "STANDBY ON<CR>"
description: Instruction received while device in standby or still booting; wait until operational.
- id: command_executed
pattern: "Command Executed!<CR>"
description: Successful reply to most SET commands.
- id: restore_prompt
pattern: "Please Cycle Power!<CR>"
description: Reply to SET RESTORE ON; user must power-cycle.
- id: serial_unprogrammed
pattern: "Not Yet Implemented!<CR>"
description: Reply to GET SERIAL when serial number not programmed.
- id: error_command_unknown
pattern: "ERROR: Command Unknown!<CR>"
description: Wrong spelling of command, or command started with Back Space character.
- id: error_attribute_unknown
pattern: "ERROR: Unknown Attribute!<CR>"
description: Wrong spelling of attribute.
- id: error_no_header
pattern: "ERROR: No Header!<CR>"
description: HEADER=ON, ECHO=OFF, instruction sent without leading ">".
- id: error_unknown_instruction
pattern: "ERROR: Unknown Instruction!<CR>"
description: Verb not supported by the attribute (e.g. SET SERIAL 0001).
- id: error_value_invalid
pattern: "ERROR: Value Invalid!<CR>"
description: Value out of range or illegal (also: IPGAIN source not specified).
- id: error_zone_invalid
pattern: "ERROR: Zone Invalid!<CR>"
description: Zone missing or wrong; valid names ZONE1, ZONE2 (no space).
- id: error_amplifier_protect
pattern: "ERROR: AMPLIFIER PROTECT!<CR>"
description: Amplifier protection triggered; see user manual. May also appear on power-off for HWVRSN ACPT 1V04.
- id: error_over_temperature
pattern: "ERROR: OVER TEMPERATURE!<CR>"
description: Thermal protection triggered; see user manual.
Safety
confirmation_required_for:
- set_restore # requires manual power cycle; mutes output
interlocks: []
# UNRESOLVED: source mentions AMPLIFIER PROTECT and OVER TEMPERATURE error
# conditions but does not specify the trigger thresholds or recovery sequence.
# Treat as event indicators; do not auto-clear without referring to user manual.
Notes
- Line discipline. All instructions must end with
<CR>(0x0D). Source omits<LF>by default; if LF=ON,<LF>is appended after every<CR>. Instructions are not case sensitive. - Zone suffix. When MULTIZONE=ON and ZONELINK=ON, MSCLVL/MAXMSCLVL require a
ZONE1/ZONE2suffix (no space between ZONE and number). When MULTIZONE=ON, MICLVL requires the zone suffix. Other attributes (SELECT, EQ, IPGAIN, STANDBY, etc.) are global. - Mode changes. Prose: "Since these 2 commands [MULTIZONE, ZONELINK] change the behavior of the amplifier, it's recommended only to change them when the amplifier is not in action (no music present, volume at minimum)."
- SET IPGAIN / SET SOURCENAME write to internal memory. Source instructs: wait for reply OR add ≥100 ms delay after issuing.
- ECHO + HEADER interaction. HEADER only works when ECHO=OFF. If both ECHO=OFF, LF=OFF, HEADER=ON, every string starts with
>(0x3E) and ends with<CR>(0x0D). First replies after start-up may not respect HEADER because settings load late. - VALFB default. Source: "Default, VALFB is on." When ON, all value changes are pushed autonomously; IPGAIN and SOURCENAME are explicitly excluded from autonomous push.
- GET INFO. Returns multi-line status; IPGAIN and SOURCENAME not included (request individually with GET). Requires VALFB=ON. See source lines 137–151 for example reply.
- Step clamping. INC/DEC step values >10 are clamped to 10; missing step defaults to 1.
- EQ rounding. EQBASS / EQTREB values must be in steps of 2 between -14 and 14; non-step values are rounded to the nearest valid value.
- Hardware quirk. HWVRSN
ACPT 1V04units may emitERROR: AMPLIFIER PROTECT!<CR>at power-off due to fast sense circuit; not a fault condition. - Power down truncation.
POWER DOWN!<CR>may be truncated if too many variables need saving to memory.
Provenance
source_domains:
- downloads.biamp.com
- applicationmarket.crestron.com
source_urls:
- "https://downloads.biamp.com/assets/docs/default-source/manuals/biamp_manual_concept1_rs232_communication.pdf?sfvrsn=3e38e2e6_4"
- "https://downloads.biamp.com/assets/docs/default-source/manuals/biamp_manual_apart_concept1(t).pdf?sfvrsn=81804eb3_4"
- https://applicationmarket.crestron.com/content/Help/APart/apartconcept1v1.0help.pdf
retrieved_at: 2026-06-02T03:29:04.492Z
last_checked_at: 2026-06-02T08:24:56.824Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T08:24:56.824Z
matched_actions: 47
action_count: 47
confidence: medium
summary: "All 47 spec actions have literal attribute-and-verb support in the source table or prose; transport parameters match exactly; source catalogue is fully represented. (6 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "ZONELINK row in source attribute table has empty Commands column; SET confirmed by prose (\"these 2 commands change the behavior of the amplifier\"), GET inferred by symmetry."
- "MICLVL, MAXMSCLVL, MAXMICLVL, EQTREB, PAGACT, LF, BS, HEADER attribute-table Commands columns are blank; verbs below inferred from prose examples and binary-setting symmetry."
- "source mentions AMPLIFIER PROTECT and OVER TEMPERATURE error"
- "ZONELINK attribute-table Commands column is blank; SET confirmed by prose, GET inferred."
- "MICLVL, MAXMSCLVL, MAXMICLVL, EQTREB, PAGACT, LF, BS, HEADER attribute-table Commands columns are blank; verbs above inferred from prose."
- "firmware version compatibility ranges not stated in source."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0