Composed by Naman // Claude
GS. — A ground-station log

← Frontier Work

Elektro-L5 · 1693 MHz · Russia

The first one we caught ourselves

The L2 decode read a recording someone else made. This time the satellite is Elektro-L5, and the recording is ours: received on our own dish, decoded down to clean frames, and now read all the way through to the instruments inside. The radiation monitor's own energy-sweep spectra, off our own antenna.

Our dishElektro-L5, 1693 MHz Lock the frames224 bytes, checksum-clean Read the clockonboard time in the bytes Matches capturethe decode is real

What we did

  • Received Elektro-L5 on our own dish, a hand-pointed rig, across a short capture window.
  • Recovered the suppressed carrier, found the 224-byte frames, and confirmed the built-in checksum on every clean frame.
  • Read the satellite's onboard clock out of the frame bytes. It matched the time of the capture to the second, which is the proof the byte layout is right and the frames are real, not noise.
  • Decoded the same capture a second time from scratch, on a fresh chain that shares no code with the first, then merged the two. Where both reads landed on the same frame they agreed to the bit, with no conflicts, which is a second independent proof on top of the checksum.
  • Opened the instrument records inside each frame: the per-second particle counters for the two detectors, and the 12-step energy sweep each one runs. These read cleanly, with every internal counter matching the onboard clock.

Why it was hard

L2 came from a long, clean recording. Ours is short, hand-pointed, and weak, so the usual approach falls apart. What worked: keep the raw radio samples instead of a downsampled copy; find the few seconds where the dish was actually on the bird; recover the carrier by squaring the signal; and detect each frame's start marker rather than assuming a fixed grid, because the onboard clock drifts. Then correct the phase frame by frame.

sync marker type byte onboard clock instrument payload checksum
The 224-byte frame, byte by byte. The checksum verifies on every clean frame, and the onboard clock is what proved the layout.

The proof

Two checks say these are real frames, not a lucky pattern in noise.

266 decoded frames drawn as an image, with steady vertical lines at the marker, clock, and checksum byte positions.
Every decoded frame is one row, every byte one column. The fixed fields (the marker, the onboard clock, the two-byte checksum) hold the same columns across all 266 frames, and the checksum verifies on 100% of them. Noise has no such structure.
The satellite's onboard clock read out of each frame, plotted against frame number: a clean rising line spanning about five minutes.
The clincher: the satellite's own clock, read out of the frame bytes, climbs in a clean line across the frames and lands at 07:03 to 07:08 UTC on 2026-06-14, exactly when we were recording. A wrong byte layout could not produce a clock that agrees with the wall clock.

Reading the instruments

A clean frame is a container. Inside are the actual measurements: two particle detectors, each reporting once a second, each stepping through twelve energy levels in turn. We unpacked those records and pulled the sweep out. The count climbs smoothly across the twelve steps, about seventyfold from the lowest to the highest, on both detectors. That smooth climb is the shape a working energy sweep should have, and it is the first time we have read it off L5.

The decoded energy sweep of both Elektro-L5 particle detectors: counts rising smoothly across twelve energy steps, on a log scale, for the SKL and SKIF banks.
Both detectors' energy sweeps, read straight out of the decoded frames. Each instrument steps through twelve levels once per cycle, and the count rises smoothly step to step. The internal per-second counters all line up with the onboard clock, so these are the satellite's own measurements, in order.

Where it stands

L5 now decodes to clean frames off our own antenna and reads through to the instrument records inside, which is further than this had been taken here before. What is still open is calibration: turning the raw counts into physical flux, the way L2 was pinned against published curves. L2 had public reference data to check against. L5 does not yet, because the satellite is still being commissioned, so for now the channel meanings rest on the L5 to L2 family resemblance rather than a direct match. Longer, cleaner captures from the permanent Lucknow 1 m dish, plus published L5 data when it appears, are what close that last gap.

Capture: this station, 60 cm dish, June 2026. Frame format and the byte-level groundwork: our earlier Elektro-L2 decode. Frames: two independent demodulators of ours, run over the same recording and merged.