Winter has arrived

Hello all! Yes I ran away - temporarily. I had gotten so far behind on farming, maintenance, building, all the usual things and really needed to focus on that for a while. It is so very easy to start answering questions, write some new code, test some ideas and poof the hours tick by. This project can use up more time then i ever thought was possible. I really should have said that 4 months ago, for that I apologize. Covid as you know has greatly complicated life and like many of your countries Canada is struggling.

So maybe it is time for some realities. AgOpenGPS was only ever supposed to be a section control project that turned my air seeder off and on using GPS from an onboard existing unit. It really took off, algorithms for many of the usual guidance and features were discovered and the project grew to where it is now - almost too complicated. So many great ideas keep coming in, features, languages, code, really good stuff. But the one thing that keeps it from growing now is me. I am just a hack programmer, learned C# building AgOpenGPS, put together a collection of ideas that seems to work ok. But the code is very difficult to expand. Changing a small thing turns into hours of rewriting and changes throughout the program. Willingness to accept many different types of hardware/boards/gps etc further greatly complicate the project.

Daniel over the past few months has added many really cool features, fixed up a LOT of the code, removed duplicate code etc. I almost don’t even know how it works anymore lol. The version still needs to be finished and is a huge task yet gong forward. I am unsure whether to just fix some of the necessary changes that should be for v4.3 or just wait for v5 with significant changes. You can see it on the unstable branch of the AOG repository.

There also is Drive. It has become the test bed to try algorithms, and for me the fundamental getting the position, the heading, fixing roll and offset properly has really become my focus. Not mincing words, it is quite difficult to do. You can’t calculate roll for example and how far the antenna moves over until you have a heading - but you can’t calculate heading till you start moving - but you can’t calculate your correct position - so how do you calculate where you are??? Well it seems the answer is time travel, oh yes it is possible and required.

The other challenge is draft, the tractor is pointing one way but heading in a different direction. Not even dual antenna solves those problems. And these are very real fundamental problems that need attention. No amount of cool features made or fancy graphics will solve those problems. The BNO055 is no end of aggravation as well. Some new chips and firmware look to be quite promising so a single CMPS14 can do all the imu duties again greatly simplifying hardware.

Being able to reliably detect backing up, and autosteer in reverse and forward are really handy, these concepts need some work and need that work first. A guidance line is just a set of points - right now they are all separate with each line having all the guidance code separate as well. Make 1 line that can represent all the different types and greatly simplify. These are fundamental program requirements.

So Drive has become a place to figure out some of these huge challenges and that is my focus for now. I hope to make a video on time travel and knowing what direction we’re heading soon to help explain. But I think Drive can also be much more - a simple guidance program without all the bells and whistles, simple to use, simple to set up etc.

So we are at a bit of a crossroads. Where do you see AgOpenGPS heading? There are the realities of time, we all farm, do we risk blowing up the whole project by thinking too big? Would someone like to take over the project management? I suck at project management - would be the very best thing for AOG. Does Drive have a fit for those who just want autosteer and way less buttons? All the autonomous stuff is another huge discussion. How do we progress or even maintain a project that normally would have 15 to 20 full time skilled paid people in an open source sharing environment that is all volunteer?

Your thoughts greatly appreciated on AOG’s future.


Good to hear you’re keeping well, albeit busy.

Brian, I am amazed at just how much time you have put into this, I seriously don’t know how you do it on top of your day job.

You’ve provided me with everything I was looking for; an autosteer / guidance, geofence system with tool control. I can think of half a dozen additional features that would be nice, but AOG works as it stands, and it works well.

When I first started reading your post above, i expected it to be a, “I’ve burned out with this and want to focus on something else” message and I’m genuinely surprised you’re continuing development. Pleased to hear it though :slight_smile:

I can’t help with the development much as I’m not a developer and the functions you describe above are beyond me right now, but I did just want to say another thanks for all of your time and effort. AOG works really well as it is.


Great to hear from you @BrianTee_Admin. You have produced a complete program that many use right out of the box. Thanks for that. You have inspired many to modify and tweak the code to do what they need. Thanks for that. You have answered questions in the middle of the night. Thanks for that. You’ve wired hardware from a simple picture. Thanks for that. You’ve incorporated ideas into your code that takes hours to find what problems that it made. Thanks for that. You not only made the progamed work, and work professionally, but made it eye pleasing as well. Thanks for that.

Need I continue? Others on this forum may like to give their thanks as well. I can’t speak for all, but from my dad, THANK YOU! And from me, THANK YOU!

