Skip to main content

Anthem MRX / AVM

Anthem MRX 540 / 740 / 1140 AV receivers and AVM 70 / 90 AV processors, controlled over IP. The driver speaks Anthem's ASCII control protocol — short text commands terminated by a semicolon (;) on the unit's IP-control port (default 14999). It gives you power, two kinds of volume control (percent and exact dB), input switching, listening / surround mode, tone and balance, ARC room-correction profiles, on-screen messages, streaming "now playing" metadata, and zone 2 routing on the multi-zone models.

Because the unit answers every query with its current state, GEM keeps the device's status in sync with the real hardware on a poll — so a volume change made on the front panel, an Anthem remote, or the Anthem app shows up in GEM within a poll cycle without you doing anything.

How GEM sees the unit

This driver represents one receiver's main zone as a single device — it does not create a GEM control zone of its own, and it does not act as a matrix or controller. To get a room-level volume slider, mute button, and source behavior, you bind the device to an AV zone (see Linking to an AV zone below). Zone 2, where the model supports it, is driven with a separate set of z2_* commands rather than a second GEM zone.

What's controlled

  • Main-zone power on / off, plus live power-state read-back
  • Volume two ways: a 0–100 percent value that drives the room slider, and an exact-dB value in 0.5 dB steps for precise calibration — each with up / down stepping
  • Mute on / off / toggle (the receiver has a native toggle)
  • Input selection by input number, plus input cycling
  • Listening / surround mode by name (Stereo, AnthemLogic, Dolby Surround, DTS Neural:X, and more)
  • Bass / treble tone and left / right balance
  • ARC (Anthem Room Correction) — switch the active EQ and processing profile
  • On-screen display: post a two-line message, show / hide the OSD, open / close the setup menu, and simulate front-panel / remote key presses
  • Dolby dynamic-range and center-spread options
  • 12 V trigger outputs 1–3
  • Streaming "now playing" — track title, artist, album, and transport state from the built-in Networking Module, plus pause / stop
  • Read-back of the incoming signal: video resolution, audio format, channel layout, bitrate, sample rate, and bit depth
  • Zone 2 power, volume, mute, and input on the MRX 740 / 1140 and AVM 70 / 90
  • Status polling (default every 30 s) that mirrors external changes back into GEM

Prerequisites

  • An Anthem MRX or AVM on the LAN with IP control enabled (Setup → Network on the unit). Note the IP-control port — the factory default is 14999, but it is configurable on the unit.
  • Recommended: enable Standby IP Control on the Anthem. Without it, the unit drops off the network in standby and a single power-on command can be ignored — over RS-232 the power-on has to be sent twice with a one-second gap. With Standby IP Control on, a single power_on works reliably. (GEM also asks the unit to turn this on for you on first connect — see the Enable Connected Standby on Connect option below.)

Setup

  1. On the Anthem, open Setup → Network and enable IP control. Note the port (default 14999).
  2. Optionally enable Standby IP Control so the unit can be powered on remotely in one command.
  3. In GEM, open Devices, add a device, and choose the Anthem MRX / AVM driver. Set the Device IP field. TCP Port defaults to 14999 — leave it unless you changed the port on the unit.
  4. Save. On connect, GEM asks the unit for its model, optionally turns on Connected Standby, then seeds power, volume, mute, input, listening mode, and the incoming-audio details. From then on it re-reads that state on every poll.

Linking to an AV zone

The receiver feeds volume and mute into an AV zone rather than appearing as its own controllable zone:

  1. Open AV Zones and edit (or create) the zone for the room the receiver serves.
  2. Set the Volume Device field to this Anthem device.
  3. Save. From then on, the zone's volume slider and mute button drive the receiver, and whenever the receiver reports a new volume or mute state, GEM mirrors it back onto the zone.
note

Selecting an input on the receiver is a device command, not a zone source change. The Anthem's selected input is tracked separately from GEM's AV source routing — choosing a room's source on a touchpanel does not change the receiver's input on its own unless you wire the input command into that source's on-macro.

Volume: percent vs. dB

The Anthem exposes volume two different ways, and the difference matters when you calibrate a room:

  • volume sends a 0–100 percent value straight through to the receiver. The room slider uses this. Anthem's own percent curve is non-linear — the unit owns the mapping, and the driver passes your percent through unchanged:

    GEM percentApprox. level
    0%−90 dB (effectively off)
    4%−74 dB
    11%−53 dB
    20%−35 dB
    30%−25 dB
    100%+10 dB

    So a slider at 50% is not half-loudness — most of the usable listening range sits between roughly 11% and 40%.

  • volume_db sets an exact dB value (and volume_db_up / volume_db_down step by 0.5 dB). Use this when you want repeatable, dB-accurate levels — for example a macro that always sets the theater to −20 dB.

