LORD MicroStain 3DM-GX5-45 User manual

LORD DATA COMMUNICATIONS PROTOCOL MANUAL
3DM-GX5-45
GNSS-Aided Inertial Navigation System (GNSS/INS)

MicroStrain®Sensing Systems
459 Hurricane Lane
Suite 102
Williston, VT 05495
United States of America
Phone: 802-862-6629
www.microstrain.com
sensing_support@LORD.com
sensing_sales@LORD.com
Copyright © 2016 LORD Corporation
3DM®, 3DM-DH®, 3DM-DH3™, 3DM-GX1®, 3DM-GX2®, 3DM-GX3®, 3DM-GX4-15™, 3DM-GX4-25™, 3DM-GX4-45™,
3DM-GX4™, 3DM-GX5™3DM-RQ1™,3DM-GQ4™, AIFP®, Ask Us How™, Bolt-Link®, DEMOD-DC®, DVRT®, DVRT-Link™,
EH-Link®, EmbedSense®, ENV-Link™, FAS-A®, G-Link®, G-Link2™, HS-Link®, IEPE-Link™, Inertia-Link®, Little Sensors, Big
Ideas.®, Live Connect™, LXRS®, MathEngine®, MicroStrain®, MVEH™, MXRS®, Node Commander®, PVEH™, RHT-Link®,
RTD-Link™, SensorCloud™, SG-Link®, Shock-Link™, Strain Wizard®, TC-Link®, Torque-Link™, V-Link®, Watt-Link™, Wireless
Simplicity, Hardwired Reliability™, and WSDA®are trademarks of LORD Corporation.
Document 8500-0064 Revision C
Subject to change without notice.

3DM-GX5-45™GNSS-Aided Inertial Navigation System DCP Manual
Table of Contents
1. API Introduction
10
2. Basic Programming
11
2.1 MIP Packet Overview
11
2.2 Command Overview
13
2.2.1 Example “Ping” Command Packet 13
2.2.2 Example “Ping” Reply Packet 14
2.3 Data Overview
15
2.3.1 Example Data Packet: 15
2.4 Example Setup Sequence
16
2.4.1 Continuous Data Example Command Sequence 16
2.4.1.1 - Step 1: Put the Device in Idle Mode
16
2.4.1.2 - Step 2: Configure the IMU Data-stream Format
17
2.4.1.3 - Step 3: Configure the Estimation Filter Data-stream Format
18
2.4.1.4 - Step 4: Save the IMU and Estimation Filter MIP Message Format
19
2.4.1.5 - Step 5: Enable the IMU and Estimation Filter Data-streams
20
2.4.1.6 - Step 6:(Optional): Resume the Device
21
2.4.1.7 - Step 7: Initialize the Filter
22
2.4.2 Polling Data Example Sequence 23
2.4.2.1 - Step 1: Put the Device in Idle Mode (Disabling the IMU and Estimation Filter data-
streams)
23
2.4.2.2 - Step 2: Configure the IMU data-stream format
23
2.4.2.3 - Step 3: Configure the Estimation Filter data-stream format
23
2.4.2.4 - Step 4: Save the IMU and Estimation Filter MIP Message format
23
2.4.2.5 - Step 5: Resume the Device
23
2.4.2.6 - Step 6: Initialize the Filter
23
2.4.2.7 - Send Individual Data Polling Commands
23

3DM-GX5-45™GNSS-Aided Inertial Navigation System DCP Manual
2.5 Parsing Incoming Packets
25
2.6 Multiple Rate Data
26
2.7 Data Synchronicity
27
2.8 Communications Bandwidth Management
27
2.8.1 UART Bandwidth Calculation 28
2.8.2 USB vs. UART 29
3. Command and Data Summary
30
3.1 Commands
30
3.1.1 Base Command Set (0x01) 30
3.1.2 3DM Command Set (0x0C) 30
3.1.3 Estimation Filter Command Set (0x0D) 31
3.1.4 System Command Set (0x7F) 31
3.2 Data
32
3.2.1 IMU Data Set (0x08) 32
3.2.2 GNSS Data Set (0x81) 32
3.2.3 Estimation Filter Data Set (0x82) 32
4. Command Reference
34
4.1 Base Commands
34
4.1.1 Ping (0x01, 0x01) 34
4.1.2 Set To Idle (0x01, 0x02) 35
4.1.3 Get Device Information (0x01, 0x03) 36
4.1.4 Get Device Descriptor Sets (0x01, 0x04) 37
4.1.5 Device Built-In Test (0x01, 0x05) 38
4.1.6 Resume (0x01, 0x06) 40
4.1.7 Get Extended Device Descriptor Sets (0x01, 0x07) 40
4.1.8 GPS Time Update (0x01, 0x72) 41
4.1.9 Device Reset (0x01, 0x7E) 43
4.2 3DM Commands
44
4.2.1 Poll IMU Data (0x0C, 0x01) 44

3DM-GX5-45™GNSS-Aided Inertial Navigation System DCP Manual
4.2.2 Poll GNSS Data (0x0C, 0x02) 45
4.2.3 Poll Estimation Filter Data (0x0C, 0x03) 47
4.2.4 Get IMU Data Base Rate (0x0C, 0x06) 48
4.2.5 Get GNSS Data Base Rate (0x0C, 0x07) 49
4.2.6 Get Estimation Filter Data Base Rate (0x0C, 0x0B) 50
4.2.7 IIMU Message Format (0x0C, 0x08) 51
4.2.8 GNSS Message Format (0x0C, 0x09) 53
4.2.9 Estimation Filter Message Format (0x0C, 0x0A) 55
4.2.10 Enable/Disable Continuous Data Stream (0x0C, 0x11) 57
4.2.11 GNSS Constellation Settings (0x0C, 0x21) 59
4.2.12 GNSS SBAS Settings (0x0C, 0x22) 62
4.2.13 GNSS Assisted Fix Control (0x0C, 0x23) 64
4.2.14 GNSS Assist Time Update (0x0C, 0x24) 65
4.2.15 Device Startup Settings (0x0C, 0x30) 67
4.2.16 Accel Bias (0x0C, 0x37) 68
4.2.17 Gyro Bias (0x0C, 0x38) 69
4.2.18 Capture Gyro Bias (0x0C, 0x39) 70
4.2.19 Magnetometer Hard Iron Offset (0x0C, 0x3A) 71
4.2.20 Magnetometer Soft Iron Matrix (0x0C, 0x3B) 72
4.2.21 Coning and Sculling Enable (0x0C, 0x3E) 74
4.2.22 UART Baud Rate (0x0C, 0x40) 75
4.2.23 Advanced Low-Pass Filter Settings (0x0C, 0x50) 76
4.2.24 Complementary Filter Settings (0x0C, 0x51) 78
4.2.25 Device Status (0x0C, 0x64) 79
4.2.26 Raw RTCM 2.3 Message (0x0C, 0x20) 81
4.3 Estimation Filter Commands
83
4.3.1 Reset Filter (0x0D, 0x01) 83
4.3.2 Set Initial Attitude (0x0D, 0x02) 84
4.3.3 Set Initial Heading (0x0D, 0x03) 85

