Si4703 FM Radio Receiver Hookup Guide

Pages
Contributors: Toni_K
Favorited Favorite 5

Hooking Up to an Arduino

Note: This example assumes you are using the latest version of the Arduino IDE on your desktop. If this is your first time using Arduino, please review our tutorial on installing the Arduino IDE. If you have not previously installed an Arduino library, please check out our installation guide.

First, you will need to prepare both the Si4703 board and the Arduino Pro Mini. Solder on the male headers to both boards. You will need headers on both the FTDI header, as well as the pins that you will be connecting to the Si4703.

Pin Connections

Once you have headers soldered, you will need to use the jumper wires to connect between the Si4703 and the Pro Mini. Remember, we are using a 3.3V Pro Mini to prevent damage to the logic on the Si4703.

Si4703 → 3.3V Pro Mini

  • GND → GND
  • 3.3V → VCC
  • SDIO → A4
  • SCLK → A5
  • RST → D2
  • GPIO2 → D3

You will then also need to hook up the Pro Mini to the FTDI board, and connect to your computer over USB.

Installing the Library

Now that the hardware is hooked up and connected, it's time to prepare to upload code. First you need to install the Arduino library into the IDE. If you are unaware how to do this, please check out our tutorial here. You can download the code here.

Once the library is properly installed, please open up the example sketch labeled "Si4703_Radio_Test". Make sure you select the "Arduino Pro or Pro Mini (3.3V, 8MHz) w/ ATMega328" under the "Tools -> Boards" heading. Select the proper COM port for your FTDI device under "Tools -> Serial Port". Upload the sketch to the board.

Once you have it uploaded, open up your Serial terminal (either through the Arduino IDE or your favorite terminal program). Open the connection with the settings 9600bps, 8, N, 1, and you should see the following displayed on the terminal.

Terminal prompt

You can then choose from any of the options listed. If you initially send the board option "a", you should see the following displayed back.

Favorite Station

These favorite stations are pre-determined in the sketch, so feel free to change those to your own favorite stations if you would like.

else if (ch == 'a')
{
  channel = 930; // Rock FM
  radio.setChannel(channel);
  displayInfo();
}
else if (ch == 'b')
{
  channel = 974; // BBC R4
  radio.setChannel(channel);
  displayInfo();
}

Keep in mind you will need to upload the code to the board again to update to the new stations. You can then direct the tuning either up or down, and control the volume of the board. For example, to tune to station 95.7 FM here in Boulder, I sent the commands: u, u, +, +, +, +, +, +, +, +, +, +, +, +, +, u, u, u, u, u, u. This results in the following in the serial terminal.

Tuned Radio Station

For this example, I am using my headphone wire as the anntena. Because of this, I was not necessarily able to receive stations that I often can when I'm not using a headphone wire as an antenna while connected to my computer (EMI is so much fun!). Play around with moving around or using different headphone wires and see how radio reception can change.