Meshtastic : Un réseau maillé LoRa en cours de développement

Actuellement, la communication repose essentiellement sur les opérateurs privés de telecom (Orange, SFR, Bouygues Telecom et Free). Il y a aussi des fournisseurs virtuels, ou opérateur de réseau mobile virtuel (MVNO). Ils ne possèdent pas leurs propres infrastructures réseau mais ils louent l’accès aux réseaux d’autres opérateurs pour fournir des services de téléphonie mobile et d’internet à leurs clients (RED by SFR, Sosh (marque low-cost d’Orange), et La Poste Mobile).

Réalisé à partir d’articles en ligne, et pour certaine parties ChatGPT a été utilisé pour résumer et synthétiser des informations diffuses sur les pages web.

Au sommaire :

Meshtastic, un réseau maillé LoRa en cours de développement

Qui a créé Meshtastic?

Logo de Meshtastic

Meshtastic a été lancé par Kevin Hester, un ingénieur et entrepreneur spécialisé dans le développement de logiciels et la conception de matériel. Kevin Hester a fondé le projet afin de créer des dispositifs de communication maillés accessibles et à longue portée pour les amateurs d’activités de plein air et les aventuriers. Sa vision était d’exploiter les technologies open-source et le matériel prêt à l’emploi pour créer des réseaux de communication décentralisés dans les zones reculées dépourvues de couverture cellulaire. Les efforts de collaboration de la communauté Meshtastic ont contribué à la croissance et au développement du projet.

Un réseau résilient pour tous

Meshtastic s’adresse à un large public, amateurs de plein air, sites d’événements (concerts, courses en tout terrain, rave party …) mais aussi radioamateurs licenciés. Ce réseau maillé open source permet à chacun de créer un réseau de communication robuste et autonome, même dans les zones sans couverture cellulaire.

Dans le réseau  chaque appareil peut servir de relais pour les autres, ce qui signifie que les messages peuvent être transmis d’un appareil à l’autre jusqu’à leur destination finale. Cette structure décentralisée augmente la portée et la robustesse du réseau, même en l’absence d’une infrastructure centralisée. Cette redondance crée un réseau robuste dans un environnement où la censure et la surveillance deviennent courants.

Grâce à l’implication des radioamateurs licenciés, Meshtastic bénéficie d’une expertise technique précieuse qui renforce la fiabilité et l’efficacité du réseau. La nature open source du projet encourage la collaboration et l’innovation, permettant à la communauté de développer et d’améliorer continuellement le système.

Un débit limité

On parle de “débit limité” sur Meshtastic en référence à la capacité de transmission de données du réseau. Meshtastic utilise des radios à faible puissance pour créer un réseau maillé (mesh network) qui permet la communication entre appareils sur de longues distances. Cependant, ces radios ont une bande passante limitée, ce qui signifie que le débit de données (la quantité de données pouvant être transmises par seconde) est relativement faible par rapport à d’autres technologies de communication comme le Wi-Fi ou la 4G.

Cette limitation est souvent acceptable pour les applications de messagerie texte ou de petites quantités de données, mais elle peut devenir un problème pour des applications nécessitant un débit plus élevé. On réservera donc Meshtastic à des messages type SMS ou à de la transmission de données limitées (domotique, météo, surveillance…)

Pourquoi créer un réseau maillé ?

On voit qu’au départ Kevin Hester a créé le projet pour des zones « blanches », alors me direz vous pourquoi se poser des questions puisque la plupart du temps il y a des opérateurs qui s’occupent de cela pour nous ? Bin, sans être alarmiste ou survivaliste, on peut envisager des cas où le service rendu par ces opérateurs peut disparaitre, même dans des zones où ils sont censés maintenir le service :

Cyberattaques et sabotage

Les opérateurs télécoms sont des cibles privilégiées pour les cyberattaques. Une attaque réussie pourrait paralyser les réseaux et empêcher la fourniture de services. Le sabotage physique des infrastructures, comme les antennes relais, est également une menace1.

Terrorisme

Les actes de terrorisme peuvent viser les infrastructures critiques, y compris les réseaux de télécommunications. Une attaque coordonnée pourrait causer des interruptions de service à grande échelle.

Décisions gouvernementales

Les gouvernements peuvent décider de restreindre ou de couper les services de télécommunications pour diverses raisons, comme des mesures de sécurité nationale ou des sanctions économiques. Cela peut entraîner des interruptions temporaires ou prolongées des services.

Catastrophes naturelles

Les catastrophes naturelles comme les tremblements de terre, les inondations ou les tempêtes peuvent endommager les infrastructures de télécommunications, entraînant des interruptions de service.

Problèmes économiques

Les crises économiques peuvent affecter la capacité des opérateurs à maintenir et à développer leurs infrastructures. Une situation financière difficile pourrait entraîner des réductions de service ou des faillites.

Pénuries de composants

Les pénuries de composants électroniques, produits majoritairement à l’étranger, peuvent affecter la capacité des opérateurs à maintenir et à étendre leurs réseaux. Les causes peuvent être multiples et peuvent entraîner des interruptions de service ou des retards dans le déploiement des nouvelles technologies.

On peut imaginer par exemple ce genre de raisons dont certaines ont déjà impacté des pans entiers de l’industrie (pénurie des Raspberry Pi, pièces pour l’automobile…)

