[Solved] DI IMU I2C Bus Speed Issue?

One person mentioned on GitHub that they saw data corruption running their BNO055 at the default RPi clock speed of 100KHz. The readme is three years old, on RPi 2.

Has anyone seen corrupt data from the DI IMU when attached to a GoPiGo3 (with a RPi 3B)?

The compass robot example would probably not show a problem, perhaps only only a FIFO application would see it?

Results so far:

  1. yes, corruption with HW I2C
  2. No corruption with SW I2C,
    but some soft exception I2C timeouts need to be handled.
  3. The Easy_IMUSensor() class includes mutex protected I2C methods which prevent I2C access collisions between programs. Use this class (or derive from it).