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)


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:

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:

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