tip

If the on-screen volume reads as a percentage but you want dB, set Master Volume Scale to dB on the unit (Setup → Preferences → Master Volume Scale), and drive levels with volume_db.

Attributes

Device — required

AttributeTypeDescription
ipstringReceiver / processor LAN IP.

Device — optional

AttributeTypeDefaultDescription
portint14999Anthem IP-control TCP port. Change only if you re-mapped it on the unit.
status_intervalint30000Status poll interval, in milliseconds (minimum 5000).
enable_connected_standbybooleantrueOn first connect, asks the unit to enable Connected Standby so power-on works in a single command. Turn this off if you rely on the lower-power, non-network standby instead.

The driver also auto-populates state attributes on the device as the unit reports them — these are read-only status, not values you set by hand:

power_state, volume (percent), volume_db, mute_state, input, input_name, listening_mode, audio_format, audio_channels, audio_bitrate, audio_sample_rate, audio_bit_depth, video_resolution, balance, model, software_version, hardware_version, serial_number, region, input_count, connected_standby, arc_valid, arc_name, arc_date, and the streaming fields stream_title, stream_artist, stream_album, stream_state, stream_service. The zone-2 equivalents appear with a z2_ prefix (z2_power_state, z2_volume, z2_mute_state, z2_input, …).

Commands

The exact protocol string each command sends is shown so you can match it against Anthem's control reference. Where a command takes a value, the argument name is the one you supply in a macro.

Power, volume, and mute (main zone)

CommandSendsNotes
power_onZ1POW1Main-zone power on.
power_offZ1POW0Main-zone power off.
get_powerZ1POW?Query power state.
volumeZ1PVOL + valueSet percent (0–100). Drives the room slider; non-linear (see above).
volume_up / volume_downZ1PVUP / Z1PVDNStep the percent volume up / down.
volume_dbZ1VOL + valueSet exact dB.
volume_db_up / volume_db_downZ1VUP / Z1VDNStep by 0.5 dB.
get_volume / get_volume_dbZ1PVOL? / Z1VOL?Query percent / dB volume.
mute_on / mute_offZ1MUT1 / Z1MUT0Mute / unmute.
mute_toggleZ1MUTtNative toggle.
get_muteZ1MUT?Query mute state.

Input and listening mode

CommandSendsNotes
inputZ1INP + valueSelect input by number.
get_inputZ1INP?Query selected input.
get_input_countICN?How many inputs the unit exposes.
listening_modeZ1ALM + valueSet surround / listening mode by name (table below).
listening_mode_up / listening_mode_downZ1AUP / Z1ADNCycle modes.
get_listening_modeZ1ALM?Query current mode.

listening_mode accepts these names: none, anthemlogic_cinema, anthemlogic_music, dolby_surround, dts_neural_x, dts_virtual_x, stereo, all_channel_stereo, mono, all_channel_mono.

Tone and balance

CommandSendsNotes
tone_bass / tone_trebleZ1TON0 / Z1TON1 + valueSet bass / treble level.
tone_bass_up / tone_bass_downZ1TUP0 / Z1TDN0Step bass.
tone_treble_up / tone_treble_downZ1TUP1 / Z1TDN1Step treble.
balanceZ1BAL + valueSet left / right balance.
balance_left / balance_rightZ1BLT / Z1BRTNudge balance one step.

ARC room correction

CommandSendsNotes
arc_mode_eqZ1ARCMEN + valueActive ARC EQ profile: disabled, profile_1profile_4.
arc_mode_processingZ1ARCPRC + valueARC processing profile: disabled, profile_1profile_4.
arc_chirp_offsetZ1ARCCLO + valueCalibration chirp offset.
arc_test_toneZ1ARCCRP + valuePlay the ARC test tone (channel bitmask).
get_arc_valid / get_arc_date / get_arc_nameZ1ARCVAL? / Z1ARCUPL? / Z1ARCNAM?Whether a measurement is loaded, its upload date, and its name.

Surround features

CommandSendsNotes
dolby_dynamic_rangeZ1DYN + valuenormal, reduced, or late_night.
dolby_surround_center_spreadZ1DSCS + valueon / off.

Signal read-back (status only)

