We are experiencing an issue with the X gyroscope during burst mode reads on the ADIS16405. It seems to occur only when the X offset register has a negative value. In this scenario, the MSB of the 14-bit XGYRO_OUT register is not set for negative numbers, so they are interpreted as large positive values. We’ve attempted to isolate the issue using the following sequence of commands while the device was stationary on a lab bench:
Factory reset device (write 0xBE02)
Confirm the offset values are 0
Perform a precision calibration (write 0xBE10)
Read offset values (write 0x1A00, 0x1C00, 0x1E00), values were 0xFFC8, 0xFFC8, 0x0030
Read the gyro output registers (write 0x0400, 0x0600, 0x0800), values were 0x8002, 0x8000, 0x8000
Read registers again, values were 0xBFF9, 0x8009, 0xBFFD
Perform a burst read (write 0x3E00), gyro values were 0x8000, 0x8006, 0xBFF7
Perform a burst read again, values were 0x9FF8, 0xBFC6, 0x806B
It seems that the value 0x9FF8 should have been 0xBFF8.
The incorrect XGYRO_OUT values only begin occurring after a burst mode read has been completed. It doesn’t seem to matter if the last read is done as a burst or if the registers are read individually. All subsequent negative X values have the same problem, but the Y and Z values are fine. We are using 5 IMUs right now and this issue occurred on 3 of them. The other 2 devices had positive offset values. As an experiment, we wrote a negative value to the offset register of one of the working devices, and were able to reproduce the problem, so it appears to affect all units.
Does anyone know what is happening here?
I just wanted to let you know that we have been able to observe similar behavior on a unit in our lab and are working on a firmware update to address this behavior for future material. Once the firmware update is ready, we can support updating your ADIS16405 unit at the factory, but that would likely take at least 2 weeks and there are no options for upgrading firmware yourself. It might be easier to implement the bias correction function, inside of your firmware instead. I look forward to your response.
I am using the ADIS16460 and have the same problems.
Even when I do a factory reset and leave the gyro offset registers empty (X_GYRO_OFF = Y_GYRO_OFF = Z_GYRO_OFF = 0x0000), the readings from the x axis are heavily distorted. Here you see a plot of the gyroscope output at 25 Hz, blue: x-axis, red: y-axis, yellow: z-axis
I am using the IMU as reference sensor for a research project and therefore i really have to rely on the measurements.
Can you help me solving this problem?
Thank you, egrub
I appreciate you reaching out to me through this forum. pkern has taken over my responsibilities in this forum, as I have taken on new responsibilities.
Can you consider creating a new discussion for this, as the communication might get confusing. While the symptoms seems to be similar the ADIS16460's architecture is quite a bit different, so it might be helpful to treat this, independently. On top of that, these threads can get very difficult to follow, when they attempt to manage multiple cases, within other cases.
If you can post a new discussion, pkern might be helped by the following:
1. Is the misbehaving axis responsive to movement?
2. Are the other two axes responding to rotation appropriately, with the correct scale?
3. Are all 3 acceleroemeters responding gravity in an appropriate manner?
4. Is the data ready pulsing and the correct frequency?
5. Are you using any internal fitlering?
6. Can you share the data from the plot?
Good luck with this. I hope this helps.