CMPS14 Compass

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.

Hello,

I remember you said I one post that you asked the question to them, but I must have missed the answer. That’s why I asked the question from my side. Now we are fixed.

It’s not a big deal, with 3 differents boards usable, the risk of supply break is very low !

It’s how BNO08x operate when configurate in Game Rotation Vector mode. Not possible with CMPS. Other advantage of Game Rotation mode: accuracy of roll is better than in Rotation Vector:
image
Using an other IMU ? Not easy: from raw data of accelerometer, gyroscope (and magnetometer), you have to run advanced algorithms to calculates eular angles. Not all IMU do that, with a good accuraccy (and also at a low price). And making your own algorithm seems not to be a good idea du to the complexity of them.

Math

1 Like

photo_2021-02-03_00-20-49

:rofl: :rofl: :rofl: :sweat_smile:

6 Likes

but in pcb v.2 there is no place for cmps14 (I think), and without a stable and safe heading, how to use stanley?

Plugs straight into mma socket I believe.

Yes, testing direct into MMA socket, with cables or with 2 PCA9615+ethernet cable.

You need remove MMA and BNO055 (Brick or DOGS2)

CMPS14 needs new .ino

Autosteer_USB_cmps14.zip (22,0 KB)

I think this is last for CMPS14

This not work today in V4_Upgrade

What would be the range of the i2c connection using just standard cable to connect the 2 units?

Not very long. The faster its going the shorter the distance. It was only really designed for on board communications. At 400khz a meter maybe. At 100khz a couple of meters.

The real limitation is capacitance, I2C breaks down after 400pF. Which is not much wire.

Also it degrades more the busier the bus is.

But its worth a shot, sometimes things work out of spec.

a metre might be enough to move it outwith any interference from the pcb though would it?
Would it be beneficial in a shielded enclosure?

People are trying all the possibilities, we will have to wait a while to find out all this. But it seems logical that a shielded enclosure would be ideal.

I am trying in enclosure and shorts cables (20 cm), but i am thinking put it inside the box, direct to MMA socket, last try is PCA9615 :wink: