Skip to main content

NMEA specification

Overview​

Reach RX MFi streams standard NMEA messages and custom Emlid messages, listed in the table below. An asterisk (*) marks custom messages, and the sections after the table describe them in detail.

Message IDDescription
GGATime, position and fix type data
GSAGPS receiver operating mode, satellites used in the position solution, and DOP values
GSTPosition error statistics
GSVNumber of satellites in view, ID numbers, elevation, azimuth, & SNR values
RMCPosition, velocity, and time
VTGCourse and speed information relative to the ground
ZDAUTC day, month, and year, and local time zone offset
EBP*RTK base position
EDI*This message allows third-party applications to access device details, including battery status, serial number, and device name, directly through NMEA for monitoring and integration purposes.

*This is a custom Emlid NMEA message.

Reach RX outputs all the messages with the GN talker ID at the following frequencies:

Message IDTalker IDDefault frequency
GGAGN5 Hz
GSAG*1 Hz
GSTGN1 Hz
GSVG*1 Hz
RMCGN1 Hz
VTGGN1 Hz
ZDAGN1 Hz
EBPGN1 Hz
EDIGN**

*Reach RX outputs GSA and GSV messages with the successive talker IDs-GP, GL, GA, GB.

**The EDI message transmission happens every second for the first 5 seconds of the connection to the NMEA output interface. After this initial period, the message is transmitted once every 30 seconds.

Protocol​

iOS device accessories shall declare at least one “SupportedExternalAccessoryProtocol” parameter in their identification information during authentication. This protocol is not standardized and allows for the exchange of any data between the device and its proprietary application on the iPhone.

For example, we use this protocol to send a standard set of NMEA messages to ArcGIS Field Maps. Reach RX creates special External Accessory profiles: com.emlid.nmea for sending NMEA messages. ArcGIS FieldMaps uses this profile for reading the NMEA stream.

The exchange process is the following:

  1. iPhone sends StartExternalAccessoryProtocolSession (0xEA00).

  2. The device starts sending data.

  3. iPhone sends StopExternalAccessoryProtocolSession (0xEA01).

Emlid Device Information (EDI) message​

EDI is a custom Emlid NMEA message that allows third-party applications to access device details directly through NMEA for monitoring and integration.

Data contained​

The message contains the following data:

FieldDescription
$GNEDIString,
Proprietary protocol header.
versionUnsigned integer,
Revision of this message schema. Initial value: 1.
device_typeString,
Stable machine-readable product type, for example ReachRX2, ReachRX, ReachRS4. Do not include spaces.
device_nameString,
Human-readable device name, for example Reach RX2. This field may differ from the stable device_type identifier.
serial_numberString,
Device serial number. It must be handled as text to preserve leading zeros.
firmware_versionString,
Firmware version exactly as reported by the device, including any prerelease suffix.
state_of_chargeUnsigned integer,
Battery state of charge as a whole percentage from 0 to 100. Transmit digits only, without a % sign.
–Reserved for future use.
–Reserved for future use.
–Reserved for future use.
checksumStarts with *, hexadecimal, two-digit number

Example​

Here is an example of the EDI message Reach RX2 outputs:

$GNEDI,1,ReachRX2,RX2-453,8243A951276A1173,2.13,100,,,*36