Server Online — hamclock.com
Support this project ↓

Keeping HamClock Alive

A free, community-operated backend server so your HamClock keeps working past June 2026. Point it here and forget about it.

hamclock-backend — system status
W4BAE@hamclock:~$ ./status --all

╔══════════════════════════════════════════════════════════╗
║   HAMCLOCK.COM — ALL SYSTEMS OPERATIONAL               ║
╚══════════════════════════════════════════════════════════╝

───────────────────────────────────────────────────────────
PSK Reporter Stream ● LIVE — 400+ spots/sec from origin
VOACAP Propagation Engine ● LIVE — per-user dynamic generation
MUF Real-Time Maps ● LIVE — NOAA SWPC, 30 min cycle
Aurora Maps ● LIVE — NOAA SWPC, 30 min cycle
Cloud Cover Maps ● LIVE — NASA GOES, 10 min cycle
DRAP Absorption Maps ● LIVE — NOAA SWPC, 15 min cycle
Weather Pressure Maps ● LIVE — NOAA GFS, mB + inHg
SDO Solar Imagery ● LIVE — NASA SDO, 7 wavelengths
Satellite TLEs ● LIVE — curated catalog, dead birds removed
Kp / Bz / Dst / X-ray ● LIVE — NOAA SWPC + Kyoto WDC
Band Conditions ● LIVE — N0NBH + SWPC
DX / Contests / POTA / ONTA ● LIVE — NG3K, WA7BNM, ARRL
───────────────────────────────────────────────────────────
CSI Dependency ZERO
Infrastructure AWS us-east-2
VOACAP Cache ● ACTIVE — 5 min TTL, 94ms cache hits
───────────────────────────────────────────────────────────

W4BAE@hamclock:~$ cat /var/log/operator.status
Bruce is sleeping. The backend isn't.
Last session: Feb 28 03:45 UTC — PSK streaming, VOACAP caching,
load avg recovered from 137 to 5. All feeds independently generated.

W4BAE@hamclock:~$ cat /etc/motd
There's been a lot said. Most of it isn't true.
I wrote a response: hamclock.com/facts-not-fables.html

W4BAE@hamclock:~$ crontab -l | grep TODO
# ┌─────── more tweaking, polishing, and stability hardening
# │ ┌───── anti-proxy protections
# │ │ ┌─── auto-healing watchdogs
# │ │ │ ┌─ volume resize + automated snapshots
# │ │ │ │
* * * * *  /opt/hamclock-backend/scripts/never_stop_improving.sh

W4BAE@hamclock:~$
Over
...
HamClocks Served

WB0OEW — Silent Key

HamClock was created by Elwood Downey, WB0OEW — an engineer who built one of the most popular shack displays in amateur radio and gave it away for free. Elwood became a Silent Key on January 29, 2026.

I first reached out to Elwood back in August 2019. I told him I thought HamClock had real potential beyond the shack — that it could be a product, a service, something bigger. He wrote back:

"No, it's not exclusive at all. You could use my source and do the same thing if you want, no problem. That's the weird thing about open source software. You don't make money from the code itself. You make money by adding value."

That conversation stuck with me. I registered hamclock.com that same year.

Life got in the way. Years passed. When Elwood became a Silent Key and the June 2026 shutdown was announced, I knew it was time to act. This backend server — keeping your existing HamClock running — is and will always be a free community service. That's a promise. Down the road, I may build new products and features on top of Elwood's foundation, exactly the way he encouraged. But HamClock Classic will never stop working because of a paywall.

Elwood's final release, version 4.22, included the -b flag — a backend override that lets any HamClock point at an alternate server. He gave us the tool and the time.

This server exists because of Elwood. I intend to keep his work running for as long as there are hams who depend on it.

73, Elwood. de W4BAE — SK

A Personal Note from Bruce, W4BAE

I want to thank everyone who has donated their time helping troubleshoot issues, and those who have contributed through PayPal to help cover the backend hosting costs. This community has been incredible.

