Skip to main content

McIntosh MA12000

The mcintosh_ma12000 driver controls the McIntosh MA12000 hybrid integrated amplifier over its native RS232 protocol fronted by a serial-to-IP bridge. One GEM device represents the amplifier; there are no zones — the MA12000 is a single-zone unit.

Status

Power, volume (0-100), mute, input selection (1-17), Output 1 / Output 2 speaker switching, balance, per-input trim, EQ, mono, meter and tube lights, display brightness, headphone HXD crossfeed, and MM/MC phono trim are all wired. The amplifier pushes status updates automatically (status feedback is enabled by the amp on every power cycle), so most attribute changes appear without polling. A 60 s safety resync is included.

Prerequisites

  • Serial-to-IP bridge (Brainboxes, Global Cache, etc.) wired to the MA12000 RS232 jack with a DB9-F to 3.5 mm TRS cable (e.g. SF Cable D935-06: Tip = TXD, Ring = RXD, Sleeve = GND).
  • Bridge serial port set to 115200 8N1, no flow control (the amp also supports 57600 / 38400 / 19200 / 9600).
  • Bridge running in raw TCP mode (not telnet), with a stable LAN IP (DHCP reservation or static).

Setup

  1. Cable the MA12000 RS232 jack to the bridge.
  2. Configure the bridge to expose the serial port as raw TCP at 115200 8N1.
  3. System → Devices: add a device with driver mcintosh_ma12000. Set:
    • ip — LAN IP of the bridge
    • port — TCP port the bridge maps to that serial port
  4. Save and enable. On AC connect the amp emits its model, serial number, and firmware version banner — the driver captures these into the model, serial_number, and firmware_version device attributes automatically.

Attributes

Device — required

AttributeTypeDescription
ipstringLAN IP of the serial-to-IP bridge.
portintTCP port on the bridge that mirrors the RS232 serial port.

Device — optional

AttributeTypeDefaultDescription
monitor_intervalint (ms)60000Safety resync cadence. The amp pushes updates on every change; this is a backstop.
max_volumeint (0-100)60Hard cap applied to discrete volume commands. volume_up / volume_down are not clamped since they only step by 1%. Protects against accidental loud levels on this very high-output amp.

Reflected device attributes

The driver mirrors the following onto the device as state changes:

AttributeTypeSource
power_statestringon / off
volumeint0-100
mutebool
inputint1-17
input_labelstringResolved label (BAL1, UNBAL3, MM PHONO, etc.)
output1, output2boolSpeaker output switching
balanceint-50…+50 (left negative, right positive)
input_trimint-12…+12 (0.5 dB steps)
eqbool
monobool
meter_lightsbool
display_brightnessint1 (dimmest) … 4 (brightest)
headphone_hxdboolCrossfeed; only effective with headphones plugged in
headphone_statestringunplugged / plugged / no_jack
phono_resistanceint1=50Ω 2=100Ω 3=200Ω 4=400Ω 5=1000Ω (MC only)
phono_capacitanceint1=50pF 2=100pF 3=150pF 4=200pF 5=250pF 6=300pF 7=350pF 8=400pF (MM only)
status_feedbackboolWhether the amp is pushing unsolicited status updates

Input map

IndexInput
1-2BAL1, BAL2
3-8UNBAL1 … UNBAL6
9MM PHONO
10MC PHONO
11-12COAX1, COAX2
13-14OPTI1, OPTI2
15USB
16MCT
17HDMI (DA2 module only)

Commands

CommandArgsNotes
power_on / power_off / get_power
volumevolume (0-100)Absolute level. Clamped server-side to the max_volume attribute (default 60).
volume_up / volume_down / get_volume
mute_on / mute_off / get_mute
output1_on / output1_off / output2_on / output2_offSpeaker A / B switching.
inputinput (1-17)See input map.
input_up / input_down / get_input
balancebalance (-50…+50)
balance_left / balance_right / get_balanceStep in single increments.
input_trimtrim (-12…+12)Per-input trim, persists per source.
eq_on / eq_off / mono_on / mono_off
meter_lights_on / meter_lights_off / tube_lights_on / tube_lights_off
display_brightnesslevel (1-4)
headphone_hxd_on / headphone_hxd_offHeadphones must be plugged in.
phono_resistanceindex (1-5)MC PHONO must be the active input.
phono_capacitanceindex (1-8)MM PHONO must be the active input.
trim_menu_closeCloses the front-panel trim menu (else it times out).
status_feedback_on / status_feedback_off / query_all

Known quirks

:::warning Power-off rejects most commands While the amp is in standby, every command except PWR returns (ERROR - Invalid Command). The driver only polls non-power state when power_state is on. :::

  • The amp turns its status feedback (STA) on automatically at every power cycle, so unsolicited updates are the norm.
  • phono_resistance (TPR) only works while input is MC PHONO; phono_capacitance (TPC) only works while input is MM PHONO. They return an Invalid Input error otherwise.
  • Power-on takes ~15 s; commands sent during warm-up are buffered and acted on after.

Troubleshooting

SymptomCheck
Every command returns Invalid CommandAmp is in standby. Send power_on first.
No volume / input updates appear in GEMConfirm the bridge is in raw TCP mode (not telnet) and the serial settings are 115200 8N1.
Phono resistance / capacitance command rejectedTPR requires MC PHONO selected; TPC requires MM PHONO selected.
Model / serial / firmware never populatedThe banner is only emitted when the amp is power-cycled at the AC mains while the bridge is connected. Power-cycle the amp once after wiring.