cd2rxu tracker displayLe logiciel Tracker APRS LoRa de CD2RXU est un fork de celui de OE5BPA auquel il a rajouté des fonctionnalités d'autres forks.
Il apporte plusieurs améliorations par rapport au logiciel d'origine, notamment :
- un menu permettant de choisir entre plusieurs fonctions.
- le choix entre différents indicatifs (et icones, par ex. TK5EP-9 voiture, TK5EP-7 piéton, etc...)
- la capacité de visualiser la réception d'autres Trackers.
- une diminution de la consommation par abaissement de la vitesse du CPU.
- la compression des données transmises pour diminuer le temps de transmission d'où diminution de la consommation et du risque de perturbation.
- réception de la météo locale
- stockage/lecture/suppression des derniers messages reçus.
- connexion Bluetooth via TNC et APRSDroid
- signalisation par LED de messages reçus et passage en émission
- notifications sonores par buzzer externe YL44
- module météo avec BME280

Pour profiter de certaines fonctionnalités, il faut utiliser également son logiciel iGate.
Pour plus d'informations sur le logiciel d'origine, le principe de l'APRS et l'utilisation du logiciel Visual Studio Code, consulter mon article OE5BPA LoRa APRS

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. On pourra même choisir un modèle sans OLED puisqu'étant installé sur un site distant, il n'a pas d'utilité.

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.

port serie

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 préalablement avoir installé ces logiciels.
Cet article n'a pas pour but d'expliquer comment installer ces logiciels. Des tutos sont disponibles ailleurs.

Installation :

Le logiciel du Tracker est disponible ici :
https://github.com/richonguzman/LoRa_APRS_Tracker

Le logiciel de l'iGate est disponible ici :
https://github.com/richonguzman/LoRa_APRS_iGate

Télécharger le logiciel tracker :

cd2rxu download

Il faut ensuite décompacter l'archive ZIP et la 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.

Configuration :

(Version du 10.08.2023)
Il faut commencer par éditer le fichier de configuration qui est dans le répertoire :  /data/tracker_config.json
La partie concernant les indicatifs est dans le tableau "Beacons".
Chaque objet comporte une clé "callsign" = indicatif avec plusieurs autres clés qui sont les paramètres s'y reportant. 
Ces paramètres permettent d'adapter l'envoi de la balise en fonction du type de balise (voiture, piéton, vélo).
Le clé "symbol" est à adapter en fonction du type de balise. ( "[" = piéton, ">" = voiture, "b" = vélo )

La partie smart beacon, permet d'ajuster automatiquement la fréquence d'envoi de la balise en fonction de la vitesse de déplacement du tracker.
Plus le véhicule va vite, plus la fréquence de transmission augmente.


Le premier objet indicatif doit être celui par défaut qui sera chargé au démarrage. (en attendant que l'auteur ajoute une option de mémorisation du choix de l'indicatif)

 beacons  callsign  NOCALL-10  Indicatif avec SSID de la balise, ex: TK5EP-9
   symbol  >  Symbole de la balise. >  = , voir tableau 
   overlay  /  Overlay pour les icônes, en relation avec "symbol"
   comment  texte  Commentaire à envoyer, ne mettre que ce qui est nécessaire car cela rallonge les trames
 smart_beacon  active  true  Activation du mode smart beacon qui permet d'envoyer des balises suivant le déplacement du tracker
   slowrate  120  en s, période lente
   slowSpeed  10  en km/h
   fastRate  60  en s, période rapide
   fastSpeed  70  en km/h
   minTXdist  100  en m, distance min. parcourue
   minDeltaBeacon  12  en s, période min. d'émission de la balise. Aucune balise ne sera envoyée sous ce délai.
   turnMinDeg  10   En degrés, changement de direction minimum
   turnSlope  80  Avec turnMinDeg, détermine quand la balise doit être envoyée en cas de changement de direction.

 

