Il y a peu de temps, on a eu la bonne (ou la mauvaise idée) de me parler du réseau Meshtastic. Depuis, j’ai sombré dans le sujet, je passe ma vie sur mon toit, mais je me soigne. Je vous propose de vous parler du projet, et vous refiler la maladie.
Introduction
S’il y a bien un sujet que je n’ai pas encore abordé dans tous mes projets en tous genres, c’est bien tout ce qui concerne la “communication hertzienne”. Autant quand on parle de câble réseau ou de fibre ça me parle, mais pas ce domaine là.
Il y a depuis quelques années toute une communauté qui se développe autour des réseaux lora, parlant initialement du projet “Meshtastic”.
Puisque tout est abordable avec du matériel qui n’est (à la base) pas couteux, je me lance dans l’aventure, sans savoir que des plumes y seront perdues.
Mais pour quoi faire ?
Globalement ça sert à quoi ? L’idée est toute simple : proposer un réseau de communication bas débit (principalement sur du texte), totalement décentralisé et indépendant des réseaux historiques “propriétaires” comme la 3G/4G/5G de nos opérateurs préférés.
Le but est de se baser sur le travail bénévole de la communauté pour créer un réseau maillé, grace à divers équipements se relayant des messages, pour créer une couverture sur une petite zone, ou sur tout le territoire ; le tout reposant sur la techno “Lora” et une implémentation opensource, le “meshtastic”.
Ceci pourrait ensuite servir dans le cas d’un blackout, apocalypse, ou arrivée des petits hommes verts ; ou juste parce qu’on est des geeks et que c’est cool de s’envoyer des émojis avec plusieurs secondes de latence.
La technique
Doliprane 500mg conseillé.
Vous avez le droit de relire les phrases si c’est trop chargé en mots inconnus. Le principe c’est de dire autour de vous “c’est facile à comprendre” et de garder la tête haute.
C’est quoi une onde ?
Une onde c’est ça. Bisous.

Bon. Une onde c’est une perturbation qui se propage dans l’espace en transportant de l’énergie, mais sans transporter de matière. C’est une oscillation qui se répercute de proche en proche avec un décalage dans le temps. On la caractérise par sa fréquence (en Hz), sa longueur d’onde et son amplitude.
Pour une onde électromagnétique comme ici, la fréquence et sa longueur d’onde sont liées à la vitesse de propagation, en l’occurence celle de la lumière.
Plus la fréquence est élevée, plus la longueur d’onde est courte, mais cela influe sur sa capacité à traverser les murs et les distances… Comparez votre wifi 2,4Ghz qui ne dépasse pas votre maison, avec la capacité d’une radio FM en 100Mhz (même si parfois on aimerait que certaines chansons ne se propagent pas si loin).

Les dbm
Le dBm est une unité de puissance électrique, exprimée sur une échelle logarithmique, avec pour référence 1 milliwatt (0 dBm = 1 mW).
L’intérêt du logarithme : les puissances des radiofréquences (en W) varient sur des ordres de grandeur énormes (d’une antenne qui émet quelques dizaines de mW à un signal reçu de l’ordre du millionième de milliardième de watt en limite de portée), et une échelle linéaire en mW rendrait ces chiffres illisibles. En dBm, tout se lit sur une plage compacte et intuitive : chaque +3 dBm double la puissance, chaque +10 dBm la multiplie par 10.
Vive les logarithmes (regrets éternels de ne pas avoir suffisament écouté en cours de Math au collège/lycée, hein ?).
Ça sert à exprimer :
- la puissance d’émission (ex : 14 dBm = 25 mW, plafond réglementaire courant en 868 MHz)
- le niveau de réception (RSSI), quasi toujours négatif en pratique (-80, -110, -130 dBm…), plus la valeur est proche de 0, plus le signal reçu est fort (sur le mesh, passés -115dbm c’est pas ouf).

On peut aussi parler des différentes métriques utilisées dans le cas de la liaison, entre la puissance d’émission, la puissance d’antenne, la perte de l’espace, la puissance d’antenne de réception…

