Le mesh · Le mesh sans réseau · 07
Pourquoi ta position ne bouge pas
Le GPS accroche, les satellites sont là, la position s'affiche — et le point reste immobile quand tu marches. Ce n'est pas le GPS. Voici le vrai coupable.
C’est le piège le plus déroutant de Meshtastic, parce que tout a l’air de fonctionner.
Le GPS accroche. Les satellites sont là. La position s’affiche, avec sept décimales. Le module est configuré, connecté, en pleine forme.
Et le point reste rigoureusement immobile quand tu te déplaces.
J’ai perdu plusieurs soirées là-dessus, à soupçonner l’antenne GPS, le firmware, le câble, la vue du ciel. Le coupable était ailleurs, et il est parfaitement documenté — simplement personne n’en parle.
Ce n’est pas le GPS
Le firmware tronque volontairement les coordonnées avant de les émettre.
Le réglage s’appelle position_precision. Il ne se trouve ni dans les réglages
GPS, ni dans les réglages du module : il appartient au canal. C’est déjà une
raison suffisante pour ne jamais le trouver quand on le cherche.
Sa valeur par défaut sur le canal public est 13 bits.
Ce que veulent dire 13 bits
Le firmware garde les treize bits de poids fort de la coordonnée et jette le reste, puis recentre la valeur sur le milieu de la cellule obtenue.
Traduit en distances : toutes les positions d’un carré d’environ 5,8 km de côté sont ramenées à une seule et même coordonnée, au centre du carré.
Tu peux marcher deux kilomètres. Traverser la ville. Le chiffre émis ne changera pas d’un iota, parce que tu es toujours dans la même case.
Voici la table complète :
| Bits | Incertitude | Bits | Incertitude |
|---|---|---|---|
| 10 | ±23,3 km | 16 | ±364 m |
| 11 | ±11,7 km | 17 | ±182 m |
| 12 | ±5,8 km | 18 | ±91 m |
| 13 | ±2,9 km | 19 | ±45 m |
| 14 | ±1,5 km | 32 | exacte |
| 15 | ±729 m | 0 | aucune position émise |
Comment le vérifier soi-même
Si tu as accès aux paquets bruts, la signature est imparable. J’ai vérifié sur
mes propres relevés : dix paquets de position, sur plusieurs jours, tous avec la
même coordonnée exacte — 43.5421184, 1.5990784.
Et cette valeur n’est pas quelconque. Elle vaut exactement (830 << 19) + 2¹⁸
en représentation entière : le centre arithmétique d’une cellule de 13 bits. Ce
n’est pas une position, c’est une case.
Si tu vois la même coordonnée revenir indéfiniment, ne cherche pas plus loin.
Le deuxième coupable
Un autre réglage aggrave souvent le premier, et celui-là se trouve bien dans les
réglages de position : position_broadcast_secs, l’intervalle entre deux
diffusions.
Sa valeur par défaut est fréquemment 3600 secondes.
Une position par heure, arrondie à trois kilomètres près. À ce stade, il n’y a plus rien à voir, et aucun réglage GPS au monde n’y changera quoi que ce soit.
Le réglage qui marche
Pour un essai de suivi, passe la précision à 16 bits. C’est ±364 m : largement assez fin pour voir une trace se dessiner quand tu marches.
Pourquoi pas 32, la précision exacte ? Parce que sur le canal public par défaut,
ta position exacte partirait en clair, lisible par n’importe quel module à
portée. 32 bits a du sens sur un canal privé entre gens de confiance. Pas sur
LongFast.
Descends aussi l’intervalle à 60 secondes le temps de l’essai — puis remets-le, pour la batterie et pour le temps d’antenne que tu confisques aux autres.
Et surtout : applique le réglage sur les deux modules. Chacun tronque ses propres positions avant de les envoyer. Régler seulement le récepteur ne sert à rien.
Le résultat
Voici ce que ça donne, relevé sur mes modules à deux minutes d’intervalle :
05:54:13 43.542118, 1.599078 précision 13
05:56:08 43.545395, 1.622016 précision 16
Presque deux kilomètres d’écart entre le centre de l’ancienne cellule et la position réelle. Le module n’avait pas bougé — c’est le mensonge qui a cessé.
Pourquoi ce comportement existe
Ce n’est pas une bêtise de conception, et ça vaut la peine de le comprendre.
Le canal par défaut est public. Tout ce qui y transite est lisible par n’importe qui à portée. Diffuser sa position exacte en clair, par défaut, sur un canal que tout le monde partage, serait un défaut de conception bien plus grave que celui qu’on reproche ici.
Meshtastic choisit donc de te localiser approximativement tant que tu n’as pas dit explicitement le contraire. C’est le bon choix. Il manque juste quelque chose dans l’interface pour te dire pourquoi ton point ne bouge pas.
La suite
Dernier article de la série : le guide de démarrage, dans l’ordre qui marche, et la liste des pièges qui font perdre une soirée à qui les ignore.
D’où viennent ces informations
Les valeurs techniques de cet article sont vérifiées à la source. Quand une affirmation vient d’un relevé sur mon propre matériel, c’est indiqué — elle vaut pour ma configuration, pas forcément pour la tienne.
- Documentation officiellePrécision de position — documentation des canaux — table des bits et de l’incertitude
- Code sourceChannels.cpp — firmware Meshtastic — position_precision = 13 par défaut
- Code sourceDefault.h — firmware Meshtastic — intervalles d’usine : 3600 s de diffusion, 120 s de GPS
- Relevé personnelRelevés sur mes deux Heltec — dix paquets, une seule coordonnée, avant et après correction