Friday, June 4, 2021

LORA APRS Tracker using T-Beam ESP32 with GPS

 Setting up a  LoRa APRS Tracker or Igate on 433Mhz.

I need to build a Tracker for LORA on 433Mhz and I hate two options to consider.

Using the same TTGO-T-Beam ESP32 with GPS and Lora 433Mhz module that will be the same as my Lora Igate board.

Setting up a Lora APRS tracker using the ESP32 Lora32 TTGO-T T-Beam 433/470Mhz Module.

 Here is picture of how the Lora signal looks like


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

I was looking for a low power battery backup APRS Lora system to track Balloons and cars.

I then got the TTGO-T T-Beam witch has ESP32 with WIFI and Bluetooth.
It also has a GPS Ublock and a Lora32 TTGO 433/470Mhz and USB port.

This module is available from Giga Technology here

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

I found a project on Github https://github.com/lora-aprs/LoRa_APRS_Tracker
It seems to be strate foreword replacing the default firmware in the SP32

So lets get Started

Lets download the project from github here

On your pc run the following

git clone https://github.com/antonjan/LoRa_APRS_Tracker

cd LoRa_APRS_Tracker/

 
I Recommend installing Visual Studio Code with PlatformIO plugin.


PlatformIO can be downloaded directly from the PlatformIO website. There you just have to press the green button with “Install PlatformIO now”. Then just install it. If you have already installed Visual Studio Code, the PlatformIO Module can also be installed via the Plugin Manager. Now the source code can be opened in Visual Studio Code.

Start your Code editor
 
 
 