get_video_resolution (Z1VIR?), get_audio_channels (Z1AIC?), get_audio_format (Z1AIF?), get_audio_bitrate (Z1BRT?), get_audio_sample_rate (Z1SRT?), get_audio_bit_depth (Z1BDP?), get_input_name (Z1AIN?), and get_input_rate_name (Z1AIR?) read what's currently arriving at the selected input. These populate the matching state attributes; they don't change anything.

On-screen display and front panel

CommandSendsNotes
osd_messageZ1MSG + row + messagePost a message to a screen row.
osd_show / osd_hideZ1SHC1 / Z1SHC0Show / hide the on-screen display.
setup_menu_open / setup_menu_close / setup_menu_toggleZ1SMD1 / Z1SMD0 / Z1SMDtDrive the setup menu.
simulate_irZ1SIM + keySimulate a front-panel / remote key press.

12 V triggers

CommandSendsNotes
trigger_onR{n}SET1Assert trigger n (1, 2, or 3).
trigger_offR{n}SET0De-assert trigger n (1, 2, or 3).
note

For the trigger commands to do anything, the corresponding 12 V trigger on the unit must be set to RS-232 / IP control mode in the Anthem's trigger setup. A trigger left on "source"/"voltage"-follow mode ignores them.

Streaming (Networking Module)

CommandSendsNotes
get_stream_title / get_stream_artist / get_stream_albumNMTI? / NMAR? / NMAL?Now-playing metadata.
get_stream_stateNMTE?stopped, transitioning, paused, or playing.
streaming_pause / streaming_stopNMPC / NMSCTransport control for the built-in streamer.

System and identity

CommandSendsNotes
get_model / get_firmware / get_serialIDM? / IDS? / GSNIdentity read-back.
get_region / get_build_date / get_hardware / get_identityIDR? / IDB? / IDH? / IDQ?More identity fields.
set_connected_standby / get_connected_standbyGCCSTBY + value / GCCSTBY?enabled / disabled.
load_user_settings / save_user_settingsCPYS10 / CPYS01Recall / store a user-settings snapshot.
load_factory_defaultsLDFDSReset the unit to factory defaults.

Zone 2 (MRX 740 / 1140, AVM 70 / 90 only)

z2_power_on / z2_power_off / z2_get_power, z2_mute_on / z2_mute_off / z2_mute_toggle / z2_get_mute, z2_volume (percent) / z2_volume_db (dB) / z2_volume_up / z2_volume_down / z2_get_volume, and z2_input / z2_get_input. These mirror the main-zone commands onto the second zone. On single-zone models the unit answers them with a "zone off" error and nothing happens.

Known limitations and quirks

  • Percent volume is non-linear. The room slider follows Anthem's own percent curve (table above), so 50% is not half-loud. Use volume_db wherever you need repeatable, dB-accurate levels.
  • Listening-mode numbers can shift between firmware revisions. Anthem's published table has a duplicate entry, and the driver assumes stereo = 6. If you script a specific mode by name and the unit lands on the wrong one, confirm the mapping on your firmware and adjust.
  • Most commands need the unit out of standby. While powered off (but networked), the unit only honors model and power queries and the power commands; other commands return a "zone off" error, which the driver tolerates and logs. Power the unit on first if a command seems to do nothing in standby.
  • Some queries don't exist on every model. If the unit reports a command as unrecognized, the driver stops polling that one for the rest of the session rather than spamming the log — reload the device to re-test after a firmware update.
  • Bulk setting changes trigger a re-read. After you load user settings or factory defaults, the unit announces a bulk change and the driver re-runs its full status sweep so GEM catches up.

Troubleshooting

SymptomCheck
Power-on is sometimes ignoredEnable Standby IP Control on the unit (or leave Enable Connected Standby on Connect turned on). Without it, the unit leaves the network in standby and the first power-on can be dropped.
Volume slider shows %, the unit shows dB (or vice versa)Set Master Volume Scale on the Anthem (Setup → Preferences → Master Volume Scale) to match, or drive levels with volume_db for exact dB.
No response at allConfirm IP control is enabled on the unit and the TCP Port matches (default 14999). Make sure the IP is correct and reachable on the LAN.
A command is rejectedThe Anthem replies with a short error code the driver logs: unrecognized command, value out of range, invalid syntax, or "zone off" (the unit is in standby, or it's a zone-2 command on a single-zone model). Power the unit on, check the value range, or confirm the model supports the feature.
Zone 2 commands do nothingZone 2 exists only on the MRX 740 / 1140 and AVM 70 / 90. On other models the unit answers with a "zone off" error.

See also