OVMS3-idf/examples/wifi/iperf
Ivan Grokhotkov 6600250f30 examples: don't enable buffering on stdout in console examples
newlib uses significantly more stack space when printing to an
unbuffered stream. To reduce the amount of stack space required to
use the console, don’t disable buffering. linenoise should support
unbuffered stdout instead.
2019-06-20 16:27:42 +08:00
..
components fix iperf exit error 2019-04-23 02:49:02 +00:00
main examples: don't enable buffering on stdout in console examples 2019-06-20 16:27:42 +08:00
CMakeLists.txt cmake: make main a component again 2018-09-13 11:13:27 +08:00
iperf_test.py test: use simplified env to test iperf cases 2018-10-27 11:25:43 +08:00
Makefile remove executable permission from source files 2018-05-29 20:07:45 +08:00
README.md example: set default SPI flash mode to 40Mhz for iperf example 2018-05-03 10:42:34 +08:00
sdkconfig.defaults kconfiglib: Allow CONFIG_xxx= to disable booleans 2018-08-20 17:18:05 +10:00
sdkconfig.defaults.00 example test: add test case for iperf example 2018-05-15 13:42:26 +08:00
sdkconfig.defaults.01 example test: add test case for iperf example 2018-05-15 13:42:26 +08:00
sdkconfig.defaults.02 example test: add test case for iperf example 2018-05-15 13:42:26 +08:00
sdkconfig.defaults.03 example test: add test case for iperf example 2018-05-15 13:42:26 +08:00
sdkconfig.defaults.04 example test: add test case for iperf example 2018-05-15 13:42:26 +08:00
sdkconfig.defaults.05 example test: add test case for iperf example 2018-05-15 13:42:26 +08:00
sdkconfig.defaults.06 example test: add test case for iperf example 2018-05-15 13:42:26 +08:00
sdkconfig.defaults.07 example test: add test case for iperf example 2018-05-15 13:42:26 +08:00
sdkconfig.defaults.99 example test: add test case for iperf example 2018-05-15 13:42:26 +08:00
test_report.py example test: add test case for iperf example 2018-05-15 13:42:26 +08:00

Iperf Example

Note about 80Mhz flash frequency

The iperf can get better throughput if the SPI flash frequency is set to 80Mhz, but the system may crash in 80Mhz mode for ESP-WROVER-KIT V3. Removing R140R145 from the board can fix this issue. Currently the default SPI frequency is set to 40Mhz, if you want to change the SPI flash frequency to 80Mhz, please make sure R140R145 are removed from ESP-WROVER-KIT V3 or use ESP32 DevKitC.

Introduction

This example implements the protocol used by the common performance measurement tool iPerf. Performance can be measured between two ESP32s running this example, or between a single ESP32 and a computer running the iPerf tool

Demo steps to test station TCP Tx performance:

  1. Build the iperf example with sdkconfig.defaults, which contains performance test specific configurations

  2. Run the demo as station mode and join the target AP sta ssid password

  3. Run iperf as server on AP side iperf -s -i 3

  4. Run iperf as client on ESP32 side iperf -c 192.168.10.42 -i 3 -t 60

The console output, which is printed by station TCP RX throughput test, looks like:

esp32> sta aptest

I (5325) iperf: sta connecting to 'aptest'

esp32> I (6017) event: ip: 192.168.10.248, mask: 255.255.255.0, gw: 192.168.10.1

esp32> iperf -s -i 3 -t 1000

I (14958) iperf: mode=tcp-server sip=192.168.10.248:5001, dip=0.0.0.0:5001, interval=3, time=1000

Interval Bandwidth

esp32> accept: 192.168.10.42,62958

0- 3 sec 8.43 Mbits/sec

3- 6 sec 36.16 Mbits/sec

6- 9 sec 36.22 Mbits/sec

9- 12 sec 36.44 Mbits/sec

12- 15 sec 36.25 Mbits/sec

15- 18 sec 24.36 Mbits/sec

18- 21 sec 27.79 Mbits/sec

Steps to test station/soft-AP TCP/UDP RX/TX throughput are similar as test steps in station TCP TX.

See the README.md file in the upper level 'examples' directory for more information about examples.