This library provides a convenient interface to the RDA5807 FM radio chip from RDA Microelectronics. It targets the Raspberry Pi Pico and similar RP2040 based boards using the C/C++ SDK.
Main controls:
- FM band (87-108 / 76-91 / 50-76 MHz)
- channel spacing and de-emphasis
- seek sensitivity
- volume
- softmute (mutes noisy frequencies)
- mono / stereo output
- bass-boost
Features:
- tune / seek the next station without blocking the CPU
- monitor signal strength and stereo signal
- RDS - decode station name, radio-text, and alternative frequencies
A test program is included. To interact with it, establish a serial connection through USB or UART.
RDA5807 - test program
======================
- = Volume down / up
1-9 Station presets
{ } Frequency down / up
[ ] Seek down / up
< Reduce seek threshold
> Increase seek threshold
0 Toggle mute
f Toggle softmute
m Toggle mono
b Toggle bass boost
i Print station info
r Print RDS info
x Power down
Follow the instructions in Getting started with Raspberry Pi Pico to setup your build environment. Then:
- clone repo
mkdir build
,cd build
,cmake ../
,make
- copy
fm_example.uf2
to Raspberry Pico
Communication is done through I2C. The default pins are:
RDA5807 pin | Raspberry Pi Pico pin |
---|---|
SDA | GP4 |
SCL | GP5 |
When powering the FM chip straight from Pico 3v3 OUT there is a fair amount of noise, so a separate power supply is recommended.
pico_si470x is a similar library for the Si4702 / Si4703 FM radio chips.
Valentin Milea [email protected]