PW-Sat2 transmits standard G3RUH-scrambled BPSK AX.25 frames in the 70cm Amateur Satellite band. The baudrate can be selected between 1k2, 2k4, 4k8 and 9k6 by the satellite team. The interesting thing is that there are many types of packets besides telemetry. For instance, it can list and transfer on-board files, such as the images taken by the satellite camera. These packets can be decoded by using the FramePayloadDecoder software.

Since the FramePayloadDecoder software is quite complex and it is written in Python, I have decided to make a telemetry parser for gr-satellites that simply loads this software into GNU Radio and passes the frames to the decoder. Here are the instructions to set this up.

First download the FramePayloadDecoder by doing

$ git clone https://github.com/PW-Sat2/FramePayloadDecoder

The FramePayloadDecoder includes the OBC software as a submodule, so you must do

$ cd FramePayloadDecoder$ git submodule init$ git submodule update

You need to have bitarray and typing installed, as these are required by the FramePayloadDecoder software. They can be installed either with your distribution’s package manager or with pip2.

Now open the PW-Sat2 decoder flowgraph in gr-satellites with GNU Radio Companion. This flowgraph is found in apps/pwsat2.grc. Find the PW-Sat2 Telemetry Parser block in the flowgraph, enable it, and edit its properties. In the field PW-Sat2 FramePayloadDecoder path you must enter the path to the FramePayloadDecoder software. Optionally, disable the Message debug block if you do not want to see the hex dumps of the decoded packets.

To test the decoder you can use the pwsat2.wav recording in satellite-recordings. This recording contains a telemetry beacon, and shows the following information when decoded: