MMA 8452 filtering

Hi ,

Yesterday, I sprayed about 30 ha with my new autosteer AOG (success story to come …: wink :).

At first, I used MMA, but the terrain is quite flat and damaged. So with the vibrations the mma move a lot. Too much ! The direction went from left to right, impossible to go under the 15cm of precision. then I deactivated the MMA, it worked normally, good.

So my question, would it be possible to filter more the roll so that it responds to a change of inclination but not the “small vibrations” of a sprayer?

I think so on the side of Kalman, but I do not know how.

Which Sketch you are using?

Brian’s pcb, coffetrac?

For now , I’m using coffetrac.

FWIW, I have the same experience and I’m also using coffeetrac’s sketch from this spring.

Have you guys found a solution for this, since I have the same problem…?
I use the pcb sketch that was in the package of AgOpen and changed a few ports
to adjust them to my hardware. The roll works great on my desk, but I think vibrations
play a part in real life.

one thing i did as i think was suggested by Brian was to set antenna height to half of actual height. that seemed to make it work better

1 Like

I’ve used support leg for MMA. It’s quite loose without it.


I have the MMA mounted rock solid in both tractors. The effect is worse when roll is high either left or right, generally noticeable when more than 2° roll. Effect will be less when antenna is lower but will still be there at high roll values.

i didn’t look into coffeetrac ino , but in brian’s there is kalman , it’s may be a way to decrease sensibility . what do you think ?


8451 is 14 bits and 8252 is 12 bits (pay attention when buying, and be careful,
the chip by itself is only 3.6 V compliant and requires an I2C level shifter to Nano)
To my understanding, Kalman filtering is useful when you know the theoric evolution law
of the signal you want to measure (and filter) Am I right or no?
For a complete random signal like roll, why can’t we put a 1st or 2nd order RII digital filter ?
if we know the sampling period (which must be constant),
we can program exactly the cut off frequency we want, it’s not so complicated to implement ?
With the values (fs fc), I can try to test on the Nano

1 Like

I let you try this . I m not good enough in math to answer you. But I’m very interested of your results.

Hmmm, no problem on my end using the ino and 8451, steady as a rock - albeit a leaning rock. Certainly can use the digital filter, but the single point Kalman has zero delay and is very fast.

Thoughts on how to troubleshoot this? A lot of work went into my ino last few months, there are many issues with coffetrac. Would be really good to figure out what is going on. Have you tried looking at the ide chart monitor as drive along? Can you paste your settings for the ino on this thread, the settings for my ino.

1 Like

I haven’t tested the newer version yet, perhaps I should try that first, since Brian says its works ok on his equipment. In the meantime I found these videos:
MPU-6050 6dof IMU tutorial for auto-leveling quadcopters with Arduino source code - YouTube.
He uses the combination of a (stable) gyro with an accelerometer (to correct the drift of the gyro). Just for fun I bought the MMU-6050 (an enormous investment) and started playing with it. Result: While the accelerometer is very nervous, it picks up a lot of vibrations, the combined output is much more stable and the giro won’t drift.
Would be an option for the future if I cant get the MMA to work

I do know the mma8451 works very well, it covered around 1500 hectares flawless.

1 Like

Would a bit of damping help the MMA at all? Back when I was into RC airplanes I remember buying some stuff that musicians use to dampen string vibrations. A kind of gel pad. Instead of locking the MMA tight, stick it to some of this instead?

If what we’re talking about here is the same as I experience, mounting of the MMA is certainly not the problem. I see it happening whenever roll gets to higher values e.g. 2°. The terrain could be a carpet but on the side of a hill, and the position would constantly ‘spike’ to left or right. To the extent of making the steering motor go Mad Max and being unusable. In this video is what I experienced. @Simon_1 @Tooki57 is this what you see too or is it unrelated?

I can’t compare with the newer ino just yet, maybe this winter.

I blamed it on vibrations from the tractor, when the engine is off and I move the box
that contains the MMA, it’s OK, but it shows the same erratic behaviour as in the video
when I start driving.
Although we have flat fields overhere, it has to be very flat to have less than 2 degr of roll. It gets a lot worse when you work on a field that has just been ploughed.
You really need the roll compensation, if you switch it off, you won’t go straight. Gets worse with your GPS antenna in a high position, it should be in the roll centre, but you’ll have no reception there…

Perhaps we should try to experiment with the filter, in the .INO it says:

//Kalman variables
float rollK = 0, Pc = 0.0, G = 0.0, P = 1.0, Xp = 0.0, Zp = 0.0;
float XeRoll = 0;
const float varRoll = 0.1; // variance,
const float varProcess = 0.0001; //smaller is more filtering

What happens if we change the const float varProcess in to 0.00001?

Be aware. There is already that sort of difference in kalman between old coffeetrac ino and new pcbv2. In my old coffeetrac setup with dogs2, the spin starts around 8 degree

Looks like GPS jumping 5 deagres + - .

Very interesting series of videos. In the video he mentions how he can just apply an average to the accelerometer signal to smooth out the noise almost entirely, at the expense of a slightly delayed value. In a quad copter, that delay would almost certainly set up a feedback oscillation, but on our tractors, it might be close enough to work directly?

The drawback of using the gyro and accelerometer together is that you have to zero it out somehow. Wonder if there’s a way to do that automatically, even if the tractor is started and shaking a bit. Maybe the average there would work to zero it.

Anyone using on of the integrated 9dof IMUs out there? Would have to be on the roof of course for the magnetic portion.