3DM-GX5-45™GNSS-Aided Inertial Navigation System DCP Manual
4.3.4 Vehicle Dynamics Mode (0x0D, 0x10) 86
4.3.5 Sensor to Vehicle Frame Transformation (0x0D, 0x11) 88
4.3.6 Sensor to Vehicle Frame Offset (0x0D, 0x12) 90
4.3.7 Antenna Offset (0x0D, 0x13) 92
4.3.8 Estimation Control Flags (0x0D, 0x14) 93
4.3.9 GNSS Source Control (0x0D, 0x15) 94
4.3.10 External GNSS Update (0x0D, 0x16) 95
4.3.11 Heading Update Control (0x0D, 0x18) 96
4.3.12 External Heading Update (0x0D, 0x17) 97
4.3.13 External Heading Update with Timestamp (0x0D, 0x1F) 99
4.3.14 Pitch/Roll Aiding Control (0x0D, 0x4B) 100
4.3.15 Altitude Aiding Control (0x0D, 0x47) 101
4.3.16 Auto-Initialization Control (0x0D, 0x19) 102
4.3.17 Magnetometer Noise Standard Deviation (0x0D, 0x42) 103
4.3.18 Gravity Noise Standard Deviation (0x0D, 0x28) 104
4.3.19 Pressure Altitude Noise Standard Deviation (0x0D, 0x29) 105
4.3.20 Accelerometer Noise Standard Deviation (0x0D, 0x1A) 105
4.3.21 Accelerometer Bias Model Parameters (0x0D, 0x1C) 107
4.3.22 Gyroscope Noise Standard Deviation (0x0D, 0x1B) 108
4.3.23 Gyroscope Bias Model Parameters (0x0D, 0x1D) 109
4.3.24 Hard Iron Offset Process Noise (0x0D, 0x2B) 110
4.3.25 Soft Iron Matrix Process Noise (0x0D, 0x2C) 111
4.3.26 Zero Velocity Update (ZUPT) Control (0x0D, 0x1E) 113
4.3.27 Zero Angular Rate Update Control (0x0D, 0x20) 114
4.3.28 Tare Orientation (0x0D, 0x21) 115
4.3.29 Commanded Zero-Velocity Update (0x0D, 0x22) 116
4.3.30 Commanded Zero-Angular Rate Update (0x0D, 0x23) 117
4.3.31 Declination Source (0x0D, 0x43) 118
4.3.32 Gravity Magnitude Error Adaptive Measurement (0x0D, 0x44) 120
4.3.33 Magnetometer Magnitude Error Adaptive Measurement (0x0D, 0x45) 122

3DM-GX5-45™GNSS-Aided Inertial Navigation System DCP Manual
4.3.34 Magnetometer Dip Angle Error Adaptive Measurement (0x0D, 0x46) 124
4.3.35 Magnetometer Capture Auto Calibration (0x0D, 0x27) 126
4.4 System Commands
127
4.4.1 Communication Mode (0x7F, 0x10) 127
4.5 Error Codes
128
5. Data Reference
129
5.1 IMU Data
129
5.1.1 Scaled Accelerometer Vector (0x80, 0x04) 129
5.1.2 Scaled Gyro Vector (0x80, 0x05) 130
5.1.3 Scaled Magnetometer Vector (0x80, 0x06) 130
5.1.4 Scaled Ambient Pressure (0x80, 0x17) 131
5.1.5 Delta Theta Vector (0x80, 0x07) 131
5.1.6 Delta Velocity Vector (0x80, 0x07) 132
5.1.7 CF Orientation Matrix (0x80, 0x09) 132
5.1.8 CF Quaternion (0x80, 0x0A) 134
5.1.9 CF Euler Angles (0x80, 0x0C) 135
5.1.10 CF Stabilized Mag Vector (North) (0x80, 0x10) 136
5.1.11 CF Stabilized Accel Vector (Up) (0x80, 0x11) 137
5.1.12 GPS Correlation Timestamp (0x80, 0x12) 137
5.2 GNSS Data
139
5.2.1 LLH Position (0x81, 0x03) 139
5.2.2 ECEF Position (0x81, 0x04) 140
5.2.3 NED Velocity (0x81, 0x05) 141
5.2.4 ECEF Velocity (0x81, 0x06) 142
5.2.5 DOP Data (0x81, 0x07) 143
5.2.6 UTC Time (0x81, 0x08) 144
5.2.7 GPS Time (0x81, 0x09) 145
5.2.8 Clock Information (0x81, 0x0A) 145
5.2.9 GNSS Fix Information (0x81, 0x0B) 146

