CMPS14 Compass

www.exp-tech.de, there is mine from, superfast delivery (1d)

1 Like

Hi! Are you planning an update of your mod for the .ino V5? Would be great! :wink:

The jitter issue is already solved in V5, but I didn’t test V5 myself yet. But yes, I think, I’ll copy the twist options.

1 Like

Hi.

If someone is interested here is a separate box for CMPS14 and nano for 3D printing.
If you download all there is a image of dimensions.

5 Likes

Turns out it only kinda worked, I had the pins bent roughly 70 degrees, so it was still picking up rotation, however it was super unstable so I have now re soldered the pins onto the other side

Voilà!

1 Like

You don’ need to “fix” the heading since AOG already does it and the CMPS never seems to point the right way anyway

Agree in that particular point, but that’s half of the story - in fact the unimportant part. The important one is calculating the roll angle - and this is not possible with AOG yet. So feel free to copy the code into the trunk of course.

You don’t need to calculate the roll angle since it is already done in the imu. Just mount it properly, in the right place.

As in, not the steer module.

Likely my English is quite bad, but honestly you didn’t really got the core. For sure, the IMU calculates the roll - that’s what it’s build for. But the roll is the pitch, if you turn it by 90°. So if you want to do this, e. g. for a better mounting of the box, you’ll have to be able to correct this. So roll_for_AOG = roll_of_IMU x cos(phi) + pitch_of_IMU x sin(phi). Hope that makes it clearer.

2 Likes

It was always clear. We just don’t want to encourage a bad installation.

@BrianTee_Admin can you elaborate on mounting the cmps14 properly? Where is the right place? what should be avoided? What is the best method for remote locating, I2C extender, usb and another nano?

Neil

1 Like

Finally it’s physics: For the IMU, the location should be as solid as possible with low vibrations from the motor. So somewhere fixed on the frame. For the compass, it’s different unfortunately: Keep it way from iron and wires with higher currents. It’s a little bit a “mission impossible” - you’ll have to try youself a little bit.

The answer for the connection is clearer: we’re talking about a digital transmission, so as long as it works, it’s perfect. I²C cables should be less than 1m, USB less than 5. Connecting to the motor controller is the best option, at least for the new sketch, which has a very low jitter. Every additional controller will increase the jitter, especially when using Wifi.

When @MTZ8302 's RTK sensor fusion software is finished, I’ll likely have to revise the last two sentences… :wink:

Not sure, if someone has experience whether a native BNO085 or the CMPS14 is superior. Must likely there is no big difference.

Also I think he means mount it level and pointing forward. Whereas @GoRoNb’s patch allows you to mount it not quite pointing forward, and in code compensates for it not being exactly pointing forward (or pointing some degrees sideways for example).

I hope @MTZ8302 plans to have a calibration routine that can learn the IMU position (at least learn it’s offset if it’s not perfectly mounted level) like commercial units do. It’s usually a simple matter of driving one way, then stop and take a good reading on the IMU, then turn the machine 180 in the same tracks and take another reading. Then a roll offset can be calculated

If the heading and roll from the CMPS14 appear to be stable does that mean it’s location is good or can the effects of near by interference be more subtle while still significant affecting the performance?

Hello,

Other solution for IMU board with non conventionnal installation: instead of using a CMPS14, use BNO08x.
As described in datasheet (p41): https://www.ceva-dsp.com/wp-content/uploads/2019/10/BNO080_085-Datasheet.pdf, you can configure it to tell him how he is oriented (if not oriented with the conventionnal axis orientation). Like this, all angles provided by BNO08x will always be compliant to your installation, you do not need to make some caculation tricks.
This can be configured with report ID 0x2D3E.
Other advantage, you can run it in game rotation vector mode (no use of magnetometer) so you will not be subject to all disturbance that magnetometer is sensitive.

Or just place the board to the conventionnal orientation.

What is it ?

Math

1 Like

@MTZ8302 is adding the CMPS14/BNO085 to his single and dual-RTK software. Work in progress…

Coming back to your hint: There also is a tare function (p. 43). So my idea: put you tractor onto a horizontal area with heading to north. Tare. After that, the roll (and heading) angle would be correct for any mounting situation, am I right? Systematic error for roll would be (1 - cos (north heading error)) which seems acceptable to me for at least +/-10° north heading error.

1 Like

The best place is as close to the middle of the pivot and as low as possible. So center of the axleleft to right, front to back.

In my 2wd, it sits under the seat - works really well and is super stable.

WIth i2c extender you can go a few meters with i2c.

On the 4WD it is mounted right at the articulation joint.

you want the imu to not exhibit any non symmetric motion - different going left vs right - by having an offset. Move the thing around the cab, or even on top of the cab away from blower motors, high power etc. The ability to mount the thing away from the confines of the autosteer board is key as you can easily mount it pointing forward using a single axis.

I assume this effect is as a result of how the IMU derives it’s angle? Inertial effects? Obviously the actual angle is the same wherever it is mounted.

ITs how it derives that angle that is critical. think of it mounted 3 meters to the right, and then think of what happens when you make a left or right turn. making a right it stands still, making a left it swings in a huge arc.

Extreme example yes, but you can visualize the effect