Mais j’ai pas encore assez bûché le sujet pour avoir des exemples concrets :D
LoRa et LoRaWAN : deux choses différentes
Il y a souvent confusion entre les deux, alors qu’ils désignent des couches différentes de la stack réseau.
LoRa : la couche physique (PHY)
LoRa (Long Range) est une technique de modulation radio propriétaire développée par Cycleo (rachetée par Semtech). Elle repose sur le CSS (Chirp Spread Spectrum) : le signal n’est pas une porteuse fixe modulée classiquement, mais une rampe de fréquence (un « chirp ») qui balaie la bande passante disponible.
Ce choix de modulation apporte :
- une forte robustesse au bruit et aux trajets multiples (multipath), typique des environnements urbains ou boisés
- une sensibilité de réception exceptionnelle, permettant de démoduler un signal même en dessous du niveau de bruit ambiant
Trois paramètres réglables définissent le compromis portée/débit :
- SF (Spreading Factor, 7 à 12) : plus il est élevé, plus la portée et la sensibilité augmentent, mais le débit chute et le temps d’antenne (donc la consommation du duty cycle réglementaire) augmente.
- BW (bande passante, 125/250/500 kHz) : plus étroite = plus sensible mais plus lente.
- CR (coding rate) : redondance FEC contre les erreurs de transmission.
En Meshtastic ou Meshcore, on configure ces paramètres là.
LoRa ne définit que la couche physique : comment le signal est modulé et démodulé. Rien sur l’adressage, le routage, la sécurité ou la structure des messages — c’est le rôle de la couche au-dessus.
LoRaWAN : le protocole réseau construit par-dessus
LoRaWAN est un protocole applicatif/réseau (couches MAC et au-dessus) qui utilise la modulation LoRa comme PHY. Il définit :
- une architecture en étoile : des devices (capteurs, objets IoT) parlent à une ou plusieurs passerelles (gateways), qui remontent tout vers un network server centralisé, généralement connecté à Internet.
- des classes de devices (A, B, C) qui définissent le comportement de réveil/écoute pour économiser la batterie.
- un système de sécurité end-to-end (chiffrement AES-128, clés réseau et applicatives séparées).
- une gestion fine du duty cycle et des canaux, conforme aux sous-bandes ETSI/ARCEP.
C’est le protocole derrière des réseaux comme The Things Network, ou les déploiements IoT industriels (relevés de compteurs, capteurs environnementaux, tracking d’actifs).
Pourquoi ça ne concerne pas le mesh
Meshtastic (comme MeshCore) utilise la modulation LoRa, mais pas le protocole LoRaWAN. Il implémente son propre protocole applicatif, pensé pour du maillage décentralisé (mesh) :
- pas d’architecture étoile avec gateway centrale : chaque node peut relayer les messages des autres, sans infrastructure fixe ni connexion Internet.
- pas de network server distant : le réseau fonctionne entièrement en local, de proche en proche.
- un modèle pensé pour de la communication de groupe / peer-to-peer en zone sans couverture, plutôt que pour de la remontée de données de capteurs vers le cloud.
En résumé : LoRa = la modulation radio (le langage physique), LoRaWAN = un protocole réseau parmi d’autres qui parle ce langage, et Meshtastic/MeshCore = un protocole différent, qui parle le même langage LoRa mais avec une grammaire orientée mesh plutôt que star-topology/cloud.

