The extra time between frame was not effective.
Now, I had to add some widgets, what was worse.
I found an indirect solution: because the MTU is set at 512 (as seen by wireshark), I concatenate the message like this method instead of send each widget one by one:
memset(initBuf, 0, sizeof(initBuf)); strcpy(initBuf, "|CB UID:TempMotor X:25 Y:55 W:25 BGC:#121212 FGC:#990000 HAW:2 HAH:2 HAR:4 VAL:20 HVAL:120 BTH:2 TXTC:#000000 XTC:6 YTC:2 STA:225 ENA:-45 SHN:1 NC:#000000 CE:0 SHT:1\r\n"); strcat(initBuf, "|LB UID:T_Mot_label X:25 Y:61 W:100 FGC:#000000 FSZ:2 FFA:\"font5\" TXT:\"Mot \u00B0C\"\r\n"); strcat(initBuf, "|CB UID:TempFuel X:75 Y:55 W:25 BGC:#121212 FGC:#990000 HAW:2 HAH:2 HAR:4 VAL:20 HVAL:60 BTH:2 TXTC:#000000 XTC:6 YTC:2 STA:225 ENA:-45 SHN:1 NC:#000000 CE:0 SHT:1 LT:-1 CHAR:-1\r\n"); sendMsg(initBuf);
I send less messages, but with more datas.
In comparison, with the STM32WB I can get a status if the notification buffer is busy, but it seems it doens't in ESP32...