Pi Radio



This project began simply because I had an extra Raspberry Pi laying around and I was looking for a quick an easy project to knock out in a weekend. I ultimately settled on making an Internet radio using the Pi. I had a small '60s Zenith radio laying around that I could use. Like most of my projects, it grew into something much more complicated pretty quickly.

An Internet radio did eventually come out of this project idea but it took longer than a weekend! I ended up using a 1930s Truetone tube radio instead of the 1960s Zenith that I had on hand. I also wrote a custom front end to replace the existing dial. The front end is written in Python3 using the pygame library. To control the interface I used rotary encoders. Finally for the amp, I just gutted an old pair of Dell speakers and bought a cheap speaker from Amazon.

And here is the radio in action, sorry for the poor filming!


I used 4 rotary encoders for control. From left to right:

  • The first rotary encoder doesn't do anything but it is hooked up. Maybe some time in the future I will think of some purpose for it!

  • The next one controls volume and if it is pressed it mutes/unmutes the audio.

  • The third one selects the current 'station' and causes the needle to spin. If pressed it shows information about the currently playing song/station.

  • The one on the far right selects the genre of music, and changes the background graphic at the same time. If pushed when the radio is on it shuts the Raspberry Pi down. If the Pi is already shut down it starts it back up.


  • I did spend a little bit of time de-spaghettifying the code before putting it on gitlab but its still messy. My apologies for that. The repository should have most of the nuts and bolts you would need to do something similar but I've left out the images and other stuff. This isn't drop in code but it should give you a decent start. You can find it here: https://gitlab.com/tibernut/radioPi.

    If you want to get into some of the details of the build read on!