3DM-GX5-45™GNSS-Aided Inertial Navigation System DCP Manual
5.2.10 Space Vehicle Information (0x81, 0x0C) 147
5.2.11 Hardware Status (0x81, 0x0D) 148
5.2.12 DGNSS Information (0x81, 0x0E) 149
5.2.13 DGNSS Channel Status (0x81, 0x0F) 150
5.3 Estimation Filter Data
151
5.3.1 Filter Status (0x82, 0x10) 151
5.3.2 GPS Timestamp (0x82, 0x11) 153
5.3.3 LLH Position (0x82, 0x01) 154
5.3.4 LLH Position Uncertainty (0x82, 0x08) 155
5.3.5 NED Velocity (0x82, 0x02) 155
5.3.6 NED Velocity Uncertainty (0x82, 0x09) 156
5.3.7 Orientation, Quaternion (0x82, 0x03) 157
5.3.8 Attitude Uncertainty, Quaternion Elements (0x82, 0x12) 158
5.3.9 Orientation, Euler Angles (0x82, 0x05) 159
5.3.10 Attitude Uncertainty, Euler Angles (0x82, 0x0A) 160
5.3.11 Orientation, Matrix (0x82, 0x04) 161
5.3.12 Compensated Angular Rate (0x82, 0x0E) 162
5.3.13 Gyro Bias (0x82, 0x06) 163
5.3.14 Gyro Bias Uncertainty (0x82, 0x0B) 163
5.3.15 Gyro Scale Factor (0x82, 0x16) 164
5.3.16 Gyro Scale Factor Uncertainty (0x82, 0x18) 164
5.3.17 Compensated Acceleration (0x82, 0x1C) 165
5.3.18 Linear Acceleration (0x82, 0x0D) 166
5.3.19 Accel Bias (0x82, 0x07) 167
5.3.20 Accel Bias Uncertainty (0x82, 0x0C) 167
5.3.21 Accel Scale Factor (0x82, 0x17) 168
5.3.22 Accel Scale Factor Uncertainty (0x82, 0x19) 169
5.3.23 Pressure Altitude (0x82, 0x21) 170
5.3.24 Standard Atmosphere Model (0x82, 0x20) 171

3DM-GX5-45™GNSS-Aided Inertial Navigation System DCP Manual
5.3.25 Gravity Vector (0x82, 0x13) 172
5.3.26 WGS84 Local Gravity Magnitude (0x82, 0x0F) 173
5.3.27 Heading Update Source State (0x82, 0x14) 174
5.3.28 Magnetic Model Solution (0x82, 0x15) 175
5.3.29 Mag Auto Hard Iron Offset (0x82, 0x25) 176
5.3.30 Mag Auto Hard Iron Offset Uncertainty (0x82, 0x28) 176
5.3.31 Mag Auto Soft Iron Matrix (0x82, 0x26) 177
5.3.32 Mag Auto Soft Iron Matrix Uncertainty (0x82, 0x29) 178
5.3.33 GNSS Antenna Offset Correction (0x82, 0x30) 179
5.3.34 GNSS Antenna Offset Correction Uncertainty (0x82, 0x31) 180
6. MIP Packet Reference
181
6.1 Structure
181
6.2 Payload Length Range
181
6.3 MIP Checksum Range
182
6.4 16-bit Fletcher Checksum Algorithm (C Language)
182
7. Advanced Programming
183
7.1 Multiple Commands in a Single Packet
183
7.2 Direct Modes
184
7.3 Internal Diagnostic Functions
185
7.3.1 3DM-GX5-45 Internal Diagnostic Commands 185
7.4 Handling High Rate Data
185
7.4.1 Runaway Latency 185
7.4.2 Dropped Packets 185
7.5 Creating Fixed Data Packet Format
187
7.6 Advanced Programming Models
188
8. Glossary
189

3DM-GX5-45™GNSS-Aided Inertial Navigation System DCP Manual
1. API Introduction
The 3DM- GX5-45 programming interface is comprised of a compact set of setup and control
commands and a very flexible user-configurable data output format. The commands and data are
divided into four command sets and threedata sets corresponding to the internal architecture of the
device. The four command sets consist of a set of “Base” commands (a set that is common across
many types of devices), a set of unified “3DM” (3D Motion) commands that are specific to the
LORD Sensing inertial product line, a set of “Estimation Filter” commands that are specific to
LORD Sensing navigation and advanced AHRS devices, and a set of “System” commands that
are specific to sensor systems comprised of more than one internal sensor block. The three data
sets represent the two types of data that the GX5-45 is capable of producing: “IMU” (Inertial
Measurement Unit) data and “Estimation Filter” (Position, Velocity, and Attitude) data. The type of
estimation filter used in the GX5-45 is an Extended Kalman Filter (EKF).
Base commands Ping, Idle, Resume, Get ID Strings, etc.
3DM commands Poll IMU Data, Estimation Filter Data, etc.
Estimation Filter commands Reset Filter, Sensor to Vehicle Frame Transformation, etc.
System commands Switch Communications Mode, etc.
IMU data Acceleration Vector, Gyro Vector, etc.
Estimation Filter data Position, Velocity, Attitude, Acceleration Estimates, etc.
The protocol is packet based. All commands, replies, and data are sent and received as fields in a
message packet. Commands are all confirmed with an ack/nack (with a few exceptions). The
packets have a descriptor type field based on their contents, so it is easy to identify if a packet
contains commands, replies, IMU data, or Estimation Filter data.

