I embarked on a mission to test every possible network interface, to create an updated version of a Raspberry Pi Network Test guide from last year. There is a new board in the Raspberry Pi Family – the Raspberry Pi 3 B+. This test will include this board and each network interface I could lay my hands on. Prepare for the nerdiest set of statistic ever.
To test each interface on each board in 4 different situations, it requires 240min of actual test time. This does not include all the faffing about to make everything work. This is why this test will be split into 2 or even 3 parts. Brace yourself!
I’m going to test the following boards:
- Raspberry Pi 2
- Raspberry Pi 3
- Raspberry Pi 3B+
- Raspberry Pi Zero
- Raspberry Pi ZeroW
Raspberry PI Network Test will include the following interfaces:
- Built-in WiFI (where possible) (including 5GHz for the Raspberry Pi 3B+)
- Built-in Ethernet (where possible)
- USB 3.0 Ethernet dongle (each board)
- 2.4GHz ‘unbranded’ USB Dongle
- 2.4GHz and 5GHz TP-Link Archer T2U USB WiFi Dongle
- A “fake” micro USB 2.0 Ethernet dongle (bonus)
The test is performed using iperf3:
iperf3 -c 192.168.1.136 -p 5202 -V -t 60 iperf3 -c 192.168.1.136 -p 5202 -V -t 60 -R
including a reversed mode, both lasting a minute. I’m using a lite (and headless) version of Raspbian updated to March 2018. The same image is used across all Raspberries. Iperf3 server runs on Windows PC wired via Gigabit Ethernet to the Linksys WRT1900ACS running the standard firmware. It’s 3 am and I’m home alone. I used the Fingbox to block all other devices from the network. It’s super practical for testing!
Raspberry PI Network Test (part 1) Ideal circumstances
This was actually the hardest part. Mostly because I had to deal with the cases like ending up with 5 interfaces actually connected to the single Rasberry Pi! Things weren’t working as suppose to at first and the TP-Link dongle needed a special driver.
For this scenario, every board is within a 1m of the router, connected directly via Ethernet or facing the router, when WiFi is tested. This is a benchmark test and should represent the fastest speeds per each interface.
The Built-in Ethernet
Not all boards come with one. I’m surprised to see how the speed drops when the Raspberry Pi 3B+ acts as the server. The data was very consistent on RPI2, and RPI3 regardless of the configuration, while RPI3B+ was acting up as a server with the lower reads at 96Mbits/sec and upper 246Mbits/sec.
The USB 3.0 Ethernet
I bought a USB 3.0 dongle, that turns the USB port into an Ethernet. I’m aware that all the Raspberries come with USB 2.0 bus, but since I didn’t want to have bottlenecks, I used the best option.
The RPI3 & RPI3B+ performed well across the test, while RPI2 had some mixed speeds in the server configuration. The Zero and ZeroW struggled in the server configuration with speeds between 24Mbits/sec and 90Mbits/sec.
The Built-in WiFi
Again, not each board has it, but here are the results of the test. The RPI3 has struggled a little bit in a server configuration with the speeds ranging between 24Mbits/sec and 40Mbits/sec.
The new board Raspberry PI 3B+ comes with 5GHz support so I run the test as well. The speeds were consistent in both server and client configurations but not faster than the 2.4GHz band. Is the wireless interface at max speed already? It would mean that the 5GHz band is added purely for compatibility reasons?
The 2.4GHz “unbranded” WiFi USB 2.0 Dongle
Every board got tested with this small dongle. As you can see from the graph the results are consistent. The RPI3B+ had few reads lower than the rest, bringing the average speed down. Something tells me this has been caused by the not optimised yet software.
The 2.4GHz TP-Link WiFi USB 2.0 Archer T2U
This adapter was a nightmare to troubleshoot. It took me ages to find the driver, and even then, the adapter would not load correctly or straight on refuse to work despite being listed as a connected device. I was not able to load it on Zero boards or RPI2 (I used the same SD card).
The 5GHz TP-Link WiFi USB 2.0 Archer T2U
The 5GHz performance of this dongle was even more difficult to test. The dongle refused to work on anything other than the latest Raspberry Pi 3B+ and not even powered up when used with the Zero boards.
The whole operation took several hours. Due to this, I will do the ranged results in the next part. Stay tuned for more. This time I know what’s working and how to combat the problems so it should be a little easier. It’s 4:22am and I started this around 9pm. It’s time for bed as I no longer have any coffee left!