LoRa Tracker/Pager Device
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
Software apps and online services
Hand tools and fabrication machines
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:
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:
Seeing the status of GeoPager1 change to orange the commander goes into chat screen, and asks if the 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
On the pager side, the field operative sees the green LED flash and buzzer sound:
The home screen, with incoming message preview
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)
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:
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.
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
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 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.