Running hamclock.com is like working on a car engine in a car going down the road — while also working a day job, raising a 14-year-old as a single father, and trying to get some decent sleep somewhere in between. Most of you are cheering me on, and I'm grateful for that. A small few are throwing rocks — and that's okay. I expected some people wouldn't be happy with this. Some folks aren't happy with free if it isn't free their way. If you don't like my flavor of free or my project, you're welcome to wait for the stragglers to do something.

Let's be honest about what people actually want: they want their HamClock to work. They don't want to stand up their own server. They don't want to learn git. They don't know Linux server administration and they shouldn't have to. The "just self-host it" crowd makes it sound simple — clone a repo, run a script, done. It's not. This backend pulls from over 40 upstream data sources. Satellites get deorbited and new ones launch. NOAA changes their API formats. Data feeds get moved, blocked, or restructured without warning. It will take frequent curation to keep this thing running cleanly, and it is highly unlikely that any individual is going to roll a perfect solution on their own and keep it that way. I made it so that all you need is one line in /etc/hosts or a -b flag and you're done. That's it. Your clock works. I handle the rest.

When I was a teenager I had a Rottweiler named Max — 160 pounds, looked like a killing machine, but had the soul of a puppy. Never bit anyone his entire life, except once, when someone rough-housed with him during an ear infection. Sickness makes people do the wrong thing too.

I refuse to believe the person who created HamClock wanted it to die with him. And here's what tells me that: the -b flag. Elwood sat down and wrote code — actual new functionality — to let HamClock point at an alternate backend server. That's intent. He wanted someone to pick this up. But here's the thing that breaks my heart — the man who built 40+ data feeds, a full propagation engine, and one of the most brilliant tools in amateur radio didn't need to write that flag at all. Any user can redirect HamClock to a new backend with a single line in /etc/hosts. That's networking 101. The Elwood who built HamClock from scratch would have known that in his sleep. The fact that he spent his remaining energy writing a command-line flag to solve a problem that already had a simpler answer — that tells me sickness had already taken something from him. He was still fighting for HamClock's future, but the sharpness was going. This is just my speculation, but I don't think Elwood meant to throw us under the bus. I think he gave us everything he had left.

So here we are, carrying it forward. And then I get emails like these that make all of it worth it:

"I just wanted to thank you for all of your hard work in keeping HamClock alive. I'm almost retired and had high hopes of building a beautiful shack with HamClock displayed on a 55" TV and you can imagine my disappointment last month. Needless to say, I'd have survived, but having HamClock continue is one less stress point for me while I figure out this retiring thing."

He even offered to donate hardware and invited me to speak at his club.

"Hey Bruce, Thanks for providing hamclock.com! Decisive and appreciated."

That's what this community is supposed to look like. Thank you for riding along.

73, Bruce Edrich — W4BAE

How to Migrate

Easiest Fix — One Line, Works Everywhere

If you're running HamClock on a Raspberry Pi, Linux desktop, Mac, or Inovato Quadra — this is the fastest way. Just add one line to your /etc/hosts file and you're done. No startup scripts to find, no flags to add, survives reboots.

$ sudo nano /etc/hosts

Add this line at the bottom:

3.128.20.228    clearskyinstitute.com

Save and exit (Ctrl+O, Enter, Ctrl+X). That's it — your HamClock now talks to hamclock.com instead of the original server. No restart needed on most systems, but reboot your Pi if you want to be sure.

This works by telling your device that clearskyinstitute.com lives at this server's IP address. HamClock doesn't know the difference — it just keeps working.

Windows — Hosts File

Windows has its own hosts file that works the same way. You'll need to edit it as Administrator.

1.

Click the Start menu and type Notepad. Right-click on Notepad and choose Run as administrator.

2.

In Notepad, go to File → Open. In the filename field, paste this path and click Open:

C:\Windows\System32\drivers\etc\hosts

If you don't see the file, change the file type dropdown from "Text Documents" to "All Files".

3.