Crises sanitaires
Pandémie de Covid-19 : La pandémie a perturbé les chaînes d’approvisionnement mondiales, entraînant des fermetures d’usines et des retards de production.
Hausse de la demande
Augmentation de la demande : La demande pour les produits électroniques explose, les entreprises les plus riches achètent les composants à des prix élevés, les plus petits ne sont plus capables de s’approvisionner en raison des prix.
Incidents industriels
Incendies et accidents : Des incendies dans des usines de fabrication de puces, comme ceux au Japon et en Allemagne, ont réduit la capacité de production.
Inondations, tremblements de terre : Des inondations en Thaïlande ont perturbé la production des disques durs ce qui a créé une pénurie mondiale et une forte hausse des prix (2011). Le séisme de Tohoku et le tsunami qui a suivi ont fortement perturbé la fabrication des semi-conducteurs au Japon (2011).
Conflits géopolitiques
Guerre en Ukraine : Le conflit a perturbé l’accès à certaines matières premières essentielles à la production de semi-conducteurs.
Sanctions commerciales : Les restrictions commerciales imposées à la Chine par les États-Unis ont également eu un impact.
Catastrophes naturelles
Tempêtes et inondations : Des événements comme la tempête Uri au Texas ont affecté les usines de production.
Problèmes logistiques
Obstruction du canal de Suez : L’incident du porte-conteneurs Ever Given a causé des retards dans l’acheminement des produits.
Coûts élevés de transport : L’augmentation des prix du transport par conteneurs et les coûts logistiques élevés ont également contribué aux pénuries.
Confinements et restrictions
Confinements en Chine : Les confinements ponctuels des unités de production en Chine ont perturbé la chaîne d’approvisionnement.
Crises énergétiques
Crise énergétique en Chine : Les pénuries d’énergie ont affecté la production dans certaines régions.
Ces facteurs montrent à quel point la chaîne d’approvisionnement des composants électroniques est vulnérable à divers types de perturbations.

Ces risques montrent l’importance de la résilience et de la sécurité dans le secteur des télécommunications. Les opérateurs doivent constamment évaluer et atténuer ces risques pour assurer la continuité de leurs services. Vous pouvez lire à ce sujet cet article : « Les principaux risques dans le secteur des télécoms en 2024« .

Le rôle des radioamateurs

Un radioamateur est une personne autorisée à utiliser des fréquences radio spécifiques pour des communications non commerciales. Ils possède souvent des équipements sophistiqués et des compétences techniques avancées.
Les radioamateurs jouent un rôle crucial en cas de coupure des communications officielles :

Communications d’urgence

Les radioamateurs peuvent établir des réseaux de communication indépendants des infrastructures traditionnelles. En cas de catastrophe naturelle, de sabotage ou de crise majeure, ils peuvent fournir des liaisons de communication essentielles pour les équipes de secours et les autorités.

ADRASEC

En France, l’Association des Radioamateurs au Service de la Sécurité Civile (ADRASEC) est un exemple d’organisation dédiée à la sécurité civile. Ils interviennent lors de catastrophes naturelles, de crises majeures et d’événements extraordinaires pour rétablir les communications.

Flexibilité et rapidité

Les radioamateurs peuvent rapidement déployer des systèmes de communication autonomes. Leur équipement portable et leurs compétences leur permettent de s’adapter à diverses situations d’urgence.

Surveillance et coordination

Lors de grands événements publics ou de situations de crise, les radioamateurs peuvent surveiller les communications et assurer la coordination entre les différentes équipes de secours.

Formation et sensibilisation

Les radioamateurs jouent également un rôle dans la formation aux techniques de communication d’urgence. Ils organisent des ateliers et des exercices pour préparer leurs membres à intervenir efficacement.

En résumé, les radioamateurs sont des acteurs essentiels pour maintenir les communications en cas de coupure des réseaux officiels. Leur expertise et leur dévouement contribuent à la sécurité et à la coordination des secours lors de situations critiques. C’est tout naturellement qu’il se sont intéressés au projet Meshtastic.

Le projet Meshtastic

Le nom “Meshtastic” est une combinaison des mots “mesh” et “fantastic”. Le terme “mesh” fait référence aux réseaux maillés (mesh networks) utilisés par le projet, où chaque nœud communique directement avec ses voisins sans dépendre de routeurs centralisés. “Fantastic” souligne l’aspect innovant et impressionnant de cette technologie de communication décentralisée.

Meshtastic est un projet open-source qui utilise des radios LoRa (un protocole radio à longue portée, qui est accessible dans la plupart des régions sans qu’il soit nécessaire d’avoir une licence ou des certifications supplémentaires, contrairement au matériel radioamateur). Les cartes LoRa sont peu coûteuses et sont utilisées pour créer une plateforme de communication longue portée hors réseau « officiel ». Meshtastic est conçu pour fonctionner dans des zones sans infrastructure de communication existante ou fiable ou pour prendre le relais en cas d’arrêt du réseau des opérateurs.

Les radios sont conçues pour retransmettre les messages qu’elles reçoivent, formant ainsi un réseau maillé. Cela garantit que chaque membre du groupe, même ceux situés à la plus grande distance, peut recevoir des messages.

Meshtastic est utilisé dans de nombreux pays à travers le monde. Les nœuds sont répartis de manière assez homogène, mais certains pays ont une concentration plus élevée de nœuds actifs. Les régions les plus développées actuellement sont  :
Les États-Unis : Les États-Unis ont une forte concentration de nœuds Meshtastic, en grande partie grâce à la communauté active de radioamateurs et de passionnés de technologies open-source.
L’Europe : Plusieurs pays européens, notamment l’Allemagne, la France et le Royaume-Uni, ont également une présence significative de nœuds Meshtastic.
L’Australie : c’est un pays avec une communauté active, en particulier dans les régions éloignées où les communications hors réseau sont essentielles.

Les cartes Meshtastic

On peut suivre l’évolution du nombre de nœuds Meshtastic installés sur des cartes comme MeshMap – Meshtastic Node Map  ou  Meshtastic Map.

