Summary

The Apart Zone4 is a 4-zone commercial audio preamp/matrix with an RS-232 control port. This spec documents the ASCII command set ("IC245" protocol, dated 2009-09-15) for remote control of global power, paging page-routing LEDs, per-channel mute and mic-mute, line and microphone volume, source select (FUN_1..4), and treble/bass EQ, plus per-channel status queries.

Transport

protocols:
  - serial
serial:
  baud_rate: 9600
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none
auth:
  type: none  # inferred: no auth procedure in source

Traits

- powerable       # inferred from PW1/PW2 power commands
- routable        # inferred from PAGE1..4 and FUN_1..4 source-select commands
- queryable       # inferred from $aR N status query commands
- levelable       # inferred from vol, micvol, treble, bass commands

Actions

# All commands below are 5-byte ASCII strings, transmitted verbatim on the RS-232
# link. Hex equivalents are listed in the source document.

- id: power_on
  label: Power On (all)
  kind: action
  command: "$hPW1"
  params: []

- id: power_off
  label: Power Off (all)
  kind: action
  command: "$hPW2"
  params: []

- id: discon_led_on
  label: DISCON LED On
  kind: action
  command: "$hPW3"
  params: []

- id: discon_led_off
  label: DISCON LED Off
  kind: action
  command: "$hPW4"
  params: []

- id: page1_on
  label: PAGE1 On
  kind: action
  command: "$hPW5"
  params: []

- id: page1_off
  label: PAGE1 Off
  kind: action
  command: "$hPW6"
  params: []

- id: page2_on
  label: PAGE2 On
  kind: action
  command: "$hPW7"
  params: []

- id: page2_off
  label: PAGE2 Off
  kind: action
  command: "$hPW8"
  params: []

- id: page3_on
  label: PAGE3 On
  kind: action
  command: "$hPW9"
  params: []

- id: page3_off
  label: PAGE3 Off
  kind: action
  command: "$hPWa"
  params: []

- id: page4_on
  label: PAGE4 On
  kind: action
  command: "$hPWB"
  params: []

- id: page4_off
  label: PAGE4 Off
  kind: action
  command: "$hPWC"
  params: []

- id: ch1_mute_on
  label: CH1 Mute On
  kind: action
  command: "$aM01"
  params: []

- id: ch1_mute_off
  label: CH1 Mute Off
  kind: action
  command: "$aM02"
  params: []

- id: ch2_mute_on
  label: CH2 Mute On
  kind: action
  command: "$bM01"
  params: []

- id: ch2_mute_off
  label: CH2 Mute Off
  kind: action
  command: "$bM02"
  params: []

- id: ch3_mute_on
  label: CH3 Mute On
  kind: action
  command: "$cM01"
  params: []

- id: ch3_mute_off
  label: CH3 Mute Off
  kind: action
  command: "$cM02"
  params: []

- id: ch4_mute_on
  label: CH4 Mute On
  kind: action
  command: "$dM01"
  params: []

- id: ch4_mute_off
  label: CH4 Mute Off
  kind: action
  command: "$dM02"
  params: []

- id: ch1_mic_mute_on
  label: CH1 Mic Mute On
  kind: action
  command: "$aM03"
  params: []

- id: ch1_mic_mute_off
  label: CH1 Mic Mute Off
  kind: action
  command: "$aM04"
  params: []

- id: ch2_mic_mute_on
  label: CH2 Mic Mute On
  kind: action
  command: "$bM03"
  params: []

- id: ch2_mic_mute_off
  label: CH2 Mic Mute Off
  kind: action
  command: "$bM04"
  params: []

- id: ch3_mic_mute_on
  label: CH3 Mic Mute On
  kind: action
  command: "$cM03"
  params: []

- id: ch3_mic_mute_off
  label: CH3 Mic Mute Off
  kind: action
  command: "$cM04"
  params: []

- id: ch4_mic_mute_on
  label: CH4 Mic Mute On
  kind: action
  command: "$dM03"
  params: []

- id: ch4_mic_mute_off
  label: CH4 Mic Mute Off
  kind: action
  command: "$dM04"
  params: []

- id: ch1_vol_up
  label: CH1 Volume Up
  kind: action
  command: "$avup"
  params: []

- id: ch1_vol_down
  label: CH1 Volume Down
  kind: action
  command: "$avdn"
  params: []

- id: ch2_vol_up
  label: CH2 Volume Up
  kind: action
  command: "$bvup"
  params: []

- id: ch2_vol_down
  label: CH2 Volume Down
  kind: action
  command: "$bvdn"
  params: []

- id: ch3_vol_up
  label: CH3 Volume Up
  kind: action
  command: "$cvup"
  params: []

- id: ch3_vol_down
  label: CH3 Volume Down
  kind: action
  command: "$cvdn"
  params: []

- id: ch4_vol_up
  label: CH4 Volume Up
  kind: action
  command: "$dvup"
  params: []

- id: ch4_vol_down
  label: CH4 Volume Down
  kind: action
  command: "$dvdn"
  params: []

- id: ch1_micvol_up
  label: CH1 Mic Volume Up
  kind: action
  command: "$acup"
  params: []

- id: ch1_micvol_down
  label: CH1 Mic Volume Down
  kind: action
  command: "$acdn"
  params: []

- id: ch2_micvol_up
  label: CH2 Mic Volume Up
  kind: action
  command: "$bcup"
  params: []

- id: ch2_micvol_down
  label: CH2 Mic Volume Down
  kind: action
  command: "$bcdn"
  params: []

- id: ch3_micvol_up
  label: CH3 Mic Volume Up
  kind: action
  command: "$ccup"
  params: []

- id: ch3_micvol_down
  label: CH3 Mic Volume Down
  kind: action
  command: "$ccdn"
  params: []

- id: ch4_micvol_up
  label: CH4 Mic Volume Up
  kind: action
  command: "$dcup"
  params: []

- id: ch4_micvol_down
  label: CH4 Mic Volume Down
  kind: action
  command: "$dcdn"
  params: []

- id: ch1_volume_set
  label: CH1 Volume Set
  kind: action
  command: "$aV{level}"
  params:
    - name: level
      type: string
      description: Two-digit decimal volume value (e.g. "01".."79"); full range not stated in source

- id: ch2_volume_set
  label: CH2 Volume Set
  kind: action
  command: "$bV{level}"
  params:
    - name: level
      type: string
      description: Two-digit decimal volume value; source shows "??" placeholder, format same as CH1

- id: ch3_volume_set
  label: CH3 Volume Set
  kind: action
  command: "$cV{level}"
  params:
    - name: level
      type: string
      description: Two-digit decimal volume value; source shows "??" placeholder, format same as CH1

- id: ch4_volume_set
  label: CH4 Volume Set
  kind: action
  command: "$dV{level}"
  params:
    - name: level
      type: string
      description: Two-digit decimal volume value; source shows "??" placeholder, format same as CH1

- id: ch1_micvol_set
  label: CH1 Mic Volume Set
  kind: action
  command: "$aC{level}"
  params:
    - name: level
      type: string
      description: Two-digit decimal mic volume value (e.g. "01".."79")

- id: ch2_micvol_set
  label: CH2 Mic Volume Set
  kind: action
  command: "$bC{level}"
  params:
    - name: level
      type: string
      description: Two-digit decimal mic volume value; source shows "??" placeholder

- id: ch3_micvol_set
  label: CH3 Mic Volume Set
  kind: action
  command: "$cC{level}"
  params:
    - name: level
      type: string
      description: Two-digit decimal mic volume value; source shows "??" placeholder

- id: ch4_micvol_set
  label: CH4 Mic Volume Set
  kind: action
  command: "$dC{level}"
  params:
    - name: level
      type: string
      description: Two-digit decimal mic volume value; source shows "??" placeholder

- id: ch1_fun_1
  label: CH1 Source Select FUN 1
  kind: action
  command: "$aS01"
  params: []

- id: ch1_fun_2
  label: CH1 Source Select FUN 2
  kind: action
  command: "$aS02"
  params: []

- id: ch1_fun_3
  label: CH1 Source Select FUN 3
  kind: action
  command: "$aS03"
  params: []

- id: ch1_fun_4
  label: CH1 Source Select FUN 4
  kind: action
  command: "$aS04"
  params: []

- id: ch2_fun_1
  label: CH2 Source Select FUN 1
  kind: action
  command: "$bS01"
  params: []

- id: ch2_fun_2
  label: CH2 Source Select FUN 2
  kind: action
  command: "$bS02"
  params: []

- id: ch2_fun_3
  label: CH2 Source Select FUN 3
  kind: action
  command: "$bS03"
  params: []

- id: ch2_fun_4
  label: CH2 Source Select FUN 4
  kind: action
  command: "$bS04"
  params: []

- id: ch3_fun_1
  label: CH3 Source Select FUN 1
  kind: action
  command: "$cS01"
  params: []

