Hey everyone,
I’ve been working on an ESPHome external component to control the McIntosh MA5300 integrated amplifier over RS-232, and wanted to share it with the community.
Hardware An ESP32 connected to the MA5300’s RS-232 port via a MAX3232 TTL adapter. The MA5300 uses a 3.5mm jack for RS-232 rather than a traditional DB9 — so on the amp side you just need a 3.5mm plug with dupont cables soldered (screwed in my case) to it wired into the adapter. Total cost a couple of dollars on AliExpress, no special tools needed.
What it exposes in Home Assistant
- Media player entity with power, volume and mute
- Input source selector
- Volume Up / Down buttons (1-step precision)
- Tone, mono, meter lights, headphone HXD switches
- Bass, treble, balance and input trim controls
- Display brightness selector
- Headphones connected binary sensor
- Diagnostic sensors (serial number, firmware version, last error)
Most controls come in disabled by default — enable the ones you actually need.
There’s also an input discovery feature: the MA5300 only enables the inputs you have physically connected, so pressing the Discover Inputs button cycles through them, builds the filtered list, and persists it across reboots.
How to use it
Add this to your ESPHome device YAML:
external_components:
- source: github://The-sultan/esphome-mcintosh-ma5300
components: [mcintosh_ma5300]
Then copy the configuration from the example.yaml in the repo and adjust to your setup.
Full source and example config yaml: GitHub - The-sultan/esphome-mcintosh-ma5300: ESPHome external component for the McIntosh MA5300 integrated amplifier · GitHub. On the repo you can find on the docs folder the official protocol specification send to me by McIntosh.
Happy to answer any questions!