Add this line at the very bottom of the file:

3.128.20.228    clearskyinstitute.com
4.

Save the file (Ctrl+S) and close Notepad. Restart HamClock and you're done.

If Windows won't let you save, you didn't open Notepad as Administrator — go back to step 1 and right-click → Run as administrator.

Alternate Method — The -b Flag

If you prefer to keep your hosts file clean, HamClock 4.22 (the final release) includes a -b flag that lets you point it at any backend server. No software changes, no reflashing, no firmware updates.

1.

Stop your running HamClock.

2.

Restart it with the backend flag pointing to this server:

$ ./hamclock -b hamclock.com:80
3.

That's it. Your HamClock will pull all data from hamclock.com instead of clearskyinstitute.com. It will survive the June 2026 shutdown.

The -b flag is available in HamClock version 4.22, the final release. If your HamClock auto-updated, you already have it.

Desktop Linux

Just add the flag when you launch:

$ ./hamclock-1600x960 -b hamclock.com:80

Raspberry Pi — Systemd Service

If your Pi runs HamClock as a systemd service (most common), edit the service file:

$ sudo nano /etc/systemd/system/hamclock.service

Find the ExecStart line and add the -b flag:

# Before:
ExecStart=/usr/local/bin/hamclock

# After:
ExecStart=/usr/local/bin/hamclock -b hamclock.com:80

Then reload and restart:

$ sudo systemctl daemon-reload
$ sudo systemctl restart hamclock

Don't Know Where Your Startup Config Is?

Run these commands to find it:

# Check if it's a systemd service:
$ systemctl list-units | grep -i hamclock

# Check crontab:
$ crontab -l | grep -i hamclock

# Check autostart (desktop):
$ cat ~/.config/autostart/hamclock.desktop

# Check rc.local:
$ cat /etc/rc.local | grep -i hamclock

# Find the binary itself:
$ which hamclock || find / -name "hamclock*" -executable 2>/dev/null

Once you find the line that launches HamClock, add -b hamclock.com:80 to the end of the command.

Raspberry Pi — Crontab

If your Pi starts HamClock from crontab:

$ crontab -e

Find the HamClock line and add the flag:

# Before:
@reboot /usr/local/bin/hamclock-fb0-1600x960

# After:
@reboot /usr/local/bin/hamclock-fb0-1600x960 -b hamclock.com:80

Raspberry Pi — Desktop Autostart

If HamClock launches automatically when your Pi desktop loads:

$ nano ~/.config/autostart/hamclock.desktop

Find the Exec= line and add the flag:

# Before:
Exec=/usr/local/bin/hamclock-1600x960

# After:
Exec=/usr/local/bin/hamclock-1600x960 -b hamclock.com:80

Reboot your Pi and HamClock will pull from hamclock.com on every start.

Inovato Quadra

Thanks to Don for these step-by-step instructions for the Quadra:

1.

Exit HamClock, then click on the terminal icon at the bottom of the screen.

2.

Type the following command and press Enter:

$ sudo nano /etc/hosts
3.

If asked for a password, the default Quadra password is 1n0v@t0 — note that both characters that look like the letter O are zeros. The password won't show up as you type it — that's normal, just type it and press Enter.

4.

Use the arrow keys to move to the bottom of the file and add this line:

3.128.20.228    clearskyinstitute.com
5.

