SatelliteStatusNORADUplinkDownlinkBeaconModeCallsignReportsInfoIARU freq coordTelemetry Decoder
OPS-SATACTIVE44878..437.2009k6 GMSKDP0OPSlatest reportdetailsYES

OPS-SAT is a CubeSat by European Space Agency (ESA) and it is intended to demonstrate the improvements in mission control capabilities that will arise when satellites can fly more powerful on-board computers. OPS-SAT will provide an in-orbit test-bed environment for the deployment of different experiments to test new protocols, new algorithms, and new techniques. The satellite is being designed to be robust and no Single point of failure should exist, therefore it shall be always possible to recover the spacecraft if something goes wrong with one of the software experiments. The robustness of the basic satellite itself will allow ESA flight control teams to upload and try out new, innovative control software submitted by experimenters.
OPS-SAT has been launched at 08:54 UTC on 18 December 2019.


Audio file 9k6

High-Speed SoundModem by UZ7HO – Ver 0.01 [OPS-SAT 9600bd]

0.01 – provides AX.25 CRC16 verification, but then it makes no sense to use RS-code inside.
0.02 – looks for AX.25 header and frame size (looks like AX.25 header is the same for all frames?). In such case RS and CRC32 will work.

Telemetry Decoder

Beacon description

The NanoCOM AX100 is configured in mode 6, which means that the data is encapsulated in a HDLC + AX.25 frame.

The whole frame is

  • NRZI encoded
  • G3RUH/K9NG scrambled
  • LSB encoded (apart from the 16 bit CRC) and has a
  • size of 110 bytes (without the flags)

The flag is used to separate frames is 0x7E (01111110). The NanoCom also sends 50 of those in the preamble for receiver synchronization.
After NRZI decoding and descrambling the AX.25 header becomes readable and does not require any further processing. The call signs are “DL0ESA” for the ground station, and
“DP0OPS” for the satellite.

Data field encoding

The data field ends with a 32 bit cyclic redundancy check (Castagnoli), followed by a Reed-Solomon (223,255) code block, and is finally being scrambled with the CCSDS polynomial
ℎ(𝑥)=1+𝑥3+𝑥5+𝑥7+𝑥8. After descrambling, Reed-Solomon decoding, and the removal of the CRC, the data field becomes 58 bytes, as shown below.

The payload data itself is a Cube Sat Protocol (CSP) packet and starts with a four byte header with the following content :

  • Priority: 3
  • Source: 5
  • Destination: 10
  • Destination Port: 31
  • Source Port: 0
  • Flags: 0

Linux Version

Beacon decoder repository: https://github.com/esa/gr-opssat

I used a slightly changed flowgraph to use the audio directly from my transceiver (FT-736)