GPS receiver? What’s the point?
Modern phones (like iPhones) are already equipped with GPS receiver that support the new L5 satellites, which means you can get decimeter-level accuracy even with a free signal.
But, when you use parallel driving app, since the phone is usually located in the cab of your tractor, the roof can block some of those satellites and reduce your accuracy.
You could try turning off all sources of interference, putting your phone in airplane mode, and placing it as close as possible to the windshield, but that still might not be enough.
And, if you’re using an older phone, the GPS receiver might not be great to begin with. So, what’s a farmer to do?
It’s simple, really. Just buy the right modules on any marketplace and connect them together. I’ve already done the rest! After you’ve put it all together, just stick it in any old case you’ve got lying around.
Is it hard? Can I do it?
I’ve come up with two super-easy-to-assemble devices that you can connect to the Parallel Driving app.
Technically speaking, it’s just a way to transmit the NMEA stream from the device to your phone’s brain (if that means anything to you). Both devices only require you to connect four wires. All the instructions and the program’s source code are available on GitHub.
What’s the difference between the options?
U-blox based GPS receiver
The first option is based on the u-blox module and doesn’t require any firmware at all. Just connect it to your computer and do the initial setup. The downside is that it only works with standard GPS accuracy and might not work on some Android phones (due to the MTU, which is the number of characters that can be transmitted at once via Bluetooth).
https://github.com/Udj13/Agro-Navigation-receiver
TAU1201 based GPS receiver
The second option is based on the TAU1201 module, which is super affordable and works with L5 satellites for decimeter-level accuracy. It’s a full-fledged receiver with a microcontroller. I used the ESP32 module because it’s cheap and already has built-in Bluetooth.
https://github.com/Udj13/gps-ble-receiver/
The assembly is just as easy as the first option – only four wires! – but you’ll need to flash the firmware into the microcontroller. I’ve tried to describe the process as fully as possible, and if you get stuck, you can always ask a DIY-enthusiast friend for help. The way it works is simple: we filter the necessary data and send it via Bluetooth to the app.
If we get into the technical details, we only need the RMC and GGA from the NMEA stream to reduce the amount of data transmitted, and then we divide it by the MTU and send it via BLE.