On voit par exemple pour la France que le nombre de stations est différent selon la carte utilisée… Il y a encore un travail d’homogénéisation à faire… En plus je vais encore faire mon Papy Ronchon, mais les nœuds et leur activité sont indiqués… par des couleurs ! Amis daltoniens bonjour ! Encore une fois l’inclusion a été un peu mise de côté.

De quoi ai-je besoin ?

Meshtastic s’appuie principalement sur des composants matériels facilement disponibles pour construire des dispositifs de communication maillée à longue portée. Les composants matériels de base comprennent généralement

Des cartes de développement ESP32 : Le logiciel Meshtastic est compatible avec les cartes de développement ESP32, qui sont souvent utilisées. L’ESP32 est un microcontrôleur à faible coût et à faible consommation d’énergie, avec des capacités Wi-Fi et Bluetooth intégrées.

Modules radio LoRa : Les modules radio à longue portée (LoRa) fournissent des capacités de communication sans fil pour les appareils Meshtastic. Ces modules fonctionnent selon le protocole LoRa, qui permet une communication à longue portée avec une faible consommation d’énergie. Les modules SX1276 et SX1278 sont des exemples de modules LoRa compatibles avec Meshtastic.

Modules GPS : Les modules GPS sont utilisés pour déterminer l’emplacement de l’appareil et permettre des fonctions telles que le suivi GPS et le partage de l’emplacement au sein du réseau Meshtastic.

Écrans d’affichage (en option) : Certains appareils Meshtastic intègrent des écrans d’affichage afin de fournir une interface utilisateur pour l’envoi de messages, la visualisation des messages reçus et l’accès à d’autres fonctionnalités.

Antennes : Les antennes sont essentielles pour transmettre et recevoir des signaux radio sur de longues distances. Des antennes externes ou intégrées peuvent être utilisées en fonction de la configuration spécifique du matériel.

Batterie : Les appareils Meshtastic étant souvent utilisés en extérieur, ils sont généralement alimentés par des batteries rechargeables (sur 12v voiture, panneaux solaires…) ou d’autres sources d’énergie portables afin d’assurer un fonctionnement prolongé sans dépendre du réseau électrique.

La modularité et la flexibilité de Meshtastic permettent aux utilisateurs de personnaliser leurs appareils en fonction de leurs besoins et de leurs préférences. En outre, la nature open-source du projet encourage l’expérimentation et le développement de variantes matérielles compatibles par la communauté.

Les bandes ISM (industrielle, scientifique et médicale)

Les bandes ISM (Industriel, Scientifique et Médical) sont des bandes de fréquences radio réservées à des usages industriels, scientifiques et médicaux, mais aussi pour des applications domestiques et similaires. Voici une vue d’ensemble des bandes ISM 433 MHz, 868 MHz et 2,4 GHz. Meshtastic utilise uniquement les bandes 433 MHz et 868 MHz. (source WIkipedia)

Attention, cette présentation est générale et il vous appartient de consulter la législation/réglementation locale pour vous assurer que votre installation est bien en conformité avec les obligations au lieu de mise en œuvre (fréquences, puissance, temps d’occupation…).

Bande ISM 433 MHz

Fréquence : 433,05 – 434,79 MHz. Puissance autorisée sans licence : Généralement limitée à 10 mW (10 dBm).
Utilisée principalement pour les télécommandes, les systèmes de sécurité, les capteurs sans fil et les dispositifs de télémétrie.
Bonne portée et pénétration à travers les obstacles mais  Bande étroite, donc limitée en termes de débit de données.

Bande ISM 868 MHz

Fréquence : 868 – 870 MHz. Puissance autorisée sans licence : Jusqu’à 25 mW (14 dBm) pour la plupart des applications
Utilisée en Europe pour les réseaux de capteurs sans fil, les systèmes de sécurité, les dispositifs de télémétrie et les applications de maison intelligente (smarthome).
Elle connait moins de congestion par rapport à la bande 2,4 GHz, meilleure portée et pénétration par contre la limitation de puissance d’émission est très stricte en Europe.

Bande ISM 2,4 GHz

Fréquence : 2,4 – 2,5 GHz. Puissance autorisée sans licence : Jusqu’à 100 mW (20 dBm) pour les dispositifs Wi-Fi et Bluetooth2.
Très utilisée pour le Wi-Fi le Bluetooth, les fours à micro-ondes, les téléphones sans fil et les dispositifs de domotique.
Elle a une large bande passante, permettant des débits de données élevés par contre en milieu urbain elle est très congestionnée, il y a des risques interférences possibles avec d’autres dispositifs utilisant la même bande.

C’est quoi LoRa ?

Nous avons vu que Meshtastic utilise des radio LoRa. Il est intéressant de savoir comment fonctionnent ces radio.

LoRa (abréviation de “Long Range”) est une technologie de modulation par étalement de spectre dérivée de la technologie CSS (chirp spread spectrum). Développée par Semtech, LoRa est devenue la plateforme sans fil préférée pour l’Internet des objets (IoT) et les applications machine-to-machine (M2M).

Caractéristiques de LoRa

  • Grande portée : LoRa permet des communications à longue portée, pouvant atteindre plusieurs kilomètres en milieu urbain et jusqu’à 15 km en milieu rural.
  • Faible Consommation d’Énergie : Les dispositifs utilisant LoRa sont conçus pour consommer très peu d’énergie, ce qui permet une autonomie de plusieurs années sur batterie (télérelève de compteurs de gaz, eau, électricité…)
  • Utilisation des Bandes ISM : LoRa utilise les bandes de fréquences ISM (Industriel, Scientifique et Médical) qui sont libres de licence, telles que 433 MHz, 868 MHz et 915 MHz.
  • Modulation CSS : La modulation par étalement de spectre chirp permet une meilleure résistance aux interférences et une meilleure sensibilité du récepteur.

