LoRa GPS Tracker/Pager




Introduction: LoRa GPS Tracker/Pager

---A device that combines real-time location tracking and two-way pager, over a LoRa mesh network.---

I have been contacted by a number of people in search and rescue (SAR) who are interested in the other Ripple LoRa mesh projects I have been working on, and it got me to thinking about making a dedicated device for the field personnel.

Well, here it is!

This device doesn't require a companion Android handset, as it has a very simple UI for the user. It has a small OLED screen and just 3 push buttons, so only offers limited types of interaction with the user.

What it does

  • Allows field user to set their status to one of 4 colors (Blue, Green, Orange, Red), which commander will see in real-time.
  • Transmits user's location to commander in real-time.
  • Alerts user of incoming messages and broadcasts from commander.
  • Allows user to send a reply to incoming messages (from a list of options)


Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: An Example Scenario

The admin of the network sets up the pager devices using the Ripple Commander application. Get it from Google Play: https://play.google.com/store/apps/details?id=com...

Using the app, the commander can see a list of devices on the mesh network.

Step 2: Map View

The commander can see the status is now orange (see the orange circle above). They can also see the status AND location in the map view.

Step 3: Messaging

Seeing the status of GeoPager1 change to orange the commander goes into chat screen, and asks if user needs assistance.

(NOTE: the reply in orange comes when the pager user selects a reply from the list)

To specify reply options, just enter "?:" with the options separated by "/"s

Step 4: Pager Alerts

On the pager side, the field operative sees the green LED flash and buzzer sound.

Step 5: Pager Interaction

They select the message preview with the top button, to see the message details.

The user then uses the buttons to select the reply option.

At this point the commander will get an alert that a reply has come in. (see the app chat screen above, with the orange reply)

Step 6: How to Assemble the Devices

Refer to the wiring diagram above on how to connect up the buttons, buzzer and GPS:

Step 7: Flashing the Firmware

You need to make sure you have the Arduino IDE installed, with the Espressif ESP32 boards support added. Go to the Ripple Github site for instructions:


For this project, you need to flash this specific binary: https://github.com/spleenware/ripple#geopager-node...

NOTE: Unfortunately, the GPS uses the same UART as the built-in USB port, so you must disconnect the GPS whenever you are flashing the firmware OR programming the device via the app.

Step 8: Configuring the Device (ID, Settings)

The Ripple Commander app has TWO launcher icons. For defining and configuring the devices on the mesh network, launch from the 'Device Provision' icon.

Tap on the 'NEW' menu in the top Actionbar. then enter a unique ID and name. Select 'GeoPager' in the Device Role drop-down. (optionally, you can set custom config with the '...' button)

Click on SAVE, then back on the main screen, there should be a new device in the list with the name you assigned.

Tap on the small 'computer chip' icon next to it to go into the 'Program Device' screen. While holding down the top button on the pager device (button A), connect a USB OTG cable from Android to the device which should power on the device. After a delay you should see 'PROGRAM MODE' on the OLED screen.

Now tap on the 'Program' button in the Commander app, and if all goes well there should be a '... done' message. The device should now have its ID, config and encryption keys stored in its EEPROM.

Step 9: Initial Testing

Power off the device, then either attach the LiPo battery or power it from a USB source. Launch the main screen using the other launcher icon (labelled Ripple Commander). This should show the pager device in the list, with a gray circle next to it. The gray status means 'unknown' status, as the device hasn't had any interactions yet.

Tap on the pager device, to go into a 'chat' screen. The top Actionbar should now show the status circle update to BLUE, and the 'WiFi' icon next to it showing full/strong connection.

Try typing in some messages, which should make the pager beep/flash, etc


If you find this project useful and feel like throwing some Bitcoin my way, I'd be really grateful.

My BTC address: 1CspaTKKXZynVUviXQPrppGm45nBaAygmS


If you are involved in SAR, or in some other organization with a command-and-control structure which could take advantage of this capability, I would love to help in setting up a trial project/deployment.

I continue to work on this project because it really engages me and interests me. I hope it can prove to be useful to the wider community. Feel free to message me here if you have questions.



Scott Powell

Be the First to Share


    • Trash to Treasure Contest

      Trash to Treasure Contest
    • Raspberry Pi Contest 2020

      Raspberry Pi Contest 2020
    • Wearables Contest

      Wearables Contest

    12 Discussions

    Captain Fishlips
    Captain Fishlips

    Question 2 days ago on Step 9

    Do you have the file for 3-d printing the case?


    Answer 2 days ago

    Ah, not yet, I'm afraid. I did a quick job on the front of the case (pictured), but I haven't finished it off yet. I'll try to get that done soon, then drop a comment here.


    Question 14 days ago

    How long does the battery hold?


    Reply 14 days ago

    About 4 hours with this 450mAh one. Would be a lot better with a single 18650 LiIon cell.


    Reply 7 days ago

    What about using a TPL5111 timer and powering up every 1 hour or so instead of deep sleep. Would that increase the battery time?


    Reply 7 days ago

    The device needs to remain powered to be useful, ie. to receive messages, and transmit live location. The device can be configured, however, to optimise the location transmitting. There is a minimum interval time and minimum movement distance which can be set. If you increase both of these, then the device will transmit less often and increase battery life.


    Reply 14 days ago

    That’s not too shabby!
    Deep sleep might be quite hard to implement on such a project but may give you a lot of additional battery life.
    I love the 18650ies for their ease of use and availability from „dead“ notebook batteries, and a big plus is that they are easy to make „hot-swappable“.


    Question 8 days ago

    What kind of range does this have? Would it be good for a balloon launch to 100,000+ feet?


    Answer 8 days ago

    Range really varies a lot. From a high altitude balloon the current record (for LoRa) is about 700kms! I have gotten about 5kms with one node on a hill, but with trees and other obstacles in between.


    Question 8 days ago on Step 9

    I understand how this 'field LoRa' device works but what device/software does the 'commander' require?
    Clearly he needs a LoRa capable device.


    14 days ago

    This is really darn cool!