GPS Message Strings and Decodings
These are stored in ASCII files. As such, they potentially can be modified with a variety of scripts and programs to suit a particular need.
There are eight message strings from GPS receivers:
- $GPGGA GPS fixed data
- $GPGLL Geographical position: latitude and longitude
- $GPGSA GPS dilution of precision and active satellites
- $GPGSV GPS satellite in view
- $GPRMC Recommended minimum specific GPS/TRANSIT data
- $GPSATSatellite tracking status
- $GPVTG Track made good and ground speed (velocity and course)
- $GPZDA Universal time and date
Their decodings follow:
GGA Data Message
The GGA message contains detailed GPS position information, and is the most frequently used data message.This message takes the following form:
$GPGGA,hhmmss.ss,ddmm.mmmm,s,dddmm.mmmm,
s,n,qq,pp.p,saaaaa.aa,M,�xxxx.xx,M,sss,aaaa*cc<CR><LF>GGA Data message Defined
Field Description hhmmss.ss
UTC time in hours, minutes, seconds of the GPS position
ddmm.mmmmm
Latitude in degrees, minutes, and decimal minutes
S
s = N or s = S, for North or South latitude
dddmm.mmmmm
Longitude in degrees, minutes, and decimal minutes
S
s =E or s = W, for East or West longitude
N
Quality indicator, 0 = no position, 1 = undifferentially corrected position, 2 = differentially corrected position, 9= position computed using almanac
Qq
Number of satellites used in position computation
pp.p
HDOP =0.0 to 9.9
saaaa.aa
Antenna altitude
M
Altitude units, m = meters
�xxxx.xx
Geoidal separation (needs geoidal height option)
M
Geoidal separation units, m = meters
Sss
Age of differential corrections in seconds
Aaa
Reference station identification
*cc
Checksum
<CR><LF>
Carriage return and line feed
-
GLL Data Message
The GLL message contains Latitude and Longitude information. This message has the following format:
$GPGLL,ddmm.mmmm,s,dddmm.mmmm,s,hhmmss.ss,s*cc<CR><LF>
GLL Data Message Defined
Field Description ddmm.mmmmm
Latitude in degrees, minutes, and decimal minutes
s
s = N or s = S, for North or South latitude
dddmm.mmmmm
Longitude in degrees, minutes, and decimal minutes
s
s = E or s = W, for East or West longitude
hhmmss.ss
UTC time in hours, minutes, and seconds of GPS position
s
Status, s = A = valid, s = V = invalid
*cc
Checksum
<CR><LF>
Carriage return and line feed
-
GSA Data Message
The GSA Message contains GPS DOP and active satellite information. Only satellites used in the position computation are output. Null fields are present when data is unavailable due to the number of satellites tracked.This Message has the following format:
$GPGSA,a,b,cc,dd,ee,ff,gg,hh,ii,jj,kk,mm,nn,oo,p.p,q.q,r.r *cc<CR><LF>
GSA Data Message Defined
Field Description a
Satellite acquisition mode m = manually forced to 2D or 3D, A = automatic swap between 2D and 3D
b
Position mode, 1 = fix not available, 2 = 2D fix, 3 = 3D fix
cc to oo
Satellites used in the position solution, a null field occurs if a channel is unused
p.p
Position Dilution of Precision (PDOP) = 1.0 to 9.9
q.q
Horizontal Dilution of Precision (HDOP) = 1.0 to 9.9
r.r
Vertical Dilution of Precision (VDOP) = 1.0 to 9.9
*cc
Checksum
<CR><LF>
Carriage return and line feed
-
GSV Data Message (LGBX-12C Only)
The GSV Messagecontains GPS satellite information. Null fields occur where data are not available due to the number of satellites tracked. This Message has the following format:
$GPGSV,t,m,n,ii,ee,aaa,ss,�ii,ee,aaa,ss,*cc<CR><LF>
GSV Data Message Defined
Field Description t
Total number of messages
m
Message number, m = 1 to 3
n
Total number of satellites in view
ii
Satellite number
ee
Elevation in degrees, ee = 0 to 90
aaa
Azimuth (true) in degrees, aaa = 0 to 359
ss
SNR (dB), ss = 0 to 99
*cc
Checksum
<CR><LF>
Carriage return and line feed
-
RMC Data Message
The RMC Message contains recommended minimum specific GPS data.This Message has the following format:
$GPRMC,hhmmss.ss,a,ddmm.mmm,n,dddmm.mmm,w,z.z,y.y,ddmmyy,d.d,v *cc<CR><LF>
RMC Data Message Defined
Field Description hhmmss.ss
UTC time in hours,minutes, seconds of the GPS position
a
Status is valid if a = A, status is invalid if a = V
ddmm.mmmmm
Latitude in degrees, minutes, and decimal minutes
n
S = N or s = S, for North or South latitude
dddmm.mmmmm
Longitude in degrees, minutes, and decimal minutes
w
S = E or s = W, for East or West longitude
z.z
Ground speed in knots
y.y
Track made good,referenced to true north
ddmmyy
UTC date of position fix in day, month, year
d.d
Magnetic Variation in degrees
v
Variation sense v = E = East, v = W = West
*cc
Checksum
<CR><LF>
Carriage return and line feed
-
SAT Data Message (LGBX-PRO Only)
The SAT Message contains GPS satellite tracking status information. This Message has the following format:
$PASHR,SAT,d1,n(d2,d3,d4,f1,c)*cc<CR><LF>
SAT Data Message Defined
Field Description d1
Number of SVs locked
d2
SV PRN number
d3
SV azimuth angle in degrees
d4
SV elevation angle in degrees
f1
SV signal/noise ratio in dB Hz
c
SV used in position computation U = used, - = not used
*cc
Checksum
<CR><LF>
Carriage return and line feed
-
VTG Data Message
The VTG Message contains velocity and course information. This Message has the following format:
$GPVTG,ttt,c,ttt,c,ggg.gg,u,ggg,gg,u*cc<CR><LF>
VTG Data Message Defined
Field Description ttt
True course over ground, ttt = 000 to 359, in degrees
c
True course over ground indicator, c = T always
ttt
Magnetic course over ground, ttt = 000 to 359, in degrees (output with magnetic model option only)
c
Magnetic course over ground Indicator, always c = M
ggg.gg
Speed over ground, 000 to 999 knots
u
Speed over ground units, u = N = Nautical mile/h
ggg.gg
Speed over ground, 000 to 999 km/h
u
Speed over ground units, u = K = kilometer/h
*cc
Checksum
<CR><LF>
Carriage return and line feed
-
ZDA Data Message
The ZDA Message contains Universal Time information. This message has the following format:
$GPZDA,hhmmss.ss,dd,mm,yyyy,xx,yy*cc<CR><LF>
ZDA Data Message Defined
Field Description hhmmss.ss
UTC time in hours, minutes, seconds of the GPS position
dd
Day, dd = 0 to 31
mm
Month, mm = 1 to 12
yyyy
Year
xx
Local zone description in hours, xx = -13 to 13
yy
Local zone description in minutes, yy = 0 to 59
*cc
Checksum
<CR><LF>
Carriage return and line feed