You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+48-57Lines changed: 48 additions & 57 deletions
Original file line number
Diff line number
Diff line change
@@ -1,20 +1,23 @@
1
-

1
+

2
2
3
3
This is the next generation of long-range **packet** radio link based on **raw WiFi radio**
4
4
5
5
Main features:
6
6
--------------
7
-
- 1:1 map of RTP to IEEE80211 packets for minimum latency (doesn't serialize to byte stream)
8
-
- Smart FEC support (immediately yield packet to video decoder if FEC pipeline without gaps)
7
+
-**1:1 map of RTP to IEEE80211 packets for minimum latency** (doesn't serialize to byte stream)
8
+
-**Smart FEC support** (there are many FEC improvements which allow to reduce latency in case of packet loss)
9
9
-[Bidirectional mavlink telemetry](https://github.com/svpcom/wfb-ng/wiki/Setup-HOWTO). You can use it for mavlink up/down and video down link.
10
-
- IP-over-WFB tunnel support. You can transmit ordinary ip packets over WFB link. Note, don't use ip tunnel for high-bandwidth transfers like video or mavlink. It uses less efficient FEC coding and doesn't aggregate small packets.
11
-
- Automatic TX diversity (select TX card based on RX RSSI)
12
-
- Stream encryption and authentication ([libsodium](https://download.libsodium.org/doc/))
13
-
- Distributed operation. It can gather data from cards on different hosts. So you don't limited to bandwidth of single USB bus.
14
-
- Aggregation of mavlink packets. Doesn't send wifi packet for every mavlink packet.
10
+
-**IPv4 tunnel for generic usage.** You can transmit ordinary ip packets over WFB link. Note, don't use ip tunnel for high-bandwidth transfers like video or mavlink because it has more overhead than raw udp streams.
11
+
-**Automatic TX diversity** (select TX card based on RX RSSI)
12
+
-**Stream encryption and authentication** ([libsodium](https://download.libsodium.org/doc/))
13
+
-**Distributed operation.** It can gather data from cards on different hosts. So you don't limited to bandwidth of single USB bus.
14
+
-**Aggregation of mavlink and tunnel packets.** Doesn't send wifi packet for every mavlink or tunnel packet.
15
+
-**Dynamic FEC and radio modulation.** You can change channel capacity/reliability without link interruption.
16
+
-**Full channel state logging including mavlink parser.** You can log all telemetry and link state for future offline debug.
17
+
-**Support for traffic shaper**. You can use standard linux traffic shapers to priority different channels and/or data/fec packets.
15
18
- Enhanced [OSD](https://github.com/svpcom/wfb-ng-osd) for Raspberry PI (consume 10% CPU on PI Zero) or any other system which
16
-
supports gstreamer (Linux X11, etc). Compatible with any screen resolution. Supports aspect correction for PAL to HD scaling.
17
-
-Provides IPv4 tunnel for generic usage
19
+
supports gstreamer and OpenGL (Linux X11/Wayland, etc). Compatible with any screen resolution.
20
+
-Supported CPU architectues: **arm32v7, arm64v8, amd64, mips64le, s390x, ppc64le, i386**. I.e. any linux with kernel >= 4.x and usb port.
18
21
19
22
> :warning:**Warranty/Disclaimer** <br />
20
23
> This is free software and comes with no warranty, as stated in parts 15 and 16 of the GPLv3 license. The creators and contributors of the software are not responsible for how it is used.
@@ -26,9 +29,20 @@ If you like WFB-ng you can support author via:
-**RTL8812au**. (stable) 802.11ac capable. [**Requires external patched driver!**](https://github.com/svpcom/rtl8812au) System was tested with ALPHA AWUS036ACH on both sides in 5GHz mode.
41
+
-**RTL8812eu**. (stable) 802.11ac capable. [**Requires external patched driver!**](https://github.com/svpcom/rtl8812eu) System was tested with [LB-LINK's BL-M8812EU2 module](https://www.lb-link.com/product_36_183.html)
42
+
29
43
## Getting Started
30
44
31
-
For detailed instructions on how to get started read through
45
+
For detailed instructions on how to get started read through
# see https://en.wikipedia.org/wiki/List_of_WLAN_channels for reference
119
-
```
120
-
Ensure the WiFi channel selected is the same on the ground and on the drone.
124
+
1. Check WFB-ng GS logs with `sudo journalctl -xu wifibroadcast@gs`. If there is any errors then try to resolve it.
125
+
2. If there are any encryption errors then ensure that `drone.key` and `gs.key` on drone and gs corresponds each other.
126
+
2. Make sure the WiFi channel and link domain on the ground and on the drone are the same. To check, see `/etc/wifibroadcast.cfg` and ensure that `[common] wifi_channel` and `[drone] link_domain` / `[gs] link domain` is the same on the ground and on the drone.
121
127
122
128
---
123
129
124
130
125
131
## FAQ
126
-
**Q: What type of data can be transmitted using WFB-NG?**
132
+
**Q: What type of data can be transmitted using WFB-ng?**
127
133
128
-
**A:** Any UDP with packet size <= 1445. For example x264 inside RTPor Mavlink.
134
+
**A:** Any UDP with packet size <= 3993. For example x264/265 inside of RTP, Mavlink or generic IPv4 via tunnel.
129
135
130
136
**Q: What are transmission guarantees?**
131
137
132
-
**A:**Wifibrodcast uses FEC (forward error correction) which can recover 4 lost packets from 12 packets block with default settings. You can tune it (both TX and RX simultaneously!) to fit your needs.
138
+
**A:**WFB-ng uses FEC (forward error correction) which can recover 4 lost packets from 12 packets block with default settings. You can tune it to fit your needs.
133
139
134
140
**Q: Is only Raspberry PI supported?**
135
141
136
-
**A:** WFB-NG is not tied to any GPU - it operates with UDP packets. But to get RTP stream you need a video encoder (which encodes raw data from camera to x264 stream). In my case RPI is only used for video encoding (because RPI Zero is too slow to do anything else) and all other tasks (including WFB-NG) are done by other board (NanoPI NEO2).
142
+
**A:** WFB-ng is not tied to any GPU - it operates with UDP packets. But to get RTP stream you need a video encoder (which encodes raw data from camera to x264 stream). In my case RPI is only used for video encoding (because RPI Zero is too slow to do anything else) and all other tasks (including WFB-ng) are done by other board (NanoPI NEO2).
137
143
138
144
**Q: What is a difference from original wifibroadcast?**
139
145
140
146
**A:** Original version of wifibroadcast uses a byte-stream as input and splits it to packets of fixed size (1024 by default). If radio packets were lost and this is not corrected by FEC you'll get a hole at random (unexpected) place of stream. This is especially bad if data protocol is not resistant to (was not desired for) such random erasures. So i've rewritten it to use UDP as data source and pack one source UDP packet into one radio packet. Radio packets now have variable size depending on payload size. This reduces video latency a lot.
141
147
142
148
## Theory
143
-
WFB-NG puts the wifi cards into monitor mode. This mode allows to send and receive arbitrary packets without association and waiting for ACK packets.
149
+
WFB-ng puts the wifi cards into monitor mode. This mode allows to send and receive arbitrary packets without association and waiting for ACK packets.
144
150
-[WFB-ng design and protocol description](https://github.com/svpcom/wfb-ng/blob/master/doc/wfb-ng-std-draft.md)
145
151
-[Analysis of Injection Capabilities and Media Access of IEEE 802.11 Hardware in Monitor Mode](https://github.com/svpcom/wfb-ng/blob/master/doc/Analysis%20of%20Injection%20Capabilities%20and%20Media%20Access%20of%20IEEE%20802.11%20Hardware%20in%20Monitor%20Mode.pdf)
Leave them in place for development build or copy to `/etc` for binary install.
202
207
Put `drone.key` to drone and `gs.key` to gs.
203
-
204
-
Supported WiFi hardware:
205
-
------------------------
206
-
-**RTL8812au**. (stable) 802.11ac capable. [**Requires external patched driver!**](https://github.com/svpcom/rtl8812au) System was tested with ALPHA AWUS036ACH on both sides in 5GHz mode.
207
-
-**RTL8812eu**. (beta) 802.11ac capable. [**Requires external patched driver!**](https://github.com/svpcom/rtl8812eu) System was tested with [LB-LINK's BL-M8812EU2 module](https://www.lb-link.com/product_36_183.html)
208
-
209
-
Wiki:
210
-
-----
211
-
See https://github.com/svpcom/wfb-ng/wiki for additional info
0 commit comments