First we have to make some adjustments to the  data/is-code.json file
We now need to edit the is-code.json settings as follows
 


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
The callsign must be changed (line 3) 
The SSID and password must be filled in of you WIFI.
Latitude and Longitude must always be filled in.  
If you don't have your coordinates in your head, simply open Google Maps, right-click on the desired location and click on ‘What's there?’  
These settings have to be changed if you want to use an iGate: the active in wifi and aprs must be set from false to true.
These settings have to be changed to get a Digi: the active in digi must be set from false to true.
It is not recommended to run an iGate and a Digi at the same time. This will be checked in a later version and only the settings of the iGate will run (presumably the Digi Mode will be active when no WiFi connection can be established - let's see). May board dont have the display but I dont think you have to change any of the setting.

Choosing the right board in Platformio plug in Code

Now the right board has to be selected, because each board is wired a little differently (the GPIOs are used differently) or has additional components. This can be changed in the status bar, which is currently still in Default.  
 Here is example of platformio.ini file. Select TTGO_T_Beam_V1_0 as in picture below
 

Lora APRS IGATE using T-beam ESP32 with GPS

Setting up a  LoRa APRS iGate on 433Mhz.

I need to build a Igate for LORA on 433Mhz and I hate two options to consider.

Options

Option 1 RTL-SDR dongle with LORA software as an gateway.

Option 2 using the same TTGO-T-Beam ESP32 with GPS and Lora 433Mhz module that will be the same as my Lora tracker board.

In this Description I will be using the Option 2, I will attempt the RTL-SDR rout later.

Setting up a Lora APRS tracker using the ESP32 Lora32 TTGO-T T-Beam 433/470Mhz Module

Example of Lora signal

I was looking for a low power battery backup APRS Lora system to track Balloons and cars.

I then got the TTGO-T T-Beam witch has ESP32 with WIFI and Bluetooth.
It also has a GPS Ublock and a Lora32 TTGO 433/470Mhz and USB port.

This module is available from Giga Technology here

I found a project on Github https://github.com/lora-aprs/LoRa_APRS_iGate
It seems to be strate foreword replacing the default firmware in the SP32

So lets get Started

Lets download the project from github here

On your pc run the following

git clone https://github.com/antonjan/LoRa_APRS_iGate

cd LoRa_APRS_iGate/

I Recommend installing Code editor with PlatformIO plugin.

PlatformIO can be downloaded directly from the PlatformIO website. There you just have to press the green button with “Install PlatformIO now”. Then just install it. If you have already installed Visual Studio Code, the PlatformIO Module can also be installed via the Plugin Manager. Now the source code can be opened in Visual Studio Code.

Start your Code editor

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Then select Extensions and search for Platformio and install it. 






 
 
 
 
 
 
 
 
 
 
 
 
 
Select platformio plugin
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 The instillation can take a while We now need to select the LoRa_APRS_iGate folder where you have cloned the github project above. There will be a directory LoRa_APRS_iGate
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
We can now edit the
 
 
Here is a copy of my platformio.ini

[platformio]
default_envs = lora_board

[env]
platform = espressif32 @ 3.0.0
framework = arduino
lib_ldf_mode = deep+
monitor_speed = 115200
lib_deps =
bblanchon/ArduinoJson @ 6.17.0
lewisxhe/AXP202X_Library @ 1.1.2
peterus/APRS-Decoder-Lib @ 0.0.6
peterus/APRS-IS-Lib @ 0.0.8
peterus/esp-logger @ 0.0.1
peterus/ESP-FTP-Server-Lib @ 0.9.5
check_tool = cppcheck
check_flags =
cppcheck: --suppress=*:*.pio\* --inline-suppr -DCPPCHECK --force lib -ilib/TimeLib -ilib/LoRa -ilib/NTPClient
check_skip_packages = yes
#monitor_flags = --raw
# activate for OTA Update, use the CALLSIGN from is-cfg.json as upload_port:
#upload_protocol = espota
#upload_port = <CALLSIGN>.local

[env:lora_board]
board = esp32doit-devkit-v1
#board = ttgo-t-beam-v1
build_flags = -Werror -Wall -DNO_GLOBAL_INSTANCES
upload_port = /dev/ttyUSB*
[env:lora_board_debug]
board = esp32doit-devkit-v1
build_flags = -Werror -Wall -DNO_GLOBAL_INSTANCES
build_type = debug
monitor_filters = esp32_exception_decoder


  
The following things can be done quickly in the status bar: Compile the firmware Flashing the firmware Cleaning up the temporary and compiled data Serial monitor  
 

Compilation and upload steps

git clone https://github.com/antonjan/LoRa_APRS_iGate Install The development environment VS Code from here https://code.visualstudio.com/download Start Code and click on the botom Gear icon to install Platformio.

 Then select the tracker.json and edit with the following information. 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Edit the tracker.json file in the data directory to look like this changing your callsign and save the file. [CTRL-s]
 
{
	"callsign":"NOCALL-7",
	"debug": false,
	"beacon":
	{
		"message":"LoRa Tracker",
		"timeout": 1,
		"symbol": "[",
		"overlay": "/"
	},
	"smart_beacon":
	{
		"active":true,
		"turn_min":25,
		"slow_rate":300,
		"slow_speed":10,
		"fast_rate":60,
		"fast_speed":100,
		"min_tx_dist":100,
		"min_bcn":5
	},
	"lora":
	{
		"frequency_rx":433775000,
		"frequency_tx":433775000,
		"power":20,
		"spreading_factor":12,
		"signal_bandwidth":125000,
		"coding_rate4":5
	}
} 
 

We now need to compile the program. This can be done by Clicking on the icon belo red 1 on the botom toolbaar.


 
 Now connect your LORA-APRS board to usb port of you computer. We now need to upload the compeld ferware.bi fie to the Board Click on the icon below red 2 to upload the file to your board. You should see details in the log terminal if all was sucess
 

Blog posts and Youtube videos from other Hams

feel free to add yours or create a ticket if you want to be added.

Supported boards

You can use one of the Lora32 boards without changings:

  • Heltec WiFi LoRa 32 V1 (433MHz SX1278)
  • Heltec WiFi LoRa 32 V2 (433MHz SX1278)
  • TTGO LoRa32 V1 (433MHz SX1278)
  • TTGO LoRa32 V2 (433MHz SX1278)
  • TTGO LoRa32 V2.1 (433MHz SX1278)
  • TTGO T-Beam V0.7 (433MHz SX1278)
  • TTGO T-Beam V1 (433MHz SX1278)
  • Tracker D from OE1ACM and OE1CGC
  • and sure many more...

Here are some amazon-de links for some example boards:

This boards cost around 20 Euros, they are very cheap and perfect for an LoRa iGate. Keep in minde: you need a 433MHz version!