This article is a guide to building an APRS LoRa network using OE5BPA software.
APRS (Automatic Packet Reporting System) is a digital data transmission system created and used by radio amateurs.
Its main use is for transmitting the geographical position of stations.
Originally, digital transmission was carried out using the Packet radio protocol. But since then, many stations have been using the more recent LoRa protocol, which is more efficient in terms of range and power consumption.

In the meantime, I use CD2RXU softwares.

Principle :


Trackers are used to transmit their geographical position in real time via LoRa modulation on the 433.775 MHz frequency.
They are built using ESP32 LoRa modules, which comprise a 433 MHz transmitter/receiver, a GPS receiver, a WiFi module, a microcontroller and an OLED display. They are generally installed in vehicles or in pedestrian mode.

iGate" systems receive the frames sent on 433.775 MHz by Trackers and inject them into the APRS network via Internet access.
They are built with ESP32 LoRa modules almost identical to the Tracker, but without the GPS receiver, which is not useful. They are installed in fixed positions on high points, or in urban areas, to ensure the widest possible coverage.

Tracker and iGate positions can then be viewed by the community on maps using a browser on a computer or PDA connected to the or websites, for example.

Used equipments :
For the Tracker, the LILYGO TTGO T-beam v1.1 433 MHz band module.
It features an ESP32 processor, NEO-6M GPS, 0.96" OLED display, Lora transceiver, WiFi and Bluetooth.

For the iGate, we can make do with a LILYGO TTGO T3 v1.1.6 module.
It has the same features as the T-beam, except for GPS, which isn't really necessary for a fixed-installation gateway. It's a little less expensive, although the trend is to reduce the price difference.
.ttgo t3

Used softwares :

Tracker and iGate are designed to be installed using the Visual Studio Code (VSC) editor and PlatformIO extension.
You therefore need to have these programs installed beforehand.
This article is not intended to explain how to install these programs. Tutorials are available elsewhere.

Software for the iGate LoRa is available at :

The Tracker software is available on :

Retrieve archives from the following sites like this :


Next, unpack the ZIP archives and place them in a location on the computer's hard disk.
With VSC, select "Files" + "Open a folder" and choose the appropriate folder to load the desired software.

Preparing installation :

Before installing anything, check that the module works with the software installed on delivery (display, GPS, etc.).
This check removes any doubt in the event of a future problem, and avoids wasting time during subsequent operations.

Connect the ESP32 module to the computer via a USB port.
The Device Manager should recognize the COM port used. If it doesn't, you'll probably need to install the correct USB driver, depending on the modules and interface circuit used. I had to install the CH9102 driver.


iGate configuration :

Only the data/is-cfg.json file needs to be modified to suit our situation.vsc_igate_1.jpg

 Callsign    Pour un iGate, saisir l'indicatif et l'extension -10.
 Network  DHCP  DHCP : true si on souhaite que l'adresse IP soit attribuée automatiquement ou false pour une adresse IP fixe.
   ip  En IP fixe, renseigner les champs à convenance suivant votre réseau local
   subnet  "
   gateway  "
   dns1  "
   dns2  "
 Hostname  overwrite  
 wifi  active  Laisser à true pour utiliser le wifi pour se connecter à Internet.
   SSID  SSID du réseau WiFi utilisé
   password  Mot de passe du réseau WiFi utilisé
 Beacon  message  Renseigner le message de la balise qui sera visible en cliquant sur l'icone du iGate sur la carte APRS
   position  Saisir la latitude et longitude au format décimal avec un point comme séparateur
   use-gps  False si votre module ne possède pas de GPS, true avec un GPS.
   timeout  Période en min. pour la transmission de la balise
 APRS_IS  active  
   password "mot de passe" réseau APRS. Nombre à 5 chiffres qui n'a rien de secret. Il peut être obtenu en ligne à l'adresse :
    server  serveur APRS utilisé, laisser par défaut sauf cas particulier
   port  port utilisé par le serveur, laisser par défaut sauf cas particulier
 digi  active  False : l'iGate ne fonctionnera pas en digipeater
   beacon  False : le digipeater ne transmettra pas de balise
 lora  frequency_rx  Fréquence de réception, par défaut 433775000
   gain_rx  Gain du récepteur
   frequency_tx  Fréquence d'émission, par défaut 433775000
   power  Puissance émetteur en dBm. max 20 dBm ( 100 mW )
   speading_factor  SF du signal LoRa, laisser 12 par défaut
   signal_bandwidth  largeur en kHz du signal LoRa, laisser 12 par défaut
   coding_rate4  5, laisser par défaut
   tx_enable  false : désactive l'émetteur
 display  always_on  true : L'afficheur restera allumé en permanence, false : l'afficheur s'éteindra suivant les paramètres ci-dessous
   timeout  Durée d'allumage de l'écran en sec
   overwrite_pin  Numéro de pin du module pour connecter un poussoir pour réveiller l'afficheur. (ne fonctionne pas pour le moment)
   turn180  Rotation de 180° de l'affichage. true : normal, false : rotation
 ftp  active  Active le serveur ftp interne. Possibilité de maj à distance du fichier de config.  false: sans
   name  Identifiant pour l'accès ftp
   password  Mot de passe pour l'accès ftp
 mqtt  active  Valide ou pas l'envoi des données au format MQTT
   server  Serveur MQTT de destination
   port  Port du serveur MQTT
   password  Mot de passe du serveur
   topic  Nom du topic
   will_actice  Paramètres du message WILL
   will_topic   "
   will_message   "
    birth_message   "
 syslog  active  Activation du log
 ntp_server    Adresse du serveur NTP pour maj de l'heure du module

