Le projet Meshtastic développe une plateforme de communication ouverte pour établir un réseau de transmission de messages décentralisé et autonome, où chaque point du réseau est connecté à travers des points voisins, sans utiliser de routeurs centralisés. Des émetteurs-récepteurs basés sur le protocole LoRa sont utilisés pour la transmission du signal, permettant de transmettre des données dans une bande de fréquence non autorisée à des vitesses de quelques kilobits par seconde sur des distances de dizaines ou même de centaines de kilomètres (les utilisateurs de Meshtastic ont établi un record de 254 km).
Le projet peut être utilisé pour organiser des communications dans des zones difficiles d'accès, lors de missions de recherche ou pour la pratique de sports (par exemple, le parapente) dans des endroits sans infrastructure ou dans des conditions de mauvaise couverture par les opérateurs de téléphonie mobile. À certains endroits, les participants peuvent installer des émetteurs-récepteurs autonomes, relayant des messages et alimentés par des panneaux solaires, et les participants eux-mêmes peuvent disposer d'appareils LoRa locaux, transmettant des signaux et contrôlés via une connexion à des smartphones par le protocole Bluetooth.

Chaque membre du réseau peut envoyer et consulter des messages textuels, ainsi qu'utiliser des moyens de géolocalisation basés sur le GPS pour rechercher d'autres participants. Grâce à la construction du réseau maillé, les messages sont relayés en chaîne, permettant à chaque membre du groupe de recevoir des messages du participant le plus éloigné, indépendamment de la possibilité d'établir un canal de communication direct avec lui. Il est possible d'envoyer des messages à la fois en mode broadcast et à des destinataires spécifiques. Les messages transmis sont cryptés à l'aide de clés PSK (clé pré-partagée) choisies à l'avance et de l'algorithme AES256.
Le protocole de transmission est assez simple : chaque paquet est envoyé en mode广播, après quoi l'air est analysé pour vérifier la réception d'une confirmation par un des participants. Si aucune confirmation n'est reçue, trois nouvelles tentatives d'envoi sont effectuées après un certain délai. Lors de la réception d'un paquet, une vérification est effectuée pour savoir si ce paquet a déjà été reçu dans le passé, et si oui, il est ignoré ; sinon, il est retransmis aux autres participants. À chaque transmission, le compteur de hops dans le paquet diminue et, lorsqu'il atteint zéro, la retransmission du paquet s'arrête.
Le code du firmware pour les émetteurs-récepteurs est écrit en langages C/C++ et est distribué sous licence GPLv3. En outre, des applications mobiles pour travailler avec le réseau mesh sont fournies pour les smartphones sur les plateformes Android et iOS, ainsi qu'une interface web et une bibliothèque Python pour l'automatisation de l'envoi et de la réception de messages. Les firmwares sont préparés pour diverses cartes basées sur les puces ESP32, nRF52 et RP2040, telles que le RAK Meshtastic Start Kit (RAK4631 nRF52840, RAK11200 ESP32, RAK11310 RP2040), le Station G1, le LILYGO LoRa T3-S3, le Nano G1, le HELTEC LoRa V3 et le Raspberry Pi Pico avec le module SX1262.



Source : opennet.ru
