Data Sheet
Calibration of the CMPS14
The CMPS14 is shipped with a static factory calibration, but the module is able to automatically update its
calibration with algorithms running in the background if desired. To achieve background calibration the user
just needs to turn the functionality on and perform the required simple movements.
Changing the calibration configuration
To change the configuration write the following sequence of bytes 0x98, 0x95, 0x99 , remembering to pick up
the response byte OK (0x55) after each byte. You can then pass the setup byte to the command register, it takes
the form:
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Calibration
config
1 x x Periodic auto
save enable
x Gyro
Cal enable
Accel
Cal enable
Mag
Cal enable
Bit 7 is always logic high
Bits 6,5 and 3 are undefined
Bit 4 enables a periodic automatic save of calibration data so manual saving is not required
Bit 2 enables the background gyro calibration – recommended to be off for very still applications
Bit 1 enables the accelerometer background calibration
Bit 0 enables the magnetometer background calibration
Gyro – calibrated by the CMPS14 being in a stationary state.
Accelerometer – calibrated by tilting the module to roughly 45 and 90 degrees on one axis.
Magnetometer – a few random movements easily calibrates the CMPS14
The level to which the CMPS14 has been calibrated can be checked by using command 0x24, the gyro,
accelerometer and magnetometer are allocated 2 bits each in the register. A value of 0 in the two bits reflects an
uncalibrated state, when fully calibrated this will become 3 (both bits set). There is also a complete system
calibration level.. Please note the Gyro feedback does not currently work, this is a bug in the sensor itself that is
scheduled to be fixed.
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Cal status System calibration Gyro calibration Accelerometer calibration Magnetometer calibration
Storing and erasing calibration profiles
After calibrating the compass the profile can be stored so it will be automatically reloaded when the module is
ready for use again. To do this we need to write a sequence of 3 bytes.
To store a profile send the sequence 0xF0, 0xF5, 0xF6 to the CMPS14, remembering to pick up the response
byte OK (0x55) after each byte.
If you wish to erase the stored profile send the sequence 0xE0, 0xE5, 0xE2 again each byte will return an OK
(0x55). The final byte will reset the BNO080 so a delay of 300ms is recommended.
Changing the baud rate
The default serial baud rate of 9600 can be changed. There are two other baud rates that can be used, for 19200
just send 0xA0 or alternatively for 38400 send 0xA1. Please note that the CMPS14 will always default to its
9600 bps rate after power cycling and after setting a new baud rate the ok response (0x55) will be sent at the
newly selected speed.