Best sensors for Auto steer

I will build your autosteer PCB in the next week and wanted to get clear on the “best” or most appropriatesensors to use for a sloping ground situation. I am not concerned with the cost at this time more the accuracy.

I want to get the “options” quoted in the wiki down to a best list so I can order all the parts required.

Ok here we go.
In the past I have used various IMU and found that for heading they are all affected by magnetic disturbances. Even the ones that have some kalman filtering like the UM7 from redshifts labs.

To fix this we made an in line ie longitudinal mounted dual gps system. The 2 antenna are place 1m apart. We use moving base to get the heading and output that with a POLYA message and then we get the position from the GGA message.

My first preference would be to integrate this dual heading estimate into AOG. Currently we only have this working at 5Hz. We have had it tested at 10 Hz.

As the AOG can accept numerous sensor inputs I was also looking at the TinkerForge Brick V2 to provide the heading solution in case the dual gps can not be used at this time. The unit looks very stable on the manufactures video as it has an auto calibration routine going on at all times. Also I expect the update rate would be far in excess of 10Hz.

As I would like the most stable heading solution I think using the dual gps with the brick v2 could output a very stable heading at a much higher output rate. Fusing the fast update rate Brick with the slow gps heading would be ideal

Is this doable currently on the AOG

Moving on, I do not mind buying more sensors if they will further improve the accuracy of the system on sloping ground. Especially for the heading. I also want to consider and the Roll accuracy. Next question is, if the Brick will be used and that it can output euler angles for pitch and roll why use a Dogs2 inclinometer?
Is the Dogs2 inclinometer data better than the Brick?
I am happy to buy it, if it helps out in some way. The Dogs 2 inclinometer is $100+ whereas the Brick is $50+.

From reading forget the BNo055 and the MMA8452 is a cheaper version of the DOGS2

lastly the ADS1115 is not required if I am not using the BNO055 MMA8452. Is this correct however if I add a Wheel Angle Sensor (WAS) i will need the ADS1115 for that



1 Like

First of all the bno05 does Auto Calibration so it is not good to,use for roll.

The dog2 is rock solid part. If you do not like to,spend so much money - the mma8452 does the same work for 1/10 of money.

There is also a bno05 you can connect to the arduino via i2c bus. Like other sensors (mma/ads).

If you connect the was to the arduino you have only 10 Bit resolution. (~.25 degress) with the ads you much more . Therefore we are using the ads1115.

Thanks for your reply. Very useful
I want to mount the heading device well away from magnetic interference so I will check the length of connection wire I can use on I2C. The Tinkerforge Brick is USB or wifi with additional hardware so could be mounted anywhere away from EM noise

I use the Brick, it works quite well. Oddly it uses ethernet over usb - but the communication is rock solid. I mounted mine on the roof well away from soft iron and works well up there in a waterproof box.

You are defintiely going to need a WAS so using the ADS1115 is the best option by far. The MMA is the go to device for Roll, the DOGS is quite expensive.

Thanks for your reply.
Currently accuracy (with the least effort) is more important to me than cost. Would you say the dogs2 is more stable/ accurate or x y z than the MMA



They both are about the same, but cost to performance the MMA wins hands down. It can just mount on the autosteer board. No extra 12v to run to it, no need to a/d convert etc. The best choice is the MMA

1 Like

Many thanks your advice is truly appreciated

I just purchased a PCB and all the PCB parts, plus the MMA and ADS1115. Now to order the Brick. Was it a simple matter of plugging in the USB between the Nano and Brick.
Also did you buy any other tinker forge bricks or extensions etc to support the IMU brick


You just download the brick driver from the website, install that. Plug the brick directly to a usb port, Run their little viewer and get the ID (you need to enter that on the IMU form of AgOpen) and make sure it works.

Then just make sure the brick is plugged in a usb port before AgOpen is run. Run AgOpen. Select the Brick on the IMU form as a heading source, fill in the ID for the brick, restart AgOpen - it should work.

Sorry to be dense…I want to be clear on a number of issues

In the early stage of this project I will use a Latte Panda credit size Windows 10 computer with an HDMI cable to a 1000 nit screen. Later on I will buy a tough book when mounting in a tractor.
I want to build your ethernet system and use my dual antenna RTK Gps position and heading device as the primary heading estimate as it is not corrupted by magnetic noise. This will be connected to a Arduino Nano and then connected to the AOG as your diagram suggests. I would also like to use the brick 2 in the system on the roof to get a secondary heading and the IMU data that can be used so that gps data can be fused to give a faster data rate than the current 10 hz gps data rate.

So does the Brick plug into the computer running AOG or the Arduino through its micro USB port?

For now I want to put together a system that includes the Autosteer PCB and the GPS on the roof connected by ethernet cables to a central hub or switch. I notice on the GPS(roof) and Autosteer they both have IMU’s and Roll sensors connected. Having IMU’s in both places would be counter productive and noisy I think. I am getting confused with what should go where and be connected to what in the various diagrams.

Lastly is there some code for the GPS arduino?


The Brick definitely plugs into the computer running AOG. There is no code written for the GPS udp on the roof - that i am aware of. @doppelgrau may have - i am sure he has an esp32 solution, or someone else - hopefully they reply.

The Brick definitely plugs into the computer running AOG. There is no
code written for the GPS udp on the roof - that i am aware of.
@doppelgrau may have -
i am sure he has an esp32 solution, or someone else - hopefully they reply.

The esp codes that I know do not support the dog. MMA, FXA/FXS or
LSM9DS1 are “known” and might be used.

I have used a LSM9DS1 before however what is a FXA/FXS.

Also if the PCB 2 has a MMA mounted on it why would we need another one with the GPS

My goal is to use the PCB with a hydraulic valve for autosteer, WAS, dual gps for position and heading and I will also try the Brick connected via usb to the AOG for an additional heading or for sensor fusion.

I assume that the GPS, IMU and Dogs in the above diagram are all connected together so that a complex message can be formulated and sent to the AOG. One that contains Position GGA, heading HDT and IMU data as well

If someone could clarify the basic building blocks as some of the diagrams are a little confusing for me. I am not complaining as this effort is really appreciated.


Kombination of the FXAS2100 and FXOS8700 and a typo:innocent:

Only need one.

Has anyone tried such a sensor. At least “MMA” wins this in price competition.

With kalman filtering

From manual:

The module need to be calibrated before the module is used. The calibration of
HWT901B includes accelerometer calibration and magnetic calibration.
Ps: All the calibration must be maintained at a level, unless you want to Vertical Installation,
and the upper computer sets the vertical position of the vertical installation.

“Angle Accuracy: Static 0.05° Dynamic 0.1°”

Usually, the magnetic field sensor will have a large zero error when it is
manufactured. If it is not calibrated, it will bring about a large measurement error and
affect the accuracy of the Z-axis angle measurement of the heading angle.

Has anyone used a Wit-motion 901b-Ttl as the inclinometer. I’ve just bought one and would be interested to know how they got it going with agopengps.