background image

3DM

®

-GX5-35

DCP Manual

2.7

Data Synchronicity

Because the MIP packet allows multiple data fields to be in a single packet, it may be assumed that a

single timestamp field in the packet applies to all the data in the packet. In other words, it may be

assumed that all the data fields in the packet were sampled at the same time.

IMU and Estimation Filter data are generated independently by two systems with different clocks. The

importance of time is different in each system and the data they produce. The IMU data requires

precise microsecond resolution and perfectly regular intervals in its timestamps. The Kalman Filter

resides on a separate processor and must derive its timing information from the two data sources.

The time base difference is one of the factors that necessitate separation of the IMU and Estimation

Filter data into separate packets. Conversely, the common time base of the different data quantities

within one system is what allows grouping multiple data quantities into a single packet with a common

timestamp. In other words, IMU data is always grouped with a timestamp generated from the IMU time

base, and estimation filter data is always grouped with a timestamp from the Estimation Filter time

base,etc.

All data streams (IMU and Estimation Filter) on the 3DM- GX5- 35 output a “GPS Time”- formatted

timestamp. This allows a precise common time base for all data. Due to the differences in clocks on

each device, the period between two consecutive timestamp values may not be constant; this occurs

because periodic corrections are applied to the IMU and Estimation Filter timestamps when the GPS

Time Update Command is applied.

2.8

Communications Bandwidth Management

Because of the large amount and variety of data that is available from the 3DM-GX5-35, it is quite easy

to overdrive the bandwidth of the communications channel. This can result in dropped packets. The

3DM- GX5- 35 does not do analysis of the bandwidth requirements for any given output data

configuration, it will simply drop a packet if its internal serial buffer is being filled faster than it is being

emptied. It is up to the programmer to analyze the size of the data packets requested and the available

bandwidth of the communications channel. Often the best way to determine this is empirically by trying

different settings and watching for dropped packets. Below are some guidelines on how to determine

maximum bandwidth for your application.

19

Summary of Contents for 3DM-GX5-35

Page 1: ...LORD Data Communications Protocol Manual 3DM GX5 35 Attitude and Heading Reference Unit AHRS with GNSS ...

Page 2: ...D Corporation 3DM 3DM DH 3DM DH3 3DM GX2 Ask Us How DEMOD DC DVRT EmbedSense FAS A G Link Little Sensors Big Ideas LORD Microstrain Live Connect LXRS MathEngine MicroStrain MIP MXRS Node Commander SensorCloud SensorConnect SG Link Strain Wizard TC Link V Link Wireless Simplicity Hardwired Reliability and WSDA are trademarks of LORD Corporation Document 8500 0068 Revision C Subject to change withou...

Page 3: ... 12 2 4 1 Continuous Data Example Command Sequence 13 2 4 2 Polling Data Example Sequence 16 2 5 Parsing Incoming Packets 17 2 6 Multiple Rate Data 18 2 7 Data Synchronicity 19 2 8 Communications Bandwidth Management 19 2 8 1 UART Bandwidth Calculation 20 2 8 2 USB vs UART 21 3 Command and Data Summary 22 3 1 Commands 22 3 1 1 Base Command Set 0x01 22 3 1 2 3DM Command Set 0x0C 22 3 1 3 System Com...

Page 4: ...ands 34 4 2 1 Poll IMU Data 0x0C 0x01 34 4 2 2 Poll GNSS Data 0x0C 0x02 35 4 2 3 Get IMU Data Base Rate 0x0C 0x06 36 4 2 4 Get GNSS Data Base Rate 0x0C 0x07 37 4 2 5 IMU Message Format 0x0C 0x08 38 4 2 6 GNSS Message Format 0x0C 0x09 40 4 2 7 Enable Disable Continuous Data Stream 0x0C 0x11 42 4 2 8 GNSS Constellation Settings 0x0C 0x21 44 4 2 9 GNSS SBAS Settings 0x0C 0x22 47 4 2 10 GNSS Assisted ...

Page 5: ... 69 5 Data Reference 70 5 1 IMU Data 70 5 1 1 Scaled Accelerometer Vector 0x80 0x04 70 5 1 2 Scaled Gyro Vector 0x80 0x05 71 5 1 3 Scaled Magnetometer Vector 0x80 0x06 71 5 1 4 Scaled Ambient Pressure 0x80 0x17 72 5 1 5 Delta Theta Vector 0x80 0x07 72 5 1 6 Delta Velocity Vector 0x80 0x08 73 5 1 7 CF Orientation Matrix 0x80 0x09 73 5 1 8 CF Quaternion 0x80 0x0A 75 5 1 9 CF Euler Angles 0x80 0x0C 7...

Page 6: ...on 0x81 0x0E 90 5 2 13 DGNSS Channel Status 0x81 0x0F 91 6 MIP Packet Reference 92 6 1 Structure 92 6 2 Payload Length Range 92 6 3 MIP Checksum Range 92 6 4 16 bit Fletcher Checksum Algorithm C Language 92 7 Advanced Programming 93 7 1 Multiple Commands in a Single Packet 93 7 2 Direct Modes 94 7 3 Internal Diagnostic Functions 95 7 3 1 3DM GX5 35 Internal Diagnostic Commands 95 7 4 Handling High...

Page 7: ...rised of more than one internal sensor block The data sets represent the two types of data that the 3DM GX5 35 is capable of producing GNSS Global Navigation Satellite System data and IMU Inertial Measurement Unit data Base commands Ping Idle Resume Get ID Strings etc 3DM commands Poll IMU Data Estimation Filter Data etc System commands Switch Communications Mode etc IMU data Acceleration Vector G...

Page 8: ...erview 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 35 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 35 packet structure The packet structure used is the LORD MIP...

Page 9: ...3DM GX5 35 DCP Manual 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 9 ...

