The off-grid LoRa communicator is a communication gateway for mobile devices based on ESP8266/SX1278. The SX1278 LoRa solution claims transmission distances of up to 10KM and the ESP8266 provides a 802.11b/g/n Wi-Fi compatible hotspot for mobile devices. Both these chips are small and power efficient which allow ease of use in mobile applications such as hiking or in vehicles.
Currently, in this POC stage, the off-grid LoRa communicator allows up to 8 mobile devices to connect to it simultaneously to send and receive text messages in a group chat like fashion. When a message is sent on one side it is transmitted via the LoRa communication standard to the other side where messages are delivered to the connected devices via the included app.
There is no real limit to the number of off-grid LoRa communicators provided the number of messages being sent at any one time isn't too high, receiving messages doesn't add any overhead. This allows messages to be broadcast to many people at once, provided there is a use case for such a situation.
I built the off-grid LoRa communicator on perf-board and 3D printed a case to house it securely. The case supports holes for an SMA connector for the antenna, serial/debug interface and power. The plan is to later build a custom PCB to reduce the device footprint as well as add additional features such as a charging controller for LiPo batteries and then enclose it in a water resistant case.
Code written on the ESP8266 ensures any connected clients receive incoming messages, allows clients to send messages and handles sudden disconnects/reconnects gracefully by keeping track of device MAC addresses. New sockets are opened for new devices and existing open sockets are reassigned to existing clients should they reconnect after disconnecting.
Currently I have only developed an app for Android, this app is still in early stages and for now just serves as a POC. Improvements to UI and additional features will be added in the future as well as the possibility for iOS support. When first started the app will prompt the user for a username to use for all communication. In addition a foreground service is started to monitor a socket for incoming and outgoing messages. This allows the app to be closed or minimised to the background while still giving the user notifications for incoming messages. The service will continue to run even when disconnected from the LoRa station hotspot and will continually attempt to reconnect as long as it is running. The user has the option of stopping the service from within the app, the service will automatically restart if the app is opened.
Here is a simple demonstration of the app with two other devices.
Although still in its early stages this project has a few advantages over existing projects such as Meshtastic.
- Lower hardware cost, only an ESP8266 and LoRa radio are required vs the more expensive ESP32 used in the T-Beam along with GPS receiver etc.
- One LoRa station supports 8 clients vs Meshtastic which only supports once device per LoRa station which further reduces costs if multiple people want to send and receive messages. For example, to connect 16 people, two groups of 8, you only need two LoRa stations vs needing 16 if you were to use Meshtastic.
- Still has similar/identical functionality as the GPS on your phone can be used to send location data to others vs using the onboard GPS found in the T-Beam.
This project is ongoing and opensource, links to the source code can be found below:
If anyone is interested in contributing please let me know!