À propos du projet

WFB-NG est une liaison radio par paquets longue portée de nouvelle génération qui fait fonctionner les cartes WiFi en mode moniteur, en envoyant et recevant des paquets 802.11 arbitraires sans association ni attente d'ACK. Elle vise les liaisons vidéo et télémétrie à faible latence, couramment utilisées dans les configurations FPV et drones. Capacités clés décrites dans le README : - Mappage un-à-un des paquets RTP vers des paquets IEEE80211 pour minimiser la latence, plutôt que de sérialiser vers un flux d'octets. - Correction d'erreurs sans voie de retour (FEC) avec réglages ajustables ; les réglages par défaut peuvent récupérer 4 paquets perdus sur un bloc de 12 paquets. La FEC accélérée par SIMD sur amd64, arm32 et arm64 est annoncée comme 5 à 10 fois plus rapide qu'une version en C pur. - Télémétrie MAVLink bidirectionnelle pour les liaisons montante et descendante en parallèle de la liaison vidéo descendante. - Un tunnel IPv4 pour le trafic générique, bien que le README note qu'il a plus de surcharge que les flux UDP bruts. - Diversité TX automatique en sélectionnant la carte TX selon le RSSI RX. - Chiffrement et authentification du flux avec libsodium. - Fonctionnement distribué, collectant les données de cartes sur différents hôtes pour éviter un goulot d'étranglement sur un seul bus USB. - Agrégation des paquets MAVLink et tunnel pour éviter d'envoyer un paquet WiFi par petit paquet. - Changements dynamiques de FEC et de modulation radio sans interruption de la liaison. - Journalisation complète de l'état du canal, incluant un analyseur MAVLink, pour le débogage hors ligne. - Support des shapeurs de trafic Linux pour prioriser les canaux ou les paquets de données/FEC. - Un OSD pour Raspberry Pi ou d'autres systèmes compatibles gstreamer/OpenGL, compatible avec toute résolution d'écran. - Architectures CPU supportées : arm32v7, arm64v8, amd64, mips64le, s390x, ppc64le, i386, c'est-à-dire Linux avec noyau >= 4.x et un port USB. Matériel WiFi supporté : - RTL8812au (stable, 802.11ac) nécessite un pilote patché externe ; testé avec ALPHA AWUS036ACH en mode 5GHz. - RTL8812eu (stable, 802.11ac) nécessite un pilote patché externe ; testé avec un module LB-LINK BL-M8812EU2. - Atheros AR9350 (stable, 802.11n, LDPC) fonctionne immédiatement mais nécessite des patches noyau pour contrôler la puissance TX ; testé avec TP-Link CPE510 et censé fonctionner sur des appareils SoC ath9k similaires sous OpenWRT. Pour le SoC Atheros, le mode cluster (bêta) est recommandé en raison des limites de CPU, Flash et RAM. Pour une utilisation en RX uniquement, toute carte avec mode monitoring peut fonctionner. Pour commencer : le README renvoie au guide PX4 et à un wiki Setup HOWTO. Les options de démarrage rapide incluent le téléchargement d'une image Raspberry Pi depuis Releases, le flashage de deux cartes SD, le branchement des adaptateurs WiFi et l'activation des services systemd (wifibroadcast@gs, rtsp, fpv-video, osd sur la station sol ; wifibroadcast@drone, fpv-camera sur le drone). Une installation Debian/Ubuntu pour station sol installe un pilote patché RTL8812AU ou RTL8812EU via DKMS et exécute install_gs.sh. La surveillance de la liaison utilise wfb-cli gs. Le dépannage couvre les journaux journalctl, la correspondance des clés drone.key/gs.key, et la correspondance du canal WiFi et du domaine de liaison dans /etc/wifibroadcast.cfg. Points saillants de la FAQ : toute donnée UDP avec une taille de paquet <= 3993 peut être transmise, comme x264/265 en RTP, MAVLink, ou IPv4 générique via tunnel. WFB-ng n'est pas lié à un GPU spécifique ; il opère sur des paquets UDP, et un encodeur vidéo est nécessaire pour les flux RTP. Comparé au wifibroadcast original, il utilise UDP comme source de données et emballe un paquet UDP source dans un paquet radio, avec des tailles de paquets radio variables, ce qui, selon le README, réduit beaucoup la latence vidéo. Les options de build incluent make en ligne, RPM, DEB et bdist tar.gz. Les clés de chiffrement pour la station sol et le drone sont générées avec wfb_keygen. Le projet est un logiciel libre sous GPLv3 sans garantie, et le support communautaire se fait via un groupe Telegram. Un projet de norme RFC de transport de données est inclus dans la documentation.