# ESP32 iperf Network performance testing tool for ESP32 based on iperf2. ## Features - TCP and UDP client/server modes - Bandwidth measurement - Packet loss detection (UDP) - Console-based control interface - WiFi station mode support ## Hardware Requirements - ESP32, ESP32-S2, or ESP32-S3 development board - WiFi network ## Software Requirements - ESP-IDF v5.0 or later - iperf2 or iperf3 for testing with PC ## Building 1. Set up ESP-IDF environment: ```bash . $HOME/Code/esp32/esp-idf/export.sh ``` 2. Set the target chip (choose one): ```bash # For ESP32 idf.py set-target esp32 # For ESP32-S2 idf.py set-target esp32s2 # For ESP32-S3 idf.py set-target esp32s3 ``` 3. Configure WiFi credentials: ```bash idf.py menuconfig ``` Navigate to "ESP32 iperf Configuration" and set your SSID and password. 4. Build the project: ```bash idf.py build ``` 5. Flash to your device: ```bash idf.py -p /dev/ttyUSB0 flash monitor ``` ## Usage ### TCP Server Mode On ESP32: ``` iperf> iperf -s ``` On PC: ```bash iperf -c ``` ### TCP Client Mode On PC: ```bash iperf -s ``` On ESP32: ``` iperf> iperf -c ``` ### UDP Mode Add `-u` flag for UDP testing: ``` iperf> iperf -s -u iperf> iperf -c -u ``` ### Options - `-s` : Run as server - `-c ` : Run as client, connecting to server IP - `-u` : Use UDP instead of TCP - `-p ` : Port number (default: 5001) - `-t