Most of us do not know you. But it is as if you are family. We are glad to hear you are doing well and looking forward.

One more time. Thanks.


Thank you Kent. I feel bad I can’t incorporate all the ideas, languages, etc. But reality is just that, very real. I started roughing out the concept of all guidance being a single line - and treated all the same. As you can imagine it changes a bit of code! Ok, all of it, thousands and thousands of lines. But the result is a HUGE simplification of the code.

A special thanks to all of you. Your willingness to help others to get their system going, the good ideas, finding new cool parts, posting success and failures. This is absolutely unique in the world of agriculture which has become more and more “product” centered and not people centered. Trying to not get all philosophical but, farmers helping farmers is so amazing to see - it makes it all worth it.


Can you please explain the concept of all guidelines being a single line?

Just thinking, the ABLine is just two points, and all the curves are just small ABLines? Is that correct?

Brian, I also want to thank you with all my heart for your wonderful work.
Over the past summer, I installed AGOPEN with my own hands on over 30 tractors of various manufacturers and models, even with the new Russian Kirovets and one combine, all on proportional valves. They were farmers who had from several dozen to 2000ha of various types of crops. Virtually everyone is satisfied with the operation of the system and most want to install AGOPEN on subsequent tractors or combines, some also have Trimble or other commercial systems on their farms, but claim that AGOPEN is as functional and accurate as possible. When they get a ready configured and calibrated system from me + a few hours of training in the use of the program, everyone is satisfied, but when people build it themselves, it is different, as I observe on our local FB group, they make a lot of mistakes (most often out of saving money), often lack of patience to get the details in and then you start complaining that AGOPEN is bad etc, it will be difficult to remedy.
A simplified version of AGOPEN would be a great idea as some people get lost in it at first. I spent tens of hours with the phone to my ear translating how to use a given function, sometimes they were very funny dialogues: -Click this 3 icon from the top left, not the one next to it …
Ultimately, the situations were saved by team viever.


Great to hear from you again, and good to know all is well with you. I would like to say that you have been a great inspiration to me, and I believe others on this site. When I first started reading this site I was very skeptical about this working. As I kept reading and trying to understand all the parts and some of the programming, and realizing all the time you and others were putting into this I realized it was worth trying. I had never soldered a PCB board before, but with the videos and instructions on this forum I was able to complete a working board. Even though I have only had minimal experience with basic language programming, this project has expanded my knowledge into the world of C#. This forum is one of the first things I look at every day to try and gain some more knowledge. Also liked the online video meetings, could not attend most but did watch all of them, thanks wilberttalen for your input on coordinating them and posting recordings. Hopefully they continue.
I can tell you, that the look on my 85 year old father’s face was priceless when he was able to ride in one of his old International tractors with GPS autosteer. I have been trying to convince him for a while that we should get guidance, but since we are such small farmers it was hard to justify commercial systems.
I truly hope you and others continue with this project, but do agree that we need to keep it simple. I used version 4.3.10 this year and it worked great. I believe we need to keep one very simple working version and then create versions with add-ons like dual antenna, section control, all in one board tec. I am not a programmer so not sure of the magnitude of add-ons.
Brian you do not suck as a project manager, with the scope of this project and the people you have touched across the world, I feel you have done a fantastic job. I would not argue that the amount of time you put in would seem daunting. Please continue your great work, you are a great teacher.
Not sure how to handle the project manager as everyone has their idea as where this project should go. Just keep AOG simple and basic and keep improving on the basics if necessary. Also if we could get an all in one place how to guide, from board building, program uploading, settings with explanations would be helpful. Just my thoughts and hope this project continues, Wiki is good, just needs updated.
My hope is this great project that Brian started continues.


That’s essentially correct as I understand it, @KentStuff. AOG has always treated the various shapes as small line segments ultimately, but each path type (AB Line, Curve) had separate code to do it, with a sort of duplication of code happening at a certain level. Simplifying guidance down to following a single line, and building all path types out of that primitive allows for other types of guidance like circles, or other types of patterns.


Welcome back Brian,

Well as many others have already said, I can only echo my thanks for all the time you have put into the project, and also all the time you have spent discussing all the various ideas / issues / potential future fixes in the telegram group with me / others also. Its easy to forget / loose track of the amount of time one can spend typing away about a single issue over many weeks and still not actually be hugely further forward! But generally much more informed!

I certainly wouldn’t say you suck at project management! A project like this is a real animal to manage, as its so open ended…with so many possibilities, so trying to keep things on track for the “right” direction is almost impossible!

