Skip to content

Beacon decoder for qb01 and automated log of all beacons received by control software (note: source "opencosmos" includes beacons received via several university ground stations)

License

opencosmos/qb01-beacon-decoder

Repository files navigation

qb01 beacon decoder

Uses RS decoder from Phil Karn's "feclib".

Usage

To compile:

make

To run:

[environment] ./decode infile.kss

To prevent warnings/errors from messing up the output, redirect stderr:

csv=y ./decode example.kss 2>/dev/null

It is currently designed to read binary KISS files (which include AX.25 framing) and extract beacons from them, and raw files in the structure used by the satellite. It may be useful to alter it to read ASCII KISS and other formats also.

Data in other formats may possibly be converted to binary KISS AX.25 via some of the perl scripts in data/.

The script ./collate.sh converts all data in the data/ folder, decodes it, and produces a CSV file called beacons.csv.

Callsign issue

The qb01 beacon callsign fields are not bit-shifted, so unfortunately an AX.25-compliant TNC will have trouble decoding them. Instead, simply discard the AX.25 framing (first 16 bytes + last 2 bytes). The next level is Reed-Solomon FEC so the AX.25 CRC16 is not essential.

If your TNC insists on deframing the AX.25 itself, it will probably read the CSP header and the time field as a "via" callsign, so alter the decoder appropriately to handle the lack of the "time" field.

Specify environment variable "csv" in order to export beacons as machine-readable CSV format instead of the human-readable default format. Be sure to redirect stderr away if using CSV output, so warnings/errors don't pollute your CSV file.

When supplying beacon data to Open Cosmos, please indicate the time (and ideally, also location) of the reception!

You can supply the data via the email address on the details page http://open-cosmos.com/se01/ or via pull-requests to this repository (please use the data/ folder and if possible, binary KISS format).

If you send a pull-request, please create a new folder for your team/organisation/yourself as appropriate and put your data in there. Also, if you can provide a script to translate your data to binary KISS encapsulating AX.25 frames (or use one of the existing perl scripts) that would be great but it is not essential.

Note

The find_beacon_len function introduces a possible buffer overrun bug, with the potential to overrun by up to 32 bytes. This is solved by requiring the input data to be at least 32 bytes smaller than the buffer which it is read into. The buffer is relatively huge so this should not create problems.

  • Mark Cowan @ Open Cosmos

qb01 beacon description

See QB50 SE01 beacon description - Open Cosmos.pdf for detailed information.

Parameter Value
Modulation GFSK
Modulation index 0.6667
Packet format AX-25*, CSP
Encoding NRZI with stuffing / G3RUH scrambled for AX.25, RS(223,255) for CSP
Carrier-Frequency 435.800 MHz
Nominal data rate 9600 baud
AX-25 Source Address Field ON01SE
Interval 10 s (LEOP), 30 s (during routine Operations [to be commanded])

TLE

  • NSSDC ID: 1996-067LR
  • NORAD catalog number: 42708

About

Beacon decoder for qb01 and automated log of all beacons received by control software (note: source "opencosmos" includes beacons received via several university ground stations)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published