Hi all, I'm using the BNO055 to get linear acceleration values. How ever when the sensor is at rest there is an offset in the linear acceleration. The offset occurrs only on the axis that is pointing in the direction of gravity. Let's say the sensor is on flat table, then the readings of the gravity vector provide a value of arround +9.8 m/s^2 for the z-axis. The linear acceleration of the z-axis provides a value of arround -0.2 m/s^2, whereas the other two axes provide a linear acceleration value of arround 0.1 m/^2. After rotating the sensor such that gravity vector in y-direction is arround +9.8m/s^2, the linear acceleration of the y-axis is arround -0.27 m/s^2, whereas the linear acceleration of the other two axes is around 0.01 m/s^2. The same happens if the gravity vector is negative, then the linear acceleration offset is in the positive direction. It seems like the linear acceleration has an offset in the opposite direction of gravity, when gravity is along a single sensor axis. Is there a way to compensate this offsets? As the offset value itself is not the same for all three axes.
... View more
I have a follow up question: How fast can an interrupt be retriggered after the host resets the INT pin? I know this depends on multiple factors. I have the following settings for the any-motino interrupt example: Any-motion threshold = 1 (LSB), any-motion duration = 0. When the sensor is moved, an interrupt is triggered. I read the INT_STA register, and then reset the INT pin. Then the INT pin gets raised and cleared again and so on while the sensor is moving. In the data sheet it says: The time difference between the successive acceleration signals depends on the selected bandwidth and equates to 1/(2*bandwidth) (t=1/(2*bw)). I'm running in NDOF mode, hence the unchangable bandwith is BW=62.5Hz. According to the statement above the time difference betweent 2 slop signal points is then 8ms. With an any-motion threshold of 0, there 1 or at most 2 slope signal points and the maximal time to trigger a interrupt would be 2*8ms=16ms (theoretically). However, when I measure the time how fast successive interrupts are generated, then I see that they are spaced approx. 250ms appart from each other? Why does it take that much time for an interrupt to be retriggered when the INT condition is still met (i.e. sensor still moving)?
... View more