Aller au contenu
Chappe 05
869,618 MHz 62,5 kHz · SF8 · CR8 ≤ 27 dBm PAR · duty cycle 10 % Relais dans le réseau 2 Sur point haut 1 Site validé 1 Sites à reconnaître 2 Liaison confirmée 9,9 km Région fr-05 Texte seulement · aucun service de secours

Chappe 05 · Politique des relais

Politique des relais

Ce qu'il faut savoir avant d'installer un relais : paramètres radio, régions, choix du site, matériel, sécurité, temps d'antenne et cadre juridique. Cent trente-deux recommandations, classées par niveau. Quatre classes de relais, de la liaison nationale au confort local.

Cartouche

Référence POL-CHP05-REL-2026-001
Version 1.8
Statut Version de travail consolidée, ouverte aux remarques
Auteur Und3r_1337, opérateur et administrateur Chappe 05
Création 10 août 2026
Dernière révision 15 septembre 2026
Classification Public
Périmètre Relais et répéteurs du réseau Chappe 05, cadre juridique de l'exploitation

Suivi des révisions

Version Date Objet
1.8 2026-09-15 Classe 0, échelle d'annonce alignée sur le niveau desservi, une classe par niveau
1.7 2026-09-15 Correction de la région par défaut : elle ne règle que la portée des annonces, et se choisit selon la classe
1.6 2026-09-15 Classes de relais, mécanique du routage, nomades et chemins périmés, alignement sur le flasheur et le référentiel des commandes
1.5 2026-08-17 Antennes directionnelles, plafond de puissance rayonnée
1.4 2026-08-10 Cadre juridique et savoir-vivre
1.3 2026-08-10 Calcul du temps à l'antenne, chiffres de référence
1.2 2026-08-10 Relecture croisée, refonte de la coordination
1.1 2026-08-10 Alignement sur la convention française des régions
1.0 2026-08-10 Paramètres avancés, annexes de configuration
0.1 2026-08-10 Création

Documents liés

Référence Objet
DAT-CHP05-2026-001 Dossier d'architecture technique
PRC-CHP05-2026-001 Protocole de campagne de mesures
POL-CHP05-MSG-2026-001 Politique des canaux et des messages. Modèle des canaux, dérivation des clés hashtag, portée, rediffusion de bulletins
REF-CHP05-CMD-2026-001 Référentiel des commandes MeshCore. Relevé exhaustif de la console du rôle répéteur, bornes lues dans le code source
outil Flasheur et configurateur en ligne, chappe05.fr/flasher/. Applique les profils de classe décrits en 4.5
à venir Politique des terminaux

Avant-propos

Ce document s'adresse à quiconque héberge ou envisage d'héberger un relais sur le réseau Chappe 05.

Il n'est pas opposable. Sur un réseau ouvert, personne ne peut imposer quoi que ce soit à personne, et c'est voulu. Ce qui fonctionne, c'est un accord explicite entre opérateurs, écrit avant que le réseau grossisse.

Chacun reste libre de ses choix sur son propre matériel. Le rôle de ce document est de recommander, pas de contraindre.

Trois choses à savoir d'emblée

Aucun filtrage par identité n'existe. Ni liste noire, ni liste blanche, ni canal en lecture seule. La demande a été formulée sur le dépôt MeshCore dès avril 2025, elle n'est pas implémentée à ce jour.

Ce qui protège le réseau, c'est la discipline collective. Concrètement : ce document et celui consacré aux canaux, le format convenu des messages, l'identité reconnaissable des émetteurs, et le rapport cyclique qui limite naturellement les abus.

Un relais mal réglé nuit plus qu'un relais absent. Il consomme le temps d'antenne de tout le monde, et un seul répéteur au firmware modifié suffit à provoquer une tempête de paquets répétés jusqu'à 64 sauts.

Niveaux de recommandation

Niveau Sens
Impératif Contrainte réglementaire, ou risque de nuire au réseau
Recommandé Bonne pratique établie, écart à justifier
Conseillé Confort d'exploitation, à la discrétion de l'opérateur

1. Définitions

Les termes qui reviennent dans ce document, et qu'il vaut mieux ne pas confondre.

1.1 Rôles MeshCore

Un appareil MeshCore ne porte qu'un rôle à la fois. C'est une contrainte structurante, souvent découverte trop tard.

Terme Définition
Repeater Seul rôle qui retransmet les paquets. C'est l'infrastructure du réseau.
Room server Salon persistant, conserve les messages pour les distribuer plus tard. Ne retransmet pas.
Companion Terminal ou passerelle série. Ne retransmet pas.

1.2 Termes radio

PAR, puissance apparente rayonnée. Puissance réellement émise dans l'espace, antenne comprise :

PAR = puissance conduite + gain d'antenne − pertes de câble

Le plafond réglementaire porte sur cette valeur, pas sur la sortie du module.

Rapport cyclique, ou duty cycle. Proportion du temps pendant laquelle un émetteur peut occuper une sous-bande, sur une fenêtre glissante d'une heure.

La sous-bande 869,4 à 869,65 MHz est la sous-bande P au sens de la norme ETSI EN 300 220-2, correspondant à l'annexe g3 de la recommandation ERC 70-03 de la CEPT. Elle autorise 500 mW PAR et 10 % de rapport cyclique, soit six minutes d'émission par heure, cumulées.

C'est la sous-bande la plus généreuse de la bande 863-870 MHz : les autres plafonnent à 25 mW et 0,1 à 1 %. C'est ce qui la rend intéressante pour un réseau maillé, et ce qui explique le choix de 869,618 MHz.

En France, la transposition relève de l'ANFR et de l'ARCEP. La référence à citer est ERC/REC 70-03, annexe g3.

Zone de Fresnel. Volume ellipsoïdal autour de la ligne de vue directe entre deux antennes. Une partie significative de l'énergie y transite : une ligne de vue dégagée ne suffit pas, il faut aussi que ce volume soit libre.

Le rayon de la première zone de Fresnel à mi-parcours, à 869 MHz :

r = 8,657 × √(d / f)     d en km, f en GHz, r en mètres
r ≈ 9,29 × √(d)          à 869 MHz
Distance Rayon à mi-parcours
5 km ~21 m
10 km ~29 m
15 km ~36 m
20 km ~42 m

Un dégagement de 60 % de ce rayon est généralement considéré comme suffisant. S'y ajoute la courbure terrestre, sensible au-delà de 10 km.

1.3 Termes de routage

Terme Définition
Advert Annonce périodique d'un nœud, porte son identité et éventuellement sa position
path_len Octet de chemin d'un paquet. Ses six bits de poids faible donnent le nombre de sauts, 0 signifiant liaison directe. Ses deux bits de poids fort donnent la taille des empreintes de chemin, moins un : un nœud en empreintes de 2 octets annonce donc 64 pour une liaison directe. La valeur 255 désigne une route directe, sans information de chemin
Hash de chemin Empreinte que chaque répéteur ajoute au paquet qu'il relaie, pour tracer le trajet parcouru. Taille de 1 à 3 octets, voir 2.4
Inondation, ou flood Mode de propagation par défaut. Chaque répéteur qui entend un paquet le retransmet exactement une fois, sans savoir où se trouve le destinataire. Le paquet se propage donc dans toutes les directions à la fois, en s'arrêtant quand plus aucun répéteur ne l'entend pour la première fois
Routage direct Une fois un chemin connu, le paquet le suit de saut en saut. Chaque répéteur vérifie s'il est le prochain sur le chemin, se retire de la liste et transmet. Bien moins coûteux que l'inondation
Région, ou scope Étiquette de portée. Un répéteur ne relaie que ce dont il porte l'étiquette

Pourquoi l'inondation coûte cher. C'est le mécanisme qui permet de joindre quelqu'un dont on ignore la position, et c'est ce qui rend le réseau utilisable sans configuration. Mais chaque répéteur qui entend le paquet le réémet : le coût d'un message croît avec le nombre de relais qui se chevauchent, pas avec la distance parcourue.

Les messages de canal sont toujours diffusés par inondation. Il n'existe pas de routage direct pour eux, puisqu'il n'y a pas de destinataire unique. C'est ce qui rend la discipline de portée déterminante.


1.4 Les classes de relais

Tous les relais ne jouent pas le même rôle. Un point haut qui porte une liaison de trente kilomètres et un répéteur de fond de vallée qui dessert trois hameaux n'ont ni la même charge, ni les mêmes voisins, ni le même coût d'erreur. Les régler de la même manière conduit soit à brider le premier, soit à laisser le second réémettre tout ce qu'il entend.

Le réseau distingue donc quatre classes. C'est une classification de fonction, pas de matériel : un même boîtier peut changer de classe s'il change de site.

Classe Rôle Ce qui la caractérise
0 National Relie des régions entre elles. Aucun n'est posé à ce jour : la classe est définie pour que la convention tienne à l'échelle du pays
1 Backbone, longues liaisons Relie des bassins entre eux. Peu de voisins, mais chaque liaison est structurante. Sa perte coupe une partie du réseau du reste
2 Bassin, desserte Couvre une vallée, une commune, un versant. Plusieurs voisins de même classe, trafic local dominant
3 Confort local Comble un trou de couverture : un quartier, un creux, une façade de vallée. Sa perte se remarque à peine au-delà de sa zone

Comment situer un relais. Quatre questions, dans cet ordre.

Question Si oui
Porte-t-il une liaison entre deux régions ? Classe 0
Sa disparition couperait-elle un bassin entier du reste du réseau ? Classe 1
Est-il le point de rassemblement du trafic d'une zone habitée ? Classe 2
Sert-il surtout à rattraper une zone d'ombre déjà couverte par ailleurs ? Classe 3

Un relais de classe 1 se mérite. Il suppose un site dégagé, une alimentation fiable, une supervision réelle et un opérateur joignable. Se déclarer classe 1 sans ces quatre conditions crée une dépendance que rien ne soutient. Dans le doute, déclarer la classe inférieure : un relais qui rend plus que promis ne gêne personne.

Ce que la classe change en pratique : l'échelle à laquelle le relais s'annonce, les plafonds de sauts, la politique de filtrage par type de paquet, la priorité relative des types et la part de temps d'antenne qui leur est allouée. La grille complète est en 4.5, et le flasheur l'applique en un clic.


2. Paramètres radio

Communs à l'ensemble du réseau français. Un seul chiffre différent et l'appareil n'entendra personne.

Paramètre Valeur
Preset EU/UK Narrow
Fréquence 869,618 MHz
Bande passante 62,5 kHz
Facteur d'étalement SF8
Taux de codage CR8
Puissance ≤ 27 dBm PAR

2.1 Pourquoi cette fréquence

La bande étroite permet de se placer sur 869,618 MHz, plus haut dans la sous-bande et nettement moins encombrée que la fondamentale 869,525 MHz où émettent les équipements industriels.

Un preset large ramènerait sur cette fondamentale par effet de largeur de canal.

2.2 Recommandations sur les paramètres radio

Réf Recommandation Niveau
R-RF-01 Appliquer le preset nommé EU/UK Narrow plutôt que de saisir les quatre valeurs à la main Recommandé
R-RF-02 Vérifier la fréquence après application du preset : certains presets régionaux se calent sur une autre valeur de la sous-bande Impératif
R-RF-03 Ne jamais dépasser 27 dBm de PAR, antenne et pertes comprises Impératif
R-RF-04 Régler le rapport cyclique à 10 % : set dutycycle 10. Le défaut d'usine est 50 %, il ne convient pas Impératif
R-RF-05 Écarter les modules à amplificateur de puissance, sans usage légal en France et source de déséquilibre entre émission et réception Recommandé
R-RF-06 Vérifier la puissance rayonnée avec un calculateur de pertes avant mise en service Recommandé
R-RF-07 Régler path.hash.mode 1 sur tout répéteur en firmware 1.14 ou supérieur : cela améliore la lisibilité du réseau sans inconvénient Recommandé
R-RF-08 Ne passer les companions en 2 octets qu'une fois la majorité des répéteurs de la zone en 1.14 ou supérieur : les anciens abandonnent ces paquets silencieusement Impératif
R-RF-09 Vérifier la version de firmware des répéteurs dont on dépend avant tout changement de taille de hash Recommandé

2.3 Sur les amplificateurs

Un module 30 dBm devra être bridé en permanence, avec le risque d'un mauvais réglage.

Et il crée un déséquilibre : les correspondants vous reçoivent, croient être connectés, mais leurs paquets ne remontent pas. Un relais qui émet fort sans entendre mieux dégrade l'expérience de ceux qui l'entourent.


2.4 Deux réglages qui prêtent à confusion

Ces deux paramètres apparaissent dans les configurations partagées entre opérateurs, souvent sans explication.

path.hash.mode

C'est un numéro de mode, pas une taille en octets. C'est la source de confusion la plus fréquente.

Valeur Taille du hash dans les adverts
0 1 octet, valeur par défaut
1 2 octets
2 3 octets

À quoi sert le hash de chemin. Quand un paquet traverse le réseau, chaque répéteur y inscrit une empreinte courte qui l'identifie. C'est ce qui construit le chemin, et ce qui permet ensuite le routage direct.

Pourquoi la taille compte. Sur un octet, il n'existe que 256 identifiants possibles. Au-delà de quelques dizaines de répéteurs dans une zone, deux d'entre eux partagent le même, et les outils d'analyse ne peuvent plus les distinguer. Sur deux octets, on passe à 65 536.

Ce que ce réglage contrôle, et surtout ce qu'il ne contrôle pas.

Il ne concerne que les adverts émis par le répéteur lui-même. Un répéteur en firmware 1.14 ou supérieur relaie les trois tailles, quelle que soit sa propre valeur.

La taille des messages est décidée par l'émetteur d'origine, c'est-à-dire l'application companion. Elle se règle dans l'application, sous Experimental Settings.

Le piège, et il est sérieux. Les répéteurs en firmware antérieur à 1.14 abandonnent silencieusement les paquets en 2 et 3 octets. Pas d'erreur, pas d'accusé négatif, le message disparaît.

Il ne faut donc passer ses companions en 2 octets qu'une fois la grande majorité des répéteurs de la zone à jour. Un seul répéteur ancien sur un trajet suffit à couper la liaison.

Position Chappe 05 : path.hash.mode 1 sur les répéteurs, ce qui n'a aucun inconvénient et améliore la lisibilité du réseau pour les outils d'analyse. Sur les companions, rester en 1 octet tant que l'état du parc régional n'est pas connu.

multi.acks

Active ou désactive les accusés de réception multiples.

set multi.acks {0|1}

Sans cette fonction, un accusé de réception unique remonte vers l'émetteur. Avec elle, plusieurs répéteurs peuvent en émettre, ce qui améliore la probabilité que l'émetteur sache que son message est parti.

