Adding External Wi-Fi antenna to robot - or how to drive in the kitchen
Github with installation instructions here here, for this product.
Install speedtest here and run with speedtest.
Result with no antenna from living room:
Server: LWLcom GmbH - Berlin (id: 53495)
ISP: Vodafone Germany
Idle Latency: 10.67 ms (jitter: 0.65ms, low: 10.56ms, high: 12.68ms)
Download: 53.86 Mbps (data used: 42.4 MB)
153.09 ms (jitter: 48.94ms, low: 14.20ms, high: 237.29ms)
Upload: 10.74 Mbps (data used: 18.2 MB)
18.37 ms (jitter: 8.93ms, low: 7.88ms, high: 289.17ms)
Packet Loss: 0.0%
Result URL: https://www.speedtest.net/result/c/dcd7f435-ed2c-4968-be81-fe1d77f63eb6
Result with no antenna from kitchen:
Server: LWLcom GmbH - Berlin (id: 53495)
ISP: Vodafone Germany
Idle Latency: 12.67 ms (jitter: 1.84ms, low: 11.57ms, high: 15.24ms)
Download: 16.51 Mbps (data used: 14.9 MB)
427.29 ms (jitter: 78.64ms, low: 44.57ms, high: 884.51ms)
Upload: 10.57 Mbps (data used: 17.0 MB)
34.43 ms (jitter: 26.02ms, low: 8.20ms, high: 1245.16ms)
Packet Loss: 0.0%
Result URL: https://www.speedtest.net/result/c/57070a27-3f80-4959-9e25-959c78413e59
Result with antenna from kitchen, results look improved:
Server: LWLcom GmbH - Berlin (id: 53495)
ISP: Vodafone Germany
Idle Latency: 12.16 ms (jitter: 1.89ms, low: 10.72ms, high: 13.30ms)
Download: 53.93 Mbps (data used: 40.4 MB)
150.81 ms (jitter: 48.53ms, low: 21.38ms, high: 245.11ms)
Upload: 10.87 Mbps (data used: 6.6 MB)
21.67 ms (jitter: 13.32ms, low: 9.03ms, high: 180.27ms)
Packet Loss: 0.0%
Result URL: https://www.speedtest.net/result/c/baba26b4-54b7-4bac-b539-e90bf78018df
Installing
sudo apt install -y build-essential dkms git iw
cd ~
mkdir antenna_driver
cd antenna_driver
git clone https://github.com/morrownr/8821cu-20210916.git
cd 8821cu-20210916
sudo ./install-driver.sh
Will show:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/5.15.0-1070-raspi/updates/dkms/
Editing options
I didn’t change anything, it worked out the box, may be possible to improve performance if needed.
nano /etc/modprobe.d/8821cu.conf
After install
After install and rebooting, the device will show and can be used in a network connection profile.
rpi@rpi-desktop:~$ nmcli d
DEVICE TYPE STATE CONNECTION
wlx1cbfce2684be wifi connected wlx1cbfce2684be-Vodafone-1A49
Created the following connection profile wlx1cbfce2684be-Vodafone-1A49.nmconnection:
[connection]
id=wlx1cbfce2684be-Vodafone-1A49
uuid=96243c6e-92c6-4bb3-a9f3-ff28b5aa8397
type=wifi
interface-name=wlx1cbfce2684be
autoconnect-priority=10
[wifi]
mode=infrastructure
ssid=Vodafone-1A49
[wifi-security]
auth-alg=open
key-mgmt=wpa-psk
psk=<password>
[ipv4]
route-metric=100
method=auto
addresses=192.168.0.197/24
[ipv6]
addr-gen-mode=stable-privacy
method=auto
[proxy]
Handling fallbacks and routes with NetworkManager
We can keep both connections running on wlan0 and wlx1cbfce2684be, they just can’t have the same IP. I want the behaviour to be use wlx1cbfce2684be when it is available, and wlan0 when not. Achieved this with 2 parameters in the connection profiles:
ipv4.route-metric=100- We want a lower value for the preferred one.connection.autoconnect-priority=10- We want a higher value for the preferred one. Tested this and when the antenna is disconnected, that connection goes down, andwlan0takes over. Antenna connection is currently set to192.168.0.197. The VPN ontun0goes through the default route, so as long as one connection is active the VPN stays online.