NMEA
From Wikipedia, the free encyclopedia
NMEA 0183 (or NMEA for short) is a combined electrical and data specification for communication between marine electronics and also, more generally, GPS receivers.
The NMEA 0183 protocol is a means by which marine instruments and also most GPS receivers can communicate with each other. It has been defined by, and is controlled by, the US based National Marine Electronics Association.
The NMEA 0183 standard uses a simple ASCII, serial communications protocol that defines how data is transmitted in a "sentence" from one "talker" to one or more "listeners". The standard also defines the contents of each sentence (message) type so that all listeners can parse messages accurately:
- Each message starting character is a dollar sign.
- The next first five characters identify the type of message.
- All data fields that follow are comma-delimited.
- The first character that immediately follows the last data field character is an asterisk.
- The asterisk is immediately followed by a two-digit checksum.
Example of sentence:
Waypoint Arrival Alarm
$GPAAM,A,A,0.10,N,WPTNME*43
Where:
AAM Arrival Alarm A Arrival circle entered A Perpendicular passed 0.10 Circle radius N Nautical miles WPTNME Waypoint name *43 Checksum data
The new standard, NMEA 2000, accommodates several "talkers" at a higher baud rate, without using a central hub.
The NMEA standard is proprietary and expensive. However, much of it has been reverse-engineered from public sources and is available in references like this one, this one and this one.
[edit] Vendor extensions
Most GPS manufacturers include special messages to the standard NMEA set in their products for maintenance and diagnostics purposes. These extended messages are not standardized at all and are normally different from vendor to vendor.