-
Notifications
You must be signed in to change notification settings - Fork 46
4 Packet Format Details
All of the Horus Binary packet formats use a numerical payload ID instead of a textual callsign. These payload IDs are decoded to a textual callsign during the decoding process through the payload ID list. Users can request their own payload ID by either raising an issue on this repository, or raising a pull request with the required changes.
Payload IDs are shared between the v1 and 16-byte modes, which only have a single-byte payload ID field. The v2 32-byte mode enables a large number of payload IDs, and so payloads using this mode will be allocated IDs > 256 to enable the 0-255 range priority for v1 and 16-byte v2 payloads.
Note: This packet format has now been retired, and the Horus v2 format is now in use.
| 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 (kph) |
| 17 | uint8 | 1 | Satellites |
| 18 | int8 | 1 | Temperature (deg C) |
| 19 | uint8 | 1 | Battery Voltage |
| 20 | uint16 | 2 | CRC16-CCITT Checksum |
The 32-byte format is the new standard Horus Binary 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 (kph) |
| 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 |
The custom data fields must be described in this json file which will need a new entry added for each new callsign.