arrow left BLOG

What is NMEA and how to feed data from Reach to third-party device?

If you use GNSS receivers, you’ve probably encountered the NMEA data format. But what does it mean, and how can you use it effectively? NMEA 0183 is a standardized format used by Reach and other GNSS receivers to transmit position and related data to third-party GIS apps and devices such as tractors, GPRs, drones, and robots.

From marine navigation to universal GNSS standard

When GPS technology emerged, the National Marine Electronics Association (NMEA) introduced its protocol to enable seamless data sharing between navigation devices, initially for marine applications. As GPS technology expanded into other industries—such as aviation, agriculture, and surveying—the NMEA standard was already in place to provide a consistent method for data exchange.

What made NMEA the global standard? It offered a flexible, lightweight solution that met the needs of manufacturers and users across industries. With support for multiple GNSS constellations, such as GPS, GLONASS, Galileo, and BeiDou, NMEA ensures that devices can work with data from diverse systems, making it a truly global standard.

Over time, NMEA evolved alongside GNSS technology, introducing newer standards like NMEA 2000 for more advanced applications. Yet, NMEA 0183 remains a cornerstone of GNSS communication due to its ease of use and widespread compatibility.

NMEA protocol in geopositioning

NMEA sentences structure

The NMEA messages consist of so-called “sentences” with GNSS data transmitted from a “talker” device to a “listener” device (or multiple devices). Every message begins with a start delimiter ($), followed by the message type, a series of data fields, and a checksum to ensure accuracy.

Each message type includes a “talker ID,” a two-character prefix that identifies the type of transmitting unit. For example, the GP talker ID means that data for the GPS constellation is transmitted. In contrast, GN means the receiver outputs data for all GNSS constellations it uses during the survey.

Example of the NMEA message

Data contained in the NMEA message

In the example above, you can see a standard GGA message—the backbone of GNSS positioning. It provides all the critical information required for basic positioning, including time, coordinates, fixed solution quality, and altitude:

  • $GNGGA: Message type
    • GN: Talker ID, indicating GNSS data
    • GGA: Global Navigation Satellites System fix data
  • 123309: UTC time (12:33:09)
  • 4731.965, N: Latitude (47 deg. 31.965’ N)
  • 01903.8493868, E: Longitude (19 deg 3.849’ E)
  • 1: Fix quality (1 = GPS fix, 0 = invalid, 2 = DGPS fix, etc.)
  • 26: Number of satellites in use
  • 0.7: Horizontal dilution of precision (HDOP)
  • 146.079, M: Altitude above mean sea level
  • 43.741, M: Geoidal separation
  • ,,: Empty fields (no differential GPS data)
  • 5E: Checksum (ensures data integrity, always begins with *)

Message types

While the GGA NMEA message is essential, other NMEA message types provide a more complete picture of the GNSS environment. For example, these types of NMEA messages contain additional GNSS data:

  • GSA – GPS DOP (dilution of precision) and active satellites
  • GST – position error statistics
  • GSV – number of satellites in view, satellite PRN (pseudo-random noise) number, elevation, azimuth, and signal-to-noise ratio
  • RMC – position, velocity, and time in NMEA format.
  • VTG – Actual track made good and speed over ground
  • ZDA – UTC day, month, and year, and local time zone offset

If no suitable message exists, the NMEA standard permits the development of custom messages. For example, Reach receivers output the following custom messages:

  • EBP – RTK base position
  • ETC – tilt compensation data (only on Reach RS3)

Each message type has a specific purpose and provides relevant data, making NMEA a valuable tool across many industries.

Position streaming from GNSS/GPS receivers

To stream position in the NMEA format from Reach GNSS receivers to third-party software and hardware in real time, connect your device to Reach using Bluetooth, a USB cable, or the bottom connector, and enable NMEA streaming in the Emlid Flow app.

In the Emlid Flow’s settings, access the Position streaming screen, select the communication interface, and choose the NMEA format. Then, you can configure NMEA output. You can set up a talker ID and the particular type of NMEA messages your third-party software or hardware requires.

Setting up NMEA position output
in Emlid Flow

For Talker ID, you can choose GP or GN values. GP stands for GPS satellites only and is mostly used for integration with legacy machinery. GN stands for GNSS positioning and is the latest industry standard; it’s required when you use data from multiple satellite systems.

You can also select a particular set of NMEA messages, including GGA, GSA, GST, GSV, RMC, VTG, ZDA, and EBP. Before configuring the NMEA position output, check the required NMEA message type in your GIS app or equipment specifications.

When setting up NMEA messages, you may also determine the output frequency rate, though the standard 1 Hz should work for most applications. If you change the NMEA output rate, note that it should be equal to or lower than the GNSS settings rate.

Integrate Reach receivers with GIS apps or hardware

Specifying NMEA output parameters allows you to connect Reach rovers to agricultural equipment, GPRs, and various GIS apps—ESRI ArcGIS Field Maps, QField, Microsurvey FiledGenius, Autocad360, MachineryGuide, AgriBus-Navi, Efarmer, Agripilot, Mobile Topographer Pro, PointMan, Mapit GIS, LandStar.

The Reach RS2+ and Reach RS3 receivers are frequently integrated with agricultural machinery for farming or with GPRs for mapping underground facilities and objects. This integration typically involves establishing communication through an RS-232 port and streaming a specific set of NMEA messages the connected hardware requires. Both communication and position streaming are configured in Emlid Flow within an instant.

The compact Reach RX rover is a perfect choice for integration with third-party GIS apps like ArcGIS Field Maps on iOS and Android devices. It delivers centimeter-accurate GNSS data in NMEA format directly to your ArcGIS app, ensuring precise and efficient data collection in the field. This functionality is enabled by default and requires no additional setup beyond pairing the devices and configuring the corrections stream in the Emlid Flow app. For more details, refer to the Integration with ArcGIS Field Maps for Android guide in the documentation and check out our blog post dedicated to this integration.

Leave a Reply

Your email address will not be published. Required fields are marked *