I have been running an array of seven sensors connected to a feather M4 board through an I2C bus and when looking at the data, something seems to be wrong.
In fact for all the sensors the quaternion data seems to not be updated for long periods of time then it will start updating again for a little bit of time and then freeze again.
I'll join a graph of the data so you can see what i am talking about :
Here is the quaternion first and third value for three of my sensors (T1,T9, AR)
Does anyone know why it might happen ?
Thanks in advance
Thanks for your inquiry.
On page 100 of BNO055 datasheet it says "BNO055 I2C interface uses clock stretching". So please check if your M4 board supports I2C clock stretching or not. BNO055 values will not freeze internally. The quaternions always update at 100Hz and the values are available in the data registers for read.
Hello and thank you for your reply.
I have investigated the problem further and it turns out it was because the sensors were left in low power mode.
My guess is that the movements made with the sensors were not consequent enough and the low power mode was entered, which is why I would like to know what is the typical threshold value for this.
Thanks in advance
BNO055 can enter low power mode when no-motion interrupt happens. By default no-motion interrupt will be generated if BNO055 accelerometer measurements are within the threshold of 0x0A * 7.81mg = 78.1mg @+/-4g range for more than the amount of duration of 5s. Please refer to page 94 of BNO055 datasheet.
BNO055 can enter normal mode again from low power mode if any-motion interrupt happens. By default any-motion interrupt will be generated if BNO055 accelerometer measurements are more than the AM threhsold of 0x14 * 7.81mg = 156.2mg for more than the number of data points of (3 + 1 = 4) AM_DUR. Please refer to page 92 and 93 of BNO055 datasheet.