Arduino FM Radio

10 years ago I bought a radio for my workshop. The criteria were: FM, cheap and mains-powered. I forgot to add the criterion: works. The radio was really bad at tuning – be that finding a station or keeping tuned to it. So I decided to gut it and put my own circuit inside.

The radio in question is a Sunstec RP-S500.

Apparently the Sunstec brand is owned by a Japanese company, Suns Corporation in Tokyo. This radio was definitely not their finest hour. I have worked for several years in Japanese electronics corporations myself. I can only imagine the shame of the team that came up with this one. This was a radio being sold new in ~2005. Not 1975. Looking inside you wouldn’t believe it.


It does have a little bit of Sony inside, although I’m sure that a radio with Sony written on the outside with the same chip inside might work a bit better than Sunstec’s effort.


My objectives were: have a bit of Arduino fun, make the radio work more like an oldskool car radio (simple frequency presets), hold on to a set frequency and be loud enough to hear around the workshop (clearly not necessary to be heard over an angle grinder).

Non-objectives: easy manipulation of frequencies, display of selected frequency, changeable volume, stereo, PSU inside radio, on-off switch. We all probably listen to about 3 radio stations on FM, ever. Unlike in a car or living room, the radio in the workshop really only needs one volume setting – loud-ish. Stereo in the workshop is pretty pointless as you move around the place all the time. For on-off, I’ll just pull the wall-wart from the socket.

Constraints: Use the same speaker and have some external button to change radio station and cheap!

Nice-to-have: Remember the last frequency used when powered up next time. Re-using the the existing mechanicals as much as possible to look like the original radio.

I used an Arduino Nano because it’s cheap (about €2.50, delivered, from eBay) and has a USB port for reprogramming should I need to change the frequency set sometime in the future. The radio module is a TEA5767 circuit from eBay (about €1.40, delivered). The audio ‘power amplifier’ is an o-o-o-old favourite, the LM386 chip (about €0.20).

Here’s the schematic:
An Arduino is connected to a microswitch with 1k pull-down and the FM radio via the I2C pins (remembering the I2C pull-ups – I used 4k7). The TEA5767 connects to the Arduino, antenna (re-using using the antenna in the radio case) and pick a channel for the output (I used Left) to the LM386. The LM386 circuit is pretty standard – I had a 10u gain setting cap and a 10k pot on the input for setting the radio volume to ‘loud but not distorted’. The 9V and 5V rails are decoupled with electrolytics and smaller mylars.

Mechanical notes: I cut a bit of old Ikea chopping board to hold a DC input jack via a Schottky ‘idiot’ diode for a 9V input from a wall wart switch mode PSU (about €2, delivered, from eBay). I chose the ‘Boss effects pedal standard’ centre-negative since that’s the most common 9V wall-wart in my gaff -YMMV. I used a lot of hot-snot glue to hold the new circuit and the old knobs back in place. I used a microswitch on the old AM/FM lever to change frequencies which works a treat – again, hot-snot holds the microswitch in place.

Here’s what the Arduino-ised radio looks like:


For what it’s worth (and there’s always somebody who asks) you can download my Arduino source code here. You will need the TEA5767 library which is available here (thanks for pointing that out Harald DG6JJ, sorry I couldn’t reply to your email – I hope you see this update).


It works fine. I see that you can by LM386 modules from eBay with a volume knob and all the other components already in place – about €2.00 delivered. The TEA5767 module is tiny and a bit of a pig to solder to from a standard 0.1″ matrix board.

This little project gave me the idea that what would be a lot cooler would be to use an old valve radio as a donor shell. With that you get a nice wooden cabinet that could easily take 2 loudspeakers and then to make good use of one of the class-D amplifier modules from eBay like a PAM8403. There’d be so much room inside that you could put a lead-acid or LiPo battery for portable use – heck, even the float-charger circuit. Also, the old valve radios often had the channel-select buttons along the bottom. To be really fancy you could add some RGB LEDs inside that slowly brightened up as the radio ‘warms up’.

My total investment on this was about €1.40 because the FM radio module was the only thing I specifically ordered for this project – everything else came from my parts boxes. Oh, you could add another €2.00 for another 9V wall-wart. You wouldn’t do this to save money – you could probably buy a good (Sony, Grundig, Philips, etc.) , used FM mains radio from a car boot sale for a few eurodollars. But that’s not the point, it’s not so cool.

I hear word that The Powers That Be would like to do away with analogue FM radio and have us all switch to DAB. Whilst they got away with that for TV’s, I can’t see that happening for radios in a hurry – the main problem being the huge install base in that most difficult-to-upgrade of items – the automobile.