LoRaWAN

LoRaWAN (Long Range Wide Area Network) est un protocole de communication basé sur la technologie LoRa. Il définit comment les dispositifs IoT communiquent avec les passerelles et les serveurs.

Lorawan permet de créer des réseaux LoRa locaux autour d’une passerelle (gateway) mais aussi de relier les réseaux locaux à des serveurs qui centralisent les informations. Les opérateurs en France sont Orange et Objenious (filiale de Bouygues Telecom). Il existe également  TTN (The Things Network) qui est un réseau LoRaWAN communautaire et open source pour l’Internet des Objets (IoT). Il s’agit d’une initiative mondiale qui permet aux particuliers, entreprises, universités et autres organisations de déployer et d’utiliser des réseaux LoRaWAN de manière collaborative.

Meshtastic n’utilise que la partie LoRa de cette technologie. LoRaWAN n’intervient pas en Meshtastic.

Le protocole MQTT

Dans la conception de Meshtastic, le protocole MQTT est utilisé pour relier les réseaux locaux créés avec LoRa. MQTT permet alors d’échanger des messages entre ces différents réseaux.

MQTT (Message Queuing Telemetry Transport) est un protocole de messagerie léger basé sur un modèle de publication/abonnement, conçu à l’origine spécifiquement pour les applications IoT (Internet des Objets) dans des environnements à faible bande passante et réseaux instables. Il permet des services de messagerie en temps réel fiables pour les dispositifs connectés au réseau avec un minimum de code.

Principe de fonctionnement de MQTT

 

MQTT repose sur TCP/IP . Il comprend des clients et des brokers (courtiers). Il fonctionne en push (les clients envoient les données au broker) / subscribe (les clients qui veulent recevoir certaines données doivent s’abonner). On voit ci-dessus que le broker reçoit les données qui arrivent des clients et les renvoie à d’autres clients qui sont abonnés à ces données. Les clients ne communiquent pas directement entre eux, mais passent toujours par le broker. Un client peut être soit éditeur, soit abonné, soit les deux.

Dans le cas de Meshtastic, on pourrait dire qu’un client envoie sa position GPS toutes les heures au serveur MQTT, et que celui-ci renvoie ces informations aux cartes qui se sont abonnées à ces données, à charge pour la carte d’afficher la position et le status du client. Ce pourraient également être des messages texte que s’échangent des personnes… La transmission se fait « à la demande » et pas de façon continue ni à intervalles définis. Un client envoie des données uniquement quand c’est nécessaire, et le broker les retransmets uniquement aux abonnés, ceci pour minimiser le nombre de transmissions.

MQTT et vie privée

Meshtastic fournit un chiffrage AES256-CTR pour la charge utile de chaque paquet lors de l’envoi via LoRa, avec une clé différente pour chaque canal. Par défaut, vous disposez d’un canal primaire qui est chiffré* avec une simple clé connue ( AQ== ), donc si vous voulez protéger le contenu, vous devez d’abord changer cette clé, ou créer un nouveau canal et le partager avec ceux avec lesquels vous voulez communiquer.

Toutes les diffusions périodiques (position, télémétrie, etc.) que l’appareil envoie lui-même sont envoyées sur le canal primaire et donc chiffrées avec cette clé.

L’appareil déchiffrera la charge utile avant de l’envoyer à une application cliente via Bluetooth BLE, série, Wi-Fi/Ethernet. Cela signifie que pour l’envoi via MQTT les données sont transmises en clair ! Vous pouvez spécifier si vous voulez envoyer une charge utile chiffrée ou non grâce au paramètre « Encryption enabled« .

Ce paramètre n’est pris en compte que si vous avez également défini le serveur (le serveur officiel par défaut mqtt.meshtastic.org peut gérer les paquets chiffrés). Les paquets non chiffrés peuvent être utiles pour les systèmes externes qui veulent consommer des paquets meshtastic.

A retenir : Tous les messages sont envoyés au broker MQTT en clair si cette option n’est pas activée, même si vos canaux de liaison montante ont des clés de chiffrage définies.

* Chiffrage/Cryptage : Dans la documentation Meshtastic en anglais on trouve le mot encryption qui se traduit en français par chiffrement et pas par cryptage. Déchiffrer un message consiste à le décoder avec une clé (c’est le cas ici) tandis que décrypter un message revient à décoder sans clé. On ne peut donc pas crypter ou encrypter un fichier, on le chiffre. (source primx.eu). Les deux mots sont souvent utilisés l’un pour l’autre (à tort).

Utilisation de MQTT dans Meshtastic

Bridger (relier) des Réseaux :

  • Connexion des Réseaux Maillés : MQTT permet de connecter des réseaux Meshtastic situés à des distances trop importantes pour que la liaison radio soit possible. Cette liaison au-delà de la portée de LoRa, utilise un broker MQTT. Cela permet de créer un réseau global en reliant plusieurs réseaux locaux.
  • Serveur Public ou Privé : Les utilisateurs peuvent se connecter au serveur MQTT public de Meshtastic ou configurer leur propre serveur MQTT privé pour une sécurité et un contrôle accrus.

Communication avec Internet :

  • Transmission des Paquets : Les dispositifs Meshtastic peuvent transmettre des paquets via MQTT lorsqu’ils sont connectés à Internet par Wi-Fi ou Ethernet. Cela permet aux utilisateurs du réseau local de communiquer avec des utilisateurs sur Internet.
  • Intégration avec des Logiciels de Maison Intelligente : Les paquets peuvent être émis ou reçus directement dans des logiciels de contrôle de maison intelligente comme Home Assistant, en utilisant des messages JSON.

