Skip to content

Releases: svpcom/wfb-ng

Release 25.01

25 Feb 21:17
wfb-ng-25.01
Compare
Choose a tag to compare

Release notes:

New features:

  • Runtime fec and radio tune via wfb_tx_cmd without restart
  • Distributed mode. Now you can use any amount of hosts with any amount of wifi adapters as single GS or Drone instance.
  • Support for OpenWrt. Now you can use OpenWrt 24.10-based router as RX-only (most of routers) or RX/TX (only ath9k SoC based) node in distributed mode.
  • JSON API for link state telemetry integration with side projects.
  • Radxa Zero 3W/3E and Orange PI5 are supported now in wfb-ng-osd (via libdrm hw overlay on top of gstreamer window)
  • RTSP proxy. It allows to have multiple video consumers on the GS.
  • WiFi card autodetection. No need to edit /etc/default/wifibroadcast for simple setups.
  • apt repository for wfb-ng and wfb-ng-osd packages
  • drone auto provisioning protocol support
  • Optional derivation of encryption keys from user provided password.

radxa3 image credentials: rock/rock
rpi3 image credentials: pi/raspberry

Release 25.01-rc2

12 Feb 23:18
wfb-ng-25.01-rc2
Compare
Choose a tag to compare
Release 25.01-rc2 Pre-release
Pre-release

Release notes:

  • Added distributed mode. Now you can use any amount of hosts with any amount of wifi adapters as single GS or Drone instance.
  • Added support for OpenWrt. Now you can use OpenWrt 24.10-based router as RX-only (most of routers) or RX/TX (only ath9k SoC based) node in distributed mode.
  • Added JSON API for link state telemetry integration with side projects.
  • Radxa Zero 3W/3E and Orange PI5 are supported now in wfb-ng-osd (via libdrm hw overlay on top of gstreamer window)
  • Added rtsp proxy. It allows to have multiple video consumers on the GS.
  • Added wifi card autodetection
  • Added apt repository for wfb-ng and wfb-ng-osd packages
  • Added drone auto provisioning protocol support

radxa3 image credentials: rock/rock
rpi3 image credentials: pi/raspberry

Release 24.08.3

30 Dec 18:24
wfb-ng-24.08.3
Compare
Choose a tag to compare

This is a bugfix release.

Changes:

  • Fix handling of zero agg_timeout