- id: ch3_fun_2
  label: CH3 Source Select FUN 2
  kind: action
  command: "$cS02"
  params: []

- id: ch3_fun_3
  label: CH3 Source Select FUN 3
  kind: action
  command: "$cS03"
  params: []

- id: ch3_fun_4
  label: CH3 Source Select FUN 4
  kind: action
  command: "$cS04"
  params: []

- id: ch4_fun_1
  label: CH4 Source Select FUN 1
  kind: action
  command: "$dS01"
  params: []

- id: ch4_fun_2
  label: CH4 Source Select FUN 2
  kind: action
  command: "$dS02"
  params: []

- id: ch4_fun_3
  label: CH4 Source Select FUN 3
  kind: action
  command: "$dS03"
  params: []

- id: ch4_fun_4
  label: CH4 Source Select FUN 4
  kind: action
  command: "$dS04"
  params: []

- id: ch1_treble
  label: CH1 Treble
  kind: action
  command: "$aT{value}"
  params:
    - name: value
      type: string
      description: Integer -7..+7; encoded with ASCII space (0x20) for non-negative and hyphen (0x2D) for negative. Source shows "$aT 0".."$aT 7" and "$aT-1".."$aT-7".

- id: ch2_treble
  label: CH2 Treble
  kind: action
  command: "$bT{value}"
  params:
    - name: value
      type: string
      description: Integer -7..+7; same sign encoding as CH1. Source only documents the "$bT 0" example.

- id: ch3_treble
  label: CH3 Treble
  kind: action
  command: "$cT{value}"
  params:
    - name: value
      type: string
      description: Integer -7..+7; same sign encoding as CH1. Source only documents the "$cT 0" example.

- id: ch4_treble
  label: CH4 Treble
  kind: action
  command: "$dT{value}"
  params:
    - name: value
      type: string
      description: Integer -7..+7; same sign encoding as CH1. Source only documents the "$dT 0" example.

- id: ch1_bass
  label: CH1 Bass
  kind: action
  command: "$aU{value}"
  params:
    - name: value
      type: string
      description: Integer -7..+7; same sign encoding as treble (space for non-negative, hyphen for negative)

- id: ch2_bass
  label: CH2 Bass
  kind: action
  command: "$bU{value}"
  params:
    - name: value
      type: string
      description: Integer -7..+7; same sign encoding. Source only documents the "$bU 0" example.

- id: ch3_bass
  label: CH3 Bass
  kind: action
  command: "$cU{value}"
  params:
    - name: value
      type: string
      description: Integer -7..+7; same sign encoding. Source only documents the "$cU 0" example.

- id: ch4_bass
  label: CH4 Bass
  kind: action
  command: "$dU{value}"
  params:
    - name: value
      type: string
      description: Integer -7..+7; same sign encoding. Source only documents the "$dU 0" example.

- id: query_power_status
  label: Power Status Query
  kind: query
  command: "$aR 1"
  params: []

- id: query_ch1_mute_status
  label: CH1 Mute Status Query
  kind: query
  command: "$aR 2"
  params: []

- id: query_ch1_treble_status
  label: CH1 Treble Status Query
  kind: query
  command: "$aR 3"
  params: []

- id: query_ch1_bass_status
  label: CH1 Bass Status Query
  kind: query
  command: "$aR 4"
  params: []

- id: query_ch1_source_status
  label: CH1 Source Status Query
  kind: query
  command: "$aR 5"
  params: []

- id: query_ch1_vol_status
  label: CH1 Volume Status Query
  kind: query
  command: "$aR 6"
  params: []

- id: query_ch1_micvol_status
  label: CH1 Mic Volume Status Query
  kind: query
  command: "$aR 7"
  params: []

- id: query_ch1_micmute_status
  label: CH1 Mic Mute Status Query
  kind: query
  command: "$aR 8"
  params: []

- id: query_ch1_page_status
  label: CH1 Page Status Query
  kind: query
  command: "$aR 9"
  params: []

Feedbacks

# ACK responses returned by the device after a status query.
# Each feedback is keyed by the same channel letter the query used (a=CH1, b=CH2, c=CH3, d=CH4, h=ALL).

- id: power_state
  type: enum
  values: [on, off]
  description: |
    Returned for query_power_status ($aR 1). Device returns "$hPW1" for on, "$hPW2" for off.

- id: ch1_mute_state
  type: enum
  values: [on, off]
  description: |
    Returned for query_ch1_mute_status ($aR 2). Device returns "$aM01" for on, "$aM02" for off.

