# AgOpenGPS

AgOpenGPS is a free, open-source precision agriculture auto-steer system that delivers centimeter-level guidance for a fraction of the cost of proprietary solutions like John Deere StarFire or Trimble RTX. It runs on a Windows tablet mounted in the tractor cab and uses a **u-blox ZED-F9P** GNSS receiver for RTK positioning. The system consists of two programs: **AgOpenGPS** (the main guidance interface) and **AgIO** (the background I/O manager that handles NTRIP connections, serial ports, and UDP communication with the steering hardware). With RTKdata.com providing corrections, AgOpenGPS achieves repeatable pass-to-pass accuracy of 2.5 cm — comparable to systems costing thousands per year in subscriptions.

## Requirements

* **Windows tablet or laptop** running AgOpenGPS (v5.x or later)
* **u-blox ZED-F9P** receiver board (e.g., Ardusimple simpleRTK2B, SparkFun GPS-RTK2)
* **USB cable** connecting the F9P to the tablet
* **Internet connection** on the tablet (phone hotspot via Wi-Fi or USB tethering)
* **RTKdata.com account** with active RTK credentials (username starting with `rtk` and password from your RTK dashboard)
* **F9P configured for RTCM3 input** on the correct UART/USB port

{% hint style="info" %}
Don't have an RTKdata.com account yet? [Start 30-day Free Trial](https://rtkdata.com/try-rtk-corrections-free-for-30-days/) or [View Pricing](https://rtkdata.com/pricing/)
{% endhint %}

## Method A: Built-in NTRIP client via AgIO (recommended)

AgOpenGPS v5+ uses the companion program **AgIO** to manage all NTRIP connections. AgIO runs in the background and handles receiving corrections from the NTRIP caster, then delivers them to the F9P receiver via serial port or UDP. No extra software is needed.

{% stepper %}
{% step %}

#### Connect the F9P receiver

1. Connect the u-blox F9P to your Windows tablet via USB.
2. Open **Device Manager** and note the COM port number assigned to the F9P (e.g., COM3).
3. Ensure the F9P firmware is updated to v1.32 or later using **u-blox u-center**.

{% hint style="warning" %}
The F9P must be pre-configured to accept RTCM3 corrections on its USB input. Use u-center to verify that **RTCM3 input** is enabled on the USB port. Without this, corrections from AgIO will not reach the receiver.
{% endhint %}
{% endstep %}

{% step %}

#### Launch AgIO and configure the GPS port

1. Launch **AgIO** — it typically starts automatically with AgOpenGPS but can also be started independently.
2. In AgIO, click the **GPS / Serial** button to open serial port settings.
3. Select the COM port matching your F9P (e.g., COM3).
4. Set baud rate to **460800** (or match your F9P configuration).
5. Click **Connect**. The AgIO status bar should show satellite count and position data flowing.

{% hint style="info" %}
AgIO communicates with AgOpenGPS via UDP on the local machine. Once AgIO is receiving GPS data, AgOpenGPS automatically picks it up. You do not need to configure a COM port in AgOpenGPS itself when using AgIO.
{% endhint %}
{% endstep %}

{% step %}

#### Enter RTKdata.com NTRIP settings in AgIO

1. In **AgIO**, click the **RTK / NTRIP** button to open the NTRIP client dialog.
2. Ensure the **NTRIP** indicator is **green (ON)**. If it is red, click it to enable NTRIP.
3. Fill in the fields. Select the tab for your region:

{% tabs %}
{% tab title="North America" %}

* **Host (domain):** `rtk.rtkdata.com`
* **Host (IP fallback):** `13.56.117.10`
* **Port:** `2101`
* **Username / Password:** From *RTK Credentials* in the internal dashboard (not website login)
* **Mountpoint (ALL CAPS):** `AUTO`
  {% endtab %}

{% tab title="Europe" %}

* **Host (domain):** `eu.rtkdata.com`
* **Host (IP fallback):** `3.73.41.96`
* **Port:** `2101`
* **Username / Password:** From *RTK Credentials* in the internal dashboard (not website login)
* **Mountpoint (ALL CAPS):** `AUTO`
  {% endtab %}

{% tab title="Australia" %}

* **Host (domain):** `aus.rtkdata.com`
* **Host (IP fallback):** `54.206.56.130`
* **Port:** `2101`
* **Username / Password:** From *RTK Credentials* in the internal dashboard (not website login)
* **Mountpoint (ALL CAPS):** `AUTO`
  {% endtab %}
  {% endtabs %}

