Tracker Cet article est une aide à la réalisation d'un réseau APRS LoRa à l'aide des logiciels de OE5BPA.
L'APRS ( Automatic Packet Reporting System ) est un système de transmission numérique de données créé et utilisé par les radioamateurs.
L'utilisation principale est la transmission de la position géographiques des stations.
A l'origine, la transmission numérique était effectuée à  l'aide du protocole Packet radio. Mais depuis, nombre de stations utilisent le protocole plus récent LoRa qui est plus efficace en terme de portée et consommation.

Entre-temps, j'utilise les logiciels de CD2RXU.
Acronymes
Principe
Logiciels utilisés
Préparation à l'installation
Configuration iGate
Configuration Tracker
Problèmes possibles
Liens


Acronymes :
APRS : Automatic Packet Reporting System. Par déformation Automatic Positioning Reporting System
APRS-IS :  Automatic Packet Reporting System-Internet Service, réseau d'interconnexion APRS au travers d'Internet.
LoRa : Long Range. Modulation à étalement de spectre de type Chirp spread spectrum 
MQTT : Message Queuing Telemetry Transport est un protocole de messagerie publish-subscribe basé sur le protocole TCP/IP 
OLED : Organic Light-Emitting Diode.  Diode électroluminescente organique utilisée dans les afficheurs.
VSC : Visual Studio Code, éditeur de code.
WAN : Wide Access Network. Réseau étendu, en général désigne l'Internet.

Principe:

Les "tracker" sont utilisés pour transmettre leur position géographique en temps réel via radio en modulation LoRa sur la fréquence de 433,775 MHz.
Ils sont construits à l'aide de modules ESP32 LoRa qui comportent un émetteur/récepteur 433 MHz, un récepteur GPS, un module Wifi, un microcontrôleur et un afficheur OLED. Ils sont généralement installés à bord de véhicules ou en mode piéton.

Les "iGate" sont des systèmes qui reçoivent les trames envoyées sur 433,775 MHz par les Tracker et les injectent dans le réseau APRS via un accès Internet.
Ils sont construits avec des modules ESP32 LoRa presque identiques au Tracker, mais ne comportant pas de récepteur GPS qui n'est pas utile. Ils sont installés en fixe sur des points-hauts, ou en zone urbaine pour assurer une couverture la plus grande possible.

Les positions des Tracker et iGate sont alors visualisables par la communauté sur des cartes à l'aide d'un navigateur sur ordinateur ou PDA connecté au site aprs.fi ou aprs.radioamateur.tk par exemple.

Matériels utilisés :
Pour le Tracker, le module LILYGO TTGO T-beam v1.1 bande 433 MHz
Il embarque un processeur ESP32, un GPS NEO-6M, un afficheur OLED de 0,96 pouces, une émetteur/récepteur Lora, le WiFi et Bluetooth.

Pour l'iGate, on peut se contenter d'un module LILYGO TTGO T3 v1.1.6
Il embarque les mêmes choses que le T-beam, sauf le GPS qui n'est pas vraiment nécessaire pour une passerelle installée en fixe. Il est un peu moins cher, même si la tendance est à une réduction de la différence de prix.

Logiciels utilisés :

Les logiciels Tracker et iGate sont prévus pour être installés à l'aide de l'éditeur de code Visual Studio Code  (VSC) et de l'extension PlatformIO.
Il faut donc avoir préalablement installé ces logiciels.
Cet article n'a pas pour but d'expliquer comment installer ces logiciels. Des tutos sont disponibles ailleurs.

Le logiciel pour l'iGate LoRa est disponible sur :
https://github.com/lora-aprs/LoRa_APRS_iGate

Le logiciel pour le Tracker est disponible sur :
https://github.com/lora-aprs/LoRa_APRS_Tracker

Récupérer les archives sur les sites indiqués :
github
Il faut ensuite décompacter les archives ZIP et les placer à un endroit sur le disque dur de l'ordinateur.
Avec VSC il faut alors faire "Fichiers" + "Ouvrir un dossier" et choisir le dossier adéquat pour charger le logiciel voulu.

Préparation à l'installation :
icons8 error 16 Avant d'installer quoi que ce soit, s'assurer que le module fonctionne avec le logiciel installé lors de la livraison. (Affichage, GPS, etc...)
Cette vérification permet de lever un doute en cas de problème à venir et d'éviter de perdre du temps pendant la suite des opérations.

icons8 error 16Relier le module ESP32 à l'ordinateur via un port USB.
Le gestionnaire de périphériques devrait reconnaître le port COM utilisé. Si ce n'est pas le cas, il faudra probablement installer le bon pilote USB en fonction des modules et du circuit d'interface utilisés. J'ai dû installer le pilote CH9102.

port serie

