Meshtastic: red mesh descentralizada open source fuera de la red
(meshtastic.org)- Meshtastic es una red mesh open source en la que dispositivos de bajo consumo y bajo costo se conectan entre sí sin estaciones base ni internet, útil en situaciones donde no hay infraestructura de comunicación
- Usa comunicación de largo alcance basada en LoRa y cifrado AES-256 para enviar y recibir mensajes privados peer-to-peer incluso en entornos fuera de la red
- El alcance de su ecosistema se está ampliando, con más de 8 dispositivos respaldados por la comunidad, más de 149 contribuidores de código en todo el mundo, 26 regiones LoRa y 39 idiomas compatibles
- Mediante apps para iOS, iPad y Mac OS, app para Android, Web Client y Python CLI/SDK, usuarios móviles y desarrolladores pueden acceder a la misma red
- Ofrece varios clientes, documentación y una herramienta de flasheo, por lo que la ruta de entrada desde la preparación del hardware hasta la configuración y el control de dispositivos es relativamente clara
Red mesh que funciona sin infraestructura
- Meshtastic es una red mesh descentralizada fuera de la red basada en open source
- Está diseñada para ejecutarse en dispositivos económicos y de bajo consumo, y ofrece conectividad peer-to-peer sin estaciones base ni internet
- Su premisa central es: “No cell towers. No internet. Just pure peer-to-peer connectivity.”
Funciones de comunicación
- Long Range: permite comunicaciones con alcance de varios kilómetros mediante tecnología LoRa
- Encrypted: mantiene los mensajes privados y seguros mediante cifrado AES-256
- No Infrastructure: funciona sin estaciones base, WiFi ni conexión a internet
Comunidad y alcance de soporte
- El tamaño del ecosistema que presenta Meshtastic es el siguiente
- Dispositivos respaldados por la comunidad: más de 8
- Contribuidores de código en todo el mundo: más de 149
- Regiones LoRa: 26
- Idiomas compatibles: 39
Clientes para acceso y control
- Apple Apps: apps compatibles con iOS, iPad y Mac OS para administrar redes Meshtastic mientras te desplazas
- Android App: permite conectar y controlar dispositivos Meshtastic desde la app de Android
- Web Client: cliente basado en web que permite acceder a redes Meshtastic desde varios dispositivos
- Python CLI/SDK: ofrece una interfaz de línea de comandos y un SDK para desarrolladores Python
Herramientas para empezar y configurar
- Get Started: enlaza a la documentación para empezar con Meshtastic
- Read the Docs: punto de entrada a la documentación para usuarios que necesitan hardware
- Flasher: enlaza a la herramienta de flasheo del sitio de Meshtastic
1 comentarios
Comentarios en Hacker News
Hay un proyecto relacionado: https://github.com/antirez/freakwan/
Por cierto, lo hice yo. El concepto es similar a Meshtastic, pero el objetivo fue documentar y dejar más claras las decisiones a nivel de protocolo, y crear una implementación mucho más fácil de hackear y modificar
Si entiendes italiano, también hay una presentación aquí: https://talks.codemotion.com/introduzione-alla-tecnologia-rf...
Lo probé en Burning Man 2023, y Burning Man es duro con el equipo y el entorno de radiofrecuencia también es sorprendentemente complejo
Aun así, fue estable y la experiencia de usuario fue buena, así que me gustó bastante
También hice un fork de firmware modificado para mostrar la ubicación en la playa
https://github.com/exadeci/Meshtastic-device-bm
Compré un montón de equipo LoRa/Meshtastic e investigué si podría registrar mi ubicación y mostrarla en un mapa de una forma similar a APRS
Pero pareció mucho más difícil que configurar un APRS iGate y ver mi ubicación en aprs.fi
Quiero intentarlo de nuevo algún día, pero siento que necesito una buena guía de inicio que me motive
Me recuerda al dicho de no preguntar la edad a una mujer, el sueldo a un hombre ni el rendimiento a un transceptor LoRa
Si estás en el rango de decenas de bits por segundo, una vez que consideras los encabezados de paquetes, la corrección de errores y demás, con suerte solo obtendrás unos pocos caracteres por segundo, o incluso menos
Pero usando un ancho de canal mayor y un factor de expansión bajo puede subir hasta 62.5 kbps. No sé exactamente qué modo usa Meshtastic por defecto, pero parece que hay 8 preajustes
Sé que es un dicho, y no estoy culpando al comentario original
Antes de emocionarse demasiado con esto, vale la pena señalar que usar un sistema de radio mallado semidúplex/TDD con antenas omnidireccionales está entre las formas menos eficientes de construir una red IP inalámbrica a escala de pueblo o ciudad pequeña
Cuando las antenas omnidireccionales se comunican entre sí, también actúan como recolectores de ruido de 360 grados, así que terminan recibiendo no solo a la contraparte con la que están transmitiendo en ese momento, sino también tráfico o señales de ocupación de ranuras de tiempo de nodos mesh un poco más lejanos
Del mismo modo, al enviar paquetes a un nodo específico, el 99% de la señal RF se dispersa en direcciones de azimut que no se quieren ni se necesitan, elevando el piso de ruido en nodos cercanos con configuraciones de hardware similares
Si alguien quiere hacer algo así con un presupuesto muy ajustado, recomendaría más bien revisar sistemas inalámbricos punto a punto 802.11ac/ax diseñados para crear un puente Ethernet L2 entre dos puntos. Suelen estar basados en antenas reflectoras parabólicas, y últimamente también hay equipos baratos de puente punto a punto de 24GHz y 60GHz, asumiendo línea de vista y una zona de Fresnel despejada
El equipo tipo LoRa también opera en bandas mucho más bajas que 2.4GHz o 5GHz, parecidas a VHF/UHF y generalmente por debajo de 1300MHz, y si se necesita un enlace fijo entre dos puntos, es mucho mejor poder orientar entre sí antenas Yagi-Uda o dipolos en vez de enfrentar dos antenas omnidireccionales
Si los nodos no se mueven y su posición relativa no cambia, recomendaría fuertemente considerar casi cualquier opción que no sea omnidireccional para los enlaces de red entre nodos, por una mejor estabilidad del enlace y mayor tasa de datos
Este es un ejemplo cualquiera encontrado con una búsqueda de 5 segundos; miren el patrón de ganancia en una dirección específica: https://www.elprocus.com/design-of-yagi-uda-antenna/
Una de las cosas geniales que se hacen hoy con chipsets y módulos RF del tipo LoRa es ExpressLRS. Implementa un puente UART serial entre un control remoto y el controlador de vuelo a bordo de un UAV, un bote no tripulado o un vehículo terrestre, entre otros. Es una evolución del concepto general de TBS Crossfire para uso RC
https://www.google.com/search?client=firefox-b-d&q=expresslr...
Meshtastic es mensajería de texto con canales, y ofrece transmisión de datos de sensores y funciones de datos de ubicación para algunos nodos
No está pensado para ofrecer redes TCP/IP
Construir “una red IP inalámbrica a escala de pueblo o ciudad pequeña” nunca fue el objetivo. Lo único que se puede hacer es una red simple de mensajes de texto con bastante buen alcance y bajo ancho de banda
Parece que realmente hay mucho potencial para eludir al ISP
Pero en sistemas de muy bajo rendimiento como LoRa, lentos en el dominio temporal, no es un concepto fácil de aplicar si se considera movilidad
Hay un video de un británico muy entusiasta usando de verdad la app de Android y mostrando funciones como traceroute: https://www.youtube.com/watch?v=LmGr1pGJ4sM
Dice que escala solo hasta 80 nodos, así que salvo que uno lo construya por su cuenta, parece difícil encontrar una malla a la que unirse, y probablemente solo funcione entre gente conocida
Quiero una red mesh mundial que reemplace internet
Una búsqueda como “¿Taco Express ya abrió?” no debería funcionar resolviendo un nombre globalmente único a una dirección globalmente única, preguntándole a un servidor lejano y haciendo que ese servidor vuelva a pedir información de ubicación para averiguar de cuál Taco Express se trata. Eso es demasiado frágil
En cambio, la búsqueda debería propagarse por las mallas que estén al alcance hasta encontrar un nodo con autoridad sobre el horario de Taco Express, probablemente una Raspberry Pi en el propio Taco Express. La estructura sería obtener un resultado local porque el objetivo de la consulta es local
El problema de unir esas mallas también es interesante, pero hasta que no exista un ecosistema de apps que no dependa de direcciones estables de nodos individuales, no será tan útil
Lo que se necesita no es direccionamiento de servidores y solicitud/respuesta, sino direccionamiento basado en contexto y publicación/suscripción. Hace falta un cambio conceptual bastante grande, y tristemente no creo que ocurra hasta que algún desastre convenza a la gente de que es necesario
En comparación con enlaces de fibra de 1000 km y 10000 Gbps que cuestan millones de dólares desplegar, lo que puede aportar una sola persona es casi nada. Aun así, nada impide conseguir puertos en dos centros de datos o puntos de intercambio de internet, conectarlos de algún modo y luego cobrar por transportar tráfico entre ellos
En Europa, la cotización para transportar 10Gbps a lo largo de 650 km era de unos 800 dólares al mes, así que potencialmente se puede ganar algo por ese lado
Fui gerente de producto de un sistema de seguimiento de personal basado en mesh para obras de construcción, y licenciamos tecnología de Wirepas para usarla en la solución. En ese proceso aprendí mucho sobre las sutilezas de las redes mesh
Hay compensaciones difíciles entre capacidad de descubrimiento, latencia, disponibilidad y seguridad
¿No había una red mesh de Android de código abierto? ¿Basada en Wi‑Fi o Bluetooth?
Me parece haber escuchado que se usaron redes mesh en protestas hace unos años, ¿todavía no hay nada que siga siendo realmente útil?
Yggdrasil permite usar aplicaciones TCP/IP sobre su propia red mesh, pero no ofrece por sí mismo funcionalidades finales para el usuario
Manyverse puede usar Wi‑Fi para redes sociales descentralizadas: https://www.manyver.se/
Actualmente están reescribiendo el backend, dejando atrás Secure Scuttlebutt y migrando a su propio protocolo, que por ahora se llama PPPPP
Reticulum/Sideband ofrece un sistema de mensajería P2P sobre Wi‑Fi u otros medios: https://github.com/markqvist/sideband
Se descontinuó en 2018 y ni siquiera era de código abierto
Quise participar en el movimiento Decentralized Web que presentó TimBL, pero se fue desinflando
Me postulé para ir al “offline camp” en Oregon, pero lo cancelaron por unos incendios forestales grandes, y probablemente tenía que ver con Camp Fire. Al final terminé acampando junto al río
He gastado más de 1 millón de dólares durante más de 10 años intentando crear software comunitario de código abierto que pueda correr en cualquier servidor genérico, ya sea en aviones, cruceros como los de Norwegian Cruise Lines o pueblos rurales
Quiero ayudar con la educación local, incluyendo a niñas afganas. También estoy en contacto con RohingyaProject.com y otros para apoyar a refugiados apátridas
Estas redes mesh ya existen y el hardware de los teléfonos también es excelente. Lo que falta es un gran backend software que haga que la gente deje Big Tech, es decir, Twitter o Facebook; igual que la Web sacó a la gente de AOL y MSN, y Wordpress de la Web 1.0
Si alguien quiere participar, o conoce un movimiento de “decentralized web” o “indieweb” que de verdad esté activo, me gustaría que lo compartiera abajo
https://qbix.com/blog/2021/01/15/open-source-communities/
Un artículo reciente sobre la plataforma:
https://www.laweekly.com/restoring-healthy-communities/
https://www.robots-everywhere.com/cellsol/ Nosotros hicimos esto por ahí de 2020, y soporta tanto Meshtastic como paquetes de disasterradio