3. Set the **GGA send interval** (in seconds). A value of **5** is recommended. Setting this to **0** disables GGA sending entirely — do not set to 0.
4. Configure the correction output:
   * **Send to Serial:** Enable this if your F9P is connected via USB serial and receives corrections on that port. This is the most common setup.
   * **Send to UDP:** Enable this if your hardware (e.g., All-in-One Teensy board) receives corrections over the network. The default UDP port is **2233**.
   * Turn off whichever output method you are **not** using.
5. Optionally, tap **Get Source Table** to browse available mountpoints. For RTKdata.com, simply type `AUTO` in ALL CAPS.
6. Click **Connect** or **Enable**.

{% hint style="warning" %}
**Both Serial and UDP output are enabled by default.** Turn off the one you do not use. If both are on and you only have a serial connection, the extra UDP traffic is harmless but unnecessary. If you only use UDP (Ethernet boards), make sure Serial is off to avoid port conflicts.
{% endhint %}
{% endstep %}

{% step %}

#### Verify RTK Fix

1. Return to the main **AgOpenGPS** screen (AgIO continues running in the background).
2. Watch the solution status indicator: **SINGLE** → **FLOAT** → **FIX**.
3. The correction age should display below 3 seconds.
4. In AgIO, you can also verify the NTRIP status: the NTRIP indicator should stay green, and you should see data bytes incrementing for both incoming RTCM and outgoing GGA.
5. Once at FIX, you have centimeter-level accuracy and can begin creating guidance lines.

{% hint style="info" %}
FIX typically takes 30–90 seconds with good sky visibility. If you stay on FLOAT for more than 5 minutes, check the troubleshooting section below.
{% endhint %}
{% endstep %}
{% endstepper %}

## Method B: External NTRIP client

If AgIO's built-in NTRIP client does not work for your setup (e.g., network restrictions, special proxy requirements), use an external NTRIP client such as **Lefebure NTRIP Client** (Windows) or **SNIP** to receive corrections and forward them to the F9P via a serial port.

1. Install Lefebure NTRIP Client on your tablet.
2. Enter the same RTKdata NTRIP settings from the tabs above.
3. Set the output to the F9P's COM port at the matching baud rate.
4. Lefebure forwards RTCM3 data to the F9P, which computes the RTK solution.
5. AgOpenGPS reads the corrected position from the F9P via AgIO — disable the NTRIP client in AgIO to avoid conflicts (set NTRIP indicator to red/OFF).

## Vertical reference (heights)

{% hint style="info" %}
Heights from RTKdata.com are **ellipsoidal**. For agriculture applications, this is typically sufficient since auto-steer guidance uses horizontal positioning. If you need terrain-relative heights for drainage or leveling, apply a local geoid model.
{% endhint %}

## Troubleshooting

| Problem                                   | Cause                                  | Fix                                                                                                                               |
| ----------------------------------------- | -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| COM port not found                        | F9P not recognized by Windows          | Reinstall the u-blox USB driver. Try a different USB cable or port.                                                               |
| AgIO resets when toggling Serial NTRIP    | Expected behavior                      | AgIO restarts its serial subsystem when you enable/disable Serial NTRIP. Wait for it to reconnect.                                |
| No corrections received                   | F9P UART/USB misconfigured             | Open u-center and verify RTCM3 input is enabled on the USB port. Reflash the F9P configuration file from the AgOpenGPS community. |
| Stuck on FLOAT                            | Base station too far or poor sky       | Check RTKdata coverage. Move to open field away from buildings and tree lines.                                                    |
| NTRIP connects but correction age climbs  | Tablet internet dropping               | Verify Wi-Fi hotspot connection. Use USB tethering for a more stable link in the cab.                                             |
| GGA send interval set to 0                | GGA disabled — caster gets no position | Set the GGA send interval to **5** seconds in AgIO's NTRIP settings.                                                              |
| Both Serial and UDP active causing issues | Port conflicts or doubled corrections  | Turn off the output method you are **not** using (Serial or UDP) in AgIO's NTRIP settings.                                        |
| Mountpoint error                          | Wrong capitalization                   | Type `AUTO` in ALL CAPS. Do not attempt to browse the source table.                                                               |

## Tips and tricks

* **RTKdata + AgOpenGPS delivers RTK guidance for under $200/year** — compared to $1,500+/year for John Deere StarFire SF3 or Trimble CenterPoint RTX.
* **Use USB tethering** from your phone to the tablet for the most reliable internet connection in the tractor cab.
* **Save an F9P config file** with correct settings so you can reflash quickly if the receiver resets.
* **The AgOpenGPS community** on Discourse and GitHub is active — search for "RTKdata" or "NTRIP" for setup threads from other users.
* **Update F9P firmware** regularly via u-center. Each firmware release improves multi-constellation tracking and Fix reliability.