Surveillance et Gestion :

  • Rapports de Position sur Carte : Les nœuds peuvent envoyer des rapports de position périodiques au serveur MQTT pour être affichés sur des cartes en ligne.
  • Statut des Dispositifs : Chaque dispositif connecté à MQTT publie son état (en ligne/hors ligne) et d’autres informations pertinentes.

Il est possible de créer son propre serveur de MQTT ou d’utiliser le serveur communautaire. Le fait de transmettre les messages par Internet repose à nouveau sur le fait que le réseau Internet fonctionne encore.

Exemple de message MQTT

Les messages MQTT sont envoyés au format JSON (JavaScript Object Notation  est un format de données textuel dérivé de la notation des objets du langage JavaScript. Il concurrence XML pour la représentation et la transmission d’information structurée – Source Wikipedia)

Un message envoyé pour donner la position d’un noeud Meshtastic pourrait être (ce n’est qu’un exemple pour montrer la structure des données dans un message)  :

Explication des Champs

  • type : Indique le type de message, ici “position”.
  • payload : Contient les données spécifiques au message.latitude : Latitude de la position GPS (ici, 46.8078 pour Le Creusot).
  • longitude : Longitude de la position GPS (ici, 4.416 pour Le Creusot).
  • altitude : Altitude en mètres (ici, 390 mètres).
  • time : Horodatage du message en format ISO 8601.
  • device_id : Identifiant du dispositif Meshtastic.

Ce message serait publié sur un topic MQTT spécifique, par exemple meshtastic/position, et pourrait être reçu par tout client abonné à ce topic comme par exemple la carte qui affichera alors la position de l’appareil.

Chiffrage des données JSON

Dans la configuration MQTT de votre appareil vous pouvez autoriser l’envoi en JSON (JSON output enabled) et activer la sécurisation de la transmission (TLS enabled)

Maintenant qu’on a fait le tour des termes utilisés (n’hésitez pas à poser des questions si ce n’est pas clair !), je vous propose de passer à une revue du matériel disponible actuellement. Je vous mettrai des liens (affiliés) vers ces produits disponibles en général sur Amazon et Aliexpress, mais on peut aussi les trouver dans de nombreuses autres boutiques en ligne.

Le matériel disponible en Août 2024

Les cartes compatibles avec Meshtastic sont référencées sur le site Meshtastic qui comporte une section « Matériel compatible ». Je vous invite à consulter ce site pour être certain(e) que votre matériel est utilisable avec Meshtastic.

Comme dit plus haut, ce sont des stations LoRa qui peuvent s’intégrer au réseau Meshtastic et les développeurs ont porté le firmware sur un nombre restreint de MCU (Microcontroler Unit). Il n’est pas possible de développer des programmes pour tous types de supports matériel (pour des raisons de nombre de personnes disponibles et de temps de développement, rappelez vous que c’est de l’open source réalisé par des bénévoles !)

Toutes les cartes listées sur la page de compatibilité fonctionnent avec Meshtastic et se connectent les unes aux autres, cependant les cartes préférées de la communauté sont les suivantes :

  • RAK Meshtastic Start Kit
  • Station G1
  • LILYGO LoRa T3-S3
  • HELTEC LoRa V3

Je vous propose de les regarder de plus près une par une.

RAK Meshtastic starter Kit

RAK Wisblock est un système modulaire comprenant des modules de base, des modules principaux et des modules périphériques, y compris le starter kit Meshtastic (19007 & 4631) basé sur le nRF52840 à faible consommation d’énergie et prêt pour l’énergie solaire. La notice technique (en Anglais) est disponible en ligne.

Le système est modulaire et permet d’ajouter les éléments nécessaires en fonction des besoins. Le prix final dépendra bien entendu des options que vous ajouterez (antenne, GPS, accéléromètre…)

RAK propose également le WishMesh Pocket pour 99$, la description complète de l’appareil est en ligne.

Le WisMesh Pocket est un bon point de départ pour explorer et utiliser le réseau Meshtastic. Il est livré préchargée avec le firmware Meshtastic, avec un boîtier adapté, un écran OLED, un module de localisation GNSS (GPS) et un capteur d’accélération. Il peut jouer le rôle de client ou de tracker Meshtastic. Il est fourni avec un boîtier qui comporte un connecteur d’antenne SMA, un écran OLED intégré et un bouton utilisateur pour contrôler le contenu de l’écran.

Station G1 et G2

Les appareils de la série Station, conçus par Neil Hao de B&Q Consulting, sont des appareils LoRa compacts et durables conçus pour une communication par radiofréquence de haute performance. Ils sont dotés d’un puissant amplificateur de puissance pour les communications LoRa, d’une prise d’antenne SMA robuste et d’une variété d’interfaces E/S externes.

Ses principales caractéristiques : Microcontrôleur ESP32-S3 WROOM-1, WiFi, Bluetooth 5.0 Émetteur-récepteur LoRa Semtech SX1262, Amplificateur de puissance LoRa supplémentaire de 35 dBm, LNA (Amplificateur à faible bruit), fréquence 864 à 928 MHz, GPS en option.

Le module est livré avec Meshtastic installé. Prix ~100$ (liens pour la commande ici).

A mon avis, ce qui pose problème ici c’est l‘amplificateur de puissance qui permet de sortir jusque 37 dBm (5 watts) en 868 MHz, ce qui n’est pas autorisé en France où le limite est de 14 dBm.

Il existe en version Nano G2 Ultra plus compacte. Le MCU est un NRF52840 et le module LoRa SX1262 et a un emplacement pour une batterie. Comptez quand même environ 90$.

Pour plus d’informations sur les appareils de la série Station, visitez la page Wiki de la série Station.

