Meshtastic: rede mesh descentralizada off-grid de código aberto
(meshtastic.org)- Meshtastic é uma rede mesh de código aberto que conecta dispositivos de baixo consumo e baixo custo sem estações rádio-base ou internet, útil em situações sem infraestrutura de comunicação
- Usa comunicação de longo alcance baseada em LoRa e criptografia AES-256, permitindo trocar mensagens privadas peer-to-peer mesmo em ambientes off-grid
- O alcance do ecossistema está se ampliando, com mais de 8 dispositivos apoiados pela comunidade, mais de 149 contribuidores de código no mundo todo, 26 regiões LoRa e 39 idiomas suportados
- Por meio de apps para iOS, iPad e Mac OS, app Android, Web Client e Python CLI/SDK, usuários móveis e desenvolvedores podem acessar a mesma rede
- Com vários clientes, documentação e ferramenta de flasher, o caminho de entrada — da preparação do hardware à configuração e ao controle dos dispositivos — é relativamente claro
Rede mesh que funciona sem infraestrutura
- Meshtastic é uma rede mesh descentralizada off-grid baseada em código aberto
- Foi criada para rodar em dispositivos baratos e de baixo consumo, oferecendo conexão peer-to-peer sem estações rádio-base ou internet
- A premissa central é “No cell towers. No internet. Just pure peer-to-peer connectivity.”
Recursos de comunicação
- Long Range: a tecnologia LoRa permite comunicação em alcance de vários quilômetros
- Encrypted: a criptografia AES-256 mantém as mensagens privadas e seguras
- No Infrastructure: funciona sem estações rádio-base, WiFi ou conexão com a internet
Comunidade e abrangência de suporte
- O tamanho do ecossistema apresentado pelo Meshtastic é o seguinte
- Dispositivos apoiados pela comunidade: mais de 8
- Contribuidores de código no mundo todo: mais de 149
- Regiões LoRa: 26
- Idiomas suportados: 39
Clientes de acesso e controle
- Apple Apps: apps compatíveis com iOS, iPad e Mac OS que permitem gerenciar uma rede Meshtastic em movimento
- Android App: permite conectar e controlar dispositivos Meshtastic pelo app Android
- Web Client: cliente baseado na web que permite acessar uma rede Meshtastic em vários dispositivos
- Python CLI/SDK: oferece interface de linha de comando e SDK para desenvolvedores Python
Ferramentas de início e configuração
- Get Started: leva à documentação para começar com o Meshtastic
- Read the Docs: ponto de entrada da documentação para usuários que precisam de hardware
- Flasher: leva à ferramenta de flasher do site do Meshtastic
1 comentários
Comentários do Hacker News
Há um projeto relacionado: https://github.com/antirez/freakwan/
A propósito, fui eu que fiz. O conceito é parecido com o Meshtastic, mas o objetivo foi documentar e deixar mais claras as escolhas em nível de protocolo, além de criar uma implementação muito mais fácil de hackear e modificar
Se você entende italiano, há também uma apresentação que fiz aqui: https://talks.codemotion.com/introduzione-alla-tecnologia-rf...
Usei no Burning Man de 2023, e o Burning Man é um ambiente duro para equipamentos, além de ter um ambiente de radiofrequência surpreendentemente complexo
Mesmo assim, foi estável e a experiência de uso foi boa, então gostei bastante
Também criei um fork de firmware modificado que mostra a localização na playa
https://github.com/exadeci/Meshtastic-device-bm
Comprei um monte de equipamentos LoRa/Meshtastic e investiguei se daria para registrar minha localização e exibi-la em um mapa, de um jeito parecido com APRS
Mas parecia muito mais difícil do que configurar um APRS iGate e ver minha localização no aprs.fi
Quero tentar de novo algum dia, mas senti que precisaria de um bom guia inicial que me motivasse
Isso me faz lembrar do ditado: não pergunte a idade a uma mulher, o salário a um homem, nem a vazão a um transceptor LoRa
Na faixa de dezenas de bits por segundo, levando em conta cabeçalhos de pacote, correção de erros etc., na melhor das hipóteses dá apenas alguns caracteres por segundo, ou menos
Mas, usando uma largura de canal maior e um fator de espalhamento menor, chega a 62,5 kbps. Não sei exatamente qual modo o Meshtastic usa por padrão, mas parece haver 8 presets
Sei que é um ditado, e não estou culpando o comentário pai
Antes de ficar empolgado demais com isso, vale pontuar que usar antenas omnidirecionais em um sistema de rádio mesh half-duplex/TDD está entre as formas menos eficientes de criar uma rede IP sem fio em escala de vilarejo ou cidade pequena
Quando antenas omnidirecionais se comunicam entre si, elas também são coletores de ruído em 360 graus, então acabam captando não só o par com quem estão transmitindo/recebendo naquele momento, mas também o tráfego de nós mesh um pouco mais distantes ou sinais de ocupação de slots de tempo
Da mesma forma, ao enviar um pacote para um nó específico, 99% do sinal de RF se espalha em direções de azimute que você não quer nem precisa, elevando o piso de ruído para nós próximos com configuração de hardware semelhante
Se alguém quer fazer algo assim com um orçamento muito apertado, eu recomendaria olhar para sistemas sem fio 802.11ac/ax ponto a ponto, projetados para criar uma ponte Ethernet L2 entre dois pontos. Em geral são baseados em antenas refletoras parabólicas e, mais recentemente, também há equipamentos baratos de bridge ponto a ponto em 24 GHz e 60 GHz, desde que haja linha de visada e zona de Fresnel desobstruída
Equipamentos do tipo LoRa também são muito melhores quando você precisa de um link fixo entre dois pontos em faixas parecidas com VHF/UHF, bem mais baixas que 2,4 GHz ou 5 GHz, geralmente abaixo de 1300 MHz, e consegue apontar antenas Yagi-Uda ou dipolos uma para a outra em vez de colocar duas antenas omnidirecionais se encarando
Se os nós não se movem e a relação de posição entre eles não muda no local, recomendo fortemente considerar praticamente qualquer coisa que não seja omnidirecional para os links de rede entre os nós, em busca de melhor estabilidade de link e maior taxa de transferência de dados
Um exemplo aleatório encontrado em uma busca de 5 segundos; veja o padrão de ganho em uma direção específica: https://www.elprocus.com/design-of-yagi-uda-antenna/
Uma das coisas legais feitas hoje com chipsets e módulos de RF do tipo LoRa é o ExpressLRS. Ele implementa uma ponte UART serial entre um controle remoto e o controlador de voo embarcado de um UAV, barco não tripulado ou veículo terrestre. É uma evolução do mesmo conceito geral usado no TBS Crossfire para RC
https://www.google.com/search?client=firefox-b-d&q=expresslr...
Meshtastic é mensageria de texto com canais e oferece transmissão de dados de sensores de alguns nós e recursos de dados de localização
Não tem o objetivo de fornecer rede TCP/IP
Criar uma “rede IP sem fio em escala de vilarejo ou cidade pequena” nunca foi o objetivo. O que ele permite criar é uma rede simples de mensagens de texto, com alcance bem bom e baixa largura de banda
Vejo muitas possibilidades de contornar ISPs
Mas, em sistemas com throughput muito baixo e lentos no domínio do tempo, como LoRa, não é um conceito fácil de aplicar quando se considera mobilidade
Há um vídeo de um britânico muito entusiasmado usando de fato o app Android e mostrando coisas como o recurso de traceroute: https://www.youtube.com/watch?v=LmGr1pGJ4sM
Como dizem que escala só até 80 nós, parece difícil encontrar uma mesh para participar, a menos que você a crie; parece algo viável apenas entre conhecidos
Quero uma rede mesh mundial para substituir a internet
Uma busca por “o Taco Express está aberto agora?” não deveria resolver um nome globalmente único para um endereço globalmente único, perguntar a um servidor distante e então esse servidor pedir informações de localização para descobrir qual Taco Express é. Isso é frágil demais
Em vez disso, a busca deveria se propagar pelas meshes atualmente alcançáveis até encontrar um nó com autoridade sobre o horário de funcionamento do Taco Express, provavelmente um Raspberry Pi dentro do Taco Express. Como o alvo da consulta é local, a estrutura retorna um resultado local
O problema de interligar essas meshes também é interessante, mas não será tão útil até surgir um ecossistema de apps que não dependa de endereços estáveis de nós individuais
O que é necessário não é endereçamento de servidores e request/response, mas endereçamento baseado em contexto e publish/subscribe. É uma mudança conceitual bem grande e, infelizmente, acho que ela não acontecerá até que algum desastre convença as pessoas da necessidade
Em comparação com um link de fibra óptica de 1000 km e 10000 Gbps que custa milhões de dólares para implantar, a contribuição de uma pessoa individual é praticamente nula. Ainda assim, nada impede você de conseguir portas em dois datacenters ou pontos de troca de tráfego, conectá-los de algum jeito e cobrar pelo transporte de tráfego entre eles
Na Europa, recebi uma cotação de cerca de US$ 800 por mês para transporte de 10 Gbps em um trecho de 650 km, então potencialmente daria para ganhar algo nessa ordem
Trabalhei como gerente de produto de um sistema de rastreamento de pessoas baseado em mesh para canteiros de obras, e licenciamos a tecnologia da Wirepas na solução. Nesse processo, aprendi muitas sutilezas de redes mesh
Há trade-offs difíceis entre descobribilidade, latência, disponibilidade e segurança
Não existe uma rede mesh Android open source? Baseada em Wi-Fi ou Bluetooth
Acho que ouvi dizer que redes mesh foram usadas em protestos alguns anos atrás; ainda não há nada realmente utilizável?
O Yggdrasil permite usar aplicações TCP/IP sobre sua própria rede mesh, mas não oferece, por si só, funcionalidades para o usuário final
Manyverse pode usar Wi-Fi para redes sociais descentralizadas: https://www.manyver.se/
Atualmente estão reescrevendo o backend e migrando do Secure Scuttlebutt para um protocolo próprio, atualmente chamado PPPPP
Reticulum/Sideband oferece um sistema de mensagens P2P sobre Wi-Fi ou outros meios: https://github.com/markqvist/sideband
Foi descontinuado em 2018 e também não era open source
Eu queria participar do movimento Decentralized Web anunciado pelo TimBL, mas ele acabou não indo para frente
Inscrevi-me para ir ao “offline camp” no Oregon, mas foi cancelado por causa de um grande incêndio florestal, provavelmente relacionado ao Camp Fire. No fim, acabei acampando à beira de um rio
Gastei mais de 10 anos e US$ 1 milhão tentando criar um software comunitário open source que pudesse rodar em qualquer servidor de uso geral, como em aviões, navios de cruzeiro como os da Norwegian Cruise Lines e vilarejos rurais
Quero ajudar na educação local, incluindo meninas afegãs. Também estou em contato com iniciativas como RohingyaProject.com para apoiar refugiados apátridas
Essas redes mesh já existem, e o hardware dos celulares também é excelente. O que falta é um ótimo software de backend que ajude as pessoas a sair das Big Techs, como Twitter ou Facebook. Assim como a Web tirou as pessoas da AOL e da MSN, e o Wordpress tirou as pessoas da Web 1.0
Se quiser participar, ou se souber de algum movimento “decentralized web” ou “indieweb” realmente ativo, seria ótimo se comentasse abaixo
https://qbix.com/blog/2021/01/15/open-source-communities/
Artigo recente sobre a plataforma:
https://www.laweekly.com/restoring-healthy-communities/
https://www.robots-everywhere.com/cellsol/ Criamos isto por volta de 2020, e ele dá suporte tanto a pacotes do Meshtastic quanto do disasterradio