3DM-GX5-45™GNSS-Aided Inertial Navigation System DCP Manual
2. Basic Programming
The 3DM-GX5-45 is designed to stream IMU and Estimation Filter data packets over a common interface
as efficiently as possible. To this end, programming the device consists of a configuration stage where the
data messages and data rates are configured. The configuration stage is followed by a data streaming
stage where the program starts the incoming data packet stream.
In this section there is an overview of the packet, an overview of command and reply packets, an overview
of how an incoming data packet is constructed, and then an example setup command sequence that can
be used directly with the 3DM- GX5- 45 either through a COM utility or as a template for software
development.
2.1 MIP Packet Overview
This is an overview of the 3DM-GX5-45 packet structure. The packet structure used is the LORD “MIP”
packet. A reference to the general packet structure is presented in the MIP Packet Reference section.
An overview of the packet is presented here.
11

3DM-GX5-45™GNSS-Aided Inertial Navigation System DCP Manual
The MIP packet “wrapper” consists of a four byte header and two byte checksum footer:
The packet payload section contains one or more fields. Fields have a length byte, descriptor byte, and
data. The diagram below shows a packet payload with a single field.
12

3DM-GX5-45™GNSS-Aided Inertial Navigation System DCP Manual
Below is an example of a packet payload with two fields (gyro vector and mag vector). Note the
payload length byte of 0x1C which is the sum of the two field length bytes 0x0E +0x0E:
Header Packet Payload (2 Fields) Checksum
SYNC1
“u”
SYNC2
“e”
Descriptor
Set byte
Payload
Length
byte
Field 1
Length
Field 1
Descriptor Field 1 Data Field 2
Length
Field 2
Descriptor
Field 2
Data MSB LSB
0x75 0x65 0x80 0x1C 0x0E 0x05
0x3E 7A 63 A0
0xBB 8E 3B 29
0x7F E5 BF 7F
0x0E 0x06
0x3E 7A 63 A0
0xBB 8E 3B 29
0x7F E5 BF 7F
0xE0 0xC6
2.2 Command Overview
The basic command sequence begins with the host sending a command to the device. A command
packet contains a field with the command value and any command arguments.
The device responds by sending a reply packet. The reply contains at minimum an ACK/NACK field. If
any additional data is included in a reply, it appears as a second field in the packet.
2.2.1 Example “Ping” Command Packet
Below is an example of a “Ping” command packet from the Base command set. A “Ping” command
has no arguments. Its function is to determine if a device is present and responsive:
Header Packet Payload Checksum
SYNC1 “u SYNC2 “e” Descriptor
Set byte
Payload Length
byte
Field
Byte
Length
Field
Descriptor
Byte
Field Data MSB LSB
0x75 0x65 0x01 0x02 0x02 0x01 N/A 0xE0 0xC6
Copy-Paste version of command: “7565 0102 0201 E0C6”
The packet header has the “ue” starting sync bytes characteristic of all MIP packets. The descriptor
set byte (0x01) identifies the payload as being from the Base command set. The length of the
payload portion is 2 bytes. The payload portion of the packet consists of one field. The field starts
with the length of the field which is followed by the descriptor byte (0x01) of the field. The field
descriptor value is the command value. Here the descriptor identifies the command as the “Ping”
command from the Base command descriptor set. There are no parameters associated with the
ping command, so the field data is empty. The checksum is a two byte Fletcher checksum (see the
MIP Packet Reference for instructions on how to compute a Fletcher two byte checksum).
13

