NMEA Message Introduction

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]