Arduino RDA5807M FM Receiver

Last Updated on March 16, 2024

FM Radio receiver project by using RDA5807M and Arduino microcontroller board. You may built FM or Radio receivers by using radio tuner components and it requires lot of efforts to built accurate radio receiver. Here is the simple and easy to built fm radio receiver module made by RDA microelectronics used to receive FM signals. You can tune and control this module by using microcontrollers I2C line and of course it is Arduino friendly.




The RDA 5807M is single chip broadcast FM stereo Radio tuner with fully integrated synthesizer, IF (Intermediate Frequency) selectivity, RDS/RBDS and mpx decoder. This module has powerful low-IF digital audio processor, hence we can connect headphones directly, if you need huge sound then use Audio amplifier circuit. The RDA5807M series support world wide FM band 50MHz to 115MHz.

RDA5807M Module Pin Configuration

Operating Voltage of this module is 3.3V and supports 32.768KHz crystal oscillator, whole operation of this module can be controlled by I2C lines.

Arduino RDA5807M Interfacing

RDA5807M module has few external connecting terminals and it can be easily interfaced with Arduino. FM Receiver module’s Vcc pin is connected with 3.3V power pin of Arduino, SDA (Serial Data Line) is connected with A4 (SDA) and SCL (Serial Clock Line) is connected with A5 (SCL) pin. 1 feet single stand wire can react as Antenna. Rout (Right audio out), Lout (Left audio out) of RDA5807M module is connected with 3.5mm audio jack female connector, then common GND is connected to Arduino GND pin.

Use the following RDA 5807M Arduino Library created by Matthias Hertel (http://mathertel.blogspot.in)after wiring .

https://github.com/mathertel/Radio/archive/master.zip

Arduino RDA5807M Code

 

/*
/// \author Matthias Hertel, http://www.mathertel.de
/// \copyright Copyright (c) 2014 by Matthias Hertel.\n
/// This work is licensed under a BSD style license. See http://www.mathertel.de/License.aspx
/// More documentation and source code is available at http://www.mathertel.de
ArduinoExample code for RDA5807M Arduino FM receiver.
Compiled&Tested by Riyaz
*/

#include <Arduino.h>
#include <Wire.h>
#include <radio.h>
#include <RDA5807M.h>
#define FIX_BAND     RADIO_BAND_FM    //Radio Band -FM
#define FIX_STATION  10050            //Station Tuned = 100.50 MHz.
#define FIX_VOLUME   5               //Audio Volume Level 5.

RDA5807M radio;    

void setup() {
 
  Serial.begin(57600);
  Serial.println("FM Radio");
  delay(200);

  
  radio.init();

  
  radio.debugEnable();

  
  radio.setBandFrequency(FIX_BAND, FIX_STATION);
  radio.setVolume(FIX_VOLUME);
  radio.setMono(false);
  radio.setMute(false);
} 



void loop() {
  char s[12];
  radio.formatFrequency(s, sizeof(s));
  Serial.print("Station:"); 
  Serial.println(s);
  
  Serial.print("Radio:"); 
  radio.debugRadioInfo();
  
  Serial.print("Audio:"); 
  radio.debugAudioInfo();

  delay(3000);
} 







Arduino RDA5807M Circuit Diagram

RDA5807M Datasheet

4 thoughts on “Arduino RDA5807M FM Receiver

  1. I have tried to use other frequencies but the only one that tunes is : #define FIX_STATION 10050 //Station Tuned = 100.50 MHz.
    I have changed to the strongest stations in the area. For example #define FIX_STATION 10770 //Station Tuned = 107.70 MHz. with No success. I have run other sketches and still just the one frequency tunes. Do these FM radio chips come programmed to one frequency only?

    1. Hello My Friend, frequence is not fix, i tried a known station on 9360 in code, which is 93.60MHz and it works fine.

  2. Funciona muito bem, verifique se colocou os resistores pullup de 4k7 no sda e scl, se não colocar conforme o Arduino utilizado não troca informações

    ~ English…
    It works very well, check if you put the 4k7 pullup resistors in the sda ​​and scl, if you don’t put it according to the Arduino used, it doesn’t exchange information

Leave a Reply

Your email address will not be published. Required fields are marked *