If you are looking for a practical example of using GNU Radio, you should check out [Daniel Estévez’s] working on decoding telemetry captured from the Lunar Flashlight cubesat. The cubesat has some issues, but the data in question was a recording from the day after launch. We don’t know what it would take to listen to it live, but the 3 minute recording is from a 20 meter 8.4GHz antenna.
The flowchart for GNU Radio isn’t as bad as you might think, thanks to some clever re-use of blocks from other projects to do some of the decoding. The modulation is PCM/PM/bi-phase-L. Nominally the speed is supposed to be 48000 baud, but [Daniel] measured 48,077.
Spacecraft telemetry often uses the CCSDS (Advisory Committee for Space Data Systems) standard and the coding matches the standard. An oddity is that in the middle of the recording, the carrier frequency jumps above 120 kHz. [Daniel] assumes the satellite was correcting its frequency to lock onto an uplink carrier from a ground station.
Once the data has been decompressed, it must be interpreted, and [Daniel] does a good job using Jupyter. He doesn’t know the full format of all the telemetry, but he makes a few assumptions that seem valid. We have to wonder how the scans compare to JPL’s official ground station.
The last time we met Daniel, he did the same for Voyager I. If you want to try GNU Radio – even if you don’t have radio hardware – check out our introduction.