esp32 AsyncUDP
Posted: Fri Nov 03, 2023 8:58 am
Hello,
I am using esp32-poe and trying to do something like artnet player. Basically i get effects (like gradient) calculated in code and I want to send them further to other devices. Problem I have is with UDP and fps. I would like to get as much universes as i can with atleast 30 fps. I am using simple AsyncUDP code to send all universes(one universe = one packet). While i am sending less than around 30 packets its all good, but if with more there is irregular drop in fps from this 30th packet. While first 28 packets are getting stable 30-32fps (depends on number of universes i want to send) after 30th packet some are universes are send with speed of ~5fps and some ~20fps.
I checked my code and all variables up to line
and didn't notice any problems, also AsyncUDP function doesn't return any errors.
In wireshark i notice lack of some packets in batched but as drop in fps would indicate only after those first 30 packets.
Also i used WifiUDP and while fps dropped by a lot, it sends all packets with more stable fps all across whole batch.
Is it even possible to send that many packets with stable fps outcome?
I am using esp32-poe and trying to do something like artnet player. Basically i get effects (like gradient) calculated in code and I want to send them further to other devices. Problem I have is with UDP and fps. I would like to get as much universes as i can with atleast 30 fps. I am using simple AsyncUDP code to send all universes(one universe = one packet). While i am sending less than around 30 packets its all good, but if with more there is irregular drop in fps from this 30th packet. While first 28 packets are getting stable 30-32fps (depends on number of universes i want to send) after 30th packet some are universes are send with speed of ~5fps and some ~20fps.
I checked my code and all variables up to line
Code: Select all
testUdp.writeTo(buffer, DMX_BUFFER_SIZE, client, ARTNET_DEFAULT_PORT)
In wireshark i notice lack of some packets in batched but as drop in fps would indicate only after those first 30 packets.
Also i used WifiUDP and while fps dropped by a lot, it sends all packets with more stable fps all across whole batch.
Is it even possible to send that many packets with stable fps outcome?