Page 10: ...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 Th...

Page 11: ...rom 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 Referenc...

Page 12: ... 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 pre...

Page 13: ...r 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 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 accelerome...

Page 14: ...mmand to enable the IMU continuous stream reply is ACK This stream may have already been enabled by default this step is to confirm they are enabled The stream 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...

Page 15: ...tinue streaming reply is ACK NACK 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 Resume 0x75 0x65 0x01 0x02 0x02 0x06 N A 0xE5 0xCB Reply ACK NACK 0x75 0x65 0x01 0x04 0x04 0xF1 Cmd echo 0x06 Error code 0x00 0xDA 0x74 Copy Paste version of the command 7565 0102 0206 E5CB 15 ...

Page 16: ...d is sent see Resume the Device Optional on page 14 Send Individual Data Polling Commands Send individual Poll IMU Data commands in your data collection loop After the ACK NACK is sent by the device a single data packet will be sent according to the settings in the previous steps Note that the ACK NACK has the same descriptor set value as the command but the data packet has the descriptor set valu...

Page 17: ...s a feature that greatly aids the management of the incoming packet stream by making it easy to sort the packets into logical sub streams and route those streams to appropriate handlers The first step is to parse the incoming character stream into packets It is important to take an organized approach to parsing continuous data The basic strategy is this parse the incoming stream of characters for ...

Page 18: ...higher data rates 100 Hz than other IMU data such as Magnetometer 20 Hz typical data The ability to send data at different rates reduces the parsing load on the user program and decreases the bandwidth requirements of the communications channel Multiple rate data is scheduled on a common sampling rate clock This means that if there is more than one data rate scheduled the schedules coincide period...

Page 19: ...time base and estimation filter data is always grouped with a timestamp from the Estimation Filter time base etc All data streams IMU and Estimation Filter on the 3DM GX5 35 output a GPS Time formatted timestamp This allows a precise common time base for all data Due to the differences in clocks on each device the period between two consecutive timestamp values may not be constant this occurs beca...

Page 20: ...re dropped packets increase the baud rate reduce the data rate or decrease the size or number of packets Where Sf size of data field in bytes fdr field of data rate in Hz fmr maximum date rate in Hz n size of UART word 10 bits k size of MIP wrapper 6 bytes which becomes Example For an IMU message format of Accelerometer Vector 14 byte data field Internal Timestamp six byte data field both at 100 H...

Page 21: ...purts rather than at a constant rate and although rare sometimes data can be dropped if the host processor fails to poll the USB device in a timely manner With the UART the opposite is true The 3DM GX5 35 operates without UART handshaking which means it streams data out at a very consistent rate without stopping Since the host processor has no handshake method of pausing the stream it must instead...

Page 22: ...x05 Resume 0x01 0x06 Get Extended Device Descriptor Sets 0x01 0x07 GPS Time Update 0x01 0x72 Device Reset 0x01 0x7E 3 1 2 3DM Command Set 0x0C Poll IMU Data 0x0C 0x01 Poll GNSS Data 0x0C 0x02 Get IMU Data Rate Base 0x0C 0x06 Get GNSS Data Rate Base 0x0C 0x07 IMU Message Format 0x0C 0x08 GNSS Message Format 0x0C 0x09 Enable Disable Device Continuous Data Stream 0x0C 0x11 GNSS Constellation Settings...

Page 23: ...city Vector 0x80 0x08 CF Orientation Matrix 0x80 0x09 CF Quaternion 0x80 0x0A CF Euler Angles 0x80 0x0C CF Stabilized Mag Vector North 0x80 0x10 CF Stabilized Accel Vector Up 0x80 0x11 GPS Correlation Timestamp 0x80 0x12 3 2 2 GNSS Data Set 0x81 LLH Position 0x81 0x03 ECEF Position 0x81 0x04 NED Velocity 0x81 0x05 ECEF Velocity 0x81 0x06 Dilution of Precision DOP Data 0x81 0x07 UTC Time 0x81 0x08 ...

Page 24: ...g 0x01 0x01 Description Send Ping command Device responds with ACK if present Field Format Field Length Field Descriptor Field Data Command 0x02 0x01 N A Reply ACK NACK 0x04 0xF1 U8 echo the command byte U8 error code 0 ACK non zero NACK Example MIP Packet Header Command Reply Fields Checksum Sync1 Sync2 Desc Set Payload Length Field Length Field Desc Field Data MSB LSB Command Ping 0x75 0x65 0x01...

Page 25: ...evice mode by issuing the Resume command Field Format Field Length Field Descriptor Field Data Command 0x02 0x02 N A Reply ACK NACK 0x04 0xF1 U8 echo the command byte U8 error code 0 ACK non zero NACK Example MIP Packet Header Command Reply Fields Checksum Sync1 Sync2 Desc Set Payload Length Field Length Field Desc Field Data MSB LSB Command Set to Idle 0x75 0x65 0x01 0x02 0x02 0x02 0xE1 0xC7 Repl...

Page 26: ... 0 Firmware version U16 N A 2 Model Name String 16 N A 18 Model Number String 16 N A 34 Serial Number String 16 N A 50 Reserved String 16 N A 66 Options String 16 N A Example MIP Packet Header Command Reply Fields Checksum Sync1 Sync2 Desc Set Payload Length Field Length Field Desc Field Data MSB LSB Command Get Device Info 0x75 0x65 0x01 0x02 0x02 0x03 0xE2 0xC8 Reply Field 1 ACK NACK 0x75 0x65 0...

