Each sentence begins with a '$' and ends with a carriage return/line feed sequence and can be no longer than 80 characters of visible text (plus the line terminator). The data is contained within this single line with data items separated by commas. The data itself is just ascii text and may extend over multiple sentences in certain specialized instances but is normally fully contained in one variable length sentence. The data may vary in the amount of precision contained in the message. For example time might be indicated to decimal parts of a second or location may be show with 3 or even 4 digits after the decimal point. Programs that read the data should only use the commas to determine the field boundaries and not depend on column positions. There is a provision for a checksum at the end of each sentence which may or may not be checked by the unit that reads the data.
There have been several changes to the standard but for gps use the only ones
that are likely to be encountered are 1.5 and 2.0 through 2.3. These just
specify some different sentence configurations which may be peculiar to the
needs of a particular device thus the gps may need to be changed to match the
devices being interfaced to. Some gps's provide the ability configure a custom
set the sentences while other may offer a set of fixed choices. Many gps
receivers simply output a fixed set of sentences that cannot be changed by the
user.
Hardware Connection
The hardware interface for GPS units is designed
to meet the NMEA requirements. They are also compatible with most computer
serial ports using RS232 protocols. The interface speed can be adjusted on some
models but the NMEA standard is 4800 baud with 8 bits of data, no parity, and
one stop bit. All units that support NMEA will support this speed. Note that, at
a baud rate of 4800, you can easily send enough data to more than fill a full
second of time. For this reason some units only send updates every two seconds
or may send some data every second while reserving other data to be sent less
often. In addition some units may send data a couple of seconds old while other
units may send data that is collected within the second it is sent. Generally
time is sent in some field within each second so it is pretty easy to figure out
what a particular gps is doing. Some sentences may be sent only during a
particular action of the receiver such as while following a route while other
receivers may always send the sentence and just null out the values. Other
difference will be noted in the specific data descriptions defined later in the
text.
The NMEA standard has been around for many years (1983) and has undergone several revisions. The protocol has changed and the number and types of sentences may be different depending on the revision. Most receivers understand the latest standard which is called: 0183 version 2. This standard dictates a transfer rate of 4800 baud. Some receivers also understand older standards. The oldest standard was 0180 followed by 0182 which transferred data at 1200 baud. An earlier version of 0183 called version 1.5 is also understood by some receivers. Some Garmin units (and perhaps others) can be set to 9600 for NMEA output but this is only recommended if you have determined that 4800 works ok and then you can try to set it faster.
In order to use the hardware interface you will need a cable. Generally the cable is unique to the hardware model so you will need an cable made specifically for the brand and model of the unit you own. Some of the latest computers no longer include a serial port but only a USB port. Most gps receivers will work with Serial to USB adapters and serial ports attached via the pcmcia (pc card) adapter. For general NMEA use with a gps receiver you will only need two wires in the cable, data out from the gps and ground. A third wire, Data in, will be needed if you expect the receiver to accpet data on this cable such as to upload waypoints or send DGPS data to the receiver.
Gps receivers may be used to interface with other NMEA devices such as
autopilots, fishfinders, or even another gps receivers. They can also listen to
Differential Beacon Receivers that can send data using the RTCM SC-104 standard.
This data is consistent with the hardware requirements for NMEA input data.
There are no handshake lines defined for NMEA.
NMEA sentences
NMEA consists of sentences, the first word of which,
called a data type, defines the interpretation of the rest of the sentence. Each
Data type would have its own unique interpretation and is defined in the NMEA
standard. The GGA sentence (shown below) shows an
example that provides essential fix data. Other sentences may repeat some of the
same information but will also supply new data. Whatever device or program that
reads the data can watch for the data sentence that it is interested in and
simply ignore other sentences that is doesn't care about. In the NMEA standard
there are no commands to indicate that the gps should do something different.
Instead each receiver just sends all of the data and expects much of it to be
ignored. Some receivers have commands inside the unit that can select a subset
of all the sentences or, in some cases, even the individual sentences to send.
There is no way to indicate anything back to the unit as to whether the sentence
is being read correctly or to request a re-send of some data you didn't get.
Instead the receiving unit just checks the checksum and ignores the data if the
checksum is bad figuring the data will be sent again sometime later.
There are many sentences in the NMEA standard for all kinds of devices that may be used in a Marine environment. Some of the ones that have applicability to gps receivers are listed below: (all message start with GP.)
AAM - Waypoint
Arrival Alarm
ALM - Almanac
data
| APA - Auto Pilot A sentence
| APB - Auto Pilot
B sentence
| BOD - Bearing
Origin to Destination
| BWC - Bearing
using Great Circle route
| DTM - Datum being used.
| GGA - Fix
information
| GLL - Lat/Lon
data
| GSA - Overall
Satellite data
| GSV - Detailed
Satellite data
| RMA - recommended Loran data
| RMB -
recommended navigation data for gps
| RMC -
recommended minimum data for gps
| RTE - route
message
| VTG - Vector
track an Speed over the Ground
| WCV - Waypoint closure velocity (Velocity Made Good)
| WPL - Waypoint
information
| XTC - cross track error
| XTE - measured
cross track error
| ZTG - Zulu (UTC) time and time to go (to destination)
| ZDA - Date and
Time | |
In addition some gps receivers with special capabilities output these special messages.
HCHDG -
Compass output
PSLIB - Remote
Control for a DGPS receiver | |
The latest version of the NMEA standard is 2.3. It adds a mode indicator to several sentences which is used to indicate the kind of fix the receiver currently has. This indcation is part of the signal integrity information needed by the FAA. The value can be A=autonomous, D=differential, E=Estimated, N=not valid. This mode character has been added to the RMC, RMB, VTG, and GLL, sentences (and perhaps some others).
If you are interfacing a GPS unit to another device, including a computer program, you need to ensure that the receiving unit is given all of the sentences that it needs. If it needs a sentence that your GPS does not send then the interface to that unit is likely to fail. Here is a Link for the needs of some typical programs. The sentences sent by some typical receivers include:
NMEA 2.0
Name | Garmin | Magellan | Lowrance | Notes: |
GPAPB | N | Y | Y | Auto Pilot B |
GPBOD | Y | N | N | bearing, origin to destination - earlier G-12's do not transmit this |
GPGGA | Y | Y | Y | fix data |
GPGLL | Y | Y | Y | Lat/Lon data - earlier G-12's do not transmit this |
GPGSA | Y | Y | Y | overall satellite reception data, missing on some Garmin models |
GPGSV | Y | Y | Y | detailed satellite data, missing on some Garmin models |
GPRMB | Y | Y | Y | minimum recommended data when following a route |
GPRMC | Y | Y | Y | minimum recommended data |
GPRTE | Y | U | U | route data, only when there is an active route. (this is sometimes bidirectional) |
GPWPL | Y | Y | U | waypoint data, only when there is an active route (this is sometimes bidirectional) |
NMEA 1.5 - some units do not support version 1.5. Lowrance units provide the ability to customize the NMEA output by sentences so that you can develop your own custom sentence structure.
Name | Garmin | Magellan | Notes: |
GPAPA | N | Y | Automatic Pilot A |
GPBOD | Y | N | bearing origin to destination - earlier G-12's do not send this |
GPBWC | Y | Y | bearing to waypoint using great circle route. |
GPGLL | Y | Y | lat/lon - earlier G-12's do not send this |
GPRMC | Y | N | minimum recommend data |
GPRMB | Y | N | minimum recommended data when following a route |
GPVTG | Y | Y | vector track and speed over ground |
GPWPL | Y | N | waypoint data (only when active goto) |
GPXTE | Y | Y | cross track error |
The NMEA 2.3 output from the Garmin Legend, Vista, and perhaps some others include the BWC, VTG, and XTE sentences.
The Trimble Scoutmaster outputs: APA, APB, BWC, GGA, GLL, GSA, GSV, RMB, RMC, VTG, WCV, XTE, ZTG.
The Motorola Encore outputs: GGA, GLL, GSV, RMC, VTG, ZDA and a proprietary sentence PMOTG.
Garmin receivers send the following Proprietary Sentences:
PGRME
(estimated error) - not sent if set to 0183 1.5
PGRMM (map
datum)
| PGRMZ
(altitude)
| PSLIB (beacon
receiver control) | |
Note that Garmin converts lat/lon coordinates to the datum chosen by the user when sending this data. This is indicated in the proprietary sentence PGRMM. This can help programs that use maps with other datums but is not an NMEA standard. Be sure and set your datum to WGS84 on Garmin units when communicating to other NMEA devices.
Magellan units use proprietary sentences for waypoint maintenance and other tasks. They use a prefix of PMGN for this data.
It is possible to just view the information presented on the NMEA interface
using a simple terminal program. If the terminal program can log the session
then you can build a history of the entire session into a file. More
sophisticated logging programs can filter the messages to only certain sentences
or only collect sentences at prescribed intervals. Some computer programs that
provide real time display and logging actually save the log in an ascii format
that can be viewed with a text editor or used independently from the program
that generated it.
NMEA input
Some units also support an NMEA input mode. While not too
many programs support this mode it does provide a standardized way to update or
add waypoint and route data. Note that there is no handshaking or commands in
NMEA mode so you just send the data in the correct sentence and the unit will
accept the data and add or overwrite the information in memory. If the waypoint
name is the same you will overwrite existing data but no warning will be issued.
The sentence construction is identical to what the unit downloads so you can,
for example, capture a WPL
sentence from one unit and then send that same sentence to another unit but
be careful if the two units support waypoint names of different lengths since
the receiving unit might truncate the name and overwrite a waypoint accidently.
If you create a sentence from scratch you should create a correct checksum. Be
sure you know and have set you unit to the correct datum. Many units support the
input of WPL sentences and a few supprt RTE as well.
On NMEA input the receiver stores information based on interpreting the sentence itself. While some receivers accept NMEA input this can only be used to update a waypoint or similar task and not to send a command to the unit. Since Magellan upload and download maintenance protocol is based on NMEA sentences they support a modified WPL message that adds comments, altitude, and icon data.
Some marine units may accept input for alarms such as deep or shallow water
based on the DPT sentence. Other units may use NMEA input to provide
initialization data via proprietary sentences, or to select which NMEA sentences
to output.
GGA - essential fix data which provide 3D location and accuracy
data.Decode of selected position sentences
The most important NMEA
sentences include the GGA which provides the current Fix data, the RMC which
provides the minimum gps sentences information, and the GSA which provides the
Satellite status data.
$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*42 Where: GGA Global Positioning System Fix Data 123519 Fix taken at 12:35:19 UTC 4807.038,N Latitude 48 deg 07.038' N 01131.000,E Longitude 11 deg 31.000' E 1 Fix quality: 0 = invalid 1 = GPS fix 2 = DGPS fix 6 = estimated (2.3 feature) 08 Number of satellites being tracked 0.9 Horizontal dilution of position 545.4,M Altitude, Meters, above mean sea level 46.9,M Height of geoid (mean sea level) above WGS84 ellipsoid (empty field) time in seconds since last DGPS update (empty field) DGPS station ID number *42 the checksum data, always begins with *
GSA - GPS DOP and active satellites. This sentence provides details on the nature of the fix. It includes the numbers of the satellites being used in the current solution and the DOP. DOP (dilution of precision) is an indication of the effect of satellite geometry on the accuracy of the fix. It is a unitless number where smaller is better. For 3D fixes using 4 satellites a 1.0 would be considered to be a perfect number. For overdetermined solutions it is possible to see numbers below 1.0. There are differences in the way the PRN's are presented which can effect the ability of some programs to display this data. For example, in the example shown below there are 5 satellites in the solution and the null fields are scattered indicating that the almanac would show satellites in the null positions that are not being used as part of this solution. Other receivers might output all of the satellites used at the beginning of the sentence with the null field all stacked up at the end. This difference accounts for some satellite display programs not always being able to display the satellites being tracked.
$GSA,A,3,04,05,,09,12,,,24,,,,,2.5,1.3,2.1*39 Where: GSA Satellite status A Auto selection of 2D or 3D fix (M = manual) 3 3D fix - other values include: 1 = no fix 2 = 2D fix 04,05... PRNs of satellites used for fix (space for 12) 2.5 PDOP (dilution of precision) 1.3 Horizontal dilution of precision (HDOP) 2.1 Vertical dilution of precision (VDOP) *42 the checksum data, always begins with *
GSV - Satellites in View shows data about the satellites that the unit might be able to find based on its viewing mask and almanac data. It also shows current ability to track this data. Note that one GSV sentence only can provide data for up to 4 satellites and thus there may need to be 3 sentences for the full information.
$GPGSV,2,1,08,01,40,083,46,02,17,308,41,12,07,344,39,14,22,228,45*75 Where: GSV Satellites in view 2 Number of sentences for full data 1 sentence 1 of 2 08 Number of satellites in view 01 Satellite PRN number 40 Elevation, degrees 083 Azimuth, degrees 46 Signal strength - higher is betterfor up to 4 satellites per sentence *75 the checksum data, always begins with *
RMC - NMEA has its own version of essential gps pvt (position, velocity, time) data. It is called RMC, The Recommended Minimum, which might look like:
$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*43 Where: RMC Recommended Minimum sentence C 123519 Fix taken at 12:35:19 UTC A Status A=active or V=Void. 4807.038,N Latitude 48 deg 07.038' N 01131.000,E Longitude 11 deg 31.000' E 022.4 Speed over the ground in knots 084.4 Track angle in degrees True 230394 Date - 23rd of March 1994 003.1,W Magnetic Variation *43 The checksum data, always begins with *Note that, as of the 2.3 release of NMEA, there is a new field in the RMC sentence at the end just prior to the checksum. The value of the entry is A=autonomous, D=differential, E=estimated, N=Data not valid.
GLL - Geographic Latitude and Longitude is a holdover from Loran data and some old units may not send the time and data valid information if they are emulating Loran data. If a gps is emulating Loran data they may use the LC Loran prefix instead of GP.
$GPGLL,4916.45,N,12311.12,W,225444,A,*23 Where: GLL Geographic position, Latitude and Longitude 4916.46,N Latitude 49 deg. 16.45 min. North 12311.12,W Longitude 123 deg. 11.12 min. West 225444 Fix taken at 22:54:44 UTC A Data valid or V (void) *23 checksum data
WPL - Waypoint Location data provides essential waypoint data. It is output when navigating to indicate data about the destination and is sometimes supported on input to redefine a waypoint location. Note that waypoint data as defined in the standard does not define altitude, comments, or icon data. When a route is active, this sentence is sent once for each waypoint in the route, in sequence. When all waypoints have been reported, the RTE sentence is sent in the next data set. In any group of sentences, only one WPL sentence, or an RTE sentence, will be sent.
$GPWPL,4807.038,N,01131.000,E,WPTNME*31 With an interpretation of: WPL Waypoint Location 4807.038,N Latitude 01131.000,E Longitude WPTNME Waypoint Name *31 The checksum data, always begins with *
AAM - Waypoint Arrival Alarm is generated by some units to indicate the Status of arrival (entering the arrival circle, or passing the perpendicular of the course line) at the destination waypoint.
$GPAAM,A,A,0.10,N,WPTNME*43 Where: AAM Arrival Alarm A Arrival circle entered A Perpendicular passed 0.10 Circle radius N Nautical miles WPTNME Waypoint name *43 Checksum data
APB - Autopilot format B is sent by some gps receivers to allow them to be used to control an autopilot unit. This sentence is commonly used by autopilots and contains navigation receiver warning flag status, cross-track-error, waypoint arrival status, initial bearing from origin waypoint to the destination, continuous bearing from present position to destination and recommended heading-to-steer to destination waypoint for the active navigation leg of the journey.
Note: some autopilots, Robertson in particular, misinterpret "bearing from origin to destination" as "bearing from present position to destination". This is likely due to the difference between the APB sentence and the APA sentence. for the APA sentence this would be the correct thing to do for the data in the same field. APA only differs from APB in this one field and APA leaves off the last two fields where this distinction is clearly spelled out. This will result in poor performance if the boat is sufficiently off-course that the two bearings are different.
$GPAPB,A,A,0.10,R,N,V,V,011,M,DEST,011,M,011,M*82 where: APB Autopilot format B A Loran-C blink/SNR warning, general warning A Loran-C cycle warning 0.10 cross-track error distance R steer Right to correct (or L for Left) N cross-track error units - nautical miles (K for kilometers) V arrival alarm - circle V arrival alarm - perpendicular 011,M magnetic bearing, origin to destination DEST destination waypoint ID 011,M magnetic bearing, present position to destination 011,M magnetic heading to steer (bearings could True as 033,T)
BOD - Bearing - Origin to Destination shows the bearing angle of the line, calculated at the origin waypoint, extending to the destination waypoint from the origin waypoint for the active navigation leg of the journey.
$GPBOD,045.,T,023.,M,DEST,START*18 where: BOD Bearing - origin to destination waypoint 045.,T bearing 045 True from "START" to "DEST" 023.,M bearing 023 Magnetic from "START" to "DEST" DEST destination waypoint ID START origin waypoint ID *18 checksum
BWC - Bearing & Distance to Waypoint using a Great Circle route. Time (UTC) and distance & bearing to, and location of, a specified waypoint from present position along the great circle path.
$GPBWC,225444,4917.24,N,12309.57,W,051.9,T,031.6,M,001.3,N,004*29 where: BWC Bearing and distance to waypoint - great circle 225444 UTC time of fix 22:54:44 4917.24,N Latitude of waypoint 12309.57,W Longitude of waypoint 051.9,T Bearing to waypoint, degrees true 031.6,M Bearing to waypoint, degrees magnetic 001.3,N Distance to waypoint, Nautical miles 004 Waypoint ID *29 checksum
RMB - The recommended minimum navigation sentence is sent whenever a route or a goto is active. On some systems it is sent all of the time with null data sent.
$GPRMB,A,0.66,L,003,004,4917.24,N,12309.57,W,001.3,052.5,000.5,V*0B where: RMB Recommended minimum navigation information A Data status A = OK, V = warning 0.66,L Cross-track error (nautical miles, 9.9 max.), steer Left to correct (or R = right) 003 Origin waypoint ID 004 Destination waypoint ID 4917.24,N Destination waypoint latitude 49 deg. 17.24 min. N 12309.57,W Destination waypoint longitude 123 deg. 09.57 min. W 001.3 Range to destination, nautical miles 052.5 True bearing to destination 000.5 Velocity towards destination, knots V Arrival alarm A = arrived, V = not arrived *0B checksum
RTE - RTE is sent to indicate the names of all of the waypoints used in an active route. There may need to be multiple sentences to identify all of the waypoints. The data about the waypoints themselves will be sent in subsequent WPL sentences. These will be sent in future cycles of the NMEA data.
$GPRTE,2,1,c,0,W3IWI,DRIVWY,32CEDR,32-29,32BKLD,32-I95,32-US1,BW-32,BW-198*69 RTE Waypoints in active route 2 two sentences for full data 1 this is sentence 1 of 2 c c = complete list of waypoints in this route w = first listed waypoint is start of current leg 0 Route identifier W3IWI... Waypoint identifiers *69 checksum
VTG - Velocity made good. The gps receiver may use the LC prefix instead of GP if they are emulating Loran output.
$GPVTG,054.7,T,034.4,M,005.5,N,010.2,K where: VTG Track made good and ground speed 054.7,T True track made good 034.4,M Magnetic track made good 005.5,N Ground speed, knots 010.2,K Ground speed, Kilometers per hourNote that, as of the 2.3 release of NMEA, there is a new field in the VTG sentence at the end just prior to the checksum. The value of the entry is A=autonomous, D=differential, E=estimated, N=Data not valid.
XTE - Measured cross track error.
$GPXTE,A,A,0.67,L,N*07 Where: XTE Cross track error, measured A General warning flag V = warning (Loran-C Blink or SNR warning) A Not used for GPS (Loran-C cycle lock flag) 0.67 cross track error distance L Steer left to correct error (or R for right) N Distance units - Nautical miles *07 checksum
ALM - GPS Almanac Data contains GPS week number, satellite health and the complete almanac data for one satellite. Multiple messages may be transmitted, one for each satellite in the GPS constellation, up to maximum of 32 messages. Note that these sentences can take a long time to send so they are not generally sent automatically by the gps receiver. (Sorry I don't have an exact example of the sentence.) Note that this sentence breaks the 80 character rule.
$GPALM,A.B,C.D,E,F,hh,hhhh,... Where: ALM Almanac Data being sent A Total number of messages B Message number C Satellite PRN number D GPS week number (0-1023) E Satellite health (bits 17-24 of message) F eccentricity hh t index OA, almanac reference time hhhh sigma index 1, inclination angle ... OMEGADOT rate of right ascension SQRA(A) root of semi-major axis Omega, argument of perigee Omega index 0, longitude of ascension node M index 0, mean anomaly a index f0, clock parameter a index f1, clock parameter
HCHDG - Compass output is used on etrex summit and vista receivers to output the value of the internal flux-gate compass. Only the magnetic heading and magnetic variation is shown in the message.
$HCHDG,101.1,,,7.1,W*3C where: HCHDG Magnetic heading, deviation, variation 101.1 heading ,, deviation (no data) 7.1,W variation
ZDA - Data and Time
$GPZDA,hhmmss.ss,dd,mm,yyyy,xx,yy*CCwhere: hhmmss HrMinSec(UTC) dd,mm,yyy Day,Month,Year xx local zone hours -13..13 yy local zone minutes 0..59 *CC checksum
The following are Garmin proprietary sentences. "P" denotes proprietary, "GRM" is Garmin's manufacturer code, and "M" or "Z" indicates the specific sentence type. Note that the PGRME sentence is not set if the output is set to NMEA 1.5 mode.
$PGRME,15.0,M,45.0,M,25.0,M*22 where: 15.0,M Estimated horizontal position error in meters (HPE) 45.0,M Estimated vertical error (VPE) in meters 25.0,M Overall spherical equivalent position error $PGRMZ,93,f,3*21 where: 93,f Altitude in feet 3 Position fix dimensions 2 = user altitude 3 = GPS altitude This sentence shows in feet, regardless of units shown on the display. $PGRMM,NAD27 Canada*2F Currently active horizontal datumPSLIB
Proprietary sentences are used to control a Starlink differential beacon receiver. (Garmin's DBR is Starlink compatible) When the GPS receiver is set to change the DBR frequency or baud rate, the "J" sentence is replaced (just once) by (for example): $PSLIB,320.0,200*59 to set the DBR to 320 KHz, 200 baud.
$PSLIB,,,J*22 Status request $PSLIB,,,K*23 configuration request
These two sentences are normally sent together in each group of sentences from the GPS. The three fields are: Frequency, bit Rate, Request Type. The value in the third field may be: J = status request, K = configuration request, or blank = tuning message. The correct values for frequency range from 283.5-325.0 KHz while the bit rate can be set to 0, 25, 50, 100 or 200 bps.
Magellan uses proprietary sentences to do all of their waypoint and route maintenance. They use the MGN prefix for their sentences. This use is documented in their interface specification and will not be repeated here. However, they also send proprietary sentences to augment the gps data just like Garmin does. Here is an example of a sentence sent by the GPS Companion product:
$PMGNST,02.12,3,T,534,05.0,+03327,00*40 where: ST status information 02.12 Version number? 3 2D or 3D T True if we have a fix False otherwise 534 numbers change - unknown 05.0 time left on the gps battery in hours +03327 numbers change (freq. compensation?) 00 PRN number receiving current focus *40 checksum
$PMOTG,xxx,yyyy where: xxx the sentence to be controlled yyyy the time interval (0-9999 seconds) or $PMOTG,FOR,y where: y MPB=0, GPS=1, Loran=2
$PRWIRID,12,01.83,12/15/97,0003,*42 where: $PRWIRID 12 12 channel unit 01.83 software version 12/15/97 software date 0003 software options (HEX value) Bit 0 minimize ROM usage Bit 1 minimize RAM usage *42 checksumAn input sentence that will define which NMEA sentences are to be output from the Rockwell unit is:
$PRWIILOG,GGA,A,T,1,0The sentences available for the Rockwell Jupiter chipset are: GGA, GSA, GSV, VTG, RMC and some proprietary sentences.where $PRWIILOG GGA type of sentence A A=activate, V=deactivate T cyclic 1 every 1 second 0 ??
Garmin g12 sentences for version 4.57
$GPRMC,183729,A,3907.356,N,12102.482,W,000.0,360.0,080301,015.5,E*6F $GPRMB,A,,,,,,,,,,,,V*71 $GPGGA,183730,3907.356,N,12102.482,W,1,05,1.6,646.4,M,-24.1,M,,*75 $GPGSA,A,3,02,,,07,,09,24,26,,,,,1.6,1.6,1.0*3D $GPGSV,2,1,08,02,43,088,38,04,42,145,00,05,11,291,00,07,60,043,35*71 $GPGSV,2,2,08,08,02,145,00,09,46,303,47,24,16,178,32,26,18,231,43*77 $PGRME,22.0,M,52.9,M,51.0,M*14 $GPGLL,3907.360,N,12102.481,W,183730,A*33 $PGRMZ,2062,f,3*2D $PGRMM,WGS 84*06 $GPBOD,,T,,M,,*47 $GPRTE,1,1,c,0*07 $GPRMC,183731,A,3907.482,N,12102.436,W,000.0,360.0,080301,015.5,E*67 $GPRMB,A,,,,,,,,,,,,V*71Here are some observations:
Notice the complete cycle shows an update interval of 2 seconds which is
caused by the fact that there is too much data to fit in one second at 4800
baud.
Upping the baud rate to 9600 will cause an update every second.
| Notice that the samples are in real time for each sentence because the GGA
sentence shows an update in the time of 1 second.
| It would be possible to provide update data every second by parsing more
sentences.
| Notice the gaps in the GSA message where the satellites in use are shown
in a there slots as compared to the GSV locations. Some tools do not decode
this configuration correctly.
| Note the GGA sentence starts the sequence every two seconds.
| This sample is similar for other Garmin receivers designed in the same
time frame as the G-12. | |
$GPRMC,002454,A,3553.5295,N,13938.6570,E,0.0,43.1,180700,7.1,W,A*3F $GPRMB,A,,,,,,,,,,,,A,A*0B $GPGGA,002454,3553.5295,N,13938.6570,E,1,05,2.2,18.3,M,39.0,M,,*7F $GPGSA,A,3,01,04,07,16,20,,,,,,,,3.6,2.2,2.7*35 $GPGSV,3,1,09,01,38,103,37,02,23,215,00,04,38,297,37,05,00,328,00*70 $GPGSV,3,2,09,07,77,299,47,11,07,087,00,16,74,041,47,20,38,044,43*73 $GPGSV,3,3,09,24,12,282,00*4D $GPGLL,3553.5295,N,13938.6570,E,002454,A,A*4F $GPBOD,,T,,M,,*47 $PGRME,8.6,M,9.6,M,12.9,M*15 $PGRMZ,51,f*30 $HCHDG,101.1,,,7.1,W*3C $GPRTE,1,1,c,*37 $GPRMC,002456,A,3553.5295,N,13938.6570,E,0.0,43.1,180700,7.1,W,A*3DSome observations as compared to the G-12:
Information is buffered. It is all for the same second.
Information is still updated every two seconds at 4800 baud.
| Lat/Lon numbers have an extra digit.
| This is NMEA 2.3 data as indicated by the extra A at the end of RMC, RMB
and GLL.
| Note that the satellites in use have been shoved to the left of the GSA
message instead of the slot location.
| The RMC sentence starts the sequence.
| Note the HCHDG sentence for the built in compass.
| Except for the compass ouput this sentence list is similar for most Garmin
units designed around the time of the Summit receivers, beginning with the
emap. | |
$GPRMC,200904,A,3907.3768,N,12102.4766,W,0.0,311.9,301101,15.3,E,A*3D $GPRMB,A,,,,,,,,,,,,A,A*0B $GPGGA,200904,3907.3768,N,12102.4766,W,1,05,2.6,507.9,M,-24.1,M,,*7B $GPGLL,3907.3768,N,12102.4766,W,200904,A,A*5E $GPBOD,,T,,M,,*47 $GPBWC,200904,,,,,,T,,M,,N,,A*74 $GPVTG,311.9,T,296.6,M,0.0,N,0.0,K*4F $GPXTE,A,A,,,N,A*51 $PGRME,8.4,M,12.0,M,15.0,M*25 $PGRMZ,1699,f*33 $PGRMM,WGS 84*06 $HCHDG,,,,15.3,E*30 $GPRMC,200906,A,3907.3766,N,12102.4765,W,0.0,311.9,301101,15.3,E,A*32Some observations as compared to the Summit:
Output still repeats at a rate of once every 2 seconds and is NMEA 2.3
Data
The satellite status sentences are missing. This includes the GSA and GSV.
| New sentences include: BWC, VTG and XTE, previously available on the
Garmin 12 when selecting MNEA ouput 1.5.
| The altitude in PGRMZ is from the altimeter while the altiutde in the GGA
is from the gps computation.
| Note the HCHDG sentence for the built in compass and is missing for the
Legend. | |
$GPGGA,184050.84,3907.3839,N,12102.4772,W,1,05,1.8,00543,M,,,,*33 $GPRMC,184050.84,A,3907.3839,N,12102.4772,W,00.0,000.0,080301,15,E*54 $GPGSA,A,3,24,07,09,26,05,,,,,,,,03.6,01.8,03.1*05 $PMGNST,02.12,3,T,534,05.0,+03327,00*40 $GPGLL,3907.3839,N,12102.4771,W,184051.812,A*2D $GPGGA,184051.81,3907.3839,N,12102.4771,W,1,05,1.8,00543,M,,,,*34 $GPRMC,184051.81,A,3907.3839,N,12102.4771,W,00.0,000.0,080301,15,E*53 $GPGSA,A,3,24,07,09,26,05,,,,,,,,03.6,01.8,03.1*05 $GPGSV,3,1,08,07,57,045,43,09,48,303,48,04,44,144,,02,39,092,*7F $GPGSV,3,2,08,24,18,178,44,26,17,230,41,05,13,292,43,08,01,147,*75 $GPGSV,3,3,08,,,,,,,,,,,,,,,,*71 $GPGLL,3907.3840,N,12102.4770,W,184052.812,A*21Some observations:
Complete cycle takes two seconds.
RMC, GGA, GSA, and GLL are update every second.
| GSV data is swapped with MGNST data every other second.
| Time is shown to .xx and for GLL .xxx precision but the unit output is not
that accurate. Data seems asynchronous and not tied to top of any particular
second.
| Lat/Lon has an extra digit as compared to the Garmin G-12.
| There is a third GSV sentence that is technically not required.
| Notice that all the satellites used are shoved to the left in the GSA
message. | |
$GPGGA,171537,3350.975,N,11823.991,W,2,07,1.1,-25.8,M,,M,1.8,,D*17 $GPGLL,3350.975,N,11823.991,W,171537,A,D*50 $GPRMC,171537,A,3350.975,N,11823.991,W,0.0,096.5,060401,013.0,E,D*07 $GPVTG,096.5,T,083.5,M,0.0,N,0.0,K,D*22 $GPGSA,A,2,04,09,07,24,02,05,26,,,,,,,1.1,*3C $GPGSV,2,1,07,04,62,120,47,09,52,292,53,07,42,044,41,24,38,179,45*7B $GPGSV,2,2,07,02,34,101,43,05,18,304,40,26,09,223,36,,,,*48 $PRAYA,6,1,122,0,0,2,36,1,1,,,,,*5A $GPDTM,W84,,0.000000,N,0.000000,E,0.0,W84*6F $GPGGA,171538,3350.974,N,11823.991,W,2,07,1.1,-25.8,M,,M,1.8,,D*19Some observations:
Complete cycle every second triggered off of GGA.
Date is NMEA 2.3 with integrity value added.
| The proprietary raytheon sentences seems to be for WAAS SV #122.
| Note the new DTM sentences that permits conversion of NMEA datum being
used to WGS84.
| The satellites are listed in an arbitrary order, stacked to the left.
| |
Still more to come.