Why Do You Need an External Receiver?
If your phone doesn't have a very good GPS module or the tractor cabin strongly shields satellite signal reception, you can connect an external GLONASS/GPS satellite receiver to improve accuracy. With it, you can achieve accuracy of about 10–20 cm, which is quite sufficient for chemical applications, such as spraying herbicides or applying pesticides.
If your smartphone supports dual-frequency GPS (L1+L5) — iPhone 14 Pro and newer, Samsung Galaxy S23+ and newer, Google Pixel 7+ and newer — you can achieve accuracy down to 10 cm without an external receiver. However, in a tractor cabin, satellite visibility is limited, and an external receiver will provide a more stable signal.
What You'll Need
- GPS/GLONASS module (e.g., u-blox NEO-M8N or similar)
- Arduino microcontroller or compatible (e.g., Arduino Nano)
- Bluetooth module HC-05 or HC-06
- GNSS antenna (usually included with the module)
- Enclosure for moisture and dust protection
- Wires for connecting components
- USB cable for flashing the microcontroller
How It Works
The external receiver receives GLONASS/GPS satellite signals with high accuracy and transmits coordinates to your phone via Bluetooth. The Agro Navigation app automatically detects the connected receiver and uses its data instead of the phone's built-in GPS. This allows you to achieve 10–20 cm accuracy even in conditions of limited satellite visibility from the tractor cabin.
Agro Navigation also supports any commercial Bluetooth GPS receivers — Garmin GLO 2, Dual XGPS, and others. Simply pair the device in your Bluetooth settings, and it will work automatically.
Building the Receiver
Step 1. Connect the GPS Module to Arduino
Connect the GPS module to the Arduino microcontroller: VCC to 5V, GND to GND, TX to Arduino RX pin, RX to Arduino TX pin. Make sure the antenna is connected to the GPS module.
Step 2. Connect the Bluetooth Module
Connect the HC-05 Bluetooth module to Arduino: VCC to 5V, GND to GND, TX to RX pin (through a voltage divider), RX to TX pin. Note that the Bluetooth module uses 3.3V logic, so a voltage divider is required on the Arduino TX → Bluetooth RX line.
Step 3. Flash the Arduino
Upload the firmware to Arduino via Arduino IDE. The firmware reads NMEA data from the GPS module and transmits it over Bluetooth. Source code and flashing instructions are available on our GitHub.
Step 4. Place in an Enclosure
Place all components in a protective enclosure. Route the antenna outside for better signal reception. The enclosure should be resistant to moisture and dust, as the receiver will be used in field conditions.
Step 5. Connect to Your Phone
Turn on the receiver, enable Bluetooth on your phone. Find the device in Bluetooth settings and pair it. Open the Agro Navigation app — it will automatically detect the external receiver.
Comparison with Commercial Systems
Don't want to build it yourself?
Order a ready-made GPS/GLONASS receiver with Bluetooth — assembled, tested, with warranty. Connects to Agro Navigation automatically.