Page 1 of 5
Si4703 FM Radio Receiver Hookup Guide
Introduction
This breakout board enables you to tune in to FM radio stations, using the
Si4703 FM tuner chip from Silicon Laboratories. This IC also works well for
filter and carrier detection, and enables data such as the station ID and
song name to be displayed to the user.
Required Materials
You will need the following materials to work on this project.
Si4703 Hook-Up Guide SparkFun Wish List
Jumper Wires Premium 6" F/F Pack of 10
PRT-08430
This is a SparkFun exclusive! These are 155mm long jumpers with fe…
Break Away Male Headers - Right Angle
PRT-00553
A row of right angle male headers - break to fit. 40 pins that can be cu…
SparkFun FTDI Basic Breakout - 3.3V
DEV-09873
This is the newest revision of our [FTDI Basic](http://www.sparkfun.co…
Arduino Pro Mini 328 - 3.3V/8MHz
DEV-11114
It's blue! It's thin! It's the Arduino Pro Mini! SparkFun's minimal design…
Keep in mind you will also need standard soldering materials to complete
this tutorial, as well as either a set of speakers or headphones with a
3.5mm jack to plug into the Si4703 board.
Suggested Reading
If you aren’t familiar with any of the concepts below, check out these links
Page 2 of 5
and get caught up before moving ahead with the Si4703.
•
•
•
•
•
•
•
Using the Arduino Pro Mini 3.3V
Installing an Arduino Library
How to Power Your Project
Serial Communication
Serial Terminal Basics
Working with Wire
Using GitHub to Share with SparkFun
Hardware Overview
The Si4703 Breakout Board breaks out multiple pins from the IC. For the
power bus, the 3.3V and GND pins are broken out. Keep in mind that while
the IC is tolerant up to 5V, the communication pins are only 3.3V tolerant,
and therefore should only be used in 3.3V systems. If you need to use this
in a 5V system, check out our tutorial on using logic level converters.
Underside of breakout board showing pin labels
For communication, the breakout board provides access to SDIO and
SCLK for I2C communication. The RST pin is also broken out for ease of
resetting the module.
SEN is also broken out, and enables the user to change the mode of
functionality of the IC. SEN is pulled high on the breakout board to enable
I2C communication as mentioned previously. However, by changing the
state of SEN along with SDIO, you can change the mode of functionality
between a 3-wire interface and 2-wire interface.
Finally, the last two pins broken out are the GPIO1 and GPIO2 pins. These
can be used as general input/output pins, but also can be used for things
like the RDS ready, seeking or tuning functions.
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 and will therefore negate the need for an external antenna on
the board. If you are not planning on using either of these, you will need to
modify the board to add in an antenna.
Hooking Up to an Arduino
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
Page 3 of 5
Once you have headers soldered, you will need to use the jumper wires to
connect between the Si4703 and the Pro Min. 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
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.
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.
These favorite stations are pre-determined in the sketch, so feel free to
change those to your own favorite stations if you would like.
Page 4 of 5
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.
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.
Resources and Going Further
Going Further
Now that you have your FM Tuner up and tuned to your favorite stations,
you can start tweaking your circuit. You could add in a sensor to tune your
board for you, or have it set up on a timer with a clock. If you come up with
a really cool project or mod, let us know! We’d love to hear about it.
Additional Resources
If you have any feedback, please visit the comments or contact our
technical support team at TechSupport@sparkfun.com.
Check out these additional resources for more information and other project
ideas.
• Si4703 Datasheet
• TPA6111A2 Datasheet
• AN230 Programming Guide
Page 5 of 5
• AN243 Programming Guide
• GitHub Repository with up-to-date code and board files
https://learn.sparkfun.com/tutorials/si4703-fm-radio-receiver-hookup-guide?_ga=1.110826... 10/8/2015