- id: ch1_treble_state
  type: string
  description: |
    Returned for query_ch1_treble_status ($aR 3). Device returns "$aT {n}" (n in -7..+7, space for non-negative).

- id: ch1_bass_state
  type: string
  description: |
    Returned for query_ch1_bass_status ($aR 4). Device returns "$aU {n}" (n in -7..+7, space for non-negative).

- id: ch1_source_state
  type: enum
  values: ["1", "2", "3", "4"]
  description: |
    Returned for query_ch1_source_status ($aR 5). Device returns "$aS01".."$aS04".

- id: ch1_volume_state
  type: string
  description: |
    Returned for query_ch1_vol_status ($aR 6). Device returns "$aV{nn}" (two-digit decimal, "01".."79" shown).

- id: ch1_micvol_state
  type: string
  description: |
    Returned for query_ch1_micvol_status ($aR 7). Device returns "$aC{nn}" (two-digit decimal).

- id: ch1_micmute_state
  type: enum
  values: [on, off]
  description: |
    Returned for query_ch1_micmute_status ($aR 8). Device returns "$aM03" for on, "$aM04" for off.

- id: page_state
  type: enum
  values: ["1", "2", "3", "4"]
  description: |
    Returned for query_ch1_page_status ($aR 9). Active page is echoed as the corresponding "$hPW5".."$hPWC" command.

Variables

# Discrete set/level commands are modeled as parameterized Actions above (vol_set, micvol_set, treble, bass).
# No additional ambient variables documented in the source.

Events

# UNRESOLVED: source does not document any unsolicited device-initiated notifications.

Macros

# UNRESOLVED: source does not document any multi-step sequences.

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: source does not contain safety warnings, interlock procedures, or power-on sequencing requirements.

Notes

All commands in this spec are fixed 5-byte ASCII strings. The protocol header in the source is "IC245 (ZONE4) ASCII (090915)" — IC245 is the internal protocol code and 090915 is the protocol revision date (2009-09-15). The dollar sign $ is a literal first byte (0x24) of every command. The prefix letter selects the channel: a=CH1, b=CH2, c=CH3, d=CH4, h=ALL/global. Treble and bass values use a sign-encoded single digit with ASCII space (0x20) for non-negative and ASCII hyphen (0x2D) for negative; e.g. "$aT 3" is treble +3 and "$aT-3" is treble -3. Volume and mic-volume use two decimal digits ("$aV79" is level 79, "$aV01" is level 1).

Provenance

source_domains:
  - apart-audio.info
  - downloads.biamp.com
  - usermanual.wiki
source_urls:
  - https://apart-audio.info/cat/matrichnye_systemy/zone4/ZONE4_Manual.pdf
  - https://downloads.biamp.com/assets/docs/default-source/manuals/biamp_manual_zone4.pdf
  - https://usermanual.wiki/Document/ZONE4RS232Manual.1088182550
  - https://downloads.biamp.com/assets/docs/default-source/apart-data-sheets/biamp_data_sheet_apart_zone4_aug20.pdf
retrieved_at: 2026-05-12T19:44:01.856Z
last_checked_at: 2026-06-02T21:39:44.146Z

Verification Summary

verdict: verified
checked_at: 2026-06-02T21:39:44.146Z
matched_actions: 85
action_count: 85
confidence: medium
summary: "All 85 spec actions matched exactly to source command tokens; transport parameters (9600/8/N/1) verified; complete coverage. (10 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "source documents only CH1 (prefix `a`) examples for status queries; CH2/3/4 query variants (prefixes b/c/d) follow the same $xR N pattern but are not explicitly listed."
- "source does not document the full numeric range for VOL (V), MICVOL (C), or TRE/BAS values; only the example bounds 01/79 and -7..+7 are stated."
- "source does not document any unsolicited device-initiated notifications."
- "source does not document any multi-step sequences."
- "source does not contain safety warnings, interlock procedures, or power-on sequencing requirements."
- "source lists $aR 1..$aR 9 (CH1) status queries but does not explicitly list $bR/$cR/$dR query variants for CH2/3/4; the symmetric a/b/c/d prefix pattern is implied."
- "full numeric range of VOL and MICVOL is not stated — only \"01\" and \"79\" are given as concrete examples."
- "full numeric range of TRE and BAS is documented only for CH1 (-7..+7); CH2/3/4 only have a single \"0\" example each."
- "source does not document DB-9 pinout, cable type (null modem vs straight-through), or any electrical interface details beyond 9600/8/N/1."
- "source does not document device firmware version, baud-rate auto-negotiation, or behavior on malformed input."

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