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.
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.
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 :
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 :
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.
Relier 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.
Configuration iGate :
Seul le fichier data/is-cfg.json doit être modifié pour l'adapter à notre situation.
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]
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.
Il restera enfin à transférer l'image du système de fichiers qui contient notamment les paramètres.
Si tout va bien, au bout de quelques instants, SUCCESS devrait s'afficher dans la fenêtre terminal.
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]
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.
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.
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