Two Antennas, One Accurate Heading: Building a Dual GNSS Guidance System with W5500 and AgOpenGPS
Build a precision agriculture guidance system using ESP32, dual ZED-F9P GNSS receivers, and WIZnet W5500 Ethernet for accurate RTK heading and reliable AgOpenGP
Quick Facts
| Item | Description |
|---|---|
| Category | Precision Agriculture |
| Platform | ESP32 |
| Ethernet | WIZnet W5500 |
| GNSS | Dual u-blox ZED-F9P |
| Communication | UDP, NTRIP |
| Software | AgOpenGPS |
| Difficulty | ⭐⭐⭐⭐☆ Advanced |
| Primary Function | Absolute Heading Generation |
Intuitive explanation
Modern precision agriculture depends on accurate vehicle heading as much as precise positioning. By combining two GNSS receivers, the system calculates the tractor's orientation even at low speeds or while stationary, enabling smooth automated steering. The W5500 provides reliable wired Ethernet communication with AgOpenGPS, ensuring stable delivery of RTK positioning and heading data. This approach is commonly used in autonomous tractors, precision farming equipment, field mapping, and other agricultural guidance systems where consistent navigation is essential.
Why This Project Matters
Most GNSS-based guidance systems estimate heading from vehicle movement.
That approach works while driving forward at speed, but becomes unreliable when the vehicle slows down, stops, or reverses. During these situations, steering accuracy decreases because the calculated heading no longer represents the vehicle's actual orientation.
A dual-antenna GNSS system eliminates this limitation by measuring the baseline between two antennas instead of estimating heading from motion.
The result is a stable heading that remains accurate even while stationary, allowing automatic steering systems to maintain reliable positioning throughout field operations.
Real-World Applications
This architecture is well suited for applications such as:
- Precision agriculture guidance systems
- Autonomous tractors
- RTK-based field navigation
- Agricultural robotics
- Automated outdoor vehicles
System Overview
The ESP32 receives GNSS data from two ZED-F9P receivers, calculates the vehicle heading, and transmits navigation information to AgOpenGPS.
RTK Corrections
│
▼
Dual ZED-F9P Receivers
│
▼
ESP32 Heading Processor
│
▼
W5500 Ethernet
│
▼
AgOpenGPS
│
▼
Auto SteeringUnlike conventional heading estimation, the vehicle orientation is calculated directly from the measured antenna baseline.
Where WIZnet Fits
The W5500 provides the project's wired Ethernet interface.
Rather than relying on Wi-Fi for continuous communication, the W5500 delivers deterministic Ethernet connectivity between the controller and AgOpenGPS.
Within this architecture, the W5500 is responsible for:
- UDP communication
- NTRIP data forwarding
- AgIO discovery messages
- Reliable Ethernet transport
- DHCP or Static IP networking
Meanwhile, the ESP32 remains dedicated to GNSS parsing, heading calculation, and application logic.
Separating networking from navigation processing improves system reliability while simplifying software design.
Technical Highlights
Absolute Heading from Dual GNSS
Heading is computed from the relative position between two RTK GNSS receivers rather than vehicle movement.
Advantages include:
- Accurate heading while stationary
- Stable heading during turns
- Reverse driving support
- Reduced magnetic interference
Multiple Communication Modes
The firmware supports multiple transport methods, including:
- USB
- Ethernet (W5500)
- Wi-Fi via router
- Direct Wi-Fi
This allows the same navigation firmware to be deployed across different installation environments.
Robust Ethernet Communication
The Ethernet implementation includes:
- Automatic DHCP with Static IP fallback
- Link-status monitoring
- Hardware detection
- Multiple UDP channels
- Automatic recovery after network failure
These features make the system suitable for outdoor operation where network interruptions may occur.
Practical Tips
- Install both GNSS antennas symmetrically across the vehicle.
- Maintain a rigid antenna baseline for accurate heading calculation.
- Assign unique MAC addresses if multiple controllers share the same network.
- Verify RTK corrections before testing steering performance.
- Use wired Ethernet when maximum communication stability is required.
Difficulty
⭐⭐⭐⭐☆ Advanced
Recommended for developers with experience in:
- ESP32 firmware
- RTK GNSS
- UDP networking
- Precision agriculture
- Embedded Ethernet
Similar WIZnet Maker Projects
| Project | Focus | Difference |
|---|---|---|
| STM32 Modbus TCP Controller | Industrial Ethernet | Focuses on factory communication rather than navigation. |
| OpenPLC with W5500 | Industrial Automation | PLC-based control instead of vehicle guidance. |
| MQTT Dashboard with W5500 | IoT Monitoring | Cloud telemetry rather than real-time positioning. |
FAQ
Why use two GNSS receivers?
A dual-antenna system calculates heading from the measured antenna baseline, providing accurate orientation even when the vehicle is stationary.
Why use W5500 instead of Wi-Fi?
W5500 provides stable wired Ethernet communication with hardware TCP/IP offloading, reducing communication variability during continuous field operation.
What role does the ESP32 play?
The ESP32 processes GNSS data, computes heading, manages communication, and interfaces with AgOpenGPS.
Can this system operate without Ethernet?
Yes. The firmware also supports USB and Wi-Fi communication, although Ethernet provides the most stable wired connection.
Who is this project suitable for?
It is intended for advanced makers, agricultural automation developers, and engineers building RTK guidance systems.
Source
Repository: https://github.com/Jeep1945/Dualheading-2022
Primary hardware:
- ESP32
- WIZnet W5500
- u-blox ZED-F9P GNSS Receivers
- AgOpenGPS
Tags
#W5500 #ESP32 #AgOpenGPS #PrecisionAgriculture #RTKGNSS #DualGNSS #Ethernet #AutonomousVehicle #EmbeddedSystems #PrecisionFarming