LILYGO T-Beam et LoRa T3-S3

LILYGO T-Beam


LILYGO présente de nombreux modèles. Vous les trouverez sur la page de compatibilité. J’ai retenu le modèle T-Beam ci-dessus car souvent rencontré sur les installations Meshtastic. Il existe en plusieurs versions mais on trouve un ESP32 (WiFi & Bluetooth), un transceiver LoRa Semtech SX1276 (sur 433 ou 868 MHz), un module GPS NEO-6M et un connecteur SMA pour l’antenne. Le prix est aux environs de 40€.

LILYGO LoRa T3-S3

 

Sur ce modèle le MCU (microcontrôleur) est un ESP32-S3 qui offre WiFi + Bluetooth et le module LoRa peut être au choix le modèle SX1262 (150 à 960MHz, émission jusque +22dBm, sensibilité réception -148dBm) ou SX1276 (137 à 1020MHz, émission jusque +20dBm, sensibilité réception -139dBm). Le modèle SX1262, plus récent et légèrement plus cher a de meilleures performances. Le module possède un écran OLED de 0,96 pouce intégré. Le module est vendu environ 17$

Heltec

Heltec LoRa V3

Allez je vais être chauvin, celle-là je l’aime bien… car c’est celle que j’utilise 😉  De taille réduite, elle est équipée d’un écran qui donne des indications sur le fonctionnement. Ici en haut à droite on a par exemple l’identifiant du module (2eb4, les derniers caractères de l’adresse MAC) et on voit que le GPS que j’ai relié à la carte (par un port UART) reçoit actuellement 7 satellites. On voit aussi entre l’écran et le bouton PRG, l’antenne WiFi/Bluetooth 2,4 GHz qui est une petite bobine (faites attention de ne pas l’écraser ou la déformer).

La carte embarque un module LoRa SX1262, sous l’écran OLED 128×64 pixels. Sous la carte on trouve l’ESP32S3 et un adaptateur CP2102 vers le port USB. Une prise permet de connecter une batterie Lithium gérée par un BMS embarqué sur la carte (BMS = système de gestion de la batterie au lithium : gestion de la charge et de la décharge, protection contre la surcharge, détection de la puissance de la batterie, commutation automatique USB/puissance de la batterie). Il n’y a pas de GPS embarqué. Cette carte m’a plus car elle est basique et pas chère. Elle coûte moins de 25€.

Heltec LoRa GPS Tracker

Ce modèle a les mêmes caractéristiques que le précédent mais embarque en plus un GPS récent UC6580. Il est vendu environ 25€.

Les autres modules

Ils sont encore nombreux mais je ne peux pas détailler tous les modules ici. Reportez vous à la page des modules compatibles sur le site Meshtastic. Si des modules se détachent du peloton, je les ajouterai à cette page. Je pense au Raspberry Pi Pico qui reste encore en retrait, à CanaryOne, unPhone ou Seeed Wio-WM1110.

Conclusion provisoire

Cette première partie présente les différents composants hardware et software qui sont mis en œuvre dans le réseau Meshtastic. Bien entendu, si certaines parties vous semblent peu claire (ou pas du tout claires) n’hésitez pas à mettre un mot dans les commentaires ou à me contacter sur contact@framboise314.fr pour discuter d’une amélioration.

Démarrer en Meshtastic

Exemple de liaison de base

Maintenant que nous avons découvert les différents composants d’un réseau Meshtastic (hardware et Software) je vous propose de voir comment deux personnes possédant chacune un  smartphone et une carte LoRa Meshtastic peuvent communiquer. Je vais prendre l’exemple de deux personnes habitant l’une à Le Creusot (71) et l’autre dans la ville voisine de Le Breuil (71).

Source OpenStreetMap

 

Pour établir la liaison, chaque participant au réseau devra posséder un module LoRa avec son antenne, parmi ceux qui sont compatibles avec Meshtastic, un câble USB pour alimenter le module LoRa (batterie, alimentation secteur, port USB de PC) et un smartphone (Android ou iOS) pour se connecter à l’appareil LoRa, le configurer et envoyer des messages. Le module LoRa sera flashé avec le firmware Meshtastic qui lui convient (on verra ça plus loin).

Installer l’application Meshtastic

Sur le smartphone il faudra installer puis ouvrir l’application MESHTASTIC.

Téléchargement Android Téléchargement iOS

Chaque utilisateur se connecte à son module LoRa via l’application Meshtastic, en Bluetooth (cas le plus fréquent).En général les modules LoRa, basés sur des ESP32 n’acceptent qu’une connexion Bluetooth. Il faudra que chaque utilisateur ait son module LoRa dédié.

Réseau Meshtastic de base

Après la configuration du module LoRa (on verra ça aussi un peu plus tard) via l’application Meshtastic sur le smartphone, le réglage des canaux tout ça tout ça on est dans cette configuration :

A gauche l’utilisateur a installé l’appli Meshtastic, configuré son module LoRa, choisi un canal. Il voit apparaître dans sa liste de contact l’utilisateur de la ville voisine et peut lui envoyer un message après l’avoir sélectionné.
L’utilisateur à droite, dans la ville de Le Breuil, reçoit le message via son module LoRa qui le retransmet à l’appli Meshtastic en Bluetooth. L’utilisateur est averti par une notification sur son smartphone.
L’opération fonctionne également en sens inverse et l’utilisateur de Le Breuil peut envoyer une réponse.

Ça ne passe plus !

Et soudain c’est le drame ! on a construit un immeuble, une montagne s’est dressée entre les deux stations et la liaison est devenue impossible ! Que faire ?

Un pas vers le réseau Maillé

