Wifibroadcast Versions Save

WFB-NG - the next generation of long-range packet radio link based on raw WiFi radio

wfb-ng-23.08.1

4 months ago

Fix option name collision in config file. Now for mirroring mavlink stream to OSD use osd option name instead of mirror

wfb-ng-23.08

9 months ago

Compatibility:

This release maintain both radio and config compatibility with previous version. So you can use previous version of wfb-ng on the other link side and import most of your customizations from /etc/wifibroadcast.cfg

But there are two incompatibilities in the config:

  1. common.link_id was moved to profile section and renamed to link_domain.
  2. In previous releases (23.01 and earlier) there were a bug with tunnel streams numbers: drone->gs (down) 0xa0 and gs->drone (up) 0x20 - i.e. they were swapped. Now it is fixed according to standard document. Now tunnels streams are drone->gs (down) 0x20 and gs->drone(up) 0xa0. If you need to maintain compatibility with old versions you can swap these number on any side of link.

Changes:

  • Mavlink parser speedup. Instead of using standard full-featured (and slow mavlink parser) now use fast packet splitter.

  • Added callbacks for vehicle arm/disarm. You can use it for camera recording activation.

  • Added mavlink tcp proxy. Now it is possible to use backup link via LTE modem or connect onboard computer without external mavlink-router. To connect as backup link in QGC use tcp connection to port 5760 and check "high latency link" checkbox.

  • Self-injected frames are ignored now in case when TX and RX use the same radio port.

  • Added cross-build support via qemu + docker.

  • Improved udp socket buffer overflow handling:

    1. Added option for socket buffer size for incoming messages on the tx side.
    2. Check for socket buffer overflow and show warnings.

    You can set socket buffer size system-wide via net.core.rmem_default or via -R option in wfb_tx.

  • Warn if incoming packet > MAX_PAYLOAD_SIZE and will be truncated.

  • Added support for RTS frames. Now you can choose between data and rts frames when transmit packages.

  • Added default route option for IP tunnel.

  • Large refactoring of WFB-ng control-plane:

    1. Added support for multiple profiles and profile inheritance (no need to have multiple copies of wifibroadcast.cfg).
    2. No hadcoded streams (video/mavlink/tunnel) anymore. You can define own profiles and any number of data streams can be added/removed to profiles without any code change.
    3. Multiple profiles can be active simultaneously (no need to run multiple instances of wfb-server when using the same wifi adapters for different links). For example: systemctl enable wifbroadcast@gs1:gs2:gs3:gs4
    4. Added support for raw udp data streams. They don't use any frame aggregation or mavlink injection.
    5. TX antenna selection is now link_domain wide - for example one-way udp_proxy TX will use active antenna selected by other RX streams.
  • Added support for multiple directed antennas on both ends and different frequency channels on different cards:

    1. common.wifi_channel can now be not only int, but also dict. In this case, you can specify different frequency channels for different cards. For example: {'wlan0': 161, 'wlan1': 165}
    2. Tunnel keepalive package is now transmitted through all cards, not just through the active
    3. Added mirror mode. Use it only if you use different frequency channels for multiple cards. In this mode each packet will be send via all cards (by default only active cards send packets). This allow to add redundancy for multi-frequency link

    These allow you to use multiple frequency channels at the same time if you have multiple cards on each end. For example, you can use 2.4 + 5.8 GHz. Or you can use multiple directional antennas on both sides of the link, as point (2) solves the chicken and egg problem of allowing directional antennas (and/or different frequency channels) to agree on the direction (and/or frequency) of transmission

    In the case of different frequency channels, the solution is not quite ideal, because only RSSI is used to select the active channel, and the number of errors is ignored. Use mirror mode in this case.

Raspberry PI 3B ready to use image:

Changes:

  • Large refactoring of OSD widgets. See wfb-ng-osd release notes.

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!

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

Please note, that it is only one official group.

wfb-ng-23.01

1 year ago

This release include major protocol changes and incompatible with previous releases.

