RF-MARKET BLOG

MeshCore : le guide complet pour débutants
By juin 01, 2026 0 Comment

MeshCore : le guide complet pour débutants

MeshCore est un protocole de réseau maillé reposant sur la technologie radio LoRa, pensé pour permettre des communications décentralisées sans infrastructure Internet. Ce guide vous explique pas à pas les trois rôles fondamentaux du réseau, comment configurer les filtres de régions adaptés à la France, et pourquoi il est indispensable de régler votre duty cycle à 10 % pour rester dans les clous de la réglementation européenne.

Sommaire

  1. Qu'est-ce que MeshCore ?
  2. Les trois rôles natifs du réseau
  3. Les filtres de régions pour la France
  4. Le duty cycle : pourquoi le passer à 10 %
  5. Questions fréquentes

1. Qu'est-ce que MeshCore ?

MeshCore est un protocole de communication maillée qui repose intégralement sur la radio LoRa (Long Range), une technologie de transmission à faible consommation capable de couvrir plusieurs kilomètres en terrain dégagé. Contrairement à Meshtastic, son concurrent le plus connu, MeshCore adopte une philosophie architecturale claire et volontairement hiérarchisée : les utilisateurs ne routent pas, les répéteurs routent.

Cette séparation des responsabilités simplifie considérablement la gestion du réseau et réduit les collisions radio, un problème chronique dans les réseaux maillés où chaque terminal tente de relayer les messages de ses voisins. En concentrant le routage sur des nœuds dédiés, MeshCore offre une bien meilleure scalabilité dès que le réseau dépasse quelques dizaines de participants.

Le réseau fonctionne sur la bande ISM 868 MHz en Europe, une bande libre partagée avec de nombreux autres systèmes — alarmes, capteurs IoT, LoRaWAN industriel. Cette réalité impose des règles de bonne conduite, au premier rang desquelles le respect du duty cycle, que nous détaillons en profondeur dans ce guide.

Différence clé avec Meshtastic : Dans Meshtastic, quasiment tous les nœuds participent au routage, ce qui crée des tempêtes de retransmissions sur les grands réseaux. MeshCore réserve strictement le routage aux Repeaters dédiés, ce qui améliore la fiabilité et la portée des messages.

2. Les trois rôles natifs du réseau

MeshCore distingue trois rôles fondamentaux, chacun avec une fonction bien précise dans l'architecture du réseau. Comprendre ces rôles est la première étape indispensable avant de mettre du matériel en service. Se tromper de rôle, c'est se retrouver avec un répéteur qui ne route pas, ou un terminal qui consomme de la bande passante pour retransmettre des messages qui ne lui sont pas destinés.

Rôle Fonction principale Routage Matériel typique
Companion Node Terminal utilisateur personnel Non T-Deck, Heltec V3, T-Echo
Repeater Répéteur fixe du réseau Oui (seul rôle) Toit, pylône, relais solaire
Room Server Messagerie persistante / BBS Non Raspberry Pi, ESP32 fixe

Le Companion Node — votre terminal personnel

Le Companion Node est le point d'entrée dans le réseau MeshCore. C'est l'appareil que vous tenez dans la main, qui se connecte en Bluetooth à l'application mobile pour vous permettre d'envoyer et de recevoir des messages. Il s'agit en pratique d'un module LoRa embarqué sur un boîtier portable : le LilyGO T-Deck, le T-Echo ou le Heltec V3 sont les modèles les plus couramment utilisés.

Le Companion Node est conçu pour fonctionner sur batterie et s'adapter à un usage nomade. Il peut communiquer directement avec d'autres Companion Nodes à portée radio, ou bien atteindre des correspondants plus éloignés en passant par les Repeaters du réseau. Ce qu'il ne fait jamais, en revanche, c'est retransmettre les paquets des autres : cette responsabilité appartient exclusivement aux répéteurs.

Matériel compatible Companion Node : LilyGO T-Deck, LilyGO T-Echo, Heltec WiFi LoRa 32 V3, RAK WisBlock. Pour un usage débutant, le T-Deck avec son écran et son clavier intégrés offre la meilleure prise en main sans smartphone requis en permanence.

Le Repeater — l'épine dorsale du réseau

Le Repeater est le maillon central de toute infrastructure MeshCore sérieuse. C'est lui, et lui seul, qui découvre ses voisins, maintient les tables de routage et retransmet les paquets vers leur destination. Sans répéteurs, le réseau n'est qu'une collection de terminaux isolés incapables de communiquer au-delà de leur portée directe.

