Introduction: 1970 Flirt Pi Internet Radio
This beautiful little "Flirt" transistor radio from 1970 has had a loving conversion using a Raspberry Pi Zero and modern microswitches, and now bangs out internet radio tunes in the bathroom, its dial (and case) glowing brightly from the LEDs of the inbuilt Pimoroni Speaker pHAT's VU meter. It's powered by a rechargeable LiPo battery and all of the original controls have been re-used.
The power switch does what you'd expect, boots up the Pi and points it at the stream for Soma FM's Secret Agent, while the original volume and tuning dials have been upgraded with microswitches and now control the volume. Pop open the battery cover and there's a micro-USB connector to charge up the battery - it's as cute and functional as it was 50 years ago!
This was also my quickest ever Raspberry Pi project - from junk box to bathroom shelf in exactly a week.
In case you can't see the embedded video it's on YouTube at https://youtu.be/d2tF_ky-CLA
Flirt Transistor Radio
Raspberry Pi Zero W
Pimoroni Speaker pHAT
Adafruit Micro Lipo
Pimoroni Lipo Shim
2x Lever Microswitches
1x Latching Double Pole Double Throw Switch
Step 1: Peeling the Orange
Finding this old radio at the car boot was one of those moments that drives me to hang around the junk sales in all weathers - in this case it was raining and most of the "amateur" stallholders had already left, so the kids & I had a dig through the "rummage boxes" of the house clearance traders just in case. Immediately on spying this little gem I literally snatched it up and held onto it, it was the perfect size, colour and style I've been looking out for. I can't believe its six years since I published my first transistor radio instructable
Later that day I dismantled it - probably the quickest teardown in history, as it had literally one screw and some clips holding it together. The dirty 49-year-old circuits and speaker joined the growing recycling pile but I kept the dials and power switch, intending to make this conversion as faithful as possible.
Step 2: Soma Code
Simplicity was definitely one of my objectives with this build, I didn't want an airplay speaker or a voice assistant, just a straightforward radio playing a single station. I'm pretty evangelical about Soma FM, their stations have literally been the background soundtrack to my life for maybe 15 years now - in fact I remember first listening after reading a recommendation in T3 magazine - which I'd bought to help me choose my first ever mobile phone (A Samsung SGH-A100). I could sing their praises all day but suffice it to say if you like radio with great music, no adverts, no news and great ethics then give them a spin.
Anyway all I needed the Pi to do was load up the stream of my choice and then let me control it with two buttons connected to the GPIO. The code's pretty straightforward and is fully documented on GitHub at https://github.com/MisterEmm/FlirtPi - on boot it opens the radio stream in VLC player, then looks out for a volume button press on GPIO 5 or 7.
The script was set to run automatically on boot by adding..
@python3 /home/pi/flirt.py &
...to the end of the autostart file on the Pi. Depending on your setup this is either at:
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
Step 3: Pi Hardware
For the audio I decided to use a Pimoroni Speaker pHAT - a mono amplifier for the Raspberry Pi. This pHAT is designed to sit on top of a Pi Zero and provide basic audio through a tiny built-in speaker, but I had other ideas.
Rather than connect the pHAT directly to the Pi I soldered in a set of jumper cables to the required pins (after checking out pinout.xyz) - this was so that I could mount the LED side of the pHAT as close as possible to the radio dial, and also so that I could get at the spare pins I needed to add in the button volume controls.
I also soldered a Lipo Shim to the Pi, allowing it to run directly from a small LiPo battery - it's a great power option, but those battery connectors are really small and fiddly - I needed a better way to disconnect the battery for charging than getting out the needle-nose pliers every time, so looked out for other options.
Step 4: Original Controls
Recreating the radio controls was definitely my favourite part of this build - I began with the volume and tuning dials. Rather than going overboard and using rotary controllers I carefully cut off some small pieces off the dials and super-glued them to lever microswitches - that way they could poke through the case and look exactly the same as before, except being clicky now instead of wheely. This works really well and I'll definitely be using the same technique in future builds.
The power switch took a bit of research until I could find one that was just the right size to slot into the power button (even then I ordered 3 slightly different ones, which all arrived in separate parcels, on separate delivery vans, really got my £3 worth thanks RS!). The type of switch was critical - I needed it to be locking (so the power would stay on) but also wanted it to switch the battery into a charging state when turned off. I achieved this using a double-pole double-throw switch, so that when it was "off" it could isolate the battery completely from the Pi and instead connect it to a Micro USB LiPo charger, an Adafruit Micro Lipo.
Step 5: Speaker & Charging
The Micro LiPo charging board was conveniently a perfect fit for the battery bay door, which really made me smile, just the idea of opening up the little door to re-juice the orange, the same way you'd have popped in a fresh PP3 back in the 70s.
Choosing a speaker was next - I tried all of the ones I had lying around and this small rectangular one offered the best combination of size and quality. It was hot-glued in place, and sounded a lot better than I expected when the unit was fully assembled. Soldering it to the pHAT was a bit tricky as it was designed to connect its own tiny speaker via solder pads rather than pins or holes, but with some careful work and hot glue to hold the cables in place it wasn't too difficult.
Step 6: Assembly
With everything connected up & working on the bench it was time to try and fit it all in the tiny case - always a challenge. In this case it was a real exercise in frustration! Because space was so tight I'd had to solder the pHAT's jumper cables directly to the Pi, something I normally avoid but that's fine to do - provided you have decent quality cables. These were not great quality cables (they were very cheap though) - I snapped at least four of them at the solder joint just moving the thing across the workbench.
After some cursing, solder-sucking and resoldering I first hot-glued the Speaker pHAT into the case, so that the LEDs would shine through the dial.. Next I fixed the volume and power switches securely in place using Sugru - mouldable glue that's absolutely perfect for this job. Lastly I hot-glued the Pi Zero in place, and fixed the LiPo battery using a self-adhesive cable tie holder, so it could be removed if needed later on.
Step 7: Funky Shaving
I'm absolutely thrilled with the way this project turned out, it works exactly as I hoped and from the outside it looks and handles indentically to the original, with nothing to give away its modern interior.
It does take a little while to boot up, and in retrospect I probably shouldn't have used the "full fat" version of Raspbian - still by the time the bathroom sink's filled up and I'm reaching for the razor it's usually blaring out the tunes. It's not what I'd call audiophile quality but it's perfect for the bathroom and much better than listening on my phone.
The battery life's great too, I've not used LiPo batteries in a project before and was very pleasantly surprised.
Most of all this little radio feels like a distilled version of what I love, modernising a piece of old tech but keeping true to the original purpose and re-using as many of the features and controls as possible.
My other Old Tech. New Spec projects are all on Instructables at https://www.instructables.com/member/MisterM/instructables/ and on our YouTube channel at https://www.youtube.com/channel/UCRrwSKYBu4N7P6HWZsWJ2MA