Skip to main content

GPS Integration in LoRa Nodes

GPS in a LoRa mesh node serves two primary purposes: precise location sharing with other mesh users (visible on the Meshtastic map or MeshCore position view), and network topology visualization. Whether you need GPS depends heavily on your use case - and whether you have it, you need to manage its substantial power draw carefully.

Why GPS Matters for Mesh Networking

  • Position sharing: Nodes with GPS broadcast their coordinates at regular intervals. Other mesh users can see your location on the map, which is critical for field teams, SAR operations, and event coordination.
  • Network mapping: Community mesh maps (like Meshmap.net for Meshtastic) aggregate node positions to show coverage areas and network topology. GPS-equipped nodes contribute to this.
  • Time synchronization: GPS provides a highly accurate time signal (UTC). Meshtastic uses a listen-before-talk (CSMA-style) channel access scheme, not strict time-slotting/TDMA, so a node does not need network-wide time sync to communicate. Clock drift on a node without GPS (and without a phone/RTC time source) mainly affects message timestamps and position freshness, not the ability to send and receive messages.
  • Range testing: Knowing the exact GPS coordinates of both ends of a link allows accurate range measurement for antenna and placement experiments.

Boards with Integrated GPS

Board GPS Module Constellations Cold Start GPS Antenna Notes
LilyGO T-Beam Supreme u-blox NEO-M10S / MAX-M10S (Quectel L76K option) GPS, GLONASS, Galileo, BeiDou ~30 - 45s (open sky) External patch antenna included Best GPS performance of common boards
LilyGO T-Echo Quectel L76K GPS, GLONASS, BeiDou ~45 - 90s (open sky) Integrated ceramic patch Compact, adequate for field use
LilyGO T-Beam v1.1 (older) NEO-6M / NEO-M8N GPS only (NEO-6M) or GPS+GLONASS (M8N) 45 - 120s External patch antenna Older; M8N variant is better
RAK WisBlock + RAK1910 u-blox MAX-7Q GPS, GLONASS ~60s Requires external patch antenna Module adds GPS to any WisBlock base
RAK WisBlock + RAK12500 u-blox ZOE-M8Q GPS, GLONASS, Galileo, BeiDou ~26s Integrated ceramic patch Better performance than RAK1910

Adding GPS to Boards Without

Boards like the Heltec WiFi LoRa 32 V3, Station G2, or basic ESP32 LoRa boards do not include GPS. You can add it via UART:

Common Add-On GPS Modules

Module Chip Interface Cost (as of 2026-06-08) Notes
GT-U7 / Neo-6M clone u-blox NEO-6M (often clone) UART (9600 baud default) $4 - $8 Ubiquitous, adequate for basic use; GPS only, no GLONASS
Beitian BN-220 u-blox UBX-M8030 UART $12 - $18 Concurrent GPS + GLONASS (or GPS + BeiDou); compact; popular in FPV community
Beitian BN-880 u-blox UBX-M8030 + compass (HMC5883L or QMC5883L depending on revision) UART + I2C $15 - $22 GPS + GLONASS + compass
Grove GPS (Seeed) Air530 or u-blox UART via Grove connector $10 - $15 Plug-and-play with Grove system boards
PA1010D (Adafruit) MediaTek MT3333 UART or I2C $14 - $20 Very small (25×25mm); good sensitivity

UART Wiring for External GPS

Connecting an external GPS module via UART to an ESP32 or nRF52840 board requires four wires:

GPS Module Pin Connects To (MCU) Notes
VCC 3.3V or 5V (check module specs) Most modern GPS modules are 3.3V; some accept 5V
GND GND Common ground reference
TX (GPS transmits) RX pin on MCU (e.g., GPIO 34 on T-Beam) GPS sends NMEA sentences to MCU
RX (GPS receives) TX pin on MCU MCU sends configuration commands to GPS; not strictly required for basic operation

In Meshtastic firmware, configure the GPS UART pins via the serial module settings or by editing the platformio.ini defines for your board variant. The default baud rate for most GPS modules is 9600; some support higher speeds (38400, 115200) for reduced latency.

GPS Power Consumption

GPS is one of the highest-power peripherals in a LoRa mesh node. Understanding its power draw is essential for battery life calculations:

GPS Module Acquisition Current Tracking Current Standby / Sleep
u-blox NEO-6M (clone) ~50 mA ~45 mA ~4 mA (power save mode)
u-blox MAX-M10S (T-Beam Supreme) ~18 mA ~12 mA ~28 µA (hardware backup mode)
Quectel L76K (T-Echo) ~29 mA ~20 mA ~0.5 mA (standby)
u-blox ZOE-M8Q (RAK12500) ~22 mA ~18 mA ~15 µA (backup)
Beitian BN-220 ~40 mA ~35 mA ~1 mA

A GPS module drawing 20 mA continuously on an nRF52840 node that otherwise draws only a few milliamps (depending on sleep and BLE settings) completely changes the power budget. With GPS always on, the effective battery life drops by an order of magnitude on an already efficient node.

Disabling GPS to Save Power

For nodes where GPS is not needed - fixed repeaters, indoor nodes, nodes operated by users who are not location-sharing - GPS should be disabled:

In Meshtastic

  • Open Meshtastic app → Radio Config → Position
  • Set GPS Mode to "Disabled" or "Not Present"
  • Set Position Broadcast Interval to 0 (disable position broadcasting)
  • The firmware will stop initializing the GPS UART and power-gate the GPS module if the board supports it

In MeshCore

  • GPS can be disabled in the node configuration. Boards without GPS will automatically operate without position features.

Hardware Power Gating

The T-Beam Supreme provides software-controllable GPS power - on the Supreme, GPS power is gated through the AXP2101 PMIC. When GPS is disabled in Meshtastic firmware, cutting power to the GPS eliminates its standby draw entirely (the MAX-M10S otherwise draws ~28 µA in hardware backup mode). This is the correct way to save GPS power on the T-Beam.

On boards without hardware GPS power gating (many DIY builds), you may need to add a P-channel MOSFET or a load switch IC between the 3.3V rail and the GPS module's VCC to enable software-controlled power off.

GPS Accuracy and Placement Tips

  • Sky view is everything: GPS requires line-of-sight to satellites. A node in a metal enclosure, inside a building, or under a dense tree canopy will have poor GPS accuracy or fail to acquire a fix. For outdoor fixed nodes, ensure the GPS antenna has clear sky view.
  • Active vs passive antenna: The MAX-M10S on the T-Beam Supreme supports active antennas (it includes an antenna supervisor / LNA_EN for active-antenna control), and the T-Beam Supreme exposes an external GPS antenna connector. Active antennas include a built-in LNA and provide better sensitivity in marginal conditions. The T-Beam's included antenna is typically a passive ceramic patch - an active upgrade (check connector compatibility) can improve indoor fix times.
  • Almanac reuse (warm start): Meshtastic saves almanac data received from satellites to flash and reloads it on boot, enabling a faster warm start. It does not download AGPS almanac/ephemeris data over WiFi or the internet. (General-purpose u-blox AssistNow AGPS, where supported by a host application, can reduce cold-start time to roughly 1 - 5 seconds under good sky-view conditions, but Meshtastic's mechanism is local flash reuse, not an online download.)
  • Backup battery: GPS modules with a small backup coin cell retain almanac data between power cycles, reducing cold start to a faster "warm start" (older modules typically 5 - 15 seconds; the MAX-M10S hot start is ~1 s). The T-Beam Supreme includes this backup battery circuit.