Page 1 of 1

ESP32-P4 UDP (?) Problem

Posted: Sat Oct 04, 2025 10:37 am
by jared_s
Hi,
I’m testing an ESP32-P4 PoE board as an AppleMIDI client over wired Ethernet using Lathoub’s AppleMIDI Library (https://github.com/lathoub/Arduino-AppleMIDI-Library). I’ve used this library successfully in other projects without problems.
On the ESP32-P4, when two participants send MIDI SysEx, the board gets disconnected from the AppleMIDI session (reason: it stops responding to the initiator). The loop that sends pings back to the initiator keeps running, but no data is transported over UDP.

I first used the Arduino IDE, then moved everything to ESP-IDF so I could tune all relevant UDP/Ethernet parameters (CONFIG_ETH_DMA_RX_BUFFER_NUM, CONFIG_ETH_DMA_TX_BUFFER_NUM, CONFIG_ETH_DMA_BUFFER_SIZE, etc.). Tweaking these helped a bit but didn’t fully resolve the issue.

If I flash the same code to a Particle Photon 1 or Photon 2, it’s stable over Wi-Fi with no parameter changes. I also tested the OLIMEX ESP32-P4-POE-ISO (both Wi-Fi and Ethernet) and saw the same behavior.

I tried increasing AppleMIDI defaults:

static const size_t UdpTxPacketMaxSize = 1024; // was 24
static const size_t MaxBufferSize = 2048; // was 64

This helped a little, but the device still disconnects after 1–2 minutes.

Can anyone confirm whether this setup should work on the ESP32-P4, or suggest what else to try?

Jared