9M2PJU AMSAT Tracker: Web-Based Amateur Radio Satellite Tracking, Doppler Tuning, and WebSerial Rotator Control

The 9M2PJU AMSAT Tracker (hosted at amsat.hamradio.my) is a client-side satellite tracking and station automation suite built with React 19 and TypeScript. It features real-time SGP4/SDP4 orbit propagation, live Doppler frequency tuning with inverting linear passband matching, a 360-degree Sky Polar Radar, a 2D Leaflet world map with a dynamic solar terminator, a smartphone gyroscopic Aiming HUD for handheld Yagis, zero-install WebSerial antenna rotator control (EasyComm II, GS-232A/B, SPID), a Web Audio pass synthesizer, and offline PWA support.

Working amateur radio satellites has long been one of the most rewarding pursuits in the hobby. Whether making rapid FM contacts through LEO crossband repeaters like IO-86 and SO-50, working intercontinental SSB DX through linear transponders like RS-44, or capturing earth imagery from NOAA weather satellites, success depends on precision. Operators must track rapid orbital passes, predict acquisition of signal (AOS) look angles, calculate instantaneous Doppler shifts on uplink and downlink frequencies, and aim directional antennas with high accuracy.

Historically, satellite tracking required heavy desktop programs like Gpredict, SatPC32, or Orbitron paired with third-party serial drivers, or mobile apps that offered limited rig or rotator control.

The 9M2PJU AMSAT Tracker unites orbital mechanics, frequency tuning, tactical antenna aiming, and direct hardware rotator control into a single, responsive web application that runs in any browser on desktop, tablet, or mobile phone.


What is the 9M2PJU AMSAT Tracker?

The 9M2PJU AMSAT Tracker is a client-side web application and Progressive Web App (PWA) that computes real-time satellite orbital passes, predicts Doppler-shifted uplink and downlink frequencies, provides mobile gyroscopic antenna aiming sights, and directly drives azimuth/elevation antenna rotators via the W3C WebSerial API without external helper software.

+-------------------------------------------------------------------------+
|                  9M2PJU AMSAT Tracker Architecture                      |
+-------------------------------------------------------------------------+
|                   External TLE Ephemeris Data Feeds                     |
|  - CelesTrak Group Feeds: Amateur Radio, Weather, Space Stations        |
|  - AMSAT Daily Orbital Elements: nasabare.txt                           |
|  - Custom TLE Importer with Checksum & NORAD Catalog Validation         |
+------------------------------------+------------------------------------+
                                     | (Auto-Sync / Local Storage Cache)
+------------------------------------v------------------------------------+
|            Client-Side Mathematical Propagation & Physics Engine        |
|  - SGP4 / SDP4 Orbital Mechanics Engine (satellite.js)                  |
|  - Azimuth, Elevation, Slant Range, and Radial Velocity (Range Rate)    |
|  - Relativistic Doppler Shift: Uplink (TX) & Downlink (RX) Frequencies  |
|  - Solar Ephemeris: Day/Night Terminator & Satellite Eclipse Detection  |
|  - Dynamic Communication Footprint Polygon on WGS84 Geoid               |
+------------------------------------+------------------------------------+
                                     |
            +------------------------+------------------------+
            |                                                 |
+-----------v--------------------+       +--------------------v-----------+
|   Visual Tracking Interfaces   |       | Hardware Automation & Sights   |
|  - 360° Sky Polar Radar Dome   |       |  - Mobile Gyro Aiming HUD      |
|  - 2D Leaflet World Map (Dark, |       |  - Optical Crosshair Reticle   |
|    Satellite Imagery, OSM)     |       |  - Haptic & Audio Lock Signals |
|  - 90-Min Ground Track Vectors |       |  - WebSerial Rotator Driver    |
|  - Pass Table (48h Predictions)|       |    (EasyComm II, GS-232, SPID) |
|  - Horizon Elevation Masking   |       |  - Web Audio Synthesizer       |
+--------------------------------+       +--------------------------------+

Because all calculations run client-side using WebAssembly and modern JavaScript engines, the application continues to calculate orbits, generate sky radar plots, and drive antenna rotators even if your internet connection drops in the field.