Ce que cela coûte : des paquets supplémentaires, donc du temps d'antenne. Sur un réseau chargé, c'est une dépense à peser.

Position Chappe 05 : multi.acks 1, conformément à l'usage des opérateurs voisins. À réévaluer si le réseau se densifie, la fiabilité perçue ne justifiant plus alors le surcoût.


3. Régions

3.1 Le mécanisme

Une région est une étiquette de portée géographique, pas une notion administrative française. Le nom peut prêter à confusion.

Deux acteurs, deux rôles distincts.

Acteur Ce qu'il fait
Le répéteur déclare la liste des régions où il se trouve
L'émetteur tague son canal avec la région jusqu'où le message doit aller

Un répéteur relaie un message si et seulement si l'étiquette du message figure dans sa liste.

Ce sont les compagnons qui portent les canaux, pas les répéteurs. Un répéteur n'a aucun canal : il transporte des paquets sans les lire.

3.2 La région *

Créée par défaut sur tout répéteur, elle signifie : relaie tous les messages qui n'ont aucune région associée.

C'est elle qui fait fonctionner le réseau pendant la transition. Sans elle, quiconque n'a pas encore configuré ses canaux serait coupé sans comprendre pourquoi.

Conséquence importante et contre-intuitive : le trafic non tagué va plus loin que le trafic tagué. Il n'est arrêté par aucune frontière de région.

3.3 Les trois réglages

Commande Effet
region put <nom> ce que le répéteur relaie, une ligne par étiquette
region default <nom> portée des paquets qu'il émet de sa propre initiative. Sur un répéteur, cela se réduit à ses annonces : une réponse reprend la portée de la demande. Voir 3.7
region home <nom> information de localisation, sans effet fonctionnel

L'imbrication de régions existe dans le firmware, mais elle est purement cosmétique à ce jour. Déclarer fr-05 comme enfant de fr-pac ne produit aucun héritage : chaque étiquette doit être portée explicitement.

3.4 La convention française

Principe de la peau d'oignon. Un répéteur déclare toutes les échelles géographiques où il se trouve, de la plus large à la plus fine.

Niveau Code Source
Europe eu usage international établi
Pays fr ISO 3166-1 alpha-2
Région fr-pac ISO 3166-2
Département fr-05 ISO 3166-2
Commune fr-05-061-gap code INSEE de la commune, puis toponyme abrégé

Pour un relais situé à Gap, la liste complète est donc :

eu
fr
fr-pac
fr-05
fr-05-061-gap

Sur le niveau communal. Il n'existe aucune norme ISO pour les communes françaises. Le code INSEE, lui, est bijectif : une commune, un code, sans ambiguïté. Le code postal ne l'est pas, 05100 désignant huit communes, et ne convient donc pas. La forme retenue reprend le code INSEE découpé en département et rang communal, 05 + 061 pour Gap, suivi du toponyme abrégé pour rester lisible à l'œil.

Le toponyme est abrégé selon trois règles : saint et sainte deviennent st et ste, les particules de, du, la, les, sur et leurs semblables sautent, et le reste est tronqué à la dernière césure avant trente caractères. Le code INSEE porte l'identité, le toponyme ne porte que la lisibilité.

Ce niveau est propre à Chappe 05. Aucun autre réseau français ne le pratique à ce jour. Il est proposé à la communauté, pas imposé : un répéteur qui ne le porte pas reste parfaitement interopérable, puisque les quatre niveaux supérieurs suffisent à acheminer tout ce qui circule aujourd'hui.

Les régions se définissent par la géographie, jamais par l'usage. Une région adrasec ou les-relais-des-copains n'a pas lieu d'être. Un canal, oui.

Contraintes de nommage : trente caractères maximum, minuscules, chiffres et tirets uniquement. Plus le nom est court, moins il alourdit les messages.

Sur les codes IATA : ils ont été employés historiquement pour les régions. Cet usage est abandonné. Ils subsistent dans les analyseurs de paquets accessibles par Internet, ce qui ne concerne pas la configuration des répéteurs.

3.5 Pourquoi porter tous les niveaux

Un répéteur ne filtre pas pour protéger le réseau. Il accepte les différents degrés de précision que les émetteurs emploieront.

Un répéteur qui ne porterait que fr-05 couperait tout message tagué fr, fr-pac ou eu traversant son secteur, y compris ceux d'un voisin ayant tagué correctement.

Il deviendrait un trou dans le réseau, sans que personne ne comprenne d'où vient le blocage.

Cela vaut pour le niveau communal comme pour les autres. Créer une région ne suffit pas : region put la crée en refus d'inondation, et il faut un region allowf explicite pour l'ouvrir. Une région créée et laissée fermée est exactement le trou décrit ci-dessus.

Le filtrage utile se fait côté émetteur, en taguant chaque canal à la portée juste. C'est là que se joue la préservation du temps d'antenne, pas dans la liste du répéteur.

3.6 Le cas de eu, et pourquoi il est contre-intuitif

Porter eu expose le répéteur au trafic européen tagué. C'est un coût réel.

Mais l'alternative est pire. Quelqu'un qui veut porter loin sans disposer de eu ne tague rien du tout. Son message part sous *, que tous les répéteurs relaient par défaut, et il va au-delà de l'Europe.

eu sert donc à séparer deux populations pour les traiter différemment :

Trafic Traitement possible
Non tagué limité par flood.max.unscoped, voir 3.8
Tagué eu toléré tant qu'il reste raisonnable, blocable d'une commande si nécessaire

Et c'est ce qui rend une crise gérable. Si tout le monde tague proprement, bloquer eu sur les répéteurs dégage la bande sans affecter le trafic local.

Sans cette séparation, il n'y a rien à bloquer : tout est mélangé sous *.

3.7 La région par défaut

Sur un répéteur, region default ne règle qu'une chose : jusqu'où portent ses annonces.

C'est contre-intuitif, et cela mérite d'être lu deux fois avant de configurer quoi que ce soit. Dans le firmware du répéteur, la région par défaut n'est consultée qu'à deux endroits : l'envoi d'une annonce inondée, et le choix de portée d'une réponse lorsque la portée de la demande n'a pas pu être déterminée.

Une réponse reprend la portée de la demande. C'est le premier test de la fonction qui choisit cette portée : si la demande est arrivée avec une étiquette exploitable, la réponse repart avec la même. La région par défaut du répéteur n'intervient pas.

Conséquence, et elle est libératrice. Administrer un relais de Gap depuis Paris ne dépend pas du réglage de ce relais. La demande part étiquetée fr, tous les répéteurs portent fr, elle arrive ; la réponse repart en fr et revient. Que le relais de Gap annonce sur le département ou sur la France entière n'y change rien.

Donc la région par défaut se choisit sur un seul critère : quelle zone doit connaître ce relais. Et cette zone, c'est sa classe qui la définit. La règle tient en une phrase, et elle est transposable à n'importe quel réseau :

Un répéteur annonce à l'échelle qu'il dessert.

Classe Dessert region default
0 relie des régions, échelle nationale fr
1 relie des bassins, échelle régionale fr-pac
2 dessert un bassin, dans son département fr-05
3 comble un creux, dans sa commune fr-05-168-sigoyer

Une classe, un niveau, et l'échelle descend avec la classe. C'est ce qui rend la convention transmissible : elle s'énonce sans connaître Chappe 05, et elle se recopie sans exception à retenir.

eu ne figure pas dans cette échelle, et ce n'est pas un oubli. Il reste porté par tous les répéteurs, donc il continue de transporter le trafic que des émetteurs étiquettent ainsi. Un niveau peut servir au relayage sans servir de portée d'annonce. Le trafic international, lui, circule surtout non étiqueté, sous *, que tout le monde relaie par défaut. Voir 3.6.

Ce que le niveau communal produit réellement. Le scope d'une commune n'est porté que par les répéteurs de cette commune. Deux situations, très différentes :

Situation Effet d'une annonce au niveau communal
Plusieurs relais dans la commune, cas urbain ils se rediffusent entre eux : le niveau se comporte comme un palier municipal
Relais seul dans sa commune, cas rural l'annonce ne franchit pas le premier saut

Dans le second cas, tout ce qui est à portée radio directe connaît quand même le relais : une annonce est traitée avant la décision de relayage. Ce qui disparaît, c'est la découverte à deux sauts.

C'est un choix assumé pour la classe 3, dont la vocation est précisément locale. Ce n'est pas un réglage à recopier sur une classe supérieure.

Pour un companion, la logique est différente : il se déplace, et ses tentatives de contact doivent aboutir de n'importe où. fr reste la recommandation.

Sans région par défaut du tout, les paquets émis partent sous * et ne s'arrêtent nulle part, y compris hors de France. Un réglage explicite est donc toujours préférable à l'absence de réglage.

Cela ne dispense pas de couper les annonces inondées. Un advert coûte autant qu'un message et se répète indéfiniment :

set flood.advert.interval 0

Un répéteur avec flood.advert.interval 0 n'inonde plus d'annonces du tout, quelle que soit sa région par défaut. À n'appliquer qu'une fois le relais intégré au maillage. Voir 6.5.

3.8 Limiter le trafic non tagué

set flood.max.unscoped 5

Disponible en firmware 1.16. Rejette les messages sans région ayant déjà effectué plus de cinq sauts.

C'est le levier le plus efficace contre le bruit. Il coupe le trafic lointain non configuré, tout en laissant passer celui des nouveaux arrivants du voisinage, qui n'ont pas encore paramétré leurs régions.

Valeur Usage
5 zone ordinaire
2 zone frontalière, trafic étranger important
1 à éviter, coupe les voisins immédiats

Ne pas confondre avec le blocage de *, qui coupe intégralement le trafic non tagué. Celui-ci ne se justifie que sur un répéteur frontalier faisant face à un volume étranger massif.

3.9 Le cas des zones frontalières

Un répéteur peut porter le code d'un département ou d'un pays voisin, s'il participe activement au routage de cette zone.

Exemple : un répéteur dominant depuis le nord d'un département et couvrant une partie du département voisin, permettant d'y interconnecter des zones autrement isolées.

Ce n'est pas contradictoire avec le principe de la peau d'oignon : c'est une exception justifiée par une fonction réelle, pas par une commodité.

Pour les frontières internationales, le mécanisme actuel est limité. Il n'est pas possible de taguer un canal avec deux régions simultanément. Deux voies :

  • chaque côté ajoute le code de la zone voisine dans la liste de ses répéteurs
  • ou création d'une région dédiée à la zone frontalière, employée des deux côtés

Des propositions techniques existent pour permettre deux régions dans un même paquet. Elles ne sont pas implémentées.

3.10 Position Chappe 05

Alignement sur la convention française. Les répéteurs du réseau portent eu, fr, fr-pac, fr-05, avec fr en région par défaut.

Ce que cela suppose d'accepter : le trafic national et européen tagué traverse le bassin et consomme du temps d'antenne local.

Ce que cela évite : devenir un trou dans le réseau, couper des messages correctement tagués, et s'isoler des échanges nationaux où se discutent précisément ces sujets.

Ce sur quoi porte réellement la discipline : le tag des canaux locaux à la portée juste, la coupure des adverts inondés, et la limitation du non tagué lointain.

Un seuil de réexamen

Cette position est révisable, et il vaut mieux définir à l'avance ce qui la remettrait en cause.

Signaux justifiant de retirer eu, puis fr :

  • trafic national ou européen tagué représentant une part notable du temps d'émission des relais du bassin
  • messages locaux retardés ou perdus par saturation
  • décision concertée à l'échelle régionale ou nationale

Et dans ce cas, l'annoncer. Un répéteur qui cesse de porter une étiquette devient un trou pour ceux qui l'employaient. Le faire en silence est ce qu'il faut éviter.

3.11 Statut de cette convention

Elle n'a aucun caractère officiel. Elle est portée par des communautés actives, notamment Gaulix, dont la page de référence date du 19 juillet 2026 et se présente elle-même comme évolutive.

Une carte de recommandation de nommage produite par le créateur de MeshCore existe également, fondée sur les découpages OpenStreetMap. Les deux approches ne coïncident pas entièrement, et les outils d'analyse suivent encore d'autres logiques.

Ce qui relève du mécanisme est vérifiable et non discutable : absence d'héritage entre régions, rôle de *, effet de default.

Ce qui relève du choix est discutable : porter eu, la valeur de flood.max.unscoped, la région par défaut.

Ce qui compte le plus, c'est ce que font les voisins immédiats. Une convention nationale que personne n'applique dans le secteur ne sert à rien ; un usage partagé par trois opérateurs voisins fonctionne.

3.12 Note de version

Firmware Comportement
< 1.14 pas de régions
< 1.15.0 region allowf <nom> obligatoire après chaque region put
≥ 1.15.0 region put active l'inondation automatiquement, région par défaut disponible
≥ 1.16.0 flood.max.unscoped disponible

Vérifier avec ver avant de configurer.

3.13 Recommandations sur les régions

Réf Recommandation Niveau
R-REG-01 Déclarer tous les niveaux qui couvrent le site, de eu au niveau communal, sur tout répéteur Recommandé
R-REG-01 bis Autoriser explicitement l'inondation sur chaque niveau créé : region put crée en refus Impératif
R-REG-02 Régler la région par défaut d'un répéteur sur l'échelle qu'il dessert : fr en classe 0, fr-pac en classe 1, fr-05 en classe 2, la commune en classe 3. fr sur les compagnons, qui se déplacent Recommandé
R-REG-02 bis Ne pas employer le niveau communal en région par défaut au-dessus de la classe 3 : là où le relais est seul dans sa commune, son annonce ne franchit pas le premier saut Recommandé
R-REG-03 Conserver la région * activée, sauf répéteur frontalier face à un volume étranger massif Impératif
R-REG-04 Régler flood.max.unscoped sur 5, ou 2 en zone frontalière Recommandé
R-REG-05 Employer les codes ISO, jamais les noms en toutes lettres ni les codes IATA Recommandé
R-REG-06 Définir les régions par la géographie, jamais par l'usage Impératif
R-REG-07 N'ajouter le code d'une zone voisine que si le répéteur participe réellement à son routage Recommandé
R-REG-08 Annoncer tout retrait d'étiquette : le répéteur devient un trou pour ceux qui l'employaient Impératif
R-REG-09 Vérifier la version de firmware avant configuration Recommandé
R-REG-10 Se référer à ce que font les opérateurs voisins autant qu'aux recommandations nationales Recommandé
R-REG-11 Réexaminer la position si le trafic tagué large devient une part notable du temps d'émission Conseillé
R-REG-12 Renseigner region home au niveau communal : la déclaration est gratuite et rend la carte du réseau lisible Conseillé

4. Protection du réseau

4.1 Ce qui n'existe pas

Attente courante Réalité
Liste noire de nœuds n'existe pas
Liste blanche n'existe pas
Canal en lecture seule impossible par construction
Authentification d'un émetteur sur un canal impossible

