
Un guide pratique pour mettre en place rapidement un tracker et/ou un iGate APRS via LoRa.
Présentation
Dans ce document, on va expliquer concrĂštement comment mettre en place un module iGate ou tracker pour faire de lâAPRS via LoRa.
Le LoRa est une technique de modulation propriétaire basée sur le spectre étalé par sauts de glissements de fréquences.
Dans ce document, on va parler de ce quâil est nĂ©cessaire dâavoir avec vous pour faire fonctionner les modules ainsi que la marche Ă suivre pour les programmer.
Le Matériel
La plupart des modules tournent avec des microcontrÎleurs ESP32, mais sont compatibles avec Arduino. Les modules recommandés sont les suivants :
- Pour un iGate, le module TTGO LoRa32 v2.1 de chez LilyGo
- Pour un tracker, le module TTGO T-Beam V1.1 de chez LilyGo Ă©galement
Les modules peuvent ĂȘtre commandĂ©s entre autres sur Aliexpress.
Voici deux liens Aliexpress vers les pages des modules. Attention Ă sĂ©lectionner la bonne frĂ©quence sur la pageâ! Tracker : https://fr.aliexpress.com/item/4001178678568.html, iGate : https://fr.aliexpress.com/item/32915894264.html.
Le module iGate coĂ»te une vingtaine dâeuros avec des frais de livraison dâenviron 6 âŹ. Le tracker coĂ»te une quarantaine dâeuros et les frais de livraison sont inclus. Si le montant total de la commande est infĂ©rieur Ă 150 âŹ, il nây aura normalement pas de frais de douane.
Les points dâattention particuliers sont les suivants :
- Les modules ne sont conçus que pour une seule bande de frĂ©quence. Pour lâAPRS via LoRa, la bande utilisĂ©e est celle des 70 cm (433,775 MHz). Il faut donc commander des modules prĂ©vus pour cette bande et non 868 MHz ou 900 MHz.
- Tous les modules ne sont pas forcément fournis avec un petit écran OLED. Il faut de préférence en choisir un qui vient avec un écran déjà soudé sur la carte.
- Les trackers sont fournis sans batterie, mais possĂšdent un support pour batterie au lithium (tension de 3,7 V) taille 18â650 dite «âflat-topâ» (il nây a pas de «âboutonâ» sur le terminal «â+â»).
- Les antennes fournies par défaut avec le module ne sont pas particuliÚrement de bonne qualité.
Le logiciel
AprÚs avoir vu quel matériel acheter et comment, il reste à programmer les modules et les configurer.
Logiciel de programmation
Pour pouvoir programmer le module, il faut installer PlatformIO (https://platformio.org/) qui est un module supplémentaire du logiciel Visual Studio Code. Voici la marche à suivre :
- Il faut premiÚrement installer le logiciel Visual Studio Code au lien suivant : (https://code.visualstudio.com/).
- Ensuite, il faut dĂ©marrer le logiciel installĂ© (lâicĂŽne ressemble Ă un alpha bleu)
- Il faut maintenant installer le module PlatformIO.
Pour cela il faut cliquer sur cette icĂŽne Ă gauche de la fenĂȘtre : - En haut du volet qui vient de sâouvrir, dans le champ «âRechercher des extensionsâŠâ» il faut taper «âPlatformio IDEâ».
- Un des résultats de recherche devrait ressembler à ceci :
- Il faut ensuite cliquer sur le bouton «âInstallerâ»
Lâextension va alors sâinstaller automatiquement. Cela peut prendre un peu de temps et il sera peut-ĂȘtre nĂ©cessaire de redĂ©marrer le programme. Si Visual Studio Code demande Ă ĂȘtre redĂ©marrĂ©, il faut le faire.
Ă ce stade-ci, une nouvelle icĂŽne devrait ĂȘtre apparue Ă gauche. Elle ressemble Ă un petit extra-terrestre : Â
Le firmware :
Le firmware est le logiciel qui est exĂ©cutĂ© sur le module. Il gĂšre la communication entre les diffĂ©rents composants tels que le module LoRa, la puce GPS, lâĂ©cran⊠Il va falloir le tĂ©lĂ©charger, le configurer, le compiler et le programmer sur le module. Le firmware du module et du tracker sont diffĂ©rents, mais la procĂ©dure Ă suivre est la mĂȘme.
- Suivre ce lient (https://github.com/lora-aprs/LoRa_APRS_Tracker) pour le tracker et suivre ce lien (https://github.com/lora-aprs/LoRa_APRS_iGate) pour lâiGate
- Dans la page, cliquer sur le bouton au-dessus Ă droite de la liste des fichiers marquĂ©s «âcodeâ».
- Dans la fenĂȘtre qui sâouvre, cliquer sur «âDownload ZIPâ».
- Un fichier au format ZIP (archive) va ĂȘtre enregistrĂ© sur lâordinateur. Il faut le dĂ©compresser.
- Placer le contenu (un dossier nommĂ© «âLoRa_APRS_Tracker-masterâ» ou «âLoRa_APRS_iGate-masterâ») dans un dossier connu sur lâordinateur (Documents, BureauâŠ).
- Dans VS Code, cliquer sur Ficher -> Ouvrir le dossier. Dans la fenĂȘtre qui sâouvre, sĂ©lectionner le dossier de lâĂ©tape prĂ©cĂ©dente. Si un dialogue sâouvre demandant si vous faites confiance aux auteurs de ce dossier, cliquer sur oui. Le panneau de gauche devrait ressembler Ă la capture ci dessous :
Si le logo de lâextension PlatformIO (la tĂȘte dâextra-terrestre) nâest pas encore apparu, il faut peut-ĂȘtre attendre une petite minute. Si aprĂšs ça elle nâapparaĂźt toujours pas, il faut vĂ©rifier que lâextension est bien installĂ©e.
-  AprĂšs avoir dĂ©compressĂ© le fichier âLoRa_APRS_Tracker-master ou LoRa_APRS_iGate-master, regarder si le dossier possĂšde encore un dossier du mĂȘme nom Ă l'intĂ©rieur, c'est lui qu'il faut ouvrir.
En fait, le dossier qu'on ouvre doit posséder un fichier nommé « platformio.ini » à sa racine (c'est à dire, pas dans un sous-dossier).
- Dans le bas de la fenĂȘtre, dans le bandeau bleu, se trouve maintenant une sĂ©rie de boutons. Cliquer sur Default (1 sur lâimage ci-dessous). En haut de la fenĂȘtre, cliquer sur «âenv : ttgo-t-beam-v1â» (pour le tracker) ou «âenv : lora_boardâ» (pour lâiGate).
- Cliquer ensuite sur la coche (2 sur lâimage ci-dessous) pour compiler le code. La console en bas de la fenĂȘtre (3 sur lâimage ci-dessous) va afficher la progression. Cela peut prendre une ou deux minutes. LâĂ©tape est sensĂ©e se terminer avec «âSUCCESSâ» Ă©crit en vert. Si «âFAILEDâ» apparaĂźt, il se peut quâil faille attendre un peu avant de rĂ©-essayer ou redĂ©marrer le logiciel. Si les fichiers de code source nâont pas Ă©tĂ© modifiĂ©s, lâĂ©tape est censĂ©e se terminer par un succĂšs. Si ce nâest pas le cas, supprimer tout le dossier et recommencer Ă lâĂ©tape 4.
- Il faut ensuite configurer le module. Pour cela dans la racine ouvrir «data» puis {}is-cfg.json. Le contenu des fichiers de configuration est décrit plus loin dans ce document.
- Brancher le module Ă lâaide dâun cĂąble micro-USB type B. Programmer le module en cliquant sur la flĂšche (4 sur lâimage ci-dessous). Ă nouveau, lâĂ©tape doit se terminer avec «âSUCCESSâ». Si ce nâest pas le cas, vĂ©rifier que le cĂąble USB est bien connectĂ©. Si lâerreur persiste, essayer avec un autre cĂąble.
- Cliquer ensuite sur le logo de PlatformIO (la tĂȘte dâextra-terrestre). Dans la liste Ă droite de lâicĂŽne, cliquez sur «âUpload Filesystem Imageâ»
- Ă nouveau, cette Ă©tape est censĂ©e se terminer par «âSUCCESSâ». Si câest le cas, le module devrait ĂȘtre programmĂ© et lâĂ©cran devrait maintenant afficher son statut.
La configuration :
Pour configurer le module, il faut modifier un fichier texte qui se trouve dans le dossier «âdataâ». Ce fichier porte lâextension «â.jsonâ». Les options disponibles sont listĂ©es par type de module avec une brĂšve description et des valeurs recommandĂ©es. Les options qui doivent ĂȘtre modifiĂ©es pour configurer un module sont Ă©crites en rouge dans ce document. Les autres sont utilisĂ©es pour des usages avancĂ©s, voire mĂȘme exotiques. Les fichiers sont dans le dossier «âdataâ», dans le dossier principal du firmware.
Tracker
Fichier «â./data/tracker.jsonâ»
âą Beaconsâ
- Callsign â Votre indicatif suivi du SSID classique APRS. Pour le SSID, il est recommandĂ© dâutiliser : «â-7â» pour un tracker portable, «â-9â» pour une station mobile telle quâune voiture, «â-11â» pour les aĂ©ronefs et finalement «â-1â», «â-2â», «â-3â», «â-4â» sont des SSID gĂ©nĂ©riques.
- Path â Il sâagit du chemin classique APRS. Dans le cas de lâAPRS, parce que les trames sont longues et ont rapidement une portĂ©e importante, il est recommandĂ© de nâutiliser que «âWIDE1-1â».
- Message â Message qui sera ajoutĂ© Ă chaque trame transmise. Il est recommandĂ© de ne pas mettre de message («âmessageâ» : «â») parce que ça allonge drastiquement la durĂ©e de transmission et rĂ©duit fortement la probabilitĂ© que le message soit dĂ©codĂ© sans erreur.
- Symbol â caractĂšre qui correspond au logo que lâon veut voir affichĂ© sur les cartes APRS.
«â[ » reprĂ©sente un piĂ©ton, «â>â» reprĂ©sente une voiture, «ââ » reprĂ©sente un avion⊠- Overlay â Choisit le jeu de logos que lâon va utiliser pour la sĂ©lection du symbole. «â/â» pour la table primaire, «â\â» pour la table secondaire.
- Smart Beacon â Cette fonctionnalitĂ© laisse adapter le temps entre deux Ă©missions selon son dĂ©placement
-
- Active â «âfalseâ» pour dĂ©sactiver la fonctionnalitĂ©, «âtrueâ» pour lâactiver (recommandĂ©)
- Turn_min â changement de cap minimum en degrĂ©s avant dâenvoyer un nouveau paquet
- Slow_rate â nombre de secondes entre deux paquets pour une vitesse infĂ©rieure ou Ă©gale Ă la vitesse de dĂ©placement la plus basse
- Slow_speed â Vitesse de dĂ©placement la plus basse (pour slow_rate)
- Fast_rate â nombre de secondes entre deux paquets pour une vitesse de dĂ©placement supĂ©rieure ou Ă©gale Ă la vitesse de dĂ©placement la plus Ă©levĂ©e
- Fast_speed â vitesse de dĂ©placement la plus Ă©levĂ©e (pour fast_rate)
- Min_tx_dist â distance minimale en dessous de laquelle le smart beacon nâĂ©mettra pas de paquet.
- Min_bcn â Temps minimum entre deux paquets du smart beacon
-
- Enhance_precision : Transmet des informations de position plus dĂ©taillĂ©es ainsi que lâaltitude. Pour un vĂ©hicule terrestre, cette information est inutile et ne fera quâallonger le temps de transmission et augmenter la probabilitĂ© dâerreur Ă la rĂ©ception, il est recommandĂ© de mettre cette option sur «âfalseâ»
âąÂ Button â affecte une fonction au bouton du milieu sur le tracker
- Tx â une pression brĂšve Ă©mettra une trame
- Alt_message â une pression longue affichera Ă lâĂ©cran le message envoyĂ© par le beacon.
âąÂ Lora
- Frequency_rx â frĂ©quence dâĂ©coute du module (inutile pour le tracker)
- Frequency_tx â frĂ©quence dâĂ©mission du tracker. LâIARU a dĂ©fini la frĂ©quence node vers gateway Ă 433,775 MHz pour la rĂ©gion 1.
- Power â puissance dâĂ©mission en dBm
- Spreading_factor â paramĂštre SF de la modulation LoRa. Vaut 12 par dĂ©faut, Ă ne pas modifier.
- Signal_bandwidth â bande passante du signal Ă©mit. Vaut 125â000 par dĂ©faut, Ă ne pas modifier.
- Coding_rate4 â paramĂštre CR de la modulation LoRa. Vaut 5 par dĂ©faut, Ă ne pas modifier.
âąÂ Ptt_output
- Active â permet de mettre une sortie du module Ă 1 pendant les Ă©missions du module, peut par exemple servir Ă allumer un amplificateur pendant les Ă©missions
- Io_pin â numĂ©ro de la broche Ă utiliser
- Start_delay â dĂ©lais (en ms) entre le basculement de lâĂ©tat de la broche et le dĂ©but de la transmission
- End_delay â dĂ©lais (en ms) entre la fin de la transmission et le basculement de lâĂ©tat de la broche
- Reverse â si mis à «âtrueâ» le comportement sera inversĂ© et la broche sera mise Ă 0 pendant la transmission et 1 le reste du temps.
iGate
Fichier «â./data/is-cfg.jsonâ»
âąÂ Callsign â Indicatif de lâiGate. Il est recommandĂ© dâutiliser le SSID «â-10â».
âąÂ Network
- DHCP â active lâattribution automatique dâune adresse IP Ă lâiGate. Il faut laisser «âtrueâ»
- Static â paramĂštres rĂ©seaux Ă utiliser si on nâutilise pas la configuration DHCP.
- Hostname â hostname Ă utiliser sur le rĂ©seau. Par dĂ©faut ce sera le callsign, mais si «âoverwriteâ» est mis à «âtrueâ» alors «ânameâ» sera utilisĂ©.
âąÂ WiFi
- Active â Active ou dĂ©sactive le Wi-Fi. Il faut le laisser sur «âtrueâ».
- AP â Liste des points dâaccĂšs Wi-Fi auxquels lâiGate peut se connecter. Pour chaque point dâaccĂšs supplĂ©mentaire, il faut ajouter une paire SSID et password.
- SSID â Nom du rĂ©seau Wi-Fi auquel se connecter. Ne supporte que le Wi-Fi 2,4 GHz.
- Password â Mot de passe du rĂ©seau Wi-Fi auquel se connecter
âąÂ  Beacon
- Message â Ce message sera affichĂ© comme informations sur lâiGate sur les sites tels que aprs.fi. Ce message nâest pas transmis en LoRa et donc la longueur nâest pas critique, mais il faut de prĂ©fĂ©rence le garder court et concis.
- Position â Câest la position GPS oĂč lâiGate est placĂ©. InsĂ©rez les coordonnĂ©es GPS en degrĂ©s dĂ©cimaux (ex : 1.23456 et -12.34567). Le systĂšme de coordonnĂ©es Ă utiliser est WGS84, les sites connus de cartes en ligne utilisent gĂ©nĂ©ralement ce systĂšme.
- Use_gps â Cette option sert dans le cas trĂšs particulier oĂč lâiGate serait itinĂ©rant (il aura donc besoin dâune puce GPS). Il faut le laisser sur «âfalseâ».
- Timeout â temps dâattente minimum entre deux paquets dans le cas oĂč lâiGate Ă©met ses trames LoRa (non-recommandĂ©). Cette valeur nâest pas utilisĂ©e en temps normal.
âąÂ  Aprs_is
- Active â active la connexion au serveur aprs-is. Il faut laisser cette option sur «âtrueâ»
- Passcode â sorte de mot de passe correspondant Ă lâindicatif de lâiGate. Obligatoire pour se connecter aux serveurs aprs-is. Peut ĂȘtre trouvĂ© via cette page web : https://apps.magicbug.co.uk/passcode/
âąÂ  Digi
- Active â Active la fonction digipeater de lâiGate. Si le module est connectĂ© Ă internet, il est fortement recommandĂ© de laisser «âfalseâ» pour Ă©viter la congestion de la frĂ©quence.
- Beacon â Permet Ă lâiGate dâĂ©mettre des trames LoRa comme un tracker. La fonction est peu utile, il est aussi fortement recommandĂ© de laisser «âfalseâ».
âąÂ  Display
- Always_on â Si «âtrueâ», Garde lâĂ©cran OLED du module activĂ© en permanence, si «âfalseâ», Ă©teint lâĂ©cran aprĂšs «âtimeoutâ» secondes.
- Timeout â Nombres de secondes avant dâĂ©teindre lâĂ©cran OLED si «âalways_onâ» est sur «âfalseâ».
- Overwrite_pin â Soit 0, soit le numĂ©ro dâune broche. La broche sera configurĂ©e en entrĂ©e avec pull-up. La mettre Ă 0V activera lâĂ©cran.
- Turn_180 â pivote le contenu affichĂ© sur lâĂ©cran OLED de 180° (si le module est montĂ© la tĂȘte en bas par exemple).
âąÂ  ftp
- Active â active le serveur FTP interne Ă lâiGate pour pouvoir modifier le fichier de configuration en Wi-Fi. Le protocole FTP nâest pas sĂ©curisĂ©, il est donc recommandĂ© de laisser «âfalseâ».
- User â Paires «ânameâ» et «âpasswordâ» par utilisateur autorisĂ© Ă se connecter au FTP.
âąÂ  MQTT
- Active â active la publication de donnĂ©es via le protocole MQTT. Il est recommandĂ© de laisser sur «âfalseâ» sauf si vous savez ce que vous faites et utilisez ce protocole.
âąÂ  Syslog
- Active â Active la publication de logs via le protocole syslog. A laisser sur «âfalseâ».
âąÂ  Ntp_server â adresse dâun serveur NTP sur lequel lâiGate ira chercher lâheure quâil est. Si le rĂ©seau auquel lâiGate est connectĂ© possĂšde un serveur NTP fiable, lâadresse peut-ĂȘtre modifiĂ©e, autrement il est fortement recommandĂ© de laisser la valeur par dĂ©faut (pool.ntp.org).
Cet article peut ĂȘtre tĂ©lĂ©chargĂ© au format PDF. Il suffit de cliquer sur ce lien :
Morgan Diepart ON4MOD