Key Feature Subsystems

The application is engineered around seven core subsystems designed to streamline operations before, during, and after a pass.

+-------------------------------------------------------------------------+
|                 9M2PJU AMSAT Tracker Core Capabilities                  |
+-------------------+--------------------+-------------------+------------+
| Orbit Mechanics   | Transponder Engine | Antenna Sights    | Hardware   |
| - SGP4/SDP4 Math  | - Live Doppler TX  | - Mobile Gyro HUD | - WebSerial|
| - Slant Range     | - Live Doppler RX  | - Target Lock     | - EasyComm |
| - Radial Velocity | - Linear Passband  | - Haptic Cues     | - GS-232   |
| - Eclipse Shadow  | - CTCSS Tone Specs | - Calibrate Az/El | - SPID Bus |
+-------------------+--------------------+-------------------+------------+

1. Client-Side SGP4/SDP4 Orbit Propagation Engine

At the core of the tracker is an implementation of the Simplified General Perturbations (SGP4) and Simplified Deep Space Perturbations (SDP4) mathematical models via satellite.js.

  • Real-Time Look Angles: Calculates topocentric azimuth (0° to 360°) and elevation (0° to 90°) relative to your station QTH latitude, longitude, and elevation above sea level.
  • Slant Range and Radial Velocity: Continuously evaluates the straight-line distance (slant range in kilometres) and the relative velocity along the line of sight (range rate in km/s).
  • Sunlight and Eclipse Status: Computes true solar declination and Earth shadow projection from the J2000 epoch to determine whether the satellite is in direct sunlight or eclipse. This is critical for older birds like AO-7 that operate only when their solar cells are illuminated.
  • 48-Hour Pass Forecasting: Generates detailed upcoming pass predictions filtered by your station horizon elevation mask, showing AOS time, maximum elevation, LOS time, duration, and trajectory direction (e.g. S → N, SW → NE).

2. Live Transponder Management & Doppler Tuning

The transponder panel removes the guesswork from frequency tracking across voice, digital, and linear transponders:

  • Relativistic Doppler Math: Uplink and downlink frequencies adjust in real time based on the satellite radial velocity vector (positive shift on uplink TX, negative shift on downlink RX).
  • Multi-Mode Support: Pre-configured for FM voice repeaters with sub-audible CTCSS tones (e.g. IO-86 88.5 Hz, AO-91 67.0 Hz, PO-101 141.3 Hz), 1200 baud AX.25 APRS digipeaters, 9600 baud GFSK packet (IO-117 GreenCube), SSTV downlinks, NOAA APT, METEOR LRPT digital weather imaging, and LoRa telemetry.
  • Linear Transponder Passband Matcher: For SSB and CW linear transponders (such as RS-44, AO-7, CAS-4A/4B, and FO-29), an interactive passband slider allows you to select your operating offset within the transponder window. The system automatically computes the matched uplink and downlink frequencies, correctly handling inverted passbands where tuning up in frequency on the uplink results in tuning down on the downlink.
  • One-Click Frequency Copy: Copy adjusted VFO frequencies directly to your clipboard with a single click.
+-------------------------------------------------------------------------+
|                  Linear Transponder Tuning Geometry                     |
+-------------------------------------------------------------------------+
|  Uplink Passband (2m LSB/CW):     [ 145.935 MHz -----> 145.995 MHz ]    |
|                                         |                               |
|                                  (Inverting Mix)                        |
|                                         v                               |
|  Downlink Passband (70cm USB/CW): [ 435.670 MHz <----- 435.610 MHz ] | | | | Tuning +10 kHz on Uplink TX --> Automatically shifts -10 kHz on RX    |
+-------------------------------------------------------------------------+

3. Visual Tracking: Sky Polar Radar & 2D World Map

Visualizing where the satellite is located makes acquiring signals immediate:

  • Sky Polar Radar Dome: An interactive 360° azimuth / 0°–90° elevation polar dome shows the sky overhead. It displays the entire trajectory of active passes, AOS entry points, maximum elevation apex points, and LOS departure angles, overlaid with your station horizon mask.
  • 2D World Map with Solar Terminator: A responsive Leaflet map supports layer switching between Esri Dark Canvas, high-resolution World Imagery satellite photography, and OpenStreetMap. The map renders past orbital history, 90-minute future ground tracks, the dynamic solar terminator day/night boundary, and the communication footprint circle.

