Ham Shack Navigator: A Self-Hosted Dashboard for the Modern Ham Radio Operator

It's been a while since I've posted (like over a year!) so I figured it's probably a good time to write up one of the projects I've been working on, which I've named "Ham Shack Cockpit". The idea for this came to me one night when I was running FT8, constantly cycling between WSJT-X, pskreporter, dxheat, QRZ and other websites so that I could keep an eye on band conditions, band activity, and see which stations were receiving me (and where), 

I've been doing quite a bit of work with Anthropic Claude Code of late, using it to create various projects including a complete rewrite of my ham radio club's website (na0tc.org), updating it from a 2006-vintage docuwiki site to a modern JavaScript-based HTML 5 site, built entirely using open source software and running on Ubuntu Linux. 

Over the course of about a month (with many gaps), I "vibe coded" a cockpit (aka dashboard) that incorporated a lot of the station control and monitoring components that I wanted to get in one place. The idea is to have the cockpit running on a big screen in my shack, with all of the key information that I need in one place. Here's a list of what I've added to it so far:

- Weather and lightning monitoring, including local conditions and radar and built-in checks for high wind and lightning within a certain radius;

- Radio propagation dashboard, including sunspot/solar activity plus spots from DX Summit and pskreporter

- Radio monitoring and control, initially for Flex Radio 6400 (current radio settings, including frequency, power level, mode, and power)

In addition, I built in a workflow engine that can take actions when certain conditions are met, including time of day and weather conditions. For example, if lightning is detected within a user-defined radius, it can automatically shut down power and take antennas offline. I accomplished this by adding support for WiFi-controllable outlets and relays. For example, when lightning is detected, a workflow can open a relay that causes the Flex to shut down, then disconnect antenna coax using a coax relay, then shut down the station power supply. Another workflow can be used to power the station up. 

I also added a notifications engine that can send notifications via several channels, including email and the ntfy app. 

The whole project was developed using Python and runs inside of a Docker container, making it very portable. I've posted the source code to GitHub and it's available for others to fork, improve, and contribute to under the MIT Open Source license. 

If you're interested in trying out the code, send me an email (you can find my email on QRZ) and I'll get you set up!

Some screen shots are below, and I'll also include a photo of my shack ground plane and coax relay.












 

Comments

Popular Posts