Custom NMEA protocol
The custom NMEA protocol is a flexible, NMEA-based format designed to store data of varying lengths within a defined limit. Available format specifiers:
Scientific notation: %8.3e, %9.4e.
Fixed-point notation: %.2f, %.3f, %.4f, %.5f, %.6f, %.7f, %.8f, %.9f.
Data:
Custom NMEA data
Format:
$PSXN,10,xxx,var0,var1,…,varN*cs
Custom NMEA protocol description | |||||
---|---|---|---|---|---|
FIELD N. | FIELD | DESCRIPTION | UNIT | TYPE | NOTE |
0 | $PSXN | message header | - | string | Telegram identifier. |
1 | 10 | MRU message identifier | - | U8 | Outputs 11 if data is unstable (e.g., during power-on and restart). |
2 | xxx | token | - | U8 | A user adjustable number that helps identify or label the current message format. Range: [10,100]. |
N | varN | data message N | - | U8 / U32 / I32 / Single / Double | Selected data from output variable list. |
5 | cs | checksum | - | U8 | XOR of characters between $ and * |
Example:
A custom NMEA frame with example data, including roll, pitch, and heading (in that order), is shown below.
$PSXN,10,024,0.069,-0.414,300.843*F
Field 0 | Field 1 | Field 2 | Field 3 | Field 4 | Field 5 | Field 6 |
---|---|---|---|---|---|---|
$PSXN | 10 | 024 | 0.069 | -0.414 | 300.843 | F |
Decoded values:
10
Raw value: 10, decoded MRU message identifier: 10 (data is stable).
xxx
Raw value: 024, decoded token value: 24 (label associated with message format determined by user).
roll
Raw value: 0.069, decoded roll angle: 0.069 degrees.
pitch
Raw value: -0.414, decoded pitch angle: -0.414 degrees.
heading
Raw value: 300.843, decoded roll angle: 300.843 degrees.
checksum: F
Hexadecimal value created from XOR operations of characters between $ and * in the example frame.