Once the parameters have been modified, you must :
- leave the choice of default environment [1].
- compile the software and transfer it to the module [2]
vsc igate 2

This operation may take some time the 1st time it is performed, as missing libraries are downloaded.
If all goes well, message [3] should display SUCCESS in the terminal window.

It may happen that the VSC editor does not correctly detect the serial port to which the module is connected.
In this case, you may need to add a parameter to the platformio.ini configuration file and restart compilation.
vsc comport

All that remains to be done is to transfer the file system image, which contains the parameters.
vsc igate 3
Si tout va bien, au bout de quelques instants, SUCCESS devrait s'afficher dans la fenêtre terminal.

Tracker configuration :

Once the directory has been loaded, as for the iGate configuration, we need to modify the tracker.json configuration file [2], adapting the parameters to our needs [3].


 Beacons  Callsign  Indicatif du tracker avec un SSID. Choisir le SSID d'après :
   path  Contrôle la retransmission des paquets. Laissez WIDE1-1, plus d'infos :
   message  Message qui sera affiché lors d'un clic sur le Tracker sur la carte
   symbol  En combinaison avec le paramètre overlay, détermine le symbole qui apparaîtra sur la carte pour désigner votre tracker 
   overlay  Plus d'infos : Par exemple un coureur : symbol = / et overlay = [, une voiture />
   min_bcn  Intervalle entre chaque transmission en minutes
     Les autres paramètres ne devraient pas être modifiés pour rester compatibles avec le réseau APRS LoRa.

The program must then be compiled and transferred [4] to the module. This may take some time on the first run, as the missing libraries are downloaded.
If all goes well, the message SUCCESS [5] should finally appear in the terminal window.

All that remains is to transfer the file system [3] after selecting the module to be used [2], as shown below.

vsc tracker 2

At the end of the transfer, the message SUCCESS [4] should appear. If this is the case, the game is won!

After all these operations, with the modules powered up, you should have your node and tracker visible on and

Tracker usage :

At regular intervals (min_bcn parameter), the Tracker sends a LoRa frame on 433.775 MHz with the Tracker's position.
Transmission only takes place if the GPS is picking up at least 4 satellites and has made a GPS fix. Check that this is the case by looking at the display, which should show the number of satellites received (SAT = ).
The module's central button has several functions:
- a simple click forces transmission of the beacon. The frame content is displayed on screen during transmission.
- a double-click turns off the screen to save battery power, reducing consumption from 110 mA to ? mA.
- long press displays beacon text (message parameter)

Possible problems :

- No communication with the module: Change the USB cable and check that the USB port is correctly detected (see above).
- On first use, the Tracker GPS may take a very long time to make a first GPS fix (up to 20 min). If no fix is possible, this may be due to a problem with the previously installed software, which is blocking dialogue with the GPS module. In this case, you need to reset the GPS by installing the following software:
Install and transfer the software in the same way as with VSC. The Tracker software must then be reinstalled.
- Despite a successful transfer, the screen remains black when the module starts up: check the OLed screen wiring, reset the flash memory and load the software again.


Links :

Visual Studio Code
Driver for chip CH9102
iGate LoRa map
Symbols for APRS icons
GPS reset