6 Packet Format Upgrades - projecthorus/horusbinary GitHub Wiki

We are currently working on upgrades to the underlying FSK modem which will provide a more robust and flexible telemetry system. As part of these changes, it will now be possible to use either 16 or 32 byte packets (though not at the same time!). This page documents the proposed telemetry format structure.

Existing Format (22 bytes)

Byte No. Data Type Size (bytes) Description
0 uint8 1 Payload ID (0-255)
1 uint16 2 Sequence Number
3 uint8 1 Time-of-day (Hours)
4 uint8 1 Time-of-day (Minutes)
5 uint8 1 Time-of-day (Seconds)
6 float 4 Latitude
10 float 4 Longitude
14 uint16 2 Altitude (m)
16 uint8 1 Speed (kts)
17 uint8 1 Satellites
18 int8 1 Temperature (deg C)
19 uint8 1 Battery Voltage
20 uint16 2 CRC16-CCITT Checksum

Proposed 16-byte Format

The 16-byte format is intended to be used as a 'last-resort' telemetry mode, for cases where SNR is expected to be extremely low, and is hence not expected to be required for all flights. As such, the data which can be transmitted through it is fairly limited. Single-byte payload IDs are retained, but the resolution of the sequence number, time, and lat/lon fields are decreased.

Byte No. Data Type Size (bytes) Description
0 uint8 1 Payload ID (0-255)
1 uint8 1 Sequence Number
2 uint16 2 Seconds-in-day/2
4 Q9.15 3 Latitude
7 Q9.15 3 Longitude
10 uint16 2 Altitude (m)
12 uint8 1 Battery Voltage
13 uint8 1 Flags Byte
14 uint16 2 CRC16-CCITT Checksum

Proposed 32 byte format (Fixed portion)

The 32-byte format is proposed to become the new 'standard' HorusBinary telemetry format. It is based on the 22-byte format above, but with an expanded payload ID field to allow for more unique callsigns, and additional space is available for custom data.

Byte No. Data Type Size (bytes) Description
0 uint16 2 Payload ID (0-65535)
2 uint16 2 Sequence Number
4 uint8 1 Time-of-day (Hours)
5 uint8 1 Time-of-day (Minutes)
6 uint8 1 Time-of-day (Seconds)
7 float 4 Latitude
11 float 4 Longitude
15 uint16 2 Altitude (m)
17 uint8 1 Speed (kts)
18 uint8 1 Satellites
19 int8 1 Temperature (deg C)
20 uint8 1 Battery Voltage
21 ??? 9 Custom data
30 uint16 2 CRC16-CCITT Checksum