Page 27: ...or code 0 ACK non zero NACK Reply Field 2 Array of Descriptors 2 x n 2 0x82 Binary Offset Description Data Type 0 MSB Descriptor Set U16 LSB Descriptor 2 MSB Descriptor Set U16 LSB Descriptor etc Example MIP Packet Header Command Reply Fields Checksum Sync1 Sync2 Desc Set Payload Length Field Length Field Desc Field Data MSB LSB Command Get Device Info 0x75 0x65 0x01 0x02 0x02 0x04 0xE3 0xC9 Reply...

Page 28: ... Solution Fault Bit 2 Reserved Magnetometer Fault if applicable Reserved Bit 3 Reserved Pressure Sensor Fault if applicable Reserved Bit 4 Reserved Reserved Reserved Bit 5 Reserved Reserved Reserved Bit 6 Reserved Reserved Reserved Bit 7 Reserved Reserved Reserved Bit 8 MSB Reserved Reserved Reserved Field Format Field Length Field Descriptor Field Data Command 0x02 0x05 N A Reply Field 1 ACK NACK...

Page 29: ...ual Reply Field 1 ACK NACK 0x75 0x65 0x01 0x0A 0x04 0xF1 Echo cmd 0x05 Error code 0x00 Reply Field 2 BIT Error Flags 0x06 0x83 BIT Error Flags 0x00000000 0x68 0x7D Copy Paste version of the command 7565 0102 0205 E4CA 29 ...

Page 30: ...abled Field Format Field Length Field Descriptor Field Data Command 0x02 0x06 N A Reply ACK NACK 0x04 0xF1 U8 echo the command byte U8 error code 0 ACK non zero NACK Example MIP Packet Header Command Reply Fields Checksum Sync1 Sync2 Desc Set Payload Length Field Length Field Desc Field Data MSB LSB Command Resume 0x75 0x65 0x01 0x02 0x02 0x06 0xE5 0xCB Reply ACK NACK 0x75 0x65 0x01 0x04 0x04 0xF1...

Page 31: ... descriptor in the list returned by the Get Device Descriptor Sets command Field Format Field Length Field Descriptor Field Data Command 0x02 0x07 N A Reply Field 1 ACK NACK 0x04 0xF1 U8 echo the command byte U8 error code 0 ACK non zero NACK Reply Field 2 Array of Descriptors 4 x Number of descriptors 2 0x86 Binary Offset Description Data Type 0 MSB Descriptor Set LSB Descriptor U16 1 MSB Descrip...

Page 32: ...re information Possible function selector values 0x01 Apply new settings 0x02 Read back current settings 0x06 Apply new settings with no ACK NACK reply Possible field selector values 0x01 GPS Week Number 0x02 GPS Seconds Field Format Field Length Field Descriptor Field Data Command 0x08 0x72 U8 Function Selector U8 GPS Time Field Selector U32 New Time Value Reply ACK NACK 0x04 0xF1 U8 echo the com...

Page 33: ...and then immediately resets Field Format Field Length Field Descriptor Field Data Command 0x02 0x7E N A Reply Field 1 ACK NACK 0x04 0xF1 U8 Echo the command byte U8 Error code 0 ACK non zero NACK Example MIP Packet Header Command Reply Fields Checksum Sync1 Sync2 Desc Set Payload Length Field Length Field Desc Field Data MSB LSB Command Ping 0x75 0x65 0x01 0x02 0x02 0x7E 0x5D 0x43 Reply Field 1 AC...

Page 34: ...red format the device will respond with a NACK The reply packet con tains an ACK NACK field The polled data packet is sent separately as an IMU Data packet Possible Option Selector Values 0x00 Normal ACK NACK Reply 0x01 Suppress the ACK NACK reply Field Format Field Length Field Descriptor Field Data Command 4 3 N 0x01 U8 Option Selector U8 Number of Descriptors N N U8 Descriptor U16 Reserved Repl...

Page 35: ...ed format the device will respond with a NACK The reply packet contains an ACK NACK field The polled data packet is sent separately as a GNSS Data packet Possible Option Selector Values 0x00 Normal ACK NACK Reply 0x01 Suppress the ACK NACK reply Field Format Field Length Field Descriptor Field Data Command 4 3 N 0x02 U8 Option Selector U8 Number of Descriptors N N U8 Descriptor U16 Reserved Reply ...

Page 36: ...m mand Field Format Field Length Field Descriptor Field Data Command 0x02 0x06 None Reply Field 1 ACK NACK 0x04 0xF1 U8 echo the command byte U8 error code 0 ACK non zero NACK Reply Field 2 IMU Base Rate 0x04 0x83 U16 IMU data base rate Hz Example MIP Packet Header Command Reply Fields Checksum Sync1 Sync2 Desc Set Payload Length Field Length Field Desc Field Data MSB LSB Command Get IMU Base Rate...

Page 37: ...command byte U8 Error code 0 ACK non zero NACK Reply Field 2 IMU Base Rate 0x04 0x84 U16 GNSS data base rate Hz Example MIP Packet Header Command Reply Fields Checksum Sync1 Sync2 Desc Set Payload Length Field Length Field Desc Field Data MSB LSB Command Get IMU Base Rate 0x75 0x65 0x0C 0x02 0x02 0x07 0xF1 0xF8 Reply Field 1 ACK NACK 0x75 0x65 0x0C 0x08 0x04 0xF1 Command echo 0x07 Error code 0x00 ...

Page 38: ...y from device to device The IMU base rate for the 3DM GX5 is 500 The device checks that all descriptors are valid prior to executing this command If any of the descriptors are invalid for the IMU descriptor set a NACK will be returned and the mes sage format will be unchanged The descriptor array only needs to be provided if the func tion selector is 1 Use new settings For all other functions it m...

