Register map V2¶
Table of Contents
Below is the draft version of the new register layout. This is not set in stone, we are open for discussion to deliver best possible product to our user.
We decided to split configuration registers for the sensor fusion and the GNSS.
Fusion Configuration Registers V2¶
Address |
Register Name |
Register Description |
|
General communication settings |
|
|
Broadcast rate settings |
|
|
Broadcast rate settings |
|
|
Broadcast rate settings |
|
|
Broadcast rate settings |
|
|
Broadcast rate settings |
|
|
Broadcast rate settings |
|
|
Broadcast rate settings |
|
|
Misc. settings |
|
|
Gyro 1 measurement range settings |
|
|
Bias trim for x-axis rate gyro 1 |
|
|
Bias trim for y-axis rate gyro 1 |
|
|
Bias trim for z-axis rate gyro 1 |
|
|
Gyro 2 measurement range settings |
|
|
Bias trim for x-axis rate gyro 2 |
|
|
Bias trim for y-axis rate gyro 2 |
|
|
Bias trim for z-axis rate gyro 2 |
|
|
Row 1, Column 1 of magnetometer 1 calibration matrix |
|
|
Row 1, Column 2 of magnetometer 1 calibration matrix |
|
|
Row 1, Column 3 of magnetometer 1 calibration matrix |
|
|
Row 2, Column 1 of magnetometer 1 calibration matrix |
|
|
Row 2, Column 2 of magnetometer 1 calibration matrix |
|
|
Row 2, Column 3 of magnetometer 1 calibration matrix |
|
|
Row 3, Column 1 of magnetometer 1 calibration matrix |
|
|
Row 3, Column 2 of magnetometer 1 calibration matrix |
|
|
Row 3, Column 3 of magnetometer 1 calibration matrix |
|
|
Magnetometer 1 X-axis bias |
|
|
Magnetometer 1 Y-axis bias |
|
|
Magnetometer 1 Z-axis bias |
|
|
Row 1, Column 1 of magnetometer 2 calibration matrix |
|
|
Row 1, Column 2 of magnetometer 2 calibration matrix |
|
|
Row 1, Column 3 of magnetometer 2 calibration matrix |
|
|
Row 2, Column 1 of magnetometer 2 calibration matrix |
|
|
Row 2, Column 2 of magnetometer 2 calibration matrix |
|
|
Row 2, Column 3 of magnetometer 2 calibration matrix |
|
|
Row 3, Column 1 of magnetometer 2 calibration matrix |
|
|
Row 3, Column 2 of magnetometer 2 calibration matrix |
|
|
Row 3, Column 3 of magnetometer 2 calibration matrix |
|
|
Magnetometer 2 X-axis bias |
|
|
Magnetometer 2 Y-axis bias |
|
|
Magnetometer 2 Z-axis bias |
|
|
Accelerometer 1 measurement range settings |
|
|
Row 1, Column 1 of accelerometer 1 calibration matrix |
|
|
Row 1, Column 2 of accelerometer 1 calibration matrix |
|
|
Row 1, Column 3 of accelerometer 1 calibration matrix |
|
|
Row 2, Column 1 of accelerometer 1 calibration matrix |
|
|
Row 2, Column 2 of accelerometer 1 calibration matrix |
|
|
Row 2, Column 3 of accelerometer 1 calibration matrix |
|
|
Row 3, Column 1 of accelerometer 1 calibration matrix |
|
|
Row 3, Column 2 of accelerometer 1 calibration matrix |
|
|
Row 3, Column 3 of accelerometer 1 calibration matrix |
|
|
Accelerometer 1 X-axis bias |
|
|
Accelerometer 1 Y-axis bias |
|
|
Accelerometer 1 Z-axis bias |
CREG_COM_SETTINGS¶
Address: 0 | 0x00 | 0b00000000¶
The CREG_COM_SETTINGS register is used to set the board’s serial port baud rate and to
enable (disable) the automatic transmission of sensor data and estimated states (telemetry).
Byte 3 |
Byte 2 |
||||||||||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
BAUD_RATE |
Reserved |
||||||||||||||
Byte 1 |
Byte 0 |
||||||||||||||
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Reserved |
Reserved |
||||||||||||||
Bits |
Name |
Description |
||||||||||||||||||||||||||||
|
BAUD_RATE |
Sets the baud rate of the board’s main serial port:
|
||||||||||||||||||||||||||||
|
Reserved |
These bits are reserved for future use |
CREG_COM_RATES1¶
Address: 1 | 0x01 | 0b00000001¶
The CREG_COM_RATES1 register sets desired telemetry transmission rates in \(Hz\)
for raw accelerometer 1, gyro 1, gyro 2 and magnetometer 1 data.
If the specified rate is \(0\), then no data is transmitted.
Byte 3 |
Byte 2 |
||||||||||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
RAW_ACCEL_1_RATE |
RAW_GYRO_1_RATE |
||||||||||||||
Byte 1 |
Byte 0 |
||||||||||||||
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
RAW_GYRO_2_RATE |
RAW_MAG_1_RATE |
||||||||||||||
Bits |
Name |
Description |
|
RAW_ACCEL_1_RATE |
Specifies the desired raw accelerometer 1 data broadcast rate in Hz. The data is stored as an unsigned 8-bit integer, yielding a maximum rate of 255 Hz. |
|
RAW_GYRO_1_RATE |
Specifies the desired raw gyro 1 data broadcast rate in Hz. The data is stored as an unsigned 8-bit integer, yielding a maximum rate of 255 Hz. data broadcast rate in Hz. |
|
RAW_GYRO_2_RATE |
Specifies the desired raw gyro 2 data broadcast rate in Hz. The data is stored as an unsigned 8-bit integer, yielding a maximum rate of 255 Hz. |
|
RAW_MAG_1_RATE |
Specifies the desired raw magnetometer 1 data broadcast rate in Hz. The data is stored as an unsigned 8-bit integer, yielding a maximum rate of 255 Hz. |
Raw accelerometer 1 data is stored in registers 92 to 94. When the RAW_ACCEL_1_RATE rate is greater than 0, the accelerometer 1 data is transmitted in a batch packet of length 3 with start address 92.
Raw rate gyro 1 data is stored in registers 86 to 88. When the RAW_GYRO_1_RATE rate is greater than 0, the rate gyro 1 data is transmitted in a batch packet of length 3 with start address 86.
Raw rate gyro 2 data is stored in registers 89 to 91. When the RAW_GYRO_2_RATE rate is greater than 0, the rate gyro 2 data is transmitted in a batch packet of length 3 with start address 89.
Raw magnetometer 1 data is stored in registers 95 to 98. When the RAW_MAG_1_RATE rate is greater than 0, the magnetometer 1 data is transmitted in a batch packet of length 3 with start address 95.
If the ALL_RAW_RATE (“all raw data rate”) bitfield in CREG_COM_RATES2 is greater than 0, then all gyro 1, gyro 2, accelerometer 1, magnetometer 1, magnetometer 2 data will be transmitted together. The rates in the CREG_COM_RATES1 registers are then ignored and not used.
CREG_COM_RATES2¶
Address: 2 | 0x02 | 0b00000010¶
The CREG_COM_RATES2 register sets desired telemetry transmission rates for the magnetometer 2, all raw data, and temperature data rate. The ALL_RAW_RATE setting has higher priority over the individual raw sensor data settings, i.e. whenever this bitfield is set, then the individual raw sensor settings are ignored and not used. If the specified rate is 0, then no data is transmitted.
Byte 3 |
Byte 2 |
||||||||||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
TEMP_RATE |
RAW_MAG_2_RATE |
||||||||||||||
Byte 1 |
Byte 0 |
||||||||||||||
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Reserved |
ALL_RAW_RATE |
||||||||||||||
Bits |
Name |
Description |
|
TEMP_RATE |
Specifies the desired broadcast rate for temperature data. The data is stored as an unsigned 8-bit integer, yielding a maximum rate of 255 Hz. |
|
RAW_MAG_2_RATE |
Specifies the desired raw magnetometer 2 data broadcast rate in Hz. The data is stored as an unsigned 8-bit integer, yielding a maximum rate of 255 Hz. |
|
Reserved |
These bits are reserved for future use. |
|
ALL_RAW_RATE |
Specifies the desired broadcast rate for all raw sensor data. If set, this overrides the broadcast rate setting for individual raw data broadcast rates. The data is stored as an unsigned 8-bit integer, yielding a maximum rate of 255 Hz. |
Temperature data is stored in registers 102 and 103. If the temperature broadcast rate is greater than 0, then temperature data will be sent in a batch packet of length 2 with start address 102. If all raw data is being transmitted (as specified by byte 3 of this register), then the temperature data will be transmitted as part of the raw batch packet at “all raw rate” instead of the raw temperature rate.
Raw magnetometer 2 data is stored in registers 99 to 101. When the RAW_MAG_2_RATE rate is greater than 0, the magnetometer 2 data is transmitted in a batch packet of length 3 with start address 99.
Raw sensor/temperature data occupies registers 86 through 103. If the ALL_RAW_RATE raw data broadcast rate is greater than 0, then all raw data and temperature data is sent in one batch packet of length 18, with start address 86.
CREG_COM_RATES3¶
Address: 3 | 0x03 | 0b00000011¶
The CREG_COM_RATES3 register sets desired telemetry transmission rates for processed sensor data for the sensors: the accelerometer 1, gyro 1, gyro 2, and magnetometer 1. If the specified rate is 0, then no data is transmitted.
Byte 3 |
Byte 2 |
||||||||||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
PROC_ACCEL_1_RATE |
PROC_GYRO_1_RATE |
||||||||||||||
Byte 1 |
Byte 0 |
||||||||||||||
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
PROC_GYRO_2_RATE |
PROC_MAG_1_RATE |
||||||||||||||
Bits |
Name |
Description |
|
PROC_ACCEL_1_RATE |
Specifies the desired broadcast rate for processed accelerometer 1 data. The data is stored as an unsigned 8-bit integer, yielding a maximum rate of 255 Hz. |
|
PROC_GYRO_1_RATE |
Specifies the desired broadcast rate for processed rate gyro 1 data. The data is stored as an unsigned 8-bit integer, yielding a maximum rate of 255 Hz. |
|
PROC_GYRO_2_RATE |
Specifies the desired broadcast rate for processed processed rate gyro 2 data. The data is stored as an unsigned 8-bit integer, yielding a maximum rate of 255 Hz. |
|
PROC_MAG_1_RATE |
Specifies the desired broadcast rate for processed magnetometer 1 data. The data is stored as an unsigned 8-bit integer, yielding a maximum rate of 255 Hz. |
Processed accelerometer 1 data is stored in registers 112 to 115. If the specified broadcast rate is greater than 0, then the data will be transmitted in a batch packet of length 4 and start address 112.
Processed rate gyro 1 data is stored in registers 104 to 107. If the specified broadcast rate is greater than 0, then the data will be transmitted in a batch packet of length 4 and start address 104.
Processed rate gyro 2 data is stored in registers 108 to 111. If the specified broadcast rate is greater than 0, then the data will be transmitted in a batch packet of length 4 and start address 108.
Processed magnetometer 1 data is stored in registers 116 to 119. If the specified broadcast rate is greater than 0, then the data will be transmitted in a batch packet of length 4 and start address 116.
If the ALL_PROC_RATE “all processed data broadcast rate” setting in the register CREG_COM_RATES4 is not zero, then the rates specified in the CREG_COM_RATES3 register are overridden.
CREG_COM_RATES4¶
Address: 4 | 0x04 | 0b00000100¶
The CREG_COM_RATES4 register defines the desired telemetry transmission rates for the processed data for the magnetometer 2, and for all processed data. The ALL_PROC_RATE setting has higher priority over the individual processed sensor data settings, i.e. whenever this bitfield is set, then the individual processed sensor transmission rate settings are ignored and not used. If the specified rate is 0, then no data is transmitted.
Byte 3 |
Byte 2 |
||||||||||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
PROC_MAG_2_RATE |
Reserved |
||||||||||||||
Byte 1 |
Byte 0 |
||||||||||||||
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Reserved |
ALL_PROC_RATE |
||||||||||||||
Bits |
Name |
Description |
|
PROC_MAG_2_RATE |
Specifies the desired broadcast rate for processed magnetometer 2 data. The data is stored as an unsigned 8-bit integer, yielding a maximum rate of 255 Hz. |
|
Reserved |
These bits are reserved for future use. |
|
Reserved |
These bits are reserved for future use. |
|
ALL_PROC_RATE |
Specifies the desired broadcast rate for raw all processed sensor data. If set, this overrides the broadcast rate setting for individual processed data broadcast rates. The data is stored as an unsigned 8-bit integer, yielding a maximum rate of 255 Hz. |
Processed magnetometer 2 data is stored in registers 121 dec to 125. If the specified broadcast rate is greater than 0, then the data will be transmitted in a batch packet of length 5 and start address 121 dec.
All processed data comprises registers 104 through 125 (a total of 22 registers). If ALL_PROC_RATE is non-zero, the processed data will be transmitted as a single packet of batch length 22, starting at address 104.
CREG_COM_RATES5¶
Address: 5 | 0x05 | 0b00000101¶
The CREG_COM_RATES5 register sets desired telemetry transmission rates for quaternions, Euler Angles, position, and velocity estimates. If the specified rate is 0, then no data is transmitted.
Byte 3 |
Byte 2 |
||||||||||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
QUAT_RATE |
EULER_RATE |
||||||||||||||
Byte 1 |
Byte 0 |
||||||||||||||
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
POSITION_RATE |
VELOCITY_RATE |
||||||||||||||
Bits |
Name |
Description |
|
QUAT_RATE |
Specifies the desired broadcast rate for quaternion data. The data is stored as an unsigned 8-bit integer, yielding a maximum rate of 255 Hz. |
|
EULER_RATE |
Specifies the desired broadcast rate for Euler Angle data. The data is stored as an unsigned 8-bit integer, yielding a maximum rate of 255 Hz. |
|
POSITION_RATE |
Specifies the desired broadcast rate position. The data is stored as an unsigned 8-bit integer, yielding a maximum rate of 255 Hz. |
|
VELOCITY_RATE |
Specifies the desired broadcast rate for velocity. The data is stored as an unsigned 8-bit integer, yielding a maximum rate of 255 Hz. |
Quaternion data is stored in registers 124 to 126. If the specified broadcast rate is greater than 0, then the data will be transmitted in a batch packet with length 3 and start address 124.
Euler Angle data is stored in registers 127 to 131. If the specified broadcast rate is greater than 0, then the data will be transmitted in a batch packet of length 5 and start address 127.
Position data is stored in registers 132 to 135. If the specified broadcast rate is greater than 0, then the data will be transmitted in a batch packet of length 4 and start address 132.
Velocity data is stored in registers 136 to 139. If the specified broadcast rate is greater than 0, then the data will be transmitted in a batch packet of length 4 and start address 136.
If the “pose broadcast rate” setting in register CREG_COM_RATES6 is not zero, then the rates specified by EULER_RATE and POSITION_RATE are overridden.
CREG_COM_RATES6¶
Address: 6 | 0x06 | 0b00000110¶
The CREG_COM_RATES6 register sets desired telemetry transmission rates for pose (Euler/position packet), health, and gyro bias estimates for the gyro 1 and gyro 2. If the specified rate is 0, then no data is transmitted.
Byte 3 |
Byte 2 |
||||||||||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
POSE_RATE |
Reserved |
HEALTH_RATE |
|||||||||||||
Byte 1 |
Byte 0 |
||||||||||||||
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
GYRO_BIAS_1_RATE |
GYRO_BIAS_2_RATE |
||||||||||||||
Bits |
Name |
Description |
||||||||||||||||||
|
POSE_RATE |
Specifies the desired broadcast rate for pose (Euler Angle and position) data. The data is stored as an unsigned 8-bit integer, yielding a maximum rate of 255 Hz. |
||||||||||||||||||
|
Reserved |
These bits are reserved for future use. |
||||||||||||||||||
|
HEALTH_RATE |
Specifies the desired broadcast rate for the sensor health packet.
|
||||||||||||||||||
|
GYRO_BIAS_1_RATE |
Specifies the desired broadcast rate for gyro 1 bias estimates. The data is stored as an unsigned 8-bit integer, yielding a maximum rate of 255 Hz. |
||||||||||||||||||
|
GYRO_BIAS_2_RATE |
Specifies the desired broadcast rate for gyro 2 bias estimates. The data is stored as an unsigned 8-bit integer, yielding a maximum rate of 255 Hz. |
Pose data (Euler Angles and position) is stored in registers 127 to 135. If the pose rate is greater than 0, then pose data will be transmitted in a batch packet with length 9 and start address 127.
Health data is stored in register address 85. If the health rate is not 0, then health data will be transmitted as a non-batch packet with address 85.
CREG_COM_RATES7¶
Address: 7 | 0x07 | 0b00000111¶
The CREG_COM_RATES7 register sets desired transmission rates for the Redshift Labs NMEA-style packets.
Byte 3 |
Byte 2 |
||||||||||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
NMEA_HEALTH_RATE |
NMEA_POSE_RATE |
NMEA_ATTITUDE_RATE |
NMEA_SENSOR_RATE |
||||||||||||
Byte 1 |
Byte 0 |
||||||||||||||
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
NMEA_RATES_RATE |
NMEA_GPS_POSE_RATE |
NMEA_QUAT_RATE |
Reserved |
||||||||||||
Bits |
Name |
Description |
||||||||||||||||||||||||||||||||||
|
NMEA_HEALTH_RATE |
Specifies the desired broadcast rate for Redshift Labs NMEA-style health packet.
|
||||||||||||||||||||||||||||||||||
|
NMEA_POSE_RATE |
Specifies the desired broadcast rate for Redshift Labs NMEA-style pose (Euler Angle/position) packet.
|
||||||||||||||||||||||||||||||||||
|
NMEA_ATTITUDE_RATE |
Specifies the desired broadcast rate for Redshift Labs NMEA-style attitude packet.
|
||||||||||||||||||||||||||||||||||
|
NMEA_SENSOR_RATE |
Specifies the desired broadcast rate for Redshift Labs NMEA-style sensor data packet.
|
||||||||||||||||||||||||||||||||||
|
NMEA_RATES_RATE |
Specifies the desired broadcast rate for Redshift Labs NMEA-style rate data packet.
|
||||||||||||||||||||||||||||||||||
|
NMEA_GPS_POSE_RATE |
Specifies the desired broadcast rate for Redshift Labs NMEA-style GPS pose packet.
|
||||||||||||||||||||||||||||||||||
|
NMEA_QUAT_RATE |
Specifies the desired broadcast rate for Redshift Labs NMEA-style quaternion packet.
|
||||||||||||||||||||||||||||||||||
|
Reserved |
These bits are reserved for future use. |
CREG_MISC_SETTINGS¶
Address: 8 | 0x08 | 0b00001000¶
This register contains miscellaneous filter and sensor control options.
Byte 3 |
Byte 2 |
||||||||||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
Reserved |
|||||||||||||||
Byte 1 |
Byte 0 |
||||||||||||||
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Reserved |
PPS |
Reserved |
ZG |
Q |
MAG1 |
MAG2 |
|||||||||
Bits |
Name |
Description |
|
Reserved |
These bits are reserved for future use. |
|
PPS |
If set, this bit causes the TX2 pin on the IO Expansion header to be used as the PPS input from an external GPS module. PPS pulses will then be used to synchronize the system clock to UTC time of day. |
|
Reserved |
These bits are reserved for future use. |
|
ZG |
If set, this bit causes the devicee to attempt to measure the rate gyro bias on startup. The sensor must be stationary on startup for this feature to work properly. |
|
Q |
If this bit is set, the sensor will run in quaternion mode instead of Euler Angle mode. |
|
MAG1 |
If set, the magnetometer 1 will be used in state updates. |
|
MAG2 |
If set, the magnetometer 2 will be used in state updates. |
CREG_GYRO_1_MEAS_RANGE¶
Address: 9 | 0x09 | 0b00001001¶
The CREG_GYRO_1_MEAS_RANGE register sets the desired measurement range for the gyro 1 sensor. If the rate is not set, then the default value of 2000 deg/s will be used as a measurement range.
Byte 3 |
Byte 2 |
||||||||||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
Reserved |
Reserved |
||||||||||||||
Byte 1 |
Byte 0 |
||||||||||||||
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Reserved |
Reserved |
MEAS_GYRO1 |
|||||||||||||
Bits |
Name |
Description |
||||||||||
|
Reserved |
These bits are reserved for future use. |
||||||||||
|
MEAS_GYRO1 |
Specifies the desired measurement range for the gyro 1 measurements.
|
CREG_GYRO_1_TRIM_X¶
Address: 10 | 0x0A | 0b00001010¶
This register sets the \(x\)-axis rate gyro 1 trim, which is used to add additional bias compensation for the rate gyros during calls to the ZERO_GYRO_BIAS command.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
GYRO_1_TRIM_X: 32-bit IEEE Floating Point Value |
|||||||||||||||
CREG_GYRO_1_TRIM_Y¶
Address: 11 | 0x0B | 0b00001011¶
This register sets the \(y\)-axis rate gyro 1 trim, which is used to add additional bias compensation for the rate gyros during calls to the ZERO_GYRO_BIAS command.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
GYRO_1_TRIM_Y: 32-bit IEEE Floating Point Value |
|||||||||||||||
CREG_GYRO_1_TRIM_Z¶
Address: 12 | 0x0C | 0b00001100¶
This register sets the \(z\)-axis rate gyro 1 trim, which is used to add additional bias compensation for the rate gyros during calls to the ZERO_GYRO_BIAS command.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
GYRO_1_TRIM_Z: 32-bit IEEE Floating Point Value |
|||||||||||||||
CREG_GYRO_2_MEAS_RANGE¶
Address: 13 | 0x0D | 0b00001101¶
The CREG_GYRO_2_MEAS_RANGE register sets the desired measurement range for the gyro 2 sensor. If the rate is not set, then the default value of 2000 deg/s will be used as a measurement range.
Byte 3 |
Byte 2 |
||||||||||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
Reserved |
Reserved |
||||||||||||||
Byte 1 |
Byte 0 |
||||||||||||||
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Reserved |
Reserved |
MEAS_GYRO2 |
|||||||||||||
Bits |
Name |
Description |
||||||||||
|
Reserved |
These bits are reserved for future use. |
||||||||||
|
MEAS_GYRO2 |
Specifies the desired measurement range for the gyro 2 measurements.
|
CREG_GYRO_2_TRIM_X¶
Address: 14 | 0x0E | 0b00001110¶
This register sets the \(x\)-axis rate gyro 2 trim, which is used to add additional bias compensation for the rate gyros during calls to the ZERO_GYRO_BIAS command.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
GYRO_2_TRIM_X: 32-bit IEEE Floating Point Value |
|||||||||||||||
CREG_GYRO_2_TRIM_Y¶
Address: 15 | 0x0F | 0b00001111¶
This register sets the \(y\)-axis rate gyro 2 trim, which is used to add additional bias compensation for the rate gyros during calls to the ZERO_GYRO_BIAS command.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
GYRO_2_TRIM_Y: 32-bit IEEE Floating Point Value |
|||||||||||||||
CREG_GYRO_2_TRIM_Z¶
Address: 16 | 0x10 | 0b00010000¶
This register sets the \(z\)-axis rate gyro 2 trim, which is used to add additional bias compensation for the rate gyros during calls to the ZERO_GYRO_BIAS command.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
GYRO_2_TRIM_Z: 32-bit IEEE Floating Point Value |
|||||||||||||||
CREG_MAG_1_CAL1_1 to CREG_MAG_1_CAL3_3¶
Address: 17 to 25 | 0x11 to 0x19 | 0b00010001 to 0b00011001¶
These registers store the 9 entries into a 3x3 matrix that is used to perform soft-iron calibration of the magnetometer 1 on the device. These terms can be computed by performing magnetometer calibration with the Redshift labs Serial Interface.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
MAG_1_CAL1_1: 32-bit IEEE Floating Point Value |
|||||||||||||||
MAG_1_CAL1_2: 32-bit IEEE Floating Point Value |
|||||||||||||||
MAG_1_CAL1_3: 32-bit IEEE Floating Point Value |
|||||||||||||||
MAG_1_CAL2_1: 32-bit IEEE Floating Point Value |
|||||||||||||||
MAG_1_CAL2_2: 32-bit IEEE Floating Point Value |
|||||||||||||||
MAG_1_CAL2_3: 32-bit IEEE Floating Point Value |
|||||||||||||||
MAG_1_CAL3_1: 32-bit IEEE Floating Point Value |
|||||||||||||||
MAG_1_CAL3_2: 32-bit IEEE Floating Point Value |
|||||||||||||||
MAG_1_CAL3_3: 32-bit IEEE Floating Point Value |
|||||||||||||||
CREG_MAG_1_BIAS_X¶
Address: 26 | 0x1A | 0b00011010¶
This register stores a bias term for the magnetometer 1 \(x\)-axis for hard-iron calibration. This term can be computed by performing magnetometer calibration with the Redshift labs Serial Interface.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
MAG_1_BIAS_X: 32-bit IEEE Floating Point Value |
|||||||||||||||
CREG_MAG_1_BIAS_Y¶
Address: 27 | 0x1B | 0b00011011¶
This register stores a bias term for the magnetometer 1 \(y\)-axis for hard-iron calibration. This term can be computed by performing magnetometer calibration with the Redshift labs Serial Interface.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
MAG_1_BIAS_Y: 32-bit IEEE Floating Point Value |
|||||||||||||||
CREG_MAG_1_BIAS_Z¶
Address: 28 | 0x1C | 0b00011100¶
This register stores a bias term for the magnetometer 1 \(z\)-axis for hard-iron calibration. This term can be computed by performing magnetometer calibration with the Redshift labs Serial Interface.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
MAG_1_BIAS_Z: 32-bit IEEE Floating Point Value |
|||||||||||||||
CREG_MAG_2_CAL1_1 to CREG_MAG_2_CAL3_3¶
Address: 29 to 37 | 0x1D to 0x25 | 0b00011101 to 0b00100101¶
These registers store the 9 entries into a 3x3 matrix that is used to perform soft-iron calibration of the magnetometer 2 on the device. These terms can be computed by performing magnetometer calibration with the Redshift labs Serial Interface.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
MAG_2_CAL1_1: 32-bit IEEE Floating Point Value |
|||||||||||||||
MAG_2_CAL1_2: 32-bit IEEE Floating Point Value |
|||||||||||||||
MAG_2_CAL1_3: 32-bit IEEE Floating Point Value |
|||||||||||||||
MAG_2_CAL2_1: 32-bit IEEE Floating Point Value |
|||||||||||||||
MAG_2_CAL2_2: 32-bit IEEE Floating Point Value |
|||||||||||||||
MAG_2_CAL2_3: 32-bit IEEE Floating Point Value |
|||||||||||||||
MAG_2_CAL3_1: 32-bit IEEE Floating Point Value |
|||||||||||||||
MAG_2_CAL3_2: 32-bit IEEE Floating Point Value |
|||||||||||||||
MAG_2_CAL3_3: 32-bit IEEE Floating Point Value |
|||||||||||||||
CREG_MAG_2_BIAS_X¶
Address: 38 | 0x26 | 0b00100110¶
This register stores a bias term for the magnetometer 2 \(x\)-axis for hard-iron calibration. This term can be computed by performing magnetometer calibration with the Redshift labs Serial Interface.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
MAG_2_BIAS_X: 32-bit IEEE Floating Point Value |
|||||||||||||||
CREG_MAG_2_BIAS_Y¶
Address: 39 | 0x27 | 0b00100111¶
This register stores a bias term for the magnetometer 2 \(y\)-axis for hard-iron calibration. This term can be computed by performing magnetometer calibration with the Redshift labs Serial Interface.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
MAG_2_BIAS_Y: 32-bit IEEE Floating Point Value |
|||||||||||||||
CREG_MAG_2_BIAS_Z¶
Address: 40 | 0x28 | 0b00101000¶
This register stores a bias term for the magnetometer 2 \(z\)-axis for hard-iron calibration. This term can be computed by performing magnetometer calibration with the Redshift labs Serial Interface.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
MAG_2_BIAS_Z: 32-bit IEEE Floating Point Value |
|||||||||||||||
CREG_ACCEL_1_MEAS_RANGE¶
Address: 41 | 0x29 | 0b00101001¶
The CREG_ACCEL_1_MEAS_RANGE register sets the desired measurement range for the accelerometer 1. If the rate is not set, then the default value of the +-2 g will be used as a measurement range.
Byte 3 |
Byte 2 |
||||||||||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
Reserved |
Reserved |
||||||||||||||
Byte 1 |
Byte 0 |
||||||||||||||
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Reserved |
Reserved |
MEAS_ACC1 |
|||||||||||||
Bits |
Name |
Description |
||||||||||
|
Reserved |
These bits are reserved for future use. |
||||||||||
|
MEAS_ACC1 |
Specifies the desired measurement range for the gyro 2 measurements.
|
CREG_ACCEL_1_CAL1_1 to CREG_ACCEL_1_CAL3_3¶
Addresses: 42 to 50 | 0x2A to 0x32 | 0b00101010 to 0b00110010¶
These registers store the 9 entries into a 3x3 matrix that are used to compensate for cross axis misalignment.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
ACCEL_1_CAL1_1: 32-bit IEEE Floating Point Value |
|||||||||||||||
ACCEL_1_CAL1_2: 32-bit IEEE Floating Point Value |
|||||||||||||||
ACCEL_1_CAL1_3: 32-bit IEEE Floating Point Value |
|||||||||||||||
ACCEL_1_CAL2_1: 32-bit IEEE Floating Point Value |
|||||||||||||||
ACCEL_1_CAL2_2: 32-bit IEEE Floating Point Value |
|||||||||||||||
ACCEL_1_CAL2_3: 32-bit IEEE Floating Point Value |
|||||||||||||||
ACCEL_1_CAL3_1: 32-bit IEEE Floating Point Value |
|||||||||||||||
ACCEL_1_CAL3_2: 32-bit IEEE Floating Point Value |
|||||||||||||||
ACCEL_1_CAL3_3: 32-bit IEEE Floating Point Value |
|||||||||||||||
CREG_ACCEL_1_BIAS_X¶
Address: 51 | 0x33 | 0b00110011¶
This register stores a bias term for the accelerometer 1 \(x\)-axis for bias calibration. This term can be computed by performing calibrate accelerometers command within the Redshift labs Serial Interface.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
ACCEL_1_BIAS_X: 32-bit IEEE Floating Point Value |
|||||||||||||||
CREG_ACCEL_1_BIAS_Y¶
Address: 52 | 0x34 | 0b00110100¶
This register stores a bias term for the accelerometer 1 \(y\)-axis for bias calibration. This term can be computed by performing calibrate accelerometers command within the Redshift labs Serial Interface.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
ACCEL_1_BIAS_Y: 32-bit IEEE Floating Point Value |
|||||||||||||||
CREG_ACCEL_1_BIAS_Z¶
Address: 53 | 0x35 | 0b00110101¶
This register stores a bias term for the accelerometer 1 \(z\)-axis for bias calibration. This term can be computed by performing calibrate accelerometers command within the Redshift labs Serial Interface.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
ACCEL_1_BIAS_Z: 32-bit IEEE Floating Point Value |
|||||||||||||||
GNSS configuration registers V2¶
Address |
Register Name |
Register Description |
|
GNSS broadcast rate settings |
|
|
GPS north position to consider position 0 |
|
|
GPS east position to consider position 0 |
|
|
GPS altitude to consider position 0 |
CREG_GNSS_COM_RATES¶
Address: 69 | 0x45 | 0b01000101¶
This register stores the GNSS (including GPS) transmission settings.
Byte 3 |
Byte 2 |
||||||||||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
Reserved |
GPS_BAUD |
Reserved |
|||||||||||||
Byte 1 |
Byte 0 |
||||||||||||||
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Reserved |
GPS |
Reserved |
SAT |
Reserved |
|||||||||||
Bits |
Name |
Description |
||||||||||||||
|
Reserved |
These bits are reserved for future use |
||||||||||||||
|
GPS_BAUD |
Sets the baud rate of the UM7 auxiliary serial port:
|
||||||||||||||
|
Reserved |
These bits are reserved for future use |
||||||||||||||
|
GPS |
If set, this bit causes GPS data to be transmitted automatically whenever new GPS data is received. GPS data is stored in registers 125 to 130. These registers will be transmitted in a batch packet of length 6 starting at address 125. |
||||||||||||||
|
Reserved |
These bits are reserved for future use |
||||||||||||||
|
SAT |
If set, this bit causes satellite details to be transmitted whenever they are provided by the GPS. Satellite information is stored in registers 131 to 136. These registers will be transmitted in a batch packet of length 6 beginning at address 131. |
||||||||||||||
|
Reserved |
These bits are reserved for future use. |
Fusion data registers V2¶
|
Information about the health and status of the board |
|
|
Raw X and Y measurement data for the gyro 1 |
|
|
Raw Z measurement data for the gyro 1 |
|
|
Measurement time for the raw gyro 1 |
|
|
Raw X and Y measurement data for the gyro 2 |
|
|
Raw Z measurement data for the gyro 2 |
|
|
Measurement time for the raw gyro 2 |
|
|
Raw X and Y measurement data for the accelerometer 1 |
|
|
Raw Z measurement data for the accelerometer 1 |
|
|
Measurement time for the raw accelerometer 1 |
|
|
Raw X measurement data for the magnetometer 1 |
|
|
Raw Y measurement data for the magnetometer 1 |
|
|
Raw Z measurement data for the magnetometer 1 |
|
|
Measurement time for the raw magnetometer 1 |
|
|
Raw X and Y measurement data for the magnetometer 2 |
|
|
Raw Z measurement data for the magnetometer 2 |
|
|
Measurement time for the raw magnetometer 2 |
|
|
Temperature data |
|
|
Time at which temperature data was acquired |
|
|
Processed x-axis rate data for the gyro 1 |
|
|
Processed y-axis rate data for the gyro 1 |
|
|
Processed z-axis rate data for the gyro 1 |
|
|
Gyro 1 processed measurement data time stamp |
|
|
Processed x-axis rate data for the gyro 2 |
|
|
Processed y-axis rate data for the gyro 2 |
|
|
Processed z-axis rate data for the gyro 2 |
|
|
Gyro 2 processed measurement data time stamp |
|
|
Processed x-axis data for the accelerometer 1 |
|
|
Processed y-axis data for the accelerometer 1 |
|
|
Processed z-axis data for the accelerometer 1 |
|
|
Accelerometer 1 processed measurement data time stamp |
|
|
Processed x-axis data for the magnetometer 1 |
|
|
Processed y-axis data for the magnetometer 1 |
|
|
Processed z-axis data for the magnetometer 1 |
|
|
Magnetometer 1 computed norm for the measurement |
|
|
Magnetometer 1 processed measurement data time stamp |
|
|
Processed x-axis data for the magnetometer 2 |
|
|
Processed y-axis data for the magnetometer 2 |
|
|
Processed z-axis data for the magnetometer 2 |
|
|
Magnetometer 2 computed norm for the measurement |
|
|
Magnetometer 2 processed measurement data time stamp |
|
|
Quaternion elements A and B |
|
|
Quaternion elements C and D |
|
|
Quaternion estimate time stamp |
|
|
Roll and pitch angles |
|
|
Yaw angle |
|
|
Roll and pitch angle rates |
|
|
Yaw rate |
|
|
Time of estimates for the Euler attitude and rates |
|
|
North position in meters |
|
|
East position in meters |
|
|
Altitude in meters |
|
|
Time of estimated position |
|
|
North velocity |
|
|
East velocity |
|
|
Altitude velocity |
|
|
Time of velocity estimate |
|
|
Gyro 1 x-axis bias estimate |
|
|
Gyro 1 y-axis bias estimate |
|
|
Gyro 1 z-axis bias estimate |
|
|
Gyro 2 x-axis bias estimate |
|
|
Gyro 2 y-axis bias estimate |
|
|
Gyro 2 z-axis bias estimate |
DREG_HEALTH¶
Address: 85 | 0x55 | 0b01010101¶
The health register reports the current status of the sensors on the board. Monitoring the health register is the easiest way to watch for other problems that could affect the behavior of the board, status of the sensors.
The analogous to the health register, the status of the GPS signal can be monitored in the DREG_GPS_HEALTH
Byte 3 |
|||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
Reserved |
|||||||
Byte 2 |
|||||||
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
Reserved |
|||||||
Byte 1 |
|||||||
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
Reserved |
OVF |
||||||
Byte 0 |
|||||||
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
ACC1_N |
MAG1_N |
MAG2_N |
ACCEL1 |
GYRO1 |
GYRO2 |
MAG1 |
MAG2 |
Bits |
Name |
Description |
|
Reserved |
These bits are reserved for future use. |
|
OVF |
Overflow bit. This bit is set if the board is attempting to transmit data over the serial port faster than is allowed given the baud-rate. If this bit is set, reduce broadcast rates in the COM_RATES registers. |
|
ACC1_N |
This bit is set if the sensor detects that the norm of the accelerometer measurement is too far away from 1G to be used (i.e. during aggressive acceleration or high vibration). |
|
MAG1_N |
This bit is set if the sensor detects that the norm of the magnetometer measurement for the magnetometer 1 is too far away from 1.0 to be trusted. Usually indicates bad calibration, local field distortions, or both. |
|
MAG2_N |
This bit is set if the sensor detects that the norm of the magnetometer measurement for the magnetometer 2 is too far away from 1.0 to be trusted. Usually indicates bad calibration, local field distortions, or both. |
|
ACCEL1 |
This bit will be set if the accelerometer 1 fails to initialize on startup. |
|
GYRO1 |
This bit will be set if the rate gyro 1 fails to initialize on startup. |
|
GYRO2 |
This bit will be set if the rate gyro 2 fails to initialize on startup. |
|
MAG1 |
This bit will be set if the magnetometer 1 fails to initialize on startup. |
|
MAG2 |
This bit will be set if the magnetometer 1 fails to initialize on startup. |
DREG_GYRO_1_PROC_X¶
Address: 104 | 0x68 | 0b01101000¶
Contains the actual measured angular rate from the gyro 1 for the \(x\) axis in degrees/sec after calibration has been applied.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
GYRO_1_PROC_X in degrees / sec (32-bit IEEE Floating Point Value) |
|||||||||||||||
DREG_GYRO_1_PROC_Y¶
Address: 105 | 0x69 | 0b01101001¶
Contains the actual measured angular rate from the gyro 1 for the \(y\) axis in degrees/sec after calibration has been applied.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
GYRO_1_PROC_Y in degrees / sec (32-bit IEEE Floating Point Value) |
|||||||||||||||
DREG_GYRO_1_PROC_Z¶
Address: 106 | 0x6A | 0b01101010¶
Contains the actual measured angular rate from the gyro 1 for the \(z\) axis in degrees/sec after calibration has been applied.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
GYRO_1_PROC_Z in degrees / sec (32-bit IEEE Floating Point Value) |
|||||||||||||||
DREG_GYRO_2_PROC_X¶
Address: 108 | 0x6C | 0b01101100¶
Contains the actual measured angular rate from the gyro 2 for the \(x\) axis in degrees/sec after calibration has been applied.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
GYRO_2_PROC_X in degrees / sec (32-bit IEEE Floating Point Value) |
|||||||||||||||
DREG_GYRO_2_PROC_Y¶
Address: 109 | 0x6D | 0b01101101¶
Contains the actual measured angular rate from the gyro 2 for the \(y\) axis in degrees/sec after calibration has been applied.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
GYRO_2_PROC_Y in degrees / sec (32-bit IEEE Floating Point Value) |
|||||||||||||||
DREG_GYRO_2_PROC_Z¶
Address: 110 | 0x6E | 0b01101110¶
Contains the actual measured angular rate from the gyro 2 for the \(z\) axis in degrees/sec after calibration has been applied.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
GYRO_2_PROC_Z in degrees / sec (32-bit IEEE Floating Point Value) |
|||||||||||||||
DREG_ACCEL_1_PROC_X¶
Address: 112 | 0x70 | 0b01110000¶
Contains the actual measured acceleration from the accelerometer 1 for the \(x\) axis in \(g\) after calibration has been applied.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
ACCEL_1_PROC_X: Acceleration X in \(g\), 32-bit IEEE Floating Point Value |
|||||||||||||||
DREG_ACCEL_1_PROC_Y¶
Address: 113 | 0x71 | 0b01110001¶
Contains the actual measured acceleration from the accelerometer 1 for the \(y\) axis in \(g\) after calibration has been applied.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
ACCEL_1_PROC_Y: Acceleration Y in \(g\), 32-bit IEEE Floating Point Value |
|||||||||||||||
DREG_ACCEL_1_PROC_Z¶
Address: 114 | 0x72 | 0b01110010¶
Contains the actual measured acceleration from the accelerometer 1 for the \(z\) axis in \(g\) after calibration has been applied.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
ACCEL_1_PROC_Z: Acceleration Z in \(g\), 32-bit IEEE Floating Point Value |
|||||||||||||||
DREG_ACCEL_1_PROC_TIME¶
Address: 115 | 0x73 | 0b01110011¶
Contains the time at which the last acceleration data from the accelerometer 1 was measured.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
ACCEL_1_PROC_TIME: Accelerometer 1 timestamp, 32-bit IEEE Floating Point Value |
|||||||||||||||
DREG_MAG_1_PROC_X¶
Address: 116 | 0x74 | 0b01110100¶
Contains the actual measured magnetic field from the magnetometer 1 for the \(x\) axis in \(mT\) after calibration has been applied.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
MAG_1_PROC_X: Magnetometer X in \(mT\) (32-bit IEEE Floating Point Value) |
|||||||||||||||
DREG_MAG_1_PROC_Y¶
Address: 117 | 0x75 | 0b01110101¶
Contains the actual measured magnetic field from the magnetometer 1 for the \(y\) axis in \(mT\) after calibration has been applied.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
MAG_1_PROC_Y: Magnetometer Y in \(mT\) (32-bit IEEE Floating Point Value) |
|||||||||||||||
DREG_MAG_1_PROC_Z¶
Address: 118 | 0x76 | 0b01110110¶
Contains the actual measured magnetic field from the magnetometer 1 for the \(z\) axis in \(mT\) after calibration has been applied.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
MAG_1_PROC_Z: Magnetometer Z in \(mT\) (32-bit IEEE Floating Point Value) |
|||||||||||||||
DREG_MAG_1_NORM¶
Address: 119 | 0x77 | 0b01110111¶
Contains the L2-norm (magnetic norm) for the measured magnetic field from the magnetometer 1 computed over the calibrated values.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
MAG_1_NORM: Magnetic norm (32-bit IEEE Floating Point Value) |
|||||||||||||||
DREG_MAG_2_PROC_X¶
Address: 121 | 0x79 | 0b01111001¶
Contains the actual measured magnetic field from the magnetometer 2 for the \(x\) axis in \(mT\) after calibration has been applied.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
MAG_2_PROC_X: Magnetometer X in \(mT\) (32-bit IEEE Floating Point Value) |
|||||||||||||||
DREG_MAG_2_PROC_Y¶
Address: 122 | 0x7A | 0b01111010¶
Contains the actual measured magnetic field from the magnetometer 2 for the \(y\) axis in \(mT\) after calibration has been applied.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
MAG_2_PROC_Y: Magnetometer Y in \(mT\) (32-bit IEEE Floating Point Value) |
|||||||||||||||
DREG_MAG_2_PROC_Z¶
Address: 123 | 0x7B | 0b01111011¶
Contains the actual measured magnetic field from the magnetometer 2 for the \(z\) axis in \(mT\) after calibration has been applied.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
MAG_2_PROC_Z: Magnetometer Z in \(mT\) (32-bit IEEE Floating Point Value) |
|||||||||||||||
DREG_MAG_2_NORM¶
Address: 124 | 0x7C | 0b01111100¶
Contains the L2-norm (magnetic norm) for the measured magnetic field from the magnetometer 2 computed over the calibrated values.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
MAG_2_NORM: Magnetic norm (32-bit IEEE Floating Point Value) |
|||||||||||||||
DREG_QUAT_AB¶
Address: 126 | 0x7E | 0b01111110¶
Contains the first two components (\(a\) and \(b\)) of the estimated quaternion attitude.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
QUAT_A: Quaternion A |
QUAT_B: Quaternion B |
||||||||||||||
Bits |
Name |
Description |
|
QUAT_A Quaternion A |
First quaternion component. Stored as a 16-bit signed integer. To get the actual value, divide by 29789.09091. |
|
QUAT_B Quaternion B |
Second quaternion component. Stored as a 16-bit signed integer. To get the actual value, divide by 29789.09091. |
DREG_QUAT_CD¶
Address: 127 | 0x7F | 0b01111111¶
Contains the second two components (\(c\) and \(d\)) of the estimated quaternion attitude.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
QUAT_C: Quaternion C |
QUAT_D: Quaternion D |
||||||||||||||
Bits |
Name |
Description |
|
QUAT_C Quaternion C |
Third quaternion component. Stored as a 16-bit signed integer. To get the actual value, divide by 29789.09091. |
|
QUAT_D Quaternion D |
Fourth quaternion component. Stored as a 16-bit signed integer. To get the actual value, divide by 29789.09091. |
DREG_EULER_PHI_THETA¶
Address: 129 | 0x81 | 0b10000001¶
Contains the pitch and roll angle estimates.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
PHI: Phi (roll) |
THETA: Theta (Pitch) |
||||||||||||||
Bits |
Name |
Description |
|
Phi (roll) |
Roll angle. Stored as a 16-bit signed integer. To get the actual value, divide by 91.02222. |
|
Theta (pitch) |
Pitch angle. Stored as a 16-bit signed integer. To get the actual value, divide by 91.02222. |
DREG_EULER_PSI¶
Address: 130 | 0x82 | 0b10000010¶
Contains the yaw angle estimate.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
PSI: Psi (yaw) |
Reserved |
||||||||||||||
Bits |
Name |
Description |
|
Psi (yaw) |
Yaw angle. Stored as a 16-bit signed integer. To get the actual value, divide by 91.02222. |
|
Reserved |
These bits are reserved for future use. |
DREG_EULER_PHI_THETA_DOT¶
Address: 131 | 0x83 | 0b10000011¶
Contains the pitch and roll rate estimates.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
PHI_DOT: Roll rate |
THETA_DOT: Pitch rate |
||||||||||||||
Bits |
Name |
Description |
|
Roll rate |
Roll rate. Stored as a 16-bit signed integer. To get the actual value, divide by 16.0. |
|
Pitch rate |
Pitch rate. Stored as a 16-bit signed integer. To get the actual value, divide by 16.0. |
DREG_EULER_PSI_DOT¶
Address: 132 | 0x84 | 0b10000100¶
Contains the yaw rate estimate.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
PSI_DOT: Yaw rate |
Reserved |
||||||||||||||
Bits |
Name |
Description |
|
Yaw rate |
Yaw rate. Stored as a 16-bit signed integer. To get the actual value, divide by 16.0. |
|
Reserved |
These bits are reserved for future use. |
GNSS data registers V2¶
|
GPS health status |
|
|
GPS latitude |
|
|
GPS longitude |
|
|
GPS altitude |
|
|
GPS course |
|
|
GPS speed |
|
|
GPS time (UTC time of day in seconds) |
|
|
GPS satellite information |
|
|
GPS satellite information |
|
|
GPS satellite information |
|
|
GPS satellite information |
|
|
GPS satellite information |
|
|
GPS satellite information |
DREG_GPS_HEALTH¶
Address: 151 | 0x97 | 0b10010111¶
The GPS health register reports the current status of the GPS module. Monitoring the health register is the easiest way to monitor the quality of the GPS.
Byte 3 |
|||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
SATS_USED |
HDOP |
||||||
Byte 2 |
|||||||
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
HDOP |
|||||||
Byte 1 |
|||||||
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
SATS_IN_VIEW |
Reserved |
||||||
Byte 0 |
|||||||
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Reserved |
GPS |
||||||
Bits |
Name |
Description |
|
SATS_USED |
Reports the number of satellites used in the position solution. |
|
HDOP |
Reports the horizontal dilution of precision (HDOP) reported by the GPS. The actual HDOP value is equal to the contents of the HDOP bits divided by 10. |
|
SATS_IN_VIEW |
Reports the number of satellites in view. |
|
Reserved |
These bits are reserved for future use. |
|
GPS |
This bit is set if the GPS fails to send a packet for more than two seconds. If a GPS packet is ever received, this bit is cleared. |
DREG_GPS_SAT_1_2¶
Address: 158 | 0x9E | 0b10011110¶
Contains satellite ID and signal-to-noise ratio (SNR) for satellites 1 and 2.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
Sat 1 ID |
Sat 1 SNR |
Sat 2 ID |
Sat 2 SNR |
||||||||||||
Bits |
Name |
Description |
|
Sat 1 ID |
Satellite ID |
|
Sat 1 SNR |
Signal-to-Noise Ratio of satellite as reported by GPS receiver. |
|
Sat 2 ID |
Satellite ID |
|
Sat 2 SNR |
Signal-to-Noise Ratio of satellite as reported by GPS receiver. |
DREG_GPS_SAT_3_4¶
Address: 159 | 0x9F | 0b10011111¶
Contains satellite ID and signal-to-noise ratio (SNR) for satellites 3 and 4.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
Sat 3 ID |
Sat 3 SNR |
Sat 4 ID |
Sat 4 SNR |
||||||||||||
Bits |
Name |
Description |
|
Sat 3 ID |
Satellite ID |
|
Sat 3 SNR |
Signal-to-Noise Ratio of satellite as reported by GPS receiver. |
|
Sat 4 ID |
Satellite ID |
|
Sat 4 SNR |
Signal-to-Noise Ratio of satellite as reported by GPS receiver. |
DREG_GPS_SAT_5_6¶
Address: 160 | 0xA0 | 0b10100000¶
Contains satellite ID and signal-to-noise ratio (SNR) for satellites 5 and 6.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
Sat 5 ID |
Sat 5 SNR |
Sat 6 ID |
Sat 6 SNR |
||||||||||||
Bits |
Name |
Description |
|
Sat 5 ID |
Satellite ID |
|
Sat 5 SNR |
Signal-to-Noise Ratio of satellite as reported by GPS receiver. |
|
Sat 6 ID |
Satellite ID |
|
Sat 6 SNR |
Signal-to-Noise Ratio of satellite as reported by GPS receiver. |
DREG_GPS_SAT_7_8¶
Address: 161 | 0xA1 | 0b10100001¶
Contains satellite ID and signal-to-noise ratio (SNR) for satellites 7 and 8.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
Sat 7 ID |
Sat 7 SNR |
Sat 8 ID |
Sat 8 SNR |
||||||||||||
Bits |
Name |
Description |
|
Sat 7 ID |
Satellite ID |
|
Sat 7 SNR |
Signal-to-Noise Ratio of satellite as reported by GPS receiver. |
|
Sat 8 ID |
Satellite ID |
|
Sat 8 SNR |
Signal-to-Noise Ratio of satellite as reported by GPS receiver. |
DREG_GPS_SAT_9_10¶
Address: 162 | 0xA2 | 0b10100010¶
Contains satellite ID and signal-to-noise ratio (SNR) for satellites 9 and 10.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
Sat 9 ID |
Sat 9 SNR |
Sat 10 ID |
Sat 10 SNR |
||||||||||||
Bits |
Name |
Description |
|
Sat 9 ID |
Satellite ID |
|
Sat 9 SNR |
Signal-to-Noise Ratio of satellite as reported by GPS receiver. |
|
Sat 10 ID |
Satellite ID |
|
Sat 10 SNR |
Signal-to-Noise Ratio of satellite as reported by GPS receiver. |
DREG_GPS_SAT_11_12¶
Address: 163 | 0xA3 | 0b10100011¶
Contains satellite ID and signal-to-noise ratio (SNR) for satellites 11 and 12.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
Sat 11 ID |
Sat 11 SNR |
Sat 12 ID |
Sat 12 SNR |
||||||||||||
Bits |
Name |
Description |
|
Sat 11 ID |
Satellite ID |
|
Sat 11 SNR |
Signal-to-Noise Ratio of satellite as reported by GPS receiver. |
|
Sat 12 ID |
Satellite ID |
|
Sat 12 SNR |
Signal-to-Noise Ratio of satellite as reported by GPS receiver. |
Commands V2¶
Address |
Register Name |
Register Description |
|
Current firmware build identifier. |
|
|
Current firmware build version. |
|
|
Write all current configuration settings to flash |
|
|
Reset all settings to factory defaults |
|
|
Causes the rate gyro biases to be calibrated. |
|
|
||
|
Sets the current GPS location as position \((0,0)\) |
|
|
Sets the magnetometer 1 reference vector |
|
|
Calibrates the accelerometer biases |
|
|
Resets the sensor fusion algorithm |
|
|
Enable zero velocity update rule |
|
|
Fusion output is only Euler angles |
|
|
Fusion output is only the orientation quaternion |
|
|
||
|
||
|
Execute built-in self tests and report the results |
|
|
||
|
Enable data from the GNSS in the fusion algorithm |
|
|
||
|
||
|
||
|
||
|
Board unique ID 1 |
|
|
Board unique ID 2 |
|
|
Protocol version |
GET_FW_BUILD_VERSION¶
Address: 171 | 0xAB | 0b10101011¶
Firmware build version provides the unique identifier of the firmware programmed in the board. A response is four bytes long and identifies major and minor build version, and the build number.
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
||||||||||||
31 |
30 |
… |
24 |
23 |
22 |
… |
16 |
15 |
14 |
… |
8 |
7 |
6 |
… |
0 |
VERSION_MAJOR |
VERSION_MINOR |
BUILD_ID |
|||||||||||||
Bits |
Name |
Description |
|
VERSION_MAJOR |
8-bit unsigned integer major version number |
|
VERSION_MINOR |
8-bit unsigned integer minor version number |
|
BUILD_ID |
16-bit unsigned integer build ID number |
FLASH_COMMIT¶
Address: 172 | 0xAC | 0b10101100¶
Causes the board to write all configuration settings to FLASH so that are stored in the non-volatile memory and remain when the power is cycled.
RESET_TO_FACTORY¶
Address: 173 | 0xAD | 0b10101101¶
Causes the board to load default factory settings.
ZERO_GYROS¶
Address: 174 | 0xAE | 0b10101110¶
Causes the board to measure the gyro outputs and set the output trim registers to compensate for any non-zero bias. The board should be kept stationary while the zero operation is underway.
SET_HOME_POSITION¶
Address: 176 | 0xB0 | 0b10110000¶
Sets the current GPS latitude, longitude, and altitude as the home position. All future positions will be referenced to the current GPS position.
SET_MAG_REFERENCE¶
Address: 177 | 0xB1 | 0b10110001¶
Sets the current yaw heading position as north.
CALIBRATE_ACCELEROMETERS¶
Address: 178 | 0xB2 | 0b10110010¶
Reboots the board and performs a crude calibration on the accelerometers. Best performed on a flat surface.
RESET_FUSION¶
Address: 179 | 0xB3 | 0b10110011¶
Resets the sensor fusion algorithm.
ENABLE_ZUPT¶
Address: 180 | 0xB4 | 0b10110100¶
Enable zero velocity update.
EULER_MODE¶
Address: 181 | 0xB5 | 0b10110101¶
Enable as fusion output Euler angles only.
QUATERNION_MODE¶
Address: 182 | 0xB6 | 0b10110110¶
Enable as fusion output orientation quaternion only.
ENABLE_RT_CALIBRATION¶
Address: 183 | 0xB7 | 0b10110111¶
Starts RT calibration of the board.
EN_MAG_ANOMALY_DETECTION¶
Address: 184 | 0xB8 | 0b10111000¶
Enables algorithm for anomaly detection.
RUN_SELF_TESTS¶
Address: 185 | 0xB9 | 0b10111001¶
Starts built-in self tests.
ENABLE_EXTERNAL_EVENT¶
Address: 186 | 0xBA | 0b10111010¶
TODO: add description
ENABLE_GNNS_FUSION¶
Address: 187 | 0xBB | 0b10111011¶
TODO: add description
ENABLE_USR_EULER_OUTPUT¶
Address: 188 | 0xBC | 0b10111100¶
TODO: add description
ENABLE_DEAD_RECKONING¶
Address: 189 | 0xBD | 0b10111101¶
TODO: add description
ENABLE_HEAVE_SWAY_SURGE¶
Address: 190 | 0xBE | 0b10111110¶
TODO: add description
ENABLE_UKF¶
Address: 191 | 0xBF | 0b10111111¶
TODO: add description
BOARD_UNIQUE_ID_1¶
Address: 253 | 0xFD | 0b11111101¶
First 32-bits of the 64-bits of the board unique identifier. Bits of the unique identifier cannot be modified by the user.
BOARD_UNIQUE_ID_2¶
Address: 254 | 0xFE | 0b11111110¶
Last 32-bits of the 64-bits of the board unique identifier. Bits of the unique identifier cannot be modified by the user.
PROTOCOL_VERSION¶
Address: 255 | 0xFF | 0b11111111¶
String version of the protocol.