Hi
We have designed an ESP32C3 into a motion control device but have a BIG problem with delays when receiving UDP frames.
There is a UDP frame received every 50ms consisting of 1024 bytes of data which then controls a motion output. Jitter in the UDP reception of 10s of ms is acceptable but sometimes we get delays of over 300ms!!!!!
We are using the ESP32C3 with the latest ESP-AT release binary and have one UDP socket listening and the UART speed is set to about 450kBaud. Each UDP reception takes about 23ms to be received on the UART, which represents about 50% of the time RXD being used. At the end of each data reception we toggle an LED and therefore, when everything is operating smoothly, this LED toggles consistently once ever 50ms as seen in the recording 1.
There is never TXD activity so nothing is ever commanded during the operation.
Much of the time this works fine and everything operates correctly. However every now and then there is a freeze in the output due to the fact that the ESP32C3 doesn't send received UDP data out for a long time (more that 300ms delays are quite common).
Recording 2 shows such a case.
Here it is seen that there is a pause and following this pause queued UDP reception is send out until it recovers back to its 50ms rhythm.
The UDP frames are numbered and so we can see that none are lost, but they are delayed and queued until it recovers.
We monitor the WIFI from the PC sending the motion control data and can see the same UDP frames being sent at the expected 50ms rate, showing that the delays in the overall system are inside the ESP32C3 itself. Using the same data send from the PC with a competitor's solution doesn't show any such issues.
Obviously with such delays it is impossible to use the ESP32C3 for motion control as when this takes place it results in serious output errors.
How can these sporadic delays (typically every 20 .. 50s) be explained?
- is it a bug (eg. a task being blocked unintentionally so that the data is received but not sent out)? If so, how can a fix be made?
- is it due to another function inside the ESP32C3 that is executed occasionally with a higher priority that intentionally blocks the UDP to UART operation during that time? If so, is there a way to disable this (through AT command commands)?
Please note that this is a very serious issue as customer trials need to start shortly and at the present these will fail with the experienced behavior. A solution needs to be found to solve the issue as soon as possible.
Thanks in advance.
Regards
Mark
LARGE UDP Reception delays!!!
Jump to
- English Forum
- Explore
- News
- General Discussion
- FAQ
- Documentation
- Documentation
- Sample Code
- Discussion Forum
- Hardware
- ESP-IDF
- ESP-BOX
- ESP-ADF
- ESP-MDF
- ESP-WHO
- ESP-SkaiNet
- ESP32 Arduino
- IDEs for ESP-IDF
- ESP-AT
- ESP IoT Solution
- ESP RainMaker
- Rust
- ESP8266
- Report Bugs
- Showcase
- Chinese Forum 中文社区
- 活动区
- 乐鑫活动专区
- 讨论区
- 全国大学生物联网设计竞赛乐鑫答疑专区
- ESP-IDF 中文讨论版
- 《ESP32-C3 物联网工程开发实战》书籍讨论版
- 中文文档讨论版
- ESP-AT 中文讨论版
- ESP-BOX 中文讨论版
- ESP IoT Solution 中文讨论版
- ESP-ADF 中文讨论版
- ESP Mesh 中文讨论版
- ESP Cloud 中文讨论版
- ESP-WHO 中文讨论版
- ESP-SkaiNet 中文讨论版
- ESP 生产支持讨论版
- 硬件问题讨论
- 项目展示
Who is online
Users browsing this forum: No registered users and 3 guests
- All times are UTC
- Top
- Delete cookies
About Us
Espressif Systems is a fabless semiconductor company providing cutting-edge low power WiFi SoCs and wireless solutions for wireless communications and Internet of Things applications. ESP8266EX and ESP32 are some of our products.