Use RPI image from 24.08 release and update wfb-ng via cd wfb-ng && git pull && make deb && sudo dpkg -i deb_dist/*.deb

Release 25.01-rc1

23 Dec 18:03
wfb-ng-25.01-rc1
Compare
Choose a tag to compare
Release 25.01-rc1 Pre-release
Pre-release

Release notes:

  • Added distributed mode. Now you can use any amount of hosts with any amount of wifi adapters as single GS or Drone instance.
  • Added support for OpenWrt. Now you can use OpenWrt 24.10-based router as RX-only (most of routers) or RX/TX (only ath9k SoC based) node in distributed mode.
  • Added JSON API for link state telemetry integration with side projects.
  • Radxa Zero 3W/3E and Orange PI5 are supported now in wfb-ng-osd (via libdrm hw overlay on top of gstreamer window)

Release 24.08.2

01 Oct 13:53
wfb-ng-24.08.2
Compare
Choose a tag to compare

This is a bugfix release.

Changes:

  • Fixed msgpack compatibility issues

wfb-ng-24.09.23

23 Sep 10:47
wfb-ng-24.09.23
Compare
Choose a tag to compare
wfb-ng-24.09.23 Pre-release
Pre-release

This is a pre-release for openwrt evaluation

Release 24.08.1

11 Sep 21:49
wfb-ng-24.08.1
Compare
Choose a tag to compare

This is a bugfix release on top of 24.08

Changes:

  • Fixed incorrect array indexing inside of wfb_tx in mirror mode

Release 24.08

19 Aug 18:02
wfb-ng-24.08
Compare
Choose a tag to compare

Changes:

  • [core] Using raw sockets for injection instead of pcap
  • [core] Added TX injection measurements
  • [core] Added SNR, frequency and MCS reporting for RX.
  • [core] Added initial support for using wfb_rx as shared library (used by external projects like android client with userspace wifi driver)
  • [core] Added support for VHT modes
  • [core] Added support for 8812eu card. Comparing to 8812au it supports 10MHz channels and thermal state reporting
  • [core] Added experimental support for large packets. Now max MTU is 3993 instead of 1445, but for mavlink and tunnel it use old value by default for compatibility with old clients.
  • [cli] Large UI refactoring:
    • Show MCS, bandwidth and used FEC scheme
    • Show Radio and UDP flow rates
    • Show TX injection measurements
    • Support live terminal resize
  • [core] Added optional logging for radio channel stats and mavlink messages. Now you have full telemetry and link state log for offline debug
  • [core] Added optional delay between sending each FEC packet. This is needed if you don't want to loose all FEC packets due to radio interference
  • [core] Added experimental traffic shaper support. You can use standard linux tc infrastructure for wfb-ng traffic management. For example add different priority to different streams. See example in scripts/tc.sh
  • [core] Added ability to add optional attributes to session packet without breaking protocol format. This is reserved for future use.
  • [core] Added dynamic FEC and MCS change in wfb_tx. You can use wfb_tx_cmd or write your own client to switch FEC and/or MCS settings without stream interruption.
  • [core] Changed TX card selection algorithm. Now only cards with near-maximum RX packet counter will be used in RSSI filtering. This will allow to ignore cards which reports high RSSI, but loose a lot of packets.
  • [core] Encode frequency field in wrxfwd_t in the network byte order
  • [core] Use only ip address of forwarder in antenna_id inside of aggregator.

Bug fixes:

  • Fixed compatibility with python-3.12
  • Fixed option name collision in config file. mirror url (used for OSD) renamed to osd to prevent conflict with bool mirror option ( mirror packets via all cards for redundancy)

Compatibility:

Radio protocol should be compatible with 23.08 if now tags added to session packets (default behavior for 24.08 but can change in future releases) and using MTU <= 1445

Supported WiFi harware:

Supported platforms:

WFB-ng should work on any linux based (little or big-endian) machines with usb port.
All builds are automatically tested on debian-11,12 and ubuntu-20.04, 22.04, 24.04 on following hardware platforms:

  • arm32v7 - debian and ubuntu
  • arm64v8 - debian and ubuntu
  • amd64 - debian and ubuntu
  • mips64le - debian
  • s390x - debian
  • ppc64le - debian

See .github/workflows for reference

Large packets note:

#define WIFI_MTU  4045

// Max injected packet size including all wfb-headers.
// Please note, that resulting data packet size depends from input UDP packet size
// and FEC packet size is max of all UDP packet sizes in this block.
// I.e. you can have WIFI_MTU=4045 but if you will not feed large UDP packets
// then resulting radio packets will be small.

// I've set it to 4045 to allow wfb_rx compatibility with custom wfb_tx builds that can
// have maximum allowed mtu value, but I don't recommend to feed UDP packets
// larger that 1448 bytes in production.

// You can increase it if your card allow larger packets,
// but this can lead to interoperability issues and/or kernel crashes.
// Use values > 1500 with caution!

// If you use non-default MTU then you need to configure proper MTU on WiFi cards manually
// (but 8812au and 8812eu drivers set max mtu by default)

// Also you may update radio_mtu in master.cfg - set it to not more than MAX_PAYLOAD_SIZE
// or see in output of wfb_tx (Radio MTU)

// Experemental max allowed WIFI_MTU for: rtl8812au -- 4049, rtl8812eu -- 4045

Raspberry PI 3B ready to use image:

Changes:

  • Added support of 8812eu cards
  • Added support of cameras used libcamera protocol

Image notes:

  • This image was tested on RPI3b + Alfa AWUS036ACH + PI Camera. Use native ("thick") USB3 cable from this card. If you have issues with different HW setup then try to test this setup first before issuing bug report.
  • OSD will not work on RPI4 due to dropped OpenVG support.
  • If you use high-power cards like "taobao card" then you must use external high-current power supply and low-esr capacitor on the card. Don't power them from USB!

Gallery

Telegram group: (wfb-ng support) https://t.me/wfb_ng

Please note, that it is only one official group.

Release 24.08-rc2

18 Aug 08:59
wfb-ng-24.08-rc2
Compare
Choose a tag to compare
Release 24.08-rc2 Pre-release
Pre-release

Changes vs 24.08-rc1

  • Encode frequency field in wrxfwd_t in the network byte order
  • Use only ip address of forwarder in antenna_id inside of aggregator.
  • Docker builder cleanup
  • master.cfg cleanups
  • Build from tgz now works

Release 24.08-rc1

10 Aug 16:47
wfb-ng-24.08-rc1
Compare
Choose a tag to compare
Release 24.08-rc1 Pre-release
Pre-release

This is the first release candidate for 24.08

Changes:

  • [core] Using raw sockets for injection instead of pcap
  • [core] Added TX injection measurements
  • [core] Added SNR, frequency and MCS reporting for RX.
  • [core] Added initial support for using wfb_rx as shared library (used by external projects like android client with userspace wifi driver)
  • [core] Added support for VHT modes
  • [core] Added support for 8812eu card. Comparing to 8812au it supports 10MHz channels and thermal state reporting
  • [core] Added experimental support for large packets. Now max MTU is 3993 instead of 1445, but for mavlink and tunnel it use old value by default for compatibility with old clients.
  • [cli] Large UI refactoring:
    • Show MCS, bandwidth and used FEC scheme
    • Show Radio and UDP flow rates
    • Show TX injection measurements
    • Support live terminal resize
  • [core] Added optional logging for radio channel stats and mavlink messages. Now you have full telemetry and link state log for offline debug
  • [core] Added optional delay between sending each FEC packet. This is needed if you don't want to loose all FEC packets due to radio interference
  • [core] Added experimental traffic shaper support. You can use standard linux tc infrastructure for wfb-ng traffic management. For example add different priority to different streams. See example in scripts/tc.sh
  • [core] Added ability to add optional attributes to session packet without breaking protocol format. This is reserved for future use.
  • [core] Added dynamic FEC and MCS change in wfb_tx. You can use wfb_tx_cmd or write your own client to switch FEC and/or MCS settings without stream interruption.
  • [core] Changed TX card selection algorithm. Now only cards with near-maximum RX packet counter will be used in RSSI filtering. This will allow to ignore cards which reports high RSSI, but loose a lot of packets.

Bug fixes:

  • Fixed compatibility with python-3.12
  • Fixed option name collision in config file. mirror url (used for OSD) renamed to osd to prevent conflict with bool mirror option ( mirror packets via all cards for redundancy)

Compatibility:

Radio protocol should be compatible with 23.08 if now tags added to session packets (default behavior for 24.08 but can change in future releases) and using MTU <= 1445

Supported WiFi harware:

Supported platforms:

WFB-ng should work on any linux based (little or big-endian) machines with usb port.
All builds are automatically tested on debian-11,12 and ubuntu-20.04, 22.04, 24.04 on following hardware platforms:

  • arm32v7 - debian and ubuntu
  • arm64v8 - debian and ubuntu
  • amd64 - debian and ubuntu
  • mips64le - debian
  • s390x - debian
  • ppc64le - debian

See .github/workflows for reference

Large packets note:

#define WIFI_MTU  4045

// Max injected packet size including all wfb-headers.
// Please note, that resulting data packet size depends from input UDP packet size
// and FEC packet size is max of all UDP packet sizes in this block.
// I.e. you can have WIFI_MTU=4045 but if you will not feed large UDP packets
// then resulting radio packets will be small.

// I've set it to 4045 to allow wfb_rx compatibility with custom wfb_tx builds that can
// have maximum allowed mtu value, but I don't recommend to feed UDP packets
// larger that 1448 bytes in production.

// You can increase it if your card allow larger packets,
// but this can lead to interoperability issues and/or kernel crashes.
// Use values > 1500 with caution!

// If you use non-default MTU then you need to configure proper MTU on WiFi cards manually
// (but 8812au and 8812eu drivers set max mtu by default)

// Also you may update radio_mtu in master.cfg - set it to not more than MAX_PAYLOAD_SIZE
// or see in output of wfb_tx (Radio MTU)

// Experemental max allowed WIFI_MTU for: rtl8812au -- 4049, rtl8812eu -- 4045