GPS RTK - Project Update

GPS Updates


Latest test run. 

  1. The GPS Fence was recalculated so the ball positions are accurate. 
  2. NMEA high accuracy was enabled in the settings. 
  3. GPS strength data is sent to the Mower MEGA so the mower will stop operating if the GPS RTK signal is lost.

Results are much better.



Made a lot of updates to the GPS build pages now that the build is tested a little, and major bugs have been solved.

I want to debug the code further and test before releasing the next version of the code.  This next version should be a useable version to run the mower in full GPS mode.

Next goal is then to explore more complex GEO fences and see how waypoints can be implemented.



Finally got the ESP32 and the TFT MEGA talking to each other.  Seems like a combination of using a wrong/unsuitable pin on the ESP32 for the hardware serial and introduction of a logic level convertor.

Anyway, im glad thats sorted because it was quite annoying and delaying the whole thing.  

Now the GPS can be controlled through the TFT which makes a lot of easy GPS fence management possible.


I uploaded the 8.2 code which includes the GPS work to date


The little monster got fitted out with the RTK GPS system (system will fit to all mowers with a TFT screen).  This is really an unfiltered result. 

As you can see the results are promising (it stayed in the fence) but with mixed accuracy detecting the fence lines.  Sometimes it was within cm sometimes within 0.5-0.7m accuracy.  Im not certain but this could be to do with the GPS fix accuracy between the mower and the base station.  At the moment i estimate an accuracy of ± 0.7m..   I think at the beginning the fix wasnt so strong (and im also certain that the balls were not in same position as on the 09.06.2020 when i created the fence - which confuses anyway).

The base station is atatched to the screen behind the pool which gives it a good visible view of the sky and line of site into the garden.



Details of how the test was done:

  • Base station with a 'survey in' of 0.5m.
  • 4 point GPS fence (yes its simple) saved to the ESP32 Board.
  • Sonar is activated / Wire is activated as a safety net for my wifes flowers.

Things to improve:

  • Signal to the Mower Arduino MEGA of the GPS fix status.  (I think the various GPS fixed status of the mower GPS was giving the mixed results.)  Mower shouldnt continue unless an RTK fix is achieved.
  • Im stuggling to get 3 UARTs on the ESP32 to work.  1 for the GPS RX, 1 for the TFT RX&TX and 1 for the USB communication.  (currently 2 of 3 are working)
  • Create a new fence where Im certasin where the edges are and test again with the improvements above.





Its been a while but im back working on the RTK GPS. I decided to start simple and work into testing more complex GPS fences.


Yes i am using balls, sticks and a pool pole to test....🤣 Very high tech!!

The 4 balls are the GPS coordinates I saved into the Arduino.  The sticks represent the GPS fence line which is genrated from the 4 coordinates saved to the Arduino board.  

The Aruino board is checking the actual RTK GPS coordinates against this fence line to see if the GPS module is inside or outside the fence. The pool pole simulates the mower driving over the line. Next step is to use it in a mower.

Seems like the code has potential....




I have been testing the RTK system in my garden and I am very impressed! Here is a map of the coordinates read (in U-Center) as I walked around the garden and all the obstacles with the GPS module.


My GPS fence software was however showing me as being positined outside the garden at most points....?  Then I realised that the RTK GPS module is showing coordinates to 8 decimal places!

My fence data taken from Google maps is only 6 decimal places accurate.  Of course with the rounding the software was calculating my walk as outside the fence.

I will now work on a better way to input the GPS coordinates into the module.  Im thinking a button on the GPS module which saves the coordinate data to EEPROM on the Arduino.  This would be a great way to enter the fence data and ensure no bad coordinate data is inputted due to the long numbers involved.