Boston Weather Radio Streaming Setup

Boston Weather Radio Streaming Setup

If you’re just here for the radio, here it is

or if you want to use an external player or have an older browser http://joshboon.com:8000/wxjosh/boston.NOAA.KHB35.mp3.m3u

Note the buzz and background voice crosstalk are found in source broadcast not my setup. I’ve tuned in using other receivers in other areas and picked up the same issues. I’ve let NOAA know and they say it is a telephone wire somewhere in the setup. I’m guessing they’re using RJ-11 as cabling to the transmitter or something else bizarre but a FOIA request for build and maintenance brought back nothing so guess we’ll never know.

I’m a weather nerd. I lump it into I’m curious about systems and weather happens to be another that one albeit I just get to attempt to predict and plan around it versus control it. One of my favorite ambient artists, Tycho, samples NOAA’s WX radio in Cloud Generator. Tom, a text-to-speech voice, much like Microsoft SAM except designed explicitly for weather was the star of this sample and is one of my favorite ways to listen to the weather and produce white noise. If you want to hear his voice and others you can listen to them over at NOAA Voices. My partner just hears “waaaaaaaa” whenever the weather radio is on as proof of how monotonous he is.

Sadly NOAA hasn’t brought their streams online yet so when I wasn’t near a WX radio I couldn’t tune in and get my forecasts and the magical ability to put my partner into a dead sleep anywhere ;) Wunderground hosts a good list of streams at Wunderground WXRadio but Boston’s stream dropped off the list sometime ago and I couldn’t find who maintained it to help bring it back. As all of the stations hosted there are run by volunteers they give you instructions on how to go about setting it up yourself and the project began.

Hardware

  • Radio capable of receiving NOAA weather channels, I used Radioshack’s cheapest model and soldered a line out directly off the speaker board. https://amzn.com/B007Z7KROK You can go fancier and get a model with dedicated line out if you prefer or aren’t comfortable soldering. My radio is tuned to KHB35 162.475 Boston and you can find your station here
  • linux box with an audio line-in and Internet, this can be anything you want really as the requirements are very simple. A raspberrypi like thing might even be able to handle the WX radio portion too though I’ve not done any research into that.
  • box of random cables to get everything hooked up, you’re not a good tinkerer without one ;)

Setup

If you’re going to be broadcasting to a public shoutcast server you can use darkice and set that up. This guide uses that setup to stream to my icecast2 server. I’d originally tried to ship it straight to wunderground but they have a javascript bug that prevents submission of new radios. If you’re doing this yourself and want a place to host you can ping me and I can host or you can setup your own streaming system.

Install and Configure Darkice

I followed the make, build route without issue from the project page. Once you’ve got the binary installed you’ll need to find your sound card.

cat /proc/asound/cards
 0 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xfb080000 irq 17
 1 [Audigy2        ]: Audigy2 - SB Audigy 2 ZS [SB0353]
                      SB Audigy 2 ZS [SB0353] (rev.4, serial:0x10031102) at 0xd000, irq 20

should get you pointed in the right direction if you use alsa. Once you’ve got that you’ll need to stitch together your darkice config. Mine follows and darkice’s default is well explained. “

[general]
duration        = 0        # duration of encoding, in seconds. 0 means forever
bufferSecs      = 5         # size of internal slip buffer, in seconds
reconnect       = yes       # reconnect to the server(s) if disconnected
realtime        = yes       # run the encoder with POSIX realtime priority
rtprio          = 3         # scheduling priority for the realtime threads

[input]
# This is the device found from cards and it's input, see darkice's manual for more config options
device          = hw:1,1 # OSS DSP soundcard device for the audio input
# This is a dumb sample rate because my card is dumb and WX radio isn't fancy enough to need a HQ stream. You probably should try 44100 first.
sampleRate      = 8000 # sample rate in Hz. try 11025, 22050 or 44100
bitsPerSample   = 16        # bits per sample. try 16
channel         = 1         # channels. 1 = mono, 2 = stereo

[icecast2-0]
# You'll need lame for this portion. you can use another compressor if you prefer
bitrateMode     = abr       # average bit rate
format          = mp3    # format of the stream: ogg vorbis
bitrate         = 96        # bitrate of the stream sent to the server
server          = joshboon.com
                            # host name of the server
port            = 8000      # port of the IceCast2 server, usually 8000

password        = password  # source password to the IceCast2 server
mountPoint      = wxjosh/boston.mp3  # mount point of this stream on the IceCast2 server
name            = Boston WX Radio 162.475
                            # name of the stream
description     = NOAA Weather Radio
                            # description of the stream
url             = http://joshboon.com
                            # URL related to the stream
genre           = WX    # genre of the stream
public          = yes       # advertise this stream?

Drop your config into /etc/darkice.cfg and the fire it up

/usr/local/bin/darkice # or wherever you chose to install it to

It should spit out some handy info and your steam should be live on your shoutcast box for your pleasure. If it’s not I’d suggest exploring your audio config first. My experience into the world of Linux audio has been a mess at best.

TODO

Boston’s weather radio has possibly a ground loop problem that introduces a bad buzz into the stream that other stations don’t have. I explored trying to remove it but couldn’t find a good way to remove it without damaging the audio itself. If you have any tips they’d be appreciated.