Page 39: ...t settings 0x75 0x65 0x0C 0x04 0x04 0x08 Function 0x02 Desc count 0x00 0xF8 0xF3 Reply Field 1 ACK NACK 0x75 0x65 0x0C 0x0D 0x04 0xF1 Echo cmd 0x08 Error code 0x00 Reply Field 2 Current IMU Message Format 0x09 0x80 Desc count 0x02 1st Descriptor 0x03 Rate Dec 0x000A 2nd Descriptor 0x04 Rate Dec 0x000A 0x98 0x0F Copy Paste version of the commands Use New Settings 7565 0C0A 0A08 0102 0400 0A05 000A ...

Page 40: ...n Base rates vary from device to device The GNSS base rate for the 3DM GX5 is 4 The device checks that all descriptors are valid prior to executing this command If any of the descriptors are invalid for the GNSS data descriptor set a NACK will be returned and the message format will be unchanged The descriptor array only needs to be provided if the function selector is 1 Use new settings For all o...

Page 41: ...ad back current set tings 0x75 0x65 0x0C 0x04 0x04 0x09 Function 0x02 Desc count 0x00 0xF9 0xF3 Reply Field 1 ACK NACK 0x75 0x65 0x0C 0x0D 0x04 0xF1 Echo cmd 0x09 Error code 0x00 Reply Field 2 Current GNSS Message Format 0x09 0x81 Desc count 0x02 1st Descriptor 0x03 Data Rate 0x0004 2nd Descriptor 0x05 Data Rate 0x0004 0x8D 0xFE Copy Paste version of the commands Use New Settings 7565 0C0A 0A09 01...

Page 42: ...fault settings The device selector can be 0x01 IMU 0x03 Estimation Filter The enable flag can be either 0x00 Disable the selected stream 0x01 Enable the selected stream default Field Format Field Length Field Descriptor Field Data Command 0x05 0x11 U8 Function Selector U8 Device Selector U8 New Enable Flag Reply Field 1 ACK NACK 0x04 0xF1 U8 Echo the command descriptor U8 Error code 0 ACK non zero...

Page 43: ...3DM GX5 35 DCP Manual OFF Stream OFF 0x00 Reply ACK NACK 0x75 0x65 0x0C 0x04 0x04 0xF1 Echo cmd 0x11 Error code 0x00 0xF0 0xCC Copy Paste version of the 1st command 7565 0C05 0511 0101 0104 1A 43 ...

Page 44: ...total for all constellations 0 Number of available channels from reply message For each constellation you wish to configure include the following sub fields Constellation ID 0 GPS G1 G32 1 SBAS S120 S158 2 Galileo E1 E36 3 BeiDou B1 B37 5 QZSS Q1 Q5 6 GLONASS R1 R32 Constellation Enable 0x00 Disable 0x01 Enable Number of tracking channels number of reserved channels for all constellations must tot...

Page 45: ...Do not use this equipment under any circumstances for safety of life applications Field Format Field Length Field Descriptor Field Data Command 6 6 N 0x21 U8 Function selector U16 Maximum channels to use U8 Count of constellations to configure N N U8 Constellation ID U8 Enable Disable U8 Reserved channel count U8 Maximum channels U16 Constellation Option Flags Reply Field 1 ACK NACK 0x04 0xF1 U8 e...

Page 46: ...0x65 0x0C 0x12 0x12 0x21 Function 0x01 Max Ch 0x0020 GNSS Count 0x02 1st GNSS ID GPS 0x00 Enable 0x01 Resrvd Ch 0x08 Max Ch 0x10 Options 0x0000 2nd GNSS ID GLNS 0x06 Enable 0x01 Resrvd Ch 0x08 Max Ch 0x0E Options 0x0000 0x84 0x5A Reply Field ACK NACK 0x75 0x65 0x0C 0x04 0x04 0xF1 Echo cmd 0x21 Error code 0x00 0x00 0xEC Copy Paste version of the command 7565 0C12 1221 0100 2002 0001 0810 0000 0601 ...

Page 47: ...0x0004 Apply integrity information For each satellite you wish to INCLUDE from SBAS corrections Satellite PRN to include Field Format Field Length Field Descriptor Field Data Command 7 2 N 0x21 U8 Function selector U8 SBAS Enable Disable U16 SBAS Option Flags U8 Count of Satellite PRN to include N N U16 Satellite PRN Reply Field 1 ACK NACK 0x04 0xF1 U8 echo the command descriptor U8 error code 0 A...

Page 48: ... Field Data MSB LSB Command 0x75 0x65 0x0C 0x0B 0x0B 0x22 Function 0x01 SBAS En 0x01 Options 0x0003 PRN Cnt 0x02 1st PRN Exc PRN 0x0078 2nd PRN Exc Prn 0x0079 0x16 0x5C Reply Field ACK NACK 0x75 0x65 0x0C 0x04 0x04 0xF1 Echo cmd 0x22 Error code 0x00 0x01 0xEE Copy Paste version of the command 7565 0C0B 0B22 0101 0003 0200 7800 7916 5C 48 ...

Page 49: ...ows the device to determine if the last GNSS information saved is still fresh enough to improve the TTFF Possible function selector values 0x01 Use new settings 0x02 Read back current settings 0x03 Save current settings as startup settings 0x04 Load saved startup settings 0x05 Reset to factory default settings Possible assisted fix options 0x00 No assisted fix default 0x01 Enable assisted fix Poss...

Page 50: ...er power up if GNSS Assist was enabled when the device was powered off Sending this message will reset the clock to the current time so that the GNSS receiver can get a lock on satellites based on the information it had when it was powered off This will help reduce the time to first fix TTFF Possible function selector values 0x01 Use new values 0x02 Read back current values GNSS Assist Time Update...

Page 51: ...der Command Reply Fields Checksum Sync1 Sync2 Desc Set Payload Length Field Length Field Desc Field Data MSB LSB Command 0x75 0x65 0x0C 0x11 0x11 0x24 Function 0x01 TOW 47382 21 Week 1921 Accuracy 5 0 Reply Field ACK NACK 0x75 0x65 0x0C 0x04 0x04 0xF1 Echo cmd 0x24 Error code 0x00 0x03 0xF2 51 ...

