UM7-LT sensor reports 1 degree / second rotation when still

I am using the UM7-LT orientation sensor. I have successfully programmed it, and have it reporting data as expected. The issue I am having is when the sensor is sitting perfectly still, it reports a clockwise rotation around the Z axis (up, out of the sensor) at a rate of about 1 degree per second. This is very consistent across power cycles and calibration commands. This is also consistent whether I set Euler angle reports or Quaternion reports. Perhaps I am not properly configuring the sensor on startup or during use?

I am performing the following steps on startup (every startup, I have not committed any settings to flash):

  1. CREG_COM_RATES[1-6] - 0x0[1-6], all data bytes set to 0 (no raw broadcasts)
  2. CREG_COM_RATES7 - 0x07, data bytes: 0x00, 0x40, 0x00, 0x00 (5 Hz attitude rate)
  3. CREG_MISC_SETTINGS - 0x08, data bytes: 0x00, 0x00, 0x00, 0x01 (disable Quaternion mode, enable magnetometer)
  4. ZERO_GYROS - 0xAD, all data bytes set to 0 (perform zero gyro calibration)
  5. SET_MAG_REFERENCE - 0xB0, all data bytes set to 0 (set magnetic reference)

I am very careful to ensure the sensor is on a stable surface, facing north, when booted. All help and guidance are welcome. Thank you.

Hello.

Does the drift continue indefinitely, or does it eventually settle at a presumably incorrect yaw heading?

- Patrick

It continues for at least a couple hours, and the rate seems consistent at 1 degree per second. I have only let it run for about 4 hours (sitting still on a tabletop), but it didn’t seem to change rate during that time. It appears to drift indefinitely. I have not found a way to counteract it.

Can you post more details about how you are reading the sensor, such as:

  • SPI or serial
  • broadcast or polling
  • which registers

Please try checking the DREG_HEALTH register and let us know what that reports. Also, have you tried calibrating the magnetometer?

- Patrick

Hi,

I am reading the broadcast sensor data over serial. I am using the following configurations, all programmed over serial using the binary interface:

  1. CREG_COM_RATES[1-6] - 0x0[1-6] - All data bytes set to zero, disable all raw broadcasts
  2. CREG_COM_RATES7 - 0x07 (7) - Set CHR NMEA Attitude rate to 5Hz (B2 = 0x40)
  3. CREG_MISC_SETTINGS - 0x08 (8) - Enable CHR NMEA Attitude mode and Magnetometer (B0 = 0x01)

During calibration (which I run every time the device is powered), I set the magnetometer reference:

  1. SET_MAG_REFERENCE - 0xB0 (176)

The DREG_HEALTH register has the MG_N bit set (“norm of the magnetometer measurement is too far away from 1.0 to be trusted”). I have not otherwise tried calibrating the magnetometer. Is there a process I could follow for that?

I recommend you try to follow the procedures demonstrated in these YouTube videos:

You can download the latest version of the Redshift Serial Interface Software from the UM7-LT’s product page under the “Resources” tab.

- Patrick

I’ll give it a go. Thank you.

Hi Patrick,

I ran the calibration. The imu is substantially more stable. Thank you for your help.

2 Likes