Last week I added a telemetry decoder for the 70cm beacon of ESEO to gr-satellites. Now I’ve done a telemetry parser that uses construct to extract the telemetry values. The documentation for the telemetry format is in this web, in the “attachment 2” document.
This attachment 2 is very detailed, including many tables for the values of each of the bit in the bit-fields. As I have already mentioned in previous posts, the former version of the attachment 2 was much less detailed, and insufficient to convert the raw telemetry values to physical units such as volts or amps. Following my open letter, the new version of attachment 2 was published.
However, there are still some details that are not explained in the documentation, although it is easy to figure them out by looking at a few frames. In particular, the documentation doesn’t say how to distinguish the different beacon types.
From looking at some frames that Mike Rupprecht DK3WN decoded, I guessed the following. The AX.25 header is 17 bytes long, as described in the attachment 1 (14 bytes for the addresses, 2 bytes of control, and 1 byte for the PID). After this, there is a byte which indicates the type of the beacon. The value of this byte is 3 for beacon type 1, 4 for beacon type 2, etc. I don’t know why this offset of 2. The next byte is always
0x7a (I don’t know its purpose). After this, the telemetry as described in attachment 2 follows.
When reading the attachment 2, I have found the following typos: beacon 1 has 122 bytes instead of 120; the
OBD_HK_ERROR field from the beacon of type 5 should be
UNSIGNED32 instead of
UNSIGNED16. Also, I am not sure that I have understood well the scale factors, as there are inconsistencies in the document (compare
LMP_VT+5 in beacon type 6).
I have implemented the parsing of beacon types 1 to 6. I haven’t implemented the emergency beacon, as I don’t have an example of this and I don’t know how to detect it. Also, I haven’t implemented parsing of the bit-fields, as this is a lot of work.
Janos Tolgyesi HG5APZ has sent me some beacons he has collected. I have used them to test the parser. The telemetry frames in hex and the parser output are in this gist. There are some fields which do not seem to make much sense (in particular the floating point fields), and the frame of type 6 contains only zeros. From a quick read of the telemetry values it seems that the spacecraft is in safe mode and the payloads are switched off.