Press Ctrl+O (that's the letter O, not zero) to save the file, then press Enter to confirm.

6.

Press Ctrl+X to exit nano.

7.

Type exit and press Enter to close the terminal, then restart HamClock.

ESP8266 / Arduino

The ESP8266 firmware cannot be changed with the -b flag after flashing. Use the /etc/hosts method above on the device it connects through, or the router-level DNS redirect below.

Pre-Built Raspberry Pi Image (Coming Soon)

I'm building a ready-to-flash Raspberry Pi image with HamClock pre-configured to use hamclock.com. Write it to an SD card, boot your Pi, and you're done — no command line needed. A Raspberry Pi 4 or Pi 5 with 2–8 GB of RAM provides significantly more headroom than the Inovato Quadra's constrained hardware, and makes an excellent dedicated HamClock display. Check back here or email [email protected] to be notified when it's available.

Need Help?

If you're not comfortable editing config files, forward this page to a tech-savvy friend or local ham club member. All they need to do is find the line that starts HamClock and add -b hamclock.com:80 to it. Or email me at [email protected] with your setup details and I'll walk you through it.

DNS Redirect — Router Level

If you can't modify the device at all — like an ESP8266 or a locked-down appliance — you can redirect traffic at your router instead. Add this entry to your router's local DNS or DNS override settings:

# Redirect HamClock traffic to community backend
3.128.20.228    clearskyinstitute.com

This is the same principle as the /etc/hosts method above, but applied at the network level so every device on your LAN is covered — no per-device changes needed.

Data Feed Status

Every feed listed below runs independently — no dependency on clearskyinstitute.com. Data is sourced directly from NOAA, NASA, USNO, Open-Meteo, PSK Reporter, and other primary providers.

Solar / X-Ray FluxNOAA SWPC — updated every minute
● LIVE
Sunspot Numbers (SSN)NOAA SWPC — daily + historical
● LIVE
Solar Flux (F10.7)NOAA SWPC — current + 45-day history
● LIVE
Kp IndexNOAA SWPC — updated every 3 hours
● LIVE
Band ConditionsNOAA SWPC — HF propagation conditions
● LIVE
Solar Wind / Bz (IMF)NOAA SWPC — updated every 5 minutes
● LIVE
Dst IndexKyoto WDC — updated hourly
● LIVE
NOAA Space Weather AlertsNOAA SWPC — updated every 30 minutes
● LIVE
World WeatherOpen-Meteo API — global coverage, updated every 5 minutes
● LIVE
Weather Pressure Maps (mB + inHg)NOAA GFS — 5 resolutions, updated hourly
● LIVE
PSK Reporter SpotsReal-time stream ingester — 400+ spots/sec from origin infrastructure
● LIVE
VOACAP Propagation MapsDynamic per-user generation with cubic interpolation + 5 min caching
● LIVE
MUF Real-Time MapsNOAA SWPC — updated every 30 minutes
● LIVE
DRAP Absorption MapsNOAA SWPC — updated every 15 minutes
● LIVE
Aurora MapsNOAA SWPC — updated every 30 minutes
● LIVE
Cloud Cover MapsNASA GOES — updated every 10 minutes
● LIVE
SDO Solar ImageryNASA SDO — updated every 15 minutes
● LIVE
Map Tiles (Countries, Terrain, etc.)Pre-rendered — 5 resolutions up to 3960×1980
● LIVE
Satellite TLEsCelesTrak / NORAD — curated catalog, dead birds removed, updated every 6 hours
● LIVE
DX News & DXpeditionsNG3K, DX cluster — updated daily
● LIVE
Contest CalendarWA7BNM — updated every 8 hours
● LIVE
On-the-Air (ONTA)ARRL — updated every 5 minutes
● LIVE
POTA ParksParks on the Air API — cached weekly
● LIVE
IP GeolocationBuilt-in database — no external dependency
● LIVE
RSS News FeedMultiple sources — aggregated
● LIVE
Cities DatabaseStatic dataset — included with server
● LIVE

VOACAP — Side by Side

Same transmitter location (South Florida), same time, same parameters. The VOACAP engine here was rebuilt from scratch using cubic interpolation. The original used nearest-neighbor on a coarse rectangular resample — hence the blocky 90° staircase artifacts. Click either image to enlarge.

If your MUF-VCAP map looks different from what you're used to, check the SSN value shown in your HamClock header — this backend uses the current daily sunspot number, which may differ from what your previous server was providing.

hamclock.com VOACAP MUF map
hamclock.com — live daily SSN, cubic interpolation, higher Weissman score
clearskyinstitute.com VOACAP MUF map
clearskyinstitute.com — nearest-neighbor interpolation

About This Server

hamclock.com is operated by Bruce Edrich, W4BAE (CISSP, CPTS) — a cybersecurity consultant and ham radio operator based in South Florida. The backend started as a fork of open-hamclock-backend (OHB), an open-source project by Brian, KO4AQF and Austin, KN4LNB, who reverse-engineered the original server API from scratch. Their work provided the foundation — I've since rebuilt and extended it into a fully independent production backend.

Major work beyond OHB includes: rewriting the VOACAP propagation engine with cubic interpolation and per-user dynamic generation, building a real-time PSK Reporter stream ingester pulling 400+ spots/sec directly from origin infrastructure, weather pressure maps in both millibar and inHg units at five resolutions, aurora and DRAP map generation, real-time MUF overlays, Kp/Bz/Dst/X-ray feeds from NOAA SWPC and Kyoto WDC, curated satellite TLE catalog with dead birds removed, VOACAP response caching for sub-100ms repeat queries, and hardening the entire server for production use serving thousands of HamClocks on AWS.

Every data feed now runs independently — this server has zero dependency on clearskyinstitute.com and will continue operating without interruption after the June 2026 shutdown.

No tracking, no paywall. Just a server that answers when your HamClock calls.

Troubleshooting

HamClock Crashes After Running for a While

If HamClock runs fine for a period then suddenly crashes to the desktop, the most common cause is your SD card or internal storage filling up from HamClock's log files. This is especially common on the Inovato Quadra, which ships with very limited onboard storage and RAM, and on older Raspberry Pi models (Pi 3A/3B) with small SD cards.

SSH into your device and check disk usage:

$ df -h
$ free -h

If any partition is at or near 100%, that's your problem. Clear the old logs:

$ sudo find / -name "*.log" -size +1M -exec truncate -s 0 {} \;

Reboot and HamClock should stay up. To prevent this from happening again, you'll want to disable HamClock's logging permanently.

Can't Ping the Server

This is normal. The server is hosted on AWS, which blocks ICMP ping by default. If you want to verify the server is up, use your browser to visit hamclock.com — if the page loads, the server is running.

Public IP Shows Blank on Startup

This usually means HamClock couldn't reach the server at the moment it started. Check your internet connection and try restarting HamClock. If the server was briefly down for maintenance, a simple restart will resolve it.

VOACAP DE_DX Shows Only Grid Lines

If the VOACAP reliability map shows latitude/longitude lines but no propagation data, try selecting a different band. Some bands have zero propagation at certain times of day — the map will appear mostly dark or empty when there's nothing to show. Switch to a band with active propagation (20m and 15m during daylight hours are usually a safe bet) to confirm the feed is working.

Hosts File Entry — Common Mistakes

If you've added the hosts file entry but HamClock still isn't connecting, double-check these common issues: make sure the line doesn't start with a # character (that comments it out), verify there's a space or tab between the IP address and the domain name, and confirm you're editing the right file — /etc/hosts on Linux/Mac/Pi, or C:\Windows\System32\drivers\etc\hosts on Windows. The entry should look exactly like this:

3.128.20.228    clearskyinstitute.com

Still Stuck?

Email [email protected] with your hardware (Pi model, Quadra, Mac, etc.), your HamClock version, and what you're seeing. Screenshots help. I'll get back to you.

Acknowledgments

This server wouldn't be where it is without the people who showed up early, kicked the tires, and told me what was broken.

Don, W8CPT, has been an invaluable tester and contributed the Inovato Quadra migration instructions on this page. Jos in the Netherlands caught an international weather bug that led to a complete overhaul of the weather feed. And to everyone who has donated to help keep the lights on — thank you. Every contribution is appreciated and goes directly to keeping this server running. You know who you are. 73.

Get in Touch

Questions, problems, want to help? Reach out.

You are visitor number:
·
·
·
·
·
·
since Feb 2026 — best viewed with Netscape Navigator 3.0