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

37,243

61

10

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

About: Arduino Tutorials by Codebender.cc Team

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!

2 People Made This Project!

Recommendations

  • Clocks Speed Challenge

    Clocks Speed Challenge
  • Toys & Games Contest

    Toys & Games Contest
  • Big vs Small Challenge

    Big vs Small Challenge

10 Comments

0
Kostya456456
Kostya456456

Question 4 weeks ago

I can't load the sketch on my Arduino Leonardo, because the code is too old.

0
whogarden
whogarden

5 months ago

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.

0
4711engel1
4711engel1

1 year ago

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.

1
pkuvar
pkuvar

2 years ago

Hi, I would like to tune receiver to 144-146 MHz FM frequency, please suggest the module & code

1
pkuvar
pkuvar

2 years ago

Hi, I would like to tune receiver to 144-146 MHz FM frequency, please suggest the module & code

0
RafałG4
RafałG4

3 years ago

Hi.

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

Any sugestions?

Thanks.

0
20000leghe
20000leghe

Reply 3 years ago

THANKS

0
abbasshokr
abbasshokr

5 years ago

hi

is it possible to communicate with PC COM port?