Add Radio Stations reception to your Arduino projects using Grove – FM Receiver
This tutorial is sponspored by Seeed Studio, Thanks.
Products used: Seeeduino Nano (Arduino compatible board, similar to Nano)
Grove – FM Receiver
Seeed is the IoT hardware enabler providing services over 10 years that empower makers to realize their projects and products. Seeed offers a wide array of hardware platforms and sensor modules ready to be integrated with existing IoT platforms and one-stop PCB manufacturing and Prototype PCB Assembly. Seeed Studio provides a wide selection of electronic parts including Arduino, Raspberry Pi and many different development board platforms. Especially the Grove Sytsem help engineers and makers to avoid jumper wires problems. Seeed Studio has developed more than 280 Grove modules covering a wide range of applications that can fulfill a variety of needs.
Hello and welcome to another simple tutorial by SurtrTech, this one is about radio stations receiving using Grove FM Receiver, the module is straight forward, it needs only power and some speaker/headphones to function and of course a good radio reception, it spares you all the demodulations, amplifications, oscillator …. stuffs.
It’s based on one single chip SX6119 with a tuning range of 64 MHz to 108 MHz, and it has one button that can turn it On/Off, tunning and volume control. and it comes with a grove cable.
Grove – FM Receiver Seeed Wiki

Test 1
Well, the test 1 is straight forward, just power the module using some DC power source 3.3V to 5V which makes it compatible with most boards, hook up some speaker/headphones and it’s ready to tune (Check the video for the test).
No special wiring is required, and no single code is needed.
Test 2
Now, if you turn the module you’re going to notice D1 and D2 pins next to Vcc/GND ones, those pins will give you the possibility to control externally the On/Off and tuning button, unfortunately there’s no volume control ones.

And this is where the your board can intervene to control the radio as you want, add it to any project, like alarm clocks …. and basically any board that can generate a LOW level signal can control the module.
For our case I’ll be using Seeeduino Nano board, (if you don’t know how to install Seeeduino boards them check the video on this article), and you can of course use any Arduino compatible board with the following wiring and codes.
Wiring

The wiring is very simple 5V/Gnd to power the module, and D1/D2 just wired with digital pins, the buttons are also wired with Gnd/digital pins.
N.B: I’m using “INPUT_PULLUP” as pinMode for both push buttons, which means they are constantly on HIGH LEVEL and when I press the button it goes to LOW LEVEL, you can of course wire them with 5V/3.3V add some pull down resistors and set the pinMode as “INPUT”.
Code
P.S: I tried to read the buttons states and put it directly on D1/D2 (if the button is on High level –> High level will be on D1/D2 FM digital pins; same thing for low level), and so when I press it sends low level to the module to activate the function but it didn’t work !!
So in the code you’ll notice a function that deal with that.
And here you can download the code
Result
This is a small preview, you can of course turn On and Off the module using the “red button” and tune using “blue” one. Now it’s easy to integrate it in any projects.
Big thanks to SeeedStudio for their sponsorship.
Categories
Yassine View All
Automation and Electrical Engineer, Electronics amateur trying to share my little projects.