B9 Report
TAU binary report of 89 bytes that extends the B3 with accelerometer (XYZ) data and a trail of the last 10 GPS positions encoded as deltas. It keeps the same efficiency goal: about 70% less data than the equivalent text report.
TAU binary reports (B9 and B3) are assigned to events just like text reports (type CQ / CY). The device encodes and transmits them directly in binary.
What is it for?
- 📈 Report vehicle dynamics (accelerometer) together with position
- 🧭 Send the recent route (10 positions) in a single compact frame
- 📉 Minimize mobile data usage versus the text report
- 🛰️ Satellite / LPWA links with higher information density per byte
Event assignment
The report is assigned to an event with the two-letter code B9, exactly like the text reports CQ or CY. When the event fires, the device builds the 89-byte binary frame and sends it to the configured destination.
SMS is not a valid destination for binary reports. If the assigned destination is SMS, the frame is discarded (binary is not transmitted over SMS). Use GPRS, Wi-Fi, backend or log.
Terminal query (QBUS)
When querying the buffer from the terminal with QBUS, the frame is shown as a hex dump with the RB9: prefix.
>QBUS<
>RB9:3E52423968...< // 89 bytes in hexadecimalBinary layout (89 bytes)
Bytes 0–23 share the same format as the B3 report (header, date/time, position, network). From byte 24 onward, accelerometer and trail are added.
| Bytes | Field | Description |
|---|---|---|
| 0–3 | Header | ASCII >RB9 |
| 4–7 | Date/time | TAU epoch (uint32, big-endian) |
| 8 | Event | Event code that triggered the report |
| 9–12 | HDOP + longitude | HDOP (6 bits) + 26-bit TAU longitude (lon × 10⁵ + 18000000) |
| 13–16 | Fix + satellites + latitude | Fix (2 bits) + satellites (4 bits) + 25-bit TAU latitude (lat × 10⁵ + 9000000) |
| 17 | Position age | Seconds since last valid fix (max. 255) |
| 18–19 | GSM signal + speed | CSQ (6 bits) + speed km/h (10 bits) |
| 20–21 | Network registration + heading | GSM/GPRS registration (3 + 3 bits) + heading in degrees (9 bits) |
| 22–23 | Outputs + inputs | Digital outputs XP (5 bits) + inputs IN (10 bits) |
| 24–29 | XYZ accelerometer | Resultant axis + Z / Y / X axes encoded with a +999 offset |
| 30 | Motion state | 0 = stopped, 1 = moving |
| 31 | Data age | Trail age |
| 32–81 | 10-position trail | 10 records × 5 bytes: speed (8 bits) + heading (9 bits) + Δlat (11 bits) + Δlon (12 bits) |
| 82–85 | Device ID | Device identifier (4 bytes) |
| 86–87 | Message number | Message counter (uint16, big-endian) |
| 88 | Checksum | XOR of bytes 0–87 |
Accelerometer (bytes 24–29)
The resultant axis is transmitted along with the three axes encoded with a +999 offset: the X axis directly, the Y axis divided by 32 and the Z axis divided by 4. Byte 30 indicates whether the vehicle is stopped or moving.
Position trail (bytes 32–81)
Each of the 10 records (5 bytes) stores a recent-route position as a delta relative to the event position:
- Δlat:
(Δlat / 2) + 999in 11 bits (Δ in degrees × 10⁵) - Δlon:
(Δlon / 16) + 999in 12 bits (Δ in degrees × 10⁵) - Together with speed (8 bits) and heading (9 bits)
A record whose first byte is 255 marks an invalid / empty position (fewer than 10 points available).