C’est ici qu’intervient le réseau maillé. Si nous n’avions que les deux module, rien ne changerait. Heureusement, le réseau Meshtastic s’étend et un utilisateur de la ville voisine de Montchanin a décidé de monter une station Meshtastic pour son usage personnel, sur le même canal.

De ce fait, la communication va s’établir automatiquement entre les deux stations de Le Creusot et Le Breuil, mais cette fois en passant par Montchanin.

La communication est donc rétablie entre deux stations qui ne pouvaient pas correspondre pour des raisons d’éloignement ou d’obstacle. Mais quand même… Si le gars de Montchanin pour une raison ou une autre, débranche son module LoRa (il avait besoin du connecteur USB-C pour charger son téléphone 😀 ), nos deux utilisateurs du début sont à nouveau incapables de communiquer. C’est là que le réseau maillé va trouver son intérêt… Je vous explique.

Le réseau Maillé

Si vous voyez comment fonctionne ce réseau, on va passer à l’étape suivante, le réseau maillé.

On retrouve nos deux utilisateurs de départ (Le Creusot et Le Breuil) et celui de Montchanin qui était venu s’ajouter au réseau et avait permis de « contourner » la montage. En quelque temps, d’autres personnes, intéressées par Meshtastic ont installé des nœuds LoRa, pas forcément connectés à un smartphone (on ne sait pas) mais en tout cas comme ils utilisent les mêmes canaux, les messages peuvent emprunter n’importe quel chemin pour atteindre le destinataire. De ce fait, même si une des stations est éteinte, le message transitera par un autre chemin, mais arrivera quand même à destination. Bien que la technologie ne soit pas identique on a la même idée que dans le routage TCP/IP.

Un exemple d’application serait une course en tout terrain dans une zone non couverte ou mal couverte par le réseau cellulaire 4G. Les membres de l’équipe peuvent utiliser leur smartphone mais avec le public le réseau risque d’être saturé. On peut imaginer que les membres de l’équipe aient un module LoRa dans leur sac à dos et communiquent entre eux via Meshtastic au moyens de messages texte. L’ensemble de ces appareils qui peuvent échanger entre-eux s’appelle une BULLE en Meshtastic.

C’est ce maillage qui donne la résilience du réseau et lui permet de résister à des arrêts de stations LoRa, à du brouillage etc.

Relier les réseaux entre eux

Lorsqu’on a créé une bulle dans un endroit, on peut souhaiter se relier à d’autres personnes individuelles ou à d’autres bulles. A terme si la France est entièrement maillée, les messages devraient transiter via les modules LoRa (il faudra voir la charge que cela représente). En attendant, ou pour améliorer la liaison entre deux bulles, le moyen choisi est de relier les bulles ou les utilisateurs par l’intermédiaire d’un broker MQTT.

Un des appareils de la bulle est relié à l’Internet (en WiFi ou en filaire) et se connecte à un serveur MQTT. Celui-ci redistribue les messages en fonction des abonnements et les différentes bulles peuvent communiquer entre-elles.

Rappel : MQTT transmet par défaut les messages en clair. Il vous appartient d’activer le chiffrement si vous voulez protéger vos contenus.

Parmi les modules LoRa connectés au Broker MQTT, certains sont équipés d’un GPS et transmettent des informations de géolocalisation (longitude, latitude, altitude) qui pourront être affichées sur une des cartes qui représente le réseau Meshtastic.

Installer Meshtastic sur un module LoRa

On va passer aux choses concrètes, à savoir installer un firmware Meshtastic sur un module LoRa. Il fallait opter pour des modules, je vous ai dit plus haut que j’avais choisi le Heltec V3 en 868 MHz, ce sera donc celui qui sera configuré en premier. Ensuite, je remercie Jean-Paul qui a arrêté ses activités LoRa/Meshtastic et qui m’a envoyé ses modules. Parmi ceux ci du Heltec, mais aussi un LILYGO T-Beam en 433 MHz que j’ai choisi de configurer également. Ce sont donc ces deux modules que je vous propose de configurer. Dans un second volet, nous verrons la configuration avec l’application Meshtastic sur smartphone.

Installer le firmware sur le module Heltec V3

Vérifier que vous avez les drivers

La première chose à faire c’est de voir si votre machine qu’elle soit Windows, Linux ou Mac est équipée des drivers (pilotes) qui lui permettront de communiquer en série via le port USB avec la carte que vous connectez. Vous trouverez ces informations à de nombreux endroits sur les sites web car c’est un grand classique. Meshtastic fournit également des éléments sur sa page « Installing Serial Drivers« . Pour les carte Heltec V3 et Lilygo T-Beam il s’agit des drivers ESP32 de type CP210x.

Commencez par connecter la carte au PC via un câble USB.

Dans le « Gestionnaire de périphériques » sous Windows, vous devriez voir apparaître la liaison série vers votre carte, ici en COM15 avec le CP210x.

Prévoir les câbles

Certaines cartes sont équipées d’un connecteur micro USB, d’autres sont en USB-C. Assurez vous de disposer du modèle de câble correspondant à votre carte et à l’ordinateur sur lequel vous allez la connecter.

Identifier son module LoRa Heltec V3

Si vous avez acheté le module, vous connaissez ses caractéristiques. Sinon il faut identifier le module avec certitude. Pour le mien il ressemble à ça :

il est bien identifié : WiFi_LoRa_32_V3. Le MCU (microcontrôleur est un ESP32). Si c’est une V2 le MCU est différent et donc ce ne sera pas le même firmware. Tout à gauche il y a une résistance (0 Ω) soudée sur HF qui indique qu’on est sur la bande haute (868 MHz). Elle ne sert qu’à identifier la bande du module et n’est reliée à rien ! (voir schéma du module Heltec en bas à droite à côté de l’ESP32).

