SlideShare a Scribd company logo
Hand to hand with GPS
Episode: 2
NMEA Messages
As we all know, what is GPS?
GPS is a system, widely used throughout the globe. It recites versatile superfluous
information including position, speed, time, altitude very precisely. Its having
diverse applications like navigation, tracking, tracing, location, timing and very soon
it will be very essential indigence for human being as same as the telephone.
Now briefly we see the constituents of GPS. It uses between 24 and 32 Medium
Earth Orbit satellites that transmit precise microwave signals. A GPS receiver
receives that microwave signals to determine the above mentioned information. It
was developed by United States for defence purpose, but now it can be accessed by
everyone freely.
The important questions are, how can we use GPS? , what information we can
get? So now a days it is very easy to use GPS, many of the electronic gazettes around
us are loaded with GPS and these are having very easy to use graphical user
interface. Tracking, navigation, mapping can be done with the help of these gazettes.
But to make customize systems that use GPS as per our requirement, we just require
a GPS receiver.
A GPS receiver is a chip that receives microwave signals from satellites, converts
that signals to a particular message protocol like NMEA and gives serial output. We
can use that serial output in our system. The canonical hassle is to understand the
protocol of NMEA. We are going to describe an algorithm that takes serial input,
analyze it and recites the superfluous information.
The algorithm is very easygoing, can be implemented to any programming
language, any embedded system’s compiler like Keil, AVR studio, winAVR, Keil for
ARM etc.
What is NMEA message format?, National Marine Electronics Association (NMEA)
is an organisation that is creating standards for marine electronics to unify the
systems. In GPS’s context NMEA standards are the communication protocol,
followed by GPS receiver to give serial output.
Fig 1 | Understanding NMEA messages.
The diagram shows that a GPS receiver receives microwave signals from
satellite system and gives output in NMEA messages. NMEA messages are
basically packets of data or information. GPS receiver delivers information
line by line, here we refer these lines as the packets of information. These
messages are classified in various types of packets. Each packet has its own
protocol to send the information. These packets are identified by their
names. GPS receiver sends these packets serially, every second it delivers a
packet of information.
Fig 2 | understanding of NMEA Packets
First five character of a packet represent the packet name, and other
superfluous information separated by comma.
Ie. $GPVTG,176.41,T,,M,0.00,N,0.00,K,A*38
Here ‘$GPVTG’ is packet name and it is followed by other information.
Fig 3 | Actual NMEA messages
Important NMEA message packets.
a. GGA – Global Positioning System Fix Data
b. GLL – Geographic Position – Latitude/Longitude
c. GSA – DOP and Active Satellites
d. GSV – Satellites in view
e. RMC – Recommended Minimum Specific GNSS Data
f. VTG – Course Over Ground and Ground Speed
a. $GPGGA - Global Positioning System Fix Data
Data/Information : Time, Position, Numbers of satellite used, altitude
etc.
Message format:
$GPGGA,hhmmss.ss,LLmm.llll,{N/S},yyymm.mmmm,{E/W},i,ns,h.d,a.h,M,
g.s,M,a.s,XXXX*CS
Index Message Discription
0 $GPGGA Packet name (Global Positioning System Fix Data)
1 hhmmss.ss UTC Time
hh : hours
mm : minutes
ss.ss : seconds
2 LLmm.mmmm Latitude
LL : Degree
mm.mmmm = minutes
3 {N/S} North or South
4 yyymmm.mmmm Longitude
yyy : Degree
mmm.mmmm : minutes
5 {E/W} East or West
6 i Valid indicator (Fix value)
0: Not valid
1: Valid
7 ns Number satellites used
8 h.d HDOP : Horizontal Dilution Of Precision
9 a.h Altitude
10 M Antenna height Unit (meters)
11 g.s Difference between the WGS-84 reference ellipsoid
surface and the mean-sea-level altitude.
12 M Unit of above parameter (meters)
13 a.s Age in seconds since last update
14 XXXX Reference station ID
15 CS Check Sum
Table 1 | GGA Packet format
b. $GPGLL – Geographic Position – Latitude/Longitude
Data/Information: Position, UTC time, and status etc.
Packet format:
$GPGLL,LLmm.mmmm,{N/S},yyymm.mmmm,{E/W},hhmmss.ss,i,m*CS
Index Message Discription
0 $GPGLL Packet name (Geographic Position – Latitude/Longitude)
1 LLmm.mmmm Latitude
LL : Degree
mm.mmmm = minutes
2 {N/S} North or South
3 yyymmm.mmmm Longitude
yyy : Degree
mmm.mmmm : minutes
4 {E/W} East or West
5 hhmmss.ss UTC Time
hh : hours
mm : minutes
ss.ss : seconds
6 i Status indicator
A : valid
V : invalid
7 m Mode indicator
A: autonomous
N: data not valid
8 CS Check sum
Table 2 | GLL Packet format
c. $GPGSA – DOP and Active Satellites
Data/Information : Operating mode, satellite used in fix position and DOP etc.
Packet format:
$GPGSA,i,j,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,p.d,h.d,v.d*CS
Index Message Discription
0 $GPGSA Packet name (DOP and Active Satellites)
1 i : Mode
M : Manual, forced to operate in 2D or 3D
A : Automatic, 3D/2D
2 J : Mode
1 : Fix not available
2 : 2D
3 : 3D
3 aa Ids of Satellites used in position fix , null for unused
4 p.d PDOP
5 h.d HDOP
6 v.d VDOP
7 CS Check sum
Table 3 | GSA packet format
d. $GPGSV : GPS Satellites in view
Data/information : Messages, messages id, satellite id, elevation, azimuth etc.
Packet format:
$GPGSV,N,M, ns,si,se,saz,sn,…………. , ns,si,se,saz,sn *CS
Index Message Discription
0 $GPGSV Packet name (GPS Satellites in view)
1 N Number of messages
2 M Message Number
3 ns Number of satellites in view
4 si Satellites ID
5 Se Satellites Elevation
6 saz Satellite azimuth
7 sn SNR number
8-19 3 set of 4-7 Satellites information
20 CS Checksum
Table 4 | GSV packet format
e. $GPRMC – Recommended Minimum Specific GNSS Data
Data/information : Time, Date, Position, speed and status etc.
Packet Format:
$GPRMC,hhmmss.ss,i,LLmm.mmmm,{N/S},yyymm.mmmm,{E/W},s.n,t.c,DDMMYY,m.v,
{E/W},
m*CS<CR><LF>
Index Message Discription
0 $GPRMC Packet name (Recommended Minimum Specific GNSS
Data)
1 hhmmss.ss UTC Time
hh : hours
mm : minutes
ss.ss : seconds
2 i Valid indicator
0: Not valid
1: Valid
3 LLmm.mmmm Latitude
LL : Degree
mm.mmmm = minutes
4 {N/S} North or South
5 yyymmm.mmmm Longitude
yyy : Degree
mmm.mmmm : minutes
6 {E/W} East or West
7 s.n Speed in Knots
8 t.c True Course/ Heading
9 DDMMYY Date
10 m.v Magnetic variation
11 {E/W} East or West
12 m Mode indicator
A: autonomous
N: data not valid
13 CS Check Sum
Table 5 | RMC packet format
f. $GPVTG – Course Over Ground and Ground Speed
Data/Information: Speed and course.
Packet format:
$GPVTG,m.v,T,m.h,M,s.n,N,s.k,K,m*CS<CR><LF>
Index Message Discription
0 $GPVTG Packet name (Course Over Ground and Ground Speed)
1 m.v Magnetic Variation / heading
2 T Fixed text (Heading unit degree)
3 m.h Magnetic heading
4 M Degree, magnetic heading unit
5 s.n Speed in Knots
6 N Speed unit Knots
7 s.k Speed in KM per Hour
8 K Speed unit KM / hr
9 m Mode indicator
A: autonomous
N: data not valid
10 CS Check sum
Table 4 | GSV packet format
Algo for extracting GPS data
form NMEA messages
Step 1. Create connection with GPS receiver.
Step 2. While RX: go to Step 3 –
Step3. Message = Read Line (Rx data)
Step4. if ( message [0:2] ! = ‘$GP’ ) – we are not getting NMEA messages / packets
{
Break – go to step 3.
}
. else – we are getting NMEA messages.
{
Step 5. if (message [0:5+ = = ‘$GPGGA’ )
{
Fragments [] = explode(“,” message)
if (Fragments [2] == ‘’” OR Fragments [4] == “‘’)
{
latitude or longitude can’t be determined
Break loop – go to step 3
}
UTCTime = Fragments[1]
– Format :- hhmmss.ss
UTCTime = UTCTime *0:1+ . “:”.UTCTime *2:3+ . “:”.UTCTime *4:5+
– Format :- hh:mm:ss
Latitude = Fragments [2]
-Format :- xxmm.dddd
Latitude = Latitude[0:1] + Latitude[2:8] / 60
-Format :- Decimal format
Loc_N/S = Fragments[3]
Longitude = Fragments[4]
-Format:- yyymm.dddd
Longitude = Longitude[0:2] + Longitude [3:9] / 60
-Format :- Decimal format
Loc_E/W = Fragments[5]
Fix = Fragments[6]
Nos_satellite = Fragments[7]
HDOP = Fragments[8]
Altitude = Fragments[9]
Break – go to step 3.
}
Step6. if (message *0:5+ = = ‘$GPGLL’ )
{
Fragments *+ = explode(“,” message)
if (Fragments *1+ == ‘’” OR Fragments *3+ == “‘’)
{
latitude or longitude can’t be determined
Break loop – go to step 3
}
Latitude = Fragments [1]
-Format :- xxmm.dddd
Latitude = Latitude[0:1] + Latitude[2:8] / 60
-Format :- Decimal format
Loc_N/S = Fragments[2]
Longitude = Fragments[3]
-Format:- yyymm.dddd
Longitude = Longitude[0:2] + Longitude [3:9] / 60
-Format :- Decimal format
Loc_E/W = Fragments[4]
UTCTime = Fragments[5]
– Format :- hhmmss.ss
UTCTime = UTCTime *0:1+ . “:”.UTCTime *2:3+ . “:”.UTCTime *4:5+
– Format :- hh:mm:ss
Status = Fragments[6]
Mode = Fragments [7]
Break – go to step 3.
}
Step7. if (message *0:5+ = = ‘$GPGSA’ )
{
Fragments *+ = explode(“,” message)
Mode_a = Fragments[1]
Mode_b = Fragments[2]
Operating_setellites = Fragments[3]
PDOP = Fragments[4]
HDOP = Fragments[5]
VDOP = Fragments[6]
Break – go to step 3.
}
Step8. if (message *0:5+ = = ‘$GPGSV’ )
{
Fragments *+ = explode(“,” message)
Nos_messages = Fragments[1]
Message_No = Fragments[2]
Nos_setellites = Fragments[3]
Satellite_ID = Fragments[4]
Satellite_elevation = Fragments[5]
Satellite_azimuth = Fragments[6]
SNR_No = Fragments[7]
Break – go to step 3.
}
Step 9. if (message *0:5+ = = ‘$GPRMC’ )
{
Fragments *+ = explode(“,” message)
if (Fragments *3+ == ‘’” OR Fragments *5+ == “‘’)
{
latitude or longitude can’t be determined
Break loop – go to step 3
}
UTCTime = Fragments[1]
– Format :- hhmmss.ss
UTCTime = UTCTime *0:1+ . “:”.UTCTime *2:3+ . “:”.UTCTime *4:5+
– Format :- hh:mm:ss
Status = Fragments[2]
Latitude = Fragments [3]
-Format :- xxmm.dddd
Latitude = Latitude[0:1] + Latitude[2:8] / 60
-Format :- Decimal format
Loc_N/S = Fragments[4]
Longitude = Fragments[5]
-Format:- yyymm.dddd
Longitude = Longitude[0:2] + Longitude [3:9] / 60
-Format :- Decimal format
Loc_E/W = Fragments[6]
Speed = Fragments[7]
Heading = Fragments[8]
Date = Fragments[9]
-format :- ddmmyy
Date = Date*0:1+. “-”. Date*2:3+. “-”. Date*4:5+
-Format:- dd-mm-yy
Magnetic_variation = Fragments[10]
Mode = Fragments[12]
Break – go to step 3.
}
Step10. if (message *0:5+ = = ‘$GPVTG’ )
{
Fragments *+ = explode(“,” message)
Heading = Fragments[1]
Heading_unit = Fragments[2]
Magnetic_heading = Fragments[3]
Magnetic_heading_unit= Fragments[4]
Speed_knots= Fragments[5]
Speed_unit_knots = Fragments[6]
Speed_KM = Fragments[7]
Speed_unit_KM = Fragments[8]
Mode = Fragments[9]
Break -go to step. 3
}
Break – go to step 3.
}
Explanation for some functions used in algo :
Message[i:j] : here message in a string that stores a packet in it.
Message[i:j] : represent a substring of message from index i to j elements (note i
and j both are included).
Explode : it splits the string in to fragments by a specific character, here we are splitting
message by comma “,”, and it stores all the fragments in to an array named
fragments[].
Other notations are common notations for many programming languages like C, C++.
User can use either full or partial algorithm according to requirement.

More Related Content

What's hot

Global positioning system
Global positioning systemGlobal positioning system
Global positioning system
jananisivakumar97
 
GPS(Global Positioning system
GPS(Global Positioning systemGPS(Global Positioning system
GPS(Global Positioning system
tanmoy chakrabortty
 
Latest Advances in GPS technology Seminar report
Latest Advances in GPS technology Seminar reportLatest Advances in GPS technology Seminar report
Latest Advances in GPS technology Seminar report
Mode Gautam Raj
 
GPS[Global Positioning System]
GPS[Global Positioning System]GPS[Global Positioning System]
GPS[Global Positioning System]
Ishwar Bulbule
 
Gps-signal
Gps-signalGps-signal
Gps-signal
Kutubuddin ANSARI
 
Gps signal structure
Gps signal structureGps signal structure
Gps signal structure
Sandeep Sasidharan
 
Interfacing GPS with 8051
Interfacing GPS with 8051Interfacing GPS with 8051
Interfacing GPS with 8051
Praveen Kumar
 
Sources of errors in GNSS measurements and dilution of precision (DOP) parame...
Sources of errors in GNSS measurements and dilution of precision (DOP) parame...Sources of errors in GNSS measurements and dilution of precision (DOP) parame...
Sources of errors in GNSS measurements and dilution of precision (DOP) parame...
Olexiy Pogurelskiy
 
Gps
GpsGps
Gps (global positioning system)
Gps (global positioning system)Gps (global positioning system)
Gps (global positioning system)
mustahsanbsphy873
 
GSM Architecture
GSM ArchitectureGSM Architecture
GSM Architecture
koonlay
 
Gps
GpsGps
2.5G Cellular Standards
2.5G Cellular Standards2.5G Cellular Standards
2.5G Cellular Standards
GauravBiswas9
 
GPS (GLOBAL POSITIONING SYSTEM)
GPS (GLOBAL POSITIONING SYSTEM)GPS (GLOBAL POSITIONING SYSTEM)
GPS (GLOBAL POSITIONING SYSTEM)
Abdul mannan Karim
 
Gps ppt
Gps pptGps ppt
Introduction-of-GNSS-2
Introduction-of-GNSS-2Introduction-of-GNSS-2
Introduction-of-GNSS-2
Kutubuddin ANSARI
 
TYBSC IT PGIS Unit II Chapter I Data Management and Processing Systems
TYBSC IT PGIS Unit II Chapter I Data Management and Processing SystemsTYBSC IT PGIS Unit II Chapter I Data Management and Processing Systems
TYBSC IT PGIS Unit II Chapter I Data Management and Processing Systems
Arti Parab Academics
 
GLONASS.pptx
GLONASS.pptxGLONASS.pptx
GLONASS.pptx
NikhilSapre3
 
Pacs network signalling
Pacs network signallingPacs network signalling
Gps
GpsGps
Gps
nil65
 

What's hot (20)

Global positioning system
Global positioning systemGlobal positioning system
Global positioning system
 
GPS(Global Positioning system
GPS(Global Positioning systemGPS(Global Positioning system
GPS(Global Positioning system
 
Latest Advances in GPS technology Seminar report
Latest Advances in GPS technology Seminar reportLatest Advances in GPS technology Seminar report
Latest Advances in GPS technology Seminar report
 
GPS[Global Positioning System]
GPS[Global Positioning System]GPS[Global Positioning System]
GPS[Global Positioning System]
 
Gps-signal
Gps-signalGps-signal
Gps-signal
 
Gps signal structure
Gps signal structureGps signal structure
Gps signal structure
 
Interfacing GPS with 8051
Interfacing GPS with 8051Interfacing GPS with 8051
Interfacing GPS with 8051
 
Sources of errors in GNSS measurements and dilution of precision (DOP) parame...
Sources of errors in GNSS measurements and dilution of precision (DOP) parame...Sources of errors in GNSS measurements and dilution of precision (DOP) parame...
Sources of errors in GNSS measurements and dilution of precision (DOP) parame...
 
Gps
GpsGps
Gps
 
Gps (global positioning system)
Gps (global positioning system)Gps (global positioning system)
Gps (global positioning system)
 
GSM Architecture
GSM ArchitectureGSM Architecture
GSM Architecture
 
Gps
GpsGps
Gps
 
2.5G Cellular Standards
2.5G Cellular Standards2.5G Cellular Standards
2.5G Cellular Standards
 
GPS (GLOBAL POSITIONING SYSTEM)
GPS (GLOBAL POSITIONING SYSTEM)GPS (GLOBAL POSITIONING SYSTEM)
GPS (GLOBAL POSITIONING SYSTEM)
 
Gps ppt
Gps pptGps ppt
Gps ppt
 
Introduction-of-GNSS-2
Introduction-of-GNSS-2Introduction-of-GNSS-2
Introduction-of-GNSS-2
 
TYBSC IT PGIS Unit II Chapter I Data Management and Processing Systems
TYBSC IT PGIS Unit II Chapter I Data Management and Processing SystemsTYBSC IT PGIS Unit II Chapter I Data Management and Processing Systems
TYBSC IT PGIS Unit II Chapter I Data Management and Processing Systems
 
GLONASS.pptx
GLONASS.pptxGLONASS.pptx
GLONASS.pptx
 
Pacs network signalling
Pacs network signallingPacs network signalling
Pacs network signalling
 
Gps
GpsGps
Gps
 

Similar to Understanding GPS & NMEA Messages and Algo to extract Information from NMEA.

#4 gps introduction &amp; gps messages
#4 gps introduction &amp; gps messages#4 gps introduction &amp; gps messages
#4 gps introduction &amp; gps messages
MohammedHusain20
 
Design and implementation of GPS Tracker
Design and implementation of GPS TrackerDesign and implementation of GPS Tracker
Design and implementation of GPS Tracker
Vignesh Kannan
 
Gps 2
Gps 2Gps 2
Global Positioning System in Precision Agriculture
Global Positioning System in Precision AgricultureGlobal Positioning System in Precision Agriculture
Global Positioning System in Precision Agriculture
Redmond R. Shamshiri
 
Introduction to gps and gnss
Introduction to gps and gnssIntroduction to gps and gnss
Introduction to gps and gnss
Vivek Srivastava
 
Stolen car recovery
Stolen car recoveryStolen car recovery
Stolen car recovery
Hossam Zein
 
CE6404 ANNA UNIVERSITY Unit iv gps surveying
CE6404 ANNA UNIVERSITY Unit iv gps surveyingCE6404 ANNA UNIVERSITY Unit iv gps surveying
CE6404 ANNA UNIVERSITY Unit iv gps surveying
Dr Gopikrishnan T
 
AUTOMATIC VEHICLE ACCIDENT INFORMATION BY SMS SYSTEM (AVAIS SYSTEM) Gps gsm a...
AUTOMATIC VEHICLE ACCIDENT INFORMATION BY SMS SYSTEM (AVAIS SYSTEM) Gps gsm a...AUTOMATIC VEHICLE ACCIDENT INFORMATION BY SMS SYSTEM (AVAIS SYSTEM) Gps gsm a...
AUTOMATIC VEHICLE ACCIDENT INFORMATION BY SMS SYSTEM (AVAIS SYSTEM) Gps gsm a...
kailashgavare
 
Extraction of Ephemeris file from Matlab SDR
Extraction of Ephemeris file from Matlab SDRExtraction of Ephemeris file from Matlab SDR
Extraction of Ephemeris file from Matlab SDR
AsimKhan367
 
maXbox starter 34 GPS Tutorial
maXbox starter 34 GPS TutorialmaXbox starter 34 GPS Tutorial
maXbox starter 34 GPS Tutorial
Max Kleiner
 
The effects of using variable lengths for degraded signal acquisition in GPS ...
The effects of using variable lengths for degraded signal acquisition in GPS ...The effects of using variable lengths for degraded signal acquisition in GPS ...
The effects of using variable lengths for degraded signal acquisition in GPS ...
IJECEIAES
 
7_gsm.ppt
7_gsm.ppt7_gsm.ppt
7_gsm.ppt
usmanEhsan8
 
Gprs
GprsGprs
GPS Signals (1)
GPS Signals (1)GPS Signals (1)
Introducing the Galileo PVT App:from Assisted GNSS to NeQuick model in Android
Introducing the Galileo PVT App:from Assisted GNSS to NeQuick model in AndroidIntroducing the Galileo PVT App:from Assisted GNSS to NeQuick model in Android
Introducing the Galileo PVT App:from Assisted GNSS to NeQuick model in Android
The European GNSS Agency (GSA)
 
Agps05
Agps05Agps05
Gisgpsimplementationanduseforstormwatermapping 000 0
Gisgpsimplementationanduseforstormwatermapping 000 0Gisgpsimplementationanduseforstormwatermapping 000 0
Gisgpsimplementationanduseforstormwatermapping 000 0
SuKaOt
 
GPS Receiver ICS2014
GPS Receiver ICS2014GPS Receiver ICS2014
GPS Receiver ICS2014
Mazhar Abbas
 
Gps
GpsGps
Advanced Anti Accidental Solution by Pre Analyzing, Tracking and Detection of...
Advanced Anti Accidental Solution by Pre Analyzing, Tracking and Detection of...Advanced Anti Accidental Solution by Pre Analyzing, Tracking and Detection of...
Advanced Anti Accidental Solution by Pre Analyzing, Tracking and Detection of...
IRJET Journal
 

Similar to Understanding GPS & NMEA Messages and Algo to extract Information from NMEA. (20)

#4 gps introduction &amp; gps messages
#4 gps introduction &amp; gps messages#4 gps introduction &amp; gps messages
#4 gps introduction &amp; gps messages
 
Design and implementation of GPS Tracker
Design and implementation of GPS TrackerDesign and implementation of GPS Tracker
Design and implementation of GPS Tracker
 
Gps 2
Gps 2Gps 2
Gps 2
 
Global Positioning System in Precision Agriculture
Global Positioning System in Precision AgricultureGlobal Positioning System in Precision Agriculture
Global Positioning System in Precision Agriculture
 
Introduction to gps and gnss
Introduction to gps and gnssIntroduction to gps and gnss
Introduction to gps and gnss
 
Stolen car recovery
Stolen car recoveryStolen car recovery
Stolen car recovery
 
CE6404 ANNA UNIVERSITY Unit iv gps surveying
CE6404 ANNA UNIVERSITY Unit iv gps surveyingCE6404 ANNA UNIVERSITY Unit iv gps surveying
CE6404 ANNA UNIVERSITY Unit iv gps surveying
 
AUTOMATIC VEHICLE ACCIDENT INFORMATION BY SMS SYSTEM (AVAIS SYSTEM) Gps gsm a...
AUTOMATIC VEHICLE ACCIDENT INFORMATION BY SMS SYSTEM (AVAIS SYSTEM) Gps gsm a...AUTOMATIC VEHICLE ACCIDENT INFORMATION BY SMS SYSTEM (AVAIS SYSTEM) Gps gsm a...
AUTOMATIC VEHICLE ACCIDENT INFORMATION BY SMS SYSTEM (AVAIS SYSTEM) Gps gsm a...
 
Extraction of Ephemeris file from Matlab SDR
Extraction of Ephemeris file from Matlab SDRExtraction of Ephemeris file from Matlab SDR
Extraction of Ephemeris file from Matlab SDR
 
maXbox starter 34 GPS Tutorial
maXbox starter 34 GPS TutorialmaXbox starter 34 GPS Tutorial
maXbox starter 34 GPS Tutorial
 
The effects of using variable lengths for degraded signal acquisition in GPS ...
The effects of using variable lengths for degraded signal acquisition in GPS ...The effects of using variable lengths for degraded signal acquisition in GPS ...
The effects of using variable lengths for degraded signal acquisition in GPS ...
 
7_gsm.ppt
7_gsm.ppt7_gsm.ppt
7_gsm.ppt
 
Gprs
GprsGprs
Gprs
 
GPS Signals (1)
GPS Signals (1)GPS Signals (1)
GPS Signals (1)
 
Introducing the Galileo PVT App:from Assisted GNSS to NeQuick model in Android
Introducing the Galileo PVT App:from Assisted GNSS to NeQuick model in AndroidIntroducing the Galileo PVT App:from Assisted GNSS to NeQuick model in Android
Introducing the Galileo PVT App:from Assisted GNSS to NeQuick model in Android
 
Agps05
Agps05Agps05
Agps05
 
Gisgpsimplementationanduseforstormwatermapping 000 0
Gisgpsimplementationanduseforstormwatermapping 000 0Gisgpsimplementationanduseforstormwatermapping 000 0
Gisgpsimplementationanduseforstormwatermapping 000 0
 
GPS Receiver ICS2014
GPS Receiver ICS2014GPS Receiver ICS2014
GPS Receiver ICS2014
 
Gps
GpsGps
Gps
 
Advanced Anti Accidental Solution by Pre Analyzing, Tracking and Detection of...
Advanced Anti Accidental Solution by Pre Analyzing, Tracking and Detection of...Advanced Anti Accidental Solution by Pre Analyzing, Tracking and Detection of...
Advanced Anti Accidental Solution by Pre Analyzing, Tracking and Detection of...
 

More from Robo India

Robot Motions
Robot MotionsRobot Motions
Robot Motions
Robo India
 
Servo Based 5 Axis Robotic Arm Project Report
Servo Based 5 Axis Robotic Arm Project ReportServo Based 5 Axis Robotic Arm Project Report
Servo Based 5 Axis Robotic Arm Project Report
Robo India
 
A project report on energy meter monitoring online using wireless transmissio...
A project report on energy meter monitoring online using wireless transmissio...A project report on energy meter monitoring online using wireless transmissio...
A project report on energy meter monitoring online using wireless transmissio...
Robo India
 
A project report on wireless energy meter reading using x bee
A project report on wireless energy meter reading using x beeA project report on wireless energy meter reading using x bee
A project report on wireless energy meter reading using x bee
Robo India
 
PC Based Industrial Automation With AVR Atmega 16 - Project Report
PC Based Industrial Automation With AVR Atmega 16 - Project ReportPC Based Industrial Automation With AVR Atmega 16 - Project Report
PC Based Industrial Automation With AVR Atmega 16 - Project Report
Robo India
 
Indian Banks Taglines and Punch Lines
Indian Banks Taglines and Punch LinesIndian Banks Taglines and Punch Lines
Indian Banks Taglines and Punch Lines
Robo India
 
Evaluation of dynamics | Gyroscope, Accelerometer, Inertia Measuring Unit and...
Evaluation of dynamics | Gyroscope, Accelerometer, Inertia Measuring Unit and...Evaluation of dynamics | Gyroscope, Accelerometer, Inertia Measuring Unit and...
Evaluation of dynamics | Gyroscope, Accelerometer, Inertia Measuring Unit and...
Robo India
 
Relay and AVR Atmel Atmega 16
Relay and AVR Atmel Atmega 16Relay and AVR Atmel Atmega 16
Relay and AVR Atmel Atmega 16
Robo India
 
DTMF - Dual Tone Multi Frequency Signaling and AVR Atmel Atmega16multi-freque...
DTMF - Dual Tone Multi Frequency Signaling and AVR Atmel Atmega16multi-freque...DTMF - Dual Tone Multi Frequency Signaling and AVR Atmel Atmega16multi-freque...
DTMF - Dual Tone Multi Frequency Signaling and AVR Atmel Atmega16multi-freque...
Robo India
 
Servo motor and AVR Atmel Atmega 16
Servo motor and AVR  Atmel Atmega 16Servo motor and AVR  Atmel Atmega 16
Servo motor and AVR Atmel Atmega 16
Robo India
 
IR Sensor Working and Concepts
IR Sensor Working and ConceptsIR Sensor Working and Concepts
IR Sensor Working and Concepts
Robo India
 
Digital and Analog IR Sensor Working and Cocepts
Digital and Analog IR Sensor Working and Cocepts Digital and Analog IR Sensor Working and Cocepts
Digital and Analog IR Sensor Working and Cocepts
Robo India
 
ADC - Analog to Digital Conversion on AVR microcontroller Atmega16
ADC - Analog to Digital  Conversion on AVR microcontroller Atmega16ADC - Analog to Digital  Conversion on AVR microcontroller Atmega16
ADC - Analog to Digital Conversion on AVR microcontroller Atmega16
Robo India
 
LCD Theory and Working Principles
LCD Theory and Working PrinciplesLCD Theory and Working Principles
LCD Theory and Working Principles
Robo India
 
Led Theory and Working Principles
Led Theory and Working PrinciplesLed Theory and Working Principles
Led Theory and Working Principles
Robo India
 
Fundamentals of embedded system and electronics
Fundamentals of embedded system and electronicsFundamentals of embedded system and electronics
Fundamentals of embedded system and electronics
Robo India
 
Single bit oprations in avr microcontroller
Single bit oprations in avr microcontrollerSingle bit oprations in avr microcontroller
Single bit oprations in avr microcontroller
Robo India
 
Input Output programming in AVR microcontroller
Input  Output  programming in AVR microcontrollerInput  Output  programming in AVR microcontroller
Input Output programming in AVR microcontroller
Robo India
 
Marketing to youth
Marketing to youthMarketing to youth
Marketing to youth
Robo India
 
C language
C languageC language
C language
Robo India
 

More from Robo India (20)

Robot Motions
Robot MotionsRobot Motions
Robot Motions
 
Servo Based 5 Axis Robotic Arm Project Report
Servo Based 5 Axis Robotic Arm Project ReportServo Based 5 Axis Robotic Arm Project Report
Servo Based 5 Axis Robotic Arm Project Report
 
A project report on energy meter monitoring online using wireless transmissio...
A project report on energy meter monitoring online using wireless transmissio...A project report on energy meter monitoring online using wireless transmissio...
A project report on energy meter monitoring online using wireless transmissio...
 
A project report on wireless energy meter reading using x bee
A project report on wireless energy meter reading using x beeA project report on wireless energy meter reading using x bee
A project report on wireless energy meter reading using x bee
 
PC Based Industrial Automation With AVR Atmega 16 - Project Report
PC Based Industrial Automation With AVR Atmega 16 - Project ReportPC Based Industrial Automation With AVR Atmega 16 - Project Report
PC Based Industrial Automation With AVR Atmega 16 - Project Report
 
Indian Banks Taglines and Punch Lines
Indian Banks Taglines and Punch LinesIndian Banks Taglines and Punch Lines
Indian Banks Taglines and Punch Lines
 
Evaluation of dynamics | Gyroscope, Accelerometer, Inertia Measuring Unit and...
Evaluation of dynamics | Gyroscope, Accelerometer, Inertia Measuring Unit and...Evaluation of dynamics | Gyroscope, Accelerometer, Inertia Measuring Unit and...
Evaluation of dynamics | Gyroscope, Accelerometer, Inertia Measuring Unit and...
 
Relay and AVR Atmel Atmega 16
Relay and AVR Atmel Atmega 16Relay and AVR Atmel Atmega 16
Relay and AVR Atmel Atmega 16
 
DTMF - Dual Tone Multi Frequency Signaling and AVR Atmel Atmega16multi-freque...
DTMF - Dual Tone Multi Frequency Signaling and AVR Atmel Atmega16multi-freque...DTMF - Dual Tone Multi Frequency Signaling and AVR Atmel Atmega16multi-freque...
DTMF - Dual Tone Multi Frequency Signaling and AVR Atmel Atmega16multi-freque...
 
Servo motor and AVR Atmel Atmega 16
Servo motor and AVR  Atmel Atmega 16Servo motor and AVR  Atmel Atmega 16
Servo motor and AVR Atmel Atmega 16
 
IR Sensor Working and Concepts
IR Sensor Working and ConceptsIR Sensor Working and Concepts
IR Sensor Working and Concepts
 
Digital and Analog IR Sensor Working and Cocepts
Digital and Analog IR Sensor Working and Cocepts Digital and Analog IR Sensor Working and Cocepts
Digital and Analog IR Sensor Working and Cocepts
 
ADC - Analog to Digital Conversion on AVR microcontroller Atmega16
ADC - Analog to Digital  Conversion on AVR microcontroller Atmega16ADC - Analog to Digital  Conversion on AVR microcontroller Atmega16
ADC - Analog to Digital Conversion on AVR microcontroller Atmega16
 
LCD Theory and Working Principles
LCD Theory and Working PrinciplesLCD Theory and Working Principles
LCD Theory and Working Principles
 
Led Theory and Working Principles
Led Theory and Working PrinciplesLed Theory and Working Principles
Led Theory and Working Principles
 
Fundamentals of embedded system and electronics
Fundamentals of embedded system and electronicsFundamentals of embedded system and electronics
Fundamentals of embedded system and electronics
 
Single bit oprations in avr microcontroller
Single bit oprations in avr microcontrollerSingle bit oprations in avr microcontroller
Single bit oprations in avr microcontroller
 
Input Output programming in AVR microcontroller
Input  Output  programming in AVR microcontrollerInput  Output  programming in AVR microcontroller
Input Output programming in AVR microcontroller
 
Marketing to youth
Marketing to youthMarketing to youth
Marketing to youth
 
C language
C languageC language
C language
 

Recently uploaded

ZK on Polkadot zero knowledge proofs - sub0.pptx
ZK on Polkadot zero knowledge proofs - sub0.pptxZK on Polkadot zero knowledge proofs - sub0.pptx
ZK on Polkadot zero knowledge proofs - sub0.pptx
dot55audits
 
B. Ed Syllabus for babasaheb ambedkar education university.pdf
B. Ed Syllabus for babasaheb ambedkar education university.pdfB. Ed Syllabus for babasaheb ambedkar education university.pdf
B. Ed Syllabus for babasaheb ambedkar education university.pdf
BoudhayanBhattachari
 
MARY JANE WILSON, A “BOA MÃE” .
MARY JANE WILSON, A “BOA MÃE”           .MARY JANE WILSON, A “BOA MÃE”           .
MARY JANE WILSON, A “BOA MÃE” .
Colégio Santa Teresinha
 
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
imrankhan141184
 
How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17
Celine George
 
Mule event processing models | MuleSoft Mysore Meetup #47
Mule event processing models | MuleSoft Mysore Meetup #47Mule event processing models | MuleSoft Mysore Meetup #47
Mule event processing models | MuleSoft Mysore Meetup #47
MysoreMuleSoftMeetup
 
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdfবাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
eBook.com.bd (প্রয়োজনীয় বাংলা বই)
 
Constructing Your Course Container for Effective Communication
Constructing Your Course Container for Effective CommunicationConstructing Your Course Container for Effective Communication
Constructing Your Course Container for Effective Communication
Chevonnese Chevers Whyte, MBA, B.Sc.
 
Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...
Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...
Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...
Leena Ghag-Sakpal
 
math operations ued in python and all used
math operations ued in python and all usedmath operations ued in python and all used
math operations ued in python and all used
ssuser13ffe4
 
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
Nguyen Thanh Tu Collection
 
RHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem students
RHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem studentsRHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem students
RHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem students
Himanshu Rai
 
Temple of Asclepius in Thrace. Excavation results
Temple of Asclepius in Thrace. Excavation resultsTemple of Asclepius in Thrace. Excavation results
Temple of Asclepius in Thrace. Excavation results
Krassimira Luka
 
Hindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdfHindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdf
Dr. Mulla Adam Ali
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
Nicholas Montgomery
 
Gender and Mental Health - Counselling and Family Therapy Applications and In...
Gender and Mental Health - Counselling and Family Therapy Applications and In...Gender and Mental Health - Counselling and Family Therapy Applications and In...
Gender and Mental Health - Counselling and Family Therapy Applications and In...
PsychoTech Services
 
Film vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movieFilm vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movie
Nicholas Montgomery
 
Chapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptxChapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptx
Denish Jangid
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
adhitya5119
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
adhitya5119
 

Recently uploaded (20)

ZK on Polkadot zero knowledge proofs - sub0.pptx
ZK on Polkadot zero knowledge proofs - sub0.pptxZK on Polkadot zero knowledge proofs - sub0.pptx
ZK on Polkadot zero knowledge proofs - sub0.pptx
 
B. Ed Syllabus for babasaheb ambedkar education university.pdf
B. Ed Syllabus for babasaheb ambedkar education university.pdfB. Ed Syllabus for babasaheb ambedkar education university.pdf
B. Ed Syllabus for babasaheb ambedkar education university.pdf
 
MARY JANE WILSON, A “BOA MÃE” .
MARY JANE WILSON, A “BOA MÃE”           .MARY JANE WILSON, A “BOA MÃE”           .
MARY JANE WILSON, A “BOA MÃE” .
 
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
 
How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17
 
Mule event processing models | MuleSoft Mysore Meetup #47
Mule event processing models | MuleSoft Mysore Meetup #47Mule event processing models | MuleSoft Mysore Meetup #47
Mule event processing models | MuleSoft Mysore Meetup #47
 
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdfবাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
 
Constructing Your Course Container for Effective Communication
Constructing Your Course Container for Effective CommunicationConstructing Your Course Container for Effective Communication
Constructing Your Course Container for Effective Communication
 
Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...
Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...
Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...
 
math operations ued in python and all used
math operations ued in python and all usedmath operations ued in python and all used
math operations ued in python and all used
 
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
 
RHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem students
RHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem studentsRHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem students
RHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem students
 
Temple of Asclepius in Thrace. Excavation results
Temple of Asclepius in Thrace. Excavation resultsTemple of Asclepius in Thrace. Excavation results
Temple of Asclepius in Thrace. Excavation results
 
Hindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdfHindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdf
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
 
Gender and Mental Health - Counselling and Family Therapy Applications and In...
Gender and Mental Health - Counselling and Family Therapy Applications and In...Gender and Mental Health - Counselling and Family Therapy Applications and In...
Gender and Mental Health - Counselling and Family Therapy Applications and In...
 
Film vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movieFilm vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movie
 
Chapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptxChapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptx
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
 

Understanding GPS & NMEA Messages and Algo to extract Information from NMEA.

  • 1.
  • 2. Hand to hand with GPS Episode: 2 NMEA Messages As we all know, what is GPS? GPS is a system, widely used throughout the globe. It recites versatile superfluous information including position, speed, time, altitude very precisely. Its having diverse applications like navigation, tracking, tracing, location, timing and very soon it will be very essential indigence for human being as same as the telephone. Now briefly we see the constituents of GPS. It uses between 24 and 32 Medium Earth Orbit satellites that transmit precise microwave signals. A GPS receiver receives that microwave signals to determine the above mentioned information. It was developed by United States for defence purpose, but now it can be accessed by everyone freely. The important questions are, how can we use GPS? , what information we can get? So now a days it is very easy to use GPS, many of the electronic gazettes around us are loaded with GPS and these are having very easy to use graphical user interface. Tracking, navigation, mapping can be done with the help of these gazettes. But to make customize systems that use GPS as per our requirement, we just require a GPS receiver. A GPS receiver is a chip that receives microwave signals from satellites, converts that signals to a particular message protocol like NMEA and gives serial output. We can use that serial output in our system. The canonical hassle is to understand the protocol of NMEA. We are going to describe an algorithm that takes serial input, analyze it and recites the superfluous information. The algorithm is very easygoing, can be implemented to any programming language, any embedded system’s compiler like Keil, AVR studio, winAVR, Keil for ARM etc. What is NMEA message format?, National Marine Electronics Association (NMEA) is an organisation that is creating standards for marine electronics to unify the systems. In GPS’s context NMEA standards are the communication protocol, followed by GPS receiver to give serial output.
  • 3. Fig 1 | Understanding NMEA messages. The diagram shows that a GPS receiver receives microwave signals from satellite system and gives output in NMEA messages. NMEA messages are basically packets of data or information. GPS receiver delivers information line by line, here we refer these lines as the packets of information. These messages are classified in various types of packets. Each packet has its own protocol to send the information. These packets are identified by their names. GPS receiver sends these packets serially, every second it delivers a packet of information. Fig 2 | understanding of NMEA Packets First five character of a packet represent the packet name, and other superfluous information separated by comma.
  • 4. Ie. $GPVTG,176.41,T,,M,0.00,N,0.00,K,A*38 Here ‘$GPVTG’ is packet name and it is followed by other information. Fig 3 | Actual NMEA messages Important NMEA message packets. a. GGA – Global Positioning System Fix Data b. GLL – Geographic Position – Latitude/Longitude c. GSA – DOP and Active Satellites d. GSV – Satellites in view e. RMC – Recommended Minimum Specific GNSS Data f. VTG – Course Over Ground and Ground Speed a. $GPGGA - Global Positioning System Fix Data Data/Information : Time, Position, Numbers of satellite used, altitude etc. Message format: $GPGGA,hhmmss.ss,LLmm.llll,{N/S},yyymm.mmmm,{E/W},i,ns,h.d,a.h,M, g.s,M,a.s,XXXX*CS Index Message Discription 0 $GPGGA Packet name (Global Positioning System Fix Data) 1 hhmmss.ss UTC Time hh : hours mm : minutes ss.ss : seconds 2 LLmm.mmmm Latitude LL : Degree mm.mmmm = minutes 3 {N/S} North or South
  • 5. 4 yyymmm.mmmm Longitude yyy : Degree mmm.mmmm : minutes 5 {E/W} East or West 6 i Valid indicator (Fix value) 0: Not valid 1: Valid 7 ns Number satellites used 8 h.d HDOP : Horizontal Dilution Of Precision 9 a.h Altitude 10 M Antenna height Unit (meters) 11 g.s Difference between the WGS-84 reference ellipsoid surface and the mean-sea-level altitude. 12 M Unit of above parameter (meters) 13 a.s Age in seconds since last update 14 XXXX Reference station ID 15 CS Check Sum Table 1 | GGA Packet format b. $GPGLL – Geographic Position – Latitude/Longitude Data/Information: Position, UTC time, and status etc. Packet format: $GPGLL,LLmm.mmmm,{N/S},yyymm.mmmm,{E/W},hhmmss.ss,i,m*CS Index Message Discription 0 $GPGLL Packet name (Geographic Position – Latitude/Longitude) 1 LLmm.mmmm Latitude LL : Degree mm.mmmm = minutes 2 {N/S} North or South 3 yyymmm.mmmm Longitude yyy : Degree mmm.mmmm : minutes 4 {E/W} East or West 5 hhmmss.ss UTC Time hh : hours mm : minutes ss.ss : seconds 6 i Status indicator A : valid V : invalid 7 m Mode indicator A: autonomous N: data not valid 8 CS Check sum Table 2 | GLL Packet format c. $GPGSA – DOP and Active Satellites Data/Information : Operating mode, satellite used in fix position and DOP etc.
  • 6. Packet format: $GPGSA,i,j,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,aa,p.d,h.d,v.d*CS Index Message Discription 0 $GPGSA Packet name (DOP and Active Satellites) 1 i : Mode M : Manual, forced to operate in 2D or 3D A : Automatic, 3D/2D 2 J : Mode 1 : Fix not available 2 : 2D 3 : 3D 3 aa Ids of Satellites used in position fix , null for unused 4 p.d PDOP 5 h.d HDOP 6 v.d VDOP 7 CS Check sum Table 3 | GSA packet format d. $GPGSV : GPS Satellites in view Data/information : Messages, messages id, satellite id, elevation, azimuth etc. Packet format: $GPGSV,N,M, ns,si,se,saz,sn,…………. , ns,si,se,saz,sn *CS Index Message Discription 0 $GPGSV Packet name (GPS Satellites in view) 1 N Number of messages 2 M Message Number 3 ns Number of satellites in view 4 si Satellites ID 5 Se Satellites Elevation 6 saz Satellite azimuth 7 sn SNR number 8-19 3 set of 4-7 Satellites information 20 CS Checksum Table 4 | GSV packet format e. $GPRMC – Recommended Minimum Specific GNSS Data Data/information : Time, Date, Position, speed and status etc. Packet Format: $GPRMC,hhmmss.ss,i,LLmm.mmmm,{N/S},yyymm.mmmm,{E/W},s.n,t.c,DDMMYY,m.v, {E/W}, m*CS<CR><LF>
  • 7. Index Message Discription 0 $GPRMC Packet name (Recommended Minimum Specific GNSS Data) 1 hhmmss.ss UTC Time hh : hours mm : minutes ss.ss : seconds 2 i Valid indicator 0: Not valid 1: Valid 3 LLmm.mmmm Latitude LL : Degree mm.mmmm = minutes 4 {N/S} North or South 5 yyymmm.mmmm Longitude yyy : Degree mmm.mmmm : minutes 6 {E/W} East or West 7 s.n Speed in Knots 8 t.c True Course/ Heading 9 DDMMYY Date 10 m.v Magnetic variation 11 {E/W} East or West 12 m Mode indicator A: autonomous N: data not valid 13 CS Check Sum Table 5 | RMC packet format f. $GPVTG – Course Over Ground and Ground Speed Data/Information: Speed and course. Packet format: $GPVTG,m.v,T,m.h,M,s.n,N,s.k,K,m*CS<CR><LF> Index Message Discription 0 $GPVTG Packet name (Course Over Ground and Ground Speed) 1 m.v Magnetic Variation / heading 2 T Fixed text (Heading unit degree) 3 m.h Magnetic heading 4 M Degree, magnetic heading unit 5 s.n Speed in Knots 6 N Speed unit Knots 7 s.k Speed in KM per Hour 8 K Speed unit KM / hr 9 m Mode indicator A: autonomous N: data not valid 10 CS Check sum Table 4 | GSV packet format
  • 8. Algo for extracting GPS data form NMEA messages Step 1. Create connection with GPS receiver. Step 2. While RX: go to Step 3 – Step3. Message = Read Line (Rx data) Step4. if ( message [0:2] ! = ‘$GP’ ) – we are not getting NMEA messages / packets { Break – go to step 3. } . else – we are getting NMEA messages. { Step 5. if (message [0:5+ = = ‘$GPGGA’ ) { Fragments [] = explode(“,” message) if (Fragments [2] == ‘’” OR Fragments [4] == “‘’) { latitude or longitude can’t be determined Break loop – go to step 3 } UTCTime = Fragments[1] – Format :- hhmmss.ss UTCTime = UTCTime *0:1+ . “:”.UTCTime *2:3+ . “:”.UTCTime *4:5+ – Format :- hh:mm:ss Latitude = Fragments [2] -Format :- xxmm.dddd Latitude = Latitude[0:1] + Latitude[2:8] / 60 -Format :- Decimal format Loc_N/S = Fragments[3] Longitude = Fragments[4] -Format:- yyymm.dddd Longitude = Longitude[0:2] + Longitude [3:9] / 60 -Format :- Decimal format
  • 9. Loc_E/W = Fragments[5] Fix = Fragments[6] Nos_satellite = Fragments[7] HDOP = Fragments[8] Altitude = Fragments[9] Break – go to step 3. } Step6. if (message *0:5+ = = ‘$GPGLL’ ) { Fragments *+ = explode(“,” message) if (Fragments *1+ == ‘’” OR Fragments *3+ == “‘’) { latitude or longitude can’t be determined Break loop – go to step 3 } Latitude = Fragments [1] -Format :- xxmm.dddd Latitude = Latitude[0:1] + Latitude[2:8] / 60 -Format :- Decimal format Loc_N/S = Fragments[2] Longitude = Fragments[3] -Format:- yyymm.dddd Longitude = Longitude[0:2] + Longitude [3:9] / 60 -Format :- Decimal format Loc_E/W = Fragments[4] UTCTime = Fragments[5] – Format :- hhmmss.ss UTCTime = UTCTime *0:1+ . “:”.UTCTime *2:3+ . “:”.UTCTime *4:5+ – Format :- hh:mm:ss Status = Fragments[6] Mode = Fragments [7] Break – go to step 3.
  • 10. } Step7. if (message *0:5+ = = ‘$GPGSA’ ) { Fragments *+ = explode(“,” message) Mode_a = Fragments[1] Mode_b = Fragments[2] Operating_setellites = Fragments[3] PDOP = Fragments[4] HDOP = Fragments[5] VDOP = Fragments[6] Break – go to step 3. } Step8. if (message *0:5+ = = ‘$GPGSV’ ) { Fragments *+ = explode(“,” message) Nos_messages = Fragments[1] Message_No = Fragments[2] Nos_setellites = Fragments[3] Satellite_ID = Fragments[4] Satellite_elevation = Fragments[5] Satellite_azimuth = Fragments[6] SNR_No = Fragments[7] Break – go to step 3. } Step 9. if (message *0:5+ = = ‘$GPRMC’ ) { Fragments *+ = explode(“,” message) if (Fragments *3+ == ‘’” OR Fragments *5+ == “‘’) { latitude or longitude can’t be determined Break loop – go to step 3 } UTCTime = Fragments[1] – Format :- hhmmss.ss UTCTime = UTCTime *0:1+ . “:”.UTCTime *2:3+ . “:”.UTCTime *4:5+ – Format :- hh:mm:ss Status = Fragments[2]
  • 11. Latitude = Fragments [3] -Format :- xxmm.dddd Latitude = Latitude[0:1] + Latitude[2:8] / 60 -Format :- Decimal format Loc_N/S = Fragments[4] Longitude = Fragments[5] -Format:- yyymm.dddd Longitude = Longitude[0:2] + Longitude [3:9] / 60 -Format :- Decimal format Loc_E/W = Fragments[6] Speed = Fragments[7] Heading = Fragments[8] Date = Fragments[9] -format :- ddmmyy Date = Date*0:1+. “-”. Date*2:3+. “-”. Date*4:5+ -Format:- dd-mm-yy Magnetic_variation = Fragments[10] Mode = Fragments[12] Break – go to step 3. } Step10. if (message *0:5+ = = ‘$GPVTG’ ) { Fragments *+ = explode(“,” message) Heading = Fragments[1] Heading_unit = Fragments[2] Magnetic_heading = Fragments[3] Magnetic_heading_unit= Fragments[4] Speed_knots= Fragments[5] Speed_unit_knots = Fragments[6] Speed_KM = Fragments[7] Speed_unit_KM = Fragments[8] Mode = Fragments[9] Break -go to step. 3 } Break – go to step 3. }
  • 12. Explanation for some functions used in algo : Message[i:j] : here message in a string that stores a packet in it. Message[i:j] : represent a substring of message from index i to j elements (note i and j both are included). Explode : it splits the string in to fragments by a specific character, here we are splitting message by comma “,”, and it stores all the fragments in to an array named fragments[]. Other notations are common notations for many programming languages like C, C++. User can use either full or partial algorithm according to requirement.