Un canal se définit par une clé symétrique. Qui possède la clé peut chiffrer autant que déchiffrer. Pour un canal hashtag, la clé se dérive du nom : quiconque tape #meteo l'obtient.

Il n'y a donc rien à verrouiller. Le mécanisme est détaillé en 5.3.

4.2 Ce qui existe

La détection de boucles, ajoutée en firmware 1.14. Elle existe parce qu'un seul répéteur au firmware modifié suffit à provoquer une tempête de paquets répétés jusqu'à 64 sauts.

set loop.detect moderate
Réglage Comportement, pour un hash de 1 octet
off aucune détection
minimal rejette si le hash apparaît 4 fois ou plus
moderate rejette si le hash apparaît 2 fois ou plus
strict rejette dès la première répétition

Les limites de nombre de sauts.

Deux réglages distincts, souvent confondus :

set flood.max <n>          nombre de sauts pour les messages inondés
set flood.max.advert <n>   nombre de sauts pour les adverts inondés

Ce qu'ils font. Un paquet inondé porte un compteur de sauts. Chaque répéteur qui le retransmet l'incrémente. Passé la limite, le paquet cesse d'être relayé.

À quoi ça sert. Sans limite, un paquet inondé se propage jusqu'à ce que plus aucun répéteur ne l'entende pour la première fois. Sur un maillage étendu, cela peut représenter des dizaines de sauts pour un message qui n'intéressait que le voisinage.

Comment choisir la valeur. Il faut compter le nombre de sauts nécessaires pour traverser la zone que le relais est censé desservir, et ajouter une marge.

Situation Ordre de grandeur
Bassin desservi par deux ou trois relais 4 à 5
Département structuré, chaîne de relais 6 à 8
Relais de bordure, en limite de zone valeur basse, pour ne pas propager hors zone

Le piège. Une valeur trop basse coupe des correspondants légitimes, sans qu'ils comprennent pourquoi : leur message part, il n'arrive pas, et rien ne le signale.

À manier avec prudence, donc. Les régions sont un instrument plus lisible pour limiter la portée : elles disent explicitement quel périmètre est visé, là où un compteur de sauts dépend de la topologie locale.

flood.max.advert est le moins risqué des deux : il limite les annonces périodiques, pas les messages. Une valeur basse y est plus facile à assumer.

Les plafonds par type de paquet. Un plafond global traite de la même façon un accusé de réception et une charge applicative de canal. Le firmware permet de distinguer :

set flood.max.type <type> <sauts>

Les seize types de charge utile sont listés dans le référentiel des commandes. Quatre concernent réellement un relais :

Type Contenu Remarque
5 GRP_TXT chat de canal le trafic conversationnel, à porter loin
6 GRP_DATA données applicatives de canal télémétrie, capteurs, positions. Volume potentiellement élevé, intérêt local
10 MULTIPART fragment d'un ensemble un message découpé, coûteux par construction
15 RAW_CUSTOM brut applicatif inconnu du réseau, à contenir

Le rejet des données de canal reçues en inondation.

set grp.data.block 1
set grp.data.allow <octet de canal>

grp.data.block 1 refuse de relayer les GRP_DATA inondés. C'est le seul levier qui coupe une source de volume sans toucher aux conversations. La liste grp.data.allow rouvre le passage pour les canaux explicitement admis, désignés par le premier octet de leur empreinte.

La qualité de service. Deux réglages, introduits pour le réseau Chappe 05.

set prio.type <type> <malus>
set airtime.budget.type <type> <pourcentage>

prio.type retarde un type quand la file d'émission est chargée : la valeur est un malus, pas une priorité. Zéro laisse le comportement d'origine, une valeur élevée fait céder le passage à ce type et le fait abandonner en premier si la file déborde.

airtime.budget.type plafonne la part du budget de temps d'antenne qu'un type peut consommer, en pourcentage du budget de rapport cyclique. Un capteur bavard s'arrête alors à sa part, sans étouffer le reste.

L'observation. Sans compteurs, un filtrage se règle à l'aveugle.

stats-filter

La commande restitue le nombre de paquets écartés, par motif : données de canal bloquées, plafond de sauts atteint, budget de temps d'antenne épuisé, boucle détectée. Un filtrage qui n'écarte rien ne sert à rien, un filtrage qui écarte tout coupe le réseau : ce sont ces compteurs qui départagent les deux.

Ce que vaut un relais sorti d'usine. Aucun de ces leviers n'est actif par défaut, et deux valeurs d'origine sont franchement dangereuses.

Réglage Défaut d'usine Ce que cela donne
Rapport cyclique 50 % cinq fois le plafond réglementaire. À corriger avant toute mise en service
Mot de passe d'administration password identique sur toutes les cartes, écrit en clair dans le firmware
loop.detect off aucune détection de boucle
flood.max 64 le maximum possible
flood.max.unscoped 64 aucun frein sur le trafic non étiqueté
flood.max.type 5 12, 6 6, 10 8, 15 6 seul filtrage par type actif d'origine
grp.data.block 1, bloqué contre-intuitif, mais c'est bien le défaut
prio.type, airtime.budget.type 0 partout qualité de service inactive
advert.interval 2 minutes très bavard pour une mise en service

Un relais neuf n'est donc pas un relais configuré. Les deux premières lignes de ce tableau sont des impératifs, pas des recommandations.

4.3 Ce qui protège réellement

La convention. Elle ne bloque personne, mais elle fait qu'un message hors convention se remarque immédiatement.

L'identité de l'émetteur. Chaque message porte le nom du nœud. Un bulletin qui ne vient pas du nœud désigné est identifiable comme non officiel.

Le format. Un en-tête normalisé est une signature de fait.

Le rapport cyclique. Un émetteur abusif sature son propre relais avant de saturer le réseau.

4.4 Ce que le filtrage ne touche pas

Trois propriétés du firmware sont systématiquement mal comprises. Elles décident pourtant de ce qu'un réglage de portée produit réellement.

Les filtres de région ne s'appliquent qu'à l'inondation. Dans le code du répéteur, les trois contrôles, plafond de sauts, appartenance à une région, détection de boucle, sont placés derrière une seule condition : le paquet est-il en cours d'inondation. Un paquet qui suit un chemin connu traverse le relais sans être examiné.

La conséquence est structurante : restreindre la portée d'un relais ne coupe pas les échanges établis, elle coupe la découverte. Un correspondant qui connaît déjà le chemin passe.

Recevoir une annonce n'est pas la propager. Un advert est traité par le nœud qui l'entend avant d'arriver à la décision de relayage. Un nœud à portée radio d'un relais apprend donc son identité même si ce relais n'inonde ses annonces que sur son département. La portée règle qui en entend parler au-delà du voisinage, pas qui l'enregistre en le voyant passer.

Une réponse emprunte la portée de la demande. Quand un relais répond à une requête inondée, il reprend l'étiquette de portée du demandeur. Un administrateur qui interroge depuis fr reçoit une réponse qui circule sur fr, sans qu'il faille élargir la portée d'annonce du relais.

Ce que cela dicte. region home se lit finement, jusqu'à la commune : le firmware ne s'en sert jamais pour router, il la stocke et l'affiche, elle déclare seulement où le relais se trouve. region default, elle, ne gouverne que la portée des annonces que le relais émet, puisqu'une réponse reprend toujours la portée de la demande. Elle se règle donc sur la classe du relais, et non sur une valeur unique pour tout le parc. Voir 3.7.

4.5 Réglages par classe

Ces valeurs découlent des classes définies en 1.4. Elles sont proposées, pas imposées, et destinées à être révisées quand les compteurs de stats-filter auront parlé sur un parc réel. Le flasheur les applique en un clic sous le nom de la classe.

Réglage Classe 1 Classe 2 Classe 3 Pourquoi
set loop.detect strict moderate moderate une boucle sur un backbone se propage à tout le réseau
set flood.max 64 32 16 portée logique attendue de la classe
set flood.max.unscoped 2 5 5 un backbone ne sert pas de porte d'entrée au trafic non étiqueté
set dutycycle 10 10 10 plafond réglementaire, jamais un réglage de confort
set grp.data.block 1 1 1 les données de canal ne s'inondent pas par défaut, grp.data.allow rouvre au cas par cas
set block.lasthop 1 1 1 la liste de blocage ne vise que le voisin direct fautif, pas tout ce qu'il a relayé
set block.alltypes 0 0 0 bloquer tous les types d'un voisin coupe aussi ses accusés de réception
set grp.relay.enable 1 1 0 la confirmation passive vaut là où la perte d'un saut est coûteuse

Plafonds de sauts, priorités et parts de temps d'antenne, par type.

Type Classe 1 Classe 2 Classe 3
5 GRP_TXT 12 sauts 12 sauts 8 sauts
6 GRP_DATA 6 sauts, malus 8, 10 % 4 sauts, malus 6, 15 % 2 sauts, malus 4, 20 %
10 MULTIPART 8 sauts 8 sauts 6 sauts
15 RAW_CUSTOM 6 sauts, malus 8, 5 % 6 sauts 4 sauts

Lecture de cette grille. Le chat de canal est le trafic que le réseau existe pour porter : il garde la portée la plus longue partout. Les données applicatives sont utiles localement et coûteuses à distance : leur portée se resserre à mesure que l'on descend en classe, mais leur part de temps d'antenne s'élargit, parce qu'un relais de confort local est justement là pour les écouler chez lui. Le brut applicatif, dont le réseau ne sait rien, cède le passage partout.

Pourquoi la classe 3 est la plus filtrante sur la portée. Ce n'est pas une défiance envers les petits relais. Un relais de confort local se trouve, par construction, dans une zone déjà couverte : tout ce qu'il inonde loin est très probablement redondant avec ce qu'un relais de classe 2 a déjà porté. Ce qu'il apporte, c'est la couverture d'un trou, pas un saut supplémentaire vers l'extérieur.

4.6 Nomades et chemins périmés

Un terminal qui se déplace pose un problème que le réseau ne résout pas tout seul, et qu'il faut connaître avant d'en attribuer la faute à un relais.

Ce qui se passe. Un terminal mémorise, pour chaque correspondant, le chemin par lequel il l'a joint la dernière fois. Tant que ce chemin est valide, ses messages le suivent, sans inondation : c'est le mode économique. Quand le terminal change de lieu, ce chemin ne décrit plus rien, mais rien ne le lui dit.

Pourquoi rien ne le signale. Le firmware ne réessaie pas automatiquement en cas d'accusé de réception manquant. Le message part sur l'ancien chemin, le premier relais du chemin ne l'entend pas ou ne peut pas continuer, et l'affaire s'arrête là. De l'extérieur, c'est un silence, pas une erreur.

Ce qu'il faut faire. Effacer le chemin mémorisé du correspondant dans l'application, ce qui force le message suivant à repartir en inondation, donc à redécouvrir un trajet valide. Certaines applications proposent aussi une demande de découverte de chemin explicite.

Ce que cela coûte au réseau. Chaque redécouverte est une inondation. Un terminal qui se déplace beaucoup en génère d'autant plus, et c'est structurel : ce n'est pas un défaut de configuration d'un relais, et cela ne se corrige pas en élargissant sa portée.

Ce qu'il ne faut pas en conclure. Qu'il faudrait annoncer les relais le plus loin possible pour être joignable de partout. Une annonce reçue à Paris n'apporte rien : c'est le chemin qui manque, pas l'identité, et un chemin ne se transporte pas dans une annonce. Voir 4.4.

4.7 Recommandations sur la protection

Réf Recommandation Niveau
R-PRO-01 Activer la détection de boucles en moderate sur tout relais Recommandé
R-PRO-02 Réserver strict aux situations de tempête avérée : il peut rejeter des trajets légitimes en maillage dense Conseillé
R-PRO-03 Ne pas utiliser de firmware modifié ou non officiel sur un relais raccordé au réseau Impératif
R-PRO-04 Signaler à la communauté tout comportement anormal observé : répétitions, tempête, nœud aux métadonnées incohérentes Recommandé
R-PRO-05 Ne compter sur aucun mécanisme de filtrage par identité : il n'en existe pas Impératif
R-PRO-06 Déclarer la classe du relais, et appliquer la grille de 4.5 plutôt que des valeurs improvisées Recommandé
R-PRO-07 Dans le doute sur la classe, déclarer la classe inférieure : un relais qui rend plus que promis ne gêne personne Conseillé
R-PRO-08 Relever stats-filter avant et après tout durcissement du filtrage, et conserver les deux relevés Recommandé
R-PRO-09 Ne jamais bloquer un type de paquet sans savoir ce qu'il transporte : 3 ACK et 8 PATH portent le fonctionnement du routage Impératif
R-PRO-10 Changer le mot de passe d'administration avant la mise en service : le défaut est password sur toutes les cartes Impératif

5. Cryptographie et sécurité des échanges

Cette section décrit ce que le protocole protège, ce qu'il ne protège pas, et ce qu'un opérateur doit en conclure.

5.1 Le modèle cryptographique

MeshCore combine deux mécanismes.

L'identité repose sur une paire de clés Ed25519 propre à chaque nœud, générée à la première mise en service. L'adresse d'un nœud dérive du condensat de sa clé publique : l'adressage est donc vérifiable cryptographiquement.

Le chiffrement utilise AES-128 avec un HMAC-SHA256 tronqué pour l'intégrité. Pour les messages directs, le secret partagé est dérivé par ECDH X25519 entre les deux correspondants, les clés Ed25519 étant converties en interne au format X25519.

Un horodatage est inclus dans la charge utile chiffrée, ce qui limite le rejeu.

5.2 Ce qu'un opérateur de relais doit savoir des canaux

Le détail du modèle des canaux relève de la politique des canaux et des messages, document distinct. Trois points concernent directement l'exploitation d'un relais.

Un relais relaie sans lire. Il ne détient aucune clé de canal. Il voit passer des paquets chiffrés, les retransmet selon leur étiquette de portée, et n'a aucun moyen de savoir ce qu'ils contiennent.

C'est une propriété, pas une limite : elle décharge l'opérateur de toute responsabilité éditoriale sur ce qu'il transporte, tout en lui interdisant tout filtrage par le contenu.

Aucun canal ne protège un secret. Les canaux dits hashtag dérivent leur clé de leur nom : quiconque connaît le nom possède la clé. Les canaux privés emploient une clé aléatoire, mais elle est partagée entre tous leurs membres.

Aucun canal n'authentifie l'auteur d'un message. Tout détenteur de la clé peut publier sous n'importe quel nom affiché. Un bulletin apparemment officiel peut provenir de n'importe qui.

C'est ce qui fonde la règle « un service, un émetteur nommé » : la seule donnée vérifiable est la clé publique du nœud émetteur.