Les objets suivants "lora" et "other" sont relatifs à l'émission LoRa et aux paramètres généraux des balises.

 

 Lora  frequency  433775000  Fréquence en kHz
   spreadingFactor  12  Spreading factor, facteur d'étalement
   signalBandwidth  125000  Largeur de bande
   codingRate4  5  Nombre de bits transmis pour la correction d'erreur
   power  20  Puissance en dBm. 20 dBm = 100 mW
 other  showSymbolOnScreen  true  Affiche le symbole paramétré du tracker sur l'afficheur OLED en haut à droite
   sentCommentAfterXBeacons  30  Envoi du commentaire seulement après x balises
   displayEcoMode  false  Activation de l'économiseur de batterie (arrêt écran)
   displayTimeout  30  Délai en s avant extinction de l'écran
   path  WIDE1-1  Nombre de bonds que peut faire une balise, limite le nombre de digipeating
   noneSmartBeaconrate  15  Délai de la balise par défaut si smart beacon désactivé
   rememberStationTime  30  Délai de mémorisation des stations entendues (dans LISTENING> display)
   maxDistanceToTracker  30  Non utilisé
   standingUpdateTime  15  En min, intervalle de transmission de la balise sans mouvement du tracker
   sendAltitude  true  true = activé. Envoi de l'altitude. 
   sendBatteryInfo  false  Envoi de l'envoi batterie dans le commentaire de la balise
   bluetooth  true  active la fonction bluetooth et la connexion KISS ou TNC pour une communication avec un logiciel externe
   disableGPS  false  désactive le GPS du tracker, à utiliser dans le cas d'une utilisation d'un logiciel externe comme APRSdroid
ptt_trigger  active  false  true = activé, false = désactivé pour commutation d'un PA externe par exemple
   io_pin  4  pin du module utilisée pour le PTT
   preDelay  0  délai en ms avant PTT
   postDelay  0   délai de retombée du PTT
   reverse  false  PTT inversée
bme  active  false  activation d'un module BME280. false=non, true = oui
   sendtelemetry  false  envoi de la télémétrie 
   heightcorrection  0  correction d'altitude en m
notification  ledTX  false  connexion d'une LED externe pour indication TX
   ledTxPin  13  pin du module pour la LED TX
   ledMessage  false  connexion d'une LED externe pour indication réception message
   ledMessagePin  12  pin du module pour la LED RX
   buzzerActive  false  connexion d'un buzzer externe type YL44
   buzzerPinTone  33  pin du module pour le buzzer
   buzzerPinVcc  25  pin d'alimentation du buzzer
   bootUpBeep  false  beep au démarrage ?
   txBeep  false  beep lors émission ?
   messageRxBeep  false  beep lors réception message LoRa?
   stationBeep  false  beep lors réception d'une station LoRa (tracker ou iGate)
   lowBatteryBeep  false  beep si batterie faible ?

 

Une fois les paramètres modifiés à convenance, il faut compiler le logiciel.
- Choisir l'environnement en fonction du modèle du module TTGO en modifiant la ligne [1] (ttgo-t-beam-v1 pour les modules avec chip AXP192 ou v2 pour chip AXP2101)
- Choisir le port COM utilisé par le module TTGO [2]
- Lancer la compilation et le transfert avec [3]

cd2rxu vsc1 fr

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 [4] 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.

cd2rxu vsc2 fr

Il reste enfin à transférer l'image du système de fichiers (filesystem) qui contient  notamment les paramètres.

cd2rxu vsc3 fr

Si cette opération n'est pas effectuée, l'écran du tracker reste figé.

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)
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 et du filesystem.
- 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
Il semblerait que les dernières version du logiciel détecte ce manque de dialogue et affiche un message d'erreur demandant à effectuer une RAZ.

cd2rxu vsc4 fr

Utilisation :

Au démarrage, le logiciel attend que le GPS ait effectué un point GPS.
Si le voyant rouge en bas à droite du module clignote, c'est qu'au moins 3 satellites sont reçus et que l'heure a bien été détectée.
Pour que le module puisse envoyer la 1ère balise, il faut recevoir au moins 4 satellites.

Si ce premier point GPS ne s'effectue pas, il peut s'agir d'un problème d'antenne, d'un manque de dégagement ou d'un blocage du dialogue avec le module GPS.
Commencer par aller sur un terrain bien dégagé et attendre jusqu'à 20 min. Au delà, il faudra vérifier l'antenne et éventuellement effectué une RAZ comme indiqué dans mon article sur le tracker de OE5BPA.