Page 52: ...cur as all settings are written to non volatile memory Field Format Field Length Field Descriptor Field Data Command 0x03 0x30 U8 Function selector Reply ACK NACK 0x04 0xF1 U8 echo the command byte U8 error code 0 ACK non zero NACK Examples MIP Packet Header Command Reply Fields Checksum Sync1 Sync2 Desc Set Payload Length Field Length Field Desc Field Data MSB LSB Command Save All 0x75 0x65 0x0C ...

Page 53: ...eld Descriptor Field Data Command 0x0F 0x37 U8 Function selector float X Accel Bias Value float Y Accel Bias Value float Z Accel Bias Value Reply Field 1 ACK NACK 0x04 0xF1 U8 echo the command byte U8 error code 0 ACK non zero NACK Reply Field 2 Function 2 0x0E 0x9A float Current X Accel Bias Value float Current Y Accel Bias Value float Current Z Accel Bias Value Examples MIP Packet Header Command...

Page 54: ...scriptor Field Data Command 0x0F 0x38 U8 Function selector float X Gyro Bias Value float Y Gyro Bias Value float Z Gyro Bias Value Reply Field 1 ACK NACK 0x04 0xF1 U8 echo the command byte U8 error code 0 ACK non zero NACK Reply Field 2 Function 2 0x0E 0x9B float Current X Gyro Bias Value float Current Y Gyro Bias Value float Current Z Gyro Bias Value Examples MIP Packet Header Command Reply Field...

Page 55: ...cution of the Capture Gyro Bias operation Field Format Field Length Field Descriptor Field Data Command 0x04 0x39 U16 Sampling Time milliseconds Reply Field 1 ACK NACK 0x04 0xF1 U8 echo the command byte U8 error code 0 ACK non zero NACK Reply Field 2 Function 2 0x0E 0x9B float Current X Gyro Bias Value float Current Y Gyro Bias Value float Current Z Gyro Bias Value Examples MIP Packet Header Comma...

Page 56: ...ssible function selector values 0x01 Apply new settings 0x02 Read back current settings 0x03 Save current settings as startup settings 0x04 Load saved startup settings 0x05 Load factory default settings 0x06 Apply new settings with no ACK NACK reply Default values Hard Iron Offset 0 0 0 Field Format Field Length Field Descriptor Field Data Command 0x0F 0x3A U8 Function selector float X Hard Iron O...

Page 57: ... capture these values in run The matrix is applied to the scaled magnetometer vector prior to output Possible function selector values 0x01 Apply new settings 0x02 Read back current settings 0x03 Save current settings as startup settings 0x04 Load saved startup settings 0x05 Load factory default settings 0x06 Apply new settings with no ACK NACK reply Default values Soft Iron Compensation Matrix id...

Page 58: ...x0C 0x27 0x27 0x3B Fctn Apply 0x01 Comp Matrix 0x3F800000 0x00000000 0x00000000 0x00000000 0x3F800000 0x00000000 0x00000000 0x00000000 0x3F800000 0xAD 0x59 Reply Field ACK NACK 0x75 0x65 0x0C 0x12 0x04 0xF1 Echo cmd 0x3B Error code 0x00 0x1A 0x20 Copy Paste version of the command 7565 0C27 273B 013F 8000 0000 0000 0000 0000 0000 0000 003F 8000 0000 0000 0000 0000 0000 0000 003F 8000 00AD 59 58 ...

Page 59: ...mpensation 0x01 Enable the Coning and Sculling compensation default Field Format Field Length Field Descriptor Field Data Command 0x10 0x3E U8 Function selector U8 New Coning and Sculling enable setting Reply Field 1 ACK NACK 0x04 0xF1 U8 echo the command descriptor U8 error code 0 ACK non zero NACK Reply Field 2 Function 2 0x03 0x9E U8 Current Coning and Sculling enable setting Examples MIP Packe...

Page 60: ...and then there is a 0 25 second delay before the device will respond to commands at the new BAUD rate Field Format Field Length Field Descriptor Field Data Command 0x07 0x40 U8 Function selector U32 New baud rate Reply Field 1 ACK NACK 0x04 0xF1 U8 Echo the command descriptor U8 Error code 0 ACK non zero NACK Reply Field 2 Function 2 0x06 0x87 U32 Current baud rate Examples MIP Packet Header Comma...

Page 61: ...1 Apply new settings 0x02 Read back current settings 0x03 Save current settings as startup settings 0x04 Load saved startup settings 0x05 Reset to factory default settings Possible data descriptors 0x04 Scaled accel data 0x05 Scaled gyro data 0x06 Scaled mag data if applicable 0x17 Scaled pressure data Possible filter enable values 0x01 Apply low pass filter 0x00 Do not apply low pass filter Manua...

Page 62: ...utoff Frequency 0x00 Auto 0x01 Manual U16 3 dB Cutoff Frequency Hz U8 Reserved Examples MIP Packet Header Command Reply Fields Checksum Sync1 Sync2 Desc Set Payload Length Field Length Field Desc Field Data MSB LSB Command 0x75 0x65 0x0C 0x09 0x09 0x50 Fctn Apply 0x01 Scaled Accel 0x04 Enable Filter 0x01 Automatic Cutoff Configuration 0x00 3dB Cutoff Frequency ignored for automatic cutoff configur...

Page 63: ...tude outputs Matrix Euler Quaternion Up and North that are independent of the Estimation Filter outputs The CF outputs are cal culated using the same algorithm as the 3DM GX5 series of Inertial Devices This provides drop in compatibility that duplicates the performance of the 3DM GX5 It is highly recommended that you transition to the EF outputs as they will provide better performance as well as c...

