LTM light weight telemetry
https://github.com/iNavFlight/inav/wiki/Lightweight-Telemetry-(LTM)
start with $T, followed by function byte, then payload, end with CRC(XOR of payload bytes)
Function Byte | Usage | Frequency |
---|---|---|
G | GPS Frame | 5Hhz at > 2400 baud |
A | Attitude Frame | 10 Hz at > 2400 baud |
S | Status Frame | 5Hhz at > 2400 baud |
O | Origin Frame | 1 Hz rate |
N | Navigation Frame (iNav extension) | ~4 Hz rate |
X | GPS eXended data (iNav extension) | 1 Hz rate |
https://ardupilot.org/rover/docs/common-ltm-telemetry.html
Good example on decodeing LTM
https://github.com/vierfuffzig/LTM2MAVLink/blob/master/LTM2MAVLink/LTM2MAVLink.ino
* LightTelemetry protocol (LTM) |
* |
* Ghettostation one way telemetry protocol for really low bitrates (1200/2400 bauds). |
* |
* Protocol details: 3 different frames, little endian. |
* G Frame (GPS position) (2hz @ 1200 bauds , 5hz >= 2400 bauds): 18BYTES |
* 0x24 0x54 0x47 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xC0 |
* $ T G --------LAT-------- -------LON--------- SPD --------ALT-------- SAT/FIX CRC |
* A Frame (Attitude) (5hz @ 1200bauds , 10hz >= 2400bauds): 10BYTES |
* 0x24 0x54 0x41 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xC0 |
* $ T A --PITCH-- --ROLL--- -HEADING- CRC |
* S Frame (Sensors) (2hz @ 1200bauds, 5hz >= 2400bauds): 11BYTES |
* 0x24 0x54 0x53 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xC0 |
* $ T S VBAT(mv) Current(ma) RSSI AIRSPEED ARM/FS/FMOD CRC |
Here is the protocol overview:
https://quadmeup.com/ltm-light-telemetry-protocol/
https://quadmeup.com/ltm-light-telemetry-protocol/
GPS Frame (G)
Payload: 14 bytes
- Latitude, int32 [decimal degrees * 10,000,000]
- Longitude, int32 [decimal degrees * 10,000,000]
- Ground Speed, uchar [m/s]
- Altitude, uint32, [cm]
- Sats, uchar,
- bits 0-1 : fix
- bits 2-7 : number of satellites
Attitide Frame (A)
Payload: 6 bytes
- Pitch, int16, [degrees]
- Roll, int16, [degrees]
- Heading, int16, [degrees]
Status Frame (S)
Payload: 7 bytes
- Vbat, uint16, [mV]
- Current, uint16, [mA]
- RSSI, uchar
- Airspeed, uchar8, [m/s]
- Status, uchar
- bit 0: Armed
- bit 1: Failsafe
- bits 2-6 : Flight mode:
- 0 : Manual
- 1 : Rate
- 2 : Angle
- 3 : Horizon
- 4 : Acro
- 5 : Stabilized1
- 6 : Stabilized2
- 7 : Stabilized3
- 8 : Altitude Hold
- 9 : GPS Hold
- 10 : Waypoints
- 11 : Head free
- 12 : Circle
- 13 : RTH
- 14 : Follow me
- 15 : Land
- 16 : Fly by wire A
- 17 : Fly by wire B
- 18 : Cruise
- 19 : Unknown
This project take several protocols into LTM
in this project, we can take the cpp/h file to encode LTM
as for reader, there are read made one:
留言
張貼留言