Introduction: Raspberry Pi Radio
This retro looking radio was made from an old radio. Inside a Raspberry Pi and some other components were placed to make it work via the internet. It uses radio streams from the internet. Features of the radio are:
- Tuning is done by turning the original tuning knob of the radio.
- The tuned channel is pronounced through the speaker (in English or in your own language).
- Both the tuned channel and current volume are stored in text files in order to restore these settings automatically the next time the radio is switched on.
- Safe power off: the Raspberry Pi inside is properly shutdown upon pressing the power off button.
- LED indicator to show if it is safe to remove the power cord.
- Old style buttons for volume up/volume down.
- Hardware includes a Raspberry Pi, a small audio amplifier, a rotary encoder as tuning control. All controls are connected to the Pi's GPIO connector. The software is a python script that I wrote.
- An old radio. If the speaker is working you can re-use it.
- A Raspberry Pi.
- Two switches for volume control.
- One switch for power off.
- A rotary encoder on a PCB.
- A small audio amplifier.
- A capacitor of 100uF.
- An LED and resistor.
- Some wires.
- Some hot glue and a power adapter.
Step 1: Raspberry Pi Preparation
The OS and other software must be installed on the Raspberry Pi first. In this step we use a HDMI monitor to work with the Raspberry Pi. Later when all parts are mounted inside the radio case the only way to work with the Pi (for instance to add new radio channels, or update the software) is via SSH.
- Install the OS Raspbian with desktop on the Pi.
- Connect the Pi to your Wifi network and enable SSH and GPIO in Raspian settings.
- After this we need some additional software. Minimal MPlayer and Festival are needed. MPlayer is used to play the radio streams and Festival is a text-to-speech program that is used to pronounce the radio channels that you tune.
This step can also be done using SSH since the network is there.
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install festival
sudo apt-get install mplayer2
Step 2: Hardware Installation
Open the case of your old radio and remove all components but the speaker.
Then install the new components according to the schematic. The input of the audio amplifier is connected to the audio output of the Pi. A capacitor is placed over the 5V of the Pi to decrease noise. I needed this because I use a cheap power adapter as power a source.
Connect the rotary encoder, the 3 switches and the LED with resistor with wires to the Pi.
I used high quality double sided tape to mount the Raspberry Pi and the audio amplifier. The LED needed some hot glue to stay stuck. Wire everything according to the schematic. If you do not understand anything, just ask me.
Step 3: Software Installation
The software consists of a Python script that is run automatically upon boot. You may want to change the Pyhton program before you upload it to your Raspberry Pi. You'll need to put in the radio channels that you want your radio to be tuned to.
When you look at the Python script you see that the array
Channels holds all streams. Every stream has a name and a URL (2 consecutive entries in the array). The name will be pronounced by the system as you tune in to that station.
If you want the names to be pronounced in your own language instead of English you need to change the names into some sort of phonetic English. For instance I use the phrase "Bay N Err" to make the system say "BNR" in Dutch (instead of "Bee N Arr" as it would do if I just had put "BNR").
Upload the file
- Add the line
- Add the line
python Radio2.pyto the end of the file
Also make sure that your Pi boots in command line.
Step 4: Listen to the Music
Listen to your favorite radio channels (or your own hosted streams) by tuning the tuning knob.
Increase or decrease the volume by pressing the volume switches.
If you want to switch off the radio press the power off button once and wait for the LED to be off. As soon as it is off then the Pi has halted and it is safe to remove the power cord.
4 People Made This Project!
- 8949f7da9555a488 made it!
- Nico_J made it!
- 8-Bits made it!
- pknutselpunk made it!
4 years ago
Hi everybody. Superb project, works well.
The streams are played quite longer after STT anouncement (say 10 sec). Any idea (pi2, V1.2)
The halt "function" by pressing doesn't operate from time to time and the led (yellow) lights is rather low. Any idea?
Beside, if you need to connect to an amplifier , you better use an galavanic isolator (3,5€ on ebay see
otherwise you get plainty of hum and hiss
Question 4 years ago on Introduction
Thanks for your upload. Unfortunately, I can not program, but would like to rebuild the radio: Instead of switches, I would like to use another rotary encoder to control the volume. I would appreciate any help since all my attempts to rewrite something myself failed.
Question 4 years ago on Step 3
Hello, I'm new to Raspberry and I need some help with the location of the Radio2.py file in the: home / pi location ...?
Could you tell me if I should create the home directory and in what part?
5 years ago
It should be noted that the original instructions and Wiring Diagram omit that an audio output feed needs to be made from the RPi to the “In” and second “GND” pins of the Amplifier Module.
With an RPi 2 or 3 board this can be accomplished using the “Left” and “GND” connections of its 3.5mm “TRRS” audio output jack.