Il progetto Meshtastic sviluppa una piattaforma di comunicazione aperta per creare una rete decentralizzata di messaggistica autosufficiente, in cui ogni punto della rete è collegato tramite punti vicini, senza l'uso di router centralizzati. Per la trasmissione del segnale vengono utilizzati trasmettitori basati sul protocollo LoRa, che consentono di trasmettere dati in bande di frequenza non licenziate a velocità di alcuni kilobit al secondo su distanze di decine o addirittura centinaia di chilometri (gli utenti di Meshtastic hanno stabilito un record di 254 km).
Il progetto può essere utilizzato per organizzare comunicazioni in aree remote, durante operazioni di ricerca o praticando sport (ad esempio, il parapendio) in luoghi privi di infrastrutture o in condizioni di scarsa copertura da parte degli operatori di telefonia mobile. In alcune aree, i partecipanti possono posizionare trasmettitori autonomi che ritrasmettono messaggi alimentati da pannelli solari, mentre gli stessi partecipanti possono avere dispositivi LoRa locali che trasmettono segnali e sono controllati tramite connessione a smartphone tramite il protocollo Bluetooth.

Ogni partecipante alla rete può inviare e visualizzare messaggi di testo, nonché utilizzare strumenti di geolocalizzazione basati su GPS per trovare altri partecipanti. Grazie alla costruzione di una rete mesh, i messaggi vengono inoltrati a catena, consentendo a ciascuno nel gruppo di ricevere messaggi dal partecipante più lontano, indipendentemente dalla capacità di stabilire un canale di comunicazione diretto con lui. È possibile inviare messaggi sia broadcast che indirizzati a un partecipante specifico. I messaggi trasmessi sono criptati utilizzando chiavi PSK (pre-shared key) preselezionate e l'algoritmo AES256.
Il protocollo di trasmissione è abbastanza semplice: ogni pacchetto viene inviato in modalità broadcast, dopo di che l'etere viene analizzato per ricevere la conferma di ricezione da uno dei partecipanti. Se la conferma non viene ricevuta, vengono effettuati ulteriori tre tentativi di invio dopo un certo timeout. Alla ricezione di un pacchetto, viene controllato se il pacchetto era stato ricevuto in precedenza, e se sì viene ignorato, altrimenti viene ritrasmesso agli altri partecipanti. Ad ogni trasmissione, il contatore degli hop nel pacchetto diminuisce e, una volta raggiunto zero, la ritrasmissione del pacchetto si interrompe.
Il codice firmware per i trasmettitori è scritto in linguaggi C/C++ e distribuito sotto licenza GPLv3. Sono inoltre fornite applicazioni mobili per lavorare con la rete mesh su smartphone con piattaforme Android e iOS, così come un'interfaccia web e una libreria Python per automatizzare l'invio e la ricezione dei messaggi. I firmware sono preparati per diverse schede basate su chip ESP32, nRF52 e RP2040, come RAK Meshtastic Start Kit (RAK4631 nRF52840, RAK11200 ESP32, RAK11310 RP2040), Station G1, LILYGO LoRa T3-S3, Nano G1, HELTEC LoRa V3 e Raspberry Pi Pico con modulo SX1262.



Fonte: opennet.ru
