Inspiration

We were inspired by the challenge of detecting faint transmissions from small satellites. Could knowledge of a satellite’s motion help reveal meaningful signals hidden in radio noise?

That question led to LastPing, a prototype connecting recorded radio observations with orbital predictions through an interactive interface.

What it does

LastPing analyzes a real archived satellite reception, visualizes its signal, and compares measured evidence with historical candidate satellite tracks.

Users can inspect a waterfall spectrogram, an independently extracted signal ridge, predicted Doppler tracks, and candidate comparison metrics. The application also displays recording provenance and exports analysis results.

A separate synthetic experiment compares signal-strength detection, physics-guided detection, and a trained ML classifier on simulated faint, intermittent beacons.

How we built it

We built LastPing with Python, Streamlit, Plotly, NumPy, SciPy, Skyfield, and scikit-learn.

Skyfield uses historical orbital elements to predict satellite motion relative to the receiver. Our signal-processing pipeline calculates a spectrogram, extracts measured signal evidence, and compares it with candidate predictions.

The ML pipeline combines StandardScaler and LogisticRegression, trained and evaluated on separate synthetic datasets. Scores applied to real recordings are explicitly labeled experimental and uncalibrated.

Cursor supported interface development, while Codex supported backend implementation, integration, and testing. We coordinated the work through GitHub.

Challenges we ran into

The archived recording had already undergone receiver Doppler correction. We needed to account for that processing so observed frequencies and predicted tracks could be compared consistently.

Integrating separately developed components also required reconciling configuration fields, output schemas, units, and interface state.

Another challenge was defining a defensible scope: analyzing a known archived reception does not establish the ability to discover or recover a lost satellite.

Accomplishments that we're proud of

We connected real archived audio, historical orbital predictions, signal measurements, candidate comparisons, and visualization in one working application.

Our release passed 22 scoped tests and GitHub CI, covering model loading, recording validation, WAV compatibility, offline replay, and strict JSON export.

We also kept measured evidence, predicted tracks, and simulation ground truth clearly separated.

What we learned

Reliable signal analysis requires accurate timestamps, receiver coordinates, frequency references, and appropriately dated orbital data.

We learned that physics can guide a search, while ML can help evaluate observation-derived features. However, performance on synthetic recordings does not establish performance on real radio data.

Making uncertainty and data provenance visible became an essential part of our design.

What's next for LastPing

Our next milestone is evaluating more independent real recordings, including verified negatives and challenging above-horizon candidate comparisons.

That evidence will support real-data model training and calibration. We also want to explore raw I/Q recordings and live SDR integration.

The current prototype demonstrates candidate-track analysis of one independently supported archived satellite reception. Live detection and lost-satellite recovery remain future goals.

Built With

Share this project:

Updates

Submission history