Un bon emplacement est la condition numéro un d'un répéteur efficace. On cherchera systématiquement la hauteur : un toit d'immeuble, un pylône, une crête de colline ou un sommet de montagne. Chaque mètre gagné en altitude peut se traduire par plusieurs kilomètres de portée supplémentaire. Le répéteur doit être alimenté en continu — secteur ou panneau solaire avec batterie — car il doit rester disponible 24h/24 pour maintenir la cohérence du réseau.

Dans un réseau territorial bien dimensionné, on retrouve généralement :

  • 80 à 90 % de Companion Nodes (terminaux utilisateurs)
  • 5 à 15 % de Repeaters (relais fixes)
  • 1 à 2 Room Servers (messagerie communautaire)
  • 1 Gateway MQTT (intégrations externes)

Ce ratio suffit à couvrir de larges zones géographiques, pour peu que les emplacements aient été choisis avec soin.

Le Room Server — la mémoire persistante du groupe

Le Room Server introduit une dimension communautaire dans MeshCore. Fonctionnant comme une mini-messagerie distribuée, il permet de créer des salons publics ou privés accessibles à tous les membres d'un groupe local. Sa particularité réside dans sa capacité à stocker les messages : si vous étiez hors de portée au moment où un message a été envoyé, le Room Server le conserve et vous le délivre dès votre reconnexion au réseau.

Ce mécanisme est particulièrement précieux pour les clubs radio, les associations de quartier ou les cellules de communication de crise. Contrairement au Repeater, le Room Server ne route pas les paquets réseau — il intervient au niveau logique, en gérant la persistance et la distribution des messages de salon.

La passerelle MQTT — intégration avec l'écosystème domotique

La passerelle MQTT n'est pas un rôle officiel de MeshCore, mais elle s'est imposée dans les déploiements avancés comme le pont entre le réseau radio et les outils d'automatisation. Elle exporte les messages MeshCore vers un broker MQTT, ouvrant la porte à des intégrations avec Home Assistant, Node-RED, Grafana ou InfluxDB. Un déploiement typique la place en bout de chaîne, après le dernier Repeater de backbone.

Architecture recommandée pour un déploiement sérieux

Voici la topologie que privilégient les communautés MeshCore actives en Europe. Elle maximise la couverture tout en minimisant les collisions radio :

Companion Nodes      <-- terminaux utilisateurs
        |
        v
Repeater Toit        <-- couverture urbaine
        |
        v
Repeater Colline     <-- couverture péri-urbaine
        |
        v
Repeater Backbone    <-- longue distance (sommet, pylône)
        |
        +-- Room Server     <-- messagerie communautaire
        +-- MQTT Gateway    <-- Home Assistant / Grafana

3. Les filtres de régions pour la France

À mesure qu'un réseau MeshCore prend de l'ampleur, un problème fondamental émerge inévitablement : chaque message local peut se propager à des centaines de kilomètres, consommant de l'airtime radio dans des zones où personne n'est concerné par son contenu. Les filtres de régions sont la réponse à ce problème.

Pourquoi les régions sont absolument indispensables

Imaginez qu'un radioamateur parisien envoie simplement "Salut" à son club local. Sans filtre de région, ce message peut être répété de répéteur en répéteur jusqu'en Italie ou en Allemagne, passant par Lyon, Marseille, Milan et Munich. Chaque répéteur sur la route consomme de l'airtime — un temps d'antenne précieux et limité par la réglementation — pour un message qui ne concerne personne hors de l'Île-de-France.

Le résultat sur un grand réseau sans régions est prévisible : saturation de la bande, collisions radio, batteries épuisées prématurément et délais de transmission qui s'allongent à mesure que le réseau grossit.

⚠ Attention : Sur un réseau de 50 répéteurs ou plus, l'absence de filtres de régions génère des tempêtes de retransmissions qui dégradent sévèrement les performances de l'ensemble du réseau européen.

La hiérarchie en peau d'oignon recommandée

La communauté MeshCore France a adopté une logique en trois niveaux, que vous pouvez visualiser comme des cercles concentriques autour de votre position :

  1. Département — pour les échanges hyperlocaux. Exemple : fr-75 pour Paris, fr-69 pour le Rhône, fr-63 pour le Puy-de-Dôme.
  2. Région administrative — pour les échanges régionaux. Exemple : fr-idf pour l'Île-de-France, fr-ara pour Auvergne-Rhône-Alpes.
  3. Pays — pour les annonces nationales. Toujours fr, le code ISO 3166-1 Alpha-2.

Un répéteur configuré avec ces trois codes accepte et relaie les messages à n'importe lequel de ces trois niveaux géographiques, tout en ignorant les messages qui ne le concernent pas.

