ROS with Raspberry Pi: Improving WIFI Upload Speed

Hardware Considerations

  • Raspberry Pi 4: 2.4 & 5GhZ, 802.11 b/g/n/ac
  • Raspberry Pi 3B+: 2.4 & 5GhZ, 802.11 b/g/n/ac

Internet Upload Speed on a 2.4GHz and 5GHz network

  • Measurement tool: Speedtest
  • Model: Raspberry Pi 3B+, Raspberry Pi 4
  • Operating System: Raspberry Pi Os 2021–05–07, Ubuntu Server 20.04
  • Network: 2.4 Ghz, 5 Ghz

Raspberry Pi 3B+, 2.4GHz Network, Raspberry Pi OS

Testing download speed................................................................................
Download: 12.76 Mbit/s
Testing upload speed......................................................................................................
Upload: 25.93 Mbit/s

Raspberry Pi 3B+, 5GHz Network, Raspberry Pi OS

Testing download speed................................................................................
Download: 72.61 Mbit/s
Testing upload speed......................................................................................................
Upload: 40.84 Mbit/s

Raspberry Pi 4, 2.4Ghz, Ubuntu 20.4

Testing download speed................................................................................
Download: 21.22 Mbit/s
Testing upload speed......................................................................................................
Upload: 22.05 Mbit/s

Raspberry Pi 4, 5Ghz, Ubuntu 20.4

Testing download speed................................................................................
Download: 34.35 Mbit/s
Testing upload speed......................................................................................................
Upload: 28.88 Mbit/s

Comparison

Speed Measurement Streaming Data

  • Measurement tool: iperf
  • Model: Raspberry Pi 3B+, Raspberry Pi 4 (running Raspberry Pi OS 2021–05–07)
  • Network: 2.4 Ghz, 5 Ghz, Ethernet
  • Data Direction: From Raspberry Pi Workstation, between different Raspberry Pi’s

Ethernet / Raspberry Pi 4, => Linux Workstation

[  4] local 192.168.2.102 port 5001 connected with 192.168.2.204 port 52960
[ 4] 0.0-10.0 sec 1.10 GBytes 941 Mbits/sec

5Ghz Wi-Fi / Raspberry Pi 4, => Linux Workstation

[  3] local 192.168.2.116 port 39080 connected with 192.168.2.102 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.1 sec 15.0 MBytes 12.4 Mbits/sec

2.4Ghz Wi-Fi / Raspberry Pi 4 => Raspberry Pi 3B+

[  4] local 192.168.2.116 port 5001 connected with 192.168.2.204 port 56496
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-11.9 sec 26.4 MBytes 18.6 Mbits/sec

2.4Ghz Wi-Fi / Raspberry Pi 3B+ => Raspberry Pi 4

[ ID] Interval       Transfer     Bandwidth
[ 3] 0.0-10.2 sec 12.5 MBytes 10.3 Mbits/sec

Comparison

Speed Measurement Streaming Data with Dedicated Access Point

  • Measurement tool: iperf
  • Model: Raspberry Pi 3B+, Raspberry Pi 4 (running Raspberry Pi Os 2021–05–07)
  • Network: 2.4 Ghz, 5 Ghz
  • Data Direction: From Raspberry Pi Workstation, between different Raspberry PI

Network Speed Optimization

2.4 GHz Wi-Fi / Workstation => Raspberry Pi 4

Connecting to host 192.168.3.101, port 5201
[ 5] local 192.168.2.202 port 50960 connected to 192.168.3.101 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 11.2 MBytes 93.8 Mbits/sec 0 615 KBytes
[ 5] 1.00-2.00 sec 8.75 MBytes 73.4 Mbits/sec 0 1.01 MBytes
[ 5] 2.00-3.00 sec 7.50 MBytes 62.9 Mbits/sec 0 1.39 MBytes
[ 5] 3.00-4.00 sec 7.50 MBytes 62.9 Mbits/sec 0 1.77 MBytes
[ 5] 4.00-5.00 sec 7.50 MBytes 62.9 Mbits/sec 0 2.14 MBytes
[ 5] 5.00-6.00 sec 7.50 MBytes 62.9 Mbits/sec 0 2.50 MBytes
[ 5] 6.00-7.00 sec 7.50 MBytes 62.9 Mbits/sec 0 2.54 MBytes
[ 5] 7.00-8.00 sec 6.25 MBytes 52.4 Mbits/sec 0 2.54 MBytes
[ 5] 8.00-9.00 sec 7.50 MBytes 62.9 Mbits/sec 0 2.54 MBytes
[ 5] 9.00-10.00 sec 7.50 MBytes 62.9 Mbits/sec 0 2.54 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 78.7 MBytes 66.0 Mbits/sec 0 sender
[ 5] 0.00-10.35 sec 78.3 MBytes 63.4 Mbits/sec receiver

