Skip to main content

AVPro Edge AC-DANTE-AMP-2CH

The avpro_dante_amp_2ch driver controls the AVPro Edge AC-DANTE-AMP-2CH, a 2-channel Dante amplifier. It speaks the AVPro ASCII IP control protocol over TCP (default port 23), \r\n terminated in both directions. The amp exposes a single amplified stereo speaker output and an independent line-level lineout. Verified against firmware MAIN MCU V1.13.

Every SET command echoes the resulting state in the same terse form as the matching GET (e.g. SET VOL 80VOL 80), so writes self-confirm; the driver also polls volume/mute periodically to catch front-panel and Dante-side changes.

Prerequisites

  • Amplifier on the same LAN as GEM, with a static IP or DHCP reservation.
note

The amp accepts only one TCP control session at a time. A second client (another controller, a stray telnet session) is reset on connect. Close other sessions if the driver cannot connect.

Setup

  1. System → Devices → Add Device: choose driver AVPro Edge AC-DANTE-AMP-2CH (avpro_dante_amp_2ch). Set ip to the amp's LAN address. Default port is 23.
  2. Save and enable. On connect the driver queries GET MODEL, GET VER INF, and a full STA dump, then on every status_interval (default 30000 ms) re-reads speaker volume, mute, and balance plus lineout volume and mute — so front-panel and Dante-side changes show up in GEM within one poll cycle.
  3. The amp does no source switching of its own — pair it with an AV zone to give it on-screen volume control. In the AV Zone editor, set Volume Device (the Device that controls volume for this zone picker) to this amp. The zone's volume and mute controls then dispatch to the amp, and the amp's speaker volume / mute_state mirror back onto the zone.

Attributes

Device — required

AttributeTypeDescription
ipstringLAN IP of the amplifier.

Device — optional

AttributeTypeDefaultDescription
portint23TCP control port.
status_intervalint (ms)30000Cadence for re-reading volume, mute, and balance.
command_throttleint (ms)200Minimum spacing between commands sent to the amp. Raise it if rapidly issued commands are dropped.

Reflected device attributes

The driver writes these from GET/SET echoes and the STA dump:

AttributeTypeNotes
volumeintSpeaker volume, 0-100. Mirrored to bound AV zones.
mute_statestringSpeaker mute, on / off. Mirrored to bound AV zones.
power_statestringDerived from speaker mute (unmuted = on, muted = off) — the amp has no real power state. Mirrored to bound AV zones, where it feeds the AV power reconciler.
balanceintSpeaker balance, 0-40 (0 = left, 20 = center, 40 = right).
vol_lockstringSpeaker volume lock, locked / unlocked.
vol_limitintSpeaker volume ceiling, 10-100.
lineout_volumeintLineout volume, 0-100.
lineout_mute_statestringLineout mute, on / off.
lineout_balanceintLineout balance, 0-40.
lineout_vol_lockstringLineout volume lock, locked / unlocked.
lineout_vol_limitintLineout volume ceiling, 10-100.
lineout_followstringLineout follows speaker volume/mute, on / off.
dante_mute_statestringDante network mute, on / off (from STA).
model, firmware_versionstringFrom GET MODEL / GET VER INF.
serial_number, hostname, mac_addressstringserial_number is read from STA (the firmware rejects GET SERIAL with CMD ERR).
dhcpboolDHCP enabled.
host_ip, route_ip, net_maskstringFrom STA (leading zeros stripped).
tcp_port, baudrateintFrom STA / GET BAUDR.

These attribute names are cataloged, so they appear in the Attribute editor's name picker and can drive attribute triggers — for example, alert when the speaker is muted (mute_state = on) or when volume crosses a threshold.

Zone

  • Address required: no. The amp is a single stereo output with no per-zone addressing. To control and monitor it from a UI, bind an AV zone's Volume Device to this amp (see Setup step 3): the zone's volume and mute controls route to the amp, and the amp's volume / mute_state mirror back onto the zone.

Commands

Power (emulated)

CommandArgsNotes
power_onUnmute the speaker and lineout outputs.
power_offMute the speaker and lineout outputs.

The protocol has no power command — the amp is designed to stay powered. GEM emulates the standard power_on/power_off verbs as mute across both outputs, and derives power_state from speaker mute only (dante_mute_state is a separate state and does not affect it). Because the bound AV zone's power_state then tracks what the amp is actually doing, the AV power reconciler catches a lost power_off command: if the amp still reads unmuted while GEM shows the zone off, the zone is resurfaced as on (default 30s debounce; opt out per zone with power_reconcile = false). A true power-off requires switching the amp's supply externally (e.g. a controllable PDU outlet via the zone's off_action).

General

CommandArgsNotes
get_statusFull STA dump (volumes, mute, balance, lineout, network, serial).
get_model / get_versionUnit model / firmware version.
rebootReboot the amplifier (SET RBT).
helpDevice help/command list (H).
passthroughcommandSend a raw protocol command verbatim. Escape hatch for anything not modeled here (e.g. SET RST factory reset, network setup).

Speaker output

CommandArgsNotes
volumevolume (0-100)Set speaker volume.
volume_up / volume_downStep speaker volume by 1.
mute_on / mute_offMute / unmute the speaker output.
mute_toggleToggle from cached mute_state (no native protocol toggle).
balancebalance (0-40)Set speaker balance.
volume_lock / volume_unlockLock / unlock speaker volume control.
set_volume_limitlimit (10-100)Map the maximum speaker volume to 100.
get_volume / get_mute / get_balance / get_volume_lock / get_volume_limitSpeaker queries.

Lineout output

CommandArgsNotes
lineout_volumevolume (0-100)Set lineout volume.
lineout_volume_up / lineout_volume_downStep lineout volume by 1.
lineout_mute_on / lineout_mute_offMute / unmute the lineout.
lineout_mute_toggleToggle from cached lineout_mute_state.
lineout_balancebalance (0-40)Set lineout balance.
lineout_volume_lock / lineout_volume_unlockLock / unlock lineout volume control.
set_lineout_volume_limitlimit (10-100)Map the maximum lineout volume to 100.
lineout_follow_on / lineout_follow_offLineout tracks speaker volume/mute, or runs independently.
get_lineout_volume / get_lineout_mute / get_lineout_balance / get_lineout_volume_lock / get_lineout_volume_limit / get_lineout_followLineout queries.

Network / info

CommandArgsNotes
get_mac / get_dhcp / get_baudrate / get_hostnameNetwork/info queries.

Known quirks

  • Single TCP session. The amp resets a second connection — close other control clients if the driver cannot connect.
  • Volume is already 0-100 on the wire — no scaling. set_volume_limit maps the chosen ceiling to 100; the reported volume stays on the 0-100 scale.
  • GET SERIAL returns CMD ERR on current firmware; the serial number is read from the STA dump instead.
  • The lineout is independent of the speaker unless lineout_follow_on is set (then it tracks speaker volume/mute, except when the lineout volume is locked).
  • Balance range is 0-40 (0 = full left, 20 = centered, 40 = full right).

Troubleshooting

SymptomCheck
Driver will not connect / connection resets immediatelyThe amp allows a single TCP session — disconnect any other telnet/control client holding the port.
Front-panel volume changes not reflectedConfirm the status poll is running; lower status_interval for faster updates.
Lineout does not follow the speakerSend lineout_follow_on. A locked lineout volume overrides following.
  • AV Zones — bind this amp as a zone's Volume Device.
  • AV Sources — define the sources the paired zone switches between.
  • Devices — add and configure the amplifier.
  • Commands — the command grid and the Test runner.