For me, the most important thing is getting good, accurate, reliable position correction for all conditions… As good as fancy features are etc, if they only work for some people (on flat ground for example) then there some what wasted I guess… Having said that, Its easy to say "All I really want is reliable A-B line autosteer with tramline support in in all conditions…
As with everything, once you succeed with that, you want section control, auto lift / drop, headland management, etcetc, but I still think that basic position correction / ability to pull the tractor to the “correct” (which is also debatable in itself!) is the most important thing…

I am still yet to test the system with integral in Drive, but is installed / ready to go the next time I am in the field! As many problems as dual antenna gives, I still think its a good thing, and the best way forward for many… Giving instant direction / heading, ability to position any fixed implement center point etc…
I think if the integral has got the parallel off tracking issue sorted in hilly / uneven / draft environments, then that is fantastic…

In terms of features that i personally use / would want in my own farm / environment I would say:

  • Auto-steer (A-B line, A-B Curves and headland follow the previous pass)
  • Section Control
  • Tramline management
  • Headland generator (for drilling centre first and finishing up with headlands)
  • Hydraulic Control
  • Future ability to add 3rd UDP GPS input (for implement GPS position based auto-steer correction)

A questionable extra feature which I still cant make my mind up about would be integrated dual antenna support, to prevent requirement for external ESP to complicate, but maintaining either USB or UDP input for both GPS / UBX sources… I think I would find the it much easier to diagnose if i had the raw data both coming directly into AOG, where I could view it…and confirm we are getting what we are expecting from the F9P’s, and then configure the dual settings directly in AOG…

Any thoughts?


@darrenjlobb obviously you wernt addressing me but great post!!

1 Like

@BrianTee_Admin I would also join the chorus of thankyous. Dont get to caught up in providing everbody with exactly what they want, keep it fun for you. As far as the overall project i think its kind of like a business. You have to keep the culture that made it great as you expand and grow. Otherwise you end up with something like everything else? Just my 2 cents. With that being said Ill add another want to the list :grin: It would be nice when its all said and done to be able to bring job files from AOG into common farm managment desktop software. Like Ag Leader SMS, and such like. Thanks again. I cant wait to get dual antenna on our tractor.


I am in agreement with darrenjlobb with dual antenna. It is hard to imagine that single could ever provide the quality of drivability and positioning as dual does. With our no till getting rougher year after year, it just steers so much better. I do like the idea of bn080 in conjunction for calculating draft on hills.
I also plan to test drive, hopefully in the next couple weeks. Has anyone tried it yet with the ino that come with it and Danfoss valve.
I am another grateful recipient of Brian’s offering. Was using OEM before, and needing rtk for strip till and planter. The unlock for one system was higher than 2 complete dual antenna setups, with hydraulic valves, and also a permanent base station plus a mobile base.
Plus, since this is a learning program, I have enough parts to build several more boards.
Sorry for the book, but Thank You

1 Like

@BrianTee_Admin I have followed this amazing project far longer than I’ve been actively involved. It encompasses everything I love best about my way of working. Not jumping on a corporate bandwagon and realising that there are other ways of getting there, admittedly with considerably more effort. Effort that is worth it.

I wish I understood the code enough to help more. The Arduino stuff, yes, I get it but the main code, I’m lost. My only thought is this. AOG, fed correct information works like a dream as far as I can see. The issue is not AOG but what it is being fed. Be it BNO055 calibration, dual antenna side draft or just WAS issues.

Maybe leave AOG alone and sort the data before it gets there by giving the PCB more power. ESP32 for example.

I realise your post is probably coming from somewhere deeper than just technicalities but honestly, I think what you have achieved is nothing short of remarkable. It already works as well if not better than many proprietary systems that are using far more expensive sensors and has given real benefits to a whole community of people, of which I am proud to be one.

If AOG stands still for a while whilst you and any of us that can help get time to add experiences or ideas then so be it. If we can get others involved, perhaps with skills on the programming side then all the better.

Thank you Brian.


