Skip to content

Release 24.08

Compare
Choose a tag to compare
@svpcom svpcom released this 19 Aug 18:02
· 50 commits to master since this release
wfb-ng-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.
  • [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.