• Home
  • pcDuino
  • WiKi
  • Store
  • Distributors
  • Home
  • pcDuino
  • WiKi
  • Store
  • Distributors
HomeHardware KnowledgeIntroduction to NMEA format for GPS
Previous Next

Introduction to NMEA format for GPS

Posted by: Alvin Jin , March 30, 2014

[vc_row][vc_column width=”1/1″][vc_tour][vc_tab title=”What is NMEA data?” tab_id=”1396162463-1-53″][vc_column_text]Introduction

What is NMEA?

  1. Developed by National Marine Electronics Association
  2. Standard for interfacing marine electronic devices (GPS, Compass, Echo-sounder…)
  3. Standard specifies the electrical signal requirements, data transmission protocol (i.e. agreed format for transmitting data between two devices), message formats
  4. Most GPS receivers understand the most popular NMEA format  NMEA 0183
ASCII file
  • Easily readable (even by human)
  • Less compact than binary
Numerous sentence types
  1. Not all related to GPS application
  2. Some popular GPS-related sentences are described in this post
NMEA settings  
  1. Baud rate: 4800 (4800 characters in one second )
  2. Data bits: 8 (Bit 7 set to 0)
  3. Stop bits: 1 or 2
  • Parity: none
  • The “send” device and “receive” device should have same setting so as to transfer the NMEA data

[/vc_column_text][/vc_tab][vc_tab title=”Message Format and Sentence structures” tab_id=”1396162463-2-29″][vc_column_text]Standard Message Format

$aaaaa, df1,df2……… [Carriage Return][Line Feed]
  1. Each message startw with $
  2. Five characters after $ are address field
  3. •Multiple data fields delimited by commas
  4. Check sum (optional): a 2-character field (0-9,A-F) to increase data integrity
  5.  (*) character placed after the last data field
Sentence structure
There are three sentence structures
  1. Talker: output from talker (e.g. GPS receiver) to other devices (PAD)
  2. Query: means for listener (e.g. notebook) to request specified talker sentence from talker (GPS receiver)
  3. Proprietary: means for manufactures to use non-standard sentences for special purpose
Talker sentence
Format: $ttsss, df1, df2…[CR][LF]
  1. tt: defines device (for gps receivers the prefix is GP)
  2. sss: sentence type

Example

$GPGGA,031956,2218.2035,N,11410.7595,E,1,04,3,9,005.9,M,-001.3,M,,*51
The talker sends the GPS data in GGA sentence format.
Query sentence
Format: $ttllQ, sss, [CR][LF]

Example

CCGPQ,GGA, [CR][LF]

A computer (CC) is requesting from GPS device (GP) the GGA sentence.

Proprietary sentence

Format: $PmmmA,df1,df2,….[CR][LF]
  1. “P” indicates that it is a proprietary message
  2. “mmm” define as the manufacture
  3. The fifth character is a letter (A-Z) defines the specific message type

Example

$PLEIS,AHT,0,1.90,0*34
•“LEI” is Leica manufacturer
•“S” for set command

The message sets the antenna height at 1.9m in the configuration of the internal sensor setting.

[/vc_column_text][/vc_tab][vc_tab title=”Common NMEA-0183 Sentence ” tab_id=”1396164046334-2-10″][vc_column_text]Sentence                          Description

$GPGGA:                      Global positioning system fixed data

$GPGLL:                      Geographic position – latitude / longitude

$GPGSA:                      GNSS DOP and active satellites

$GPGSV:                       GNSS satellites in view

$GPRMC:                     Recommended minimum specific GPS data

$GPVTG:                     Course over ground and ground speed

To extract information related to surveyed positionà

Record at least one of the 3 sentences: $GPGGA, $GPGLL, $GPRMC

GGA Sentence Format

$GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,19.7,M,,,,0000*1F

Field                          Example                          Comments

Sentence ID           $GPGGA

UTC Time              092204.999                hhmmss.sss

Latitude                    4250.5589                  ddmm.mmmm

N/S Indicator                 S                               N = North, S = South

Longitude                  14718.5084               dddmm.mmmm

E/W Indicator                E                              E = East, W = West

Position Fix                     1                              0 = Invalid, 1 = Valid SPS,

2 = Valid DGPS, 3 = Valid PPS

Satellites Used               04                            Satellites being used (0-12)

HDOP                               24.4                         Horizontal dilution of precision

Altitude                             19.7                         Altitude (WGS-84 ellipsoid)

Altitude Units                    M                             M= Meters

Geoid Separation                                             Geoid separation (WGS-84 ellipsoid)

Seperation Units                                               M= Meters

Time since DGPS                                              in seconds

DGPS Station ID

Checksum                              *1F                           always begin with *

GLL Sentence Format

$GPGLL,4250.5589,S,14718.5084,E,092204.999,A*2D

Field                        Example                               Comments

ID                              $GPGLL

Latitude                 4250.5589                    ddmm.mmmm

N/S Indicator          S                                 N = North, S = South

Longitude              14718.5084                   dddmm.mmmm

E/W Indicator         E                                  E = East, W = West

UTC Time               092204.999                   hhmmss.sss

Status                             A                                   A = Valid, V = Invalid

Checksum                  *2D

GSA Sentence Format

$GPGSA,A,3,01,20,19,13,,,,,,,,,40.4,24.4,32.2*0A

Field                                 Example                  Comments

Sentence ID                    $GPGSA

Mode 1                                 A                            A = Auto 2D/3D

M = Forced 2D/3D

Mode 1                                  3                            1 = No fix, 2 = 2D, 3 = 3D

Satellite used 1                 01                           Satellite used on channel 1

Satellite used 12                24                         Satellite used on channel 12

PDOP                                   2.5                         Position dilution of precision

HDOP                                      1.3                     Horizontal dilution of precision

VDOP                                     2.1                         Vertical dilution of precision

Checksum                            *0A

GSV Sentence Format

$GPGSV,3,1,10,20,78,331,45,01,59,235,47,22,41,069,,13,32,252,45*70

Field                            Example             Comments

Sentence ID           $GPGSV

No. of messages       3                         No. of messages in complete (1-3)

Sequence no.           1                           Sequence no. of this entry (1-3)

Satellites in view    10

Satellite ID 1            20                        Range is 1-32

Elevation 1              78                        Elevation in degrees

Azimuth 1                331                       Azimuth in degrees

SNR 1                        45                        Signal to noise ratio dBHZ (0-99)

Satellite ID 2          01                        Range is 1-32

Elevation 2              59                        Elevation in degrees

Azimuth 2             235                       Azimuth in degrees

.

Checksum             *70[/vc_column_text][/vc_tab][/vc_tour][/vc_column][/vc_row]

Tags: Hardware Knowledge

Share!
Tweet

Alvin Jin

About the author

Leave a Reply Cancel reply

You must be logged in to post a comment.

Category

  • Home
  • pcDuino
  • WiKi
  • Store
  • Distributors