Our LoRa GPS trackers are based on the TTGO T-Beam from LilyGO, which is an ESP32 development board with built-in GPS & LoRa modems, along with a battery holder & charger.
The code in tracker_firmware
is made to run on those GPS trackers, but also has compatability for the DOIT ESP32 DevKit V1. These can be used as non-tracker LoRa mesh nodes which can help expand the LoRa mesh network.
Because we were having trouble getting a GPS fix inside of buildings with the TTGO T-Beam hardware, we added a mock GPS mode which can be activated by quickly pressing the IO38 button twice. Pressing it twice again will disable the mock-GPS mode.
The code is setup as a PlatformIO project, which means you will need to follow the PlatformIO getting started guide to get your workspace setup.
Next, we should initialize the workspace for the IDE of your choice, using pio project init
. Because this project can be built for several kinds of hardware targets, we will need to specify the correct "environment":
name | description |
---|---|
DEVICE-1-T |
LoRa GPS tracker with Node ID 10 |
DEVICE-2-O |
Generic LoRa node with Node ID 11 |
DEVICE-3-O |
Generic LoRa node with Node ID 12 |
For example:
platformio project init --ide vscode -e DEVICE-1-T
Once this is setup, we can install the libraries used by this project:
platformio lib install -e DEVICE-1-T
After we have our workspace setup, we can build & upload our firmware to our device. To do so, use platformio run
(again, with the preferred environment):
platformio run --target upload -e DEVICE-1-T