Meshtastic : réseau maillé distribué open source hors réseau
(meshtastic.org)- Meshtastic est un réseau maillé open source qui connecte entre eux des appareils peu coûteux et basse consommation sans station de base ni Internet, ce qui le rend utile dans les situations dépourvues d’infrastructure de communication
- Grâce à une communication longue portée basée sur LoRa et au chiffrement AES-256, il permet d’échanger en pair à pair via un mesh privé même dans des environnements hors réseau
- Son écosystème continue de s’élargir avec plus de 8 appareils pris en charge par la communauté, plus de 149 contributeurs au code dans le monde, 26 régions LoRa et 39 langues prises en charge
- Des apps iOS, iPad et Mac OS, une app Android, un Web Client et un Python CLI/SDK permettent aux utilisateurs mobiles et aux développeurs d’accéder au même réseau
- En proposant plusieurs clients ainsi que des outils de documentation et de flash, il offre un parcours relativement clair, de la préparation du matériel à la configuration et au contrôle des appareils
Réseau maillé fonctionnant sans infrastructure
- Meshtastic est un réseau maillé distribué hors réseau basé sur l’open source
- Il a été conçu pour fonctionner sur des appareils peu coûteux et basse consommation, et fournit une connexion pair à pair sans station de base ni Internet
- Son principe central est : « No cell towers. No internet. Just pure peer-to-peer connectivity. »
Fonctions de communication
- Long Range : la technologie LoRa permet des communications sur plusieurs kilomètres
- Encrypted : le chiffrement AES-256 maintient les messages privés et sécurisés
- No Infrastructure : fonctionne sans station de base, sans WiFi et sans connexion Internet
Communauté et périmètre de prise en charge
- Voici la taille de l’écosystème mise en avant par Meshtastic
- Appareils pris en charge par la communauté : plus de 8
- Contributeurs au code dans le monde : plus de 149
- Régions LoRa : 26
- Langues prises en charge : 39
Clients d’accès et de contrôle
- Apple Apps : applications compatibles iOS, iPad et Mac OS pour gérer le réseau Meshtastic en déplacement
- Android App : permet de connecter et contrôler des appareils Meshtastic depuis Android
- Web Client : client web permettant d’accéder au réseau Meshtastic depuis plusieurs appareils
- Python CLI/SDK : fournit une interface en ligne de commande et un SDK pour les développeurs Python
Outils de démarrage et de configuration
- Get Started : renvoie vers la documentation de démarrage de Meshtastic
- Read the Docs : point d’entrée documentaire pour les utilisateurs ayant besoin de matériel
- Flasher : renvoie vers l’outil de flash du site Meshtastic
1 commentaires
Avis sur Hacker News
Il existe un projet lié : https://github.com/antirez/freakwan/
À noter que c’est moi qui l’ai créé. Le concept est similaire à Meshtastic, mais l’objectif était de mieux documenter et clarifier les choix au niveau du protocole, et de proposer une implémentation beaucoup plus facile à hacker et à modifier.
Si vous comprenez l’italien, il y a aussi une présentation ici : https://talks.codemotion.com/introduzione-alla-tecnologia-rf...
Je l’ai utilisé à Burning Man en 2023 : Burning Man est rude pour le matériel, et l’environnement radiofréquence y est étonnamment complexe.
Malgré tout, c’était stable et l’expérience utilisateur était bonne, donc ça m’a plutôt plu.
J’ai aussi créé un fork du firmware modifié qui affiche la position sur la playa.
https://github.com/exadeci/Meshtastic-device-bm
J’ai acheté pas mal de matériel LoRa/Meshtastic et j’ai cherché à savoir si je pouvais enregistrer ma position et l’afficher sur une carte, un peu comme avec APRS.
Mais cela semblait beaucoup plus compliqué que de configurer un APRS iGate et de voir ma position sur aprs.fi.
J’aimerais réessayer un jour, mais j’ai l’impression qu’il me faudrait un bon guide de démarrage pour me motiver.
Ça me rappelle l’expression selon laquelle il ne faut pas demander son âge à une femme, son salaire à un homme, ni le débit à un émetteur-récepteur LoRa.
Avec un débit de l’ordre de quelques dizaines de bits par seconde, en tenant compte des en-têtes de paquets, de la correction d’erreurs, etc., on arrive au mieux à quelques caractères par seconde, voire moins.
Mais avec une largeur de canal plus importante et un facteur d’étalement plus faible, on peut monter jusqu’à 62,5 kbps. Je ne sais pas exactement quel mode Meshtastic utilise par défaut, mais il semble y avoir 8 préréglages.
Je sais que c’est un proverbe, et je ne blâme pas le commentaire parent.
Avant de trop s’enthousiasmer en voyant ça, il faut préciser que l’utilisation d’antennes omnidirectionnelles dans un système radio maillé half-duplex / TDD fait partie des approches les moins efficaces pour créer un réseau IP sans fil à l’échelle d’un village ou d’une petite ville.
Quand des antennes omnidirectionnelles communiquent entre elles, elles sont aussi des collecteurs de bruit à 360° : elles captent donc non seulement le correspondant qui émet ou reçoit à l’instant donné, mais aussi le trafic de nœuds mesh un peu plus éloignés, ou encore des signaux d’occupation de créneaux temporels.
De même, lorsqu’on envoie un paquet à un nœud donné, 99 % du signal RF se propage dans des directions azimutales où il n’est ni voulu ni nécessaire, et relève le plancher de bruit des nœuds voisins équipés de matériel similaire.
Si vous voulez faire ce genre de chose avec un budget très serré, je conseillerais plutôt de regarder les systèmes radio point à point 802.11ac/ax conçus pour établir un pont Ethernet L2 entre deux sites. Ils reposent surtout sur des antennes paraboliques, et il existe aussi aujourd’hui des équipements de pont point à point 24 GHz ou 60 GHz bon marché, à condition d’avoir une ligne de visée et une zone de Fresnel dégagées.
Pour les équipements de type LoRa aussi, si vous avez besoin d’un lien fixe entre deux points dans des bandes nettement plus basses que 2,4 GHz ou 5 GHz, proches du VHF/UHF, généralement sous 1300 MHz, il vaut bien mieux pouvoir orienter des antennes Yagi-Uda ou des dipôles l’une vers l’autre plutôt que de placer face à face deux antennes omnidirectionnelles.
Si les nœuds ne bougent pas et que leurs positions relatives ne changent pas sur un site, je recommande vivement d’envisager pratiquement n’importe quoi d’autre qu’une liaison omnidirectionnelle entre nœuds, afin d’obtenir une meilleure stabilité de lien et un meilleur débit de données.
Exemple arbitraire trouvé en 5 secondes de recherche, regardez le diagramme de gain directionnel : https://www.elprocus.com/design-of-yagi-uda-antenna/
L’une des choses intéressantes faites aujourd’hui avec les chipsets et modules RF de type LoRa est ExpressLRS. Il implémente un pont série UART entre une radiocommande et le contrôleur de vol embarqué d’un UAV, d’un bateau sans pilote, d’un véhicule terrestre, etc. C’est une évolution du même concept général que TBS Crossfire pour le RC.
https://www.google.com/search?client=firefox-b-d&q=expresslr...
Meshtastic, c’est de la messagerie texte avec des canaux, avec l’envoi de données de capteurs pour certains nœuds et des fonctions de données de position.
Son objectif n’est pas de fournir du réseau TCP/IP.
Créer un « réseau IP sans fil à l’échelle d’un village ou d’une petite ville » n’a jamais été l’objectif. Cela permet seulement de créer un réseau de messagerie texte simple, avec une portée plutôt bonne et une faible bande passante.
Il semble vraiment y avoir beaucoup de possibilités de contournement des FAI.
Mais dans un système aussi lent dans le domaine temporel, avec un débit aussi faible que LoRa, ce n’est pas un concept facile à appliquer si l’on tient compte de la mobilité.
Il existe une vidéo où un Britannique très enthousiaste utilise réellement l’app Android et montre notamment la fonction traceroute : https://www.youtube.com/watch?v=LmGr1pGJ4sM
Il est indiqué que cela ne passe à l’échelle que jusqu’à 80 nœuds ; donc, à moins d’en créer un soi-même, il semble difficile de trouver un mesh auquel participer, et cela paraît limité à des gens qui se connaissent.
Je veux un réseau mesh mondial qui remplace Internet.
Une recherche du type « Taco Express est-il ouvert maintenant ? » ne devrait pas consister à résoudre un nom globalement unique vers une adresse globalement unique, puis à interroger un serveur lointain, lequel redemande ensuite votre position pour savoir de quel Taco Express il s’agit. C’est trop fragile.
À la place, la recherche devrait se propager le long des meshes actuellement joignables jusqu’à rencontrer un nœud faisant autorité sur les horaires de Taco Express, probablement un Raspberry Pi situé chez Taco Express. Comme la cible de la requête est locale, la structure permet d’obtenir un résultat local.
La question de relier ces meshes entre eux est elle aussi intéressante, mais elle ne sera pas très utile tant qu’il n’existera pas un écosystème d’apps qui ne dépende pas d’adresses stables pour chaque nœud.
Ce qu’il faut, ce n’est pas l’adressage de serveurs et le modèle requête/réponse, mais un adressage contextuel et du publish/subscribe. Cela demande un changement conceptuel assez important et, malheureusement, je ne pense pas qu’il se produira avant qu’une catastrophe ne rende ce besoin évident.
Par rapport à une liaison fibre de 1000 km à 10 000 Gbit/s qui coûte des millions de dollars à déployer, la contribution d’un particulier est quasiment nulle. Cela dit, rien n’empêche quelqu’un d’obtenir des ports dans deux datacenters ou points d’échange Internet, de les relier d’une manière ou d’une autre, puis de facturer le transport du trafic entre les deux.
En Europe, un devis pour du transport 10 Gbit/s sur 650 km était d’environ 800 dollars par mois, donc il est potentiellement possible de gagner cet ordre de grandeur.
J’ai travaillé comme chef de produit sur un système de suivi du personnel basé sur un mesh pour les chantiers, et nous utilisions sous licence la technologie Wirepas dans notre solution. J’ai beaucoup appris, au passage, sur les subtilités du mesh.
Il existe des compromis difficiles entre découvrabilité, latence, disponibilité et sécurité.
N’existe-t-il pas déjà des réseaux mesh open source sur Android ? Basés sur le Wi-Fi ou le Bluetooth ?
Il me semble avoir entendu dire que des réseaux mesh avaient été utilisés lors de manifestations il y a quelques années ; il n’y a donc toujours rien de vraiment utilisable ?
Yggdrasil permet d’utiliser des applications TCP/IP au-dessus de son propre réseau mesh, mais ne fournit pas en soi de fonctionnalités destinées à l’utilisateur final.
Manyverse peut utiliser le Wi-Fi pour du réseautage social décentralisé : https://www.manyver.se/
Le backend est actuellement en cours de réécriture, avec un abandon de Secure Scuttlebutt au profit d’un protocole maison actuellement appelé PPPPP.
Reticulum/Sideband fournit un système de messagerie P2P au-dessus du Wi-Fi ou d’autres supports : https://github.com/markqvist/sideband
Le service a été arrêté en 2018 et n’était pas open source.
Je voulais participer au mouvement Decentralized Web annoncé par TimBL, mais il s’est enlisé.
Je m’étais inscrit pour aller à l’« offline camp » dans l’Oregon, mais il a été annulé à cause d’un grand incendie de forêt, probablement lié au Camp Fire. Au final, j’ai campé au bord d’une rivière.
J’ai dépensé 1 million de dollars sur plus de 10 ans pour essayer de créer un logiciel communautaire open source pouvant tourner sur n’importe quel serveur généraliste, dans des avions, sur des navires de croisière comme ceux de Norwegian Cruise Lines, dans des villages ruraux, etc.
Je veux aider l’éducation locale, y compris celle des filles afghanes. Je suis aussi en contact avec RohingyaProject.com et d’autres pour aider les réfugiés apatrides.
Ces réseaux mesh existent déjà, et le matériel des téléphones est excellent. Ce qui manque, c’est un excellent logiciel backend qui permette aux gens de quitter les Big Tech, c’est-à-dire Twitter ou Facebook, comme le Web a permis de quitter AOL et MSN, et comme Wordpress a permis de dépasser le Web 1.0.
Si vous voulez participer, ou si vous connaissez un mouvement « decentralized web » ou « indieweb » réellement actif, dites-le ci-dessous.
https://qbix.com/blog/2021/01/15/open-source-communities/
Article récent sur la plateforme :
https://www.laweekly.com/restoring-healthy-communities/
https://www.robots-everywhere.com/cellsol/ Nous avons créé cela vers 2020, et cela prend en charge à la fois les paquets Meshtastic et disasterradio.