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 80 → VOL 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.
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
- System → Devices → Add Device: choose driver AVPro Edge AC-DANTE-AMP-2CH (
avpro_dante_amp_2ch). Setipto the amp's LAN address. Defaultportis 23. - Save and enable. On connect the driver queries
GET MODEL,GET VER INF, and a fullSTAdump, then on everystatus_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. - 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_statemirror back onto the zone.
Attributes
Device — required
| Attribute | Type | Description |
|---|---|---|
ip | string | LAN IP of the amplifier. |
Device — optional
| Attribute | Type | Default | Description |
|---|---|---|---|
port | int | 23 | TCP control port. |
status_interval | int (ms) | 30000 | Cadence for re-reading volume, mute, and balance. |
command_throttle | int (ms) | 200 | Minimum 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:
| Attribute | Type | Notes |
|---|---|---|
volume | int | Speaker volume, 0-100. Mirrored to bound AV zones. |
mute_state | string | Speaker mute, on / off. Mirrored to bound AV zones. |
power_state | string | Derived 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. |
balance | int | Speaker balance, 0-40 (0 = left, 20 = center, 40 = right). |
vol_lock | string | Speaker volume lock, locked / unlocked. |
vol_limit | int | Speaker volume ceiling, 10-100. |
lineout_volume | int | Lineout volume, 0-100. |
lineout_mute_state | string | Lineout mute, on / off. |
lineout_balance | int | Lineout balance, 0-40. |
lineout_vol_lock | string | Lineout volume lock, locked / unlocked. |
lineout_vol_limit | int | Lineout volume ceiling, 10-100. |
lineout_follow | string | Lineout follows speaker volume/mute, on / off. |
dante_mute_state | string | Dante network mute, on / off (from STA). |
model, firmware_version | string | From GET MODEL / GET VER INF. |
serial_number, hostname, mac_address | string | serial_number is read from STA (the firmware rejects GET SERIAL with CMD ERR). |
dhcp | bool | DHCP enabled. |
host_ip, route_ip, net_mask | string | From STA (leading zeros stripped). |
tcp_port, baudrate | int | From 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_statemirror back onto the zone.
Commands
Power (emulated)
| Command | Args | Notes |
|---|---|---|
power_on | — | Unmute the speaker and lineout outputs. |
power_off | — | Mute 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
| Command | Args | Notes |
|---|---|---|
get_status | — | Full STA dump (volumes, mute, balance, lineout, network, serial). |
get_model / get_version | — | Unit model / firmware version. |
reboot | — | Reboot the amplifier (SET RBT). |
help | — | Device help/command list (H). |
passthrough | command | Send a raw protocol command verbatim. Escape hatch for anything not modeled here (e.g. SET RST factory reset, network setup). |
Speaker output
| Command | Args | Notes |
|---|---|---|
volume | volume (0-100) | Set speaker volume. |
volume_up / volume_down | — | Step speaker volume by 1. |
mute_on / mute_off | — | Mute / unmute the speaker output. |
mute_toggle | — | Toggle from cached mute_state (no native protocol toggle). |
balance | balance (0-40) | Set speaker balance. |
volume_lock / volume_unlock | — | Lock / unlock speaker volume control. |
set_volume_limit | limit (10-100) | Map the maximum speaker volume to 100. |
get_volume / get_mute / get_balance / get_volume_lock / get_volume_limit | — | Speaker queries. |
Lineout output
| Command | Args | Notes |
|---|---|---|
lineout_volume | volume (0-100) | Set lineout volume. |
lineout_volume_up / lineout_volume_down | — | Step lineout volume by 1. |
lineout_mute_on / lineout_mute_off | — | Mute / unmute the lineout. |
lineout_mute_toggle | — | Toggle from cached lineout_mute_state. |
lineout_balance | balance (0-40) | Set lineout balance. |
lineout_volume_lock / lineout_volume_unlock | — | Lock / unlock lineout volume control. |
set_lineout_volume_limit | limit (10-100) | Map the maximum lineout volume to 100. |
lineout_follow_on / lineout_follow_off | — | Lineout 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_follow | — | Lineout queries. |
Network / info
| Command | Args | Notes |
|---|---|---|
get_mac / get_dhcp / get_baudrate / get_hostname | — | Network/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_limitmaps the chosen ceiling to 100; the reported volume stays on the 0-100 scale. GET SERIALreturnsCMD ERRon current firmware; the serial number is read from theSTAdump instead.- The lineout is independent of the speaker unless
lineout_follow_onis 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
| Symptom | Check |
|---|---|
| Driver will not connect / connection resets immediately | The amp allows a single TCP session — disconnect any other telnet/control client holding the port. |
| Front-panel volume changes not reflected | Confirm the status poll is running; lower status_interval for faster updates. |
| Lineout does not follow the speaker | Send lineout_follow_on. A locked lineout volume overrides following. |
Related documentation
- 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.