Saturday, June 23, 2012

Testing: WiFi Performance 1 of n

Working as a roboticist one quickly develops a love/hate relationship with WiFi. One of the biggest problems, based on feedback and our internal projects, is the lack of sufficient bandwidth to transmit everything all of the time. In an attempt to deal with the problem directly, our software team ordered several external WiFi adapters and put them to the test. The tests focused determining available bandwidth without regard for range, future testing may consider the effects of range on the total system performance.

Iperf was used to test the bandwidth of various wireless devices. Selected results were verified by using SCP to transfer a 1GB file.

The upper-bound of bandwidth was found by connecting an ASUS EEE PC 1225C and an ASUS EEE PC 1215N to a router via Ethernet.

To test the devices, the ASUS EEE PC 1225C is connected to a NETGEAR WNDR3800 router running OpenWRT via Ethernet and the ASUS EEE PC 1215N is placed five feet from the router. Both laptops are running Ubuntu 10.04 kernel 2.6.38.

To test the TX bandwidth, the laptop connected by Ethernet is considered the server and the other acts as the client. To test the RX bandwidth, the roles of the laptops are switched.

server@server-laptop:~$ iperf -s
client@client-laptop:~$ iperf -c IP_SERVER -t 100 -i 2

The bandwidth is calculated using 50 samples, each sample taken at two second intervals.

Setting up TP-LINK TL-WN722N:

Depending on the version of the driver, you can check to see if your machine has the necessary drivers and firmware:

$ modinfo ath9k_htc

$ ls -al /lib/firmware/ | grep htc
- or -
$ ls -al /lib/firmware/ | grep ar

If it is not found, download missing firmware and place files in /lib/firmware/.

To get the driver, download compat-wireless tarball
$ tar -xvzf compat-wireless-x-x-x.tar.bz2
$ cd compat-wireless-x-x-x
$ ./scripts/driver-select ath9k_htc
$ make
$ sudo make install
$ sudo modprobe ath9k_htc

Plug in device. If the device light doesn't go on, reboot system.

Setting up ASUS USB-N13:

$ modinfo rt2870sta | grep 1784
$ modinfo rt2800usb | grep 1784

If both drivers claims the device, blacklist rt2800usb.

$ sudo echo "blacklist rt2800usb" >> /etc/modprobe.d/blacklist.conf

To get the driver, see here or here.

Setting up ASUS USB-N53 (H/W Ver: A1):

The most recent driver (rt3572sta version causes a kernel panic when trying to connect to a network.

$ modinfo rt3572sta

To get the driver, see here or here.

$ tar -xvzf x_x_RT3572_Linux_STA_x.x.x.x.bz2
$ cd x_x_RT3572_Linux_STA_x.x.x.x
$ gedit ./os/linux/


$ make
$ sudo make install
$ sudo modprobe rt3572sta

If you receive an error saying the device or resource is busy, run the following

$ sudo echo "blacklist rt2870sta" >> /etc/modprobe.d/blacklist.conf
$ sudo modprobe -r rt2870sta
$ sudo modprobe rt3572sta

Setting up TP-LINK TL-WDN3200 (Ver: 1.0):

This device has not yet been tested as the driver needs to be patched.

Setting up ASUS EA-N66 (H/W Ver: A1):

Plug the adapter into the laptop via Ethernet. Open a web browser to configure.



server black ASUS
(Ethernet connected)

server red ASUS

client red ASUS

client black ASUS
(Ethernet connected)

Bandwidth (Mbps)

Trial 1 Trial 2 Trial 3 Trial 4 Trial 5 Average Trial 1 Trial 2 Trial 3 Trial 4 Trial 5 Average
Ethernet 94.1 94.1 94.1 94.1 94.1 94.1 94.1 94.1 94.1 94.1 94.1 94.1
Built-in 19.3 19.3 19.8 22.4 18 19.76 32.3 36.1 33.1 29 31 32.3
TP-LINK TL-WN722N 25.5 30.3 28.6 29 28 28.28 23.9 31.2 29.8 30 27.1 28.4
ASUS EA-N66 18.4 10.5 25.8 20 13.4 17.62 59.8 53.4 38.7 44.3 50.8 49.4
ASUS USB-N13 12 12.5 13.4 14.9 8.35 12.23 18.2 18.7 17.7 17 17.1 17.74

The asymmetric results seem ideal for a laptop user looking to download files, however for a robot looking to upload large amounts of data to a ground station, the performance seems less than ideal.

We will continue testing as the drivers for the 5Ghz dual band WiFi devices become available.

If anyone has additional results or feedback on the testing procedures, please post them in the comments.

No comments: