Об этом проекте

WFB-NG — это дальнобойный пакетный радиоканал нового поколения, который работает с WiFi-картами в режиме мониторинга, отправляя и принимая произвольные пакеты 802.11 без ассоциации и ожидания ACK. Он предназначен для видеосвязи и телеметрии с низкой задержкой, обычно используется в FPV и дронах. Ключевые возможности, описанные в README: - Однозначное отображение пакетов RTP в пакеты IEEE80211 для минимизации задержки, а не сериализация в байтовый поток. - Прямая коррекция ошибок (FEC) с настраиваемыми параметрами; настройки по умолчанию позволяют восстановить 4 потерянных пакета из блока в 12 пакетов. Утверждается, что FEC с ускорением SIMD на amd64, arm32 и arm64 работает в 5-10 раз быстрее чистой версии на C. - Двунаправленная телеметрия MAVLink для восходящего и нисходящего каналов наряду с видеоканалом вниз. - Туннель IPv4 для общего трафика, хотя в README отмечается, что он имеет больше накладных расходов, чем необработанные UDP-потоки. - Автоматическое разнесение TX за счёт выбора TX-карты на основе RX RSSI. - Шифрование и аутентификация потока с использованием libsodium. - Распределённая работа, сбор данных с карт на разных хостах для избежания узкого места одной шины USB. - Агрегация пакетов MAVLink и туннеля для избежания отправки WiFi-пакета на каждый маленький пакет. - Динамическое изменение FEC и радиомодуляции без прерывания связи. - Полное журналирование состояния канала, включая парсер MAVLink, для отладки в автономном режиме. - Поддержка шейперов трафика Linux для приоритизации каналов или пакетов данных/FEC. - OSD для Raspberry Pi или других систем с поддержкой gstreamer/OpenGL, совместимый с любым разрешением экрана. - Поддерживаемые архитектуры CPU: arm32v7, arm64v8, amd64, mips64le, s390x, ppc64le, i386, то есть Linux с ядром >= 4.x и портом USB. Поддерживаемое WiFi-оборудование: - RTL8812au (стабильно, 802.11ac) требует внешнего пропатченного драйвера; протестировано с ALPHA AWUS036ACH в режиме 5 ГГц. - RTL8812eu (стабильно, 802.11ac) требует внешнего пропатченного драйвера; протестировано с модулем LB-LINK BL-M8812EU2. - Atheros AR9350 (стабильно, 802.11n, LDPC) работает из коробки, но требует патчей ядра для управления мощностью TX; протестировано с TP-Link CPE510 и, как ожидается, будет работать на аналогичных устройствах ath9k SoC под управлением OpenWRT. Для Atheros SoC рекомендуется кластерный режим (бета) из-за ограничений CPU, Flash и RAM. Для использования только на приём любая карта с режимом мониторинга может подойти. Начало работы: README указывает на руководство PX4 и вики Setup HOWTO. Варианты быстрого старта включают загрузку образа Raspberry Pi из Releases, запись двух SD-карт, подключение WiFi-адаптеров и включение служб systemd (wifibroadcast@gs, rtsp, fpv-video, osd на наземной станции; wifibroadcast@drone, fpv-camera на дроне). Путь для наземной станции на Debian/Ubuntu устанавливает пропатченный драйвер RTL8812AU или RTL8812EU через DKMS и запускает install_gs.sh. Мониторинг канала использует wfb-cli gs. Устранение неполадок охватывает журналы journalctl, соответствие drone.key/gs.key и соответствие WiFi-канала и домена связи в /etc/wifibroadcast.cfg. Основные моменты FAQ: любые UDP-данные с размером пакета <= 3993 могут быть переданы, например x264/265 в RTP, MAVLink или общий IPv4 через туннель. WFB-ng не привязан к конкретному GPU; он работает с UDP-пакетами, и для RTP-потоков необходим видеокодер. По сравнению с оригинальным wifibroadcast он использует UDP в качестве источника данных и упаковывает один исходный UDP-пакет в один радиопакет с переменными размерами радиопакетов, что, как указано в README, значительно снижает задержку видео. Варианты сборки включают встроенный make, RPM, DEB и bdist tar.gz. Ключи шифрования для наземной станции и дрона генерируются с помощью wfb_keygen. Проект является свободным программным обеспечением под GPLv3 без гарантий, поддержка сообщества осуществляется через группу в Telegram. В документацию включён черновик RFC по стандарту передачи данных.