Many new MeshCore administrators ask several of the same questions. One of these questions is the reasoning for adding a GPS to a MeshCore repeater. On the surface, the addition of a GPS does not seem to warrant the additional cost to the repeater build. Especially since the repeater location can be statically set and that location will be included in the periodic adverts.
So the principal reason for adding a GPS to a repeater is simply time. Without a GPS the time on a repeater (or a room server for that matter) will drift as the ESP32 and nRF52 platforms do not have dedicated hardware (like a real-time clock) for keeping accurate time. They keep time by approximating the number of times they have executed their event loops, but each loop can very a bit so they can loose or gain time while they are operating.
In addition, if the repeater is rebooted or looses power when it starts operating again it will not know what the time is. When this happens it will default to a date in 2024 (I don’t remember the precise date). With a GPS the repeater will learn the current date and time shortly after starting.
Will the repeater operate without the correct date and time? Yes, it will repeat packets as there is no dependency on having accurate date and time.
That does not mean that date and time are irrelevant on the MeshCore network. Adverts are cryptographically signed and part of that signature is using the current time. In addition, there are tools like MeshMapper that use the adverts to gather network information and publish it on maps. Having bad time in the adverts can lead to erroneous data on the maps and may cause the repeater to appear stale or just not show up on the map. Also the neighbor table in the repeater may have problems displaying neighboring repeaters if the clocks are significantly out of sync.
So you can see that having accurate time on the repeater can be very beneficial to the network and help keep things in order. So, yes, add the additional $10 to the repeater build it will be worth it.
There is one more reason to include a GPS, albeit a rare situation. Let’s say you have a repeater hanging in a tree or on top of a building. Will it hold up during a severe wind storm, hurricane or tornado? How far will it be transported should it be dislodged or the mount fail? Which direction did it go? If it was up on a building or a pole, did a facility maintenance person (I do occasionally try to be politically correct) not know what it was and remove it?
With a GPS you have a chance of finding out where the repeater has been relocated to–whether it be intervention by man or nature. Using a static location would not help in these situations. While not a guarantee that you will be able to recover the repeater the $10 difference is better than having to payout for a whole new repeater.
I have added a GPS, but I am not getting location on my repeater!
Ah, you have added the GPS, but the repeater firmware does not activate the GPS by default. The repeater can tell you that it has a GPS, but it just does not get turned on without you doing so.
Quite simply, all one needs to do is execute the gps on command on the repeater’s command line. This is usually accessed from the remote management on the MeshCore application. You can get the current status of the GPS by sending the gps command.