If you’ve been looking for a practical example of using GNU Radio, you should check out [Daniel Estévez’s] work on decoding telemetry captured from the Lunar Flashlight cubesat. The cubesat is having some trouble, but the data in question was a recording from the day after launch. We aren’t sure what it would take to eavesdrop on it live, but the 3-minute recording is from a 20-meter antenna at 8.4 GHz.
The flowgraph for GNU Radio isn’t as bad as you might think, thanks to some judicious reuse 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 48,000 baud, but [Daniel] measured 48,077.
Spacecraft telemetry often uses the CCSDS (Consultative Committee for Space Data Systems) standard, and the encoding matches the standard. One oddity is that midway through the recording, the carrier frequency jumps over 120 kHz. [Daniel] speculates that the satellite was correcting its frequency to lock to an uplink carrier from a ground station.
Once the data is unpacked, you have to interpret it, and [Daniel] does a good job using Jupyter. He doesn’t know the complete format of all the telemetry, but he makes some assumptions that seem sound. We have to wonder how the analytics compare with JPL’s official ground station.