Skip to content

TLE and Satellite Data

W9KSB edited this page Jun 10, 2026 · 1 revision

TLE and Satellite Data

Overview

Pi-Sat depends on two satellite data sources:

  • TLE data for orbital prediction
  • transponder/profile data for frequency planning and display

These are separate problems and are handled separately.

TLE Sources

Pi-Sat supports multiple TLE URLs in configuration. All configured sources are downloaded and merged into one cache.

Duplicate TLE Handling

When the same NORAD ID appears in multiple TLE sources:

  • Pi-Sat compares the TLE epoch
  • the newest entry wins
  • older duplicates are discarded

This avoids relying on source ordering and makes multi-source TLE usage practical.

TLE Cache Behavior

Pi-Sat writes merged TLE data to a local cache file. That cached file is what the orbital engine uses during normal runtime.

This gives the app a stable local orbital data source even when a remote TLE source is temporarily unavailable.

Startup Behavior

At service start, Pi-Sat attempts to refresh TLE data. If download fails but an existing cache is present, the app can continue using the existing cache.

Refresh Schedule

Pi-Sat refreshes TLE/pass data:

  • at service start
  • every 6 hours
  • on manual demand from the UI

Force Refresh

The settings UI provides a force-update action for TLE data. This is useful when:

  • sources were changed
  • a source recovered from failure
  • the operator wants an immediate reload rather than waiting for the scheduler

Transponder/Profile Data

Transponder data is handled separately from TLE data. Pi-Sat refreshes transponder profiles for tracked satellites and stores them with the satellite profile data.

Transponder Refresh Schedule

Pi-Sat refreshes transponder/profile data:

  • at service start
  • nightly at local midnight
  • on manual demand

Why TLE and Transponder Data Are Separate

TLE data answers:

  • where the satellite is
  • when it rises and sets
  • what Doppler should be

Transponder/profile data answers:

  • what frequencies and modes to use
  • whether the profile is RX-only or RX/TX
  • how offsets map between downlink and uplink

Both are required for a usable satellite control surface, but like the rest of this project, I try to keep things separate where possible to avoid complexity.

Clone this wiki locally