For many of us, the construction of a classic FM radio was one of the very first projects we took on when getting started with DIY electronics. And for good reason. Radio waves are fascinating, they’re everywhere, and they’re free! Radio brings all kinds of information and entertainment—including music, news, and sports—to people all over the world. It remains an extremely popular medium for content delivery, and it doesn’t even require an Internet connection. The ScoutMakes FM Radio Kit provides an engaging exploration of Frequency Modulation (FM) radio. And, thanks to BLE, you can control it from across the room.

To build an FM radio receiver, you would typically need several components, including resistors, capacitors, transistors, and an amplifier. But thanks to advancements technology, there are now several single-chip, integrated-circuit (IC) receivers on the market. To make our FM Radio Kit as accessible and easy-to-use as possible, we chose one such chip—the RDA5807M, which is broadcast FM stereo tuner with a fully integrated synthesizer and a powerful low-IF digital audio processor—and we baked it into a PCB that complies with the Feather and STEMMA standards. That chip is programmable by way a CircuitPython library.

The ScoutMakes FM Radio Kit can also receive and process Radio Data Service (RDS) content. RDS is a communications protocol for embedding small amounts of digital data within conventional FM radio broadcasts. Examples include the time, the station identification, and programming information. (If you have a modern car stereo, you’ve probably seen RDS used to display the name of the song that is playing.)

Open Source Hardware Association (OSHWA) certified

Features

  • Open hardware & open source software
  • RDA5807M single-chip FM receiver
  • nRF52840 based ScoutMakes Azul control board
  • CircuitPython out of box examples
  • Controllable over BLE using an iOS or Android app
  • Portable and powered by a rechargeable, LiPo battery
  • High-quality stereo audio output
  • Built-in volume and bass control
  • Received signal strength indicator (RSSI) information
  • Station scanning and presets are supported in code
  • Radio Data Service (RDS) information available for display
  • Adafruit CircuitPython library
  • User-assignable push-buttons for control
  • 3.5 mm audio jack

Unwrap the ball and lay out the various kit components. The provided USB cable will be used to program the Azul and can also be used to charge the Lithium Polymer battery. The Azul has the battery charging circuitry built in.

 Place and solder the headers on the Azul bluetooth board.

*** IT IS VERY IMPORTANT THAT YOU PAY ATTENTION TO THE ORIENTATION OF THE HEADERS ON THE AZUL BLUETOOTH BOARD. THE LONG SIDE OF THE HEADERS MUST BE UNDER THE BOARD ***

Place and solder the headers on the FM board.

*** IT IS VERY IMPORTANT THAT YOU PAY ATTENTION TO THE ORIENTATION OF THE HEADERS ON THE FM BOARD.
THE LONG SIDE OF THE HEADERS MUST BE ON TOP OF THE BOARD ***

Unfurl and solder the antenna wire on the antenna header hole on the FM board.

Connect the headphones on to the FM board.

Connect the Azul Bluetooth board to the FM board as shown in the picture. Ensure the headers line up correctly before pressing the 2 boards together.

The battery can be tucked in between the 2 boards.

Once the assembly is complete, power on the boards by sliding the ON/OFF switch to the ON position. LEDs on the Azul will come on indicating power.

By default, the FM kit will have a FM demo program loaded. This will tune to FM 99.5 MHz. If this is not a suitable channel for your area, you can scan for other stations by hitting the 1 button on the FM board.

Here is a great resource for finding FM radio stations in your area in the US

FM radio channel locator

By default, here are the button assignments on the FM board:

Button number Function
1 seek Up
2 seek Down
3 Mute Audio
4 Preset Up
5 Volume Up
6 Volume Down

Modify the code

Our favorite code editor is Mu

In order to modify the code, simply connect the supplied USB cable to the Azul and Azul will show up as a drive on your computer as CIRCUITPY.

You can then load the code.py file onto your Mu editor to modify the program (click the Load button on the Mu menu and navigate to the Azul drive in your PC).

You can also view a user menu on the Mu serial console to further play with the various functions of the kit. 
Press cntrl+C followed by cntrl+D to restart to show the menu.

Bluetooth Control

The Azul FM radio kit comes with a test program already loaded. So, when the slide switch is flipped to the ON position, the OLED screen will show the default frequency of 99.5 MHz.

Connect to the FM radio using the Adafruit Bluefruit Connect app available in Android or iOS.

Below are the steps 1-4 to connect to the FM radio via the app. Click on each highlighted button with the system powered on.

This guide was first published on Apr 13, 2021. It was last updated on Mar 23, 2021.