GPS over LXMF (request for conceptual assistance) #232
-
One of the things I've been excited about is the ability to use personal equipment to assist search and rescue people in the field. Obviously, there's an outpouring of well-meaning but often undertrained and underequipped volunteers when there are people lost in the wilderness. By using a tracking system at incident command, the chances of areas being missed or searchers getting lost is minimized. LoRA uplinks are far superior to WiFi and often superior to cell signals in many of these regions, particularly in these mesh configurations or if an airborne platform can house a node. I've had excellent luck with Traccar, which accepts a wide variety of GPS formats as input over TCP/IP but I don't want to rely on running IP over Reticulum when direct communication is possible. I'd like to float the general process I was thinking of, mostly in the hopes of not running around in circles duplicating effort or making an inappropriate system. Private Phone: Using an LXMF compatible client, GPS data is pulled from the phone, and sent in a compatible GPS format (with or without additional headers) to a pre-shared address using an RNode connected via bluetooth. RNode: Does the magic of sending the data over LoRA. I was considering a custom hardware and modified firmware to take care of GPS positioning on the RNode itself, but given the near ubiquitous GPS on cell phones, and the fact that a $20 cell phone could be pressed into service for close to the cost of the additional board space and module, I'm not sure it's worth it. Especially forking the hardware and firmware. Server: Python LXMF client sees the packet, (from sever RNode or other hardware interface) ensures it's meant for the node, authenticates the address as a registered node, and then sends a TCP/IP request to Traccar, entering the data in that server. It's basically sending an arbitrary data packet, but I'd like to make sure I'm not missing something big or misunderstanding the process. I'm not a mobile dev, so I would prefer not to try to troubleshoot both the concept and learning the peculiarities of mobile at the same time. I'd also very much like to not duplicate effort if someone else has done similar work. Thanks in advance! |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 10 replies
-
Hi @faragher! This is a really valuable area of application, and that I've hoped for a long time Reticulum would find it's use in, since it is so well suited to such scenarios. The overall architecture of the approach you outline is sound. But this is a case where I would actually say that using LXMF is too much overhead, unless you need to make sure that all position reports are ultimately received by the coordination center. If this is not the case, a better approach would be to just use the raw Such a system easily scales to a lot of people, even on low bandwidth mediums. You can also segment devices out into different channels to increase capacity further. I wish there was already an Android basic app source example available. In that case, it would be quite easy to just add some simple code to send the telemetry every X seconds, or once the position has changed more than a defined threshold. Unfortunately, no such "quickstart project" exists yet. You may be able to use the Sideband app as a starting point though. Another option would be to just add the functionality to Sideband. It was the plan from the beginning to add this kind of functionality, but it has not been completed yet. I hope this all gives a little more clarity to the subject! |
Beta Was this translation helpful? Give feedback.
Hi @faragher!
This is a really valuable area of application, and that I've hoped for a long time Reticulum would find it's use in, since it is so well suited to such scenarios.
The overall architecture of the approach you outline is sound. But this is a case where I would actually say that using LXMF is too much overhead, unless you need to make sure that all position reports are ultimately received by the coordination center.
If this is not the case, a better approach would be to just use the raw
Packet
API. Since all such position or telemetry reports would easily fit into the packet MTU of Reticulum, they can just be efficiently sent as singular packets over the network to their final …