ATS-20 Plus Radio Integration

I just completed a project to control a radio from home assistant. Although it only controls the FM station on the ATS-20 Plus radio (as well as volume, mute, scan up or down) it could be expanded to also control AM and SBW stations. For me I just needed to control FM stations. Code is located at

which is a fork from

Example yaml for the ESP32 is also located on the RaceNJason github site (so the complete solution is available for at least the FM frequency band). Maybe someone will want to contribute to complete the AM and SBW portion of it…

Purpose for this is that there are zero streaming radio stations where I live and the wife wants to be able to stream the local radio stations to our sound system (that is controlled via home assistant). Anyway my solution was to take the ATS-20 Plus programmable radio, modify the programming and then connect an ESP32 board to it (via direct UART wiring). Solution works perfectly. In addition the code provides feedback so that, for example, if you are doing a scan…the scan results (and current scan position) will be reflected within home assistant.

Additional parts of the solution deal with an aux port switch that switches between the radio, a home assistant media player and an external aux input. But…that is a different project that I want to keep separate from this.

How are you getting the sound from the ads-20 to the sound system?

…aux port switch that switches between the radio, a home assistant media player and an external aux input

Means the ATS-20 has a headphone out jack which is used to go into the sound system. But for me it is fed into the aux switch instead of going directly to it. I guess for most other people who don’t need a aux switch for other devices…they can just plug it in directly and be done.

So this switch has 1 out aux which goes into the aux in of the sound system. The sound system is always at full volume with each device going into the aux switch controlling their own volume (if that makes sense). You can buy manual switching aux port switches just about everywhere, but need to make your own if you want to do it digitally (at least I was never able to find a digitally controlled one for sale).

That makes sense. I was hoping it might have a digital output. Like an mp3 stream or something. But I can work with analog if I have to.

I’ve seen audio DAC modules available that can at least digitize it (to like I2S). I’ll assume you’re thinking about how to get the audio into home assistant for playing to any designated media players. I’ve briefly thought about this but didn’t see any immediate solutions. I had already hooked up a home assistant media player to the sound system so my second choice was to add it to this system. But if you can figure out how to get it into home assistant I’d be interested to know how it is done since that would definitely compliment this project.

I was more thinking of injecting it into an LMS server. I could take the audio out (the headphone out) and putting it into a ADC. Like a behringer UCA202. But the ats-20 might have a digital stage at some point?

I’ll assume you are not familiar with the ATS-20 radio. It is basically an Arduino NANO plugged onto a custom board that contains a SI4732 radio IC (although I was told it was a SI4734 - according to the PCB in this pic, it is a SI4732…regardless it appears the commands are identical enough that the code I created works). Luckily the SI4732 is a SOIC16 making it super easy to attach wires to. And it looks like it has a direct I2S output…but, obviously this would need to be programmed into the existing code since I’m pretty sure it is not used in this configuration.

It was just super easy to use this setup (rather than some custom one) since it also comes with a case, screen, etc (i.e. complete radio not a module that you need to find a housing for yourself) yet was programmable because of the Arduino NANO (wished they used a more powerful IC or at least one with more program space). I’ve learned over years of making stuff that many projects I decide to ‘make’ all on my own never get completed (common curse of makers). So now I go for the easiest solution IF it works for what I need it to do and only design/make something if I absolutely need to (like the digital switching aux ports). This project literally took me at most 2 days total (couple hours a day) to complete. Of course solely because someone(s) else did all the core work and I just came along and made the mods (and hence why I gave him credit and gave back to the community via posting my work).

You are right. I am not familiar with the device, but read a fair few web posts after seeing your post. (You picqued my interest).

Thanks for filling me in.

Let me (and the HA community) know if you end up extending any of this…