Page 64: ... may be one of two selectable formats basic and diagnostic The reply data for this command is device specific The reply is specified by two parameters in the command The first parameter is the model number which for the 3DM GX5 35 is always 6252 0x186C That is followed by a status selector byte which determines the type of data structure returned In the case of the 3DM GX5 35 there are two selecto...

Page 65: ... non zero NACK Reply Field 2 Basic Device Status Field 0x0F 0x90 Binary Offset Description Data Type Units 0 Echo of the Device Model Num ber U16 N A 2 Echo of the selector byte U8 N A 3 Status Flags Reserved U32 N A 7 System State U16 N A 9 System Timer since start up U32 millisecond Reply Field 2 Diagnostic Device Status Field 0x4F 0x90 Binary Offset Description Data Type Units 0 Echo of the Dev...

Page 66: ...9 Number of overruns when read ing from com port U32 count 53 Number of IMU message pars ing errors U32 count 57 Total IMU messages read U32 count 61 Last IMU message read Sys tem Timer U32 millisecond 65 Number of GNSS message parsing errors U32 count 69 Total GNSS messages read U32 count 73 Last GNSS message read Sys tem Timer U32 millisecond Examples MIP Packet Header Command Reply Fields Check...

Page 67: ...x75 0x65 0x0C 0x15 0x04 0xF1 Echo cmd 0x64 Error code 0x00 Reply Field 2 Device Status Basic Status struc ture 0x0D 0x90 Echo Model 6252 0x186C Echo selector 0x01 Additonaldata 0x 0x Copy Paste version of the command 7565 0C05 0564 186B 01D8 7F 67 ...

Page 68: ...K NACK just prior to switching to the new protocol For all functions except 0x01 use new settings the new communications mode value is ignored Possible function selector values 0x01 Apply new settings 0x02 Read back current settings 0x03 Save current settings as startup settings 0x04 Load saved startup settings 0x05 Reset to factory default settings Possible Communications Modes Value Mode Protoco...

Page 69: ... 0x00 0x62 0x7C Copy Paste version of the command 7565 7F04 0410 0102 74BD 4 4 Error Codes Error Name Error Value Description MIP Unknown Command 0x01 The command descriptor is not supported by this device MIP Invalid Checksum 0x02 An otherwise complete packet has a bad checksum MIP Invalid Parameter 0x03 One or more parameters in the packet are invalid This can refer to a value that is outside th...

Page 70: ...ude of the acceleration that the 3DM GX5 35 is exposed to This quantity is fully temperature compensated and scaled into physical units of g 1 g 9 80665 m sec 2 It is expressed in terms of the 3DM GX5 35 s local coordinate system Field Format Field Length Data Descriptor Message Data 14 0x0E 0x04 Binary Off set Description Data Type Units 0 X Accel float g 4 Y Accel float g 8 Z Accel float g 70 ...

Page 71: ...et Description Data Type Units 0 X Gyro float Radians second 4 Y Gyro float Radians second 8 Z Gyro float Radians second 5 1 3 Scaled Magnetometer Vector 0x80 0x06 Description Scaled Magnetometer Vector Notes This is a vector which gives the instantaneous magnetometer direction and mag nitude This quantity is fully temperature compensated and scaled into units of Gauss It is expressed in terms of ...

Page 72: ...ion Data Type Units 0 Ambient Pressure float milliBar 5 1 5 Delta Theta Vector 0x80 0x07 Description Time integral of angular rate Notes This is a vector which gives the time integral of angular rate over the interval set by the IMU message format command It is expressed in terms of the 3DM GX5 35 s local coordinate system in units of radians Field Format Field Length Data Descriptor Message Data ...

Page 73: ...tational constant 9 80665 m sec2 Field Format Field Length Data Descriptor Message Data 14 0x0E 0x08 Binary Offset Description Data Type Units 0 X Delta Velocity float g seconds 4 Y Delta Velocity float g seconds 8 Z Delta Velocity float g seconds 5 1 7 CF Orientation Matrix 0x80 0x09 Description 3 x 3 Orientation Matrix M This value is produced by the Complementary Filter fusion algorithm Notes T...

Page 74: ...nary earth fixed coordinate system Field Format Field Length Data Descriptor Message Data 38 0x26 0x09 Binary Off set Description Data Type Units 0 M1 1 Float N A 4 M1 2 Float N A 8 M1 3 Float N A 12 M2 1 Float N A 16 M2 2 Float N A 20 M2 3 Float N A 24 M3 1 Float N A 28 M3 2 Float N A 32 M3 3 Float N A 74 ...

Page 75: ...M GX5 with respect to the fixed earth coordinate system Q satisfies the following equation V_ILi Q 1 V_E Q Where V_IL is a vector expressed in the 3DM GX5 s local coordinate system V_E is the same vector expressed in the stationary earth fixed coordinate system Field Format Field Length Data Descriptor Message Data 18 0x12 0x0A Binary Off set Description Data Type Units 0 q0 Float N A 4 q1 Float N...

Page 76: ...ter fusion algorithm Notes This is a three component vector containing the Roll Pitch and Yaw angles in radi ans It is computed by the IMU AHRS from the orientation matrix M Field Format Field Length Data Descriptor Message Data 14 0x0E 0x0C Binary Offset Description Data Type Units 0 Roll Float Radians 4 Pitch Float Radians 8 Yaw Float Radians 76 ...

Page 77: ...eter When transient magnetic interference is present Magnetometer will be subject to transient possibly large errors The IMU AHRS complementary filter computes Stabilized North which is its estimate of the geo magnetic field vector only even thought the system may be exposed to transient magnetic interference Note that sustained magnetic interference cannot be adequately compensated for by the com...

