Weather

MARYVILLE, MO KE0SBX QTH

Monday, July 20, 2026

NOAA Weather Internet Radio

 Welcome back to the blog. In today's entry, I am creating a project that further expands the reach of the NOAA Weather Radio system by utilizing the National Weather Service's free, tax-payer-funded API.

Project

This project serves a few different purposes for me - improve my Morse decoding skills, code a Pi Pico (finally), and repurpose a junk radio. There are many more purposes, but these are the big ones for me.

What this device does is simple: collect alerts from the free NWS API and broadcast them visually and audibly. The use of color-coded LEDs to represent alert tiers works in conjunction with the audible Morse signal that is fed through the junk radio's speaker. This device is almost real-time, as API fetches are completed every 2 minutes.

The Morse announcement uses the three-letter event codes that the National Weather Service uses in EAS and other alert products. For example, TOR is the prosign for Tornado Warning. In Morse, it would beep out:

_ / _ _ _ / . _ .

Upon the initial alert, the audio alert is repeated three times. A button is provided to repeat the audio signal for manual review. A press of the button repeats the alert only once. If the alert is updated or reissued, the warning sequence starts all over again and the alert message is sounded 3 times again.

Parts

The first part of this project was making sure the internal stuff worked. To do this, the Pico was coded on a breadboard with its peripherals wired to the microcontroller. I first coded the Pico with API-pulling logic to ensure I could contact the NWS API. After this worked, I added on the piezo buzzer and then followed up with the LEDs. Finally, I simulated a button press on the breadboard via a DuPont wire tapped against the ground line.

At the current moment, the audio indicator is a piezo buzzer, but this will eventually be replaced with an actual speaker and driver. The speaker will be much more smoother sounding and won't be as harsh as a piezo. I've discovered a very promising circuit here.

Here's a photo of the radio that will be used to house the project. It's a Realistic 12-152. I bought it as is for parts, but I mostly bought it for the aesthetics. I removed the PCB board inside and left the 8 ohm 0.2 watt speaker in as well as the external 2.5mm DC jack.

A custom PCB will be made that will fit perfectly inside this chassis. While it will have a minimal part population, a custom PCB ensures that everything fits comfortably and provides enough clearance.

I want to make this as NOAA Weather Radio as I possibly can. The Pico can do proprietary TTS through both PIO and PWM. Using this generation method, my only options would be to use SAM (very 1980s 😎) or a Speak-n-Spell-esque voice (called Linear Predictive Coding, not technically TTS actually). Of course I could use a cloud-based TTS service but an on-board TTS engine would be much easier.

So I think I'm sticking with Mr. SAM. SAM is easier to code and can manipulate phenomes, phonics, etc. within the code with ease. However, with this whole TTS voice idea in mind I'd like to keep the Morse functionality intact but let the user decide what mode they want.

You can find the project on my GitHub page, which is here: https://github.com/grahowe/Pico-Weather-Radio. Currently this is just the Morse functionality but I'm currently and actively working on getting SAM running. Initial tests have proven better than anticipated which makes me really happy!

No comments:

Post a Comment