2.4 GHz Wi-Fi / Raspberry Pi 4 => Workstation

Connecting to host 192.168.2.202, port 5201
[ 5] local 192.168.3.101 port 35756 connected to 192.168.2.202 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 6.46 MBytes 54.2 Mbits/sec 0 294 KBytes
[ 5] 1.00-2.00 sec 7.39 MBytes 62.0 Mbits/sec 0 465 KBytes
[ 5] 2.00-3.00 sec 6.52 MBytes 54.7 Mbits/sec 0 628 KBytes
[ 5] 3.00-4.00 sec 6.84 MBytes 57.3 Mbits/sec 0 628 KBytes
[ 5] 4.00-5.00 sec 6.46 MBytes 54.2 Mbits/sec 0 694 KBytes
[ 5] 5.00-6.00 sec 6.71 MBytes 56.3 Mbits/sec 0 694 KBytes
[ 5] 6.00-7.00 sec 7.46 MBytes 62.6 Mbits/sec 0 694 KBytes
[ 5] 7.00-8.00 sec 6.77 MBytes 56.8 Mbits/sec 0 694 KBytes
[ 5] 8.00-9.00 sec 6.71 MBytes 56.3 Mbits/sec 0 694 KBytes
[ 5] 9.00-10.00 sec 6.71 MBytes 56.3 Mbits/sec 0 694 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 68.0 MBytes 57.1 Mbits/sec 0 sender
[ 5] 0.00-10.02 sec 66.7 MBytes 55.8 Mbits/sec receiver

5GHz Wi-FI / Workstation => Raspberry Pi 4

Connecting to host 192.168.3.101, port 5201
[ 5] local 192.168.2.202 port 51148 connected to 192.168.3.101 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 11.6 MBytes 97.4 Mbits/sec 0 460 KBytes
[ 5] 1.00-2.00 sec 9.54 MBytes 80.0 Mbits/sec 0 909 KBytes
[ 5] 2.00-3.00 sec 10.0 MBytes 83.9 Mbits/sec 0 1.34 MBytes
[ 5] 3.00-4.00 sec 8.75 MBytes 73.4 Mbits/sec 0 1.77 MBytes
[ 5] 4.00-5.00 sec 10.0 MBytes 83.9 Mbits/sec 0 2.23 MBytes
[ 5] 5.00-6.00 sec 10.0 MBytes 83.9 Mbits/sec 0 2.55 MBytes
[ 5] 6.00-7.00 sec 8.75 MBytes 73.4 Mbits/sec 0 2.55 MBytes
[ 5] 7.00-8.00 sec 10.0 MBytes 83.9 Mbits/sec 0 2.55 MBytes
[ 5] 8.00-9.00 sec 10.0 MBytes 83.9 Mbits/sec 0 2.55 MBytes
[ 5] 9.00-10.00 sec 10.0 MBytes 83.9 Mbits/sec 0 2.55 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 98.7 MBytes 82.8 Mbits/sec 0 sender
[ 5] 0.00-10.03 sec 97.9 MBytes 81.9 Mbits/sec receiver

5GHz Wi-FI / Raspberry Pi 4 => Workstation

Connecting to host 192.168.2.202, port 5201
[ 5] local 192.168.3.101 port 35768 connected to 192.168.2.202 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 8.53 MBytes 71.6 Mbits/sec 0 163 KBytes
[ 5] 1.00-2.00 sec 8.39 MBytes 70.4 Mbits/sec 0 171 KBytes
[ 5] 2.00-3.00 sec 8.58 MBytes 71.9 Mbits/sec 0 180 KBytes
[ 5] 3.00-4.00 sec 8.33 MBytes 69.9 Mbits/sec 0 180 KBytes
[ 5] 4.00-5.00 sec 8.45 MBytes 70.9 Mbits/sec 0 180 KBytes
[ 5] 5.00-6.00 sec 8.58 MBytes 71.9 Mbits/sec 0 180 KBytes
[ 5] 6.00-7.00 sec 8.64 MBytes 72.5 Mbits/sec 0 180 KBytes
[ 5] 7.00-8.00 sec 8.58 MBytes 71.9 Mbits/sec 0 180 KBytes
[ 5] 8.00-9.00 sec 8.39 MBytes 70.4 Mbits/sec 0 180 KBytes
[ 5] 9.00-10.00 sec 8.70 MBytes 73.0 Mbits/sec 0 259 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 85.2 MBytes 71.4 Mbits/sec 0 sender
[ 5] 0.00-12.24 sec 84.6 MBytes 58.0 Mbits/sec receiver

Comparison

Conclusion

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Sebastian

Sebastian

IT Project Manager & Developer