AgOpenGPS: guidance and section control for a tractor, in open source
Ag Precision Mapping, Section Control and Guidance Software
At a glance
- What is it?
- AgOpenGPS is Apache licensed guidance software for agriculture: it records and maps position from NMEA strings, drives section control on up to 16 or 64 sections, and computes pure pursuit steer angles for AB line, AB curve and contour guidance. The Windows Forms build reached its final development stage in April 2026 and now takes bug fixes only, with new work moving to an Avalonia version.
- Who is it for?
- AgOpenGPS suits a farmer or ag-tech developer who wants to build an auto-steer and section control system on commodity hardware with open firmware and open software rather than a proprietary retrofit kit. It does not suit anyone who needs a finished, supported product with a defined fault liability, because the primary Windows build is in maintenance mode with bug fixes only.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly C#, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Two programs, one for the cab and one for the wiring
AgOpenGPS is two programs. AgIO is the communication hub to the outside world, and AgOpenGPS is the application. You can run either, and within each you can run the other.
That sentence is compressed, and the detail is important: you only need to run AgOpenGPS if you are using the simulator. In a real installation the hardware side runs AgIO, and the tablet or PC in the cab runs the application, and they talk to each other over the link that the hardware provides.
The split is a consequence of what the two halves have to survive. The application is a WinForms program on a Windows machine in a vibrating tractor cab. The communication hub is the thing that has to sit next to the implement, talk to the steering controller, the rate controller and the GPS receiver, and keep doing that when the cab machine reboots or loses the link. The repository also has a separate PCB and firmware repository for the steering and rate control, machine control, GPS and simulator hardware, so the electronic side of the project is not inside this one.
The audience is therefore twofold: a farmer assembling a system, and a developer writing software for one. The documentation site, the forum and the separate hardware repositories are the parts of the ecosystem you will actually spend time in.
Mapping, section control and pure pursuit guidance
The functionality list is compact and specific.
The software reads NMEA strings for the purpose of recording and mapping position information for agricultural use. NMEA is the sentence protocol that GPS receivers speak, so this is the position source for everything else.
Section control is the money feature. There are up to 16 sections of Section Control that can have unique widths, or up to 64 same width sections, to control implement application of product and prevent over-application. Over-application is the expensive failure in agriculture: a sprayer that keeps running past the end of a row puts chemical where it should not be, wastes money and can cause a compliance problem. Sixteen independently switchable sections of different widths is the arrangement a modern wide implement needs, and the alternative of 64 equal-width sections covers a different machine class.
Guidance comes from pure pursuit steer angles computed from the reference line, covering AB line, AB curve and contour guidance. Pure pursuit is a steering algorithm that aims the vehicle at a point a fixed distance ahead on the target line, and it is a reasonable choice because it needs no model of the vehicle's steering geometry to be accurate.
There is also an Auto Headland feature called UTurn, on curve and AB line, with loops for narrow equipment, and background mapping. The headland feature exists because a headland turn, where the machine leaves the worked area to go around, is where guidance systems traditionally fail: the target line is a loop rather than a straight run.
The WinForms build is finished, the Avalonia one is next
The status banner at the top of the README is the first thing an evaluator should read, and it says AgOpenGPS WinForms has reached its final development stage, dated April 2026.
The three rules under it are explicit. No new features. No refactoring. Bug fixes only. And then the line that decides the roadmap: active development has moved to the Avalonia version.
This matters more than a normal maintenance notice, because a WinForms application is tied to Windows. A cross-platform rewrite in Avalonia is not a UI port, it is a move to a different UI framework with a different rendering model, and the rework will be visible in the released binaries for a while. A farm that buys a tablet today may find that the version they install behaves differently from the one they installed last season, and the version number will not tell them which framework they have.
There is also a subtlety in the branch policy. The README says the master branch contains the most stable version of AgOpenGPS, while the develop branch is actively being worked on and may not be ready for production use. The repository's default branch, however, is develop. So a plain clone, or the source archive that GitHub offers, gives you the branch the project itself describes as possibly not ready for production use. Contributors are told to check out develop, create a branch named after the feature and open a pull request against develop, so the branch naming follows the project convention, but the practical point for a user is that master is where the stable code lives.
On maintenance status overall, the repository is not archived and the last push was on 2026-10-18, so the codebase is still being worked on while the WinForms surface settles into bug fixes.
Running it and building it
Installation is deliberately simple, because the intended user is not necessarily a developer.
You download the most stable AgOpenGPS release, unzip or extract the contents to a folder that is accessible by the user rather than the root of the C drive, even on your desktop, and then run AgOpenGPS.exe. The warning about not extracting to the root of the drive is the kind of detail that matters on a farm machine that may be running as a restricted account.
Building from source follows the Visual Studio route. You clone the repository, for example using Visual Studio itself, open the solution at SourceCode/AgOpenGPS.sln in Visual Studio, add your code and rebuild. To get a single AgOpenGPS folder containing all the applications, you execute a publish command in the root folder:
dotnet publish SourceCode/AgOpenGPS.slnThe tree is small: SourceCode/, docs/, .github/, a global.json that pins the .NET SDK version, a CLAUDE.md, the LICENSE and the README. There is no separate build system, no packaging script and no configuration directory, which is consistent with a project whose build is the standard Visual Studio workflow.
That global.json is worth knowing about, because a .NET build that silently uses a different SDK than the project expects is a common source of confusing errors, and pinning the SDK version in the tree prevents it.
Weblate, the branch policy and the wider hardware ecosystem
Translations are managed through Weblate. The README gives the contributor path: create or log in to a free Weblate account, go to the AgOpenGPS project, select your language or add a new one, and translate strings directly in the web interface. A translation status badge is shown at the top.
The contribution path is separate and equally explicit. Checkout the develop branch, create a branch named after your feature, make the changes and commit, then open a pull request targeting develop. The two workflows are independent because one is about UI strings and the other is about code, and a translator with no interest in the C# source can contribute the first without touching the second.
The links at the end of the README describe the rest of the ecosystem: the AgOpenGPS documentation site, the AgOpenGPS forum on Discourse, the PCB and firmware repository, and a separate SK21 rate control repository. That last one shows the shape of the project. It is not a single application, it is a family of repositories covering the display application, the IO board, the firmware and the rate control, plus a hardware repository with the PCB layouts, and a discussion forum where the community works out how to combine them.
The release list shows a steady patch cadence on the 6.x line: 6.8.6 on 2026-08-17, 6.8.5 on 2026-05-07 and 6.8.4 on 2026-04-21. Point releases in a safety-adjacent field are slow by design, because a change that alters a steering angle or a section timing is not a trivial patch.
Apache 2.0 terms and what you are actually taking on
AgOpenGPS is licensed under the Apache License 2.0, with the LICENSE file at the root of the tree. The README spells out the practical terms: you may use, modify and distribute this software, including commercially, and if you distribute it in original or modified form you must include a copy of the licence, keep the existing copyright and attribution notices, and mark any files you changed. The software is provided as is, without warranties or conditions of any kind.
For an ag-tech company that is the useful part of the licence: the commercial use is explicit, and the Apache 2.0 patent grant and the trademark clause are both favourable compared with copyleft. The trade-off is the warranty disclaimer, which in this field matters more than in most.
The realistic caveat is about scope. AgOpenGPS is the application in the cab. The value a farmer is buying is a working system: the tablet software, the IO board, the firmware that drives the steering valve and the rate controller, the GPS receiver, and the calibration for their particular implement. This repository gives you the first of those and links to repositories for the rest, and it does not include the hardware in this repository. It also does not, in the text available here, describe a validation or certification process for safety-relevant steering behaviour.
So the honest framing is that this is a well-licensed open application in a project that has grown into a hardware ecosystem. Adopting it means engaging with the forum and the hardware repositories, and accepting that a system with a steering actuator has failure modes that software licensing does not address.
Editorial conclusion
AgOpenGPS suits a farmer or ag-tech developer who wants to build an auto-steer and section control system on commodity hardware with open firmware and open software rather than a proprietary retrofit kit. It does not suit anyone who needs a finished, supported product with a defined fault liability, because the primary Windows build is in maintenance mode with bug fixes only. Before adopting, read the documentation site and the forum for the hardware combination you plan to use, check whether the PCB and firmware repository covers your board, and confirm which build you are running, since the repository default branch is develop while the README states master holds the most stable version.
Frequently asked questions
What is AgOpenGPS used for?
AgOpenGPS is guidance software for agriculture. It reads NMEA strings to record and map position, controls up to 16 section control sections with unique widths or up to 64 same width sections to prevent over-application, and outputs pure pursuit steer angles for AB line, AB curve and contour guidance, with an auto headland feature called UTurn.
What is AgIO and do I need to run AgOpenGPS?
AgOpenGPS is two programs: AgIO, the communication hub to the outside world, and the AgOpenGPS application. The README states you only need to run AgOpenGPS if you are using the simulator, since in a real install AgIO runs on the hardware side.
Is the Windows version of AgOpenGPS still being developed?
No new features. The README states the WinForms version reached its final development stage in April 2026, with bug fixes only and no refactoring, and that active development has moved to the Avalonia version.
How do I install and build AgOpenGPS?
To install, download the most stable release, extract it to a folder the user can access rather than the root of the C drive, and run AgOpenGPS.exe. To build, open SourceCode/AgOpenGPS.sln in Visual Studio and run dotnet publish SourceCode/AgOpenGPS.sln in the root folder.
Which branch should I use for AgOpenGPS?
The README says the master branch contains the most stable version while the develop branch is actively worked on and may not be ready for production use, and contributions should target develop. Note that the repository default branch is develop, so a plain clone gives you the less stable branch.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/agopengps-official-agopengps)Was this useful?