Sal W6SAL - Updated on: 2026-03-23
We spend all this time obsessing over antennas and firmware and LoRa spreading factors — real riveting cocktail party conversation — and meanwhile your repeater is sitting on top of a hill somewhere thinking it’s 1970. January 1st, 1970. The dawn of Unix time. Your node woke up and said, “I have no idea when I am,” and just started counting from zero like a toddler learning numbers.
And nobody talks about this! We’re out here bragging about how many hops our message took, meanwhile the timestamps on those messages look like they were sent from a PDP-11 in a Nixon-era basement.
So let’s talk about GPS modules on MeshCore — specifically on repeaters and room servers — because it turns out strapping a little GPS chip to your node solves problems you didn’t even know you had. And a few you definitely did.
Here’s the thing about a repeater sitting on a mountaintop or bolted to a tower somewhere: it doesn’t have WiFi. It doesn’t have NTP. It doesn’t have a little guy inside with a Casio watch yelling out the seconds. When it boots up — whether from a power glitch, a firmware update, or because a squirrel chewed through something it shouldn’t have — it has zero concept of what time it is.
And time matters in a mesh network. Timestamps on messages. Logs. Coordinating between nodes. It all falls apart when your repeater thinks it’s the Epoch and every other node is living in 2026. You end up with messages that look like time travel, and not the fun kind.
A GPS module fixes this. GPS satellites — those beautiful taxpayer-funded aluminum cans circling the Earth — are essentially atomic clocks with a mailing address. Your little GPS chip locks onto a few of them and suddenly your repeater knows the time down to the nanosecond. Nanosecond. Your repeater now keeps better time than every clock in your house combined.
One command. That’s it:
gps sync
Boom. Node time synced to GPS. Your timestamps make sense. Your logs are coherent. The fabric of your mesh reality is intact. You can even set this up to happen automatically on boot, so your remote repeater gets its act together before it starts relaying packets for the rest of us.
Now here’s where it gets interesting for the mobile crowd. Maybe you’ve got a repeater in your truck. Maybe you’ve got a portable go-box setup for a Field Day or an event or — let’s be honest — because you just wanted an excuse to build a go-box. No judgment. We’ve all been there.
With a GPS module, your repeater actually knows where it is and can share that information. So when somebody’s looking at the mesh and wondering, “Where exactly is that repeater?”, the answer isn’t just a shrug emoji. It’s actual coordinates.
You set the location with:
gps setloc
That grabs the current GPS coordinates and saves them to the node’s preferences. The node now has an identity crisis resolved — it knows when it is AND where it is. That’s more self-awareness than most people achieve before their second cup of coffee.
MeshCore also gives you control over whether your node shares its location in adverts. Because maybe you want the world to know where your repeater lives. Or maybe you don’t. Maybe your repeater is on your roof and you’d rather not broadcast your home coordinates to the entire mesh. Fair enough. Operational security isn’t paranoia — it’s just good sense.
Here’s how that breaks down:
gps advert
This shows you the current setting, which will be one of three options:
none — Don’t include location in adverts. Your node is a mystery. An enigma wrapped in a Heltec board.share — Share the live GPS location from the sensor. Great for mobile setups where the location is always changing. Your node is basically saying, “Here I am, come find me.”prefs — Advertise the location stored in preferences (the one you saved with gps setloc). Good for fixed installations where you set it once and forget it. The node sits on the same hill forever, like a very dedicated monk with a very good antenna.Set it with:
gps advert share
…or none or prefs, depending on your level of exhibitionism.
Here’s every GPS command you can run when you’re logged into a MeshCore node remotely. Keep this in your back pocket:
| Command | What It Does |
|---|---|
gps |
Shows GPS status — off, or on with fix status and satellite count |
gps on |
Turns the GPS module on |
gps off |
Turns it off (saves power if you don’t need it) |
gps sync |
Syncs the node’s clock to GPS time |
gps setloc |
Saves current GPS coordinates to the node’s preferences |
gps advert |
Shows the current location advertising setting |
gps advert none |
Don’t share location in adverts |
gps advert share |
Share live GPS location |
gps advert prefs |
Share the saved/fixed location |
Look, if your repeater is sitting on your desk three feet from your router, you probably don’t need GPS for time sync. Your node’s got bigger problems, like why it’s on your desk instead of on a hill doing its job.
But if you’re running a remote solar-powered repeater on a ridge somewhere, or a portable room server for events, or a mobile rig in your vehicle — GPS is the difference between a node that knows what’s going on and a node that’s just guessing. And in emergency communications, guessing isn’t a feature. It’s a liability.
The GPS module is cheap. The power draw is minimal. The benefit to your mesh is enormous. Strap one on your repeater, run gps sync, and join the rest of us in the correct century.
73 de W6SAL