The First Week: EarthCron to Helioclock”

Posted by KA9NWM

I said in the last post that Helioclock started April 20, 2026. What I didn't say is that it didn't start with that name.

Day one was a Fire TV project. I'd been eyeing Geochron's mechanical world clocks for years, beautiful things, but $300–500 plus a $128/year subscription for a display that, at the end of the day, is just showing you the terminator line and some clocks. I figured I could build a digital version myself and put it on hardware people already own. The first build was called EarthCron, aimed squarely at Amazon Appstore for Fire TV and Android TV, with a companion HDMI compute stick planned for later. That first day's app already had the bones that are still in Helioclock today: Mercator world view, a CONUS view with Alaska and Hawaii insets, a 3D globe, a real-time solar terminator, city lights, dual UTC/local clocks, and full Fire TV D-pad remote support.

Day two is where things got interesting, and where most of the actual identity of the project got decided.

First, the name. EarthCron was fine until I looked hard at Geochron and realized how close "EarthCron" sat next to it — close enough that I didn't want to build a whole business around a name I might have to abandon later. I ran it down properly: USPTO searches, app store checks, the works. Helioclock came out clean on every platform that mattered, and I bought helioclock.com for $6.79 that same day. There was one hiccup — a small existing iPhone app called "HelioClock," a free sunrise/sunset utility with no trademark behind it — but different platform, different category, no real conflict. I made the call to proceed, and the whole codebase got renamed that day: file names, localStorage keys, service names, all of it, down to zero lingering references to the old name.

Same day, I also pushed Phase 2 features into the app: moon phase and sunrise/sunset calculations, a Blitzortung lightning overlay, NASA FIRMS wildfire data, NWS watches and warnings, configurable city clocks, and a slideshow/auto-cycle mode. (Blitzortung didn't survive long-term — it's since been replaced with NOAA GOES lightning data, a story for another post.)

Then came the platform decision that shaped everything after it. I'd been running the server on an N100 mini PC under a stripped-down Windows build, and it was pegging 100% CPU. I moved the whole thing to Ubuntu 24.04 LTS and watched that same load drop to 10–35%. That single move is a big part of why Helioclock runs on Linux appliances today instead of Windows boxes.

My N100 development machine, formerly running Windows.

The migration surfaced a batch of real bugs, and one of them is still my favorite debugging story from the whole project. The display had visible horizontal banding across the entire screen, on every machine and every browser. I went down a few wrong paths chasing it — DPR scaling, canvas step sizes, image artifacts — before I looked at it and said, plainly, this looks like old CRT raster lines. I have decades in broadcast television; I knew that pattern the moment I really looked at it. Turned out to be exactly right: a leftover CSS scanline effect, one line of `repeating-linear-gradient`, that had been sitting in the code since day one for a "retro" look nobody asked to keep.

That’s what I get for reusing old code.

Deleting that one line fixed it completely. The clock digits had their own jitter problem, fixed by locking each digit into a fixed-width span instead of letting the font reflow every second. And the terminator itself was quietly running 180 degrees backwards — a sign flipped in the solar position formula — until that got corrected too.

By the end of that week I had a working Linux server, a real product name with a domain to match, and a growing feature set: sunrise/sunset and grey line panels, a ham radio news feed pulled from ARRL, and a first pass at space weather data. I also found and fixed my first real regression — a two-step code edit that silently dropped a line and broke the moon panel entirely, which is the reason I'm careful now about how I make multi-step changes to this codebase.

None of that first week shipped as a product. But the name, the Linux foundation, and a good chunk of the panel architecture all trace straight back to those first few days.

73,

Anthony, KA9NWM

Leave a Comment