Happy to re-read you Brian, and thanks for allowing small farm like mine to take advantage from the benefits that a system like AoG can dare without having to resort to expenses that would never be amortized. Having said that, I fully agree with @darrenjlobb for what concerns the dual antenna support directly in AoG, I also believe that it could be an advantage, in addition to the reasons written by him, also for an ease of configuration and connection for those who is not an expert or does not have much manual skills with soldering, 2 jumpers between the xbee of the cards would be enough, also in light of the fact that it seems to me that for now the only functioning and well tested double antenna setup are based on the UBX_RELPOSNED to provide the heading and this still implies the use of ublox receivers, I understand the desire not to take away the possibility of using different types of receivers outside of ublox, but this also implies having to write a code to calculate/obtain the heading/roll and convert it for AoG, which, at least I would not be able to do, also because the code is there (Drive UBX), with some bugs (driving in reverse and auto-connecting of the heading port), but it is there, so in my opinion it would be an advantage to have it in the main distribution. Sorry for the English, I hope you understand something.

I think that AOG can look and function much like the products available from the big boys. I also think that it needs to be developed as modules at least initially, with the goal to integrate most modules in the future. This way more people can work on it at the same time.
Think of the pings already in use. Most of the data needed for these modules is now or could be added to the pings.??

Not with priorities being set, people recruited to help and realistic time frames.

Part of my past life was managing @ 60 people. If that sounds like some quality that would suggest I might be suitable for a project manager, I’ll offer my name up.

Probably does, I don’t how many folks, but it seems that this stripped down version is where all things related to Drive needs to be developed, tested and all else added to it later.

Yea but it sure will be fun!! It’ just another piece of the puzzle that is prioritized just like everything else.

We prove to everyone that this crazy bunch of people can do others would say can’t be done. We eat the elephant one bite at a time. Just concentrate on each bite and pretty soon we need another elephant.

By the way - thanks for all you have accomplished.


Great comments! I am amazed at someone like Linus T working with thousands of programmers making the Linux kernel. That takes really good structure by top notch programmers in very modular form. That is not AOG, but hopefully some of the work going on now will make that a bit better.

In terms of guidance lines, the “old” way had 3 main lines, line that had 2 ref points. A curve was a driven collection bunch of points. And contour a collection of points where you already drove and applied. So when you think about it, an AB Line can be a collection of points all with the same heading which is exactly the same as a curve except as a crooked line with slightly different headings - which is the same as a contour line again just a crooked collection of points. Saves doing a lot of…

If (btn.curve.on && btn.ABLine. on && !btn.contour.on && numLines != 0)

it just becomes If (numlines !=0).

As in “do we have a line”. Now multiply that 500 times in the program, different forms for each line type, different classes and update button status etc and the program is unnecessarily complex - and most important hard to change and grow. Adding changes 3 or 4 times to roughly the same code is aggravating. But it was written in a progression, so it makes sense it needs a reset.

Guidance Lines… So all that happens is look for the 2 closest points on the reference line from the vehicle, figure out how far you are away, divide by tool width, and then make the current line x number of tool widths away. Figure out how far away pivot point is from new line (XTE) and heading error, doing a little bit of integral, and generate a steering angle to fix the error and we have autosteer. A lot simpler if there is only 1 class that does this instead of several all doing mostly the same.

This is a great project for people who want to learn about this stuff, arduinos, C#, GPS etc. Not a huge investment but really quite useful when it works. That is rare for farming. The focus will also be on a good premade board for autosteer. Still have super diy, but i think a good finished board like what @Aortner has been doing is really the way to go. Picking up the board for a bit more then what the parts cost and knowing 99.99% sure it will just work and makes the project a lot more fun as well.


Hello, I just met your software at new. Great effort and time has been devoted to this software. I want to say Thank you to everyone who contributed. I want to use it in Turkey. However, I am looking forward to using it. At first glance, the interface of the software is not user-friendly enough, menus and command buttons need to be better organized. software design experts need to be redesign. Most importantly, it can be more beneficial if the software is written in a platform-independent language such as the Java programming language.
Are there any user manuals? I ask you to prepare a document on this subject. Finally, I am looking forward to your help to add the Turkish language option. Thank you.

1 Like

Brian why isn’t the integral added directly into the arduino along with the proportional?

Just my option, but he probably mean making more calculation for correcting the steer angle value sent to the arduino when the tractor drift or in hills, or for compensating for the implement pulled.
AgOpenGPS have all the data the arduino have (like actual steer angle) plus a lot more.

So what I think:
AOG should have some Integral to adjust the steer angle value according the vehicle position to the ref line.
The Arduino only need Integral if it can’t reach the real angle value form the desired one.

Maybe someone has a different view about this!

Well i tried in the arduino, but doing it right in AOG allows a lot more information to calculate the integral and most importantly to reduce the integral in a second order fashion to prevent oversteer and wandering back and forth. That is really tricky.

It also allows the user to set gains etc right in AOG as different vehicles behave so differently as well.