Configuration iGate :
Seul le fichier data/is-cfg.json doit être modifié pour l'adapter à notre 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  
   name  
 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 :
https://apps.magicbug.co.uk/passcode/
    server  serveur APRS utilisé, laisser par défaut sauf cas particulier
   port  port utilisé par le serveur, laisser par défaut sauf cas particulier
   filter  
 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
   name  
   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
   server  
   port  
 ntp_server    Adresse du serveur NTP pour maj de l'heure du module

 Une fois les paramètres modifiés, il faut :
- laisser le choix de l'environnement par défaut [1]
- compiler le logiciel et le transférer sur le module [2]
vsc igate 2

Cette opération peut prendre du temps la 1ère fois qu'elle est exécutée, les librairies absentes étant téléchargées.
Si tout se passe bien, le message [3] devrait afficher SUCCESS dans la fenêtre terminal.

Il peut arriver que l'éditeur VSC ne détecte pas correctement le port série sur lequel est relié le module.
Dans ce cas, il peut être nécessaire d'ajouter un paramètre au fichier de configuration platformio.ini et de relancer la compilation.
vsc comport

Il restera enfin à transférer l'image du système de fichiers qui contient notamment les paramètres.
vsc igate 3
Si tout va bien, au bout de quelques instants, SUCCESS devrait s'afficher dans la fenêtre terminal.

Configuration Trackers :

 Une fois le répertoire chargé comme pour la configuration du iGate, il faut modifier le fichier de configuration tracker.json [2] en adaptant les paramètres à nos besoins [3]
vsc tracker 1

 Beacons  Callsign  Indicatif du tracker avec un SSID. Choisir le SSID d'après : http://www.aprs.org/aprs11/SSIDs.txt
   path  Contrôle la retransmission des paquets. Laissez WIDE1-1, plus d'infos : https://blog.aprs.fi/2020/02/how-aprs-paths-work.html
   message  Message qui sera affiché lors d'un clic sur le Tracker sur la carte aprs.fi
   timeout  
   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 : http://www.aprs.org/symbols/symbolsX.txt. 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.


Il faut ensuite compiler et transférer [4]  le programme vers le module. Cette opération peut prendre pas mal de temps à la première exécution, les bibliothèques manquantes étant téléchargées.
Si tout se passe bien, le message SUCCESS [5] devrait finalement s'afficher dans le fenêtre du terminal.

Il reste enfin à transférer le système de fichiers [3] après avoir choisi le module utilisé [2], comme indiqué ci-dessous.
vsc tracker 2

A la fin du transfert, le message SUCCESS [4] devrait s'afficher. Si c'est la cas, la partie est gagnée ! 😀

Après toutes ces opérations, les modules étant alimentés, vous devriez avoir votre node ainsi que votre tracker visibles sur aprs.fi et aprs.radioamateur.tk.

Utilisation du Tracker :

Le Tracker envoie à intervalles réguliers (paramètre min_bcn) une trame LoRa sur 433,775 MHz avec la position du Tracker.
La transmission ne s'effectue que si le GPS capte au moins 4 satellites et a fait un point GPS. Il faut donc s'assurer que c'est le cas en regardant sur l'écran qui devrait afficher le nombre de satellites reçu ( SAT = )
Le bouton central du module a plusieurs fonctionalités :
- un simple clic permet de forcer la transmission de la balise. Le contenu de la trame est affiché à l'écran pendant la transmission.
- un double clic permet d'éteindre l'écran pour économiser la batterie, la consommation tombe de 110 mA à 
- un appui long affiche le texte de la balise ( paramètre message)


Problèmes possibles :
- Pas de communication avec le module : Changer le câble USB et vérifier si le port USB est bien détecté (voir ci-dessus)
- A la première utilisation, le GPS du Tracker peut prendre très longtemps pour faire un premier point GPS (jusqu'à 20 min). Si aucun fix n'est possible, il peut s'agir d'un problème consécutif à l'installation du logiciel précédemment installé qui bloque le dialogue avec le module GPS. Il faut alors faire une RAZ du GPS en suivant les informations de LilyGo :
https://github.com/Xinyuan-LilyGO/LilyGo-LoRa-Series/tree/master/firmware/NMEA_Reset
On effectuera l'installation et le transfert du logiciel comme avec VSC. Il faudra ensuite réinstaller le logiciel Tracker.
- Malgré un transfert effectué avec succès, l'écran reste noir au démarrage du module : vérifier le câblage de l'écran OLed et effectuer une RAZ de la mémoire flash et refaire un chargement du logiciel.
vsc erase

Liens :
Visual Studio Code
Pilote pour chip CH9102
Carte des iGate LoRa
aprs.fi
aprs.radioamateur.tk
Symboles des icones APRS
GPS reset ou LiLyGo