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




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

About: Arduino Tutorials by 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!

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

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




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!


  • Magnets Challenge

    Magnets Challenge
  • Raspberry Pi Contest 2020

    Raspberry Pi Contest 2020
  • Wearables Contest

    Wearables Contest

8 Discussions


5 months 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 .

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 year ago

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


1 year ago

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


2 years ago


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

Any sugestions?



Reply 2 years ago



3 years ago


is it possible to communicate with PC COM port?