Ethernet (Udp) library speed for ESP32 and W5500

I am basically trying to build a cheap DMX512 for ArtNet.

I have succeeded to get a Raspberry Pi3 to receive and understand the ArtNet Ethernet communication sent from Jinx! for a LED-matrix 128 x 64.

And now I try the same with ESP32 with a W5500 ethernet adaptor.

The W5500 adaptor works well.

The problem is, that the Jinx! is sending a lot of data with 25 frames per sec.

So far I have noticed, that the Ethernet.h EthernetUdp.h (Ethernet2.h EthernetUdp2.h) library in ESP32 only receives 6 universes out of 64 within a frame. The typical universes to receive are 0, 1, 2, 3, 10, 44.
This tells me, that there is a buffer, that initially works fine until it’s filled so that subsequent communication slows down.

I can understand, that this was not noticed yet since the examples for UDP are made for very short messages in a ridiculously slow dialog. But this is usually not the case when you are using the network.

My feeling is that ESP32 should be able to communicate with the speed that Jinx! is sending the data.
(128 * 64 * 3 * 25 bytes makes ca 6Mbit/sec)

Maybe the UDP is not the right choice, but this is the choice I have made life so far.

If simply fixing the Ethernet library is not possible I would appreciate any help.

P.S. For those curious asking why not use WiFi, the simple answer is that with about 10 WiFi nets around you in a “normal” city flat, you will lose too many packets in the air and not only in the ESP32 libraries.

1 Like