NMEA 0183
NMEA 0183 is a standard for communication between navigation devices on ships that was defined by the National Marine Electronics Association (NMEA) and is also used for communication between GPS receivers and PCs and mobile devices. It consists of a RS422 - interface and a definition of records.
The first version of the non-public standard was released in March 1983; The current version is version 4.10, which appeared in June 2012, as well as the high-speed extension NMEA 0183-HS (High Speed) V 1.01, but version 3.01 from January 2002 is still widely used. The successor NMEA 2000 is based on the CAN bus .
interface
The RS422 interface is recommended as the interface, but the use of the RS-232 interface is permitted. The following parameters are defined for the interface:
- Symbol rate : 4800 baud
- Data bits: 8
- no parity bit
- Stop Bits : 1 (or more)
- no handshake
Since version 3.01, the standard includes the extension NMEA 0183-HS (version 1.0). It defines a high-speed mode that allows communication between the receiving unit and the terminal device at 38,400 baud, and is often used for AIS data.
However, some devices also work with 9600 baud.
Records
The NMEA data are ASCII -based data sets, each of which can contain 80 printable characters. Each data record is completed by a combination of carriage return and line feed (<CR> <LF>).
The beginning of a data record is marked with a "$" or "!". This start character is followed by the device ID (usually two characters) and the data record ID (usually three characters) as a character string. This is followed by the data fields according to the data record definition, separated by commas. Optionally, a hexadecimal check number separated by a "*" can be added. This is calculated by XORing the ASCII values of all characters between the $ and the *.
Example:
$SDDBT,22.3,f,6.8,M,3.7,F*3F<cr><lf>
Device IDs
ID | meaning |
---|---|
AG | Autopilot - General |
AP | Autopilot - Magnetic |
BD | Beidou (satellite navigation) |
CC | Computer - Programmed Calculator (outdated) |
CD | Communications - Digital Selective Calling (DSC) |
CM | Computer - Memory Data (outdated) |
CS | Communications - Satellite |
CT | Communications - Radio-Telephone (MF / HF) |
CV | Communications - Radio-Telephone (VHF) |
CX | Communications - Scanning Receiver |
DE | DECCA navigation |
DF | Direction Finder |
EC | Electronic nautical chart (ECDIS) |
EP | Emergency Position Indicating Beacon (EPIRB) |
HE | Engine room monitoring systems |
GA | Galileo |
GL | GLONASS |
GN | combined position solution of several GNSS |
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 |
LC | Loran C |
MP | Microwave Positioning System (updated) |
OM | OMEGA navigation system |
ID | meaning |
---|---|
OS | Distress Alarm System (outdated) |
P | proprietary extensions |
PF | FLARM |
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 |
VD | Velocity Sensor, Doppler , other / general |
DM | Velocity Sensor, Speed Log, Water, Magnetic |
VW | Velocity Sensor, Speed Log, Water, Mechanical |
WI | Weather Instruments |
YC | Transducer - Temperature (outdated) |
YD | Transducer - Displacement, Angular or Linear (outdated) |
YF | Transducer - Frequency (outdated) |
YL | Transducer level (outdated) |
YP | Transducer - Pressure (outdated) |
YR | Transducer - Flow Rate (outdated) |
YT | Transducer - Tachometer (outdated) |
YV | Transducer - Volume (outdated) |
YX | Transducer |
ZA | Timekeeper - Atomic Clock |
ZC | Timekeeper - chronometer |
ZQ | Timekeeper - Quartz |
ZV | Timekeeper - Radio Update, WWV (time signal transmitter) or WWVH |
The ID "P" is used for proprietary extensions. The “$ P” is followed by a manufacturer code consisting of three characters, the manufacturer-specific data and the check number preceded by “*”. Contrary to what is specified in the NMEA standard, the latter is often not used either.
Example:
$PSRFTXT,WAAS Enable<cr><lf>
Units and data formats
- Decimal numbers
- The decimal separator is the point (".")
- position
- The position data used by NMEA 0183 is based on the World Geodetic System 1984 (WGS84). WGS84 is a reference ellipsoid approximated to the earth's surface , which represents the geodetic basis of the Global Positioning System (GPS). NMEA 0183 uses the following position data notation within the data sets: XXYY.ZZZZ for the geographical latitude and XXXYY.ZZZZ for the geographical longitude
The data field following a position data contains the axial direction of the geographical coordinate (E, W, S or N for east or west Longitude or southern or northern latitude). The number of decimal places for the minutes can vary. The NMEA notation is converted into degrees, minutes and seconds according to the following scheme: XXYY.ZZZZ ⇒ XX ° YY '(0.ZZZZ * 60) "
The following formula can be used to obtain degree values: XXYY.ZZZZ ⇒ XX ° + (YY.ZZZZ / 60) ° - time
- Times are given in UTC, with two-digit values for hours, minutes and seconds in a row:
HHMMSS
Seconds can also be given with decimal places :HHMMSS.ss
- date
- The date is always given with day, month and year, each with two digits and in this order:
DDMMYY
Recommended Minimum Sentence C (RMC)
Each GNSS receiver must be at least the Recommended Minimum Sentence C ( recommended minimum data set C , RMC) can output data, a maximum of every two seconds. It follows the following structure:
Since NMEA In 2.3, the following sentences have been expanded to include a field (APB, BWC, BWR, GLL, RMA, RMB, RMC, VTG, WCV and XTE) that represents the signal integrity information according to the FAA. ("F" in the table below)
$GPRMC,162614,A,5230.5900,N,01322.3900,E,10.0,90.0,131006,1.2,E,A*13 $GPRMC,HHMMSS,A,BBBB.BBBB,b,LLLLL.LLLL,l,GG.G,RR.R,DDMMYY,M.M,m,F*PP
symbol | meaning |
---|---|
HHMMSS or HHMMSS.SSS |
Time ( UTC ) |
A. | Status (A for OK , V for warnings) |
BBBB.BBBB | Latitude |
b | Orientation (N for North , north, S for South , south) |
LLLLL.LLLL | Longitude |
l | Alignment (E for east , east; W for west , west) |
GG.G | Ground speed in knots |
RR.R | Course over ground in degrees related to geogr. North |
DDMMYY | Date (day month year) |
MM | magnetic deviation (site dismissal ) |
m | Sign of the deviation ( E or W ) |
F. | Signal integrity:
A = Autonomous mode, D = Differential Mode, E = Estimated (dead-reckoning) mode M = Manual Input Mode S = Simulated Mode N = Data Not Valid |
PP | Hexadecimal representation of the checksum (the checksum results from an XOR operation of all data bytes between (each exclusive) the dollar sign '$' and the asterisk '*'.) |
Date Reference (DTM)
$GPDTM,GGG,R,BBBB.BBBB,b,LLLLL.LLLL,l,H,D*PP
symbol | meaning |
---|---|
GGG | Geodetic datum (reference system) of the position data : |
R. | Regional date format |
BBBB.BBBB | Latitude |
b | Orientation of the latitude |
LLLLL.LLLL | Longitude |
l | Alignment of the longitude |
H | Height (always empty or zero) |
D. | Date in the specified reference system |
PP | Checksum |
Global Positioning System Fix Data (GGA)
This format contains the most important information about the position and its accuracy (for example the number of satellites), height above sea surface and other information.
$GPGGA,HHMMSS.ss,BBBB.BBBB,b,LLLLL.LLLL,l,Q,NN,D.D,H.H,h,G.G,g,A.A,RRRR*PP
symbol | meaning |
---|---|
HHMMSS.ss | current time (UTC) |
BBBB.BBBB | Latitude in degrees and minutes (ddmm.mmmmmm) |
b | Orientation of the latitude ( N orth = north or S outh = south) |
LLLLL.LLLL | Longitude in degrees and minutes (dddmm.mmmmmm) |
l | Alignment of the degree of longitude ( E ast = east or W est = west) |
Q | GPS quality:
|
NN | Number of satellites used (00 - 12) |
DD | horizontal deviation ( dilution of precision ) |
HH | Height of the antenna above geoid or MSL ( mean sea level ) |
H | Unit of antenna height (meter) |
GG | geoidal separation |
G | Unit of geoidal separation (meter) |
AA | Age of the DGPS data set |
RRRR | DGPS reference station (0000 to 1023) |
PP | Checksum |
Alternatives
Web links
- Website of the NMEA (English)
- All NMEA 0183 sentences (English)
- GPS simulator , generate NMEA data sets with software
- Questions and answers about NMEA (English)
- LGPL NMEA C library on SourceForge.net
- List of NMEA 0183 sentences ( Memento from August 27, 2004 in the Internet Archive )