Project tutorial
Simple FM Radio

Simple FM Radio © GPL3+

Simple FM radio based on RDA5807M module and Arduino Pro Mini 3.3V.

  • 27,863 views
  • 13 comments
  • 25 respects

Components and supplies

Necessary tools and machines

09507 01
Soldering iron (generic)

Apps and online services

About this project

Brief description

This project is about building a simple FM radio controlled by Arduino. Surfing the Internet, I have faced a great FM radio module, RDA5807 that supports RDS signal receiving. I have thought it is very god idea to play with this module and build my own FM radio that can have custom features. Furthermore, the radio can be powered by Li-ion rechargeable battery and equipped with a interesting USB charger.

The Nokia 5110 display, I believe, is a good choice for the radio because it is well-readable, easy to use, customizable and has low-power requirements that help increase the battery life.

The key features of this project are:

  • The Li-ion battery 18650 with USB charger is used to power the radio.
  • Graphical Nokia 5110 display is used that allow to create friendly user interface (not in the case).
  • The list of 4 previous stations is implemented to simplify navigation between the stations.
  • RDS information (station name) is displayed in the bottom of the screen.
  • The screen backlight is automatically adjusted.

The RDA5807 is a self-sufficient radio module. It implements 3.3V power source. To make the project simpler, the Arduino pro mini 3.3V controller is used to control the radio module. Internal voltage regulator guarantees the correct voltage on the radio module and the screen. To make the volume acceptable, the simple audio amplifier is implemented. The Li-ion battery powers the amplifier directly, without any regulator.

The U8GLIB graphic library is used to display the information on the Nokia screen. This library is fast, reliable, expandable and very convenient for many black and white displays. I have added some new Cyrillic font to the library, so please select the font you have in the sketch.

How to control the radio

Radio is controlled by rotary encoder. There are two modes the tuner can run: automatic mode and manual mode. By default, automatic mode is used. In this mode the radio module seeks the stations up or down when you rotate the encoder forward or backward. The station changes to the next one with the good signal level. You can set frequency by switching to the manual mode. Just press the encoder once to switch between the modes.

The last 4 stations list is saved in the EEPROM of Arduino each time you change the station. To save the life of the EEPROM, save procedure invokes in a minute after the station have been changed. So you can freely search the favorite station without saving anything in the EEPROM.

To list the last 4 stations, press the encoder for long time (about 2 seconds). Then you can rotate the encoder to select the station from the list. To switch to the station, press the encoder.

radio operations

Conclusion

The RDA5807 radio module is the great FM radio receiver that has very convenient libraries and implements interesting features. You need a long enough antenna in the case of long distance from the radio station. The sound quality is acceptable. You can use better audio amplifier, but the more powerful amplifier can short the battery life.

Code

The fm radio source code
There are two versions in the repository: full and lite (without backlight control and the station history). The full version have been tested on hardware, the lite version have been built from the source code, no testing performed.

Schematics

radio schematics
Fm radio sch

Comments

Similar projects you might like

Art Deco FM Radio Project Using Arduino

Project tutorial by Nick Koumaris

  • 4,162 views
  • 1 comment
  • 18 respects

FM Radio

Project tutorial by Patrick Müller

  • 33,868 views
  • 4 comments
  • 74 respects

Home Plant Watering System

Project tutorial by Alexander

  • 15,263 views
  • 2 comments
  • 42 respects

Arduino-Based Shower Cabin FM Radio

Project tutorial by Saulius Bandzevičius

  • 7,322 views
  • 2 comments
  • 28 respects

Simple Arduino Digital Clock Without RTC

Project in progress by Annlee Fores

  • 96,304 views
  • 23 comments
  • 80 respects

Simple Programmable Robotic Arm

Project showcase by Ryan Chan

  • 49,708 views
  • 65 comments
  • 145 respects
Add projectSign up / Login