November 08, 2024, 11:13:30 AM

ESP32-POE Maximum Bandwidth

Started by RobinB, March 04, 2020, 02:33:26 PM

Previous topic - Next topic

RobinB

Hi! I just received my Olimex ESP-PoE board, and I've been conducting some speed tests. So far I've only used the provided Arduino Example and modified it to count and receive data as fast as possible. The maximum speed I get using both TCP and UDP is only around 500 kbyte / sec. Can anyone confirm those numbers? Where is my bottleneck?

I'm using a gigabit switch with fixed IPs and a Python script that is capable of sending faster data. I'm using large packages close to the MTU size.

LubOlimex

#1
Hello,

This is probably some library or software issue since Ethernet throughput is tested as part of the tests after production.

We performed a number of throughput tests with ESP32-PoE, ESP32-PoE-ISO, and ESP32-EVB using iperf. The Ethernet speed is similar when using ESP32-PoE, ESP32-PoE-ISO, and ESP32-EVB, it is between 20 and 40 Mbits/s.

We've published the code that we used for our tests at our GitHub. The examples were made with ESP-IDF. The demo for ESP32-PoE and ESP32-PoE-ISO is here: https://github.com/OLIMEX/ESP32-POE/tree/master/SOFTWARE/ESP-IDF/ESP32_PoE_iperf

The demo for ESP32-EVB is here: https://github.com/OLIMEX/ESP32-EVB/tree/master/SOFTWARE/ESP32-iperf

The demos are similar only the software definitions (pin assignments for example) are different. The two boards require different configurations because they have hardware differences mainly related to the Ethernet clock.

There are sample results that we got here in each project.

Let me know if you get better results with the demos above.

Best regards,
Lub/OLIMEX
Technical support and documentation manager at Olimex

RobinB

Thanks for the reply Lub! I have no experience with ESP-IDF directly, but I'll try to get it running. It would be great to have a working example for the arduino environment as well, that can make use of faster speeds.