I’ve been working on a Raspberry Pi Internet radio for some time now, and was one of the first things I learnt to do on my Pi. Talk about jumping in at the deep end?!
Today I finally finished the build, and have what I’m calling ‘Version 1’.
There are still many things I want to work out, but I wanted to finish my prototype version to then consider improvements to make ‘Version 2’ a solid piece of kit.
Here are some shots of my completed radio project:

I used a Humble Pi prototyping board to connect the display and all of the switches

The Raspberry Pi is mounted on the rear plate

The various fixings and bits n’ bobs
A few things off the top of my head that I want to improve:
- Artist/Track name scrolling
- A decent case (not just 2 panels bolted together!)
- LCD screen cut into the face
- Speakers/Amp built in
- Posh flush illuminated buttons
- Rotary switch for the station and volume
Here’s a video of my completed radio in action:
The initial idea and knowledge came from watching YouTube videos, which I then expanded on as much as I could to make something a little more individual. If you fancy having a go yourself, you need look no further than Meistervision’s tutorial on YouTube:
That will get you up to a point where you have a working radio, and then just use you natural curiosity, your Google skills, and this blog (I’ll be documenting some of the things I did with mine) to make your Radio unique and how you want it.
Perhaps start like I did with a breadboard:

My initial prototype
I’ll post a few follow-up blogs showing certain things I did with this, which should help you along. Things like:
- Snippets of my code (Beware: rusty Average Man code!)
- Humble Pi overview and tips
- Simple Pi and LCD mounting
- LCD wiring
- IP Address button code
- How to auto-start a Python script on boot
If there’s a huge demand, I’ll even do a step by step guide…but considering how fiddly this was, I’ll take some convincing!
Thanks for reading. If you have any questions or improvement suggestions, please leave a comment.
Average Man
Hey man, great job here! I found this whilst searching for python LCD menu system ideas. You've nailed it! Any chance I could see some of your menu code? Would be much appreciated!
Scratch that, just found your pastebin link….
I'm building a home heating controller and having a few issues with coding the menu. My main menu is within one function and yes it's getting messy! I see you are skipping through menu items by having each item in its own function, this may solve the delay issues i'm experiencing… i'll give it a shot
Hi ! Thank you for putting your work here . I was trying to replicate you radio but I am stuck .
First , the radio start but is cycling through the stations and is stopping .
Second I have no idea how to wire the push buttons . I tried all approaches (with resistor , without resistors , to ground , to positive) but I’m not getting any effect when I push the buttons .
Please can you post here your wiring with value for resistor ?
Thank you !
Where is the code?
Hi there,
My name is Elizabeth and I’ve had the same wish for a Radio that shows the artist name and title, as in your project here. I messaged on youtube as well.
However I’d like to do the project with a FM radio chip, the Si4703. Anyway, I’m desperate for code as I’m an intermediate beginner and would love to see anything – especially if I end up just going with internet radio.
Let us know if you would share your code and documentation!