Choisir le Firmware pour Heltec V3

Rendez vous sur la page de Meshtastic. Elle est en Anglais.

En haut de la page cliquez sur Downloads.

Vous allez pouvoir flasher (transférer le firmware sur votre MCU = microcontrôleur). Cliquez sur Go to Flasher pour ouvrir la page du Flasher.

Si la page affiche comme ici un bandeau indiquant que votre navigateur ne supporte pas le Flasher (j’étais sous Firefox), utilisez un autre navigateur : Chrome ou Edge sont compatibles. Dans mon cas je vais recharger la même page mais cette fois avec CHROME. Cette fois le bandeau d’avertissement n’apparait plus.

Cliquez sur Select Target Device pour choisir le type de carte à programmer. Ce choix est important car chaque carte a ses spécificités (type de MCU, GPS, LEDs et boutons connectés sur des ports différents etc.) et les bénévoles de Meshtastic créent des versions de firmware (à chaque nouvelle version du firmware) pour chacune de ces cartes. Merci à eux pour ce travail gigantesque ! Ici je choisis Heltec V3. Cliquez ensuite sur Select Firmware Version.

Il faut maintenant choisir la version de firmware que vous souhaitez installer… Les différentes versions du firmware Meshtastic ont des objectifs et des niveaux de stabilité différents :

  • Preview : Cette version offre un aperçu des nouvelles fonctionnalités à venir. Elle est destinée aux utilisateurs qui souhaitent tester les dernières innovations avant leur sortie officielle. Par exemple ici, la version 2.5.0.d6dac17 inclut des améliorations de sécurité et de cryptage.
  • Alpha : Les versions Alpha sont conçues pour tester de nouvelles fonctionnalités, corrections de bugs ou améliorations. Elles peuvent être instables et sont principalement destinées aux développeurs ou aux utilisateurs avancés qui veulent contribuer aux tests.
  • Alpha Hotfix : Cette version est une mise à jour rapide pour corriger des bugs critiques ou des problèmes de sécurité dans une version Alpha existante. Elle vise à stabiliser rapidement une version Alpha sans attendre la prochaine version Beta.
  • Beta : Les versions Beta sont plus stables que les versions Alpha et incluent des fonctionnalités qui ont déjà été testées. Elles sont recommandées pour la plupart des utilisateurs qui souhaitent bénéficier des dernières améliorations tout en minimisant les risques de bugs majeurs.

Je vous conseille de choisir la dernier version Beta stable. Après c’est vous qui voyez, si vous voulez expérimenter et faire remonter les bugs que vous découvrez, pourquoi pas ?

Sur l’image ci-dessus vous pouvez noter en bas à gauche qu’il y a une indication « Not connected« .

Installer le firmware sur le module Heltec V3

Cliquez sur l’icône Flash

La fenêtre présente les modifications de la version que vous allez flasher. Descendez en bas du texte et cliquez sur le bouton Continue. Pour réinstaller le firmware dans une nouvelle version je vous conseille de mettre Flash Firmware > Full Erase and Install sur ON, pour effacer complètement la mémoire flash. Cela évite d’avoir des problèmes avec des paramètres qui resteraient en mémoire.

 

Cliquez sur Erase Flash and Install.

Choisissez le port série de la carte que vous avez connectée (ici celle avec le driver CP2102, puis cliquez sur le bouton  Connexion en bas de la fenêtre…

La console va commencer à indiquer le détail des opérations de flashage, puis le pourcentage d’avancement. En bas à droite l’indicateur est passé de Not Connected à Flashing. A la fin des opérations le flasher indique que les opérations sont terminées :

La carte démarre et l’écran vous donne des informations pour la connexion en Bluetooth.

 

Sur un smartphone connectez vous en Bluetooth à la carte Heltec V3 :

Entrez le code PIN affiché sur l’écran de la carte Heltec V3 dans la fenêtre de demande d’appairage du smartphone, Associez et vous êtes prêt(e) à configurer la carte via l’application embarquée sur le smartphone.

Installer le firmware sur le module LILYGO T-Beam

L’autre carte dont je dispose et que je vais configurer est une LILYGO T-Beam en 433MHz. Connectez la carte en USB  à l’ordinateur qui va servir à la flasher.

Identifier son module LoRa LILYGO T-Beam

Le module est bien identifié par ses composants, il ne peut pas y avoir d’erreur. Le circuit LoRa est bien en 433 MHz et on a sur la droite un GPS Ublox de type NEO-6M dont nous avions déjà parlé sur le blog.

Choisir le Firmware pour LILYGO T-Beam

La démarche est la même que pour la carte Heltec V3.

Sélectionnez le modèle de carte à flasher, puis la version du firmware, cliquez enfin sur l’icône Flasher. Faites défiler la page de modifications et cliquez sur Continue en bas de la page.
Activez Flash firmware > Full Erase and Install.

Puis cliquez sur le bouton Erase Flash and install.

Sélectionnez le port de COM correspondant à la carte LILYGO T-Beam (ici COM15), puis cliquez sur le bouton Connexion en bas de la fenêtre.

La programmation de la carte commence.

 

Installer le firmware sur le module LILYGO T-Beam

Démarrer le module LILYGO T-Beam

 

Sources

https://meshtastic.org/

https://meshtastic.org/docs/overview/encryption/

Meshtastic : La Communication Hors Réseau pour Tous

Meshtastic

Devices | Supported Hardware Overview | Meshtastic

https://www.paessler.com/fr/it-explained/mqtt

https://www.primx.eu/fr/abc-chiffrement/chiffrement-vs-cryptage-quelles-differences/

Meshtastic

 

 

Share Button