4. Handheld Yagi Aiming HUD (Mobile Optical Sight)

Pointing a handheld directional antenna (such as an Arrow II, Elk Log Periodic, or homebrew tape-measure Yagi) while managing a radio and logbook can be challenging. The Aiming HUD turns any smartphone into an active optical antenna sight:

  • Device Gyroscope Integration: Uses the browser DeviceOrientationEvent API to read phone tilt and compass heading in real time.
  • Tactical Reticle & Target Lock: Mount your smartphone flat on the antenna boom with the top edge pointing along the elements. The HUD displays a tactical crosshair for your antenna pointing direction and a target dot for the satellite. Directional cues (such as Turn Right +15° or Tilt Up +20°) guide your movement.
  • Haptic & Audible Lock: When the antenna aligns within ±6° in both azimuth and elevation during an active pass, the reticle ring pulses green, the status switches to LOCKED ON TARGET, and the phone delivers a tactile vibration pulse and audio confirmation chime.
  • Heading Calibration: One-tap heading calibration lets you align the compass against a known landmark or satellite direction to eliminate local magnetic declination offsets and vehicle chassis interference.
  • Desktop Manual Mode: Switchable AZ and EL sliders allow operators using manual tripod mounts to snap angles directly to the satellite.
+-------------------------------------------------------------------------+
|                      Aiming HUD Optical Reticle                         |
+-------------------------------------------------------------------------+
|                              [  030° NNE  ]                             |
|                                                                         |
|                                  ( 60° )                                |
|                                     |                                   |
|                                 +---+---+                               |
|                                 |   |   |                               |
|                             ---(----+----)--- [ TARGET: RS-44 ]         |
|                                 |   |   |     Az: 042° | El: 48°        |
|                                 +---+---+                               |
|                                     |                                   |
|                                  ( 30° )                                |
|                                                                         |
|           [ ANTENNA: Az 040° | El 46° ]  -->  STATUS: LOCKED            |
+-------------------------------------------------------------------------+

5. WebSerial Rotator Hardware Control

Eliminating the need for external bridging daemons or desktop software, the tracker communicates directly with hardware antenna rotators over USB using the W3C WebSerial API:

  • Supported Protocols:
    • EasyComm II: Standard text commands (AZ<az> EL<el>
      ) used by K3NG Arduino rotators and DIY azimuth/elevation controllers.
    • Yaesu GS-232A / GS-232B: Industry-standard binary and ASCII format (W<az> <el>
      ) supported by Yaesu G-5500, GS-232 interfaces, and FoxDelta controllers.
    • SPID: Precision tracking protocol (W<az*10> <el*10>
      ) for SPID RAS and BIG-RAS azimuth/elevation rotators.
  • Configurable Serial Parameters: Select baud rates from 9600 to 115200 bps and update intervals from 500ms to 5000ms.
  • Manual Jog & Auto-Tracking: Directional jog buttons (tilt up/down, rotate left/right, emergency stop, park antenna) give full manual control, while the automated tracking loop slews the antenna automatically throughout an active pass.
  • Built-in Serial Terminal: A live command console displays all outgoing serial strings and hardware acknowledgments in real time.

6. Curated Satellite Catalog & TLE Importer