Menu :

Le bouton central permet de naviguer entre plusieurs menus :
Menu 0
- 1 appui court : force la transmission de la balise APRS
- 1 appui long : choix de l'indicatif (suivant programmation du fichier de configuration)
- 2 appuis courts : passage au menu 1
Menu 1
- 1 appui court : visualise la mémoire des messages reçus
- 1 appui long : efface la mémoire des messages reçus
- 2 appuis courts : passage au menu 2
Menu 2
- 1 appui court : envoi une demande de donnée météo https://openweathermap.org/ (s'affiche au bout de quelques sec.)
- 1 appui long : Ecoute des autres trackers avec affichage distances et azimuts
- 2 appuis courts : passage au menu 3
Menu 3
- 1 appui court : rien pour le moment.
- 1 appui long : Activation du mode Ecomode (extinction écran)
- 2 appuis courts : retour en mode tracker

 

La fréquence d'envoi de la balise dépend de la vitesse de déplacement du module. Au delà d'un certain seuil, la fréquence augmente.
Ces paramètres se modifient dans la section "smartbeacon" du fichier de configuration.

A l'aide du menu, on peut choisir un indicatif différent et adapter les paramètres smartbeacon. Par exemple pour une voiture, un piéton avec des SSID différents ou un indicatif différent.

Le menu 2 permet d'envoyer une demande de rapport météo. Le module reçoit en retour un bulletin météo succinct.
Pour cette fonction, Il faut que l'iGate utilisé soit celui développé par CD2RXU.

 Ecran principal :

     

Ligne 1 : L'indicatif et le symbole utilisés
Ligne 2 : Date et heure venant du récepteur GPS
Ligne 3 : Alternativement, coordonnées géographiques et QRA locator + nombre de satellites reçus
Ligne 4 : Altitude, vitesse et cap.
Ligne 5 : Dernière station APRS reçue
Ligne 6 : Etat de la charge de la batterie

Bluetooth :

Le tracker peut être utilisé en conjonction avec le logiciel APRSDroid (Android uniquement) via bluetooth et le protocole KISS.
Il sert alors de TNC et assure la connexion entre APRSDroid et le réseau APRS et remplace la connexion 3G.
Il transmet la position du GPS du PDA via le modem LoRa du tracker sur le réseau APRS-IS.

Dans l'autre sens, le tracker envoie les balises reçues en LoRa vers APRSDroid qui les affiche sur sa carte.

Il faut que le logiciel ait été compilé avec le paramètre "bluetooth : true"
Si on veut éviter que pendant l'utilisation d'APRSDroid le tracker envoie sa propre position, il faut mettre le paramètre "disableGPS : true".

Il faut ensuite appairer en Bluetooth le tracker au PDA.
Ensuite dans les préférences d'APRSDroid, il faut modifier les paramètres suivants:
- "Préférences de connexion / Protocole de connexion " : TNC(texte brut TNC2)
- "Préférences de connexion / Type de connexion" : Bluetooth SPP
- "Préférences de connexion / Module TNC bluetooth" : choisir le nom de votre tracker "LoRa Tracker xxxx" parmi les appareils appairés.

- "Paramètres de localisation / Source de la localisation " choisir le mode voulu. Smartbeaconing est le plus adapté en APRS. Manual pour faire un test sans réception GPS.

 

Démarrer la localisation sur APRSDroid.
Si la connexion est bien établie, le tracker devrait afficher l'icône bluetooth alternativement avec l'icône APRS en haut à droite sur l'afficheur OLED du tracker.

Faire un essai de transmission en cliquant sur "Envoyer sa position".
Vérifier dans le journal si tout va bien.

 

A noter que pour un rendement correct, il est conseillé d'utiliser des antennes plus performantes que celles fournies avec le module, aussi bien pour le réception GPS que pour la réception 433 MHz. Le rendement de ces antennes est mauvais du fait de leurs tailles.
Mes essais effectués avec le même module pour la réception des ballons sonde ont montré que le module rayonnait pas mal et perturbait la réception et qu'il fallait éloigner les antennes du module.

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