There seems to be some race condition between the mpu6050 and the softdevice whereby over time the device will receive BLE callbacks but never be woken up in its main loop to read the fifo or wait for more BLE events. The device can only recover through a hard reset.
When the dmp fifo read returns an error, I use mbed_i2c_clear() to help restore to a clean state. But in a long running test I still run into the race condition about once every hour and require a hard reset. The printf's in mbed_i2c_clear exacerbate the problem. After removing these printfs, I did not hit the race condition even once in a 36 hour test of continuously sending motion data over a ble connection.
This site uses cookies to store information on your computer.
By continuing to use our site, you consent to our cookies.
If you are not happy with the use of these cookies, please review our
Cookie Policy
to learn how they can be disabled.
By disabling cookies, some features of the site will not work.
Access Warning
You do not have the correct permissions to perform this operation.