Hello,
I had a discussion with Robot-Electronics support (manufacturer of CMPS 14) about how CMPS works & use BNO080.
They answered me, so know we had a clear idea of how CMPS 14 works and differences with BNO08x (see emails at the end of the post).
As @Alan.Webb and I were assuming, BNO080 of CMPS 14 is configured to output Rotation Vector Report and the PIC16 F18325 microcontroler of CMPS14 just convert quaternion into Eular Angle and makes them available to the host via a standard I2C bus (so you don’t have to deal with Hillcrest Lab SHTP protocol trought I2C).
No additionnal calculation, data processing or filtering compare to a standard BNO08x: so measuring performances (accuracy, precision, etc…) between CMPS 14 and BNO08x is exactly the same (confirmed by Robot-Electronics).
It’s mean that choosing one or the other, we can reach the same roll / heading measurement performance: it is not a selection criterion between both board.
Both are a good choice in my opinion. After each have thier adantage / drawback that can be selection criterias depending our final installation on each of our applications.
In my opinion:
CMPS 14
-
Adantages:
- Angles values available directly at the ouput of the board, via a standard I2C protocol, so required to use the standard Arduino I2C library
- Factory calibrated so theoricaly, you don’t have to calibrate it, but:
- Calibrating gyroscope and accelerometer is not too difficult
- Magnetometer is more difficult to calibrate, so it’s look like a good point for CMPS 14. But magnetic field at their calibration bench is not the one of the final application. And BNO080 Calibration procedure advice strongly that magnetometer shall be calibrate by the final end-user. So theorically we have to recalibrate CMPS magnetometer in the final environement.
- PIN compatible with current MMA connectors of PCBv2 (if I’m not mistaken)
-
Drawbacks:
- We are limited in the configuration of BNO080. CMPS 14 use Rotation Vector Report and that all. We cannot use other reports, specifically report that doesn’t use magnetometer for calculating orientation. As with CMPS we do not have the choice to use the magnetometer and magnetometer could be sensitive to magnetic field disturbance, it possibly requires precautions for board installation
- Not available on the “classic” sellers were we classicaly buy our PCBv2 composants (not even available on Amazon): so we add to order it to a different seller, with additional shipping fees
BNO08x
-
Advantages:
- We have access to the full configuration possibilities of the BNO08x. And specially the Game Rotation Vector Report that compute orientation without using the magnetometer. So in this mode, BNO08x is not sensitive to magnetic field disturbance, which is less restrictive for the installation of the board. And as Brian said here, BNO085 or BNO080 IMU - #162 by BrianTee_Admin, “No Mag, less problem”
- Available on Digikey, Mouser etc, from 2 manufacturer (Adafruit & Sparkfun) so you can order it in the same time than the other PCBv2 componants
-
Drawback:
- It used a specific library to deal with SHTP I2C protocol. And the library is more heavy than the classic I2C library. But for now, PROM space of Nano is not a problem for AOG INO even if with this library.
- Not calibrated, so you add to calibrated it yourself. Accelerometer and Gyroscope are easy to calibrate, but magnetometer is a pain, specially when you try to calibrate it in end-user application. But using BNO08x in Game Rotation Vector Report (magnetometer not used) doesn’t requires to calibration the magnetometer. So finaly not so restrictive.
- Not PIN compatible to MMA connector, so you have to fend for yourself to mount it in current PCBv2.
Hop this synthesis can help user to choose one of the board depending of their constraint .
Math