La loi
C’est bien beau tout ça, mais on ne peut pas créer un réseau et utiliser les ondes comme ça nous enchante pour chanter du Johnny Haliday toute la nuit.
En France, l’utilisation des fréquences radio est encadrée par deux autorités complémentaires :
- ANFR (Agence Nationale des Fréquences) : gère et contrôle l’usage du spectre, fait la police des fréquences. Si vous voulez passer une licence d’ailleurs c’est par ici que ça se passe.
- ARCEP : régule le marché des communications électroniques et fixe les conditions d’utilisation des bandes.
Le principe général : toute émission radio nécessite soit une autorisation individuelle, soit d’entrer dans le cadre d’une bande dite « libre » (license-free), qui reste soumise à des règles techniques strictes même sans autorisation nominative.
La bande utilisée par le mesh (868 MHz)
Les devices Meshtastic/LoRa en Europe utilisent la bande 863–870 MHz, classée SRD (Short Range Device) sous la norme harmonisée ETSI EN 300 220, elle-même transposée par décision ARCEP. Elle est « libre de droit » (pas de licence individuelle à demander), mais encadrée par la recommandation CEPT ERC 70-03, qui découpe la bande en sous-bandes avec des contraintes différentes :
| Sous-bande | Fréquence | Puissance max | Duty cycle |
|---|---|---|---|
| h1.4 | 865–868 MHz | 14 dBm (25 mW) | 1 % |
| h1.5 | 868–868,6 MHz (canaux LoRa par défaut) | 14 dBm | 1 % |
| h1.6 | 868,7–869,2 MHz | 14 dBm | 0,1 % |
| h1.7 | 869,4–869,65 MHz | 27 dBm (500 mW) | 10 % |
Aux US, ils utilisent plutôt la bande autour de 915Mhz, attention donc aux équipements que vous achetez.
Ce qui compte vraiment pour du mesh
- Le duty cycle est la vraie contrainte pratique, pas la puissance. Sur h1.5 (les canaux par défaut de Meshtastic), on ne peut émettre qu'1 % du temps par heure, soit 36 secondes max/heure. C’est ce qui limite le débit de messages sur un réseau mesh dense, pas la puissance d’émission.
- 25 mW (14 dBm) est le plafond que respectent la quasi-totalité des devices Meshtastic grand public — d’où une portée réelle limitée à quelques km malgré le marketing « 10 km » des fabricants.
- Pas besoin de licence radioamateur pour utiliser du LoRa/Meshtastic en 868 MHz : c’est justement l’intérêt de la bande SRD, accessible à tous sans déclaration, tant que le matériel est certifié conforme (marquage CE, respect EN 300 220).
- Attention au matériel non certifié (modules nus, firmware modifié qui pousse la puissance ou le duty cycle au-delà des limites) : on sort alors du cadre légal, même si personne ne vérifie en pratique en usage privé/test isolé.
La différence entre « portée théorique constructeur » et « portée réelle terrain » s’explique en grande partie par ces contraintes réglementaires (puissance plafonnée + duty cycle), en plus des obstacles physiques du terrain.
La vraie question ?
A chaque fois qu’on se lance sur le projet/sujet, on tombe sur les deux implémentations courantes, Meshtastic, et Meshcore. Au final, bien que basées sur Lora, ce n’est pas vraiment la même approche, la même implémentation et encore moins prévu pour les mêmes besoins.
Meshtastic
Meshtastic est un firmware open-source de réseau mesh basé sur LoRa, lancé en 2019/2020 par Kevin Hester (sacré Kevin). Il tourne sur du matériel LoRa commun (LILYGO T-Beam, Heltec WiFi LoRa 32, RAK WisBlock, Seeed SenseCAP…) sans outillage spécialisé, avec une app mobile (iOS/Android) mature et une grosse communauté.
Principe de routage : le broadcast utilise du « managed flooding » — chaque node rediffuse les paquets jusqu’à une limite de sauts configurable (3 en général, c’est pas énorme). Depuis la version 2.6, les messages directs passent par du routage next-hop après une découverte de route, ce qui réduit le temps d’antenne pour le trafic point-à-point — mais le broadcast reste basé sur l’inondation.
Points forts :
- Mise en route très rapide, app polie, un non-technicien peut rejoindre le réseau en moins de dix minutes (véridique).
- Écosystème riche : pont MQTT, intégration Home Assistant, plugins ATAK. L’utilisation de MQTT étant un peu tourmentée par la communauté.
- Documentation solide, communauté large
- Tous les noeuds (même pour discuter) sont des répéteurs, ce qui permet de créer un maillage plus fin (s’il y a du monde), et de ne pas dédier du matériel à un rôle.
Limite connue : le flooding généralisé consomme davantage de bande passante/duty cycle à mesure que le réseau grandit — un compromis simplicité/scalabilité qui devient sensible sur de grands déploiements denses.
Mon avis sur Meshtastic : les paramètres applicables sur vos équipements sont variés, et impliquent aussi que vous ne verrez pas forcement d’autres équipements Meshtastic. C’est au final un problème si vous cherchez à courir une grande superficie ou aller loin, car tout le monde n’est pas “accordé”. C’est très pratique par contre si vous voulez vous créer votre propre “bulle”, et que vous ne dépendez pas sur des équipements autres que les vôtres.
Dans mon cas classique où je cherchais à joindre du monde sur Toulouse, il y a trop peu d’équipements, on se retrouve très vite dans une bulle avec personne…
Meshcore
MeshCore a été développé par Scott Powell fin 2024 (sacré Scott), comme alternative plus récente au même problème : du mesh LoRa décentralisé, sans internet ni cellulaire. C’est une librairie C++ légère et portable, pensée pour des projets embarqués, tournant sur une partie du même matériel LoRa que Meshtastic.
Principe de routage : c’est la différence centrale. Là où Meshtastic fait rediffuser chaque message par chaque node (managed flooding), MeshCore inonde une seule fois pour apprendre une route, puis route ensuite les messages suivants directement le long de ce chemin appris. MeshCore utilise aussi le flood broadcast pour les canaux publics, mais impose davantage de rôles structurés aux nodes (routage, store-and-forward) pour réduire la consommation de bande passante, au prix d’une portée multi-saut et d’une couverture spontanée un peu moindres. Néanmoins plus de sauts sont autorisés par défaut (64).
Points forts :
- Airtime plus économe une fois le réseau stabilisé — pertinent pour un déploiement planifié/infrastructure fixe (répéteurs positionnés à l’avance).
- Conçu dès le départ pour de la scalabilité régionale plutôt que pour du mesh ad hoc.
Limite connue :
- moins accessible aux débutants que Meshtastic
- moins “open” aussi
- la configuration impose plus de décisions, la documentation est plus légère, et le modèle mental diffère.
- Il faut dédier des noeuds en tant que “Répéteurs”, et des noeuds pour discuter, les “companions”
Mon avis sur Meshcore : bien que plus récent, et “moins ouvert”, il a été porté très rapidement par tous les “nouveaux arrivants” qui ont été frustrés du “désert” Meshtastic lié aux paramétrages hétérogènes. Il est au final bien plus utilisé actuellement, et prouve qu’il fonctionne sur de très longues distances. Certains pays sont très en avance (par exemple l’allemagne).
Il est par contre très dépendant de la fiabilité des “répéteurs” créés par les membres, et nécessite donc de la communication et de la documentation pour que tout le monde utilise les mêmes paramètres.
Et les irréductibles Gaulix là dedans ?
C’est là où j’avais pris le sujet au départ, par conseil de mon entourage.
Gaulix est une petite communauté qui a voulu proposer une configuration type de meshtastic, afin de permettre de “recentrer” tous les utilisateurs de meshtastic, et d’éviter que personne ne se voit.
Ils proposent ainsi beaucoup de règles (sans vouloir les imposer), du paramétrage jusqu’au nommage des noeuds.
Faites un petit tour sur leur site : https://gaulix.fr/
Ils ont également de la documentation sur Meshcore.
L’implémentation
Cet article commençant à être bien trop long, je propose un second article très rapidement, sur mon implémentation et expérience personnelle sur Meshtastic, et Meshcore. On pourra y retrouver le matériel, la configuration, l’installation, ….
Les liens
Je vous propose pas mal de liens qui peuvent vous aider à bûcher le sujet :