To allow the BNO055 to be used with the Raspberry Pi I found that the answer is to disable the standard Raspberry Pi i2c hardware entirely, replacing it with a software based i2c device already present in the kernel by using a device tree overlay. This software based i2c device correctly implements the i2c protocol clock stretching. Once this is done there no longer any need to worry about clock speed when communicating with the BNO055 from the Raspberry Pi. You will be able to read heading, roll and pitch data from the BNO055 via i2c at 10ms intervals without any problems. For full details of the procedure please see https://gps-pie.com/pi_i2c_config.htm
... View more