LIA: an open-source Meshtastic GPS tracker for your pet's collar
A custom ESP32-S3 + SX1262 + GNSS collar board that runs Meshtastic and reports your dog's position over LoRa as direct messages, with no cellular service.
What it is
A homemade, subscription-free GPS tag for a dog collar that reports where your pet is over a Meshtastic LoRa mesh.
What you need
- LIA main board order as PCB assembly
- 18650 Li-ion cell or a 1000 mAh pouch cell for V1.1
- LoRa antenna
- GNSS patch antenna
- A second Meshtastic node
How hard
Advanced. You order an assembled custom board, print a case, and build Meshtastic from source with your receiver's node ID baked in.
Key Facts
- MCU: ESP32-S3-MINI-1 on a custom KiCad board, ordered as PCB assembly
- Radio: Wio-SX1262 LoRa; GNSS: u-blox SAM-M10Q
- Modes: HIGH beacon (every 30 s), LOW tracker (about once a minute, deep sleep), OFF
- Docs estimate on the 3,500 mAh 18650: about 4 h beacon, about 3.3 days tracker
- Reports by direct message to one target node set at build time
- Firmware: Meshtastic + lia_v1 overlay, built with PlatformIO (no web flasher)
- License: CC BY-NC-SA 4.0 (non-commercial)
About This Project
LIA, by Jose Garcia Aguado (JGAguado), is an off-grid LoRa tracker built to clip onto a pet's collar. Instead of a cellular GPS tag with a subscription, it is a Meshtastic node: a custom KiCad board with an ESP32-S3-MINI-1, a Wio-SX1262 LoRa module, a u-blox SAM-M10Q GNSS receiver (GPS, Galileo, GLONASS and BeiDou), a MAX17048 battery gauge, a TP4056 charger and an LSM6DSOX motion sensor. A three-position switch picks the mode. HIGH is a beacon for active searching: the LED stays on and it sends its position every 30 seconds. LOW is the everyday tracker: it wakes about once a minute, tries for a GPS fix (giving up after 90 seconds), sends it and goes back to deep sleep. OFF cuts power to the MCU while still letting the battery charge. Positions and command replies go as direct messages to one target node whose ID is set in the firmware at build time, so you need a second Meshtastic node (or a phone paired to one) to receive them; you can also DM the tracker commands such as GPS, BATTERY, LED ON/OFF and HELP. There are two hardware versions running the same lia_v1 firmware: V1.0 with an 18650 cell (3,500 mAh; the docs estimate about 4 hours in beacon mode and about 3.3 days in tracker mode) and V1.1 with a 50 x 37 x 4 mm 1,000 mAh pouch cell for a smaller case. Three enclosures (V1.0 detachable, V1.0 fixed, V1.1 fixed) come as STEP/STL files for 3D printing or CNC. The board is meant to be ordered as a turnkey PCB assembly (the author suggests Seeed Fusion) from the Gerbers, BOM and pick-and-place files in the repo. Firmware is stock Meshtastic plus a LIA board overlay, built with PlatformIO (a PowerShell script automates it); the Meshtastic web flasher does not support it. Charging is over USB-C or a magnetic 4-pin pogo cable like the one for Seeed's T1000. Still a prototype: the first boards needed a rework because the IMU's I2C lines were crossed. Licensed CC BY-NC-SA 4.0, so personal and community builds are fine but commercial use needs permission. Set the LoRa region for your country before transmitting.
Source & Attribution
Illustration
Parts Needed
- LIA main board (PCB assembly)
- 18650 Li-ion cell (V1.0) or 1000 mAh pouch cell (V1.1)
- LoRa antenna (FPC or omni)
- Ceramic GNSS patch antenna
- USB-C cable or magnetic 4-pin pogo cable
- A second Meshtastic node
Steps
- 1
Order the board
Order a turnkey PCB assembly using the Gerbers, BOM and pick-and-place files in hardware/production.
- 2
Set your target node
Edit kLiaTargetNode in firmware/services/MeshTargets.h to the node ID that should receive positions.
- 3
Build and flash
Run firmware/tools/build.ps1 in native PowerShell (PlatformIO) with the mode switch on HIGH or LOW, not OFF. The Meshtastic web flasher won't work.
- 4
Pair and test
Pair in the Meshtastic app, set the LoRa region and role Tracker, then DM HELP to the tracker to confirm it replies.
- 5
Enclose
Fit the battery and antennas, print one of the three enclosures and mount it on the collar; check it still gets a GPS fix once sealed.
Bill of Materials
Parts list
8 parts · 3 linked
Heads up: some Buy links are affiliate links. If you buy through one, MCU Atlas may earn a small commission at no extra cost to you. It never changes which parts we list. How this works
Not included: 3D-printed or CNC enclosure (STEP/STL in the repo) and a collar, Phone with the Meshtastic app, Windows PC with PowerShell and PlatformIO to build the firmware
Related Projects





