Creative Commons images are CC BY-NC-SA 3.0

Description: This is an evaluation board for the Silicon Laboratories Si4703 FM tuner chip. Beyond enabling you to tune in to FM radio stations, the Si4703 is also capable of detecting and processing both Radio Data Service (RDS) and Radio Broadcast Data Service (RBDS) information. The Si4703 even does a very good job of filtering and carrier detection. It also enables data such as the station ID and song name to be displayed to the user.

Using this board, you will be able to pick up multiple stations just as well as with a standard FM radio. The board breaks out all major pins and makes it easy to incorporate this great chip into your next radio project. The power bus, the 3.3V and GND pins are broken out For communication. The breakout provides access to SDIO and SCLK for I2C communication while RST can be used for easy resetting. The SEN pin enables the user to change the mode of functionality of the IC. The last two pins broken out are GPIO1 and GPIO2 which can be used as general input/output pins, but also can be used for things like the RDS ready, seeking or tuning functions.

Keep in mind, by plugging headphones into the 3.5mm audio jack, you effectively use the cable in your headphones as an antenna! Therefore, this board does not require an external antenna if using headphones or a 3.5mm audio cable longer than 3 feet.

Documents:

Recommended Products

Customer Comments

  • Could the board be powered by a lithium polymer battery by any chance? The datasheet for the chip itself says the max voltage is 5.5 volts for digital and analog supply, however the max for interface supply indicates 3.6 volts. That max is 0.1 volts under what a li-po battery provides. So will it fry the ic?

    • It’s not recommended. A better set up for you would be to use a 3.3V Pro Mini as the communication and power interface with this board, and then hook the lipo up to the Pro Mini, which will regulate the power properly.

  • Is it possible to bypass the amplifier? I have this board but want to integrate it with a bluetooth audio board so I’ll need to use a separate amp. I’d prefer to make use of this breakout board, since I have it lying around. Thanks!

    • You certainly could bypass the amp, but you’ll probably need to cut the traces to the amp and solder jumper wires onto the break out board. I’d recommend taking a look at the Eagle files to see where the best bet would be for cutting those traces. Keep in mind you’ll need to scrap away the solder mask on the traces to solder additional wires on there.

  • While not exactly the details of Shawn’s hack, I posted a link to some code with (I think) the same functionality that Shawn demonstrates in his video in a review I just posted.

  • The chip keeps getting struck in radio.init(). In example, it prints “init” in “setup()” function but does not go to “void loop ()” main program. Any suggestions to diagnose or known issue?

    • M-Short / last year / 1

      Make sure you have the board hooked up correctly, specifically the I2C lines as the pins change depending on the microcontroller. If you are still having problems try emailing techsupport@sparkfun.com.

  • Which Li-Po battery does Shawn recommend for the FM Stick?

    That’s a really cool little portable FM radio that I will be looking into building if my old house ever sells and I can spend money at Sparkfun again. After I get back from two weeks in Scotland with my wife, that is.

  • Where can I get that small rocker switch you use in the video?

  • OK, I’m guessing Shawn was listening to “Light my Fire” by the Doors.

    OH and PLEASE put the details of Shawn’s hack on line including the hookup with the two or three other boards he used and the source code.

  • Is the code for the FM Stick available?

  • Has anyone used this to decode time from a RDS signal?

    • I read that it’s actually quite rare for stations to transmit RDS time. Obviously, YMMV based on your location and your radio stations.

  • What if I wanted to use an external antenna?

    • If you wanted to do that you should look at https://www.sparkfun.com/products/11083 it breaks out the antenna pin. Based on the schimatic, I assume this board expects the headphone wire to be the antenna.

  • sorta off-topic, but whoa, that is one small LCD from that example video! Do you guys carry that LCD?

Customer Reviews

5 out of 5

Based on 4 ratings:

5 star
4
4 star
0
3 star
0
2 star
0
1 star
0

Works great!

This looked like a fun gadget to hook up to a raspberry pi. Was able to find example code online to get it started up quickly and now I just have to fine tune how I want it to work.


Works well!

It worked great on headphones, the only thing I would have liked is a tutorial on how to add your own antenna to this board. I’m using it on a Raspberry Pi and won’t be using headphones. I wrote a Node JS wrapper library to control it through i2c on a Raspberry Pi: https://www.npmjs.com/package/node-rpi-si4703


Si4703 FM with Micro OLED Display Review

I’ve been looking at this FM tuner board for a while and considering its use for adding FM capability to an old automotive AM tube radio (long story). One of the things I was looking into was how to display the frequency information without detracting from the look of the AM radio when the FM tuner is turned off. Shawn’s post using the Fio v3 and micro OLED display inspired me to recreate his project using an Arduino Pro 3.3V, 8 MHz (since I didn’t need the battery capability).

I integrated the SparkFun FM Tuner Evaluation Board and Micro OLED Breakout v1.0 with the Arduino Pro using the hookup guides for the 4703 and OLED display from the SparkFun site. I added a SPDT, center-off toggle switch to handle up/down inputs, and a SPST momentary pushbutton used to select the different control modes.

I placed the Arduino code for this in GitHub, with the Required library - Si4703_Breakout_Modified. From Shawn’s video, I think I have all of the functionality covered for the Fio device he demonstrated (minus the battery, of course). I also added a couple of modes of RDS display to the code as this was something I wanted for my car radio application.

To make the RDS work the way I wanted it to, I chose to modify the Si4703_Breakout Arduino library that the SparkFun hookup guide uses. I included the modified library, Si4703_Breakout_Modified, on GitHub as well. The changes are mostly around the readRDS routine, but I also made one of the private functions from the library into a public function so I could call it directly from my code.

I’ll post some pictures and possibly a video demonstrating how this thing works when I can get around to uploading them. The UI is different from Shawn’s demo, but again I was tailoring it to what I want in the car radio.

The Si4703 Board and the Micro OLED display Boards work beautifully! I plan to integrate the OLED display into all kinds of projects now that I’ve been able to play with one. As an aside, since I hooked up both boards in this project per the SparkFun online hookup guides, all of the demo code for each board will run on the combined assembly. This means that the Arduino code for this project can be easily modified to display an analog clock, mini-pong game, or rotating cube as a screensaver display instead of the RDS and frequency information I am currently displaying. Just a thought…


Best Find

I’m designing a Tophat for Halloween and I wanted a radio to play out it. This does the job. Next time I’ll make sure to buy a logic level converter so I don’t destroy the IC.


Related Tutorials

Si4703 FM Radio Receiver Hookup Guide

August 13, 2015

Add some tunes to your project with the Si4703 FM Radio Receiver Breakout.