HamSat tracking: A Single-File Amateur Radio Satellite Tracker

On this page Table of Contents

Most satellite trackers do far more than I need. Accounts, dashboards, deep menus, configuration pages, and maps covered in buttons. All I really want to know is: Where is the satellite? When will it pass? What frequency should I tune? So I built HamSat tracking . It is a single HTML file that runs entirely in your browser. No account, login, backend, database, cookies, analytics, or installation. Just open it and track satellites.

The idea

Satellite tracking itself is a well-solved problem. Give an SGP4 propagator a current Two-Line Element set (TLE), and you can calculate the satellite’s position, passes, look angles, footprint, and Doppler shift. The hard part is deciding what not to build. Software tends to grow: another feature, another settings page, another dashboard, another dependency. Eventually, something that should be simple becomes difficult to use.

I wanted the opposite: Less software. Less interface. Less noise. The map is the main interface, and everything else exists to answer those three questions.

One file

HamSat is roughly 270 KB as a standalone HTML file, including the SGP4 library, world coastlines, frequency data, and fallback orbital elements. Everything is calculated locally in your browser. My server simply provides the page and updated TLE data. Save the HTML file to a USB stick and it will still work offline, using the orbital elements it was built with. No server-side processing. No account. No database.

What it does

Feature Description
Live map Amateur satellites, day/night shading and twilight terminator
Footprints Satellite coverage and your own horizon footprint
Passes AOS, LOS, maximum elevation and duration
Sky view Polar plot of the satellite’s path
Doppler Live shift and RX frequency to tune
Frequencies Uplink, downlink, CTCSS and beacon information
Timeline Upcoming passes across the next six hours
Space weather Solar flux, Kp and X-ray data

The satellite list is also curated. There may be around 140 objects in the amateur TLE sets, but only a fraction are actually useful for radio work. HamSat therefore defaults to the satellites with a known repeater, transponder or digipeater. You can still show everything if you want to explore the beacons and the orbital graveyard.

Deliberately boring

I didn’t want an application that looks impressive but takes ten clicks to find the next pass. Controls stay around the map rather than covering it. The next useful satellite is easy to find, and the information you need is visible without navigating through layers of menus. I also avoided turning it into a configurable dashboard. Ten useful controls are better than fifty configuration options.

No tracking. No friction.

Your QTH can be set using a Maidenhead locator, coordinates, browser geolocation, or by clicking the map. Your location, preferences and cached data stay in your browser’s localStorage. Nothing is sent back to my server because there is no application backend. There are no analytics or advertising cookies. No account. No consent wall. Just the map.

Knowing when to remove things

I also learned that adding a feature isn’t always an improvement. I removed a tropical cyclone layer because its coverage was limited to the Atlantic and Eastern Pacific, making it misleading on a global map. Earthquake data stayed because it genuinely provides global coverage.

The frequency table is hand-maintained, and HamSat tells you to check current AMSAT information before transmitting. Satellites change, and pretending otherwise would be bad engineering.

Try it

Open HamSat tracking

Set your QTH, pick a satellite, watch the pass, and tune your radio. HamSat isn’t trying to replace advanced software for rotor control, station automation, or deep satellite analysis. It’s simply the tool I wanted when I have a radio in front of me and want to know what is happening in the sky.

If you find an outdated frequency, a bad calculation, or simply a button that annoys you, let me know. I’d much rather hear “this button is annoying” than “nice project.”

73 de SV1DOD / HB9ISH

Enjoyed this? Buy me a coffee ☕

Comments