Codes de régions utilisés en France

Région administrative Code MeshCore
Auvergne-Rhône-Alpes fr-ara
Bourgogne-Franche-Comté fr-bfc
Bretagne fr-bre
Centre-Val de Loire fr-cvl
Corse fr-20r
Grand Est fr-ges
Hauts-de-France fr-hdf
Île-de-France fr-idf
Normandie fr-nor
Nouvelle-Aquitaine fr-naq
Occitanie fr-occ
Pays de la Loire fr-pdl
Provence-Alpes-Côte d'Azur fr-pac

Pour les codes départementaux, la convention adopte le numéro INSEE : fr-01, fr-33, fr-63, fr-75… jusqu'à fr-976 pour Mayotte.

Comment configurer les régions sur vos équipements

Sur un Companion Node (application mobile) :

  1. Ouvrez l'application MeshCore sur votre smartphone.
  2. Naviguez vers Settings → Experimental Settings → Default Region Scope.
  3. Saisissez votre code pays : fr. Cela limite les adverts, le flood, la découverte et la recherche de routes à la France.

Sur un Repeater en Île-de-France (via CLI) :

Settings > Region Management

Ajouter les trois codes :
  fr
  fr-idf
  fr-75

Activer "Allow Flood" sur chacun.

Sur un Repeater en Auvergne, Puy-de-Dôme (via CLI) :

fr
fr-ara
fr-63
Le cas du wildcard "*" : Par défaut, un nœud crée une règle * qui signifie accepter les paquets non tagués (sans région définie), et non pas "tout accepter". Sur un réseau mature, passez * en mode DENY FLOOD pour que seuls les paquets portant un tag de région autorisé soient relayés.

4. Le duty cycle : pourquoi le passer à 10 %

Le duty cycle est l'un des paramètres les plus critiques d'un répéteur MeshCore, et pourtant l'un des plus souvent négligés par les débutants. Il désigne le pourcentage du temps pendant lequel un nœud est autorisé à transmettre, calculé sur une fenêtre glissante d'une heure. Un duty cycle de 10 % signifie concrètement 6 minutes de transmission maximum par heure.

La bande 868 MHz : un espace partagé et réglementé

LoRa en Europe opère sur la bande ISM 863–870 MHz, un spectre libre que vous partagez sans exclusivité avec des dizaines d'autres technologies : alarmes sans fil, capteurs de température industriels, compteurs intelligents, réseaux LoRaWAN d'opérateurs commerciaux, Meshtastic, et d'autres réseaux MeshCore dans votre zone.

Cette cohabitation impose une règle d'or : chaque émetteur doit laisser de la place aux autres. Sur la sous-bande 869.525 MHz — la fréquence privilégiée par la communauté MeshCore Europe car elle autorise une puissance d'émission plus élevée — la réglementation ETSI autorise un duty cycle de 10 %. C'est la raison pour laquelle la quasi-totalité des guides MeshCore européens recommandent unanimement set dutycycle 10.

⚠ La valeur par défaut est trop élevée : MeshCore sort d'usine avec un duty cycle de 50 %, soit 30 minutes de transmission par heure. Sur un backbone avec plusieurs répéteurs en cascade, cette valeur peut générer une occupation radio massive et dégrader sévèrement les performances de tout le réseau dans votre secteur.

Comprendre les 10 % en chiffres

Le calcul est simple : 3 600 secondes × 10 % = 360 secondes, soit exactement 6 minutes de transmission autorisées par heure.

Duty cycle Temps TX / heure Usage
50 % 30 min Valeur par défaut — trop agressive ⚠
10 % 6 min Recommandé backbone MeshCore Europe ✓
1 % 36 s Très restrictif — capteurs IoT

Cela peut sembler peu, mais c'est largement suffisant pour un répéteur qui gère un trafic de messages texte. LoRa n'est pas fait pour la voix ou la vidéo — les messages échangés sur MeshCore sont généralement courts et peu fréquents.

L'enjeu dépasse la simple conformité réglementaire. Un répéteur qui émet trop souvent augmente la probabilité de collision avec les transmissions de ses voisins, dégrade le SNR (rapport signal/bruit) ressenti par tous les nœuds à portée, et peut déclencher des boucles de retransmission qui s'auto-alimentent jusqu'à saturer complètement le canal.

Comment modifier le paramètre dans MeshCore

Firmware 1.15 et versions ultérieures (méthode actuelle) :

Vérifier la valeur actuelle :
  get dutycycle

Appliquer la valeur recommandée :
  set dutycycle 10

Vérifier la prise en compte :
  get dutycycle
  -> Résultat attendu : 10

