Meshtastic i les lleis que l'emparen
EA3JAK
Meshtastic és un projecte que s’ha fet famós per oferir, amb programari lliure, un sistema de comunicació per ràdio alternatiu a les xarxes de comunicació comercials. Té certes semblances a APRS. Com pot ser que un sistema així sigui d’ús lliure i no sigui obligat a cap llicència o permís? Vull repassar les condicions, les trampes i les il·lusions que el fan possible.
El maquinari
El sistema de ràdio que fa servir Meshtastic és un sistema privat, patentat, anomenat LoRa, propietat de l’empresa Semtech, qui té l’únic dret de fabricar les ràdios. És un sistema privat però hi podem enviar els missatges que vulguem amb els nodes que vulguem amb el protocol de comunicació que vulguem. LoRa és la capa física (PHY) que no hem de confondre amb LoRaWAN, un dels protocols per muntar aplicacions sobre LoRa. El sistema LoRa té diverses propietats que el fan molt interessant.
- Mòduls complets molt barats (10€), operats fàcilment per SPI amb un
microcontrolador
- Transceptor complet, sovint amb commutador TX/RX integrat
- Antena de 1/4 d’ona soldada o 50 ohms IPEX
- RF des de 100MHz a 3 Ghz.
- Alimentació de 3,3V
- Potència de sortida de fins a 27dBm
- Molta flexibilitat en velocitats de transferència, de 5,5 kbps a 300 kbps.
- Paquetització, amb mida màxima de paquet de 255 bytes
- Preàmbul i paraula de sincronia per estalvi d’energia. Certs mòduls de receptor no s’activen fins que es detecta el preàmbul i la paraula de sincronia.
- Codificació redundant i CRC automàtics.
- Resistència d’interferència per senyals de banda estreta gràcies a escampat de freqüència (Chirp Spread Spectrum)
- Ample de banda d’escampament de fins a 500 kHz
- Possibilitat de modular també en FSK i OOK, no només LoRa. Per això es poden fer servir per rebre missatges de sondes metereològiques també.
- Alguns mòduls més nous ofereixen una nova tècnica de Semtech per evitar interferències: LR-FHSS.
Molts fabricants han ajuntat microcontroladors i mòduls en un sol element, bé de preu, i així ho anuncien a Meshtastic. Els que he provat jo son:
- Heltec WiFi LoRa 32 v3, uns 20€. Amb un ESP32S3 (WiFi + Bluetooth + BLE). Ràdio LoRa SX1262 que pot fer 22 dBm.
- RAK 4631, uns 30€. Amb un MCU nrf52840 (Bluetooth + BLE). Ràdio LoRa SX1262 que pot fer 22 dBm.
Els dispositius aquests de Meshtastic solen tenir una interfície d’usuari (pantalla i botons) molt limitada i l’ús típic és a través d’una aplicació de mòbil que es comunica per Bluetooth, WiFi o port sèrie amb els nodes Meshtastic. A l’aplicació hi ha mapa, configuració del node, missatgeria, etc.
Meshtastic és un programari i protocol de comunicació amb ràdios LoRa però aquestes ràdios també es fan servir per fer APRS sobre LoRa, Reticulum, comunicació de telemetria amb satèl·lits (TinyGSS), LoRaWAN, CoAP, o moltes altres aplicacions. Hi podem transmetre el que vulguem als paquets.
Les lleis
Està molt bé tenir un transceptor de ràdio que pot transmetre 27 dBm barat i de baix consum, i els radioaficionats el podem fer servir a les nostres bandes. Però els que no siguin radioaficionats la poden fer servir?
A la Unió Europea hi ha una banda que els de Meshtastic aprofiten per arribar a transmetre 20 dBm. Es tracta de la banda P del segment ISM (Industrial, Scientific and Medical) regulada per a dispositius de curt abast (SRD, Short Range Devices). És una regulació que és pensada en el context de l’IoT (Internet of Things). La banda P és regulada per l’ETSI a EN 300 220-2, i les condicions d’accés són a EN 300 220-1:
- De 869,4 MHz a 869,65 MHz, 250 kHz d’amplada.
- Accés de canal ALOHA, comprovant mínimament que ningú transmeti abans de transmetre.
- Ocupació màxima del canal d’un 10% (cicle de treball, duty cycle), calculat per hora.
- Potència màxima de transmissió de 500mW (27dBm) e.r.p., o sigui, definit en la situació que l’antena és un dipol ideal.
- Durada màxima de la transmissió: 1s (Pàgina 58 de EN 300 220-1)
- Durada màxima del diàleg d’una comunicació: 4s
El programa de Meshastic, de codi obert i que es pot canviar, té unes configuracions per defecte. Si triem que som ràdioaficionats el programa no limitarà la potència ni el cicle de treball però ens impedirà fer servir xifrat de comunicacions. En canvi, si triem que no som ràdiofiacionats, intentarà imposar la normativa que pertany al canal. En el cas de la UE, les condicions que hem mencionat més amunt.
El límit de potència no es pot imposar fàcilment - per exemple, si una persona fa servir una antena que té un guany de 5 dBd llavors no hauria de poder triar a la ràdio 27 dBm de potència de transmissió sino com a molt 22 dBm, per poder respectar el límit de 27 dBm e.r.p (effective radiated power).
El codi font de Meshtastic, quan fa servir aquesta banda P, fa complir el cicle de treball del 10%, la del límit de potència i també monitoritza el canal abans d’iniciar cap transmissió. Però el que no fa complir (que jo sàpiga) és la condició de limitar les transmissions a 1s.
A la configuració per defecte de Meshtastic (que es fa servir en els desplegaments inicials) de LongFast:
- 869,525 MHz, el centre de la banda P * SF11, codificació 4/5
- BW 250 kHz, tota l’amplada de la banda P. Per tant un sol canal usable.
- Bitrate 1 kbps
Si calculem l’ocupació de canal en aquestes condicions veurem que enviar un paquet de 255 bytes ocupa 2,5 segons. Això supera el llindar de màxim temps de transmissió d’un segon. Per tant, Meshtastic hauria d’imposar una nova limitació que els paquets no poguessin passar de 90 bytes en aquestes condicions.
El desplegament pràctic de Meshtastic
Meshtastic s’assembla molt a APRS. En el comportament per defecte qualsevol node farà de repetidor, podrà enviar i rebre missatges, i enviarà telemetria.
L’algorisme de repetició funciona de manera que els nodes repetiran els missatges sentits després d’esperar-se un temps a l’atzar. Si mentres s’espera un node sent una repetició (perquè un altre node ha esperat un temps curt) aquest ja no el repetirà. Els missatges també porten un comptador, establert en origen, de quants repetidors volem que el repeteixin. Per defecte hi ha establert 3 repetidors, amb un màxim de 7. Cada repetició decrementa el comptador per fer complir el límit.
No hi ha sistema d’entrega de missatges garantida. Simplement es distingeixen dues situacions:
- Sentim que algú repeteix el nostre missatge. Amb això sabem que el missatge ha arribat a un node repetidor, com a mínim. El node incial fa fins a tres enviaments fins a rebre una repetició o confirmació.
- En el cas de missatgeria privada el node destinatari envia confirmació de rebuda.
- L’usuari és el que decideix si reenvia el missatge, per exemple si no rep repetició o confirmació al cap d’una estona.
Ja ens podem imaginar que si en el canal compartit els missatges duren fins a 2,5 segons, els nodes envien telemetria (posició, temperatura, bateria, presència, etc.) regularment i a més hi ha un sistema de missatgeria, el canal pot quedar saturat ben aviat. La saturació del canal sense entrega garantida fa que la comunicació en Meshtastic pugui ser molt incòmode si no és pas que som en un canal una mica privat.
El desplegament dels nodes sense límit (qualsevol s’hi apunta) ni gaire coordinació, la velocitat de transferència petita, el canal compartit, la falta d’entrega de missatges garantida, el límit de cicle de treball de 10%, tot fa que un canal saturat doni una experiència de comunicació molt pobra.
Diversos grups s’han establert intentant cobrir territoris amb l’objectiu de formar una xarxa pràctica de comunicació, instal·lant nodes a punts alts. Els nodes a punts alts fan que els seus missatges ocupin el canal molt sovint. En certs llocs les organitzacions determinen que el canal està saturat i demanen una commutació a un canal diferent de velocitat de transferència més alta amb la contrapartida de la reducció d’abast de ràdio i la dificultat de coordinar els canvis de configuració de tots els participants.
En definitiva, Meshtastic com a mínim ha servit perquè s’hagin produït dispositius barats programables per a jugar amb els mòduls de ràdio LoRa però el desplegament d’una xarxa de llarg abast es pot trobar amb moltes dificultats que xoquen amb la propaganda d’una xarxa de comunicació d’emergències, perquè en el moment de l’emergència el canal pot ser saturat de missatges que no són d’emergència i la comunicació acabar essent molt poc fiable. Si a més hi afegim que haurien d’imposar el límit d’un segon per missatge això imposaria encara més dificultats a la comunicació que, per ara, no té missatges de més llargada d’un paquet.