3DM-GX5-45™GNSS-Aided Inertial Navigation System DCP Manual
2.2.2 Example “Ping” Reply Packet
The “Ping” command will generate a reply packet from the device. The reply packet will contain an
ACK/NACK field. The ACK/NACK field contains an “echo” of the command byte plus an error code.
An error code of 0 is an “ACK” and a non-zero error code is a “NACK”:
Header Packet Payload Checksum
SYNC1 “u SYNC2 “e” Descriptor
Set byte
Payload Length
byte
Field
Byte
Length
Field
Descriptor
Byte
Field Data MSB LSB
0x75 0x65 0x01 0x04 0x04 0xF1 Command Echo: 0x01
Error code: 0x00 0xD5 0x6A
Copy-Paste version of reply:... “7565 0104 04F1 0100 D56A”
The packet header has the “ue” starting sync bytes characteristic of all MIP packets. The descriptor
set byte (0x01) identifies the payload fields as being from the Base command set. The length of the
payload portion is 4 bytes. The payload portion of the packet consists of one field. The field starts
with the length of the field which is followed by the descriptor byte (0xF1) of the field. The field
descriptor byte identifies the reply as the “ACK/NACK” from the Base command descriptor set. The
field data consists of an “echo” of the original command (0x01) followed by the error code for the
command (0x00). In this case the error is zero, so the field represents an “ACK”. Some examples of
non-zero error codes that might be sent are “timeout”, “not implemented”, and “invalid parameter in
command”. The checksum is a two byte Fletcher checksum (see the MIP Packet Reference for
instructions on how to compute a Fletcher two byte checksum).
The ACK/NACK descriptor value (0xF1) is the same in all descriptor sets. The value belongs to a
set of reserved global descriptor values.
The reply packet may have additional fields that contain information in reply to the command. For
example, requesting Device Status will result in a reply packet that contains two fields in the packet
payload: an ACK/NACK field and a device status information field.
14

3DM-GX5-45™GNSS-Aided Inertial Navigation System DCP Manual
2.3 Data Overview
Data packets are generated by the device. When the device is powered up, it may be configured to
immediately stream data packets out to the host or it may be “idle” and waiting for a command to either
start continuous data or to get data by “polling” (one data packet per request). Either way, the data
packet is generated by the device in the same way.
2.3.1 Example Data Packet:
Below is an example of a MIP data packet which has one field that contains the scaled
accelerometer vector.
Header Packet Payload Checksum
SYNC1
“u
SYNC2
“e”
Descriptor
Set byte
Payload
Length byte
Field Byte
Length
Field
Descriptor
Byte
Field Data:
Accel vector (12 bytes,
3 float – X, Y, Z)
MSB LSB
0x75 0x65 0x80 0x0E 0x0E 0x04
0x3E 7A 63 A0
0xBB 8E 3B 29
0x7F E5 BF 7F
0x92 0xC0
Copy-Paste version: "7565 800E 0E04 3E7A 63A0 BB8E 3B29 7FE5 BF7F 92C0”
The packet header has the “ue” starting sync bytes characteristic of all MIP packets. The descriptor
set byte (0x80) identifies the payload field as being from the IMU data set. The length of the packet
payload portion is 14 bytes (0x0E). The payload portion of the packet starts with the length of the
field. The field descriptor byte (0x04) identifies the field data as the scaled accelerometer vector
from the IMU data descriptor set. The field data itself is three single precision floating point values of
4 bytes each (total of 12 bytes) representing the X, Y, and Z axis values of the vector. The checksum
is a two byte Fletcher checksum (see the MIP Packet Reference for instructions on how to compute
a Fletcher two byte checksum).
The format of the field data is fully and unambiguously specified by the descriptor. In this example,
the field descriptor (0x04) specifies that the field data holds an array of three single precision IEEE-
754 floating point numbers in big-endian byte order and that the values represent units of “g’s” and
the order of the values is X, Y, Z vector order. Any other specification would require a different
descriptor (see the Data Reference section of this manual).
Data polling commands generate two individual reply packets: An ACK/NACK packet and a data
packet. Enable/Disable continuous data commands generate an ACK/NACK packet followed by
the continuous stream of data packets.
The IMU and Estimation Filter data packets can be set up so that each data quantity is sent at a
different rate. For example, you can setup continuous data to send the accelerometer vector at 100
Hz and the magnetometer vector at 5 Hz. This means that packets will be sent at 100 Hz and each
15

