Sobre o projeto
WFB-NG é um enlace de rádio pacote de longo alcance de próxima geração que opera placas WiFi em modo monitor, enviando e recebendo pacotes 802.11 arbitrários sem associação ou espera por ACK. Destina-se a enlaces de vídeo e telemetria de baixa latência, comumente usados em configurações de FPV e drones.
Principais capacidades descritas no README:
- Mapeamento um-para-um de pacotes RTP para pacotes IEEE80211 para minimizar a latência, em vez de serializar para um fluxo de bytes.
- Correção de erros antecipada (FEC) com configurações ajustáveis; as configurações padrão podem recuperar 4 pacotes perdidos de um bloco de 12 pacotes. O FEC acelerado por SIMD em amd64, arm32 e arm64 é declarado como 5-10x mais rápido que uma versão em C puro.
- Telemetria MAVLink bidirecional para enlaces de subida/descida junto com o downlink de vídeo.
- Um túnel IPv4 para tráfego genérico, embora o README observe que ele tem mais overhead que fluxos UDP brutos.
- Diversidade de TX automática ao selecionar a placa de TX com base no RSSI de RX.
- Criptografia e autenticação de fluxo usando libsodium.
- Operação distribuída, coletando dados de placas em hosts diferentes para evitar um único gargalo de barramento USB.
- Agregação de pacotes MAVLink e de túnel para evitar enviar um pacote WiFi por pacote pequeno.
- Mudanças dinâmicas de FEC e modulação de rádio sem interrupção do enlace.
- Registro completo do estado do canal, incluindo um analisador MAVLink, para depuração offline.
- Suporte a modeladores de tráfego do Linux para priorizar canais ou pacotes de dados/FEC.
- Um OSD para Raspberry Pi ou outros sistemas compatíveis com gstreamer/OpenGL, compatível com qualquer resolução de tela.
- Arquiteturas de CPU suportadas: arm32v7, arm64v8, amd64, mips64le, s390x, ppc64le, i386, ou seja, Linux com kernel >= 4.x e uma porta USB.
Hardware WiFi suportado:
- RTL8812au (estável, 802.11ac) requer um driver externo corrigido; testado com ALPHA AWUS036ACH em modo 5GHz.
- RTL8812eu (estável, 802.11ac) requer um driver externo corrigido; testado com um módulo LB-LINK BL-M8812EU2.
- Atheros AR9350 (estável, 802.11n, LDPC) funciona imediatamente, mas precisa de patches no kernel para controlar a potência de TX; testado com TP-Link CPE510 e esperado funcionar em dispositivos ath9k SoC semelhantes executando OpenWRT.
Para Atheros SoC, o modo cluster (beta) é recomendado devido a limites de CPU, Flash e RAM. Para uso apenas de RX, qualquer placa com modo de monitoramento pode funcionar.
Primeiros passos: o README aponta para o guia PX4 e uma wiki de HOWTO de configuração. As opções de início rápido incluem baixar uma imagem de Raspberry Pi em Releases, gravar dois cartões SD, conectar adaptadores WiFi e habilitar serviços systemd (wifibroadcast@gs, rtsp, fpv-video, osd na estação terrestre; wifibroadcast@drone, fpv-camera no drone). Um caminho de estação terrestre Debian/Ubuntu instala um driver RTL8812AU ou RTL8812EU corrigido via DKMS e executa install_gs.sh. O monitoramento do enlace usa wfb-cli gs. A solução de problemas cobre logs do journalctl, correspondência de drone.key/gs.key e correspondência do canal WiFi e domínio de enlace em /etc/wifibroadcast.cfg.
Destaques do FAQ: qualquer dado UDP com tamanho de pacote <= 3993 pode ser transmitido, como x264/265 em RTP, MAVLink ou IPv4 genérico via túnel. O WFB-ng não está vinculado a uma GPU específica; ele opera em pacotes UDP, e um codificador de vídeo é necessário para fluxos RTP. Comparado ao wifibroadcast original, ele usa UDP como fonte de dados e empacota um pacote UDP de origem em um pacote de rádio, com tamanhos variáveis de pacote de rádio, o que o README afirma reduzir muito a latência de vídeo.
As opções de compilação incluem make inline, RPM, DEB e bdist tar.gz. As chaves de criptografia para estação terrestre e drone são geradas com wfb_keygen. O projeto é software livre sob GPLv3 sem garantia, e o suporte da comunidade é via um grupo no Telegram. Um rascunho de RFC de padrão de transporte de dados está incluído na documentação.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.