WFB-NG - the next generation of long-range packet radio link based on raw WiFi radio
Fix option name collision in config file. Now for mirroring mavlink stream to OSD use osd
option name instead of mirror
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:
common.link_id
was moved to profile section and renamed to link_domain
.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.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:
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:
systemctl enable wifbroadcast@gs1:gs2:gs3:gs4
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:
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}
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.
Please note, that it is only one official group.
Please note, that it is only one official group.
unmanaged
state in NetworkManager during service startup. No need to add them manually to NetworkManager.conf anymore./etc/wifibroadcast.cfg
can be customized via WIFIBROADCAST_CFG
environment variableRADIO_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.
This release is NOT compatible with previous releases due to packet header change. You need to upgrade both drone and GS sides.
peer = 'serial:ttyX:1500000
to connect directly to autopilot without mavlink-routercall_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.This is a bugfix release:
This is a bugfix release:
Binary builds are for Ubuntu 18.04 (amd64) and Raspbian (armhf)