Le mécanisme complet, la dérivation des clés, les niveaux de protection et les recommandations d'usage figurent dans POL-CHP05-MSG-2026-001, politique des canaux et des messages.

5.3 L'identité d'un relais

Chaque nœud possède une paire de clés Ed25519, générée à la première mise en service. Son adresse dérive du condensat de sa clé publique : l'adressage est donc vérifiable cryptographiquement.

C'est la seule identité qui compte sur le réseau. Le nom affiché n'est qu'une étiquette, modifiable à volonté et non vérifiable.

Cette clé privée est irremplaçable. Elle ne peut pas être révoquée : une clé compromise impose de regénérer une identité, donc de changer d'adresse et de refaire connaître le nœud.

Elle protège aussi l'administration du relais. Une clé de périphérique distincte empêche qu'un tiers reconfigure le nœud par radio, y compris depuis un canal public.

5.4 Ce qu'un relais expose

Les en-têtes de routage circulent en clair. C'est nécessaire au fonctionnement du maillage : un répéteur doit lire le chemin pour décider s'il retransmet.

Un observateur passif voit donc, sans jamais déchiffrer un seul message :

  • quel nœud a émis, et vers quel destinataire
  • par quels relais le message a transité
  • à quelle heure, et à quelle fréquence
  • la taille approximative du contenu

Sur un réseau où les nœuds portent des noms de lieux, ces métadonnées se traduisent vite en habitudes de vie. Qui est chez lui, qui se déplace, quand, et avec qui il communique.

Le contenu peut être parfaitement protégé et l'essentiel révélé quand même.

5.5 Le cas des passerelles

Une passerelle qui relie un nœud companion à un système d'information republie le contenu des messages en clair, messages directs compris.

Ce n'est pas un défaut de configuration : le pont dispose de la clé du nœud, il déchiffre légitimement, et il publie ce qu'il a déchiffré.

Tout opérateur de passerelle doit le savoir. Un message chiffré de bout en bout entre deux appareils ressort en clair dès qu'il atteint une passerelle dont l'un des deux est le correspondant.

Cela impose deux choses : que le broker reste strictement privé, et que le champ de contenu soit supprimé avant tout stockage ou toute republication.

5.6 Les limites connues

Le mode de chiffrement retenu a des limites documentées. Sur des messages courts, l'impact reste théorique, mais il existe. La communauté MeshCore le signale ouvertement, et c'est à porter au débit d'un modèle de menace honnête.

Il n'y a pas d'autorité de certification. L'identité d'un nœud est sa clé publique, rien de plus. Personne ne garantit que le nœud nommé FR05-VIGIE est bien celui que vous croyez, sauf à avoir vérifié sa clé par un autre canal.

Il n'existe aucune révocation. Une clé compromise ne peut pas être invalidée : il faut regénérer une identité, donc changer d'adresse sur le réseau.

5.7 Disponibilité

La disponibilité n'est garantie par aucun mécanisme.

Facteur Effet
Rapport cyclique six minutes d'émission par heure et par relais, au maximum
Propagation variable selon la météo, la saison, l'heure
Alimentation autonome un relais solaire peut s'arrêter plusieurs jours en hiver
Absence de redondance un relais unique sur un axe est un point de rupture
Saturation un réseau chargé retarde ou perd des messages

Un message peut arriver en retard, ou ne pas arriver. Le protocole ne distingue pas les deux cas pour l'émetteur, sauf accusé de réception explicite.

C'est pourquoi ce réseau ne peut pas être un dispositif de secours, quel que soit le soin apporté à son exploitation.

5.8 Intégrité

Le HMAC détecte une charge utile modifiée. Un message altéré en transit est rejeté.

Mais rien n'authentifie l'auteur d'un message de canal. Toute personne détenant la clé peut publier sous n'importe quel nom affiché. Un bulletin météo apparemment officiel peut venir de n'importe qui.

Ce qui permet de distinguer un message légitime :

  • la clé publique du nœud émetteur, seule donnée réellement vérifiable
  • le respect du format convenu, qui fait signature de fait
  • la cohérence avec la source citée, vérifiable indépendamment

5.9 Confidentialité

Rien de ce qui transite sur un canal ne doit être considéré comme confidentiel.

Les messages directs offrent une protection réelle entre deux appareils. Mais même eux exposent les métadonnées, et sont lisibles par toute passerelle dont l'un des correspondants est un nœud raccordé.

5.10 Recommandations sur la cryptographie et la sécurité

Réf Recommandation Niveau
R-SEC-01 Considérer tout message de canal comme public, y compris sur un canal privé Impératif
R-SEC-02 Réserver les messages directs à ce qui doit rester confidentiel entre deux personnes Recommandé
R-SEC-03 Ne faire transiter aucune donnée exposant une personne : adresse, absence prolongée, donnée de santé, élément d'identité Impératif
R-SEC-04 Tenir compte des métadonnées : le seul fait d'émettre révèle une présence, une heure et une position approximative Recommandé
R-SEC-05 Ne jamais publier sur le réseau un identifiant, un mot de passe ou une clé Impératif
R-SEC-06 Maintenir un mot de passe d'administration distinct sur chaque relais, et le changer à la mise en service Impératif
R-SEC-07 Sauvegarder la clé privée de chaque nœud hors de l'appareil : elle est irremplaçable et non révocable Impératif
R-SEC-08 Sur une passerelle, supprimer le champ de contenu avant tout stockage ou republication Impératif
R-SEC-09 Maintenir tout broker de passerelle strictement privé, sans exposition depuis Internet Impératif
R-SEC-10 Vérifier la clé publique d'un correspondant par un canal indépendant avant tout échange sensible Recommandé
R-SEC-11 Regénérer l'identité d'un nœud dont la clé privée a pu être exposée Impératif
R-SEC-12 Ne pas présenter le réseau comme un moyen de communication sécurisé auprès de tiers Recommandé
R-SEC-13 Documenter publiquement ce que le réseau protège et ce qu'il ne protège pas Recommandé
R-SEC-14 Considérer qu'un message de canal peut être forgé par tout membre : la fiabilité repose sur la clé publique de l'émetteur Impératif

5.11 En résumé

Ce que le protocole assure raisonnablement

  • L'identité d'un nœud est cryptographiquement vérifiable
  • Un message direct n'est lisible que par son destinataire
  • Une charge utile modifiée en transit est détectée
  • Un nœud ne peut pas être reconfiguré à distance sans authentification

Ce qu'il n'assure pas

  • La confidentialité de ce qui passe sur un canal
  • L'anonymat, ni la discrétion des métadonnées
  • L'authentification de l'auteur d'un message de canal, y compris privé
  • La disponibilité, à aucun degré
  • La révocation d'une clé compromise

6. Économie du temps d'antenne

Cette section contient le chiffre qui justifie tout le reste du document.

6.1 Ce que coûte un message

Chaque relais qui entend un message le retransmet exactement une fois. Le coût d'un message est donc :

transmissions = 1 (émetteur) + 1 par relais à portée
Configuration Transmissions par message
Un terminal, un relais 2
Un terminal, deux relais 3
Un terminal, quatre relais 5
Un terminal, dix relais 11

Dans une zone dense où dix relais s'entendent mutuellement, un seul message court occupe le canal onze fois.

6.2 Le plafond réel, calculé

Le temps qu'un paquet occupe la fréquence se calcule exactement, à partir des paramètres radio. Il ne dépend ni du matériel ni de l'implémentation.

La formule

Ts        = 2^SF / BW                     durée d'un symbole
Tpréambule = (npréambule + 4,25) × Ts
nutile    = 8 + max(⌈(8×L − 4×SF + 28 + 16) / (4×SF)⌉ × CR, 0)
Tantenne  = Tpréambule + nutile × Ts

Avec le preset France, SF8 et BW 62,5 kHz, un symbole dure 4,096 ms.

Ce que coûte chaque type de paquet

Paquet Charge utile Temps à l'antenne Par heure à 10 %
Accusé de réception 16 o 247 ms 1 458
Advert de répéteur 40 o 443 ms 811
Message de canal, 40 caractères 72 o 706 ms 510
Message de canal, 100 caractères 132 o 1 197 ms 300
Message de canal, 160 caractères 192 o 1 689 ms 213

Le rapport cyclique de 10 % autorise 360 secondes d'émission par heure, sur fenêtre glissante.

L'écart entre les deux estimations, expliqué

Deux chiffres circulent, et les deux sont exacts. Ils ne mesurent pas la même chose.

Environ 300 messages par heure. Cela correspond très précisément à un message de canal de 100 caractères, soit 1 197 ms. C'est un compte de messages complets.

Environ 680 paquets par heure. Cela correspond à une moyenne de 0,52 s par paquet, obtenue sur du trafic réel. Cette moyenne inclut les accusés de réception à 247 ms et les adverts à 443 ms, bien plus courts qu'un message. C'est un compte de paquets, tous types confondus.

Le rapport entre les deux est cohérent : un message complet coûte environ deux fois la moyenne d'un paquet.

Le chiffre à retenir

Un échange complet, message plus accusé de réception, coûte 1 444 ms.

1 197 ms (message 100 car.) + 247 ms (accusé) = 1 444 ms
360 s ÷ 1,444 s ≈ 250 échanges par heure

Environ 250 conversations d'un message par heure et par répéteur, tous utilisateurs confondus.

C'est le chiffre le plus honnête, parce qu'il compte ce qu'un utilisateur perçoit comme un message plutôt que ce que la radio compte comme un paquet.

Ce que ce quota n'est pas

Il n'est pas par personne. C'est le total, pour tous les utilisateurs d'un même répéteur. Que le réseau compte cinq personnes ou cinq cents, le plafond ne bouge pas.

L'image est celle d'une cabine téléphonique disposant d'une heure de communication par jour : qu'une personne l'utilise ou cent, l'heure ne dure qu'une fois.

La fenêtre est glissante. Ce qui compte est toujours la dernière heure écoulée. Un répéteur peu sollicité la nuit ne capitalise rien pour la journée.

Conséquence directe sur la longueur des messages

Un message de 40 caractères coûte 706 ms, un message de 160 caractères en coûte 1 689.

Un message long coûte donc deux fois et demie un message court. Ce n'est pas un détail de style : c'est un facteur direct sur la capacité du réseau.

6.3 La règle d'or

Pour chaque message, choisir la plus petite portée couvrant tous les destinataires visés.

Usage Portée
Coordination entre deux personnes message direct
Question aux gens du bassin fr-05
Bulletin météo départemental fr-05
Coordination entre départements voisins fr-pac
Question technique au réseau national fr

Un message local envoyé en portée nationale coûte plusieurs fois plus de temps d'antenne que le même message en portée départementale. Tous les relais du pays dépensent leur quota pour une information qui ne concerne personne chez eux.

Avec peu d'utilisateurs, l'écart est invisible. Avec beaucoup, il devient le facteur limitant.

Envoyer aussi local que possible, aussi loin que nécessaire.

6.4 Comportement en charge, et le cas de la crise

Cette sous-section répond à l'objection la plus fréquente contre le cloisonnement : en cas de crise, ne vaudrait-il pas mieux que tout porte partout ?

D'abord, une précision

Le quota ne se dépense pas parce qu'un relais porte une étiquette, mais parce qu'un message la porte.

Tant que personne n'émet en portée nationale, un relais qui déclare fr ne consomme rien pour cela. Le problème n'apparaît que lorsque du trafic existe réellement.

C'est donc un problème de volume émis, pas de configuration. Mais le volume est précisément ce qui explose en crise.

Le scénario

Supposons une situation où les réseaux habituels sont indisponibles, et où deux cents personnes utilisent le réseau LoRa. Chacune envoie un message toutes les dix minutes, soit 1 200 messages par heure.

Le plafond d'un répéteur étant de 250 échanges par heure, il faudrait cinq fois la capacité disponible.

Tout dépend de la portée employée.

Portée des messages Ce que chaque relais doit relayer Résultat
Tous marqués fr les 1 200 messages, partout où un relais porte fr saturation généralisée
Marqués par département seulement ceux de son département tenable

Avec un plafond de 250 échanges par heure, la première configuration sature avant d'avoir servi le quart des messages. Et elle sature partout à la fois, y compris dans les zones où il ne se passe rien.

Le principe

Le cloisonnement multiplie la capacité utile du réseau par le nombre de zones réellement séparées.

Un message marqué fr-05 ne consomme que le quota des relais du 05. Le même message marqué fr consomme celui de tous les relais du pays qui portent cette étiquette, pour une information qui n'intéresse personne ailleurs.

C'est le point contre-intuitif. En crise, le réflexe est de vouloir porter le plus loin possible. Mais un trafic non cloisonné s'effondre intégralement, alors qu'un trafic cloisonné conserve sa capacité locale, c'est-à-dire là où elle sert.

Une limite qui n'est pas que réglementaire

Le rapport cyclique est une contrainte légale. Mais même en s'en affranchissant, le canal reste physiquement partagé.

LoRa ne dispose pas d'un mécanisme d'évitement de collision élaboré. Un canal saturé ne transporte plus rien : il ne se dégrade pas progressivement, il cesse de fonctionner.

Deux émissions simultanées sur la même fréquence se détruisent mutuellement. Plus le nombre d'émetteurs augmente, plus la probabilité de collision croît, et le débit utile s'effondre bien avant que le plafond théorique ne soit atteint.

Ce qu'il faut en conclure

Le levier est le tag des canaux par l'émetteur, pas la liste des régions du répéteur.

Un répéteur qui restreint sa liste ne réduit pas le trafic national : il se contente de ne pas le voir passer, tout en devenant un obstacle pour les messages correctement tagués.

Ce qui préserve réellement le réseau :

Levier Qui l'actionne
Taguer chaque canal à la portée juste l'émetteur
Couper les adverts inondés l'opérateur du répéteur
Limiter le non tagué lointain l'opérateur du répéteur
Bloquer une région large en cas de saturation décision collective

Le dernier levier n'existe que si la séparation entre trafic tagué et non tagué a été faite en amont. C'est ce qui justifie de porter les régions larges plutôt que de les refuser.

Ce que cela n'autorise pas à promettre

Ce raisonnement justifie la discipline de portée. Il ne fait pas du réseau un dispositif de crise pour autant.

Un réseau bien cloisonné tient mieux la charge, mais il reste soumis à tout ce qui figure en 5.7 : pas de garantie de disponibilité, pas de redondance, une alimentation autonome qui peut faillir, et une propagation variable.

Mieux dimensionné ne veut pas dire fiable.

6.5 Les adverts de flood

Un advert de flood coûte autant qu'un message complet, sans porter de contenu. C'est de la surcharge pure : une annonce « je suis toujours là » propagée à travers tout le maillage.

La recommandation des réseaux denses est de les couper :

set flood.advert.interval 0

