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 |