SatNOGS Station

N5ZKK

About SatNOGS

SatNOGS is an integral part of the Libre Space Foundation. The project aims to build a global network of satellite ground stations. It is designed as an open source participatory project.

⚠️ July 2026 Disaster: The "70000 / Alpha-5" Format change

The space tracking ecosystem is a disaster. Due to the massive failure in leadership the traditional 5-digit integer catalog room is exhausted. In response, US Chair Force (Space-Track) announced that before the end of July 2026, new object catalog numbers will cross the legacy boundary threshold, jumping directly past 69999 into a 6-digit integer structure (starting at 100000).

To preserve the fixed-width requirements of the legacy 69-character TLE standard, Space-Track is enforcing the Alpha-5 object numbering schema. This stop-gap solution replaces the first digit of the 5-digit object number column with a letter (e.g., A=10, B=11, through Z=33, skipping letters 'I' and 'O' to protect alphanumeric clarity).

An official Alpha-5 formatted TLE output structures line headers like this:

0 HAWK-15A
1 J2931U 21006CW  26148.66506944  .00003931  00000-0  11826-3 0  99991
2 J2931  097.2338 194.0330 0004500 272.5331 128.7187 15.34417975009998
  ^ Alphanumeric 'J2931' replaces standard 5-digit integer parsing rules

Eighty Column Punch card format has been in use for decades and now, with no testing, a major change will be made in July.

The Operational Threat: Because Alpha-5 injects character strings directly into columns that legacy ground software explicitly expects to be strict integers, it causes sudden, terminal execution crashes. Un-patched tracking applications cannot map the data structure. Popular station dependencies—including Orbitron, SatDump, and rotator drivers like PSTrotator—will experience broken telemetry tracking pipelines or fail to parse downstream updates entirely if the string elements pass into their un-updated legacy elset routines.

Understanding TLE & NORAD Catalogs

To accurately point an antenna array at a moving satellite, a ground station must know its exact orbital coordinates. This is accomplished using Two-Line Element (TLE) data sets managed under specific NORAD Catalog IDs.

A NORAD ID (or Satellite Catalog Number) is a unique five-digit number assigned by US Space Command to track every man-made object orbiting Earth. The TLE format encapsulates this tracking data into two standard 69-character lines of text, mapping variables like inclination, eccentricity, and mean motion:

ISS (ZARYA)             
1 25544U 98067A   26166.51654311  .00013234  00000-0  23412-3 0  9993
2 25544  51.6412 121.3412 0005432  43.1234  76.5432 15.4981234542312
^ NORAD ID: 25544

Because the upper atmosphere constantly introduces variable drag and perturbations, a TLE is a highly perishable asset. Without regular updates, calculation drift causes antenna arrays to track empty sky during close satellite passes.

TLE Automation System

To insulate tracking integrity against the impending Alpha-5 catalog structural collapse, the N5ZKK tracking core utilizes an automated programmatic pipeline. This utility maps custom identification matrices from local requirements, targets external data sets, and updates system endpoints using a hybrid caching engine. When multiple conflicting source feeds offer records for an identical NORAD satellite ID within the same runtime window, the pipeline executes a deterministic arbitration sequence within merge-tles.py instead of relying on simple file overwrites.

3.1 True Epoch Comparison

The system actively inspects indices [18:32] of the first line of each candidate TLE string to extract the raw fractional Julian day epoch value. Given an active element buffer, a new incoming record updates the station directory if and only if it boasts a structurally younger timestamp:

R[SatID] =
{ (Epochnew, Name, Line1, Line2)   if   SatID ∉ R   ∨   Epochnew > Epochcurrent ;
  R[SatID]   otherwise }

3.2 Advanced Alpha-5 Alphanumeric Decoding

As the global catalog of tracked space objects expands past the traditional 5-digit ceiling (99,999), traditional numerical parsing scripts collapse. The pipeline includes an implementation of the 18th SDS Alpha-5 identifier convention. When the script encounters an alphanumeric character in the leading position of the catalog index field, it decodes it using base ASCII relative transitions to safely scale tracking counters to 6-digit values:

Value = (ORD(Char0) - ORD('A') + 10) × 10,000 + Remainder

This approach keeps downstream amateur tools compatible with modern space infrastructure tracking parameters without truncating or corrupting identification rows.

4. Reverse-Ephemeris State Vector Re-Compilation

Modern catalog repositories like CelesTrak are moving away from legacy raw text entries toward structured comma-separated values (CSV) containing orbital state vectors. Because traditional rotor applications cannot consume these files natively, celestrak-slow.py includes a custom reverse-ephemeris compiler.

The script reads raw parameters like Mean Motion, Eccentricity, and B-Star drag from the CSV API stream, translates them into the proper string representations, and handles complex formatting quirks like the implicit decimal notation required by legacy syntax:

def format_bstar(bstar_str):
    try:
        val = float(bstar_str)
        if val == 0: return " 00000-0"
        sci_str = f"{val:.5e}"
        mantissa, exponent = sci_str.split('e')
        m_digits = mantissa.replace('.', '').replace('-', '')
        exponent = int(exponent) + 1
        m_fixed = m_digits[:5].ljust(5, '0')
        sign_char = "-" if val < 0 else " "
        exp_sign = "-" if exponent < 0 else "+"
        return f"{sign_char}{m_fixed}{exp_sign}{abs(exponent):1d}"
    except: 
        return " 00000-0"