Le relais reste découvrable par ses adverts à zéro saut, qui ne touchent que les voisins immédiats, et il apparaît de toute façon dans les chemins du trafic normal.

Une réserve importante en phase d'amorçage. Cet argument suppose que le relais figure déjà dans des trajets existants. Un relais isolé, qui ne voit encore personne, ne serait découvert par personne non plus.

Position retenue pour Chappe 05 : conserver un advert de flood tant que le relais n'a pas de voisin confirmé, avec un intervalle long. Le couper dès qu'il est intégré au maillage.

Si un advert de flood est conservé, l'intervalle maximal de 168 heures est préférable à la valeur par défaut.

6.6 Le nombre de relais

Une fois une zone couverte, un relais supplémentaire n'améliore pas la couverture. Il ajoute une transmission à chaque message qui passe, et rend donc chaque message plus coûteux pour tout le monde.

Le onzième relais d'une zone déjà couverte par dix ne fait rien gagner. Il fait passer chaque message de onze à douze transmissions, soit près de 10 % de capacité en moins pour l'ensemble des utilisateurs.

C'est contre-intuitif : on associe spontanément plus de relais à un meilleur réseau. Dans un maillage à inondation, la relation s'inverse au-delà d'un certain seuil.

Avant d'ajouter un relais, il faut pouvoir répondre à une question : quelle zone ou quelle liaison n'est pas couverte aujourd'hui, et que ce relais couvrira.

Si la réponse est « ça ne peut pas faire de mal », c'est qu'il ne faut pas le poser.

6.7 Le rapport cyclique comme régulateur

Le plafond réglementaire de 10 % n'est pas seulement une contrainte : c'est ce qui empêche un seul acteur de saturer la bande.

Un relais qui atteint son plafond cesse d'émettre. Il ne prévient personne, il devient simplement silencieux jusqu'à ce que la fenêtre glissante se libère.

Sur un réseau chargé, cela signifie que les messages ne sont pas perdus mais retardés, et que les relais les plus sollicités décrochent en premier.

6.8 Recommandations sur le temps d'antenne

Réf Recommandation Niveau
R-AIR-01 Couper l'advert de flood dès que le relais est intégré au maillage : set flood.advert.interval 0 Recommandé
R-AIR-02 Si un advert de flood est conservé, retenir l'intervalle maximal plutôt que la valeur par défaut Recommandé
R-AIR-03 Conserver les adverts à zéro saut, qui ne touchent que les voisins immédiats Recommandé
R-AIR-04 Ne poser un relais que si l'on peut nommer la zone ou la liaison qu'il couvrira Impératif
R-AIR-05 Ne pas densifier une zone déjà couverte : chaque relais supplémentaire renchérit le coût de tous les messages Impératif
R-AIR-06 Limiter le nombre de sauts par flood.max et flood.max.advert sur les relais de bordure Conseillé
R-AIR-07 Marquer chaque message à la plus petite portée couvrant les destinataires visés Impératif
R-AIR-08 Réserver la portée nationale aux questions qui concernent réellement le réseau national Recommandé
R-AIR-09 Privilégier le message direct à la diffusion sur un canal lorsque le destinataire est unique Recommandé
R-AIR-10 Proscrire tout automatisme publiant sans filtrage : un capteur qui émet chaque minute consomme à lui seul une part notable du quota Impératif
R-AIR-11 Ne pas rediffuser un message déjà relayé par un autre opérateur Recommandé
R-AIR-12 Formuler court : un message de 160 caractères coûte deux fois et demie un message de 40 Recommandé

7. Coordination entre réseaux voisins

7.1 Ce qui ne demande aucune coordination

La convention française suffit pour communiquer d'un département à l'autre.

Un répéteur portant eu, fr, fr-pac et fr-05 relaie tout message tagué à l'un de ces niveaux. Un message émis dans le 04 et tagué fr-pac traverse donc le 05 sans qu'aucun accord préalable ne soit nécessaire.

C'est tout l'intérêt d'une convention uniforme : chacun applique la même chose, et l'interopérabilité en découle.

7.2 Ce qui en demande

Trois cas seulement.

Ajouter le code d'une zone voisine

Un répéteur peut porter le code d'un département voisin s'il participe réellement au routage de cette zone. Exemple : un site dominant qui interconnecte des secteurs autrement isolés du département d'à côté.

Pourquoi le signaler : les opérateurs concernés comptent alors sur ce répéteur, parfois sans le savoir. Une coupure non annoncée les prive d'une liaison qu'ils croyaient acquise.

Les frontières internationales

Le mécanisme actuel ne permet pas de taguer un canal avec deux régions simultanément. Deux voies :

  • chaque côté ajoute le code de la zone voisine dans la liste de ses répéteurs
  • ou création d'une région dédiée à la zone frontalière, employée des deux côtés

Les deux supposent un accord explicite entre opérateurs des deux pays.

Restreindre le trafic

Passer la région * en refus coupe tout le trafic non tagué, y compris celui des débutants du voisinage.

Retirer une étiquette transforme le répéteur en obstacle pour ceux qui l'employaient.

Ces deux mesures se justifient parfois. Elles doivent être annoncées, sans quoi le répéteur devient un trou dont personne ne comprend l'origine.

7.3 Deux principes

Une convention ne vaut que si elle est appliquée uniformément. Un répéteur qui s'en écarte, dans un sens ou dans l'autre, crée un comportement que ses voisins ne peuvent pas prévoir.

Toute restriction se dit. Ajouter une étiquette peut se faire en silence, cela n'empêche rien. Retirer, jamais.

7.4 État pour Chappe 05

Aucune coordination particulière n'est nécessaire aujourd'hui.

Le réseau du bassin compte un nœud tiers confirmé. La convention française suffit largement à ce stade.

Les contacts établis avec les opérateurs voisins servent à autre chose : partager les mesures, identifier les points hauts, éviter de dupliquer les efforts.

Les questions de coordination se poseront quand un répéteur du 05 couvrira effectivement une partie du 04 ou du 38, ou quand la charge justifiera des restrictions.

7.5 Recommandations sur la coordination

Réf Recommandation Niveau
R-COO-01 Appliquer la convention française plutôt qu'un arrangement local Recommandé
R-COO-02 Signaler aux opérateurs concernés l'ajout du code de leur zone Recommandé
R-COO-03 Annoncer toute restriction : retrait d'étiquette, refus de *, valeur basse de flood.max.unscoped Impératif
R-COO-04 Prévenir avant toute interruption prévue d'un répéteur participant au routage d'une zone voisine Impératif
R-COO-05 Convenir explicitement des modalités avec les opérateurs d'un pays voisin avant toute liaison transfrontalière Recommandé
R-COO-06 Documenter publiquement quel répéteur porte quelle étiquette et depuis quand Recommandé
R-COO-07 Partager les mesures de terrain avec les réseaux limitrophes Conseillé

8. Choix du site

8.1 Le principe

Le site se choisit par la mesure, pas sur la carte.

Un point haut qui ne voit rien ne sert à rien. Un point moyen bien dégagé vaut mieux qu'un sommet encaissé.

8.2 Le piège du col

Un col relie deux bassins qui ne se voient pas. C'est exactement la fonction d'un relais, et ce qui en fait un site apparemment évident.

Mais un col peut être encaissé. Entre deux sommets, il voit deux vallées et rien d'autre. Un épaulement cent mètres plus haut portera souvent bien plus loin.

Le réseau Chappe 05 en a un exemple documenté : un nœud déclaré sur un col n'a répondu depuis aucun des deux points de mesure, alors qu'une liaison de 9,9 km passait au même moment depuis l'un d'eux.

8.3 Ce qui compte, par ordre d'importance

Poste Gain typique
Hauteur et dégagement 10 à 20 dB
Antenne correcte, câble court 5 à 8 dB
Amplificateur en réception 2 à 4 dB
Puissance d'émission, au-delà du plafond de 27 dBm PAR inutilisable en France

Le placement domine tout le reste.

8.4 Recommandations sur le choix du site

Réf Recommandation Niveau
R-SIT-01 Valider un site par au moins une mesure radio avant tout engagement financier Impératif
R-SIT-02 Observer et photographier chaque azimut visé, en notant l'orientation Recommandé
R-SIT-03 Effectuer trois relevés et retenir la médiane : un relevé isolé peut refléter une propagation favorable passagère Recommandé
R-SIT-04 Vérifier le dégagement de la zone de Fresnel, pas seulement la ligne de vue Recommandé
R-SIT-05 Documenter les liaisons qui échouent autant que celles qui réussissent Recommandé
R-SIT-06 Vérifier l'accès hivernal avant de retenir un site d'altitude Impératif
R-SIT-07 Préférer un épaulement dégagé à un col encaissé, à altitude comparable Conseillé

9. Matériel

9.1 Le nœud

nRF52840 obligatoire, pas d'ESP32. La consommation en veille se compte en dizaines de microampères contre plusieurs milliampères. C'est ce qui fait la différence entre un relais qui passe l'hiver et un relais qui tombe en janvier.

SX1262, jamais SX1276. C'est aussi la condition pour utiliser un jour le firmware de journalisation de paquets.

9.2 Recommandations sur le nœud

Réf Recommandation Niveau
R-MAT-01 Utiliser un microcontrôleur nRF52840 sur tout relais autonome Recommandé
R-MAT-02 Utiliser un transceiver SX1262 Recommandé
R-MAT-03 Employer un module radio pré-certifié, pour rester couvert par la directive RED sans devenir fabricant Impératif
R-MAT-04 Sauvegarder la clé privée du nœud dès le premier démarrage, avant mise en service Impératif

9.3 L'antenne

La bande doit couvrir 863-870 MHz, pas 860-930 : une antenne large bande est médiocre partout.

Le gain se choisit selon le site :

Site Gain Raison
Toit dominant une agglomération 3 à 5 dBi lobe large, atteint la vallée en contrebas
Crête, liaisons longues à vue 8 dBi lobe resserré à 12-15°, portée maximale

Un gain élevé aplatit le diagramme de rayonnement. En relief marqué, cela peut faire manquer les correspondants situés nettement plus bas.

Attention aux gains annoncés. Une antenne de 450 mm ne fait pas 5 dBi réels, quoi qu'en dise la fiche : compter 3 à 4 dBi. Un gain de 8 dBi suppose une longueur de l'ordre de 1,30 m.

9.3 bis Le cas des antennes directionnelles

Une Yagi promet 11 dBi pour le prix d'une omni. Sur un répéteur, c'est un piège, et pour une raison que le gain fait oublier : la directivité vaut aussi en réception.

Un appareil MeshCore ne porte qu'un rôle et n'a qu'une radio. Un répéteur inonde, donc il doit entendre tout le monde, de partout. Muni d'une antenne directive, il est entendu loin dans son axe mais n'entend pas la réponse venue d'ailleurs.

Le mode de panne qui en découle est le plus coûteux de tous parce qu'il est invisible : des liaisons à sens unique, qui ressemblent à de l'instabilité, qu'aucune supervision ne signale, et que le voisin attribuera à son propre matériel.

S'y ajoute une limite réglementaire. Un module à 22 dBm, moins 2 dB de pertes internes, avec une Yagi de 11 dBi, atteint 28,6 dBm PAR : au-delà du plafond de 27 dBm. Il faut réduire l'émission d'environ 1,6 dB, donc payer une antenne chère pour en brider le bénéfice.

Une antenne directive reste défendable sur une liaison de dorsale entre deux points hauts connus, à condition d'accepter que ce relais cesse de participer au maillage dans toutes les autres directions. En desserte de bassin, elle est un contresens : la mission d'un relais de niveau 2 est précisément d'atteindre la vallée en contrebas dans toutes les directions.

9.4 Recommandations sur l'antenne

Réf Recommandation Niveau
R-ANT-01 Choisir une antenne dont la bande couvre 863-870 MHz, et non une large bande 860-930 Recommandé
R-ANT-02 Adapter le gain au relief : 3 à 5 dBi en desserte urbaine, 8 dBi en liaison de crête Recommandé
R-ANT-03 Évaluer le gain réel d'après la longueur physique, non d'après la valeur annoncée Conseillé
R-ANT-04 Vérifier le type exact de connecteur avant commande : SMA et RP-SMA sont incompatibles, deux connecteurs mâles également Recommandé
R-ANT-05 Retenir un ROS inférieur à 1,5 dans la bande d'usage Conseillé
R-ANT-06 Proscrire les antennes directionnelles sur un répéteur de desserte : la directivité vaut aussi en réception, et produit des liaisons à sens unique qu'aucune supervision ne signale Recommandé
R-ANT-07 Vérifier que la puissance apparente rayonnée reste sous 27 dBm, gain d'antenne compris et pertes de câble déduites : le PAR se réfère au dipôle, un gain annoncé en dBi doit être diminué de 2,15 dB Impératif

9.5 Le câble

Le plus court possible. À 869 MHz :

Câble Perte pour 10 m
RG174 ~9 dB, à proscrire
RG58 ~5 dB, acceptable sous 3 m
LMR-195 ~3,5 dB
Aircell 7, HF400, LMR-400 ~1,5 dB

Le câble est aussi important que l'antenne. Cinq mètres de RG58 annulent le gain d'une bonne antenne.

9.6 Recommandations sur le câble et le montage

Réf Recommandation Niveau
R-CAB-01 Limiter la longueur de câble au strict nécessaire Impératif
R-CAB-02 Employer un câble à faibles pertes au-delà de 3 m : Aircell 7, HF400 ou LMR-400 Recommandé
R-CAB-03 Proscrire le RG174 hors pigtail de moins de 30 cm Impératif
R-CAB-04 Préférer les câbles connectorisés d'usine au sertissage manuel Recommandé
R-CAB-05 Étanchéifier chaque connexion extérieure au ruban auto-amalgamant, puis protéger des UV Impératif
R-CAB-06 Placer l'antenne au-dessus du boîtier et ménager une boucle d'égouttement avant le connecteur Recommandé
R-CAB-07 Installer un parafoudre coaxial et une mise à la terre si le câble pénètre dans un bâtiment Impératif

Un montage entièrement extérieur, sans liaison filaire vers l'intérieur, ne nécessite pas de parafoudre : il n'existe aucun chemin conducteur vers l'installation domestique.

9.7 Alimentation autonome

Dimensionnement pour un relais consommant environ 12 Wh par jour :

Panneau Décembre, journée claire
3 W 9 Wh, déficit permanent
10 W 30 Wh, minimum acceptable
20 à 30 W confortable

La chimie compte : le lithium-ion ne charge pas sous 0 °C. Avec une réserve suffisante, un relais passe plusieurs semaines sur ses cellules. Le LiFePO4 est supérieur en montagne, au prix d'un assemblage plus complexe.

9.8 Recommandations sur l'alimentation