The application comes pre-loaded with comprehensive orbital data and transponder parameters for active satellites:

  • Space Stations: International Space Station (ISS ARISS FM voice repeater, APRS digipeater, and PD-120 SSTV) and Tiangong (CSS).
  • FM Voice Repeaters: IO-86 (LAPAN-ORARI equatorial), SO-50 (SaudiSat-1C), AO-91 (RadFxSat), AO-92 (Fox-1D), PO-101 (Diwata-2), CAS-3H (LilacSat-2), CAS-5A (FO-118), CAS-10 (XW-4), the TEVEL 1 through 8 constellation, and HADES-D.
  • Linear SSB/CW Transponders: RS-44 (DOSAAF-85), AO-7 (AMSAT-OSCAR 7 Mode A/B), FO-29 (JAS-2), CAS-4A, CAS-4B, XW-2A/B/C/F series, CAS-6, HO-113, JO-97 (FUNcube-1), EO-88 (Nayif-1), and MO-122 (MESAT-1).
  • Digital, APRS, & Telemetry: IO-117 (GreenCube MEO 5800km altitude digipeater), SONATE-2 (AI and LoRa APRS payload), NO-44 (PCsat), and NO-84 (PSAT).
  • Weather & Earth Imaging: NOAA-15, NOAA-18, NOAA-19 (analog APT cloud transmissions), and METEOR-M2-3 / METEOR-M2-4 (HD digital LRPT transmissions).
  • Automated TLE Sync: Automatically refreshes orbital elements daily from CelesTrak and AMSAT feeds.
  • Custom Importer: Add new satellites by pasting standard NORAD two-line element sets (TLEs) with automatic checksum validation.

7. Pure Web Audio Synthesizer & Offline PWA

  • Synthesized Audio Cues: Built entirely on the browser Web Audio API with zero external sound files. Produces a 60-second pre-pass double beep warning (C6/E6), a rising frequency chord for Acquisition of Signal (AOS: D5 → A5 → D6), and a descending tone for Loss of Signal (LOS: D6 → D5).
  • Progressive Web App (PWA): Equipped with a service worker manifest, the tracker can be installed to the home screen on iOS, Android, macOS, Windows, and Linux for instant full-screen offline access.

Satellite Tracking Software Comparison

The following table compares the 9M2PJU AMSAT Tracker with traditional desktop and mobile tracking software:

Feature / Capability 9M2PJU AMSAT Tracker Gpredict SatPC32 Look4Sat (Android) N2YO.com
Platform Web / PWA (Cross-Platform) Linux, Windows, macOS Windows Only Android Only Web Browser
Installation Zero-install / 1-Click PWA Native compile / Package Windows Installer Google Play / APK None (Web page)
Offline Operation Yes (Client-side SGP4) Yes Yes Yes No (Server dependent)
Rotator Control Direct USB (WebSerial) Hamlib rotctld required Native / DDE drivers None None
Supported Protocols EasyComm II, GS-232, SPID EasyComm, GS-232 (via TCP) GS-232, DCU, SPID None None
Antenna Aiming HUD Yes (Gyro / Reticle / Haptic) No No Basic compass view No
Linear Passband Matcher Yes (Inverting / Normal) No Yes No No
Solar Terminator Map Yes (Leaflet / Multi-layer) Basic 2D map Basic 2D map Basic map Basic 2D map
Audio Synthesizer Native Web Audio API Desktop alerts CW / Voice alerts Phone notifications None
Access Model Free Web Application Free Application Commercial License Free (Ad-Supported) Free Web (Ad-Supported)

Practical Operating Workflows

1. Working an FM Satellite Pass with a Handheld Yagi

Step 1: Open amsat.hamradio.my on your smartphone and select an upcoming pass (e.g., IO-86 or SO-50).
Step 2: Verify your QTH grid locator in Settings (use GPS Auto-Detect).
Step 3: Mount your phone flat on the antenna boom with the top edge pointing along the elements.
Step 4: Tap "Aim HUD" and grant orientation sensor permissions.
Step 5: When the pre-pass warning sounds, align the crosshair to the AOS azimuth bearing.
Step 6: As the satellite rises, follow the target dot. Keep the crosshair within the green lock circle.
Step 7: Program your radio memory with the Doppler-shifted RX frequencies displayed on the Transponder panel.
Step 8: Transmit your callsign and grid when the transponder is open and clear.

2. Tuning Linear SSB/CW Transponders (RS-44 Example)

Operating through linear transponders requires matching uplink and downlink frequencies across the passband while managing Doppler shift on both bands simultaneously:

  1. Select RS-44 from the catalog.
  2. In the Transponder & Doppler panel, choose the Inverting Linear Transponder mode.
  3. Use the Linear Transponder Passband Matcher slider to select an operating segment (for example, +15 kHz into the passband).
  4. The tracker displays your exact uplink frequency (e.g. 145.950 MHz LSB) and the corresponding downlink frequency (e.g. 435.655 MHz USB).
  5. As the pass proceeds, observe the live Doppler readouts. When transmitting, adjust your uplink or downlink VFO to compensate for the continuous frequency drift, ensuring your signal remains locked on frequency.

