cr.NMEA Message Introduction_ComNav Technology Ltd
NMEA Message Introduction
NMEA protocol is a standardized format for transmitting data between electronic devices in marine and navigation systems. NMEATalker provides functionality for parsing, generating, and processing NMEA sentences. The main purpose of NMEATalker is to simplify the handling of NMEA data within software or hardware systems. In this article, we will introduce how to change NMEATalker for ComNav K8 series GNSS module, and give an introduction of the supported NMEA messages.
1 NMEATALKER
Change TalkerID
NMEATALKER (Sentence ID) (Talker ID)
Sentence Identifier (ID) : 10 sentence identifiers are available: GGA, GSA, GSV, GST, ZDA, HDT, RMC, VTG, GLL, ALL
Among these 10 identifiers, the first 9 are sentence identifiers and the last one (‘ALL’) is used to fulfill the function of manipulating all the first 9 identifiers.
Talker Identifier (ID) : 6 talker identifiers are available: GN, GP, BD, GL, GA, AUTO
Among these 6 identifiers, the first 5 are talker identifiers and the last one (‘AUTO’) is used to indicate that receiver will automatically choose a talker identifier according to constellation used in current estimates. In ‘AUTO’ mode, how receiver choose a talker identifier is subject to the principles shown in the following table:
Table 1**. NMEATALKER Available Identifiers**
Constellation used in Solutions | Talker Identifiers |
---|---|
GPS | GP |
BDS | BD |
GLONASS | GL |
GALILEO | GA |
Two or more constellations | GN |
Note: According to the supplement NMEA 0183 V4.10 issued by NMEA and IEC on 19 June 2018, BDS Talker ID is no longer allowed to use “BD” and the standard requires the use of “GB”. To maintain compatibility, ComNav’s products use “BD” by default, but allow customers to change the BDS Talker ID to “GB” in custom firmware.
TalkerID Query
List talker identifiers for all current NMEA messages.
NMEATALKER LIST
TalkerID Reset
Reset talker identifiers to factory defaults.
NMEATALKER RESET
Tips:
Command is not case-sensitive and keywords are separated by space and each command is ended with a pair of Carriage Return (CR) and Line Feed (LF).
NMEATALKER commands only affect talker identifiers; LOG commands used to request a log is unaffected by NMEATALKER commands. Talker identifiers in LOG command remain ‘GP’:
LOG GPXXX ONTIME 1
2 NMEA Message
Table 2. NMEA Message
No | Log Message | Description |
---|---|---|
GPGGA | GPS Fix Data and Undulation | |
GPGLL | Latitude and Longitude of Present Vessel Position | |
GPGSA | GPS DOP and Active Satellites | |
GPGST | Only Dop Values are Valid Currently | |
GPGSV | GPS Satellites in View | |
GPHDT | Actual Vessel Heading in Degrees True | |
GPRMC | GPS Specific Information | |
GPVTG | The Track Made Good and Speed Relative to the Ground | |
GPZDA | UTC Time and Date |
GPGGA GNSS Fix Data
Description
This message is a standard NMEA log, but a little different from the standard one in position precision. The position precision of this log is the same as GPGGARTK, in order to be used in greater conditions. The header of GPGGA is always “GP” regardless if other GNSS information involved in solution computation.
Command
LOG GPGGA ONTIME 1
Message definition
Field# | Structure | Description | Symbol | Example |
---|---|---|---|---|
1 | $GPGGA | Log header | $GPGGA | |
2 | utc | UTC time of position (hours/minutes/seconds/ decimal seconds) | hhmmss.ss | 202134.00 |
3 | lat | Latitude (DDmm.mm) | llll.lllllll | 3110.4693903 |
4 | latdir | Latitude direction (N = North, S = South) | a | N |
5 | lon | Longitude (DDDmm.mm) | yyyyy.yyyyyyy | 121232621695 |
6 | londir | Longitude direction (E = East, W = West) | a | W |
7 | GPS qual | GPS Quality indicator |
0: Initialization
1: RTK Single solution
2: Code differential (including SBAS solution)
4: RTK fixed solution
5: RTK float solution
6: Combined navigation result
7: Manually input fixed value|x|1|
|8|# sats|Number of satellites in use. May be different to the number in view|xx|10|
|9|hdop|Horizontal dilution of precision|x.x|1.0|
|10|alt|Antenna altitude above/below mean sea level|x.x|1062.22|
|11|a-units|Units of antenna altitude (M = meters)|M|M|
|12|undulation|Undulation – the relationship between the geoid and the WGS84 ellipsoid|x.x|-16.271|
|13|u-units|Units of undulation (M = meters)|M|M|
|14|age|Age of Differential GPS data (in seconds) b|xx|(empty when no differential data is present)|
|15|stn ID|Differential base station ID, 0000-1023|xxxx|
|16|*xx|Checksum|*hh|*48|
|17|[CR][LF]|Sentence terminator||[CR][LF]|
In NMEA0183 standard, the maximum number for satellites is 12, why ComNav message shows more satellites? Does ComNav’s module follow the standard?
Reply:
Yes ComNav follow NMEA0183 standard, but When NMEA0183 was initially released, GNSS receivers had limited capabilities and could typically track and receive signals from only 12 satellites simultaneously. Hence, to accommodate this limitation, the NMEA 0183 protocol specified a maximum of 12 satellites. With advancements in technology, modern GNSS receivers can track and receive signals from a higher number of satellites simultaneously, so it shows more satellites number in this message.
2.2 GPGLL Geographic Position
Description
This message is a standard NMEA log, include information such as time, latitude, longitude and so on.
Command
LOG GPGLL ONTIME 1
Message definition
Field# | Structure | Description | Format | Example | |
---|---|---|---|---|---|
1 | $GPGLL | Log header | $GPGLL | ||
2 | lat | Latitude (DDmm.mm) | llll.lllllll | 3110.4702936 | |
3 | latdir | Latitude direction |
(N = North, S = South)|a|N|
|4|lon|Longitude (DDDmm.mm)|yyyyy.yyyyyyy|12123.2629222|
|5|londir|Longitude direction
(E = East, W = West)|a|W|
|6|utc|UTC time of position (hours/minutes/ seconds/decimal seconds)|hhmmss.ss|220152.50|
|7|data status|Data status: A = Data valid, V = Data invalid|A|A|
|8|mode ind|Positioning system mode indicator|a|A|
|9|*xx|Checksum|*hh|*1B|
|10|[CR][LF]|Sentence terminator||[CR][LF]|
2.3 GPGSA GNSS DOP and Available Satellite
Description
This message contains available satellites used in solution computation and DOP values.
Command
LOG GPGSA ONTIME 1
Message definition
Field# | Structure | Description | Symbol | Example |
---|---|---|---|---|
1 | $GPGSA | Log header | $GPGSA | |
2 | mode MA | A = Automatic 2D/3D M = Manual, forced to operate in 2D or 3D | M | M |
3 | mode 123 | Mode: 1 = Fix not available; 2 = 2D; 3 = 3D | x | 3 |
4 - 15 | prn | PRN numbers of satellites used in solution (null for unused fields), total of 12 fields |
GPS = 1 to 32
SBAS = 33 to 64 (add 87 for PRN number)
GLO = 65 to 96
BD2 =141 to 177|xx,xx,…|25,14,
15,18,
31,27,
09,21,
22,12,|
|16|pdop|Position dilution of precision|x.x|1.5|
|17|hdop|Horizontal dilution of precision|x.x|0.9|
|18|vdop|Vertical dilution of precision|x.x|1.2|
|19|*xx|Checksum|*hh|*3F|
|20|[CR][LF]|Sentence terminator||[CR][LF]|
GPGST Pseudorange Measurement Noise Statistics
Description
This message is a standard NMEA log. Pay attention to that rms, smjrstd, smnrstd and orient values are absent in the message currently.
Command
LOG GPGST ONTIME 1
Message definition
Field# | Structure | Description | Symbol | Example | |
---|---|---|---|---|---|
1 | $GPGST | Log header | $GPGST | ||
2 | utc | UTC time of position (hours/minutes/seconds/ decimal seconds) | hhmmss.ss | 173653.00 | |
3 | rms | RMS value of the standard deviation of the range inputs to the navigation process. Range inputs include pseudorange and DGPS corrections. | x.x | ||
4 | smjrstd | Standard deviation of semi-major axis of error ellipse (m) | x.x | ||
5 | smnrstd | Standard deviation of semi-minor axis of error ellipse (m) | x.x | ||
6 | orient | Orientation of semi-major axis of error ellipse (degrees from true north) | x.x | ||
7 | latstd | Standard deviation of latitude error (m) | x.x | 2.51 | |
8 | lonstd | Standard deviation of longitude error (m) | x.x | 1.94 | |
9 | alt std | Standard deviation of altitude error (m) | x.x | 4.30 | |
10 | *xx | Checksum | *hh | *6E | |
11 | [CR][LF] | Sentence terminator | [CR][LF] |
GPGSV GNSS Satellites in View
Description
This is a standard NMEA message which includes PRN numbers, elevation, azimuth, and SNR values of satellites in view.
Command
LOG GPGSV ONTIME 1
Message definition
Field# | Structure | Description | Symbol | Example | |
---|---|---|---|---|---|
1 | $GPGSV | Log header | $GPGSV | ||
2 | # msgs | Total number of messages (1-9) | x | 3 | |
3 | msg # | Message number (1-9) | x | 1 | |
4 | # sats | Total number of satellites in view. May be different than the number of satellites in use | xx | 09 | |
5 | prn | Satellite PRN number |
GPS = 1 to 32
SBAS = 120-138
GLO = 1-36
BD2 = 141~177|xx|03|
|6|elev|Elevation, degrees, 90 maximum|xx|51|
|7|azimuth|Azimuth, degrees True, 000 to 359|xxx|140|
|8|SNR|SNR (C/No) 00-99 dB, null when not tracking|xx|42|
|… … …|… … …|Next satellite PRN number, elev, azimuth, SNR, … Last satellite PRN number, elev, azimuth, SNR,|||
|variable|*xx|Checksum|*hh|*72|
|variable|[CR][LF]|Sentence terminator||[CR][LF]|
GPHDT Vessel Heading
Description
This message is a standard log which includes actual vessel heading for True North in degrees.
Command
LOG GPHDT ONTIME 1
Message definition
Field# | Structure | Description | Symbol | Example | |
---|---|---|---|---|---|
1 | $GPHDT | Log header | $GPHDT | ||
2 | heading | Heading in degrees | x.x | 89.2769 | |
3 | True | Degrees True | T | T | |
4 | *xx | Checksum | *hh | *36 | |
5 | [CR][LF] | Sentence terminator | [CR][LF] |
GPRMC GNSS Specification Information
Description
This is a standard NMEA message which includes time, date, speed and true heading.
Command
LOG GPRMC ONTIME 1
Message definition
Field# | Structure | Description | Symbol | Example |
---|---|---|---|---|
1 | $GPRMC | Log header | $GPRMC | |
2 | utc | UTC of position | hhmmss.ss | 065029.00 |
3 | pos status | Position status: |
A = data valid, V = data invalid|A|A|
|4|lat|Latitude (DDmm.mm)|llll.ll|3110.4722495|
|5|latdir|Latitude direction:
N = North, S = South|a|N|
|6|lon|Longitude (DDDmm.mm)|yyyyy.yy|12123.2644026|
|7|londir|Longitude direction:
E = East, W = West|a|E|
|8|speed Kn|Speed over ground, knots|x.x|0.456|
|9|track true|Track made good, degrees True|x.x|330.1|
|10|date|Date: dd/mm/yy|xxxxxx|050512|
|11|mag var|Magnetic variation, degrees|x.x|0.0|
|12|vardir|Magnetic variation direction E/W|a|W|
|13|mode ind|Positioning system mode indicator
A = Single-point positioning
D = Differential positioning
E = Derivation positioning
M = Manual input by user
N = Data invalid|a|A|
|14|*xx|Checksum|*hh|*12|
|15|[CR][LF]|Sentence terminator||[CR][LF]|
GPVTG Track Make Good and Ground Speed
Description
This is a standard NMEA message which includes make good and ground speed.
Command
LOG GPVTG ONTIME 1
Message definition
Field# Structure Description Symbol Example
1 $GPVTG Log header $GPVTG
2 track true Track made good, degrees True x.x 213.710
3 T True track indicator T T
4 track mag Track made good, degrees Magnetic;
Track mag = Track true + (MAGVAR correction) x.x 213.710
5 M Magnetic track indicator M M
6 speed Kn Speed over ground, knots x.x 0.304
7 N Nautical speed indicator (N = Knots) N N
8 speed Km Speed, kilometers/hour x.x 0.563
9 K Speed indicator (K = km/hr) K K
10 mode ind Positioning system mode indicator a A
11 *xx Checksum *hh *24
12 [CR][LF] Sentence terminator [CR][LF]
GPZDA UTC Time and Date
Description
This message is a standard NMEA log which includes UTC time and date.
Command
LOG GPZDA ONTIME 1
Message definition
Field# | Structure | Description | Symbol | Example |
---|---|---|---|---|
1 | $GPZDA | Log header | $GPZDA | |
2 | utc | UTC time | hhmmss.ss | 071642.000 |
3 | day | Day, 01 to 31 | xx | 05 |
4 | month | Month, 01 to 12 | xx | 05 |
5 | year | Year | xxxx | 2012 |
6 | null | Local zone description - not available | xx | (empty when no data is present) |
7 | null | Local zone minutes description - not available | xx | |
8 | *xx | Checksum | *hh | *6F |
9 | [CR][LF] | Sentence terminator | [CR][LF] |