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 ID | Description |
|---|---|
| GGA | Time, position and fix type data |
| GSA | GPS receiver operating mode, satellites used in the position solution, and DOP values |
| GST | Position error statistics |
| GSV | Number of satellites in view, ID numbers, elevation, azimuth, & SNR values |
| RMC | Position, velocity, and time |
| VTG | Course and speed information relative to the ground |
| ZDA | UTC 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 ID | Talker ID | Default frequency |
|---|---|---|
| GGA | GN | 5 Hz |
| GSA | G* | 1 Hz |
| GST | GN | 1 Hz |
| GSV | G* | 1 Hz |
| RMC | GN | 1 Hz |
| VTG | GN | 1 Hz |
| ZDA | GN | 1 Hz |
| EBP | GN | 1 Hz |
| EDI | GN | ** |
*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:
-
iPhone sends StartExternalAccessoryProtocolSession (0xEA00).
-
The device starts sending data.
-
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:
| Field | Description |
|---|---|
$GNEDI | String, Proprietary protocol header. |
version | Unsigned integer, Revision of this message schema. Initial value: 1. |
device_type | String, Stable machine-readable product type, for example ReachRX2, ReachRX, ReachRS4. Do not include spaces. |
device_name | String, Human-readable device name, for example Reach RX2. This field may differ from the stable device_type identifier. |
serial_number | String, Device serial number. It must be handled as text to preserve leading zeros. |
firmware_version | String, Firmware version exactly as reported by the device, including any prerelease suffix. |
state_of_charge | Unsigned 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. |
checksum | Starts 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