How to Use the Si4703 FM Radio Board With RDS - Arduino Tutorial

50K6823

Intro: How to Use the Si4703 FM Radio Board With RDS - Arduino Tutorial

This is an evaluation board for the Silicon Laboratories Si4703 FM tuner chip. Beyond being a simple FM radio, the Si4703 is also capable of detecting and processing both Radio Data Service (RDS) and Radio Broadcast Data Service (RBDS) information.

The board does not have a built-in antenna on it. However, by using headphones or a 3 foot-long 3.5mm audio cable, the wires will function as an antenna!

In this tutorial you will learn how to use it with the Arduino uno board. We will control stations and read RDS messages through the serial monitor of Codebender.

So, let's get started!

STEP 1: What You Will Need

For this tutorial you will need:

  • Arduino uno
  • Breadboard (or breadboard shield)
  • Si4703 FM Board
  • Headphones

STEP 2: The Circuit

The connections are pretty easy, see the above image with the breadboard circuit schematic.

  • Si4703 3.3V pin to Arduino uno 3.3V
  • Si4703 GND pin to Arduino uno GND
  • Si4703 SDIO pin to Arduino uno pin A4
  • Si4703 SCLK pin to Arduino uno pin A5
  • Si4703 RST pin to Arduino uno pin 2

STEP 3: The Code

Here's the code, embedded using Codebender!

Try downloading the codebender plugin and clicking on the "Run on Arduino" button to program your Arduino board with this sketch. And that's it, you've programmed your Arduino with this sketch.

You can change or add favorite stations by clicking the "Edit" button and change the code below:

else if (ch == 'a') <--- By sending 'a'
{ channel = 930; <--- will go to station 93.0

radio.setChannel(channel);

displayInfo();

}

STEP 4: Testing

Press the "Connect" button to serial monitor below.

By default volume is set to 0. You can change the volume level by sending the "+" or "-" symbol. You can also combine commands. For example is you send "a+++++++++" will go to favorite station 'a' (93.0 set to code) and change the volume to 9.


STEP 5: Well Done!

You have successfully completed one more "How to" tutorial and you learned how to use the Si4703 FM radio module with the Arduino uno board.

I hope you liked this, let me know in the comments.

There will be more of them, so make sure to click Follow button!

10 Comments

I can't load the sketch on my Arduino Leonardo, because the code is too old.
Be carefull because the wiring with arduino UNO shown above is dangerous.
Don't use is because the uno sends 5volts signal (A4 A5) to a si4703 that can not accept a signal above 3.6V (VD + 0.3 V as described there https://www.silabs.com/documents/public/data-sheet...
I destroyed 2 si4703 boards before understanding the mistake....
You must use level adapters.
Good luck.
I have a problem which I cannot fix.
I use Arduino IDE 1.8.7 and the normal IDE serial monitor . After starting the sketch I get a print on the serial monitor:


Si4703_Breakout Test Sketch
===========================
a b Favourite stations
+ - Volume (max 15)
u d Seek up / down
r Listen for RDS Data (15 sec timeout)
Send me a command letter.

Then I tried to send "a+++" (I write a+++ into the empty input-box and press SEND) but nothing happens. No feedback on the serial monitor.

I tested the sketch steps with some "serial.print"-marks. I thing the problem is a wrong library Si4703_Breakout.h in my sketch. My library ist from GitHub Whiteneon/Si4703_FMRadio .


radio.powerOn();
radio.setVolume(0);
doesn't work and also radio.set...... and channel = radio. .....

Where do I get the right library?

Please send me an answer. I'm a starter with arduino and I need help.
Hi, I would like to tune receiver to 144-146 MHz FM frequency, please suggest the module & code
Hi, I would like to tune receiver to 144-146 MHz FM frequency, please suggest the module & code

Hi.

Radio works great with Arduino Mega - but I can't get RDS info.

Any sugestions?

Thanks.

hi

is it possible to communicate with PC COM port?