Changes:

  1. FEC settings now embedded into session packet. This means that RX get FEC type, K and N from TX. This allows to add dynamic FEC in future without protocol change and allows different FEC settings for uplink and downlink (this settings now in TX sections only)
  2. Small tunneled IP packets now aggregated the same way as mavlink packets. This raise performance for interactive TCP sessions via tunnel.
  3. WFB-ng-OSD now supports RTSP video sources.

Raspberry PI 3B ready to use image:

Changes:

  1. RTSP server now enabled by default. So you can see video simultaneously on RPI (via HDMI) and on laptop via QGC
  2. In rtl8812au driver was added a patch that drop tx packets while medium is busy and internal hardware queue overflows. This allows to reduce latency by avoid sending stale data and increase FEC efficiency. This fix was reverted in 23.01.001 image. In case of bitrate spikes in video bitstream it can overload channel capacity and lead to key frame loss.
  • 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!

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

Please note, that it is only one official group.

wifibroadcast-22.09

1 year ago

This release include major protocol changes and incompatible with previous releases.

Changes:

  1. Added WFB-ng standard draft. We announce standard draft for long-range data transmission via raw wifi radio.
  2. WFB-ng now supports multiple links out of box. You can use one GS for multiple drones control (channel bandwidth will be shared between all of them)
  3. Added missing libsodium init. You will be warned if not enough entropy is available.
  4. WFB-ng wifi cards now will be automatically set to unmanaged state in NetworkManager during service startup. No need to add them manually to NetworkManager.conf anymore.
  5. LDPC now enabled by default due to most of the setups use rtl8812au cards. If you use Ralink or Atheros cards you need to disable it in config file.
  6. Added project logo.

Raspberry PI 3B ready to use image:

  • 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 bugreport.
  • 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!

wifibroadcast-22.05

1 year ago

Changes:

  1. Fixed bug with mavlink rx error report
  2. CLI refactoring - now works even for very small terminal sizes
  3. Removed python2 support - minimal python version now is 3.6
  4. Log messages for lost packets now aggregated - no more log flooding.
  5. Location of /etc/wifibroadcast.cfg can be customized via WIFIBROADCAST_CFG environment variable
  6. mavlink_sys_id/comp_id for injected RADIO_STATUS packets can be customized via config file.

Due to (6) you need to use osd >= 22.05

If you have Raspberry PI 3/3B/3B+ then you can try to use preconfigured image.

Just flash it into the SD-card (8Gb or larger), ssh to the board and follow instructions on the screen.

wifibroadcast-21.08

2 years ago

This release is NOT compatible with previous releases due to packet header change. You need to upgrade both drone and GS sides.

Changes:

  1. Fix bug with FEC if first packet of block was not lost
  2. Add TX FEC timeout option: emit empty packets if block is open but no input. This can reduce video latency and allow to use K/N FEC for telemetry where K > 1 This option is disabled by default, use it on your own risk.
  3. Add serial endpoint support. You can use peer = 'serial:ttyX:1500000 to connect directly to autopilot without mavlink-router
  4. Add ARM/DISARM handler. You can use call_on_arm = '/some/binary' and/or call_on_disarm = '/other/binary' in telemetry sections of drone and GS. For example this can be used for trigger video recording.
  5. Add telemetry mirroring on GS. You can use it to mirror all incoming mavlink traffic to some UDP port (for example to OSD app) without mavlink-router
  6. Python3 is now default. Python2 support will be dropped in the next release

wifibroadcast-21.03.2

2 years ago

This is a bugfix release:

  • Fixed bug with broken FEC introduced in 20.12

wifibroadcast-21.03.1

3 years ago

This is a bugfix release:

  • Fixed memory leak in FEC code
  • Fixed python3 compatibility

Binary builds are for Ubuntu 18.04 (amd64) and Raspbian (armhf)

wifibroadcast-21.02

3 years ago

Changes:

  • Fixed long living bug with settings sync freeze in QGroundControl
  • Fixed radiotap parsing on high-endian machines (some OpenWRT routers)

Supported platforms: Linux kernels 4.x and 5.x Supported hardware: rtl8812au, rt28xx Prebuild packages: Ubuntu-18.04 (amd64), Raspbian (arm32)

wifibroadcast-20.12

3 years ago
  • Decrease latency in pcap
  • Improve FEC behavior: don't discard packets from incomplete blocks