Data Sheet

I2C Mode
Register Function
0x00 Command register (write) / Software version (read)
0x01 Compass Bearing 8 bit, i.e. 0-255 for a full circle
0x02, 0x03
Compass Bearing 16 bit, i.e. 0-3599, representing 0-359.9 degrees. register 2 being the high
byte. This is calculated by the processor from quaternion outputs of the BNO055
0x04 Pitch angle - signed byte giving angle in degrees from the horizontal plane (+/- 90°)
0x05 Roll angle - signed byte giving angle in degrees from the horizontal plane (+/- 90°)
0x06, 0x07 Magnetometer X axis raw output, 16 bit signed integer (register 0x06 high byte)
0x08,0x09 Magnetometer Y axis raw output, 16 bit signed integer (register 0x08 high byte)
0x0A,0x0B Magnetometer Z axis raw output, 16 bit signed integer (register 0x0A high byte)
0x0C, 0x0D Accelerometer X axis raw output, 16 bit signed integer (register 0x0C high byte)
0x0E, 0x0F Accelerometer Y axis raw output, 16 bit signed integer (register 0x0E high byte)
0x10, 0x11 Accelerometer Z axis raw output, 16 bit signed integer (register 0x10 high byte)
0x12, 0x13 Gyro X axis raw output, 16 bit signed integer (register 0x12 high byte)
0x14, 0x15 Gyro Y axis raw output, 16 bit signed integer (register 0x14 high byte)
0x16, 0x17 Gyro Z axis raw output, 16 bit signed integer (register 0x16 high byte)
0x1C, 0x1D
Roll angle 16 bit - signed byte giving angle in tenths of degrees from the horizontal plane (+/-
180°, 0x1C is the high byte)
0x1E Calibration state, bits 0 and 1 reflect the calibration status (0 un-calibrated, 3 fully calibrated)
Register 0x00 in the event of a read the CMPS14 will reply with the software version, for a write it acts as the
command register.
Register 0x01 is the bearing as a 0-255 value, this may be easier for some applications than 0-3599 which
requires two bytes.
For those who require a bearing with better resolution registers 0x02 and 0x03 (high byte first) form a 16 bit
unsigned integer in the range 0-3599. This represents 0-359.9°.
Registers 0x04 and 0x05 are the pitch and roll angles, giving an angle of 0 when the board is flat and up to +/-
90° at maximum tilt in either direction.
There is then an array of registers (0x06-0x17) providing all the raw sensor data from the 3 sensors.
Registers 0x1C (high byte) and 0x1D (low byte) form a 16 bit roll angle for +/- 180 from the horizontal plane.
Value is in tenths of degrees (range of +/- 1800).
Finally we have register 0x1E, this provides feedback on the degree of the calibration that the automatic
calibration routines have achieved.