3DM-GX5-45™GNSS-Aided Inertial Navigation System DCP Manual
one will have the accelerometer vector but only every 20th packet will have the magnetometer
vector. This helps reduce bandwidth and buffering requirements. An example of this is given in the
IMU Message Format command.
2.4 Example Setup Sequence
Setup involves a series of command/reply pairs. The example below demonstrates actual setup
sequences that you can send directly to the 3DM-GX5-45 either programmatically or by using a COM
utility. In most cases only minor alterations will be needed to adapt these examples for your application.
2.4.1 Continuous Data Example Command Sequence
Most applications will operate with the 3DM- GX5-45 sending a continuous data stream. In the
following example, the IMU data format is set, followed by the Estimation Filter data format. To
reduce the amount of streaming data, if present during the configuration, the device is placed into
the idle state while performing the device initialization; when configuration is complete, the required
data streams are enabled to bring the device out of idle mode. Finally, the configuration is saved so
that it will be loaded on subsequent power-ups, eliminating the need to perform the configuration
again.
2.4.1.1 - Step 1: Put the Device in Idle Mode
Send the “Set To Idle” command to put the device in the idle state (reply is ACK/NACK), disabling
the IMU and Estimation Filter data-streams. This is not required but reduces the parsing burden
during initialization and makes visual confirmation of the commands easier:
MIP Packet Header Command/Reply Fields Checksum
SYNC1
“u
SYNC2
“e”
Descriptor
Set byte
Payload
Length
Field
Length
Cmd.
Descriptor Field Data MSB LSB
Command:
Set to Idle
0x75 0x65 0x01 0x02 0x02 0x02 N/A 0xE1 0xC7
Reply:
ACK/NACK
0x75 0x65 0x01 0x04 0x04 0xF1 Cmd echo: 0x02
Error code: 0x00 0xD6 0x6C
Copy-Paste version of the command: “7565 0102 0202 E1C7”
16

3DM-GX5-45™GNSS-Aided Inertial Navigation System DCP Manual
2.4.1.2 - Step 2: Configure the IMU Data-stream Format
Send a “Set IMU Message Format” command (reply is ACK/NACK). This example requests GPS
correlation timestamp, scaled gyro, and scaled accelerometer information at50 Hz (500Hz base
rate divided by a rate decimation of 10 on the3DM-GX5-45 = 50 Hz.) This will result in a single IMU
data packet sent at 50Hz containing the IMU GPS correlation timestamp followed by the scaled
gyro field and the scaled accelerometer field. This is a very typical configuration for a base level of
inertial data. If different rates were requested, then each packet would only contain the data
quantities that fall in the same decimation frame (see theMultiple Rate Data section). If the stream
was not disabled in the previous step, the IMU data would begin stream immediately.
Please note, this command will not append the requested descriptors to the current IMU data-
stream configuration, it will overwrite it completely.
MIP Packet Header Command/Reply Fields Checksum
SYNC1
“u
SYNC2
“e”
Descriptor
Set byte
Payload
Length
Field
Length
Cmd.
Descriptor Field Data MSB LSB
Command:
New IMU
Message
Format
0x75 0x65 0x0C 0x0D 0x0D 0x08
Function: 0x01
Desc. count: 0x03
GPS TS
Descriptor: 0x12
Rate Dec: 0x000A
Accel Desc.: 0x04
Rate Dec: 0x000A
Ang Rate
Desc.: 0x05
Rate Dec: 0x000A
0x45 0xF2
Reply:
ACK/NACK
0x75 0x65 0x0C 0x04 0x04 0xF1 Cmd echo: 0x08
Error code: 0x00 0xE7 0xBA
Copy-Paste version of the command: “7565 0C0D 0D08 0103 1200 0A04 000A 0500 0A45 F2”
17

