This breakout for the Silicon Laboratories Si4703 FM tuner chip is a little more stripped down than our FM Tuner Evaluation Board. If your project already has an amp and just needs a full-featured FM tuner, this is the board for you. 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 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 we are 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.
This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.
Skill Level: Noob - Some basic soldering is required, but it is limited to a just a few pins, basic through-hole soldering, and couple (if any) polarized components. A basic soldering iron is all you should need.
See all skill levels
If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.
Skill Level: Rookie - You will need a better fundamental understand of what code is, and how it works. You will be using beginner-level software and development tools like Arduino. You will be dealing directly with code, but numerous examples and libraries are available. Sensors or shields will communicate with serial or TTL.
See all skill levels
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Noob - You don't need to reference a datasheet, but you will need to know basic power requirements.
See all skill levels
Based on 6 ratings:
2 of 3 found this helpful:
Your product when used with your supplied software is in violation of the Si4703 specifications:
The Si4702/03-C19 seek/tune performance may be affected by data activity on the SDIO bus when using the integrated internal oscillator. SDIO activity results from polling the tuner for status or communicating with other devices that share the SDIO bus. If there is SDIO bus activity while the Si4702/03-C19 is performing the seek/tune function, the crystal oscillator may experience jitter, which may result in mistunes and/or false stops. SDIO activity during all other operational states does not affect performance. For best seek/tune results, Silicon Laboratories recommends that all SDIO data traffic be suspended during Si4702/03-C19 seek and tune operations. This is achieved by keeping the bus quiet for all other devices on the bus, and delaying tuner polling until the tune or seek operation is complete. The STC (seek/tune complete) interrupt should be used instead of polling to determine when a seek/tune operation is complete.
excerpt from Sparkfun provided code:
//Wait for the si4703 to clear the STC as well
readRegisters(); if( (si4703_registers[STATUSRSSI] & (1<<STC)) == 0) break; //Tuning complete!
note that example code from siliabs does not violate the specification.
Sparkfun code can be made compliant with a hardware modification to use an external oscillator but the breakout board makes no allowance for this.
Teamed up with a 3.3 volt Arduino Pro Mini, a Nokia 5110 LCD display, a Rotary encoder, and an old TDA1517P amp module, the Si4703 Breakout Board made an awesome project I now use everyday.
Got it all running in one rainy weekend. Still some capabilities yet to be explored (RDS and RBDS). Makes for the type of radio project you can keep adding features to (date, time, alarm, etc...). Surprisingly great reception and sound quality. Very happy.
It'll be quite a while yet until I put all of the pieces together and start coding everything. I hope to be able to plug it in around March of next year.
This is a great breakout. Perhaps my project was a bit complicated for a beginner, but diving in is the best way to learn. I like having this option to breakout to a separate amp as opposed to the evaluation board. Please don’t stop manufacturing this board. It’d be nice to have an identical breakout for the Si4135 too.
I used it to build a stereo FM Receiver and it works from first try. It will be much better if there was SMA/RP-SMA/U.FL connector to connect FM antenna instead of the single hole which does not have a ground and not breadboard friendly.
See this video: https://youtu.be/a82DHU4T_aY
Circuit is using:
1 x SparkFun Breadboard Power Supply Stick - 5V/3.3V (https://www.sparkfun.com/products/13032)
2 x SparkFun Mono Audio Amp Breakout - TPA2005D1 (https://www.sparkfun.com/products/11044)
1 x SparkFun FM Tuner Basic Breakout - Si4703 (https://www.sparkfun.com/products/11083)
1 x Arduino Pro Mini 328 - 3.3V/8MHz (https://www.sparkfun.com/products/11114)
Connections and firmware are here: https://github.com/mkhuthir/repo_SDR/tree/master/Si4703
Works great for tuning and listening to radio stations - local stations picked up in mono with just a single piece of breakaway header soldered as an antenna (less than 1cm of metal). With a single 15cm segment of jumper wire, I can pick up perfectly clear stereo audio. Pretty much perfect!
However, the RDS implementation is hit or miss - to the point of sometimes being unusable. With static text it seems to do just fine, but there's something about the 'scrolling' type of text that just breaks it. Readouts come back filled with incorrect characters, and often seem to have remnants of previous readings still in place, leading to a jumbled mess.
I would also like to point out that the library is made up of poorly and inconsistently formatted code - I went digging to see if I could figure out what the board was doing and I had to spend 5 minutes cleaning the code up before I even wanted to look at it.
Another point off for the lack of feature documentation - pointing to a different board for the hookup guide, which just tells you to connect X on the board to Y on your Arduino. Why are we told to connect GPIO2? The code doesn't use that pin and neither does the library. I don't expect you to rewrite the documentation for the chip but at least a brief description of the pins you broke out would be nice. Took me searching through the chip's documentation to figure out what "SEN" was - it's serial enable. Useful? Who knows, but you broke it out and then left the end user to dig through pages of documentation.