CMPS14 Compass

Oh that was just left over code from initially trying it out. it can be deleted

Hello, so would you say technical wise it is better to have a Single GP with good Imu then a dual GPS?

Has a choice already been made between cmps and BNO085 , which will be future proof? I’m assembling two pcb’s to use this spring, it would be nice to choose the “right” one

1 Like

In it we are, they are the same chip, anyway you can connect one or the other, you will only have to change the .ino

P.D.: My personal choice has been the CMPS14, but I may buy a BNO085 in the future

I would pick the cmps. Really simple code, factory cal. Just use it. It’s the 5th generation of the product so i don’t think it will be obsolete either

Is it still advisable to site the cmps away from the rest of the board? In it’s own enclosure somewhere else?

We are trying to find better option, there are people who have it installed inside the box and it works.

And it embeds a BNO080…

When moving from MMA to cmps do we need to remove the brick ( if using one ) or will it still contribute/ be needed ?

With the CMPS14 or BNO08x the MMA, Brick, BNO055 and DOGS 2 are not necessary

3 Likes

Hush! do not say it too much, I have 2 brick to sell …

:innocent: :rofl: :rofl:

The CMPS14 uses rotationvector mode of the BNO080 so it does refer to the magnetometer. I can upset my BNO085 in that mode, so I’d say some care in mounting is needed.

1 Like

Safe to say the brick has been bricked …

2 Likes

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).
image
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

Capture1 Capture2 Capture3 Capture4

6 Likes

That is detailed confirmation of what I was told by the UK supplier of the CMPS14.

The ability to use GameRotationVector on a bare BNO085 which is completely unaffected by even huge magnetic fields is IMHO a big advantage, given the very EMR noisy environment that a tractor is.

[edit…]

Just read your messages and that is who I spoke to.

Hope you told them to start ramping up production…

2 Likes

Very clear! appreciating your synthetic explaination…
(If magnetometer is a concern could we use IMU 6DOF instead of 9DOF? using only accelerometer and Gyroscope)

Does the CMPS14 allow that?

You can output the individual elements, but it seems to work pretty good just the way it is.