Understanding and Troubleshooting WiFi Performance using iperf

Content provided by: Mike, VA3MW

I am hoping that this may help others understand their Wifi performance, especially when it comes to getting your Maestro. While there are many ways to do what I describe here, I thought I would share my thoughts.

Also, if you get your Maestro on Wifi just humming along, your XYL will also be very happy watching Netflix's at the same time while you are doing HF. Happy Wife, Happy Life.

Sharing some personal experiences (and professional), we likely are all aware that 2.4Ghz Wifi is grossly congested. Very much like 20M in the middle of CQWW SSB.

Your Maestro running at full frame rates is much like streaming video to any device. Multiple frames/second are being sent just to keep the waterfall and panadapter running. All wonderful stuff.

5Ghz has the joy of a quieter band, wider bandwidth and unfortunately less penetration through building surfaces, however, we can work around that.

For my bandwidth tests, I have a PI hardwired on my network that I used as the test server. On the PI (are anything similar), I installed 'iperf'. https://iperf.fr/

For the PI is is very simple.

sudo apt-get install iperf

Then, start iperf with

sudo iperf -s (this will start iperf in server mode)

You can install the same on your laptop if you wish and do some simple bandwidth tests.

Using jperf (which is a gui java application) gives you some nice graphs. I have found that having javaw installed in the same subdirectory as the jperf.jar file makes your life a little easier.

My jperf directory looks like--you may or may not need the javaw file based on your system path statements.

Also, there is a risk that your javaw will not be updated by system updates -- just so you are aware.:

From here, we run the jperf.bat file.

You will need to enter the IP address of your target server and play with how many streams you want to test. As you play along, you can also try different types of streams. TCP or UDP.

iperf for windows runs fine as a command line tool, but with text output and very easy to test. jperf adds a GUI on top of iperf.

iperf moves a defined amount of data between your 2 devices and then measures the overall the bandwidth. It can do this both for TCP and UDP packets.

Both are important, however, the Maestro uses UDP packets for its waterfall, audio and panadapter. UDP makes use of available bandwidth but consider it a fire and forget missile. :)

I did several tests and the first is 2.4Ghz TCP connection with 5 streams of data. This is on a very quiet 2.4Ghz network, but not in a 2.4Ghz quiet world (my apartment in Montreal). There are some great peaks, but those are very bursty.

You can see that the streams fall apart sadly. While I am only person 2.4Ghz network on this test, I have seen it so bad that you could not even ping Google.

Next, I did the same test on 5Ghz. This is more stable and will make your Maestro very happy.

Next, let's try UDP. These results are from the laptop sending packets only to the server. For our tests, this is a bit backward at this time, but I will add more shots later that show the server (PI) sending a ton of packets back to the laptop which is more Maestro realistic.

Why this looks great, it doesn't tell us the entire story and we don't know if the far end got the data.

Since we only have 54mps of bandwidth, I thought I would try 5 x 1Mbs streams on 2.4Ghz. Again, this looks great. And, again, not the entire story.

More importantly, I will send UDP streams from the far end to the laptop much like the Maestro will be expecting.

The story now comes together.

In this case, I have the PI sending UDP packets and the laptop receiving those packets. It is the laptop that really needs to receive these packets in order to build our Maestro screens (or your wife's Netflix for that matter :) ).

On the laptop, I turned off the firewall for this test.

jperf now looks like this as we have it in server mode ready to receive UDP packets.

On the PI, we want to enter this command after we hit Run iPerf on the GUI running on the laptop.

iperf -c -u -P 5 -i 1 -p 5001 -C -f k -b 10.0M -t 10 -T 1

Of course, is the IP address of my test laptop. You need to change it to match your test box.

You will start to see:

root@raspberrypi:~# iperf -c -u -P 5 -i 1 -p 5001 -C -f k -b 10.0M -t 10 -T 1
Client connecting to, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 160 KByte (default)
[ 7] local port 36878 connected with port 5001
[ 4] local port 53192 connected with port 5001
[ 6] local port 53873 connected with port 5001
[ 5] local port 33678 connected with port 5001
[ 3] local port 40914 connected with port 5001
[ ID] Interval Transfer Bandwidth
[ 7] 0.0- 1.0 sec 1222 KBytes 10008 Kbits/sec
[ 4] 0.0- 1.0 sec 1220 KBytes 9996 Kbits/sec
[ 6] 0.0- 1.0 sec 1220 KBytes 9996 Kbits/sec
[ 5] 0.0- 1.0 sec 1220 KBytes 9996 Kbits/sec
[ 3] 0.0- 1.0 sec 1220 KBytes 9996 Kbits/sec

This test is 5 UDP streams on 2.4Ghz Wifi with nothing else going on my personal network.

The best speed we can get is just better than 2Mb/s.

Wow, this is supposed to be a G connection with speeds up to 54MB/s or more. That is NOT very good and just enough to keep your Maestro running, however, odds are you will start to see black lines in your waterfall for the dropped packets. The jitter is 7ms. Jitter is the very key as lower jitter numbers are so much better.

This next test is on 5Ghz G with 5 Streams. You can see a huge improvement. We are 5 times faster and the jitter is 1/10 of what it was on 2.4Ghz.

This will make your Maestro very happy. :)

Of course, you mileage may very.

Your 2.4Ghz might be better if you live out in the woods or a farm. For the rest of us, we are also competing with our neighbors 2.4Ghz streaming Wifi.

The moral of the story? Get off 2.4Ghz Wifi. Just about every current device (phones, tablets, iPads) are dual-band. Now is the time to make the best of it. Time to upgrade your Wifi Access Point.

I hope that helps ... good DX all.

Have more questions? Submit a request


Article is closed for comments.
Powered by Zendesk