Overview
The RDA5807M (and variants RDA5807FP, RDA5807NN) is a single-chip CMOS stereo FM broadcast radio receiver IC manufactured by RDA Microelectronics. Sold as an ultra-compact 10-pin RRD-102 breakout module, it tunes FM radio frequencies from 50 MHz to 108 MHz (covering US, European, and Japanese FM broadcast bands).
Integrating a fully digital synthesizer, IF selectivity, digital automatic gain control (AGC), RDS/RBDS radio text demodulator, programmable bass boost, and internal clock driver, the RDA5807M outputs analog stereo audio capable of directly driving headphones or audio power amplifiers over an bus. It is widely used in DIY FM radio receivers, alarm clocks, and retro boombox projects.
Quick reference
Operating voltage (VCC) | 2.7 V to 3.6 V DC (3.3 V nominal) |
| Interface | (up to 400 kHz) |
| Direct Register Address | 0x11 (Random access register mode) |
| Sequential Register Address | 0x10 (Legacy TEA5767 backward compatibility mode) |
| FM frequency range | 50.0 MHz to 108.0 MHz (Worldwide FM) |
| Channel spacing | 25 kHz, 50 kHz, 100 kHz, or 200 kHz |
| Audio features | Stereo/Mono mode, Digital Volume (0–15), Bass Boost, Mute |
| Data decoding | Integrated RDS / RBDS (Radio Data System text & station ID) |
| Direct headphone drive | Onboard driver outputs headphone audio |
Pinout (RRD-102 Module 10-Pin Header)
┌───────────────────┐
│ [RDA5807M IC] │
│ [32.768kHz XTAL] │
└─┬─┬─┬─┬─┬─┬─┬─┬─┬─┘
1 2 3 4 5 6 7 8 9 10
| Pin | Name | Type | Description |
|---|---|---|---|
| 1 | SDA | Digital Input / Output | Serial Data |
| 2 | SCL | Digital Input | Serial Clock |
| 3 | GND | Power | Ground reference (0 V) |
| 4 | NC | Unused | No connection |
| 5 | VCC | Power | Power supply input (+2.7 V to +3.6 V DC) |
| 6 | GND | Power | Ground reference (0 V) |
| 7 | ROUT | Analog Output | Right channel audio output |
| 8 | LOUT | Analog Output | Left channel audio output |
| 9 | GND | Power | Audio ground reference |
| 10 | ANT | Analog Input | FM Antenna connection (connect a 75 cm wire antenna) |
Specifications
| Parameter | Symbol | Min | Typ | Max | Unit | Conditions |
|---|---|---|---|---|---|---|
| Supply Voltage | 2.7 | 3.3 | 3.6 | V | DC | |
| Active Supply Current | — | 20 | 25 | mA | , volume max | |
| Power-Down Current | — | 5 | 15 | µA | Shutdown mode | |
| Sensitivity | — | 1.5 | 2.0 | µV | ||
| Audio Output Voltage | — | 100 | 150 | mV RMS | load | |
| Channel Separation | 30 | 35 | — | dB | Stereo separation | |
| Signal-to-Noise Ratio | 55 | 60 | — | dB | Measured across 50–108 MHz |
Register Access Modes
The RDA5807M supports two distinct communication modes:
- Direct Mode (
0x11Address): Allows reading and writing specific 16-bit registers (such as0x02for basic control,0x03for frequency channel tune,0x05for volume and bass boost). - Sequential Mode (
0x10Address): Backward compatible with the legacy TEA5767 FM chip. Writes start at Register0x02and automatically increment.
Frequency Calculation (Channel Register 0x03)
For standard US/European tuning (, ):
Wiring
| RDA5807 Pin | → | Arduino Uno | ESP32 | Notes |
|---|---|---|---|---|
5 (VCC) | 3.3V | 3.3V | Do not connect to 5V | |
3, 6, 9 (GND) | GND | GND | Shared system ground | |
1 (SDA) | A4 | GPIO 21 | Data | |
2 (SCL) | A5 | GPIO 22 | Clock | |
10 (ANT) | 75 cm Wire | 75 cm Wire | Extend 1/4 wavelength wire antenna | |
7, 8 (ROUT/LOUT) | 3.5mm Headphone Jack / PAM8403 Amp Input | Audio output pins |
Example (Arduino Radio Library)
#include <Wire.h>
#include <radio.h>
#include <RDA5807M.h>
#define FIX_BAND RADIO_BAND_FM
#define FIX_STATION 10150 // 101.5 MHz FM
RDA5807M radio;
void setup() {
Serial.begin(9600);
Wire.begin();
Serial.println("Initializing RDA5807M FM Radio...");
if (!radio.initWire(Wire)) {
Serial.println("RDA5807M not responding!");
while(1);
}
radio.setBand(FIX_BAND);
radio.setFrequency(FIX_STATION);
radio.setVolume(10); // 0 to 15
radio.setMono(false); // Enable Stereo
radio.setBassBoost(true); // Enable Bass Boost
Serial.print("Tuned to "); Serial.print(FIX_STATION / 100.0); Serial.println(" MHz FM");
}
void loop() {
// Read RDS Radio Text if available
char buffer[32];
radio.formatFrequency(buffer, sizeof(buffer));
delay(2000);
}
Common mistakes
- Connecting
VCCto 5V: The maximum supply rating is 3.6V. Supplying 5V destroys the chip. - Forgetting an antenna wire: Operating without an antenna wire on pin 10 results in heavy static noise and inability to lock onto FM stations. Connect a (~30 inch) length of insulated copper wire.
Notes
- RDA5807 vs TEA5767 vs SI4703: RDA5807 is cheaper, includes integrated RDS decoding, and directly drives headphones without needing external op-amps.
Assets & downloads
- datasheetdatasheet
- product-pagereference