I've used BNO055 sensor for a while for our project, in a nutshell, it was a board that contained an MCU, bno055 module, the whole system was powered by a replaceable lithium battery. The sensor seemed to perform correctly until recently some problems emerged and made our application work inproperly. It's caused the Euler output data to be laggy which meant the read-out data has some delay related to its actual position in the real world, the phenomena could be observed more easily when sensor position changes suddenly. By going through some debugging processes, I'd figured out that the problem was produced whenever BNO055 sensors self-tested fail, to be more specific, there were GYRO and MAG sensors that failed. I've tried numerous methods to make the bug go away, including triggering bno055 reset either via pulling reset pin low-to-high or writing to bit 5 (RST_SYS) in SYS_TRIGGER register, even tried to re-power the board by an on-board on/off switch (I've measured the voltage between Vin-Gnd of BNO055, it was nearly 0V when switched off ). But none of these solutions seem to solve the problem (self-test result remain in state 0 on both sensors), only until re-plugging the battery was the laggy be removed. I'd be appreciated if anybody here has an idea that helps me solve the issue.
Plus: I found it hard to tell the difference between removing the battery and using the on/off switch, why only re-plugging could solve the problem, can anybody provide the answer ???
If you've reached here, thanks for reading my relatively long question.
For some privacy reasons, I cannot provide you with the full schematic diagram. But for short, my hardware that uses bno055 is quite simple, I used a complete Adafruit BNO055 module directly soldered on the PCB. I've attached a link to the module and a cut-out image of the sensor in my schematic below. About the power supply, the module was powered by a stable 3.3V on both Vin and Vo pin.
BNO055 module from Adafruit: https://www.adafruit.com/product/2472