NMEA Output
The 3DM-GQ7 supports transmission of selected NMEA-0183 sentences over the main communications port.
Supported Sentences and Talker IDs
Sentence | Description | Supported Talker IDs | Applicable Sources |
GGA | GNSS Fix Information | GN, GP, GA, GL | GNSS, Filter |
GLL | Lat/lon position | GN, GP, GA, GL | GNSS, Filter |
GSV | Satellites in View | Constellation-specific | GNSS |
RMC | Recommended Minimum GNSS data | GN, GP, GA, GL | GNSS, Filter |
VTG | Course over Ground | GN, GP, GA, GL | GNSS, Filter |
HDT | True Heading | GN, GP, GA, GL | GNSS, Filter |
ZDA | Time and Date | GN, GP, GA, GL | GNSS |
PRKA | Euler Angles (Proprietary) | Proprietary | Filter |
PRKR | Angular Rate and Accel (Proprietary) | Proprietary | Sensor |
Proprietary Messages
PRKA - Euler Angles
Information | Format | Examples |
---|---|---|
UTC Time - Hour (24-hour format, 00 = midnight) | 2 digits, HH | 00, 01, 13, 23 |
UTC Time - Minute, 00-59 | 2 digits, MM | 00, 15, 30, 59 |
UTC Time - Second, 00-60 | 2 digits, SS | 00, 05, 10, 55, 60 |
UTC Time - Millisecond, .00 to .99 | 2 digits after a decimal, .mm | .00, .10, .67, .99 |
Euler Angles - Roll, Pitch, Yaw [degrees] | Float with 3 decimal places | 0.523, -23.887, 149.447 |
Example: $PPKRA,161414.71,-0.397,0.963,107.238*7A
PRKR - Angular Rate and Acceleration
Information | Format | Examples |
---|---|---|
UTC Time - Hour (24-hour format, 00 = midnight) | 2 digits, HH | 00, 01, 13, 23 |
UTC Time - Minute, 00-59 | 2 digits, MM | 00, 15, 30, 59 |
UTC Time - Second, 00-60 | 2 digits, SS | 00, 05, 10, 55, 60 |
UTC Time - Millisecond, .00 to .99 | 2 digits after a decimal, .mm | .00, .10, .67, .99 |
Acceleration - X, Y, Z [g] | Float with 6 decimal places | 0.123456, 1.102300, -5.52223 |
Gyro - Roll, Pitch, Yaw [deg/s] | Float with 6 decimal places | 0.123456, 1.102300, -5.52223 |
Example: $PPKRR,161214.99,-0.134271,-0.445030,-0.521750,20.525915,-52.236669,19.040872*7D
Sources and Talker IDs
The NMEA sentences can be produced using data from the IMU, Filter, GNSS 1, or GNSS 2. The source is selected on a per-sentence basis using the corresponding MIP descriptor set. The talker IDs are also configurable for each sentence except for the GSV and proprietary messages.
Configuration
The NMEA system is configured using the NMEA Message Format (0x0C,0x0C) MIP command. It accepts a list of sentence types which includes the talker IDs, source descriptor sets, and decimations for each sentence. A sentence may be specified more than once using different talker IDs or sources. The decimation is relative to the base rate of the source descriptor set.
Important: due to processing limitations, a maximum of 10 Hz applies to each produced NMEA sentence from the IMU and filter descriptor sources and 2 Hz from a GNSS descriptor source. Attempts to set a higher rate than this will result in the command being NACK'd.
The device will transmit NMEA sentences if all of the following conditions are met:
- At least one sentence is specified in the NMEA message format.
- The device has not been set to idle with the Set to idle (0x01,0x02) command (issue the Resume (0x01,0x06) command if this is the case).
- The data required for the configured sentence(s) is available. In some cases, the required data may not be valid, such as when a GNSS fix has not been obtained. A sentence will not be transmitted unless the source data is valid.
If the NMEA sentence list is not empty on startup, transmission will begin as soon as the data becomes available (e.g. once satellite signals have been acquired).
NMEA sentences can also be polled manually using the Poll NMEA Message (0x0C,0x04) MIP command. This command behaves like the NMEA message format command except that messages will only be transmitted once, if the data is available.
Parsing mixed MIP and NMEA data streams
Because the NMEA data is streamed to the main port, MIP command replies and data will be mixed into the data stream if any MIP communication is enabled or initiated. Applications requiring mixed NMEA and MIP should deal with this by running parsers in parallel; that is, by feeding the data stream to both parsers simultaneously. The two parsers must be robust and reject unexpected data for this to work correctly. Each type of packet will be transmitted whole; therefore, the user should not expect a NMEA packet to fall in the middle of a MIP packet and vice-versa.