El proyecto Meshtastic desarrolla una plataforma de comunicación abierta para crear una red de mensajería descentralizada autosuficiente, donde cada punto de la red se conecta a través de puntos vecinos, sin utilizar enrutadores centralizados. Se emplean transceptores basados en el protocolo LoRa para transmitir señales, permitiendo enviar datos en el espectro de frecuencias no licenciadas a velocidades de unos pocos kilobits por segundo, a distancias que van desde decenas hasta cientos de kilómetros (los usuarios de Meshtastic han establecido un récord de 254 km).
El proyecto puede ser utilizado para establecer comunicación en áreas de difícil acceso, durante operaciones de búsqueda o realizando deportes (como el parapente) en regiones sin infraestructura o en condiciones de mala cobertura por parte de las operadoras móviles. En ciertos lugares, los participantes pueden colocar transceptores autónomos que retransmiten mensajes y que son alimentados por energía solar, mientras que los propios participantes pueden contar con dispositivos LoRa locales que transmiten señales y son controlados a través de la conexión a smartphones mediante el protocolo Bluetooth.

Cada participante de la red puede enviar y visualizar mensajes de texto, así como utilizar herramientas de geolocalización basadas en GPS para encontrar a otros participantes. Gracias a la construcción de una red en malla, los mensajes se reenvían en cadena, lo que permite a cada integrante del grupo recibir mensajes del participante más distante, independientemente de la posibilidad de establecer un canal de comunicación directo con él. Es posible enviar tanto mensajes de difusión como mensajes dirigidos a un participante específico. Los mensajes transmitidos se cifran utilizando claves PSK (clave precompartida) seleccionadas previamente y el algoritmo AES256.
El protocolo de transmisión es bastante simple: cada paquete se envía en modo de difusión, y a continuación se analiza el canal para detectar la llegada de una confirmación de recepción por parte de uno de los participantes. Si no se recibe confirmación, se realizan tres intentos adicionales de envío tras un tiempo de espera determinado. Cuando se recibe un paquete, se verifica si este paquete ya había llegado anteriormente; si es así, se ignora, y si no, se retransmite a otros participantes. En cada transmisión, se reduce el contador de saltos en el paquete, y al llegar a cero, se detiene la retransmisión del paquete.
El código del firmware para los transceptores está escrito en lenguajes C/C++ y se distribuye bajo la licencia GPLv3. Además, se ofrecen aplicaciones móviles para trabajar con la red mesh desde smartphones en plataformas Android e iOS, así como una interfaz web y una biblioteca de Python para la automatización del envío y recepción de mensajes. Los firmwares están preparados para diferentes placas basadas en los chips ESP32, nRF52 y RP2040, como el RAK Meshtastic Start Kit (RAK4631 nRF52840, RAK11200 ESP32, RAK11310 RP2040), Station G1, LILYGO LoRa T3-S3, Nano G1, HELTEC LoRa V3 y Raspberry Pi Pico con módulo SX1262.



Fuente: opennet.ru