Firmwares antérieurs à la version 1.15 (paramètre AF) :

Les anciennes versions utilisaient un paramètre appelé Airtime Factor (AF). La correspondance avec les duty cycles modernes est la suivante :

Commande (ancienne) AF Duty cycle équivalent
set af 1 1 ≈ 50 % ⚠
set af 2 2 ≈ 33 %
set af 3 3 ≈ 25 %
set af 9 9 ≈ 10 % ✓

Aujourd'hui, set dutycycle 10 remplace complètement set af 9. Si vous mettez votre firmware à jour, vérifiez que la valeur a bien été migrée.

Configuration complète recommandée pour un répéteur en France

Ces cinq paramètres, combinés aux régions adaptées à votre secteur, constituent la base d'un répéteur MeshCore bien réglé pour le contexte européen et français :

set dutycycle 10            <-- 6 min TX/heure max (conformité ETSI)
set loop.detect minimal     <-- détection et cassage des boucles
set flood.max 21            <-- limite le nombre de sauts de flood
set flood.advert.interval 49    <-- espacement des annonces de présence
set advert.interval 0       <-- pas d'annonce périodique non sollicitée

Régions (Region Management) :
  fr                         <-- niveau national
  fr-idf                     <-- niveau régional (adapter à votre région)
  fr-75                      <-- niveau départemental (adapter à votre dép.)
Et les Companion Nodes ? Les terminaux utilisateurs émettent naturellement peu et rarement. Le duty cycle est surtout critique sur les Repeaters et les backbones, qui floodent, retransmettent et relaient en permanence. Sur un Companion Node, le réglage par défaut est acceptable, même si appliquer 10 % reste une bonne pratique.

5. Questions fréquentes

MeshCore peut-il fonctionner sans répéteur ?

Oui, mais de manière très limitée. En l'absence de répéteurs, les Companion Nodes ne peuvent communiquer qu'entre eux en portée directe — quelques centaines de mètres en milieu urbain, quelques kilomètres en terrain dégagé. Dès qu'on souhaite couvrir une ville, une vallée ou une région entière, les répéteurs deviennent indispensables.

Quelle est la différence entre MeshCore et Meshtastic ?

La différence principale est le routage. Dans Meshtastic, tous les nœuds participent au routage par défaut, ce qui crée des problèmes de scalabilité sur les grands réseaux. MeshCore réserve strictement le routage aux Repeaters dédiés, améliorant la fiabilité et réduisant les collisions, au prix d'une infrastructure un peu plus planifiée.

Ai-je besoin d'une licence radioamateur pour utiliser MeshCore ?

Non. MeshCore fonctionne sur la bande ISM 868 MHz, une bande libre qui ne nécessite pas de licence en Europe. Vous devez en revanche respecter les limitations réglementaires (puissance d'émission maximale, duty cycle) définies par l'ARCEP et alignées sur les normes ETSI.

Peut-on faire tourner un Repeater sur batterie solaire ?

C'est même la configuration idéale pour un relais en zone isolée ou en altitude. Un panneau de 10 à 20 W combiné à une batterie LiPo de 3 000 à 5 000 mAh suffit à alimenter un module LoRa en mode répéteur sur de nombreuses régions de France, y compris en hiver si l'ensoleillement est suffisant.

Le Room Server doit-il être sur un nœud séparé ?

Non obligatoirement. Il est tout à fait possible de faire tourner un Room Server sur le même matériel qu'un Repeater. Cependant, pour des raisons de fiabilité et de maintenance, les déploiements sérieux privilégient généralement un nœud dédié, surtout si plusieurs salons sont actifs simultanément.

Que se passe-t-il si je laisse le wildcard "*" actif sur mon répéteur ?

Le wildcard * accepte les paquets sans tag de région. Utile en phase de démarrage, il doit passer en mode DENY FLOOD sur un réseau mature pour que seuls les paquets régionnés soient relayés, réduisant significativement le bruit de fond radio.


Mots-clés : MeshCore, LoRa, réseau mesh, radioamateur, Repeater, Companion Node, Room Server, duty cycle, 868 MHz, régions France, fr-idf, fr-ara, Meshtastic, T-Deck, Heltec V3, ETSI, bande ISM

X

WELCOME TO OUR WONDERFUL WORLD

Did you know that we ship to over 24 different countries

Login with Facebook
X

WELCOME TO OUR WONDERFUL WORLD

Did you know that we ship to over 24 different countries

Register with Facebook
X

WELCOME TO OUR WONDERFUL WORLD

Did you know that we ship to over 24 different countries

Please enter the email address you used to register. You will receive a temporary link to reset your password.