[tutorial] How to use the Si4703 FM Radio board (+RDS)



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!

What you will need


For this tutorial you will need:

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

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

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



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.

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.