Réf Recommandation Niveau
R-ALI-01 Dimensionner le panneau pour la production de décembre, non pour la moyenne annuelle Impératif
R-ALI-02 Retenir 10 W au minimum, 20 à 30 W pour un fonctionnement confortable Recommandé
R-ALI-03 Utiliser des cellules 18650 de marque reconnue, 3000 à 3500 mAh Recommandé
R-ALI-04 Écarter toute cellule annonçant plus de 3600 mAh : la capacité réelle est très inférieure et le vieillissement rapide Impératif
R-ALI-05 Vérifier le type de tête attendu par le support avant commande, plate ou bombée Conseillé
R-ALI-06 Prévoir une réserve couvrant au moins deux semaines sans production, le lithium-ion ne chargeant pas sous 0 °C Recommandé
R-ALI-07 Incliner fortement le panneau sur un site exposé à la neige, pour qu'elle ne s'y accumule pas Recommandé
R-ALI-08 Envisager une chimie LiFePO4 sur les sites d'altitude, malgré la complexité d'assemblage Conseillé

10. Nommage

Format retenu : FR05-LIEU-LIBRE

Segment Signification
FR05 pays et département, sans séparateur
LIEU toponyme du site, en capitales
LIBRE segment facultatif : rang, fonction, version de l'installation

Exemples : FR05-MANSE, FR05-STMENS-2, FR05-GAP-HUB.

Les relais portent le nom du lieu. C'est ce qui permet de comprendre la topologie d'un coup d'œil sur une carte.

Contrainte technique. Le champ de nom du firmware fait trente-deux octets, soit trente-et-un caractères utilisables. Au-delà, le nom est tronqué en silence. Le générateur du flasheur affiche le décompte en temps réel.

Le préfixe est FR05, pas 05. Le nom d'un nœud circule bien au-delà du département : sur les analyseurs de paquets et les cartes nationales, 05 seul se confond avec un rang ou un numéro de canal, là où FR05 se lit immédiatement.

Ce format remplace 05GAP-CHP-XXXXX, employé jusqu'en septembre 2026. L'ancien format portait le bassin et le nom du projet, deux informations que la carte du réseau donne déjà. Les nœuds existants peuvent être renommés sans conséquence : la clé publique ne change pas, seul l'affichage évolue. Voir R-NOM-03.

Cette convention est propre à Chappe 05. Les réseaux voisins ont la leur, et c'est très bien ainsi.

Réf Recommandation Niveau
R-NOM-01 Nommer les relais d'après leur toponyme, non d'après leur fonction Recommandé
R-NOM-02 Conserver le préfixe FR05, lisible sur les cartes nationales Recommandé
R-NOM-04 Vérifier que le nom tient en trente-et-un caractères : au-delà, le firmware tronque sans le dire Impératif
R-NOM-03 Signaler tout changement de nom à la communauté : la clé publique reste inchangée, mais l'affichage évolue Conseillé

11. Exploitation

11.1 Position

Un relais d'infrastructure publie sa position. C'est ce qui permet aux autres opérateurs de calculer les liaisons et de placer leurs propres nœuds.

Un nœud personnel ne la publie pas. Un companion mobile qui diffuse sa position diffuse les déplacements de son porteur.

Un opérateur qui ne souhaite pas apparaître sur les cartes publiques doit pouvoir s'y soustraire. Certains agrégateurs prévoient un mécanisme d'exclusion, par exemple un caractère convenu dans le nom du nœud. Ce choix appartient à l'hébergeur du relais, et il ne se discute pas.

11.2 Supervision

Un relais silencieux depuis plus de vingt-quatre heures mérite un signalement.

Les causes fréquentes, par ordre :

Cause Indice
Batterie déchargée panne progressive, souvent en fin de nuit
Connexion corrodée dégradation lente du niveau reçu
Nœud figé arrêt net, sans dégradation préalable
Firmware modifié tempête de paquets, voir la détection de boucles

11.3 Recommandations sur l'exploitation

Réf Recommandation Niveau
R-EXP-01 Publier la position de tout relais d'infrastructure Recommandé
R-EXP-02 Ne pas publier la position d'un nœud personnel mobile Impératif
R-EXP-03 Signaler toute panne dépassant vingt-quatre heures Recommandé
R-EXP-04 Annoncer à l'avance toute intervention programmée sur un relais Conseillé
R-EXP-05 Sauvegarder les clés privées hors de l'appareil, dans un gestionnaire de mots de passe Impératif
R-EXP-06 Tenir à jour une fiche par relais : position, altitude, matériel, date de mise en service Conseillé

12. Cadre juridique

Cette section décrit les obligations qui s'appliquent à un opérateur, notamment lorsqu'il collecte ou publie des données issues du réseau.

Elle n'a pas valeur de conseil juridique. Elle signale les textes applicables et les questions à se poser.

12.1 Émettre sur la bande ISM

Aucune licence n'est requise. La bande 863 à 870 MHz est ouverte, sous conditions techniques.

Ces conditions sont fixées par la décision de la Commission européenne 2006/771/CE et ses révisions, transposées en France par l'ARCEP et l'ANFR, avec pour référence technique la recommandation ERC 70-03 de la CEPT et la norme ETSI EN 300 220.

Pour la sous-bande employée, 869,4 à 869,65 MHz : 500 mW PAR et 10 % de rapport cyclique.

Le non-respect de ces limites engage l'opérateur. L'usage d'un amplificateur portant la puissance au-delà du plafond constitue une émission non conforme.

Le matériel doit être conforme. La directive RED 2014/53/UE impose le marquage CE. Employer un module pré-certifié évite d'endosser les obligations d'un fabricant.

12.2 Collecter des données du réseau

C'est ici que se situe l'essentiel des obligations.

Ce qui est collecté

Un opérateur qui exploite une passerelle, un collecteur ou un tableau de bord enregistre :

Donnée Nature
Clé publique d'un nœud identifiant unique et stable
Nom affiché souvent un pseudonyme reconnaissable
Position donnée de localisation
Horodatages permet de reconstituer des habitudes
Contenu des messages peut concerner des tiers

Pourquoi ce sont des données à caractère personnel

L'article 4.1 du RGPD définit la donnée à caractère personnel comme toute information se rapportant à une personne physique identifiée ou identifiable, notamment par référence à un identifiant tel qu'un numéro d'identification, des données de localisation ou un identifiant en ligne.

Une clé publique de nœud relève de cette dernière catégorie. Seule, elle ne nomme personne. Associée à une position, à des horodatages récurrents et à un nom affiché, elle rend son porteur identifiable.

Le Conseil d'État a jugé qu'un identifiant sous forme de pseudonyme, associé à une adresse technique, à un emplacement géographique et à un identifiant de terminal, ne constitue pas une anonymisation valable.

Les données pseudonymisées demeurent des données à caractère personnel. L'article 4.5 le précise, et la pseudonymisation est une mesure de sécurité au sens de l'article 32, non une sortie du champ du règlement.

L'exemption domestique ne s'applique pas

L'article 2.2.c écarte du règlement les traitements effectués dans le cadre d'activités strictement personnelles ou domestiques.

Publier un tableau de bord ou une carte accessible sort de ce cadre. Dès lors que le service est ouvert à des tiers, l'opérateur devient responsable de traitement au sens de l'article 4.7.

Les obligations qui en découlent

Obligation Article Ce que cela suppose
Base légale 6 intérêt légitime pour l'exploitation technique, consentement pour la publication de données identifiantes
Information 13 et 14 mention accessible décrivant ce qui est collecté, pourquoi, combien de temps
Minimisation 5.1.c ne collecter que ce qui est nécessaire
Limitation de conservation 5.1.e durée définie et appliquée
Droits des personnes 15 à 22 accès, rectification, effacement, opposition
Sécurité 32 mesures proportionnées au risque
Registre 30 tenue d'un registre des traitements

Le cas particulier du contenu des messages

Une passerelle republie le contenu des messages en clair, messages directs compris.

Un message peut contenir des données concernant des tiers, qui n'ont consenti à rien et ignorent l'existence de la passerelle.

Le stocker constitue un traitement sans base légale identifiable. C'est la raison pour laquelle la suppression du champ de contenu avant tout enregistrement n'est pas seulement une précaution technique.

Le cas des positions publiées

La position d'un relais d'infrastructure est publiée par son opérateur, qui en décide. Aucune difficulté.

La position d'un nœud personnel est une donnée de localisation. Publiée, elle expose les déplacements de son porteur. C'est la raison de fond de R-EXP-02.

12.3 Publier des informations d'autrui

Le contenu d'un message appartient à son auteur. Le republier hors du réseau, sur un site ou un tableau de bord, suppose son accord.

Cela vaut aussi pour les captures de conversation partagées à titre d'illustration.

Les données publiques ne sont pas libres de droit. Un bulletin de vigilance ou un arrêté préfectoral peut être rediffusé, mais la source doit être citée et le contenu non dénaturé.

Une carte de couverture construite à partir d'observations tierces mobilise le travail d'autrui. Citer les contributeurs et respecter la licence des données employées relève du même principe.

12.4 Responsabilité de l'hébergeur d'un relais

Un relais transporte sans lire. Il ne détient aucune clé de canal, ne peut pas connaître le contenu de ce qu'il achemine, et ne peut exercer aucun filtrage éditorial.

Cette absence de maîtrise est un élément de fait, et elle distingue nettement la situation d'un simple relayage de celle d'un hébergement de contenu.

En revanche, l'opérateur reste responsable de la conformité de son émission : puissance, rapport cyclique, matériel certifié.

12.5 Recommandations sur le cadre juridique

Réf Recommandation Niveau
R-JUR-01 Respecter les limites de puissance et de rapport cyclique de la sous-bande employée Impératif
R-JUR-02 Employer du matériel radio pré-certifié conforme à la directive RED Impératif
R-JUR-03 Supprimer le contenu des messages avant tout enregistrement sur une passerelle Impératif
R-JUR-04 Publier une mention d'information décrivant les données collectées, leur finalité et leur durée de conservation Impératif
R-JUR-05 Définir et appliquer une durée de conservation, et documenter la purge Impératif
R-JUR-06 Permettre à un opérateur de demander le retrait de son nœud des services publiés Impératif
R-JUR-07 Ne pas publier la position d'un nœud personnel sans l'accord de son porteur Impératif
R-JUR-08 Tenir un registre des traitements pour tout service exposant des données du réseau Recommandé
R-JUR-09 Citer la source de tout bulletin rediffusé, sans en modifier le sens Impératif
R-JUR-10 Obtenir l'accord de l'auteur avant de republier un message hors du réseau Recommandé
R-JUR-11 Citer les contributeurs et respecter la licence des données de couverture employées Recommandé
R-JUR-12 Restreindre l'accès aux données de collecte aux personnes qui en ont l'usage Recommandé

13. Savoir-vivre

Un réseau ouvert n'a pas de modération. Ce qui le rend praticable tient à ce que chacun y met.

13.1 Une ressource partagée

Le temps d'antenne est commun. Ce qu'une personne consomme n'est plus disponible pour les autres, et un répéteur saturé ne sert plus personne.

Cela suffit à fonder l'essentiel : formuler court, taguer à la portée juste, ne pas rediffuser ce qui l'a déjà été.

13.2 Envers les nouveaux arrivants

Tout le monde a commencé sans rien comprendre aux régions, aux presets et aux zones de Fresnel.

Répondre aux questions élémentaires est ce qui fait qu'un réseau grandit. Un nouvel arrivant mal accueilli ne revient pas, et le maillage y perd un nœud.

Orienter plutôt que corriger. Signaler un canal plus adapté vaut mieux que reprocher un mauvais usage.

13.3 Neutralité

Le réseau ne prend pas parti. Il ne porte ni position politique, ni cause, ni revendication.

Ce n'est pas une position politique en soi : c'est la condition pour qu'un maillage rassemble des gens qui n'ont en commun que le territoire et l'intérêt technique.

Un canal détourné en tribune prive les autres d'une ressource limitée, et expose les hébergeurs de relais à être associés à des propos qu'ils n'ont pas choisi de transporter.

Les débats de fond ont leur place ailleurs, où la bande passante ne se compte pas en secondes par heure.

13.4 Ce qui n'a pas sa place

Pratique Raison
Occupation prolongée d'un canal prive les autres d'une ressource limitée
Automatisme non filtré consomme sans discernement
Propos visant une personne aucune modération n'existe pour y remédier
Usurpation d'un émetteur identifié rien ne l'empêche techniquement, tout l'interdit collectivement
Publication d'informations sur un tiers absent l'expose sans qu'il puisse s'y opposer

13.5 En cas de désaccord

Ni blocage, ni exclusion. Aucun mécanisme technique ne le permet, et c'est structurel.

Ce qui reste : expliquer, documenter, et si nécessaire cesser de répondre. Un usage abusif finit par isoler celui qui le pratique, parce que les autres cessent de l'écouter.

Les droits d'administration de la plateforme ne servent pas à trancher un désaccord de fond. Voir R-ROL-03.

13.6 Recommandations sur le savoir-vivre

Réf Recommandation Niveau
R-USG-01 Répondre aux questions des nouveaux arrivants Recommandé
R-USG-02 Orienter vers le canal adapté plutôt que reprocher un usage Recommandé
R-USG-03 Ne pas employer le réseau comme tribune politique ou revendicative Recommandé
R-USG-04 Ne pas publier d'information concernant une personne absente du réseau Impératif
R-USG-05 Ne pas se faire passer pour un émetteur identifié Impératif
R-USG-06 Partager ses mesures, y compris les liaisons qui échouent Recommandé
R-USG-07 Ne pas laisser un opérateur seul face à un relais en panne sur un site difficile Conseillé

14. Rôles sur la plateforme

Le tableau de bord Chappe 05 distingue trois rôles, attribués par le fournisseur d'identité.

Ils décrivent l'accès à la plateforme. Ils ne créent aucune hiérarchie entre les personnes : quelqu'un qui héberge un relais et quelqu'un qui n'en héberge pas ont la même voix dans les discussions.

14.1 Membre

Ce qu'il peut faire

  • Consulter les nœuds, les adverts, la télémétrie, la carte
  • Renseigner son profil et son indicatif

Ce qu'on attend de lui

  • Respecter la convention de canaux
  • Ne pas republier une information dont il ne connaît pas la source
  • Signaler ce qui paraît anormal

Comment l'obtenir

C'est le rôle par défaut. Toute personne qui crée un compte l'obtient.

14.2 Opérateur

Ce qu'il peut faire

  • Tout ce que peut un membre
  • Adopter ses propres nœuds dans le hub
  • Poser des étiquettes sur ses nœuds
  • Déclarer des liaisons à surveiller

