Twitter icon
Facebook icon
LinkedIn icon
Google icon
Reddit icon
StumbleUpon icon
Del.icio.us icon

LoRa Tracker/Pager Device

Added to IoTplaybook or last updated on: 03/26/2020
LoRa Tracker/Pager Device

Story

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)

Things used in this project

Hardware components

 
TTGO LoRa 32 V2.1
 
× 1

digitspace

 
BN-180 GPS
 
× 1

Banggood

 
3x momentary buttons
 
× 1

Banggood

 
LiPo battery
 
× 1

Banggood

 
Piezo buzzer
 
× 1

Banggood

Software apps and online services

Arduino IDE
Arduino IDE
 
  Arduino

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)
 
 

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.spleenware.deviceprovision

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

LoRa Tracker/Pager Device

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:

LoRa Tracker/Pager Device

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

LoRa Tracker/Pager Device

(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

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

LoRa Tracker/Pager Device
The home screen, with incoming message preview

The home screen, with incoming message preview

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

LoRa Tracker/Pager Device

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)

How to assemble the devices

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

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:

https://github.com/spleenware/ripple

For this project, you need to flash this specific binary:

https://github.com/spleenware/ripple#geopager-node---433-to-915mhz-configurable-only-usb-otg-supported

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.

Configuring the devices (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.

The 'home' device

You also need to setup a Ripple device and connect over USB-OTG cable to the Android running the Commander app. This is the 'home' node (and will assume ID 1).

You need to flash one of the 'Messenger' (or Repeater) firmware binaries to this device. For the TTGO V2 board (which I recommend), you would flash this firmware: https://github.com/spleenware/ripple#repeater-or-messenger---433-to-915mhz-configurable--usb-otg-only-5

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

Donate

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

My BTC address: 1CspaTKKXZynVUviXQPrppGm45nBaAygmS

Feedback

If you are involved in SAR, or in some other organization with a command-and-control structure that 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.

Enjoy!

Regards,

Scott Powell

Credits

Scott Powell

Scott Powell

Scott Powell