I have I2C communications problems when trying to use the Adafruit BNO055 IMU with the Due, data stops being received after several seconds. I was told the Due has I2C issues so I got the sensor working reliably using a ESP32 (Lolin D32 Pro). I would like to continue using the Due however, so I found several "software I2C" libraries. I have been trying to to use FlexWire as it is stated it should work with Due while others will not. bno.begin() is always failing when using this library. It has it's own I2C scanner sketch, and that returns the correct addresses for the BNO and the SSD1306 display I'm using. However it only returns them once and subsequent runs of the routine fail to find the devices. The FlexWire author says it should be a drop in replacement for Wire. I am using this declaration:
FlexWire Wire = FlexWire(9, 10); // SDA, SCL
and this instanciation in setup():
Adafruit_BNO055 bno = Adafruit_BNO055(55, 0x28, &Wire); // due
What do I have to do to use this library?