LoRa GPS Tracker/Pager

20K17940

Intro: 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: 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:

https://github.com/spleenware/ripple

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

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

Enjoy!

Regards,

Scott Powell

29 Comments

Can the board be changed with a adafruit lora bonnet with screen
Do I need an another feather to use with the app?
I was wondering about using this technology for Search and Rescue. Would it be possible to have a fleet of these and use a receiver and gateway on the command unit to track location and send and receive messages without having internet access? Our scenario is that we are often outside of cellular data coverage and sometimes even satphones are sketchy. These appear to be like a lightweight alternative to a device like the Garmin inReach. But if I can use something like this on our own private receiver, that doesn't rely on cloud services and then push the coordinate information to our mapserver I could track the movement of every SAR member and team in the field, complete with personal status. These units appear to be simple enough to build. How frequently do they transmit their location? Or do they only transmit when polled by the network? Do they have any memory to capture a track when they cannot connect to the want and then transmit the data when they reconnect? You said that they had about a 5k range when in Forest conditions, how about uneven terrain? Do you think using a mast antenna on the command vehicle would help? Would I need to add a 900mhz band amplifier to overcome the longer coax to the receiver? Lots of questions, but I have lots of ideas.
No idea how far you got with this? We're in the Scottish Highlands with little mobile coverage and lora would be great in the mountains (potentially). I'm initially building (or trying to) a node Seeduino Xiao.. on a breakout board with GPS, then a repeater (same wth solar) placed on a nearby mountain that somehow I can see via a gateway at home, or even a pager of mobile.
This is to track me, dog, people etc.
There's a project on Hackster 'S.O.S enabled gps tracker' that you may be interested in. I have never coded so straight away have a long journey this winter.
I haven't started on this project quite yet, but it is something I want to pilot. We have a new member with our SAR group who is working professionally with several LoRA devices and we hope to test something soon.
Let me know if you would like any help getting started. For this project (the 'GeoPager'), I now have support for TTGO 'Paxcounter', Heltec Lora32 V2, and the now the TTGO TBeam. More recent guides are here: https://www.hackster.io/scottpowell69/
Thank you! I'm going to start tutorials on arduino coding soon so I can try and debug when (and I will) get into some trouble. I appreciate your reply and links!
Thanks again
Hi,
Yes, this system works without any internet access. You would use an Android tablet running Ripple Commander to do the coordination. The transmit frequency is configurable, but is transmitted when the device moves at least some 'x' meters and at least 'y' seconds have elapsed. The devices don't record track of location, but I could add this. Regarding range, the thing that would improve this the most is to have a repeater device attached to a tethered helium balloon.
About 4 hours with this 450mAh one. Would be a lot better with a single 18650 LiIon cell.
The battery life really depends on how frequently you transmit and how much relaying your radio does. If you just send a ping every hour, an 18650 could last a month, from what I have read on some of the projects. Someone I know who is working with LoRa confirmed that this could be possible. You could parallel two 18650's if you want extended battery life without having to change batteries in the field, and you could then support a higher frequency of messages.
What about using a TPL5111 timer and powering up every 1 hour or so instead of deep sleep. Would that increase the battery time?
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.
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“.
I haven't produced a firmware binary for that board, for the GeoPager. It *should* be possible, but I haven't tested, and the 3 buttons would probably need to be assigned to some spare GPIO pins on that board. Give me a day or so, and I'' try to compile a binary.

You can use that Heltec board for the 'Commander' radio, however. The GeoPager devices all communicate with the Commander, using the Commander app. For that radio, you would flash the Ripple-Bluetooth-heltech_v2.bin file (and connect using Bluetooth)
I successfully flashed that code. Could you send a link to the commander app? I can't find it via search in the play store. And, is there any rewiring that needs to be done with this code, or will it work if I wired it as in the instructions above?
I recently started building a GPS tracker based on the Meshtastic project. I am really looking to do more of what you have done similar to the tracker for search and rescue except I would be using it for scenario paintball. Would it be possible to integrate support for the Lillygo TTgo t-Beam boards? I purchased some of these for the Meshtastic project. Eventually, I'd like to be able to integrate the GPS tracking into a program like ATAK.
More Comments