Page 78: ...inear acceleration Field Format Field Length Data Descriptor Message Data 14 0x0E 0x11 Binary Offset Description Data Type Units 0 X Stab Accel Float G 4 Y Stab Accel Float G 8 Z Stab Accel Float G 5 1 12 GPS Correlation Timestamp 0x80 0x12 Description GPS correlation timestamp Notes This timestamp has three fields Double GPS TOW U16 GPS Week number U16 Timestamp flags Timestamp Status Flags Bit0 ...

Page 79: ...ck is being used for the PPS The fractional portion of the GPS TOW represents the amount of time that has elapsed from the last PPS If the GPS loses signal the GPS and IMU timestamps become free running and will slowly drift away from each other If the timestamp clocks have drifted apart then there will be a jump in the timestamp when the PPS Beacon Good reasserts reflect ing the amount of drift o...

Page 80: ...lid 0x0008 Horizontal Accuracy Valid 0x0010 Vertical Accuracy Valid Field Format Field Length Data Descriptor Message Data 44 0x2C 0x03 Binary Offset Description Data Type Units 0 Latitude Double Decimal Degrees 8 Longitude Double Decimal Degrees 16 Height above Ellipsoid Double Meters 24 Height above MSL Double Meters 32 Horizontal Accuracy Float Meters 36 Vertical Accuracy Float Meters 40 Valid ...

Page 81: ...d Flag Mapping 0x0001 ECEF Position Valid 0x0002 Position Accuracy Valid Field Format Field Length Data Descriptor Message Data 32 0x20 0x04 Binary Offset Description Data Type Units 0 X Position Double Meters 8 Y Position Double Meters 16 Z Position Double Meters 24 Position Accuracy Float Meters 28 Valid Flags U16 See Notes 81 ...

Page 82: ...peed Accuracy Valid 0x0020 Heading Accuracy Valid Field Format Field Length Data Descriptor Message Data 36 0x24 0x05 Binary Offset Description Data Type Units 0 North Float Meters Sec 4 East Float Meters Sec 8 Down Float Meters Sec 12 Speed Float Meters Sec 16 Ground Speed Float Meters Sec 20 Heading Float Decimal Degrees 24 Speed Accuracy Float Meters Sec 28 Heading Accuracy Float Decimal Degree...

Page 83: ... Mapping 0x0001 ECEF Velocity Valid 0x0002 Velocity Accuracy Valid Field Format Field Length Data Descriptor Message Data 20 0x14 0x06 Binary Offset Description Data Type Units 0 X Velocity Float Meters Sec 4 Y Velocity Float Meters Sec 8 Z Velocity Float Meters Sec 12 Velocity Accuracy Float Meters Sec 16 Valid Flags U16 See Notes 83 ...

Page 84: ...Valid 0x0010 TDOP Valid 0x0020 NDOP Valid 0x0040 EDOP Valid Field Format Field Length Data Descriptor Message Data 32 0x20 0x07 Binary Offset Description Data Type Units 0 Geometric DOP Float N A 4 Position DOP Float N A 8 Horizontal DOP Float N A 12 Vertical DOP Float N A 16 Time DOP Float N A 20 Northing DOP Float N A 24 Easting DOP Float N A 28 Valid Flags U16 See Notes 84 ...

Page 85: ...id 0x0002 Time Valid Field Format Field Length Data Descriptor Message Data 15 0x0F 0x08 Binary Offset Description Data Type Units 0 Year U16 Years 1999 2099 2 Month U8 Months 1 12 3 Day U8 Days 1 31 4 Hour U8 Hours 0 23 5 Minute U8 Minutes 0 59 6 Second U8 Seconds 0 59 7 Millisecond U32 Milliseconds 11 Valid Flags U16 See Notes 85 ...

Page 86: ... Double Seconds 8 Week Number U16 N A 10 Valid Flags U16 See Notes 5 2 8 Clock Information 0x81 0x0A Description Detailed information about the GNSS Clock Notes Valid Flag Mapping 0x0001 Bias Valid 0x0002 Drift Valid 0x0004 Accuracy Estimate Valid Field Format Field Length Data Descriptor Message Data 28 0x1C 0x0A Binary Offset Description Data Type Units 0 Clock Bias Double Seconds 8 Clock Drift ...

Page 87: ... Fix Types values are 0x00 3D Fix 0x01 2D Fix 0x02 Time Only 0x03 None 0x04 Invalid Possible Fix Flags are 0x0001 SBAS Corrections Used 0x0002 Differential DGNSS Corrections Used Field Format Field Length Data Descriptor Message Data 8 0x08 0x0B Binary Offset Description Data Type Units 0 Fix Type U8 See Notes 1 Number of SVs used for solution U8 Count 2 Fix Flags Reserved U16 N A 4 Valid Flags U1...

Page 88: ...tio Valid 0x0010 Azimuth Valid 0x0020 Elevation Valid 0x0040 SV Flags Valid SV Flag Mapping 0x0001 SV Used for Navigation 0x0002 SV Healthy Field Format Field Length Data Descriptor Message Data 14 0x0E 0x0C Binary Offset Description Data Type Units 0 Channel U8 Channel Number 1 Space Vehicle ID U8 SV ID Number 2 Carrier to Noise Ratio U16 dBHz 4 Azimuth S16 Integer Degrees 6 Elevation S16 Integer...

Page 89: ...tate values 0x00 Sensor Off 0x01 Sensor On 0x02 Sensor State Unknown Possible Antenna State values 0x01 Antenna Init 0x02 Antenna Short 0x03 Antenna Open 0x04 Antenna Good 0x05 Antenna State Unknown Possible Antenna Power values 0x00 Antenna Off 0x01 Antenna On 0x02 Antenna Power Unknown Field Format Field Length Data Descriptor Message Data 7 0x07 0x0D Binary Offset Description Data Type Units 0 ...

