SparkFun will be closed on Tuesday, November 5th to support our team in being able to go out and vote! Orders placed after 2 pm MT Monday, November 4th will ship on Wednesday, November 6th. Thanks for your patience and understanding.
Weather-band radio is an awesome service on the 162.4 to 162.55MHz band in the US, Canada and Bermuda that broadcasts normal and emergency weather information. It's a good way to get a weather report and a *great *way to stay informed during a severe weather emergency.
The Si4707 from Silicon Labs is a fully integrated weather-band radio with 1050Hz detection (the tone used to indicate a watch or warning). It's also the first in the industry to incorporate a SAME processor. SAME (Specific Area Message Encoding) allows the device to listen only for a certain kind of warning or statement.
This breakout board makes it easy to integrate the Si4707 into your next project! Simply provide 3.3V and plug a speaker or headphones into the on-board 3.5mm audio jack.
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
We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.
No reviews yet.
Too bad they can't find another chip that does something like this. A raspberry pi zero plus something like this would be hella cool.
Will this work using SparkFun Pro Micro 3.3? I connected as follows: pin 2 (SDA, on SF Pro Micro) to SDIO (Si4707) pin 3 (SCL) to SCLK pin 4 to RST I provided regulated 3.3V. I get the error msg "Didn't connect to an Si4707...Error: 0" and not the 7 that I should get. I note that the RedBoard is 16 MHz, whereas SF Pro Micro 3.3 is 8 Mhz. With power, I don't hear anything with headphones.
I've been able to run the Si4707 with both 8 and 16 MHz processors.
Hey I'm having the same problem. Were you able to get it working?
I fixed it. Look in the arduino code.
The pins you will need to connect are: SEN - D5, RST - D4, SDIO - A4, SCLK - A5, in addition to your power and ground.
I also removed the Pull-ups and the 2k resistors from the board.
Were the 2K input resistor such a good idea on the data pins? When driven low, the voltage delivered to the pin (with the 4.7K pullup) is 0.299 * VIO, while the spec for the chip says it needs a Vlow of 0.3 * VIO... Seems to be cutting it close.
Still trouble shooting why no I2C comm on mine. Time to bust out with a soldering iron...
+1, Thanks for the hint. Just wanted to chime in on this. I had issues with communication with this breakout board, after removing the pull-ups and replacing the input resisters on both the SDA and SCK lines with shorts (solder jumper), this board worked like a charm.
Awhile back I sent you guys an email about making a breakout board for this. It is wicked rough to find any stock of that IC. This is a most excellent news.
huh, Digikey has sold it for at least a year.
wow bro I never thought I would see this.... Time for us to get to work now ... :)
Just wanted to confirm: is it proper to connect the data pins directly to 5v arduino data pins, even though the board itself is pwoered at 3.3v? Please advise.
So even though this board is powered at 3.3v, it's OK to connect the data pins to the 5v arduino data pins? I realize the sparkfun build instructions indicate that's how to do it, but I just wanted to be sure. Please advise.
I have been trouble shooting connection problems with this board.
I get the error msg “Didn’t connect to an Si4707…Error: 0”
I am connecting it to an UNO. I have read in a couple of different places where people have removed the resistors connected to the SDIO and SCLK and that fixed the communication problem? Can anyone shed any light on this?
Is there any chance that Sparkfun could start carrying the Si4707 chip by itself?
Digikey has some in stock.
I should have RTFQ before commenting - - - silly me
In a future product could you consider expanding the usability by upgrading to the SI4737-------40 chip to include AM/FM reception.
Si4737 will provide the WB frequencies, but will not decode the SAME messages. Si4707 is only one that will do that by itself.
Looking at hooking this up with Beaglebone Black. Anyone interested in figuring this out with me?
Python videos and files are up on my website for Si4707 operation. All info revolves around my product, but it should work with this device as well.
www.aiwindustries.com
I should have python ready to do this shortly for my version of this breakout. It should most likely work with this unit as well. Once I have it done I'll share the info on my site.
Will BNC Connector - Right Angle PRT-10550 fit J4 for the external antenna hook up on this board?
Found an error on the board, when you cut and jumper sj2 for an external antenna the ground to the headphone jack is left floating. Running a jumper from the headphone ground to a ground near by fixes the problem. Had to remove the voltage dividers on all the i/o lines to use this on a system that has 3.3v i/o pins.
BBB....I'm using a right angle nearson antenna PN: L181-150R with my BNC connection on my Si4707 board. It's different in shape than this board but same setup. These are about $12. I've also used many of telescoping vhf antennas as well with same results.
Basildane.....The interrupt usage is a little tricky. Once you program which states you want the interrupt to trigger on you'll need to use the status byte information to tell the arduino what to do. If status says that the SAMEINT was triggered then you'll need to query the SAME status. If the byte says start of message bit is set then unmute radio. once the same status states that the EOM bit was set then read the SAME message out of the buffer, clear the buffer and then tell arduino to mute the radio again. Mine is on all the time so I only use the EOM to tell the arduino to process the buffer information and then I store it in a String for screen scrolling.
I've used the 4707 to integrate with a GPS module as well for signal strength tracking. Drive around and data log lat/lon/rssi and overlay on a google map using gps visualizer.
Could you post an example sketch using the SAME read and SAME clear functions on your site? All I'm getting for the status byte is 0xFF - I thought a logic HI indicated data was present. I have this break out board connected to the Arduino Uno R3.
Have you tried the example code listed above that sparkfun posted on GitHub? Are you getting the right status messages after powerup, etc. (0x80)?
Yes - I have successfully used the code on GitHub from sparkfun. I also have the code you posted on Dangerous Prototypes, adding the two methods you posted to get SAME message and clear SAME message. This is what I am currently using. With your source, I do get 0x80 after power up. I did have to change the address define (#define ADDRESS_IC B0010001) to what I was using for the sparkfun source (#define ADDRESS_IC B1100011). I set up a menu in the loop() function where I can call chkStatus() - this is where it returns Status Bit: FF, 11111111.
Hardware-wise, I do not have anything connected to GP01, GP02, or SEN on the Sparkfun breakout board.
I have things in place for the weekly test today - should know more after 11:00 AM.
Update: During the weekly test today, I got a message length of 152, but no message was displayed.
link to Si Labs webpage. Programming and other useful information contained in application note section under the documentation tab.
http://www.silabs.com/products/audiovideo/amfmreceivers/Pages/Si4707.aspx
posted code to read and clear SAME buffer here:
http://dangerousprototypes.com/forum/viewtopic.php?f=19&t=2361&p=51691#p51691
Thanks! I forked the sparkfun repo.. and updated the demo code. It will print out any SAME messages to the console as received. Also added a copule of indicator lights.
Pin 13 = SAME message being recieved Pin 9 = Tuned to WB channel
https://github.com/tomn46037/Si4707_Breakout
Thanks very much for this code Tom, it works very well for me including the weekly tests.
I am now trying to modify the code so that it only responds (via LED or speaker tone) to tornado warnings (ie TOR within the SAME code).
Please could someone point me in the right direction for parsing the SAME message so that it reacts only to this code ? thanks!
Try the Si4707 zipped library and example sketch located here: http://www.raydees.com/Weather_Radio.html It parses the message out for you on the screen so you should be able to modify the sketch within the function that prints out the parsed message to the screen:
if (sameEventName[0] == 'T' && sameEventName[1] == 'O' && sameEventName[2] == 'R') { //do this function that performs something for so long/so many times/unmute/turn on a light/etc...... }
can't get clear buffer function to paste....
see below...
Has anyone gotten this chip to tune outside the weather band? Specifically, 161.975 MHz and 162.025 MHz.
Update to my last post. I received a call from SiLabs a few minutes ago. The Si4707 is a wideband receiver by nature so it does have the capability to reach the band in question. However, it would require a patch update to the firmware. This can be done, but purchase quantities would have to reach into the 100's of thousands in order to eliminate the NRE charge of $20K-30K from SiLabs to design the patch.
I spoke with SiLabs and they do not have any receivers IC's that will tune to this band.
Great code you have so far. One thing I haven't figured out yet is how are you handling the start-of-message interrupt, and EOM interrupt, and further, auto muting the audio in between alerts and such?
P.S. I am planning to integrate this into my home PBX soon. Currently using off-the-shelf receiver with no serial out.
looky here DP has some code... http://dangerousprototypes.com/forum/viewtopic.php?f=19&t=2361&hilit=Si4707&start=75#p43276
What is recommended for an antenna on this?
Depends on how you want to mount the antenna.
2 wires 17.25" long, one in GND and the other in ANT, oriented vertically (one up the other down), will probably be the cheapest, easiest, quite effective, but might be a bit unwieldy and inconvenient when you add connections to your microcontroller.
If you want a commercial antenna of some sort, a 2m ham antenna will probably work well.
Get an RF shielded box and use this file to test... http://commons.wikimedia.org/wiki/File:NOAA_Weather_Radio_MKE-KEC60_Weekly_Test.ogg I dont know if the quality is high enough to make it work but its a start but also they do a weekly test...
Same codes are listed here... http://www.nws.noaa.gov/om/dissemination/eas_codes.shtml http://www.nws.noaa.gov/nwr/nwrwarn.htm#B http://www.nws.noaa.gov/nwr/CntyCov/nwrTN.htm
I am really wanting to see if we could not implement this on a local repeater ...
oops here is the US list http://www.nws.noaa.gov/nwr/indexnw.htm
// Prints the status value of the SAME status command // Work still do be done on this function. (Haven't had a WSW recently!)
Please keep on top of this... I used skype and a midland weather radio to skype me when there was a warning and I would like to integrate this with a raspberry pi to use linphone to call my cell and give me audio or make an astrisk/google voice # to call and get the weather from a pi
Good job Sparkfun... Ive been waiting for this. The si4707 is tough to get a hold of unless one wamts to tear apart the Midland WR-120. Thanks.
I've been fiddling to make this capability for myself for a long time. Never got it finished, of course. I picture it attached to an app that would respond only to selected SAME region codes and pop up a web page that aggregates relevant information. Useful for Ham radio people and weather spotters and anyone interested in such things.
Can I tune the aircraft band?
The datasheet and description both say 162.xxx Mhz, which is outside of the aircraft band, however, even if you could get it to tune there, you still wouldn't hear anything because aircraft band isn't on FM, it's on AM, so yeah - double negative to aircraft band reception.
(-)x(-)= (+)......
:-)
Schematic link is broken "http://si4707-breakout-v11.pdf/"
unbroken now