Additionally, the module protects data integrity by manually computing the legacy Modulo-10 checksum across each generated 68-character row, ensuring clean integration with tracking controllers:

Checksum = ( ∑ Integer(c) | c is Digit   +   ∑ 1 | c is '-' ) mod 10

5. Client Politeness and Network Fault Tolerance

Operating a continuous tracking station requires reliable network logic and considerate client behavior. The ingestion modules implement two defensive strategies:

6. Conclusion and Future Directions

The data-fusion engine described here presents a reliable solution for unifying scattered satellite tracking data. By automating acquisition, verifying timestamps, and handling modern 6-digit formatting constraints on an embedded platform, the pipeline ensures local antennas and SDR decoders always have access to highly fresh orbital data. Future updates will focus on expanding the core parsing architecture to natively decode modern CCSDS Orbit Mean-Elements Messages (OMM) as tracking software begins adopting these advanced formats.

Distributed Open Source Satellite Ground Station Operations Pipeline Archive • Published June 2026

Space-Track TLE download

                   +-----------------------+
                   |       Start Program   |
                   +-----------+-----------+
                               |
                               v
                   +-----------+-----------+
                   |  Parse CLI Arguments  |
                   +-----------+-----------+
                               |
                               v
                   +-----------+-----------+
                   |   Call download_tles  |
                   +-----------+-----------+
                               |
                               v
                   +-----------+-----------+
                   |   Try Read Input      |
                   |   /satellites.txt     |
                   +-----------+-----------+
                               |
                          [Does File Exist?]
                            /             \
                      No   /               \   Yes
                          v                 v
        +--------------------+    +--------------------+
        | Log & Print Error  |    | Parse Lines &      |
        +--------------------+    | Extract NORAD IDs  |
                  |               +---------+----------+
                  v                         |
            (Return False)           [Any IDs Found?]
                  |                     /         \
                  |                No  /           \   Yes
                  |                   v             v
                  |       +--------------------+    +--------------------+
                  |       | Log & Print Warning|    |   Is High-Load     |
                  |       +--------------------+    |   Window Active?   |<---+
                  |                 |               +---------+----------+    |
                  |                 v                         |               |
                  |           (Return False)                  | Yes           |
                  |                 |                         v               |
                  |                 |               +--------------------+    |
                  |                 |               | Print Warning, Log |----+
                  |                 |               | & Sleep 60 Seconds |
                  |                 |               +--------------------+
                  |                 |                         |
                  |                 |                         | No
                  |                 |                         v
                  |                 |               +--------------------+
                  |                 |               | Init Space-Track   |
                  |                 |               | Native Client Call |
                  |                 |               +---------+----------+
                  |                 |                         |
                  |                 |                [API Call Success?]
                  |                 |                   /           \
                  |                 |               No /             \   Yes
                  |                 |                 v               v
                  |                 |     +--------------------+    +--------------------+
                  |                 |     | Log & Print        |    | Split Text into    |
                  |                 |     | Download Exception |    | Individual Lines   |
                  |                 |     +--------------------+    +---------+----------+
                  |                 |               |                         |
                  |                 |               v                         v
                  |                 |         (Return False)        +--------------------+
                  |                 |               |               | Loop Line Groups:  |
                  |                 |               |               | Extract ID, Map    |
                  |                 |               |               | Name & Write File  |
                  |                 |               |               +---------+----------+
                  |                 |               |                         |
                  |                 |               |                         v
                  |                 |               |               +--------------------+
                  |                 |               |               | Log & Print Success|
                  |                 |               |               | Confirmation Msg   |
                  |                 |               |               +---------+----------+
                  |                 |               |                         |
                  |                 |               |                         v
                  |                 |               |                   (Return True)
                  |                 |               |                         |
                  v                 v               v                         v
                +------------------------------------------------------------+
                |                    Check Upload Action                     |
                |                 [Was --upload flag passed?]                |
                +------------------------------+-----------------------------+
                                               |
                                     No       / \       Yes
                                             /   \
                                            v     v
                         +--------------------+  +--------------------+
                         |    End Program     |  | Print: Upload flag |
                         +--------------------+  | functionally hidden|
                                                 +---------+----------+
                                                           |
                                                           v
                                                 +--------------------+
                                                 |    End Program     |
                                                 +--------------------+
            

Station Automation Source Registry

Direct configurations and pipeline processing binaries used to normalize tracking feeds for local client arrays.

Station Operations & Modifications

Running since 2019 with gradual updates and hardware optimizations.

Satellite dish 1700MHz helical feed

Station Observations

Data captures reflecting thousands of successful satellite passes across amateur and meteorological networks.

Packet Station Equipment

When taking manual observations I use an old Windows 7 computer with GetKISS+, Kantronics Hardware, and UZ7HO software modems

Packet Station hardware rack setup

History

My first satellite station was composed of a modified PRO-2006 scanner and home made helical antenna on a radio shack antenna rotator. Sadly all that is gone and I don't have a picture from 1989 for some reason. Great days as I was able to listen to the NASA space suit radios during the first Hubble repair mission.

Maybe the NSA has a copy of the #MAXWELL IRC conversation from back then as they surely spied on our conversations about UHF radio communications.

maxwell.ece.cmu.edu I think?