Page 90: ...Base Station Status Values 0 UDRE Scale Factor 1 0 1 UDRE Scale Factor 0 75 2 UDRE Scale Factor 0 5 3 UDRE Scale Factor 0 3 4 UDRE Scale Factor 0 2 5 UDRE Scale Factor 0 1 6 Reference Station Transmission Not Monitored 7 Reference Station Not Working Note UDRE User Differential Range Error Field Format Field Length Data Descriptor Message Data 14 0x0E 0x0E Binary Offset Description Data Type Units...

Page 91: ...d Flag Mapping 0x0001 SV ID Valid 0x0002 Age Valid 0x0004 Pseudorange Correction Valid 0x0008 Pseudorange Rate Correction Valid Field Format Field Length Data Descriptor Message Data 17 0x11 0x0F Binary Offset Description Data Type Units 0 Space Vehicle ID U8 SV ID Number 1 Age Float Seconds 5 Pseudorange Correction Float Meters 9 Pseudorange Rate Correction Float Meters Sec 13 Valid Flags U16 See...

Page 92: ...ommand or data that is contained in the field data The descriptor can only be from the set of descriptors specified by the descriptor set byte in the header The field data can be anything but is always rigidly defined The definition of a descriptor is fundamentally described in a h file that corresponds to the descriptor set that the descriptor belongs to LORD Sensing provides a Packet Builder fun...

Page 93: ... Fields Checksum Sync1 Sync2 Desc Set Payload Length Field Length Cmd Desc Field Data MSB LSB Command Field 1 Set IMU Message Format 0x75 0x65 0x0C 0x20 0x0D 0x08 Function 0x01 Desc count 0x03 GPS TS Descriptor 0x12 Rate Dec 0x000A Accel Descriptor 0x04 Rate Dec 0x000A Ang Rate Descriptor 0x05 Rate Dec 0x000A Command Field 2 Set EF Message Format 0x03 0x01 0x00 0x4C 0xFF Reply Field 1 ACK NACK 0x7...

Page 94: ...35 These modes are primarily advanced modes for programmers to allow the 3DM GX5 35 to be used in unusual situations where the normal functions of the 3DM GX5 35 are bypassed IMPORTANT When you switch modes you are switching to a new device protocol EXCEPT for two commands the Device Communications Mode and commands Those commands are always available regardless of which mode you are in For exampl...

Page 95: ...ping packets or losing data is not usually an issue on these systems What can be an issue is latency that is when the buffer is not emptied by the application in a timely manner In the worst case the buffer is being filled faster than it is emptied and the application operates with increasingly old data which causes runaway latency It is important to monitor the incoming data buffer to make sure y...

Page 96: ... is ready and as long as the interrupts are preemptive the processor will fetch every byte received Using the interrupt routine to fill a ring buffer makes the most efficient use of an MCU and makes it easier to write your application main line code This is essentially what drivers in operating systems do 96 ...

Page 97: ...is is undesirable and there may be a requirement for a fixed packet structure so that each data packet is exactly the same A fixed packet structure allows you to find data fields by fixed offsets rather than parsing the packet for each field A fixed packet structure is easily achieved with MIP packet protocol by simply making sure the data rate for each data quantity is the same The order of the d...

Page 98: ...byte aids in sorting an incoming packet stream into one or more command reply packet queues and or data packet queues A typical multithreaded environment will have a command control thread and one or more data processing threads Each of these threads can be fed with individual incoming packet queues each containing packets that only pertain to that thread sorted by descriptor set Packet queues can...

Page 99: ...e technology refers to the ability of a filter to selectively trust a given measurement more or less based on a trust threshold when com pared to another measurement that is used as a reference Sensors that have estimation filters that rely on adaptive control elements to improve their estimations are refered to as an AKF AHRS Attitude and Heading Reference System A navigation device consisting of...

Page 100: ...Complementary Filter CF A term commonly used for an algorithm that combines the readings from multiple sensors to produce a solution These filters typically contain simple filtering elements to smooth out the effects of sensor over ranging or anomalies in the magnetic field Configuration A general term applied to the sensor indicating how it is set up for data acquisition It includes settings such...

Page 101: ...describe the orientation of an object in space such as the x y and z or pitch roll and yaw Euler angles can also represent a sequence of three elemental rotations around the axes of a coordinate system Extended Kalman Filter EKF Used generically to describe any estimation filter based on the Kalman Filter model that can handle non linear elements Almost all inertial estimation filters are fundamen...

Page 102: ...he current mean and covariance to produces an estimate of a system s current state that is statistically more precise than what a single measurement could pro duce L LOS Line of Sight Describes the ideal condition between transmitting and receiving devices in a wireless network As stated it means they are in view of each other with no obstructions M Magnetometer A type of sensor that measures the ...

Page 103: ...up or down with respect to the sensor or platform frame origin Position The spatial location of an object PVA acronym for Position Velocity Attitude Q Quaternion Mathematical notation for representing orientation and rotation of objects in three dimensions with respect to the fixed earth coordinate quaternion Quaternions convert the axis angle representation of the object into four numbers and to ...

Page 104: ...ocess of taking measurements from a sensor or device Sampling rate rate at which the sensors are sampled Sampling Rate the frequency of sampling Sensor a device that physically or chemically reacts to environmental forces and conditions and produces a pre dictable electrical signal as a result Sigma In statistics sigma is the standard deviation from the mean of a data set Space Vehicle Information...

Page 105: ...t to time Also called speed W WAAS Wide Area Augmentation System An air navigation aid developed to allow aircraft to rely on GPS for all phases of flight including pre cision approaches to any airport WGS World Geodetic System a protocol for geo referencing such as WGS 84 Y Yaw In navigation yaw is what occurs when rotational force is applied at a distance forward or aft from the center of gravit...

Reviews: