LoRa APRS : le guide pratique

LoRa APRS : le guide pratique

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.

Nom de l'image

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Ă©.

LoRa

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 :

  1. Il faut premiĂšrement installer le logiciel Visual Studio Code au lien suivant : (https://code.visualstudio.com/).
  2. Ensuite, il faut dĂ©marrer le logiciel installĂ© (l’icĂŽne ressemble Ă  un alpha bleu)
  3. Il faut maintenant installer le module PlatformIO.
    Pour cela il faut cliquer sur cette icĂŽne Ă  gauche de la fenĂȘtre :  LoRa
  4. En haut du volet qui vient de s’ouvrir, dans le champ « Rechercher des extensions  » il faut taper « Platformio IDE ».
  5. Un des rĂ©sultats de recherche devrait ressembler Ă  ceci : LoRa
  6. 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 :   LoRa

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.

  1. 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
  2. Dans la page, cliquer sur le bouton au-dessus Ă  droite de la liste des fichiers marquĂ©s « code ».

LoRa

  1. Dans la fenĂȘtre qui s’ouvre, cliquer sur « Download ZIP ».

LoRa

  1. Un fichier au format ZIP (archive) va ĂȘtre enregistrĂ© sur l’ordinateur. Il faut le dĂ©compresser.
  2. Placer le contenu (un dossier nommĂ© « LoRa_APRS_Tracker-master » ou « LoRa_APRS_iGate-master ») dans un dossier connu sur l’ordinateur (Documents, Bureau
).
  3. 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.

LoRa

  1.  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).

LoRa

  1. 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).
  2. 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.
  3. 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.
  4. 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.

LoRa

  1. 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 »

LoRa

  1. À 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 »

LoRa

‱  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

LoRa

‱   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).

Téléchargement

Je vous propose ce tutoriel en téléchargement
Un-guide-pratique-pour-configurer-LoRa.pdf (835 téléchargements )

  par Morgan | ON4MOD

Auteur / autrice

  • Morgan ON4MOD est ingĂ©nieur de recherches Ă  l'universitĂ© de LiĂšge. Il est principalement intĂ©ressĂ© par les radio-communications et les systĂšmes embarquĂ©s. Il est volontaire au sein du projet M17 oĂč il conçoit des circuits imprimĂ©s et programme les circuits.