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.
-