Ce qu'on attend de lui

  • Maintenir ses relais en état de marche, ou signaler qu'il ne le peut plus
  • Publier la position de ses relais d'infrastructure
  • Documenter ses mesures, échecs compris
  • Prévenir avant une intervention qui coupera un relais
  • Ne pas modifier ce qui appartient à d'autres opérateurs

Comment l'obtenir

Il est attribué lorsqu'un nœud est en service et déclaré. Il n'y a pas de procédure formelle : un message suffit.

14.3 Administrateur

Ce qu'il peut faire

  • Tout ce que peut un opérateur
  • Gérer les canaux déclarés dans le hub
  • Attribuer les rôles
  • Configurer la plateforme

Ce qu'on attend de lui

  • Maintenir la plateforme en état de marche
  • Sauvegarder la configuration et les secrets
  • Documenter les changements
  • Ne pas utiliser les droits d'administration pour arbitrer un désaccord de fond
  • Rendre compte à la communauté des décisions techniques structurantes

Comment l'obtenir

Il est réservé aux personnes qui maintiennent effectivement l'infrastructure. Il n'est ni un statut ni une récompense.

14.4 Une remarque sur les rôles

Ces rôles décrivent un accès à un outil. Ils ne créent aucune hiérarchie entre les personnes.

Quelqu'un qui héberge un relais et quelqu'un qui n'en héberge pas ont la même voix dans les discussions. Le rôle d'administrateur n'est ni un statut ni une récompense : c'est une charge d'entretien.

Voir la section 13 pour ce qui relève des usages partagés.

14.5 Recommandations sur les rôles

Réf Recommandation Niveau
R-ROL-01 Attribuer le rôle opérateur dès qu'un nœud est en service et déclaré Recommandé
R-ROL-02 Limiter le rôle administrateur aux personnes qui maintiennent effectivement la plateforme Impératif
R-ROL-03 Ne pas se servir des droits d'administration pour trancher un désaccord de fond Impératif
R-ROL-04 Consigner par écrit les décisions techniques qui engagent la communauté Recommandé
R-ROL-05 Prévoir un suppléant sur toute fonction critique, plateforme comprise Conseillé

15. Ce que ce réseau n'est pas

Chappe 05 n'est pas un dispositif de secours.

  • Aucune disponibilité n'est garantie
  • Un message peut arriver en retard, ou ne pas arriver
  • Le réseau ne remplace ni les sirènes, ni FR-Alert, ni un appel au 112
  • Personne ne surveille les messages en permanence
  • Un réseau bien cloisonné tient mieux la charge, mais cela ne le rend pas fiable pour autant, voir 6.4

Le discours qui présente ces réseaux comme des dispositifs d'urgence vient d'un contexte nord-américain où le maillage des secours publics est différent. En France, il crée une attente que le réseau ne peut pas honorer.

Et il produit un risque réel : quelqu'un qui croit disposer d'un filet de sécurité prend des décisions différentes.

En cas d'urgence, appelez le 112.


16. Récapitulatif des recommandations

Impératives

Réf Objet
R-REG-01 bis Autoriser l'inondation sur chaque région créée
R-RF-02 Vérifier la fréquence après application du preset
R-RF-03 Ne pas dépasser 27 dBm de PAR
R-RF-04 Régler le rapport cyclique à 10 %
R-PRO-03 Pas de firmware modifié sur un relais raccordé
R-PRO-05 Ne compter sur aucun filtrage par identité
R-PRO-09 Ne bloquer aucun type de paquet sans savoir ce qu'il transporte
R-PRO-10 Changer le mot de passe d'administration avant mise en service
R-SIT-01 Valider un site par la mesure avant engagement
R-SIT-06 Vérifier l'accès hivernal
R-MAT-03 Module radio pré-certifié
R-MAT-04 Sauvegarder la clé privée dès le premier démarrage
R-CAB-01 Limiter la longueur de câble
R-CAB-03 Proscrire le RG174
R-CAB-05 Étanchéifier chaque connexion extérieure
R-CAB-07 Parafoudre et terre si le câble entre dans un bâtiment
R-ALI-01 Dimensionner sur décembre
R-ALI-04 Écarter les cellules aux capacités fantaisistes
R-EXP-02 Ne pas publier la position d'un nœud personnel mobile
R-EXP-05 Sauvegarder les clés hors de l'appareil
R-ROL-02 Limiter le rôle administrateur
R-ROL-03 Ne pas arbitrer un désaccord par les droits
R-JUR-01 Respecter puissance et rapport cyclique
R-JUR-02 Matériel radio pré-certifié
R-JUR-03 Supprimer le contenu avant enregistrement
R-JUR-04 Publier une mention d'information sur les données collectées
R-JUR-05 Définir et appliquer une durée de conservation
R-JUR-06 Permettre le retrait d'un nœud des services publiés
R-JUR-07 Pas de position d'un nœud personnel sans accord
R-JUR-09 Citer la source de tout bulletin rediffusé
R-USG-04 Pas d'information sur une personne absente du réseau
R-USG-05 Ne pas usurper un émetteur identifié
R-SEC-01 Considérer tout message de canal comme public
R-SEC-03 Ne faire transiter aucune donnée exposant une personne
R-SEC-05 Ne jamais publier un identifiant, un mot de passe ou une clé
R-SEC-06 Mot de passe d'administration distinct par relais
R-SEC-07 Sauvegarder la clé privée hors de l'appareil
R-SEC-08 Supprimer le contenu avant stockage sur une passerelle
R-SEC-09 Broker de passerelle strictement privé
R-SEC-11 Regénérer l'identité d'un nœud dont la clé a pu être exposée
R-AIR-04 Ne poser un relais que si l'on peut nommer ce qu'il couvrira
R-AIR-05 Ne pas densifier une zone déjà couverte
R-AIR-07 Marquer chaque message à la plus petite portée utile
R-AIR-10 Proscrire tout automatisme publiant sans filtrage
R-COO-03 Annoncer toute restriction : retrait d'étiquette, refus de *
R-COO-04 Prévenir avant toute interruption d'un répéteur desservant une zone voisine
R-REG-03 Conserver la région * activée
R-REG-06 Régions par la géographie, jamais par l'usage
R-REG-08 Annoncer tout retrait d'étiquette
R-SEC-14 Un message de canal peut être forgé par tout membre
R-RF-08 Companions en 2 octets seulement si le parc est à jour

Recommandées

Réf Objet
R-RF-01 Appliquer le preset nommé plutôt que saisir les valeurs
R-RF-05 Écarter les modules à amplificateur de puissance
R-RF-06 Vérifier la puissance rayonnée avant mise en service
R-RF-07 path.hash.mode 1 sur les répéteurs en 1.14+
R-RF-09 Vérifier le firmware des répéteurs dont on dépend
R-REG-01 Déclarer tous les niveaux qui couvrent le site
R-REG-02 Région par défaut sur fr
R-REG-04 flood.max.unscoped sur 5, ou 2 en zone frontalière
R-REG-05 Codes ISO, jamais les noms en toutes lettres
R-REG-07 Code d'une zone voisine seulement si routage réel
R-REG-09 Vérifier la version de firmware
R-REG-10 Se référer à ce que font les opérateurs voisins
R-PRO-01 Détection de boucles en moderate
R-PRO-04 Signaler tout comportement anormal observé
R-PRO-06 Appliquer la grille de la classe déclarée
R-PRO-08 Relever stats-filter avant et après tout durcissement
R-SEC-02 Réserver les messages directs au confidentiel
R-SEC-04 Tenir compte des métadonnées
R-SEC-10 Vérifier la clé publique par un canal indépendant
R-SEC-12 Ne pas présenter le réseau comme sécurisé
R-SEC-13 Documenter ce que le réseau protège et ne protège pas
R-AIR-01 Couper l'advert de flood une fois le relais intégré
R-AIR-02 Intervalle maximal si un advert de flood est conservé
R-AIR-03 Conserver les adverts à zéro saut
R-AIR-08 Réserver la portée nationale à ce qui la justifie
R-AIR-12 Formuler court, le coût croît avec la longueur
R-AIR-09 Message direct plutôt que canal si destinataire unique
R-AIR-11 Ne pas rediffuser un message déjà relayé
R-COO-01 Appliquer la convention française plutôt qu'un arrangement local
R-COO-02 Signaler aux opérateurs concernés l'ajout du code de leur zone
R-COO-05 Convenir des modalités avant toute liaison transfrontalière
R-COO-06 Documenter quel répéteur porte quelle étiquette
R-SIT-02 Observer et photographier chaque azimut visé
R-SIT-03 Trois relevés, retenir la médiane
R-SIT-04 Vérifier le dégagement de la zone de Fresnel
R-SIT-05 Documenter les liaisons qui échouent
R-MAT-01 Microcontrôleur nRF52840 sur relais autonome
R-MAT-02 Transceiver SX1262
R-ANT-01 Antenne couvrant 863-870 MHz, non large bande
R-ANT-02 Adapter le gain au relief
R-ANT-04 Vérifier le type de connecteur avant commande
R-CAB-02 Câble à faibles pertes au-delà de 3 m
R-CAB-04 Câbles connectorisés d'usine
R-CAB-06 Antenne au-dessus du boîtier, boucle d'égouttement
R-ALI-02 10 W minimum, 20 à 30 W confortable
R-ALI-03 Cellules 18650 de marque reconnue
R-ALI-06 Réserve couvrant deux semaines sans production
R-ALI-07 Incliner fortement le panneau sur site enneigé
R-NOM-01 Nommer les relais d'après leur toponyme
R-NOM-02 Conserver le préfixe départemental
R-EXP-01 Publier la position d'un relais d'infrastructure
R-EXP-03 Signaler toute panne dépassant 24 heures
R-ROL-01 Rôle opérateur dès qu'un nœud est en service
R-ROL-04 Consigner par écrit les décisions engageant la communauté
R-JUR-08 Tenir un registre des traitements
R-JUR-10 Accord de l'auteur avant republication hors du réseau
R-JUR-11 Citer les contributeurs et respecter les licences
R-JUR-12 Restreindre l'accès aux données de collecte
R-USG-01 Répondre aux questions des nouveaux arrivants
R-USG-02 Orienter plutôt que reprocher
R-USG-03 Ne pas employer le réseau comme tribune
R-USG-06 Partager ses mesures, échecs compris

Conseillées

Réf Objet
R-REG-11 Réexaminer la position si le trafic tagué large devient notable
R-REG-12 Renseigner region home au niveau communal
R-PRO-02 Réserver strict aux tempêtes avérées
R-PRO-07 Dans le doute, déclarer la classe inférieure
R-AIR-06 Limiter le nombre de sauts sur les relais de bordure
R-COO-07 Partager les mesures avec les réseaux limitrophes
R-SIT-07 Épaulement dégagé plutôt que col encaissé
R-ANT-03 Évaluer le gain d'après la longueur physique
R-ANT-05 ROS inférieur à 1,5 dans la bande d'usage
R-ALI-05 Vérifier le type de tête attendu par le support
R-ALI-08 Chimie LiFePO4 sur les sites d'altitude
R-NOM-03 Signaler tout changement de nom
R-EXP-04 Annoncer les interventions programmées
R-EXP-06 Tenir une fiche par relais
R-ROL-05 Prévoir un suppléant sur toute fonction critique
R-USG-07 Ne pas laisser un opérateur seul face à un relais en panne

17. Ressources

Documentation MeshCore

Ressource Adresse
Documentation officielle https://docs.meshcore.io
Commandes de répéteur https://meshcore.ninja/repeater-commands/
Format des paquets https://docs.meshcore.io/packet_format/
Foire aux questions, hash de chemin https://docs.meshcore.io/faq/
Flasher les appareils https://flasher.meshcore.io
Carte mondiale https://map.meshcore.io
Code source https://github.com/meshcore-dev/MeshCore
Analyse du code, chiffrement https://deepwiki.com/ripplebiz/MeshCore/9-security-and-access-control

Cadre juridique

Ressource Adresse
RGPD, texte consolidé https://www.cnil.fr/fr/reglement-europeen-protection-donnees
CNIL, notion de donnée personnelle https://www.cnil.fr/fr/definition/donnee-personnelle
ANFR, utilisation des fréquences https://www.anfr.fr
ARCEP, dispositifs à courte portée https://www.arcep.fr

Communauté

Ressource Adresse
Gaulix, règles de base et générateur de régions https://gaulix.fr/docs-parametrage/regles-de-nommage-regions-canaux-meshcore/
Gaulix, dix idées reçues sur les régions https://gaulix.fr/10-idees-recues-sur-les-regions-meshcore/
Calculateur de pertes et puissances à compléter
Communauté française https://www.meshcore.fr
KiekR, guide pour opérateurs de relais https://kiekr.app/repeater-operators
KiekR, pourquoi les régions https://kiekr.app/why-regions
EastMesh, canaux et clés https://wiki.eastmesh.au/meshcore/channels-and-keys/
Démonstration sur les clés hashtag https://github.com/jkingsman/meshcore-packet-knife

Chappe 05

Ressource Adresse
Carte temps réel https://carte.chappe05.fr
Supervision https://dashboard.chappe05.fr
Site https://chappe05.fr

18. Points ouverts

Ce document est une version de travail. Les points suivants restent à trancher :

Point État
Taille de hash des companions Quand basculer les companions du 05 en 2 octets. Suppose de connaître l'état du parc de répéteurs de la zone, y compris ceux des réseaux voisins traversés
Échelle d'annonce européenne Aucune classe ne s'annonce en eu aujourd'hui : le niveau reste porté pour le relayage, sans palier d'annonce. À définir le jour où une convention européenne sera nécessaire
Document de référence français sur les régions Aucun n'a été trouvé, alors que plusieurs communautés étrangères ont formalisé leur stratégie
Lien du calculateur Gaulix À compléter
Niveau communal hors classe 3 Le palier municipal ne se comporte comme tel que là où plusieurs relais partagent la commune. Son intérêt au-delà de la classe 3 reste à établir
Répéteurs couvrant une zone voisine Aucun identifié à ce jour. Le générateur du flasheur sait désormais lesquels sont atteints, reste à décider lesquels sont réellement desservis
Grille de filtrage de la classe 0 Elle reprend celle de la classe 1, faute de cas réel à mesurer. À arrêter quand un relais national sera posé

Toute remarque d'opérateur est bienvenue.



Annexe A. Configurations types

Cinq profils, à adapter avant application. Chaque bloc est une séquence complète, dans l'ordre où elle doit être saisie.

A.0 Avant toute chose

Vérifier la version de firmware.

ver

Les séquences ci-dessous supposent 1.15.0 ou supérieur.

region put crée une région en refus d'inondation. C'est le comportement du firmware, toutes versions confondues : la région est créée avec le drapeau de refus, et seul un region allowf <nom> explicite l'ouvre. Une région créée et laissée fermée fait du relais un trou pour cette étiquette, sans que rien ne le signale. Les séquences ci-dessous portent donc systématiquement les deux commandes.

