We've got 2 thousands units of a product shipped to customers and some of them are acting badly: the gyroscope does not start.
I've got 3 products with that issue on my desk and I can't make them work after trying a lot of things (longer delays after commands, change the order of the settings etc) but at the end, the gyroscope does not work. Important information: those products used to work correctly.
To give more details about starting process, in that order:
This process works on 99% of our sensors.
On the ones in front of me, I check the error register after sending the command to put the accelero and gyro in normal mode, it looks great:
Accel normal mode; Err: 0x80
Gyro normal mode; Err: 0x00
After a few seconds, I didn't get any interrupt and I can see that the interrupt pin is not active. I check some registers:
BMI160_ERR_REG_ADDR: 0x01 // FATAL ERROR
Two things: the gyro is not started (PMU status) and I got a fatal error pending...
I can't find a way to prevent that fatal error.
How should I deal with fatal errors? (POR does not make the gyro work...)
Have you seen such behavior in the past?
What can I do to make those work or to prevent new sensors from dying?
Thanks for your inquiry.
Please see the attached "How to perform BMI160 self-test v1.2.pdf". If BMI160 gyro doesn't enter normal mode or fails the self-test, then it means that this BMI160 chip is damaged. Please let us know where you are located. Our local FAE will contact you to get the failure parts from you. We will then ship the failure parts to our quality team in Germany to do failure analysis on these parts.
Indeed, the self-test mode doesn't pass on the failing units whereas it does on another product.
I am located in France if you want to get the units back.
Meanwhile I am going to implement the self-test function in the Firmware to have our support team get the bad units back to our office. I think our factory test program is not exhaustive enough to catch that issue so I will fix that part also.
Thanks for your help.