Turn your Raspberry Pi into a real AM / FM / DAB / DAB+ / HD Radio receiver
A complete Raspberry Pi radio shield with local Web UI, CLI control, built-in 1 x 5 W amplifier, headphone output, analog audio output, and I2S digital audio for recording or processing.
Listen to real broadcast radio locally — no internet required for reception.
Why this product matters
The Raspiaudio Digital Radio Shield brings real broadcast radio reception directly to Raspberry Pi boards with a standard 40-pin header. It supports AM, FM, DAB, DAB+, and HD Radio, and can be controlled from a local web interface, from the command line, or directly from the onboard navigation button.
It is designed for both product integration and prototyping: standalone radio devices, embedded audio systems, custom radio software, kiosks, museums, and local radio applications that do not depend on cloud services.
What you can do
Receive AM, FM, DAB, DAB+, and HD Radio
Control the radio from any browser on your local network
Use the CLI for automation or software integration
Output audio through headphone jack, analog output, or external passive speaker
Use the built-in 1 x 5 W amplifier for standalone projects
Record or process digital audio through I2S
Build menu-based standalone interfaces with the onboard navigation control
Key features
Radio standards
AM, FM, DAB, DAB+, HD Radio FM, and HD Radio AM
Control options
Local Web UI, CLI control, and onboard 3-position navigation button
Audio output
Analog audio output, audio jack output, switchable onboard speaker output, and passive speaker connector
Audio processing
I2S digital audio path for recording or digital processing
Standalone-ready
Built-in 1 x 5 W amplifier and dedicated onboard navigation control
Open source software
Designed for developers who want to build their own radio applications
What’s included
1 x Raspiaudio Digital Radio Shield
1 x telescopic antenna
1 x riser for mechanical compatibility with Raspberry Pi boards using a 40-pin header
What you need
A Raspberry Pi with a standard 40-pin header
A suitable power supply for your Raspberry Pi
Headphones or an external passive speaker, depending on your setup
For AM reception: an external AM loop antenna is recommended
Compatibility
Compatible with Raspberry Pi boards featuring the standard 40-pin header, including Raspberry Pi Zero, Raspberry Pi 4, Raspberry Pi 5, and other compatible Raspberry Pi models.
Use cases
Standalone radio products
Embedded radio and audio projects
Custom Raspberry Pi prototypes
Museum, kiosk, or retro-radio installations
Developer platform for custom radio software
Local radio applications that do not depend on cloud services
AM reception note
For AM reception, an external AM loop antenna is recommended. Reception quality depends strongly on antenna design, orientation, and local electrical noise.
Software
The product includes open-source software for both the local Web UI and CLI-based control.
HD Radio support is subject to licensing. It is the user’s responsibility to verify that they have the legal right to use this technology depending on country, market, and application.
When receiving DAB or DAB+ is the whole multiplex available to software so that, for example, multiple stations can be played at the same time by different remotely connected sessions?
You are correct: with one tuner locked to a DAB multiplex, all services from that multiplex are present in the stream, so in theory software could decode several of them.
In this case, though, this product is intentionally designed as a straightforward radio receiver, not as an SDR tool or a multi-user streaming platform. The goal is immediate listening pleasure on a proper Hi-Fi setup, with good sound quality and a built-in amplifier.
So the device is meant to play one station at a time.
Anybody installed this radio receiver on a Raspberry Pi 5 ?
The python3-rpi.gpio is not compatible with Raspberry Pi 5, and I have replaced it with python3-rpi-lgpio. The server is starting up, but there is no communication with the radio board, CTS timeout waiting for SI468x.
Hi,
Your error might not be related to gpios.
Please first enable SPI in Raspberry Pi configuration.
Run:
sudo raspi-config
Then go to:
Interface Options → SPI → Enable
Then reboot
After reboot, check that SPI is active:
ls /dev/spidev*
You should see:
/dev/spidev0.0
/dev/spidev0.1
The SI4689 radio chip is controlled over SPI, so if SPI is not enabled the server can start but communication with the radio board will fail with a CTS timeout.
Also note: the correct config path is /boot/firmware/config.txt, not /boot/fimware/config.txt.
In Norway and Scandinavia we have some special characters, they are not correct shown in my web brower. I have tried both “nb_NO ISO-8859-1” and “nb_NO.UTF-8 UTF-8” in my /etc/locale.gen
Could you also share a example for the file “raspiaudio-radio.service” ?
For recording and local streaming, you need to declare an I2S recording device. Please check the “I2S recording on Raspberry Pi” section in the documentation:
I will try to make a plug-and-play profile for recording, as it should make the installation process easier.
Regading the Norway special chars I will include it in next release
it is not a bug, this is a feature you are not supposed to have audio stream in the main windows but just to control the radio playing audio using the amplifier onboard speaker/ext speaker.
another way to control the station after a scan is done is to open the playlist http://192.168.1.154:8686/playlists/dab.m3u
with VLC and click on the station of your choice, it will auto tune to it. see our git README on VLC section.
Got my unit up and receiving analog FM in the US. HD Radio does not seem to work. I plugged a Sangean FM receiver into the same antenna that the Digital Radio for Pi was plugged into for testing and the Sangean pulled in 4 or 5 FM HD Radio stations that broadcast near me.
One difference I noticed: All HD Radio receivers I’ve seen - in cars and at home - start by tuning the analog signal, then locking on to the HD signal after 1 to 5 seconds. After locking on, the receiver switches to HD mode and starts playing the HD signal.
I’m not so sure that having an independent FM HD Radio mode will work without using the analog signal to get a proper lock on the HD signal first.
Hi, I do get about 13 FM stations in analog FM mode from the scan. Some of those stations I pick up in analog mode are also broadcasting in HD, but the FM HD mode does not pick up any stations at all.
Thanks for the detailed test. We have just pushed v1.5.0.
The FM / HD mode now scans analog FM carriers first, then probes the detected FM frequencies for HD Radio. The Web UI also shows live backend progress during the scan, so it should no longer look stuck while HD probing continues.
Could you please pull the latest version and try again?
cd Digital-Radio-for-Raspberry-Pi
git pull
sudo systemctl restart raspiaudio-radio.service
If HD Radio still does not find stations, please send us the logs from a fresh FM / HD scan:
sudo journalctl -u raspiaudio-radio.service -f
Then start an FM / HD scan from the Web UI and copy the lines around the scan and HD probe steps.
We are based in Europe and do not have local over-the-air HD Radio signals, so your US logs are very useful to tune the lock logic against real broadcasts.