Thanks for the reply, Vincent. I changed the Raspberry Pi's I2C bus speed from 100 KHz, its default, to 400 KHz and the problem has disappeared. Headings appear stable. According to the BNO055 datasheet there is no minimum fSCL clock speed. I suspect there is some timing/sampling issue during the multi-byte data read. The variation is always 8 degrees which, since 1 degree is 16 LSB, would mean the MSB of the low data byte is decoded incorrectly on occasion. That would result in a difference of 0xF minus 0x7 or 8 degrees. Just a theory and moot since 400 KHz works fine.
... View more