BNO055 IMU inconsistent timing on Photon

Has anyone else tried to use the BNO055 on the photon? I am able to communicate with it just fine and the data coming out of it looks good, the problem I am having is the inconsistent amount of time it takes to read data from the sensor. I’m reading 26 consecutive registers to see the data i’m interested in and that also involves 1 write command to set up the registers for reading. The fastest it will perform the multiple byte read is ~827 us, which is about what I would expect with the I2C bus at 400 kHz, plus some overhead. I have commented out any data conversions in the library so this is purely how much time it takes to read the data registers and store them in a single array.

The problem is that usually it takes anywhere up to 6 ms to get the data. There will be long pauses between reading in bytes from the sensor where the clock is pulled low (BNO055 uses clock stretching)… is that normal? I find it difficult to believe that a sensor that has an output data rate of 100 Hz would need upwards of 6 ms to generate that data. That doesn’t leave a lot of time to do anything with the data before you need to try to read the next set of registers :frowning:

I’m using the adafruit breakout for this sensor and also noticed that with the 10k pull up resistors they use on the board and with only using the 3v3 output from the photon to power the board that the I2C bus would never reach 400 kHz and the rise time of the clock pulses was not within the 300 ns max in the spec for that speed so I had to add some parallel resistors to get that all working… but that didn’t solve the problem.

I suspect the problem lies within the BNO055 itself but i’m really hoping someone has had better luck with it because otherwise it’s all kinds of awesome.