SparkFun Weather Band Receiver Breakout - Si4707

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.

  • Weather band support (162.4–162.55 MHz)
  • SAME processor
  • 1050 Hz alert tone detection
  • Frequency synthesizer with integrated VCO
  • WB digital tuning
  • Programmable reference clock

SparkFun Weather Band Receiver Breakout - Si4707 Product Help and Resources

Si4707 Hookup Guide

May 29, 2013

Instructions on hooking up to and communicating with the Si4707 Weather Band Radio Breakout using an Arduino.

Core Skill: Soldering

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.

1 Soldering

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


Core Skill: Programming

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.

2 Programming

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


Core Skill: Electrical Prototyping

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.

1 Electrical Prototyping

Skill Level: Noob - You don't need to reference a datasheet, but you will need to know basic power requirements.
See all skill levels


Comments

Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • Member #664716 / about 8 years ago / 2

    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.

  • Drepanis / about 10 years ago / 2

    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.

    • AIW / about 10 years ago / 1

      I've been able to run the Si4707 with both 8 and 16 MHz processors.

    • tails / about 10 years ago / 1

      Hey I'm having the same problem. Were you able to get it working?

      • W.Petefish / about 9 years ago * / 1

        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.

  • SrBIOS / about 11 years ago / 2

    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...

    • J.Carrier / about 10 years ago / 1

      +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.

  • Nashblackcat / about 11 years ago / 2

    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.

    • Member #256193 / about 11 years ago / 1

      huh, Digikey has sold it for at least a year.

    • unmanaged / about 11 years ago / 1

      wow bro I never thought I would see this.... Time for us to get to work now ... :)

  • Member #697408 / about 9 years ago / 1

    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.

  • Member #697408 / about 9 years ago / 1

    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.

  • Member #646720 / about 9 years ago / 1

    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?

  • tristanseifert / about 9 years ago / 1

    Is there any chance that Sparkfun could start carrying the Si4707 chip by itself?

  • 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.

    • AIW / about 11 years ago / 1

      Si4737 will provide the WB frequencies, but will not decode the SAME messages. Si4707 is only one that will do that by itself.

  • Member #465355 / about 11 years ago / 1

    Looking at hooking this up with Beaglebone Black. Anyone interested in figuring this out with me?

    • AIW / about 11 years ago / 1

      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

    • AIW / about 11 years ago / 1

      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.

  • Member #169916 / about 11 years ago / 1

    Will BNC Connector - Right Angle PRT-10550 fit J4 for the external antenna hook up on this board?

  • LarryV / about 11 years ago / 1

    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.

  • AIW / about 11 years ago / 1

    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.

    • Member #268609 / about 11 years ago / 1

      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.

      • AIW / about 11 years ago / 1

        Have you tried the example code listed above that sparkfun posted on GitHub? Are you getting the right status messages after powerup, etc. (0x80)?

        • Member #268609 / about 11 years ago * / 1

          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.

  • AIW / about 11 years ago / 1

    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

  • AIW / about 11 years ago / 1

    posted code to read and clear SAME buffer here:

    http://dangerousprototypes.com/forum/viewtopic.php?f=19&t=2361&p=51691#p51691

    • Tomn46037 / about 11 years ago / 1

      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

      • ozymandiz / about 10 years ago / 1

        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!

        • AIW / about 10 years ago * / 1

          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...... }

  • AIW / about 11 years ago * / 1

    can't get clear buffer function to paste....

  • AIW / about 11 years ago * / 1

    see below...

  • sycophantic / about 11 years ago / 1

    Has anyone gotten this chip to tune outside the weather band? Specifically, 161.975 MHz and 162.025 MHz.

    • AIW / about 11 years ago / 1

      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.

    • AIW / about 11 years ago / 1

      I spoke with SiLabs and they do not have any receivers IC's that will tune to this band.

  • Basildane / about 11 years ago / 1

    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.

  • unmanaged / about 11 years ago / 1

    looky here DP has some code... http://dangerousprototypes.com/forum/viewtopic.php?f=19&t=2361&hilit=Si4707&start=75#p43276

  • BBB / about 11 years ago / 1

    What is recommended for an antenna on this?

    • Joe User / about 11 years ago / 1

      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.

  • unmanaged / about 11 years ago / 1

    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 ...

    • unmanaged / about 11 years ago / 1

      oops here is the US list http://www.nws.noaa.gov/nwr/indexnw.htm

  • unmanaged / about 11 years ago / 1

    // 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

  • JonGrimaldi / about 11 years ago / 1

    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.

  • CrustyCarbuncle / about 11 years ago / 1

    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.

  • educolina97 / about 11 years ago / 1

    Can I tune the aircraft band?

    • RVaughan2 / about 11 years ago / 1

      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.

  • razor_sparks / about 11 years ago / 1

    Schematic link is broken "http://si4707-breakout-v11.pdf/"

Customer Reviews

No reviews yet.