From 8127c8f927b79ef29a43ebd9c9dc1b13ae5dccae Mon Sep 17 00:00:00 2001 From: "Gary E. Miller" Date: Mon, 19 Nov 2018 17:12:51 -0800 Subject: www: change .txt to .adoc. To make it clear these are asciidoc files, not plain text. --- www/NMEA.adoc | 2622 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2622 insertions(+) create mode 100644 www/NMEA.adoc (limited to 'www/NMEA.adoc') diff --git a/www/NMEA.adoc b/www/NMEA.adoc new file mode 100644 index 00000000..d8280075 --- /dev/null +++ b/www/NMEA.adoc @@ -0,0 +1,2622 @@ += NMEA Revealed = +:description: A programmer's guide to NMEA0183, the GPS protocol reporting standard +:keywords: NMEA0183, GPS, standard, protocol +Eric S. Raymond +v2.22, Nov 2018 + +NMEA 0183 is a proprietary protocol issued by the National Marine +Electronics Association for use in boat navigation and control +systems. Because early GPS sensors were designed for compatibility +with these systems, GPS reporting protocols are often a small +subset of NMEA 0183 or mutated from such as subset. AIS, the +Marine Automatic Identification system, also uses NMEA0183-like +packet formats. + +This document is a list of NMEA 0183 sentences with field descriptions. +It is primarily intended to help people understand GPS reports, but +also exists because the author finds life-critical protocols with +only closed/proprietary documentation deeply offensive. + +The master of this document is in asciidoc format at the GPSD project +website; you are probably seeing it as a web page. You may encounter +versions of it, in plain ASCII, that do not have a revision number and +do not list an editor. These are older and should be considered +obsolescent. + +== Sources and Applicable Standards == + +This collection may originally have been redacted from the document +cited as <>; see the list of sources at the end of this +document. The official NMEA 0183 standard was not consulted at any +point, thus this document is not a derivative work of that standard +and is not controlled by the rapacious lawyers of NMEA. + +It appears there is an international standard, IEC 61162-1, published +in 2000, that is essentially NMEA 0183. <> says it "is closely +aligned with NMEA 0183 version 2.30". Unfortunately, it costs money +and is not redistributable. + +This collection of sentences is originally from the gpsdrive +distribution, but adds more information on the following topics: + +* Old and new forms of VTG +* Units used in GGA +* Vendor extensions PRWIZCH and PMGNST +* FAA Mode Indicator field for RMC, RMB, VTG, GLL, BWC, XTE. +* New documentation on BWC, DTM, GBS, GNS, GRS, GST, MSK, and MSS sentences. +* Sentence examples merged from <> +* Sentence explanations from <> and elsewhere +* Corrected badly mangled ZDA description. +* Corrected DPT titling +* Common talker IDs +* Sentences HFB, ITS, TPC, TDS, TFI, TPC, TPR, TPT from [GLOBALSAT]. +* Sentence PASHR from <>. +* Satellite IDs: PRN vs NMEA-ID. +* Error status indications. + +== Relationship to NMEA 2000 == + +Recently the National Marine Electronics Association has attempted to +replace NMEA 0183 with a very differently structured protocol named +NMEA 2000. It is binary rather than textual, a profile or +interpretation of the Controller Area Network (CAN) protocol used in +automotive networking. Unlike NMEA 0183 it is frame-based and cannot +be transmitted over serial links. + +While newer marine electronics uses this protocol, general-purpose +GPSes have not adopted it. Thus we do not attempt to document NMEA +2000 here; see <>, <>, and <> instead. + +== NMEA version timeline == + +|======================================================================== +|NMEA 2.00 | January 1992 +|NMEA 2.01 | August 1994 +|NMEA 2.10 | October 1995 +|NMEA 2.20 | January 1997 +|NMEA 2.30 | March 1998 +|NMEA 3.00 | July 2000 +|NMEA 3.01 | January 2002 +|NMEA 4.00 | November 2008 +|NMEA 4.10 | July 2012 +|======================================================================== + +No version earlier than 2.00 is listed or archived on the NMEA website. + +The NMEA 4.00 standard states, provocatively, that it is "in theory" +backwards compatible to 2.00, and that versions before 2.00 are not +forward-compatible <>. + +== NMEA 0183 physical protocol layer == + +The NMEA specification requires a physical-level protocol compatible +with RS422 at 4800bps, 8N1 or 7N2. It is RS422 rather than RS232 +because NMEA expects many navigational devices to feed a common serial +bus. The data encoding is ASCII with the high data bit not used and +zeroed. + +Consumer-grade GPS sensors normally report over an RS232 port or a USB +port emulating an RS232 serial device; some use Bluetooth. Baud rate +is variable, with 9600 probably the most common. Most devices use +8N1; there are rare exceptions that use 7N2 (San Jose Navigation) or +even 8O1 (Trimble). + +== Sentence Mixes and NMEA Variations == + +Most GPS sensors emit only RMC, GSA, GSV, GLL, VTG, and (rarely) ZDA. +Newer ones conforming to NMEA 3.x may emit GBS as well. Other NMEA +sentences are usually only emitted by high-end maritime navigation +systems. + +The form of VTG is incompatibly variable with NMEA version. See +the detailed description of that sentence for details. + +In NMEA 2.3, several sentences (APB, BWC, BWR, GLL, RMA, RMB, RMC, +VTG, WCV, and XTE) got a new last field carrying the signal integrity +information needed by the FAA. (The values in the GGA mode field were +extended to carry this information as well.) Here are the values: + +FAA Mode Indicator + A = Autonomous mode + D = Differential Mode + E = Estimated (dead-reckoning) mode + M = Manual Input Mode + S = Simulated Mode + N = Data Not Valid + P = Precise (4.00 and later) + +This field may be empty. In pre-2.3 versions it is omitted. <> says +that according to the NMEA specification, it dominates the Status field -- +the Status field will be set to "A" (data valid) for Mode Indicators A +and D, and to "V" (data invalid) for all other values of the Mode +Indicator. This is confirmed by <>. + +In NMEA 3.0, the GBS sentence reports a complete set of error estimates. Note +however that many receivers claiming to emit "3.0" or "3.01" don't +actually ship this sentence. + +== NMEA Encoding Conventions == + +Data is transmitted in serial async, 1 start-bit, 8 data-bits, +1 stop-bit, no parity. Data-bits are in least-significant-bit +order. The standard specifies 4800 as the speed, but this is no +longer common. The most-signifacant-bit is always zero. + +An NMEA sentence consists of a start delimiter, followed by a +comma-separated sequence of fields, followed by the character '*' +(ASCII 42), the checksum and an end-of-line marker. + +The start delimiter is normally '$' (ASCII 36). Packets of AIVDM/AIVDO +data, which are otherwise formatted like NMEA, use '!'. Up to 4.00 +these are the only permitted start characters <>. + +The first field of a sentence is called the "tag" and normally +consists of a two-letter talker ID followed by a three-letter +type code. + +Where a numeric latitude or longitude is given, the two digits +immediately to the left of the decimal point are whole minutes, to the +right are decimals of minutes, and the remaining digits to the left of +the whole minutes are whole degrees. + +Eg. 4533.35 is 45 degrees and 33.35 minutes. ".35" of a minute is +exactly 21 seconds. + +Eg. 16708.033 is 167 degrees and 8.033 minutes. ".033" of a minute is +about 2 seconds. + +In NMEA 3.01 (and possibly some earlier versions), the character "^" +(HEX 5E) is reserved as an introducer for two-character hex escapes +using 0-9 and A-F, expressing an ISO 8859-1 (Latin-1) character <>. + +The Checksum is mandatory, and the last field in a sentance. It is +the 8-bit XOR of all characters in the sentance, excluding the "$", "I", +or "*" characters; but including all "," and "^". It is encoded as +two hexadecimal characters (0-9, A-F), the most-significant-nibble +being sent first. + +Sentences are terminated by a sequence. + +Maximum sentence length, including the $ and is 82 bytes. + +According to <>, the NMEA standard requires that a field (such as +altitude, latitude, or longitude) must be left empty when the GPS has +no valid data for it. However, many receivers violate this. It's +common, for example, to see latitude/longitude/altitude figures filled +with zeros when the GPS has no valid data. + +== Dates and times == + +NMEA devices report date and time in UTC, aka GMT, aka Zulu time (as +opposed to local time). But the way this report is computed results +in some odd bugs and inaccuracies. + +Date and time in GPS is represented as number of weeks from the start +of zero second of 6 January 1980, plus number of seconds into the +week. GPS time is not leap-second corrected, though satellites also +broadcast a current leap-second correction which may be updated on +three-month boundaries according to rotational bulletins issued by the +International Earth Rotation and Reference Systems Service (IERS). + +The leap-second correction is only included in the multiplexed satellite +subframe broadcast, once every 12.5 minutes. While the satellites do +notify GPSes of upcoming leap-seconds, this notification is not +necessarily processed correctly on consumer-grade devices, and may not +be available at all when a GPS receiver has just cold-booted. Thus, +reported UTC time may be slightly inaccurate between a cold boot or leap +second and the following subframe broadcast. + +GPS date and time are subject to a rollover problem in the 10-bit week +number counter, which will re-zero every 1024 weeks (roughly every 19.6 +years). The last rollover (and the first since GPS went live in 1980) +was in Aug-1999; the next will fall in Apr-2019. The new "CNAV" data +format extends the week number to 13 bits, with the first rollover +occurring in Jan-2137, but this is only used with some newly added GPS +signals, and is unlikely to be usable in most consumer-grade receivers +prior to the 2019 rollover. + +For accurate time reporting, therefore, a GPS requires a supplemental +time references sufficient to identify the current rollover period, +e.g. accurate to within 512 weeks. Many NMEA GPSes have a wired-in +assumption about the UTC time of the last rollover and will thus report +incorrect times outside the rollover period they were designed in. + +For these reasons, NMEA GPSes should not be considered high-quality +references for absolute time. Some do, however, emit pulse-per-second +RS232 signals which can be used to improve the precision of an +external clock. See <> for discussion. + +== Error status indications + +The NMEA sentences in the normal GPS inventory return four kinds of +validity flags: Mode, Status, the Active/Void bit, and in later +versions the FAA indicator mode. The FAA mode field is legally +required and orthogonal to the others. Here's how the first three used +in various sentences: + +[frame="topbot",options="header"] +|======================================================== +| | GPRMC | GPGLL | GPGGA | GPGSA +|Returns A/V | Yes | Yes | No | No +|Returns mode | No | No | No | Yes +|Returns status | No | Yes | Yes | No +|======================================================== + +The "Navigation receiver warning" is 'A' for Active and 'V' for Void. +(or warning). You will see it when either there is no satellite lock, +or to indicate a valid fix that has a DOP too high, or which fails an +elevation test. In the latter case the visible sats are below some +fixed elevation of the horizon (usually 15%, but some GPSes make this +adjustable) making position unreliable due to poor geometry and more +variable signal lag induced by lengthened atmosphere transit. + +Mode is associated with the GSA sentence associated with the last fix. +It reports whether the fix was no good, sufficient for 2D, or +sufficient for 3D (values 1, 2, and 3). + +Status will be 0 when the sample from from which the reporting +sentence was generated does not have a valid fix, 1 when it has +a valid (normal-precision) fix, and 2 when the fig is DGPS corrected +(reducing the base error). + +In addition, some sentences may use empty fields to signify invalid +data. It is not clear whether NMEA 0183 allows this, but real-world +software must cope. + +== Talker IDs == + +NMEA sentences do not identify the individual device that issued +them; the format was originally designed for shipboard multidrop +networks on which it's possible only to broadcast to all devices, not +address a specific one. + +NMEA sentences do, however, include a "talker ID" a two-character +prefix that identifies the type of the transmitting unit. By far the +most common talker ID is "GP", identifying a generic GPS, but all of +the following are well known: + +.Common talker IDs +|================================================================ +|BD | BeiDou (China) +|CD | Digital Selective Calling (DSC) +|EC | Electronic Chart Display & Information System (ECDIS) +|GA | Galileo Positioning System +|GB | BeiDou (China) +|GL | GLONASS, according to IEIC 61162-1 +|GN | Mixed GPS and GLONASS data, according to IEIC 61162-1 +|GP | Global Positioning System receiver +|II | Integrated Instrumentation +|IN | Integrated Navigation +|LC | Loran-C receiver +|QZ | QZSS regional GPS augmentation system (Japan) +|================================================================ + +EC -- ECDIS is a specialized geographical information system intended +to support professional maritime navigation. NMEA talker units +meeting the ECDIS standard use this prefix. Some of these emit GLL. + +II - II is emitted by the NMEA interfaces of several widely-used lines +of marine-navigation electronics. One is the AutoHelm system by +Raymarine; see also <> for the native protocol of these +devices. + +IN -- Some Garmin GPS units use an IN talker ID. + +CD -- Modern marine VHF radios use conventions collectively known as +Digital Selective Calling (DSC). These radios typically take data +from a local position indicating device. This data is used in +conjunction with a unique (FCC assigned) ID to cause your radio to +broadcast your position data to others. Conversely, these radios are +capable of recieving position data of other stations and emitting +sentences indicating other station positions. This lets you plot the +position of other vessels on a chart, for instance. There has been at +least one instance of a DSC enabled radio overloading (mis-using) the +LC talker prefix for this purpose. Otherwise they use the CD prefix. +A vessel's nav system is likely to have both CD and some other +position indicating talker on its bus(es). + +LC - Loran-C is a marine navigation system run by the U.S. government, +which is planning to shut it down in favor of GPS. Some non-Loran +devices emit GLL but use this talker ID for backward-compatibility +reasons, so it may outlast the actual Loran system. + +Until the U.S. Coast Guard terminated the Omega Navigation System in +1997, another common talker prefix was "OM" for an Omega Navigation +System receiver. + +Here is a more complete list of talker ID prefixes. Most are not +relevant to GPS systems. + +Note that talker IDs made obsolete by newer revisions of the +standards may still be emitted by older devices. Support +for them may be present in the GPSD project. + +.Big list of talker IDs +|================================================================ +|AB | Independent AIS Base Station +|AD | Dependent AIS Base Station +|AG | Autopilot - General +|AP | Autopilot - Magnetic +|BN | Bridge navigational watch alarm system +|CC | Computer - Programmed Calculator (obsolete) +|CD | Communications - Digital Selective Calling (DSC) +|CM | Computer - Memory Data (obsolete) +|CS | Communications - Satellite +|CT | Communications - Radio-Telephone (MF/HF) +|CV | Communications - Radio-Telephone (VHF) +|CX | Communications - Scanning Receiver +|DE | DECCA Navigation (obsolete) +|DF | Direction Finder +|DM | Velocity Sensor, Speed Log, Water, Magnetic +|DU | Duplex repeater station +|EC | Electronic Chart Display & Information System (ECDIS) +|EP | Emergency Position Indicating Beacon (EPIRB) +|ER | Engine Room Monitoring Systems +|GP | Global Positioning System (GPS) +|HC | Heading - Magnetic Compass +|HE | Heading - North Seeking Gyro +|HN | Heading - Non North Seeking Gyro +|II | Integrated Instrumentation +|IN | Integrated Navigation +|LA | Loran A (obsolete) +|LC | Loran C (obsolete) +|MP | Microwave Positioning System (obsolete) +|NL | Navigation light controller +|OM | OMEGA Navigation System (obsolete) +|OS | Distress Alarm System (obsolete) +|RA | RADAR and/or ARPA +|SD | Sounder, Depth +|SN | Electronic Positioning System, other/general +|SS | Sounder, Scanning +|TI | Turn Rate Indicator +|TR | TRANSIT Navigation System +|U# | '#' is a digit 0 ... 9; User Configured +|UP | Microprocessor controller +|VD | Velocity Sensor, Doppler, other/general +|VW | Velocity Sensor, Speed Log, Water, Mechanical +|WI | Weather Instruments +|YC | Transducer - Temperature (obsolete) +|YD | Transducer - Displacement, Angular or Linear (obsolete) +|YF | Transducer - Frequency (obsolete) +|YL | Transducer - Level (obsolete) +|YP | Transducer - Pressure (obsolete) +|YR | Transducer - Flow Rate (obsolete) +|YT | Transducer - Tachometer (obsolete) +|YV | Transducer - Volume (obsolete) +|YX | Transducer +|ZA | Timekeeper - Atomic Clock +|ZC | Timekeeper - Chronometer +|ZQ | Timekeeper - Quartz +|ZV | Timekeeper - Radio Update, WWV or WWVH +|================================================================ + +== Satellite IDs == + +Satellites may be identified by one of two different numbers in +sentences such as GSV: a PRN number associated with their radio code, +or an NMEA-ID. + +For satellites 1-32, the GPS constellation, these numbers are the +same. For satellites associated with WAAS (Wide Area Augmentation +System), EGNOS (European Geostationary Navigation Overlay Service), +and MSAS (Multi-functional Satellite Augmentation System), they are +different. + +Here is a table of NMEA-ID allocations above 32 as of March 2010: + +[frame="topbot",options="header"] +|==================================================== +|System |Satellite |PRN |NMEA-ID +|EGNOS |AOR-E |120 |33 +|EGNOS |Artemis |124 |37 +|EGNOS |IOR-W |126 |39 +|MSAS |MTSAT-1 |129 |42 +|EGNOS |IOR-E |131 |44 +|WAAS |AMR |133 |46 +|WAAS |PanAm |135 |48 +|MSAS |MTSAT-2 |137 |50 +|WAAS |Anik |138 |51 +|==================================================== + +In general, NMEA-ID = PRN - 87. Theoretically, all NMEA-emitting +devices should emit NMEA-IDs. In practice, some pass through PRNs. + +Documentation on IDs for GLONASS satellites is scanty. +The manual for one GLONASS-capable receiver has this to say: + +To avoid possible confusion caused by repetition of satellite ID +numbers when using multiple satellite systems, the following +convention has been adopted: + +a. GPS satellites are identified by their PRN numbers, which range from 1 to 32. + +b. The numbers 33-64 are reserved for WAAS satellites. The WAAS system +PRN numbers are 120-138. The offset from NMEA WAAS SV ID to WAAS PRN +number is 87. A WAAS PRN number of 120 minus 87 yields the SV ID of 33. +The addition of 87 to the SV ID yields the WAAS PRN number. + +c. The numbers 65-96 are reserved for GLONASS satellites. GLONASS +satellites are identified by 64+satellite slot number. The slot +numbers are 1 through 24 for the full constellation of 24 satellites, +this gives a range of 65 through 88. The numbers 89 through 96 are +available if slot numbers above 24 are allocated to on-orbit spares. + +Other sources such as <> confirm that the NMEA standard +assigns NMEA IDs 65-96 to GLONASS. The following +table is our best guess of NMEA usage in 2018: + +[frame="topbot",options="header"] +|==================================================== +| 1 - 32 | GPS +| 33 - 54 | Various SBAS systems (EGNOS, WAAS, SDCM, GAGAN, MSAS) +| 55 - 64 | not used (might be assigned to further SBAS systems) +| 65 - 88 | GLONASS +| 89 - 96 | GLONASS (future extensions?) +| 97 - 119 | not used +| 120 - 151 | not used (SBAS PRNs occupy this range) +| 152 - 158 | Various SBAS systems (EGNOS, WAAS, SDCM, GAGAN, MSAS) +| 159 - 172 | not used +| 173 - 182 | IMES +| 193 - 197 | QZSS +| 196 - 200 | QZSS (future extensions?) +| 201 - 235 | BeiDou (u-blox, not NMEA) +| 301 - 336 | GALILEO +| 401 - 437 | BeiDou (NMEA) +|==================================================== + +GLONASS satellite numbers come in two flavors. If a sentence +has a GL talker ID, expect the skyviews to be GLONASS-only and +in the range 1-32; you must add 64 to get a globally-unique +NMEA ID. If the sentence has a GN talker ID, the device emits +a multi-constellation skyview with GLONASS IDs aleady in +the 65-96 range. + +QZSS is a geosynchronous (*not geostationary*) system of three +(possibly four) satellites in highly eliptical, inclined, +orbits. It is designed to provide coverage in Japan's +urban canyons. + +BeiDou-1 consists of 4 geostationary satellites operated by China, +operational since 2004. Coverage area is the Chinese mainland. +gpsd does not support this, as this requires special hardware, +and prior arrangements with the operator, who calculates and +returns the position fix. + +BeiDou-2 (earlier known as COMPASS) is a system of 35 satellites, +including 5 geostationary for compatability with BeiDou-1. +As of late 2015, coverage is complete over most of Asia and the +West Pacific. It is expected to be fully operational by 2020, by +when coverage area is expected to be worldwide. + +Note that the PRN system is becoming increasingly fragmented and +unworkable. New GPS denote each satellite, and their signals, by their +constellation (gnssID), satellite id in that constellation (svId), and +signal type (sigId). NMEA, as of version 4, has not adapted. + +== Obsolete sentences == + +Note that sentances made obsolete by newer revisions of the +standards may still be emitted by devices. +Support for them may be present in the GPSD project. + +The following NMEA sentences have been designated "obsolete" in a +publicly available NMEA document dated 2009. + +|================================================================ +|APA | Autopilot Sentence "A" +|BER | Bearing & Distance to Waypoint, Dead Reckoning, Rhumb Line +|BPI | Bearing & Distance to Point of Interest +|DBK | Depth Below Keel +|DBS | Depth Below Surface +| +|DRU | Dual Doppler Auxiliary Data +|GDA | Dead Reckoning Positions +|GLA | Loran-C Positions +|GOA | OMEGA Positions +|GXA | TRANSIT Positions +|GTD | Geographical Position, Loran-C TDs +|GXA | TRANSIT Position +|HCC | Compass Heading +|HCD | Heading and Deviation +|HDM | Heading, Magnetic +|HDT | Heading, True +|HVD | Magnetic Variation, Automatic +|HVM | Magnetic Variation, Manually Set +|IMA | Vessel Identification +|MDA | Meteorological Composite +|MHU | Humidity +|MMB | Barometer +|MTA | Air Temperature +|MWH | Wave Height +|MWS | Wind & Sea State +| +|Rnn | Routes +|SBK | Loran-C Blink Status +|SCY | oran-C Cycle Lock Status +|SCD | Loran-C ECDs +|SDB | Loran-C Signal Strength +|SGD | Position Accuracy Estimate +|SGR | Loran-C Chain Identifier +|SIU | Loran-C Stations in Use +|SLC | Loran-C Status +|SNC | Navigation Calculation Basis +|SNU | Loran-C SNR Status +|SPS | Loran-C Predicted Signal Strength +|SSF | Position Correction Offset +|STC | Time Constant +|STR | Tracking Reference +|SYS | Hybrid System Configuration +|================================================================ + +== NMEA-Standard Sentences == + +Here are the NMEA-standard sentences we know about: + +=== AAM - Waypoint Arrival Alarm === + +This sentence 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. + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 + | | | | | | + $--AAM,A,A,x.x,N,c--c*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Status, BOOLEAN, A = Arrival circle entered, V = not passed +2. Status, BOOLEAN, A = perpendicular passed at waypoint, V = not passed +3. Arrival circle radius +4. Units of radius, nautical miles +5. Waypoint ID +6. Checksum + +Example: GPAAM,A,A,0.10,N,WPTNME*43 + +WPTNME is the waypoint name. + +=== ALM - GPS Almanac Data === + +This sentence expresses orbital data for a specified GPS satellite. + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + | | | | | | | | | | | | | | | | + $--ALM,x.x,x.x,xx,x.x,hh,hhhh,hh,hhhh,hhhh,hhhhhh,hhhhhh,hhhhhh,hhhhhh,hhh,hhh,*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Total number of messages +2. Message Number +3. Satellite PRN number (01 to 32) +4. GPS Week Number +5. SV health, bits 17-24 of each almanac page +6. Eccentricity +7. Almanac Reference Time +8. Inclination Angle +9. Rate of Right Ascension +10. Root of semi-major axis +11. Argument of perigee +12. Longitude of ascension node +13. Mean anomaly +14. F0 Clock Parameter +15. F1 Clock Parameter +16. Checksum + +Fields 5 through 15 are dumped as raw hex. + +Example: + +$GPALM,1,1,15,1159,00,441d,4e,16be,fd5e,a10c9f,4a2da4,686e81,58cbe1,0a4,001*5B + +=== APA - Autopilot Sentence "A" === + +This sentence 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. + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 8 9 10 11 + | | | | | | | | | | | + $--APA,A,A,x.xx,L,N,A,A,xxx,M,c---c*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Status + V = Loran-C Blink or SNR warning + V = general warning flag or other navigation systems when a reliable + fix is not available +2. Status + V = Loran-C Cycle Lock warning flag + A = OK or not used +3. Cross Track Error Magnitude +4. Direction to steer, L or R +5. Cross Track Units (Nautic miles or kilometers) +6. Status + A = Arrival Circle Entered +7. Status + A = Perpendicular passed at waypoint +8. Bearing origin to destination +9. M = Magnetic, T = True +10. Destination Waypoint ID +11. checksum + +Example: $GPAPA,A,A,0.10,R,N,V,V,011,M,DEST,011,M*82 + +=== APB - Autopilot Sentence "B" === + +This is a fixed form of the APA sentence with some ambiguities removed. + +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. + 13 15 +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 8 9 10 11 12| 14| + | | | | | | | | | | | | | | | + $--APB,A,A,x.x,a,N,A,A,x.x,a,c--c,x.x,a,x.x,a*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Status + V = Loran-C Blink or SNR warning + V = general warning flag or other navigation systems when a reliable + fix is not available +2. Status + V = Loran-C Cycle Lock warning flag + A = OK or not used +3. Cross Track Error Magnitude +4. Direction to steer, L or R +5. Cross Track Units, N = Nautical Miles +6. Status + A = Arrival Circle Entered +7. Status + A = Perpendicular passed at waypoint +8. Bearing origin to destination +9. M = Magnetic, T = True +10. Destination Waypoint ID +11. Bearing, present position to Destination +12. M = Magnetic, T = True +13. Heading to steer to destination waypoint +14. M = Magnetic, T = True +15. Checksum + +Example: $GPAPB,A,A,0.10,R,N,V,V,011,M,DEST,011,M,011,M*82 + +=== BOD - Bearing - Waypoint to Waypoint === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 + | | | | | | | + $--BOD,x.x,T,x.x,M,c--c,c--c*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Bearing Degrees, TRUE +2. T = True +3. Bearing Degrees, Magnetic +4. M = Magnetic +5. TO Waypoint +6. FROM Waypoint +7. Checksum + +Example 1: $GPBOD,099.3,T,105.6,M,POINTB,*01 + +Waypoint ID: "POINTB" Bearing 99.3 True, 105.6 Magnetic This sentence +is transmitted in the GOTO mode, without an active route on your +GPS. WARNING: this is the bearing from the moment you press enter in +the GOTO page to the destination waypoint and is NOT updated +dynamically! To update the information, (current bearing to waypoint), +you will have to press enter in the GOTO page again. + +Example 2: $GPBOD,097.0,T,103.2,M,POINTB,POINTA*52 + +This sentence is transmitted when a route is active. It contains the +active leg information: origin waypoint "POINTA" and destination +waypoint "POINTB", bearing between the two points 97.0 True, 103.2 +Magnetic. It does NOT display the bearing from current location to +destination waypoint! WARNING Again this information does not change +until you are on the next leg of the route. (The bearing from POINTA +to POINTB does not change during the time you are on this leg.) + +This sentence has been replaced by BWW in NMEA 4.00 (and posssibly +earlier versions) <>. + +=== BWC - Bearing & Distance to Waypoint - Great Circle === + +------------------------------------------------------------------------------ + 12 + 1 2 3 4 5 6 7 8 9 10 11| 13 14 + | | | | | | | | | | | | | | + $--BWC,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x.x,T,x.x,M,x.x,N,c--c,m,*hh +------------------------------------------------------------------------------ + +Field Number: + +1. UTCTime +2. Waypoint Latitude +3. N = North, S = South +4. Waypoint Longitude +5. E = East, W = West +6. Bearing, True +7. T = True +8. Bearing, Magnetic +9. M = Magnetic +10. Nautical Miles +11. N = Nautical Miles +12. Waypoint ID +13. FAA mode indicator (NMEA 2.3 and later, optional) +14. Checksum + +Example 1: $GPBWC,081837,,,,,,T,,M,,N,*13 + +Example 2: GPBWC,220516,5130.02,N,00046.34,W,213.8,T,218.0,M,0004.6,N,EGLM*11 + +=== BWR - Bearing and Distance to Waypoint - Rhumb Line === + +------------------------------------------------------------------------------ + 11 + 1 2 3 4 5 6 7 8 9 10 | 12 13 + | | | | | | | | | | | | | + $--BWR,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x.x,T,x.x,M,x.x,N,c--c*hh +------------------------------------------------------------------------------ + +Field Number: + +1. UTCTime +2. Waypoint Latitude +3. N = North, S = South +4. Waypoint Longitude +5. E = East, W = West +6. Bearing, True +7. T = True +8. Bearing, Magnetic +9. M = Magnetic +10. Nautical Miles +11. N = Nautical Miles +12. Waypoint ID +13. Checksum + +=== BWW - Bearing - Waypoint to Waypoint === + +Bearing calculated at the FROM waypoint. + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 + | | | | | | | + $--BWW,x.x,T,x.x,M,c--c,c--c*hh +------------------------------------------------------------------------------ + + Field Number: +1. Bearing Degrees, TRUE +2. T = True +3. Bearing Degrees, Magnetic +4. M = Magnetic +5. TO Waypoint +6. FROM Waypoint +7. Checksum + +=== DBK - Depth Below Keel === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 + | | | | | | | + $--DBK,x.x,f,x.x,M,x.x,F*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Depth, feet +2. f = feet +3. Depth, meters +4. M = meters +5. Depth, Fathoms +6. F = Fathoms +7. Checksum + +=== DBS - Depth Below Surface === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 + | | | | | | | + $--DBS,x.x,f,x.x,M,x.x,F*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Depth, feet +2. f = feet +3. Depth, meters +4. M = meters +5. Depth, Fathoms +6. F = Fathoms +7. Checksum + +=== DBT - Depth below transducer === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 + | | | | | | | + $--DBT,x.x,f,x.x,M,x.x,F*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Depth, feet +2. f = feet +3. Depth, meters +4. M = meters +5. Depth, Fathoms +6. F = Fathoms +7. Checksum + +In real-world sensors, sometimes not all three conversions are reported. +So you might see something like $SDDBT,,f,22.5,M,,F*cs + +Example: $SDDBT,7.8,f,2.4,M,1.3,F*0D + +=== DCN - Decca Position === + +------------------------------------------------------------------------------ + 11 13 16 + 1 2 3 4 5 6 7 8 9 10| 12| 14 15| 17 + | | | | | | | | | | | | | | | | | + $--DCN,xx,cc,x.x,A,cc,x.x,A,cc,x.x,A,A,A,A,x.x,N,x*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Decca chain identifier +2. Red Zone Identifier +3. Red Line Of Position +4. Red Master Line Status +5. Green Zone Identifier +6. Green Line Of Position +7. Green Master Line Status +8. Purple Zone Identifier +9. Purple Line Of Position +10. Purple Master Line Status +11. Red Line Navigation Use +12. Green Line Navigation Use +13. Purple Line Navigation Use +14. Position Uncertainity +15. N = Nautical Miles +16. Fix Data Basis + - 1 = Normal Pattern + - 2 = Lane Identification Pattern + - 3 = Lane Identification Transmissions +17. Checksum + +(The DCN sentence is obsolete as of 3.01) + +=== DPT - Depth of Water === + +------------------------------------------------------------------------------ + 1 2 3 + | | | + $--DPT,x.x,x.x*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Depth, meters +2. Offset from transducer, + positive means distance from tansducer to water line + negative means distance from transducer to keel +3. Checksum + +This sentence was incorrectly titled "Heading - Deviation & Variation" +in <>. It's documented at + + +Example: $INDPT,2.3,0.0*46 + +=== DTM - Datum Reference === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 8 9 + | | | | | | | | | + $ --DTM,ref,x,llll,c,llll,c,aaa,ref*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Local datum code. +2. Local datum subcode. May be blank. +3. Latitude offset (minutes) +4. N or S +5. Longitude offset (minutes) +6. E or W +7. Altitude offset in meters +8. Datum name. What's usually seen here is "W84", the standard + WGS84 datum used by GPS. +9. Checksum. + +Example: $GPDTM,W84,C*52 + +=== FSI - Frequency Set Information === + +Set (or report) frequency, mode of operation and transmitter power level of a +radiotelephone. + +------------------------------------------------------------------------------ + 1 2 3 4 5 + | | | | | + $--FSI,xxxxxx,xxxxxx,c,x*hh +------------------------------------------------------------------------------ + + Field Number: +1. Transmitting Frequency +2. Receiving Frequency +3. Communications Mode (NMEA Syntax 2) +4. Power Level +5. Checksum + +=== GBS - GPS Satellite Fault Detection === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 8 9 + | | | | | | | | | + $--GBS,hhmmss.ss,x.x,x.x,x.x,x.x,x.x,x.x,x.x*hh +------------------------------------------------------------------------------ + +Field Number: + +1. UTC time of the GGA or GNS fix associated with this sentence +2. Expected error in latitude (meters) +3. Expected error in longitude (meters) +4. Expected error in altitude (meters) +5. PRN of most likely failed satellite +6. Probability of missed detection for most likely failed satellite +7. Estimate of bias in meters on most likely failed satellite +8. Standard deviation of bias estimate +9. Checksum + +Note: Source <> describes a proprietary extension of GBS with +a 9th data field. The 8-field version is in NMEA 3.0. + +Example: $GPGBS,125027,23.43,M,13.91,M,34.01,M*07 + +=== GGA - Global Positioning System Fix Data === + +This is one of the sentences commonly emitted by GPS units. + +Time, Position and fix related data for a GPS receiver. + +------------------------------------------------------------------------------ + 11 + 1 2 3 4 5 6 7 8 9 10 | 12 13 14 15 + | | | | | | | | | | | | | | | + $--GGA,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Universal Time Coordinated (UTC) +2. Latitude +3. N or S (North or South) +4. Longitude +5. E or W (East or West) +6. GPS Quality Indicator, + - 0 - fix not available, + - 1 - GPS fix, + - 2 - Differential GPS fix + (values above 2 are 2.3 features) + - 3 = PPS fix + - 4 = Real Time Kinematic + - 5 = Float RTK + - 6 = estimated (dead reckoning) + - 7 = Manual input mode + - 8 = Simulation mode +7. Number of satellites in view, 00 - 12 +8. Horizontal Dilution of precision (meters) +9. Antenna Altitude above/below mean-sea-level (geoid) (in meters) +10. Units of antenna altitude, meters +11. Geoidal separation, the difference between the WGS-84 earth + ellipsoid and mean-sea-level (geoid), "-" means mean-sea-level + below ellipsoid +12. Units of geoidal separation, meters +13. Age of differential GPS data, time in seconds since last SC104 + type 1 or 9 update, null field when DGPS is not used +14. Differential reference station ID, 0000-1023 +15. Checksum + +Example: + +$GNGGA,001043.00,4404.14036,N,12118.85961,W,1,12,0.98,1113.0,M,-21.3,M,,*47 + +=== GLC - Geographic Position, Loran-C === + +This sentence is obsolete over most of its former coverage area. The +US/Canadian/Russian Loran-C network was shut down in 2010; it is still +as of 2015 in limited use in Europe. Loran-C operations in Norway +will cease from 1st Jan 2016. <> + +------------------------------------------------------------------------------ + 12 14 + 1 2 3 4 5 6 7 8 9 10 11| 13| + | | | | | | | | | | | | | | + $--GLC,xxxx,x.x,a,x.x,a,x.x,a.x,x,a,x.x,a,x.x,a*hh +------------------------------------------------------------------------------ + +Field Number: + +1. GRI Microseconds/10 +2. Master TOA Microseconds +3. Master TOA Signal Status +4. Time Difference 1 Microseconds +5. Time Difference 1 Signal Status +6. Time Difference 2 Microseconds +7. Time Difference 2 Signal Status +8. Time Difference 3 Microseconds +9. Time Difference 3 Signal Status +10. Time Difference 4 Microseconds +11. Time Difference 4 Signal Status +12. Time Difference 5 Microseconds +13. Time Difference 5 Signal Status +14. Checksum + +=== GLL - Geographic Position - Latitude/Longitude === + +This is one of the sentences commonly emitted by GPS units. + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 8 + | | | | | | | | + $--GLL,llll.ll,a,yyyyy.yy,a,hhmmss.ss,a,m,*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Latitude +2. N or S (North or South) +3. Longitude +4. E or W (East or West) +5. Universal Time Coordinated (UTC) +6. Status A - Data Valid, V - Data Invalid +7. FAA mode indicator (NMEA 2.3 and later) +8. Checksum + +Example: $GNGLL,4404.14012,N,12118.85993,W,001037.00,A,A*67 + +=== GNS - Fix data === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 8 9 10 11 12 13 + | | | | | | | | | | | | | +$--GNS,hhmmss.ss,llll.ll,a,yyyyy.yy,a,c--c,xx,x.x,x.x,x.x,x.x,x.x*hh +------------------------------------------------------------------------------ + +Field Number: + +1. UTC +2. Latitude +3. N or S (North or South) +4. Longitude +5. E or W (East or West) +6. Mode indicator (non-null) +7. Total number of satelites in use,00-99 +8. HDROP +9. Antenna altitude, meters, re:mean-sea-level(geoid. +10. Goeidal separation meters +11. Age of diferential data +12. Differential reference station ID +13. Checksum + +The Mode indicator is two or more characters, with the first and second +defined for GPS and GLONASS. Further characters may be defined. For +each system, the character can have a value (table may be incomplete): + +* N = Constellation not in use, or no valid fix +* A = Autonomous (non-differential) +* D = Differential mode +* P = Precise (no degradation, like Selective Availability) +* R = Real Time Kinematic +* F = Float RTK +* E = Estimated (dead reckoning) Mode +* M = Manual Input Mode +* S = Simulator Mode + +Example: $GPGNS,112257.00,3844.24011,N,00908.43828,W,AN,03,10.5,,,,*57 + +=== GRS - GPS Range Residuals === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + | | | | | | | | | | | | | | | + $ --GRS,hhmmss.ss,m,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,*hh +------------------------------------------------------------------------------ + +Field Number: + +1. TC time of associated GGA fix +2. 0 = Residuals used in GGA, 1 = residuals calculated after GGA +3. Satellite 1 residual in meters +4. Satellite 2 residual in meters +5. Satellite 3 residual in meters +6. Satellite 4 residual in meters (blank if unused) +7. Satellite 5 residual in meters (blank if unused) +8. Satellite 6 residual in meters (blank if unused) +9. Satellite 7 residual in meters (blank if unused) +10. Satellite 8 residual in meters (blank if unused) +11. Satellite 9 residual in meters (blank if unused) +12. Satellite 10 residual in meters (blank if unused) +13. Satellite 11 residual in meters (blank if unused) +14. Satellite 12 residual in meters (blank if unused) +15. Checksum + +The order of satellites MUST match those in the last GSA. + +Example: $GPGRS,024603.00,1,-1.8,-2.7,0.3,,,,,,,,,*6C + +Note that the talker ID may be GP, GL, or GN, depending on if the residuals +are for GPS-only, GLONASS-only, or combined solution, respectively. + +=== GST - GPS Pseudorange Noise Statistics === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 8 9 + | | | | | | | | | + $ --GST,hhmmss.ss,x,x,x,x,x,x,x,*hh +------------------------------------------------------------------------------ + +Field Number: + +1. TC time of associated GGA fix +2. Total RMS standard deviation of ranges inputs to the navigation solution +3. Standard deviation (meters) of semi-major axis of error ellipse +4. Standard deviation (meters) of semi-minor axis of error ellipse +5. Orientation of semi-major axis of error ellipse (true north degrees) +6. Standard deviation (meters) of latitude error +7. Standard deviation (meters) of longitude error +8. Standard deviation (meters) of altitude error +9. Checksum + +Example: $GPGST,182141.000,15.5,15.3,7.2,21.8,0.9,0.5,0.8*54 + + +=== GSA - GPS DOP and active satellites === + +This is one of the sentences commonly emitted by GPS units. + +------------------------------------------------------------------------------ + 1 2 3 14 15 16 17 18 + | | | | | | | | + $--GSA,a,a,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x.x,x.x,x.x*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Selection mode: M=Manual, forced to operate in 2D or 3D, A=Automatic, 3D/2D +2. Mode (1 = no fix, 2 = 2D fix, 3 = 3D fix) +3. ID of 1st satellite used for fix +4. ID of 2nd satellite used for fix +5. ID of 3rd satellite used for fix +6. ID of 4th satellite used for fix +7. ID of 5th satellite used for fix +8. ID of 6th satellite used for fix +9. ID of 7th satellite used for fix +10. ID of 8th satellite used for fix +11. ID of 9th satellite used for fix +12. ID of 10th satellite used for fix +13. ID of 11th satellite used for fix +14. ID of 12th satellite used for fix +15. PDOP +16. HDOP +17. VDOP +18. Checksum + +Example: $GNGSA,A,3,80,71,73,79,69,,,,,,,,1.83,1.09,1.47*17 + +=== GSV - Satellites in view === + +This is one of the sentences commonly emitted by GPS units. + +These sentences describe the sky position of a UPS satellite in view. +Typically they're shipped in a group of 2 or 3. + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 n + | | | | | | | | + $--GSV,x,x,x,x,x,x,x,...*hh +------------------------------------------------------------------------------ + +Field Number: + +1. total number of GSV messages to be transmitted in this group +2. 1-origin number of this GSV message within current group +3. total number of satellites in view (leading zeros sent) +4. satellite PRN number (leading zeros sent) +5. elevation in degrees (-90 to 90) (leading zeros sent) +6. azimuth in degrees to true north (000 to 359) (leading zeros sent) +7. SNR in dB (00-99) (leading zeros sent) + more satellite info quadruples like 4-7 + n) checksum + +Example: + $GPGSV,3,1,11,03,03,111,00,04,15,270,00,06,01,010,00,13,06,292,00*74 + $GPGSV,3,2,11,14,25,170,00,16,57,208,39,18,67,296,40,19,40,246,00*74 + $GPGSV,3,3,11,22,42,067,42,24,14,311,43,27,05,244,00,,,,*4D + +Some GPS receivers may emit more than 12 quadruples (more than three +GPGSV sentences), even though NMEA-0813 doesn't allow this. (The +extras might be WAAS satellites, for example.) Receivers may also +report quads for satellites they aren't tracking, in which case the +SNR field will be null; we don't know whether this is formally allowed +or not. + +Example: $GLGSV,3,3,09,88,07,028,*51 + +=== GTD - Geographic Location in Time Differences === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 + | | | | | | + $--GTD,x.x,x.x,x.x,x.x,x.x*hh +------------------------------------------------------------------------------ + +Field Number: + +1. time difference +2. time difference +3. time difference +4. time difference +5. time difference + n) checksum + + +=== GXA - TRANSIT Position - Latitude/Longitude === + +Location and time of TRANSIT fix at waypoint + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 8 + | | | | | | | | + $--GXA,hhmmss.ss,llll.ll,a,yyyyy.yy,a,c--c,X*hh +------------------------------------------------------------------------------ + +Field Number: + +1. UTC of position fix +2. Latitude +3. East or West +4. Longitude +5. North or South +6. Waypoint ID +7. Satelite number +8. Checksum + +(The GXA sentence is obsolete as of 3.01.) + +=== HDG - Heading - Deviation & Variation === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 + | | | | | | + $--HDG,x.x,x.x,a,x.x,a*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Magnetic Sensor heading in degrees +2. Magnetic Deviation, degrees +3. Magnetic Deviation direction, E = Easterly, W = Westerly +4. Magnetic Variation degrees +5. Magnetic Variation direction, E = Easterly, W = Westerly +6. Checksum + +=== HDM - Heading - Magnetic === + +Vessel heading in degrees with respect to magnetic north produced by +any device or system producing magnetic heading. + +------------------------------------------------------------------------------ + 1 2 3 + | | | + $--HDM,x.x,M*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Heading Degrees, magnetic +2. M = magnetic +3. Checksum + +=== HDT - Heading - True === + +Actual vessel heading in degrees true produced by any device or system +producing true heading. + +------------------------------------------------------------------------------ + 1 2 3 + | | | + $--HDT,x.x,T*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Heading Degrees, true +2. T = True +3. Checksum + +Example: $GPHDT,274.07,T*03 + +=== HFB - Trawl Headrope to Footrope and Bottom === + +------------------------------------------------------------------------------ + 1 2 3 4 5 + | | | | | + $--HFB,x.x,M,y.y,M*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Distance from headrope to footrope +2. Meters (0-100) +3. Distance from headrope to bottom +4. Meters (0-100) +5. Checksum + +From <>. Shown with a "@II" leader rather than "$GP". + +=== HSC - Heading Steering Command === + +------------------------------------------------------------------------------ + 1 2 3 4 5 + | | | | | + $--HSC,x.x,T,x.x,M,*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Heading Degrees, True +2. T = True +3. Heading Degrees, Magnetic +4. M = Magnetic +5. Checksum + +<> describes a completely different meaning for this +sentence, having to do with water temperature sensors. It is +unclear which is correct. + +=== ITS - Trawl Door Spread 2 Distance === + +------------------------------------------------------------------------------ + 1 2 3 + | | | + $--ITS,x.x,M*hh +------------------------------------------------------------------------------ + +Field Number) + +1. Second spread distance +2. Meters +3. Checksum. + +From <>. Shown with a "@II" leader rather than "$GP". + +=== LCD - Loran-C Signal Data === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 + | | | | | | | | | | | | | | + $--LCD,xxxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx*hh +------------------------------------------------------------------------------ + +Field Number: + +1. GRI Microseconds/10 +2. Master Relative SNR +3. Master Relative ECD +4. Time Difference 1 Microseconds +5. Time Difference 1 Signal Status +6. Time Difference 2 Microseconds +7. Time Difference 2 Signal Status +8. Time Difference 3 Microseconds +9. Time Difference 3 Signal Status +10. Time Difference 4 Microseconds +11. Time Difference 4 Signal Status +12. Time Difference 5 Microseconds +13. Time Difference 5 Signal Status +14. Checksum + +=== MDA - Meteorilogical Composite === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 + | | | | | | | | | | | | | | | | | | | | | + $--MDA,n.nn,I,n.nnn,B,n.n,C,n.C,n.n,n,n.n,C,n.n,T,n.n,M,n.n,N,n.n,M*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Barometric pressure, inches of mercury, to the nearest 0.01 inch +2. I = inches of mercury +3. Barometric pressure, bars, to the nearest .001 bar +4. B = bars +5. Air temperature, degrees C, to the nearest 0.1 degree C +6. C = degrees C +7. Water temperature, degrees C (this field left blank by WeatherStation) +8. C = degrees C +9. Relative humidity, percent, to the nearest 0.1 percent +10. Absolute humidity, percent +11. Dew point, degrees C, to the nearest 0.1 degree C +12. C = degrees C +13. Wind direction, degrees True, to the nearest 0.1 degree +14. T = true +15. Wind direction, degrees Magnetic, to the nearest 0.1 degree +16. M = magnetic +17. Wind speed, knots, to the nearest 0.1 knot +18. N = knots +19. Wind speed, meters per second, to the nearest 0.1 m/s +20. M = meters per second +21. Checksum + +Obsolete as of 2009. + +=== MSK - Control for a Beacon Receiver === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 + | | | | | | + $--MSK,nnn,m,nnn,m,nnn*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Frequency to use +2. Frequency mode, A=auto, M=manual +3. Beacon bit rate +4. Bitrate, A=auto, M=manual +5. Frequency for MSS message status (null for no status) +6. Checksum + +=== MSS - Beacon Receiver Status === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 + | | | | | | + $--MSS,nn,nn,fff,bbb,xxx*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Signal strength (dB 1uV) +2. Signal to noise ratio (dB) +3. Beacon frequency (kHz) +4. Beacon data rate (BPS) +5. Unknown integer value +6. Checksum + +Example: $GPMSS,0,0,0.000000,200,*5A + +=== MTW - Mean Temperature of Water === + +------------------------------------------------------------------------------ + 1 2 3 + | | | + $--MTW,x.x,C*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Degrees +2. Unit of Measurement, Celcius +3. Checksum + +<> lists this as "Meteorological Temperature of Water", which +is probably incorrect. + +Example: $INMTW,17.9,C*1B + +=== MWV - Wind Speed and Angle === + +------------------------------------------------------------------------------ + 1 2 3 4 5 + | | | | | + $--MWV,x.x,a,x.x,a*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Wind Angle, 0 to 360 degrees +2. Reference, R = Relative, T = True +3. Wind Speed +4. Wind Speed Units, K/M/N +5. Status, A = Data Valid +6. Checksum + +=== OLN - Omega Lane Numbers === + +------------------------------------------------------------------------------ + 1 2 3 4 + |--------+ |--------+ |--------+ | + $--OLN,aa,xxx,xxx,aa,xxx,xxx,aa,xxx,xxx*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Omega Pair 1 +2. Omega Pair 1 +3. Omega Pair 1 +4. Checksum + +(The OLN sentence is obsolete as of 2.30) + +=== OSD - Own Ship Data === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 8 9 10 + | | | | | | | | | | + $--OSD,x.x,A,x.x,a,x.x,a,x.x,x.x,a*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Heading, degrees true +2. Status, A = Data Valid +3. Vessel Course, degrees True +4. Course Reference +5. Vessel Speed +6. Speed Reference +7. Vessel Set, degrees True +8. Vessel drift (speed) +9. Speed Units +10. Checksum + +=== R00 - Waypoints in active route === + +------------------------------------------------------------------------------ + 1 n + | | + $--R00,c---c,c---c,....*hh +------------------------------------------------------------------------------ + +Field Number: + +1. waypoint ID + +... + +n) checksum + +=== RMA - Recommended Minimum Navigation Information === + +------------------------------------------------------------------------------ + 12 + 1 2 3 4 5 6 7 8 9 10 11| + | | | | | | | | | | | | + $--RMA,A,llll.ll,a,yyyyy.yy,a,x.x,x.x,x.x,x.x,x.x,a*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Blink Warning +2. Latitude +3. N or S +4. Longitude +5. E or W +6. Time Difference A, uS +7. Time Difference B, uS +8. Speed Over Ground, Knots +9. Track Made Good, degrees true +10. Magnetic Variation, degrees +11. E or W +12. Checksum + +=== RMB - Recommended Minimum Navigation Information === + +To be sent by a navigation receiver when a destination waypoint is active. + +------------------------------------------------------------------------------ + 14 + 1 2 3 4 5 6 7 8 9 10 11 12 13| 15 + | | | | | | | | | | | | | | | + $--RMB,A,x.x,a,c--c,c--c,llll.ll,a,yyyyy.yy,a,x.x,x.x,x.x,A,m,*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Status, A= Active, V = Void +2. Cross Track error - nautical miles +3. Direction to Steer, Left or Right +4. TO Waypoint ID +5. FROM Waypoint ID +6. Destination Waypoint Latitude +7. N or S +8. Destination Waypoint Longitude +9. E or W +10. Range to destination in nautical miles +11. Bearing to destination in degrees True +12. Destination closing velocity in knots +13. Arrival Status, A = Arrival Circle Entered +14. FAA mode indicator (NMEA 2.3 and later) +15. Checksum + +Example: $GPRMB,A,0.66,L,003,004,4917.24,N,12309.57,W,001.3,052.5,000.5,V*0B + +=== RMC - Recommended Minimum Navigation Information === + +This is one of the sentences commonly emitted by GPS units. + +------------------------------------------------------------------------------ + 12 + 1 2 3 4 5 6 7 8 9 10 11| 13 + | | | | | | | | | | | | | + $--RMC,hhmmss.ss,A,llll.ll,a,yyyyy.yy,a,x.x,x.x,xxxx,x.x,a,m,*hh +------------------------------------------------------------------------------ + +Field Number: + +1. UTC Time +2. Status, V=Navigation receiver warning A=Valid +3. Latitude +4. N or S +5. Longitude +6. E or W +7. Speed over ground, knots +8. Track made good, degrees true +9. Date, ddmmyy +10. Magnetic Variation, degrees +11. E or W +12. FAA mode indicator (NMEA 2.3 and later) +13. Checksum + +A status of V means the GPS has a valid fix that is below an internal +quality threshold, e.g. because the dilution of precision is too high +or an elevation mask test failed. + +Example: $GNRMC,001031.00,A,4404.13993,N,12118.86023,W,0.146,,100117,,,A*7B + +=== ROT - Rate Of Turn === + +------------------------------------------------------------------------------ + 1 2 3 + | | | + $--ROT,x.x,A*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Rate Of Turn, degrees per minute, "-" means bow turns to port +2. Status, A means data is valid +3. Checksum + +Example: $HEROT,0.0,A*2B + +=== RPM - Revolutions === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 + | | | | | | + $--RPM,a,x,x.x,x.x,A*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Sourse, S = Shaft, E = Engine +2. Engine or shaft number +3. Speed, Revolutions per minute +4. Propeller pitch, % of maximum, "-" means astern +5. Status, A means data is valid +6. Checksum + + +=== RSA - Rudder Sensor Angle === + +------------------------------------------------------------------------------ + 1 2 3 4 5 + | | | | | + $--RSA,x.x,A,x.x,A*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Starboard (or single) rudder sensor, "-" means Turn To Port +2. Status, A means data is valid +3. Port rudder sensor +4. Status, A means data is valid +5. Checksum + +=== RSD - RADAR System Data === + +------------------------------------------------------------------------------ + 14 + 1 2 3 4 5 6 7 8 9 10 11 12 13| + | | | | | | | | | | | | | | + $--RSD,x.x,x.x,x.x,x.x,x.x,x.x,x.x,x.x,x.x,x.x,x.x,a,a*hh +------------------------------------------------------------------------------ + +(Some fields are missing from this description.) + +Field Number: +1. Unknown +2. Unknown +3. Unknown +4. Unknown +5. Unknown +6. Unknown +7. Unknown +8. Unknown +9. Cursor Range From Own Ship +10. Cursor Bearing Degrees Clockwise From Zero +11. Range Scale +12. Range Units +13 Unknown +14. Checksum + +=== RTE - Routes === + +------------------------------------------------------------------------------ + 1 2 3 4 5 x n + | | | | | | | + $--RTE,x.x,x.x,a,c--c,c--c, ..... c--c*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Total number of messages being transmitted +2. Message Number +3. Message mode + c = complete route, all waypoints + w = working route, the waypoint you just left, the waypoint + you're heading to, then all the rest +4. Waypoint ID + +More waypoints follow. Last field is a checksum as usual. + +The Garmin 65 and possibly other units report a $GPR00 in the same format. + +Example: $GPRTE,1,1,c,0*07 + +=== SFI - Scanning Frequency Information === + +------------------------------------------------------------------------------ + 1 2 3 4 x + | | | | | + $--SFI,x.x,x.x,xxxxxx,c .......... xxxxxx,c*hh +------------------------------------------------------------------------------ + +Field Number: +1. Total Number Of Messages +2. Message Number +3. Frequency 1 +4. Mode 1 +x. Checksum + +=== STN - Multiple Data ID === + +This sentence is transmitted before each individual sentence where +there is a need for the Listener to determine the exact source of data +in the system. Examples might include dual-frequency depthsounding +equipment or equipment that integrates data from a number of sources +and produces a single output. + +------------------------------------------------------------------------------ + 1 2 + | | + $--STN,x.x,*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Talker ID Number +2. Checksum + +=== TDS - Trawl Door Spread Distance === + +------------------------------------------------------------------------------ + 1 2 3 + | | | + $--TDS,x.x,M*hh +------------------------------------------------------------------------------ + +Field Number) + +1. Distance between trawl doors +2. Meters (0-300) +3. Checksum. + +From <>. Shown with a "@II" leader rather than "$GP". + +=== TFI - Trawl Filling Indicator === + +------------------------------------------------------------------------------ + 1 2 3 4 + | | | | + $--TFI,x,y,z*hh +------------------------------------------------------------------------------ + +Field number: + +1. Catch sensor #1 (0 = off, 1 = on, 2 = no answer) +2. Catch sensor #2 (0 = off, 1 = on, 2 = no answer) +3. Catch sensor #3 (0 = off, 1 = on, 2 = no answer) + +From <>. Shown with a "@II" leader rather than "$GP". + +=== TPC - Trawl Position Cartesian Coordinates === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 + | | | | | | | + $--TPC,x,M,y,P,z.z,M*hh, +------------------------------------------------------------------------------ + +Field Number: + +1. Horizontal distance from the vessel center line +2. Meters +3. Horizontal distance from the transducer to the trawl along the + vessel center line. The value is normally positive assuming the + trawl is located behind the vessel. +4. Meters +5. Depth of the trawl below the surface +6. Meters +7. Checksum + +From <>. Shown with a "@II" leader rather than "$GP". +This entry actually merges their TPC description with another +entry labeled (apparently incorrectly) TPT, which differs from the +TPT shown below. + +=== TPR - Trawl Position Relative Vessel === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 + | | | | | | | + $--TPR,x,M,y,P,z.z,M*hh, +------------------------------------------------------------------------------ + +Field Number: + +1. Horizontal range relative to target +2. Meters (0-4000) +3. Bearing to target relative to vessel heading. Resolution is one degree. +4. Separator +5. Depth of trawl below the surface +6. Meters (0-2000) +7. Checksum + +From <>. Shown with a "@II" leader rather than "$GP". + +=== TPT - Trawl Position True === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 + | | | | | | | + $--TPT,x,M,y,P,z.z,M*hh, +------------------------------------------------------------------------------ + +Field Number: + +1. Horizontal range relative to target +2. Meters (0-4000) +3. True bearing to taget (ie. relative north). Resolution is one degree. +4. Separator +5. Depth of trawl below the surface +6. Meters (0-2000) +7. Checksum + +From <>. Shown with a "@II" leader rather than "$GP". + +=== TRF - TRANSIT Fix Data === + +------------------------------------------------------------------------------ + 13 + 1 2 3 4 5 6 7 8 9 10 11 12| + | | | | | | | | | | | | | + $--TRF,hhmmss.ss,xxxxxx,llll.ll,a,yyyyy.yy,a,x.x,x.x,x.x,x.x,xxx,A*hh +------------------------------------------------------------------------------ + +Field Number: + +1. UTC Time +2. Date, ddmmyy +3. Latitude +4. N or S +5. Longitude +6. E or W +7. Elevation Angle +8. Number of iterations +9. Number of Doppler intervals +10. Update distance, nautical miles +11. Satellite ID +12. Data Validity +13. Checksum + +(The TRF sentence is obsolete as of 2.3.0) + +=== TTM - Tracked Target Message === + +------------------------------------------------------------------------------ + 11 13 + 1 2 3 4 5 6 7 8 9 10| 12| 14 + | | | | | | | | | | | | | | + $--TTM,xx,x.x,x.x,a,x.x,x.x,a,x.x,x.x,a,c--c,a,a*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Target Number (0-99) +2. Target Distance +3. Bearing from own ship +4. Bearing Units +5. Target Speed +6. Target Course +7. Course Units +8. Distance of closest-point-of-approach +9. Time until closest-point-of-approach "-" means increasing +10. "-" means increasing +11. Target name +12. Target Status +13. Reference Target +14. Checksum + +<> gives this in a slightly different form, with 14th and +15th fields conveying time of observation and whether target +acquisition was automatic or manual. + +=== VBW - Dual Ground/Water Speed === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 + | | | | | | | + $--VBW,x.x,x.x,A,x.x,x.x,A*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Longitudinal water speed, "-" means astern +2. Transverse water speed, "-" means port +3. Status, A = Data Valid +4. Longitudinal ground speed, "-" means astern +5. Transverse ground speed, "-" means port +6. Status, A = Data Valid +7. Checksum + +=== VDR - Set and Drift === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 + | | | | | | | + $--VDR,x.x,T,x.x,M,x.x,N*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Degress True +2. T = True +3. Degrees Magnetic +4. M = Magnetic +5. Knots (speed of current) +6. N = Knots +7. Checksum + +=== VHW - Water speed and heading === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 8 9 + | | | | | | | | | + $--VHW,x.x,T,x.x,M,x.x,N,x.x,K*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Degress True +2. T = True +3. Degrees Magnetic +4. M = Magnetic +5. Knots (speed of vessel relative to the water) +6. N = Knots +7. Kilometers (speed of vessel relative to the water) +8. K = Kilometers +9. Checksum + +<> describes a different format in which the first three +fields are water-temperature measurements. It's not clear which +is correct. + +=== VLW - Distance Traveled through Water === + +------------------------------------------------------------------------------ + 1 2 3 4 5 + | | | | | + $--VLW,x.x,N,x.x,N*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Total cumulative distance +2. N = Nautical Miles +3. Distance since Reset +4. N = Nautical Miles +5. Checksum + +=== VPW - Speed - Measured Parallel to Wind === + +------------------------------------------------------------------------------ + 1 2 3 4 5 + | | | | | + $--VPW,x.x,N,x.x,M*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Speed, "-" means downwind +2. N = Knots +3. Speed, "-" means downwind +4. M = Meters per second +5. Checksum + +=== VTG - Track made good and Ground speed === + +This is one of the sentences commonly emitted by GPS units. + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 8 9 10 + | | | | | | | | | | + $--VTG,x.x,T,x.x,M,x.x,N,x.x,K,m,*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Track Degrees +2. T = True +3. Track Degrees +4. M = Magnetic +5. Speed Knots +6. N = Knots +7. Speed Kilometers Per Hour +8. K = Kilometers Per Hour +9. FAA mode indicator (NMEA 2.3 and later) +10. Checksum + +Note: in some older versions of NMEA 0183, the sentence looks like this: + +------------------------------------------------------------------------------ + 1 2 3 4 5 + | | | | | + $--VTG,x.x,x,x.x,x.x,*hh +------------------------------------------------------------------------------ + +Field Number: + +1. True course over ground (degrees) 000 to 359 +2. Magnetic course over ground 000 to 359 +3. Speed over ground (knots) 00.0 to 99.9 +4. Speed over ground (kilometers) 00.0 to 99.9 +5. Checksum + +The two forms can be distinguished by field 2, which will be +the fixed text 'T' in the newer form. The new form appears +to have been introduced with NMEA 3.01 in 2002. + +Some devices, such as those described in <>, leave the +magnetic-bearing fields 3 and 4 empty. + +Example: $GPVTG,220.86,T,,M,2.550,N,4.724,K,A*34 + +=== VWR - Relative Wind Speed and Angle === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 8 9 + | | | | | | | | | + $--VWR,x.x,a,x.x,N,x.x,M,x.x,K*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Wind direction magnitude in degrees +2. Wind direction Left/Right of bow +3. Speed +4. N = Knots +5. Speed +6. M = Meters Per Second +7. Speed +8. K = Kilometers Per Hour +9. Checksum + +=== WCV - Waypoint Closure Velocity === + +------------------------------------------------------------------------------ + 1 2 3 4 + | | | | + $--WCV,x.x,N,c--c*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Velocity +2. N = knots +3. Waypoint ID +4. Checksum + +=== WNC - Distance - Waypoint to Waypoint === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 + | | | | | | | + $--WNC,x.x,N,x.x,K,c--c,c--c*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Distance, Nautical Miles +2. N = Nautical Miles +3. Distance, Kilometers +4. K = Kilometers +5. TO Waypoint +6. FROM Waypoint +7. Checksum + +=== WPL - Waypoint Location === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 + | | | | | | + $--WPL,llll.ll,a,yyyyy.yy,a,c--c*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Latitude +2. N or S (North or South) +3. Longitude +4. E or W (East or West) +5. Waypoint name +6. Checksum + +=== XDR - Transducer Measurement === + +------------------------------------------------------------------------------ + 1 2 3 4 n + | | | | | + $--XDR,a,x.x,a,c--c, ..... *hh +------------------------------------------------------------------------------ + +Field Number: + +1. Transducer Type +2. Measurement Data +3. Units of measurement +4. Name of transducer + +There may be any number of quadruplets like this, each describing a +sensor. The last field will be a checksum as usual. + +Example: + +$HCXDR,A,171,D,PITCH,A,-37,D,ROLL,G,367,,MAGX,G,2420,,MAGY,G,-8984,,MAGZ*41 + +=== XTE - Cross-Track Error, Measured === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 + | | | | | | | + $--XTE,A,A,x.x,a,N,m,*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Status + - V = Loran-C Blink or SNR warning + - V = general warning flag or other navigation systems when a reliable + fix is not available +2. Status + - V = Loran-C Cycle Lock warning flag + - A = OK or not used +3. Cross Track Error Magnitude +4. Direction to steer, L or R +5. Cross Track Units, N = Nautical Miles +6. FAA mode indicator (NMEA 2.3 and later, optional) +7. Checksum + +Example: $GPXTE,V,V,,,N,S*43 + +=== XTR - Cross Track Error - Dead Reckoning === + +------------------------------------------------------------------------------ + 1 2 3 4 + | | | | + $--XTR,x.x,a,N*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Magnitude of cross track error +2. Direction to steer, L or R +3. Units, N = Nautical Miles +4. Checksum + +=== ZDA - Time & Date - UTC, day, month, year and local time zone === + +This is one of the sentences commonly emitted by GPS units. + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 + | | | | | | | + $--ZDA,hhmmss.ss,xx,xx,xxxx,xx,xx*hh +------------------------------------------------------------------------------ + +Field Number: + +1. UTC time (hours, minutes, seconds, may have fractional subsecond) +2. Day, 01 to 31 +3. Month, 01 to 12 +4. Year (4 digits) +5. Local zone description, 00 to +- 13 hours +6. Local zone minutes description, apply same sign as local hours +7. Checksum + +Example: $GPZDA,160012.71,11,03,2004,-1,00*7D + +=== ZFO - UTC & Time from origin Waypoint === + +------------------------------------------------------------------------------ + 1 2 3 4 + | | | | + $--ZFO,hhmmss.ss,hhmmss.ss,c--c*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Universal Time Coordinated (UTC) +2. Elapsed Time +3. Origin Waypoint ID +4. Checksum + +=== ZTG - UTC & Time to Destination Waypoint === + +------------------------------------------------------------------------------ + 1 2 3 4 + | | | | + $--ZTG,hhmmss.ss,hhmmss.ss,c--c*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Universal Time Coordinated (UTC) +2. Time Remaining +3. Destination Waypoint ID +4. Checksum + +=== Other sentences === + +There is evidence for the existence of the following NMEA sentences +on the Web: + +|====================================================== +|ACK - Alarm Acknowldgement +|ADS - Automatic Device Status +|AKD - Acknowledge Detail Alarm Condition +|ALA - Set Detail Alarm Condition +|ASD - Autopilot System Data +|BEC - Bearing & Distance to Waypoint - Dead Reckoning +|CEK - Configure Encryption Key Command +|COP - Configure the Operational Period, Command +|CUR - Water Current Layer +|DCR - Device Capability Report +|DDC - Display Dimming Control +|DOR - Door Status Detection +|DSC - Digital Selective Calling Information +|DSE - Extended DSC +|DSI - DSC Transponder Initiate +|DSR - DSC Transponder Response +|ETL - Engine Telegraph Operation Status +|EVE - General Event Message +|FIR - Fire Detection +|MWD - Wind Direction & Speed +|TLL - Target Latitude and Longitude +|WDR - Distance to Waypoint - Rhumb Line +|WDC - Distance to Waypoint - Great Circle +|ZDL - Time and Distance to Variable Point +|====================================================== + +$CDDSC is described in <>. + +== Vendor extensions == + +This list is very incomplete. + +=== PASHR - RT300 proprietary roll and pitch sentence === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 8 9 10 11 12 + | | | | | | | | | | | | +$PASHR,hhmmss.sss,hhh.hh,T,rrr.rr,ppp.pp,xxx.xx,a.aaa,b.bbb,c.ccc,d,e*hh +------------------------------------------------------------------------------ + +Field number: + +1. hhmmss.sss - UTC time +2. hhh.hh - Heading in degrees +3. T - flag to indicate that the Heading is True Heading (i.e. to True North) +4. rrr.rr - Roll Angle in degrees +5. ppp.pp - Pitch Angle in degrees +6. xxx.xx - Heave +7. a.aaa - Roll Angle Accuracy Estimate (Stdev) in degrees +8. b.bbb - Pitch Angle Accuracy Estimate (Stdev) in degrees +9. c.ccc - Heading Angle Accuracy Estimate (Stdev) in degrees +10. d - Aiding Status +11. e - IMU Status +12. hh - Checksum + +<> describes this sentence as NMEA, though other sources say it +is Ashtech proprietary and describe a different format. + +Example: + +$PASHR,085335.000,224.19,T,-01.26,+00.83,+00.00,0.101,0.113,0.267,1,0*06 + +=== PGRME - Garmin Estimated Error === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 + | | | | | | | + $PGRME,hhh,M,vvv,M,ttt,M*hh +------------------------------------------------------------------------------ + +Field Number: + +1. Estimated horizontal position error (HPE), +2. M=meters +3. Estimated vertical position error (VPE) +4. M=meters +5. Overall spherical equivalent position error +6. M=meters +7. Checksum + +Example: $PGRME,15.0,M,45.0,M,25.0,M*22 + +=== PMGNST - Magellan Status === + +------------------------------------------------------------------------------ + 1 2 3 4 5 6 7 8 + | | | | | | | | + $PMGNST,xx.xx,m,t,nnn,xx.xx,nnn,nn,c +------------------------------------------------------------------------------ + +Field Number: + +1. Firmware version number? +2. Mode (1 = no fix, 2 = 2D fix, 3 = 3D fix) +3. T if we have a fix +4. numbers change - unknown +5. time left on the GPS battery in hours +6. numbers change (freq. compensation?) +7. PRN number receiving current focus +8. nmea_checksum + +Only supported on Magellan GPSes. + +=== PRWIZCH - Rockwell Channel Status === + +------------------------------------------------------------------------------ + $PRWIZCH,n,s,n,s,n,s,n,s,n,s,n,s,n,s,n,s,n,s,n,s,n,s,n,s,c*hh +------------------------------------------------------------------------------ + +Fields consist of 12 pairs of a satellite PRN followed by a +signal quality number in the range 0-7 (0 worst, 7 best). + +Only emitted by the now-obsolete Zodiac (Rockwell) chipset. + +=== PUBX 00 - u-blox Lat/Long Position Data === + +------------------------------------------------------------------------------ + $PUBX,00,hhmmss.ss,Latitude,N,Longitude,E,AltRef,NavStat,Hacc,Vacc,SOG,COG,Vvel,+ageC,HDOP,VDOP,TDOP,GU,RU,DR,*hh +------------------------------------------------------------------------------ + +Example: + +$PUBX,00,081350.00,4717.113210,N,00833.915187,E,546.589,G3,2.1,2.0,0.007,77.52,0+.007,,0.92,1.19,0.77,9,0,0*5F + +Only emitted by u-blox Antaris chipset. + +=== PUBX 01 - u-blox UTM Position Data === + +The $PUBX,01 is a UTM (Universal Transverse Mercator projection) version +of the $PUBX,00 sentence. + +------------------------------------------------------------------------------ +$PUBX,01,hhmmss.ss,Easting,E,Northing,N,AltMSL,NavStat,Hacc,Vacc,SOG,COG,Vvel,ag+eC,HDOP,VDOP,TDOP,GU,RU,DR,*hh +------------------------------------------------------------------------------ + +Example: + +$PUBX,01,075142.00,467125.245,E,5236949.763,N,498.235,G3,2.1,1.9,0.005,85.63,0.0+00,,0.78,0.90,0.52,12,0,0*65 + +Only emitted by u-blox Antaris chipset. + +=== PUBX 03 - u-blox Satellite Status === + +------------------------------------------------------------------------------ + $PUBX,03,GT{,ID,s,AZM,EL,SN,LK},*hh +------------------------------------------------------------------------------ + +Example: + +$PUBX,03,11,23,-,,,45,010,29,-,,,46,013,07,-,,,42,015,08,U,067,31,42,025,10,U,19+5,33,46,026,18,U,326,08,39,026,17,-,,,32,015,26,U,306,66,48,025,27,U,073,10,36,+026,28,U,089,61,46,024,15,-,,,39,014*0D + +Only emitted by u-blox Antaris chipset. + +(There's no PUBX 02) + +=== PUBX 04 - u-blox Time of Day and Clock Information === + +------------------------------------------------------------------------------ +$PUBX,04,hhmmss.ss,ddmmyy,UTC_TOW,week,reserved,Clk_B,Clk_D,PG,*hh +------------------------------------------------------------------------------ + +Example: + +$PUBX,04,073731.00,091202,113851.00,1196,113851.00,1930035,-2660.664,43,*3C<+LF> + +Only emitted by u-blox Antaris chipset. + +=== TMVTD - Transas VTS / SML tracking system report === + +------------------------------------------------------------------------------ +$TMVTD,DDMMYY,hhmmss.ss,a,xxxx,c—c,llll.llll,a,yyyyy.yyyy,a,x.x,a,x.x,a,a*hh +------------------------------------------------------------------------------ + +‘TM’ indicates message generated by SML tracking system. ‘VTD’ is +name of the message. + +Field Number: + +1. Day/month/year (two-digit year, unknown base century) +2. Hour/minute/second to 0.1 sec precion, UTC. +3. ‘R’ indicates that this is an update for a radar track. No other + values are valid +4. Internal unique ID number. Can’t be changed even when target is + re-identified +5. Target alias. Can be changed when the target identification data is + edited. Symbols “$”, “*” “,” and “.” are not allowed to be used + within the alias word. This field is variable length, at most 21v + characters. +6. Latitude in degrees (two leading digits) and decimal minutes + (trailing digits). +7. N or S for North or South latitude. +8. Longitude in degrees (three leading digits) and decimal minutes + (trailing digits). +9. E or W for East or West longitude. +10. Target course in decimal degrees. +11. Fixed to T, indicates true course. +12. Target speed in decimal knots. +13. Fixed to N, indicates decimal speed in knots. +14. T or D. T = tracked, D = dropped. Message with status + “dropped” is sent only once after target is dropped. +15. NMEA checksum. + +Transas is a mnanufacturer of proprietary ECDIS systems. + +Described in <>, actually a Maltese government document. + +== References == + +[bibliography] +- [[[BETKE]]] + "The NMEA 0183 protocol" + http://www.scribd.com/mcocco/d/6365285-The-NMEA-0183-Protocol + Probably the ancestor of this document. Compiled by Klaus Betke + and dated May 2000 with a revision in 2001. + +- [[[CANBUS]]] + "Wikipedia: CAN bus" + http://en.wikipedia.org/wiki/CAN_bus + +- [[[NMEA2000]]] + "Wikipedia: NMEA 2000" + http://en.wikipedia.org/wiki/NMEA_2000 + +- [[[KEVERSOFT]]] + http://www.keversoft.com/downloads/packetlogger_20120305_explain.txt + +- [[[DEPRIEST]]] + "NMEA data" + http://www.gpsinformation.org/dale/nmea.htm + Used for PMGNST and the FAA mode code. + +- [[[MX521]]] + "MX521 GPS/DGPS Sensor Installation Manual" + http://www.mx-marine.com/downloads/MX521_Install_manual_051804.pdf + Used for GBS, GRS. + +- [[[MX535]]] + "MX535 UAIS Ship Borne Class A Transponder Unit Techical & Installation Manual" + http://www.mx-marine.com/downloads/mx535/MX535_Tech_Manual_Rev_E.pdf + Used for GNS. + +- [[[ZODIAC]]] + "Zodiac Serial Data Interface Specification" + http://users.rcn.com/mardor/serial.pdf + Used for PRWIZCH. + +- [[[GH79L4N]]] + "Specifications for GPS Receiver GH-79L4-N" + http://www.tecsys.de/db/gps/gh79l1an_intant.pdf + Used for GPDTM. + +- [[[GIDS]]] + "GPS - NMEA sentence information" + http://aprs.gids.nl/nmea/ + Used for BWC, MSK, MSS. + +- [[[NMEAFAQ]]] + "The NMEA FAQ" + http://vancouver-webpages.com/peter/nmeafaq.txt + Used for R00. + +- [[[UNMEA]]] + "Understanding NMEA 0183" + http://pcptpp030.psychologie.uni-regensburg.de/trafficresearch/NMEA0183/ + Source for the claim that NMEA requires undefined data fields to + be empty. + +- [[[NTUM]]] + "NemaTalker User Manual" + http://www.sailsoft.nl/NemaTalker/UserManual/InstrGPS.htm + Source for the claim that Mode Indicator dominates Status. + +- [[[IEC61162-1]]] + "International Standard IEC 61162-1" (preview) + http://domino.iec.ch/preview/info_iec61162-1%7Bed2.0%7Den.pdf + +- [[[SEATALK]]] + "SeaTalk Technical Reference" + http://www.thomasknauf.de/seatalk.htm + +- [[[SATSTAT]]] "NMEA IDs" https://github.com/mvglasow/satstat/wiki/NMEA-IDs + +- [[[GLOBALSAT]]] + "NMEA (National Marine Electronics Association) 0183 Protocol" + http://www.usglobalsat.com/faq_details/NMEA.htm + +- [[[PASHR]]] + "News - NMEA PASHR Output Format Added" + http://www.oxts.com/default.asp?pageRef=76&newsID=69 + +- [[[WAAS]]] + "WAAS Information" + http://gpsinformation.net/exe/waas.html + +- [[[PPS]]] + "Pulse per second" + http://en.wikipedia.org/wiki/Pulse_per_second + +- [[[MALTESE]]] + "Procurement of a Fixed-Wing Maritime Patrol Aircraft" + https://secure2.gov.mt/eprocurement/Tenders/file.ashx?f=9832DB05E65C774258580284031EC72CC315D954A7108B5E. + +- [[NMEA-ADVANCE]] + "NMEA 0183 Advancements" (describes 'P' value of FAA mode) + http://www.nmea.org/Assets/0183_advancements_nmea_oct_1_2010%20(2).pdf + +- [[CDDSC]] + "Data Interface in Digital Selective Calling Class-D Radios" + http://continuouswave.com/whaler/reference/DSC_Datagrams.html + +- [[ANON]] + Anonymous commentator(s) are persons who have volunteered information + about the NMEA standard(s) but do not wish to be identified. + +- [[[NORWAY]]] + "Etterretninger for sjøfarende" Notoces for Mariners, see p26 + http://kartverket.no/efs-documents/editions/2015/efs01-2015.pdf -- cgit v1.2.1