3. Automated Rotator Tracking via WebSerial

  1. Connect your antenna rotator interface (such as a K3NG Arduino rotator or Yaesu GS-232 interface) to your computer using a standard USB cable.
  2. Open amsat.hamradio.my in Google Chrome, Microsoft Edge, or Kiwi Browser on Android.
  3. Click the Rotator & CAT Hardware Control icon in the header.
  4. Select your controller protocol (EasyCommII, GS232A, GS232B, or SPID) and set the matching baud rate (typically 9600 or 115200 bps).
  5. Click Connect Rotator and choose your USB serial COM port from the browser permission popup.
  6. Enable the Auto-Track Satellite in Pass checkbox.
  7. When the satellite rises above your horizon limit, the tracker automatically sends positioning commands at your configured interval, slewing the antenna to follow the spacecraft from AOS to LOS.

Technical Specifications & Architecture

Parameter Specification
Frontend Framework React 19, TypeScript
Build System & Styling Vite 8, Tailwind CSS 4
Orbital Mechanics SGP4 / SDP4 models (satellite.js)
Coordinate Systems ECI (Earth-Centered Inertial), ECF, Topocentric Az/El/Range
Earth Model WGS84 Geoid (RE = 6378.137 km, μ = 398600.5 km3/s2)
Mapping Engine Leaflet with Esri Dark Canvas, World Imagery, and OSM layers
Hardware Serial Interface W3C WebSerial API (Chrome, Edge, Opera, Kiwi Browser)
Audio Engine W3C Web Audio API (Oscillator synthesis, zero media assets)
Mobile Sensors W3C DeviceOrientationEvent (Compass heading, pitch, tilt)
Offline Support Service Worker Progressive Web App (PWA)
Web Portal amsat.hamradio.my

Frequently Asked Questions (FAQ)

What is the 9M2PJU AMSAT Tracker?

The 9M2PJU AMSAT Tracker is a web-based satellite tracking application featuring client-side SGP4/SDP4 orbit propagation, live Doppler frequency tuning, a 360-degree Sky Polar Radar, a mobile antenna Aiming HUD, and zero-install WebSerial antenna rotator control.

Does the tracker work without an internet connection?

Yes. The tracker operates as a Progressive Web App (PWA). Once loaded or installed, all SGP4 orbital mechanics, Doppler calculations, sky radar projections, and WebSerial rotator controls run locally inside your browser using cached TLE ephemeris data.

How does the smartphone Aiming HUD work?

The Aiming HUD reads your device orientation sensors (gyroscope and magnetometer). When the phone is attached flat to an antenna boom, the screen displays a real-time crosshair showing your antenna heading versus the satellite position, providing visual, audible, and haptic target lock cues.

Which antenna rotators can be controlled directly from the browser?

Any rotator controller communicating over USB serial that supports EasyComm II, Yaesu GS-232A, GS-232B, or SPID protocols (including K3NG Arduino rotators and FoxDelta interfaces) can be driven directly via the browser WebSerial API without external software.

How are Doppler frequencies calculated?

The engine computes the instantaneous relative velocity (range rate in km/s) between the satellite and your station QTH using topocentric orbital vectors, applying positive Doppler shifts to uplink frequencies and negative Doppler shifts to downlink frequencies in real time.


Summary: Modernizing Satellite Operations

The 9M2PJU AMSAT Tracker brings modern web technologies to satellite communications. By combining client-side orbital calculations, real-time Doppler frequency tracking with inverting linear passband matching, intuitive sky radar displays, mobile gyroscopic antenna sights, and direct browser-to-hardware rotator control, it equips both new and seasoned amateur radio operators with an accessible, high-performance tracking tool for the field and the shack.

Access the live application at amsat.hamradio.my.

73 from 9M2PJU.


Sources and Further Reading

Post Comment