WAS is now very easy, use TM171 or BNO85 as WAS sensor

Some time ago, I developed a great code that allows IMU sensors to be used as steering angle sensors. This solution has been tested on about 20 machines and works very well. The WAS readings are very accurate, there’s no lag or “backlash,” and the sensor responds to the slightest twist. I also implemented auto-calibration of the 0 WAS, so you no longer need to manually adjust it; the 0 WAS automatically adjusts while driving. I highly recommend this solution to everyone; it makes installation much easier and faster, eliminating the failure and unreliability of mechanical sensors.

I’m sharing the code, which could be further improved by adding automatic sensor type detection. AGO should add parameters (conditions) for auto-calibration of the 0 WAS.
The TM171 is accurate and doesn’t require calibration of the difference after a 360-degree rotation, but if you want to use the BNO085, the code includes a mechanism that allows you to eliminate differences in the actual angle after a full rotation. Just select the partners and insert them into the code. I’ll be recording a video on how to do this soon.
I’ve designed excellent, robust milled enclosures for both the BNO85 and TM171; they’ll be available for purchase soon in our store at www.AGOPENGPS.pl.
I’d like to ask the administrator to make this thread visible, as I think it will help many users resolve their WAS issues.Download the code and have fun

19 Likes

I’m using a v2 PCB with a Panda PCB; is the ino compatible with the Teensy of the Panda PCB?

Unfortunately no, the code is part of autoster and is for teensy4.1, you would have to start using teensy based autoster, you can’t implement WAS code on arduino nano.

Any pictures of how your mounting these?

Auto-calibration sounds nice as WAS offset is often an issue for AOG newbies. I just see auto-calibration control necessary. An example of ploughing where wheels at times steer to an angle but the tractor drives straight.

1 Like

It also works well for plowing; we’ve been testing it for several months now. Auto-calibration solves the problem of working with mounted machines like disc cultivators or side mowers. Manually setting the 0° setting doesn’t work with such machines. Auto-calibration quickly sets the 0° setting, even though the wheels are actually at a slight angle.

1 Like

Autotrac for example always sets was zero when the tractor is driving faster than 25km/h and under 0,1 Yawrate. (Degress per second).

1 Like

My code works on a similar principle. After meeting conditions such as minimum speed and a yaw deviation below a specified threshold for a specified time, 0WAS gradually moves towards 0 in small steps.
I also created a test version that uses the roll from the WAS sensor on the front wheel to detect bumps and predicts in advance that the rear wheel will hit a dip and cause the cabin to rock. During this time, the steering is frozen, and the tractor drives straight despite the bumps.

Which imu have you done the bulk of the testing on? The bno085 has a weak point as a imu as it would often freeze and needing a restart. Is this still possible if used as a WAS? Is there a way of knowing that the bno085 has potentially frozen?
The tm171 from user’s so far can experience some heading drift, and also the performance can be effected by temperature (either too hot or too cold) is this a problem if its used as a WAS?

So far, we’ve been using the BNO085 as a WAS and IMU on the tractor. In RVC mode, it freezes occasionally, but very rarely. I haven’t tested the TM171 in the field, but it seems to be very stable on the table. It’s been on the table for 20 hours, and the WAS hasn’t moved even a degree.

1 Like

Can you share a picture of the imu mounted on the tractor?
Thanks

I’m working on my first install, v4.5 std using hyd valve using usb dongle on tablet for udp and wifi for ntrip I have no more ports to use on tablet. I now have a working model on my desk using land rover as was nothing installed on tractor yet but want to get started soon. I should mention I’m not a coder I’ve dabbled in it some and that’s it. Should I consider shifting gears and use this instead of was? I have an extra BNO085, Oh I also do no have anything on the steering wheel to count thel turns. this sounds really interesting and seems like a good improvement over installing mechanical was. My gut tells me to proceed with my original plan for now and possibly do this later. What do you think?

You can use a USB hub if you need more usb,

I would go on with land rover was.
Here a lot of instal examples Wheel Angle Sensor Installation Examples - Lots of Pictures

1 Like

You can easily use a second BNO85 as a steering sensor. My code on GitHub fits the 4.5 board without any changes. If you can compile and upload the code to Teensy, that’s all you need.
Installing the BNO as a WAS is very simple, so try that first. If you’re not satisfied, there’s nothing stopping you from mounting it mechanically.
I can help if needed.

Google Photos

6 Likes

I am very interested in details of your housing. What waterproof connector are you using? What does it look like inside the housing? Where are you getting it made? Does it have a channel between the halves for a seal? Thanks, Andy

Edit - OK I see you have some pictures on github: AgOpenGPS-Teensy-4.1-Dual-IMU-WAS-BNO85-or-TM171-/2026-02-22_11h26_30.png at main · MarekJarczewwski/AgOpenGPS-Teensy-4.1-Dual-IMU-WAS-BNO85-or-TM171- · GitHub

Google Photos

2 Likes

Is it possible to use this IMU for WAS in combination with Benjamins Dual and Kaupoi Autosteer PCB?

Thank you I will try this. It appears I will need 3 conductor wires same as my was and it looks like it needs to be mounted to move with the spindle being parallel with the front tire and move as the tire moves left and right so possible mount on spindle arm. I used configomatic to configure the teensy this is the area I’ll need most guidance from someone in the know like yourself. Vin and Gnd I know but where does signal wire connect to Bno. Since I have a working mockup on my desk I’ll remove the WAS and try it there first.

Can you share the drawings of the housing? I am interested in making my own for my scraper project. Thanks, Andy