Earlier this month, I wrote about adding Bluetooth Proxy support to an existing Infrared Proxy. Today, I’m doing the opposite: taking an m5stack Atom Lite which already acts as a Bluetooth Proxy, and enabling its Infrared pin in ESPHome.
I’d originally set up the m5stack Atom Lite using the Ready-Made Projects tool on the ESPHome web site, and so all it could do was act as a Bluetooth Proxy. Essentially, all its other features were disabled. Back then, being a Bluetooth Proxy was quite taxing even for an ESP32-based device, and so it was recommended that you didn’t enable its other functions.
Nowadays, the code that powers the Bluetooth Proxy component is more efficient, and so it’s possible to open up some of the other features of the Atom Lite. I’m going to focus on the Infrared Proxy component, as this is relatively new to ESPHome and Home Assistant.
Enabling the Infrared pin
To enable the Infrared pin in ESPHome, we need to add the following YAML code:
remote_transmitter:
- id: ir_tx
pin: GPIO12
carrier_duty_percent: 50
non_blocking: trueYou can also do this in the ESPHome Device Builder using the interface:
- Add the Remote Transmitter component.
- Enter the pin number as ‘
GPIO12‘. - Set ‘Carrier Duty Percent’ to ‘
50‘. - Set the ID to ‘
ir_tx‘.
Adding the Infrared Proxy
Next, we need to enable the Infrared Proxy component. Again, here’s the YAML code:
infrared:
- platform: ir_rf_proxy
name: IR Transmitter
remote_transmitter_id: ir_txAnd here are the steps to add it in the user interface:
- Add the ‘IR/RF Proxy’ component.
- Name it ‘IR Transmitter’
- Set the Remote Transmitter ID to ‘
ir_tx‘, matching the name in step four above.
Save it, recompile your code and upload it to your Atom Lite. If this is already linked with Home Assistant, then you should see it added as an Infrared Remote under Settings, Connectivity, Infrared.
Note that whilst the Atom Lite can send Infrared commands, it doesn’t have the ability to receive them. That means it’s not possible for it to learn commands from other remotes; it can only send pre-defined commands.
Using it in practice to control a Sony Blu-Ray player
Whilst it’s rare that we watch physical media nowadays, we do still have a functioning Blu-Ray player. By parking the Atom Lite in front of it, and using this integration from HACS, it’s now possible to control it using Home Assistant. So far I’ve only tested opening and closing the disc tray but Home Assistant should be capable of controlling most features of the Blu-Ray player.
Enabling other Atom Lite features
The Atom Lite is designed to be a development board, and so features a number of pins that you can connect up to third party sensors or other devices. But it also has a couple of additional onboard features, besides its ESP32 chip and Infrared pin:
- A button
- A colour-changing LED
The m5stack documentation includes the necessary YAML code if you want to enable these in ESPHome too. I’ve enabled the colour-changing LED, although as yet I haven’t worked out what to do with it.


