Géolocalisation d’un répéteur MeshCore

0
(0)

Dans ce tutoriel, je présente une technique qui permet de géolocaliser un répéteur MeshCore, dans le cadre d’une activité de MeshCaching.

Le principe repose sur la mesure du RSSI (Received Signal Strength Indicator, indicateur de la puissance du signal reçu). Notre appareil analyse la force du signal radio émis par le répéteur à chaque réception de paquet.

Plus le RSSI est élevé, plus l’appareil est proche du répéteur. En effectuant plusieurs mesures tout en ce déplaçant, il est possible d’estimer la position physique par une méthode de recherche directionnelle, en suivant le signal le plus fort.

Pour rappel, le RSSI s’exprime en dBm (décibel-milliwatt). Pour une introduction à cette notion, consultez cet article.

Identification du répéteur à géolocaliser

L’identification du répéteur à géolocaliser repose sur sa clé publique. Vous pouvez récupérer cette clé à partir d’outils comme Paris MeshCore Analyser, qui cartographie les répéteurs du réseau.

Dans la région parisienne, où le nombre de répéteurs est actuellement limité, les deux premiers octets de la clé publique suffisent généralement à identifier un répéteur.

Le firmware MeshCaching

Un firmware spécifiquement conçu pour le MeshCaching est disponible sur mon GitHub https://github.com/tutoduino/meshcaching.

Il permet de géolocaliser facilement un répéteur MeshCore. Après avoir configuré l’identifiant du répéteur à localiser, il est possible de lui envoyer un « ping » avec un paquet TRACE (le ping natif de MeshCore) en appuyant sur le bouton de l’appareil. Le RSSI du paquet retour de ce « ping » est ensuite affiché sur l’écran de l’appareil, ainsi que le bruit de fond du canal.

Ce firmware est disponible pour les appareils suivants :

  • Seeed Wio Tracker L1 Pro
  • Heltec WiFi LoRa 32 V3
  • Heltec WiFi LoRa 32 V4.3
  • Heltec WiFi LoRa 32 V4 « R8 »
  • Heltec T096

Configuration du firmware

Il est indispensable de configurer l’identifiant du répéteur à localiser. Les autres paramètres peuvent être laissés par défaut.

Voici la signification des différents paramètres :

  • Répéteur : préfixe (4 premiers digits) en hexadécimal de la clé publique du répéteur à géolocaliser
  • Puiss. TX : puissance d’émission maximum de l’appareil
  • Gain RX : permet d’activer un gain supplémentaire du récepteur pour améliorer la sensibilité
  • Affichage : affiche la puissance du signal avant démodulation (RSSI) ou après corrélation (peut être utile dans le cas d’un signal faible)

Le matériel

Pour ce tutoriel, j’ai utilisé un module Wio Tracker L1 Pro. Ce module est compact et très ergonomique, et la présence d’un petit joystick permet de configurer facilement l’identifiant du répéteur à localiser.

L’utilisation d’une antenne directrice de type Moxon est particulièrement bien adaptée à la technique de recherche directionnelle par gradient décrite plus bas.

Forcer l’émission d’un message par le répéteur

Le RSSI du dernier paquet reçu du répéteur s’affiche directement sur l’écran de l’appareil. Cependant, attendre passivement qu’un répéteur émette spontanément un paquet peut s’avérer long, surtout lorsque plusieurs mesures sont nécessaires pour le localiser — ce qui risquerait de rendre le processus de géolocalisation trop lent.

Pour accélérer ce processus, lorsque vous appuyez sur le bouton de l’appareil, il émet un paquet de type TRACE en route directe vers le répéteur (l’équivalent MeshCore d’un ping). Le répéteur y répond aussitôt, et l’apparail, qui écoute en permanence, capte cette réponse : c’est à ce moment-là que son récepteur radio mesure le RSSI du signal reçu, qu’il affiche ensuite à l’écran.

L’appareil affiche également le niveau du bruit de fond ainsi que le rapport signal/bruit.

Interface du module Wio Tracker L1 Pro

Pour respecter le Duty Cycle, une temporisation est appliquée après chaque envoi de chaque message (paquet TRACE). Pendant ce délai, l’émetteur ne peut pas envoyer de nouveau message, ce qui garantit le respect des contraintes réglementaires.

Procédure de localisation

Voici la méthode que je propose pour localiser un répéteur, c’est une technique de recherche directionnelle par gradient (proche du fox hunting en radioamateurisme) :

  1. Positionnement initial
    Se placer à distance raisonnable du répéteur afin d’être en mesure de capter son signal en direct.
  2. Mesure du RSSI dans les 4 directions cardinales
    À l’aide d’une antenne directrice, mesurer le RSSI (en dBm) dans les directions Nord, Sud, Est et Ouest.
  3. Déplacement vers la direction optimale
    Avancer dans la direction où le RSSI est le plus élevé (c’est-à-dire la valeur la moins négative).
  4. Enregistrement des données
    Noter sur une carte :
    • Votre position actuelle.
    • La valeur du RSSI mesurée.
  5. Itération
    Répéter les étapes 2 à 4 (mesure dans les 4 directions et enregistrement) jusqu’à converger vers la position du répéteur.

Voici un exemple de recherche de répéteur MeshCore illustré en vidéo :

Un autre exemple de géolocalisation d’un répéteur MeshCore dans un environnement urbain en utilisant cette méthode. Ma position initiale était localisée à 200 m du répéteur.

Voici une estimation très approximative du RSSI en fonction de la distance d’un répéteur MeshCore sur la fréquence 869 MHz et dont la puissance d’émission est 22 dBm:

RSSIDistance approximative
-100 dBm1000 m
-88 dBm500 m
-50 dBm50 m
-30 dBm20 m
-20 dBm10 m

Notez que cette table fournit une estimation très approximative. En effet, le RSSI dépend de nombreux facteurs variables, tels que :

  • la puissance d’émission du répéteur,
  • les conditions météorologiques,
  • les caractéristiques géographiques (relief, obstacles, etc.).

Voici un exemple de mesures effectuées pour un répéteur positionné dans le par de sceaux avec une antenne omnidirectionnelle.

Exemple de mesure de RSSI du signal radio émis par un répéteur (cercle rouge)

Notez que le type d’antenne utilisée par le répéteur influence significativement la procédure. En effet, si l’antenne du répéteur est directive (par exemple, une antenne Moxon ou Yagi), la triangulation devient plus complexe, car le gain de l’antenne est concentré dans une direction spécifique.

L’afficheur indique également le SNR (Signal-to-Noise Ratio), qui complète le RSSI en mesurant la qualité du signal par rapport au bruit ambiant, exprimé en dB. Un SNR élevé (> 10 dB) indique une réception propre et fiable, tandis qu’un SNR faible ou négatif (< -10 dB) signale un signal proche du bruit. LoRa utilise un étalement de spectre (Spread Spectrum) qui permet de décoder des signaux avec un SNR négatif (jusqu’à -20 dB dans des conditions optimales). Cependant, un SNR trop faible peut entraîner des erreurs de décodage ou une perte de paquets.

Ce tutoriel pourrait être utile lors d’un MeshCaching organisé par la communauté du Mesh Ile de France 🙂

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?