Ne pas oublier region save. Sans elle, l'arbre est perdu au redémarrage.

Vérifier les paramètres appliqués après configuration.

get
region

Sauvegarder la clé privée avant toute mise en service. Elle est irremplaçable et non révocable.


A.1 Classe 1, backbone

Point haut structurant, qui relie des bassins entre eux. Sa perte coupe une partie du réseau du reste : il suppose un site dégagé, une alimentation fiable et un opérateur joignable. Voir 1.4.

set name FR05-LIEU-LIBRE
set radio 869.618,62.5,8,8
set tx 22
set dutycycle 10

set loop.detect strict
set flood.max 64
set flood.max.unscoped 2
set grp.data.block 1
set block.lasthop 1
set block.alltypes 0
set grp.relay.enable 1

set flood.max.type 5 12
set flood.max.type 6 6
set flood.max.type 10 8
set flood.max.type 15 6
set prio.type 6 8
set prio.type 15 8
set airtime.budget.type 6 10
set airtime.budget.type 15 5

set path.hash.mode 1
set multi.acks 1

region put eu
region put fr eu
region put fr-pac fr
region put fr-05 fr-pac
region put fr-05-061-gap fr-05
region allowf eu
region allowf fr
region allowf fr-pac
region allowf fr-05
region allowf fr-05-061-gap
region default fr-pac
region home fr-05-061-gap
region save

set advert.interval 240
set flood.advert.interval 0

set lat 44.xxxxx
set lon 6.xxxxx
gps advert prefs

set password <mot de passe unique>
reboot

À adapter : le nom, la commune dans l'arbre de régions, les coordonnées, le mot de passe. Le flasheur produit ces cinq lignes de région à partir d'une adresse ou d'un point posé sur la carte.

Sur flood.advert.interval 0 : coupe les annonces inondées. À ne faire qu'une fois le relais intégré au maillage, sinon personne ne le découvrira. Voir 6.5.

Vérifier que la région * reste activée dans l'interface d'administration. Elle laisse passer le trafic non encore tagué.

Pourquoi strict et non moderate. Une boucle amorcée sur un relais de backbone se propage à l'ensemble du réseau. Le risque de rejeter un trajet légitime en maillage dense est réel, mais il reste local, là où la tempête ne l'est pas. Relever stats-filter après quelques semaines pour vérifier que les rejets restent marginaux.

Pourquoi flood.max.unscoped 2. Un backbone ne doit pas servir de porte d'entrée au trafic non étiqueté venu de loin : le volume qu'il porterait est exactement celui que les régions existent pour contenir.


A.2 Classe 2, bassin et desserte

Toit dominant, colline urbaine, point haut de bassin. Il couvre une vallée, une commune ou un versant, et rassemble le trafic local. C'est la classe la plus courante.

set name FR05-LIEU-LIBRE
set radio 869.618,62.5,8,8
set tx 22
set dutycycle 10

set loop.detect moderate
set flood.max 32
set flood.max.unscoped 5
set grp.data.block 1
set block.lasthop 1
set block.alltypes 0
set grp.relay.enable 1

set flood.max.type 5 12
set flood.max.type 6 4
set flood.max.type 10 8
set flood.max.type 15 6
set prio.type 6 6
set airtime.budget.type 6 15

set path.hash.mode 1
set multi.acks 1

region put eu
region put fr eu
region put fr-pac fr
region put fr-05 fr-pac
region put fr-05-061-gap fr-05
region allowf eu
region allowf fr
region allowf fr-pac
region allowf fr-05
region allowf fr-05-061-gap
region default fr-05
region home fr-05-061-gap
region save

set advert.interval 240
set flood.advert.interval 0

set lat 44.xxxxx
set lon 6.xxxxx
gps advert prefs

set password <mot de passe unique>
reboot

À adapter : le nom, la commune dans l'arbre de régions, les coordonnées, le mot de passe. Le flasheur produit ces cinq lignes de région à partir d'une adresse ou d'un point posé sur la carte.

Sur flood.advert.interval 0 : coupe les annonces inondées. À ne faire qu'une fois le relais intégré au maillage, sinon personne ne le découvrira. Voir 6.5.

Vérifier que la région * reste activée dans l'interface d'administration. Elle laisse passer le trafic non encore tagué.

Un relais de crête entre dans cette classe, sauf s'il porte réellement une liaison entre bassins. La hauteur élargit la couverture géographique, pas la portée logique : un relais de crête et un relais de toit portent les mêmes étiquettes. Seule différence pratique, la puissance devra souvent être réduite, une antenne à gain élevé faisant dépasser les 27 dBm de PAR. Voir 2.2.


A.3 Classe 3, confort local

Relais d'appoint qui comble un trou de couverture déjà entouré : un quartier, un creux, une façade de vallée. Sa perte se remarque à peine au-delà de sa zone.

set name FR05-LIEU-LIBRE
set radio 869.618,62.5,8,8
set tx 22
set dutycycle 10

set loop.detect moderate
set flood.max 16
set flood.max.unscoped 5
set grp.data.block 1
set block.lasthop 1
set block.alltypes 0
set grp.relay.enable 0

set flood.max.type 5 8
set flood.max.type 6 2
set flood.max.type 10 6
set flood.max.type 15 4

set path.hash.mode 1
set multi.acks 1

region put eu
region put fr eu
region put fr-pac fr
region put fr-05 fr-pac
region put fr-05-061-gap fr-05
region allowf eu
region allowf fr
region allowf fr-pac
region allowf fr-05
region allowf fr-05-061-gap
region default fr-05-061-gap
region home fr-05-061-gap
region save

set advert.interval 240
set flood.advert.interval 0

set lat 44.xxxxx
set lon 6.xxxxx
gps advert prefs

set password <mot de passe unique>
reboot

À adapter : le nom, la commune dans l'arbre de régions, les coordonnées, le mot de passe. Le flasheur produit ces cinq lignes de région à partir d'une adresse ou d'un point posé sur la carte.

Sur flood.advert.interval 0 : coupe les annonces inondées. À ne faire qu'une fois le relais intégré au maillage, sinon personne ne le découvrira. Voir 6.5.

Vérifier que la région * reste activée dans l'interface d'administration. Elle laisse passer le trafic non encore tagué.

Pourquoi les plafonds les plus bas. Ce n'est pas une défiance envers les petits relais. Un relais de confort local se trouve, par construction, dans une zone déjà couverte : ce qu'il inonde loin est très probablement redondant avec ce qu'un relais de classe 2 a déjà porté. Ce qu'il apporte, c'est la couverture d'un trou, pas un saut de plus vers l'extérieur.

grp.relay.enable 0. La confirmation passive de relais coûte de l'écoute et des réémissions. Elle se justifie là où la perte d'un saut est coûteuse, pas sur un relais dont les voisins entendent déjà la même chose.


A.4 Variante, participation au routage d'un département voisin

Site dominant une limite départementale, et couvrant effectivement des zones du département voisin qui seraient autrement isolées. Cette variante se superpose à une classe, elle ne la remplace pas.

region put fr-04 fr
region allowf fr-04
region save

Le critère est fonctionnel, pas géographique. Ajouter fr-04 ne se justifie que si le relais fait réellement transiter des messages à l'intérieur du 04. Voir R-REG-07.

Savoir quels départements le relais atteint réellement. Le générateur de régions du flasheur échantillonne la zone couverte, trois couronnes d'azimuts autour du site, et interroge l'API géographique de l'État pour chaque point. Il restitue les départements atteints, avec le nombre de points, le secteur d'azimut et la distance à partir de laquelle ils apparaissent. Pour une antenne directionnelle, l'échantillonnage se limite au secteur visé.

L'outil constate la géographie, il ne décide pas. Les départements détectés sont proposés décochés : atteindre un département n'est pas y router du trafic. C'est l'opérateur qui tranche, et qui prévient les voisins.

Ne pas oublier region allowf. Une région créée sans autorisation d'inondation est un trou : le relais annonce porter le 04 et n'en relaie rien. Voir R-REG-01 bis.

Prévenir les opérateurs concernés. Ils comptent peut-être sur ce relais sans le savoir. Voir 7.2.

A.5 Variante, relais frontalier international

Répéteur faisant face à un pays voisin, exposé à un volume important de trafic étranger non tagué. Là encore, variante d'une classe, pas une classe de plus.

set flood.max.unscoped 2

Deux mesures spécifiques.

flood.max.unscoped 2, plus strict, pour couper le trafic non tagué venu de loin. Un relais de classe 1 y est déjà.

Et, si le volume le justifie, passer la région * en refus dans l'interface d'administration. Cela bloque intégralement le trafic sans région.

Cette seconde mesure coupe aussi les débutants du voisinage. À n'employer qu'en dernier recours, et à annoncer.

Pour un échange délibéré avec le pays voisin, ajouter le code de la zone concernée dans la liste, region allowf compris, et convenir de la réciproque avec les opérateurs d'en face.


A.6 Room server

Salon persistant. Il ne retransmet pas : les réglages de relayage sont sans objet.

set name FR05-LIEU-LIBRE
set radio 869.618,62.5,8,8
set tx 22

set path.hash.mode 1
set multi.acks 1

region default fr
region home fr-05-061-gap
region save

set guest.password <mot de passe de publication>
set allow.read.only on
set owner.info Chappe 05 - reseau des Hautes-Alpes - chappe05.fr

set lat 44.xxxxx
set lon 6.xxxxx
gps advert prefs

set password <mot de passe d'administration, distinct>
reboot

Deux mots de passe distincts. Le premier autorise la publication, le second l'administration. Ne jamais confondre.

allow.read.only on ouvre la lecture sans mot de passe, tout en réservant la publication. C'est le seul dispositif du réseau permettant cette asymétrie.

Ne pas activer set repeat on : un salon en mode répéteur perd les fonctions d'administration à distance propres au firmware répéteur.


A.7 Companion, terminal ou passerelle

Un companion ne relaie rien. region put est sans effet ; seul le défaut compte, et surtout le tag des canaux.

set name FR05-LIEU-LIBRE
set radio 869.618,62.5,8,8
set tx 22

set multi.acks 1

region default fr
region home fr-05-061-gap
region save

L'essentiel se règle dans l'application, sous Paramètres expérimentaux :

Réglage Valeur
Région par défaut fr
Taille d'en-tête 2 octets, si le parc régional est en 1.14 ou supérieur
Tag par canal la portée la plus juste pour chaque canal

Le tag des canaux est le levier principal de préservation du réseau. Voir la politique des canaux et des messages.

Ne pas publier la position d'un nœud personnel mobile. Voir R-EXP-02.


A.8 Tableau de synthèse

Profil loop.detect flood.max .unscoped grp.relay default home Région *
Classe 1, backbone strict 64 2 1 fr-pac commune activée
Classe 2, bassin moderate 32 5 1 fr-05 commune activée
Classe 3, confort local moderate 16 5 0 commune commune activée
Variante voisin selon classe selon classe selon classe selon classe selon classe commune activée
Variante frontalier selon classe selon classe 2 selon classe selon classe commune selon volume
Room server sans objet sans objet sans objet sans objet fr commune sans objet
Companion sans objet sans objet sans objet sans objet fr commune sans objet

La région par défaut, elle, descend avec la classe : fr en classe 0, puis fr-pac, fr-05, la commune. Elle ne règle que la portée des annonces du relais, jamais celle des réponses qu'il émet. Voir 3.7.

Toutes les classes portent le même arbre de régions : eu, fr, fr-pac, fr-05 et la commune, chacun ouvert à l'inondation. Ce qui distingue les classes, ce sont les plafonds et la qualité de service, jamais la liste des régions portées. Voir 3.5.

Tous les profils : dutycycle 10, flood.advert.interval 0 une fois intégrés au maillage, path.hash.mode 1 sur les répéteurs en 1.14 ou supérieur, position publiée pour l'infrastructure et jamais pour un nœud mobile.

A.9 Réserves

Les noms de commandes varient selon la version de firmware et le rôle de l'appareil. Vérifier avec help avant application.

gps advert prefs n'existe que sur les images compilées avec le support GPS. C'est cette commande, et non un réglage set, qui décide si un nœud publie sa position : none ne publie rien, prefs publie les coordonnées saisies par set lat et set lon, share publie la position du récepteur GPS en direct. Sur une image sans GPS, la commande est absente et les coordonnées saisies ne sont pas diffusées.

La région * se gère dans l'interface d'administration à distance, section de gestion des régions, plutôt qu'en ligne de commande. Vérifier son état après configuration.

flood.max.unscoped requiert le firmware 1.16 ou supérieur.

Sur path.hash.mode 1 : la valeur 1 correspond bien à un hash de 2 octets. Voir 2.4.

Ce réglage ne concerne que les adverts du répéteur. Un répéteur en 1.14 ou supérieur relaie les trois tailles.

Ne pas confondre avec le réglage du companion, qui décide de la taille des messages émis et se configure dans l'application, sous Paramètres expérimentaux. Celui-là ne doit passer en 2 octets que si le parc de répéteurs de la zone est à jour.

Chaque relais doit avoir un mot de passe d'administration distinct, changé à la mise en service. Voir R-SEC-06.

Les valeurs de classe sont des points de départ. Elles supposent un réseau en phase de constitution et n'ont pas encore été éprouvées sur un parc réel. Elles devront être réexaminées à la lumière des compteurs de stats-filter, et à mesure que le maillage se densifie. Voir R-PRO-08.

Les défauts d'usine ne conviennent pas. Un relais neuf sort à 50 % de rapport cyclique et avec password comme mot de passe d'administration. Voir le tableau des défauts en 4.2.

Le flasheur applique ces profils en un clic, sur chappe05.fr/flasher/. La table des classes y est unique : ajuster une classe se fait à un seul endroit, et cette annexe en est le reflet écrit.


Annexe B. Fiche de relais

À tenir à jour pour chaque nœud, et à conserver hors de l'appareil.

Nom                 FR05-
Rôle                repeater | room server | companion
Classe              1 backbone | 2 bassin | 3 confort local
Clé publique
Clé privée          → gestionnaire de mots de passe, jamais ici

Site                lieu-dit, commune
Position            lat / lon
Altitude            m
Hébergeur           nom, contact
Accès               permanent | saisonnier, conditions

Matériel            modèle du nœud
Antenne             modèle, gain annoncé, gain estimé
Câble               type, longueur
Alimentation        secteur | solaire, panneau W, capacité Ah

Étiquettes          region put
Portée par défaut   region default
Firmware            version, date de mise à jour

Mise en service     date
Liaisons validées   correspondant, distance, azimut, SNR, date
Interventions       date, nature

POL-CHP05-REL-2026-001 · version 1.8 · 15 septembre 2026 Und3r_1337, Chappe 05, réseau LoRa des Hautes-Alpes