3DM-GX5-45™GNSS-Aided Inertial Navigation System DCP Manual
2.4.1.3 - Step 3: Configure the Estimation Filter Data-stream Format
The following configuration command requests the GPS Timestamp followed by the Estimated LLH
Position, Estimated NED Velocity, Estimated Orientation in Quaternion form, and Filter Status at 50
Hz (500 Hz base rate divided by a rate decimation of 10 = 50 Hz.) This will result in a single
Estimation Filter packet sent at 50 Hz containing the requested fields in the requested order. If
different rates were requested, then each packet would only contain the data quantities that fall in
the same data rate frame (see the Multiple Rate Data section). If the stream was not disabled in the
previous step, the Estimation Filter data would begin stream immediately.
Please note, this command will not append the requested descriptors to the current Estimation
Filter data stream configuration, it will overwrite it completely.
MIP Packet Header Command/Reply Fields Checksum
SYNC1
“u
SYNC2
“e”
Descriptor
Set byte
Payload
Length
Field
Length
Cmd.
Desc. Field Data MSB LSB
Command:
New
Estimation
Filter
Message
Format
0x75 0x65 0x0C 0x13 0x13 0x0A
Function: 0x01
Desc. count: 0x05
GPS TS Desc.: 0x11
Rate Dec: 0x000A
Filter Status Desc: 0x10
Rate Dec: 0x000A
Est. Pos. Desc.: 0x01
Rate Dec: 0x000A
Est. Vel. Desc.: 0x02
Rate Dec: 0x000A
Est. Quat. Desc: 0x03
Rate Dec: 0x000A
0x75 0x62
Reply:
ACK/NACK
0x75 0x65 0x0C 0x04 0x04 0xF1 Cmd echo: 0x0A
Error code: 0x00 0xE9 0xBE
Copy-Paste version of the command: “7565 0C13 130A 0105 1100 0A10 000A 0100 0A02 000A 0300
0A75 62”
18

3DM-GX5-45™GNSS-Aided Inertial Navigation System DCP Manual
2.4.1.4 - Step 4: Save the IMU and Estimation Filter MIP Message Format
To save the IMU and Estimation Filter MIP Message format, use the “Save” function selector (0x03)
in the IMU and Estimation Filter Message Format commands. Below we’ve combined the two
commands as two fields in the same packet. Notice that the two reply ACKs comes in one packet
also. Alternatively, they could be sent as separate packets.
MIP Packet Header Command/Reply Fields Checksum
SYNC1
“u
SYNC2
“e”
Descriptor
Set byte
Payload
Length
Field
Length
Cmd.
Desc. Field Data MSB LSB
Command
Field 1:
Save Current
IMU Message
Format
0x75 0x65 0x0C 0x08 0x04 0x08 Function: 0x03
Desc. count: 0x00
Command
Field 2:
Save Current
Estimation
Filter Message
Format
0x04 0x0A Function: 0x03
Desc. count: 0x00 0x0E 0x31
Reply Field 1:
ACK/NACK
0x75 0x65 0x0C 0x08 0x04 0xF1 Cmd echo: 0x08
Error code: 0x00
Reply Field 2:
ACK/NACK
0x04 0xF1 Cmd echo: 0x0A
Error code: 0x00 0xE9 0xBE
Copy-Paste version of the command: “7565 0C08 0408 0300 040A 0300 0E31”
19

3DM-GX5-45™GNSS-Aided Inertial Navigation System DCP Manual
2.4.1.5 - Step 5: Enable the IMU and Estimation Filter Data-streams
Send an Enable/Disable Continuous Stream command to enable the IMU and Estimation Filter
continuous streams (reply is ACK). These streams may have already been enabled by default; this
step is to confirm they are enabled. These streams will begin streaming data immediately.
MIP Packet Header Command/Reply Fields Checksum
SYNC1
“u
SYNC2
“e”
Descriptor
Set byte
Payload
Length
Field
Length
Cmd.
Desc. Field Data MSB LSB
Command
Field 1:
Enable Continu-
ous IMU Mes-
sage
0x75 0x65 0x0C 0x0A 0x05 0x11
Function: 0x01
IMU: 0x01
ON: 0x01
Command
Field 2:
Enable
Continuous
EstimationFilter
Message
0x05 0x11
Function: 0x01
Estimation Filter: 0x03
ON: 0x01
0x24 0xCC
Reply Field 1:
ACK/NACK
0x75 0x65 0x0C 0x08 0x04 0xF1 Cmd echo: 0x11
Error code: 0x00
Reply Field 2:
ACK/NACK
0x04 0xF1 Cmd echo: 0x11
Error code: 0x00 0xFA 0xB5
Copy-Paste version of the command: “7565 0C0A 0511 0101 0105 1101 0301 24 CC”
20
Other manuals for MicroStain 3DM-GX5-45
2
Table of contents
Other LORD Recording Equipment manuals