MCU: ESP32S3
LVGL from esp_lvgl_port v2.6.1 (9.2 I think)
ESP-IDF: v5.4
Hello everyone,
I’m working on a fairly complex GUI composed of many screens and nested elements.
Specifically, I’m having trouble creating a menu list with multiple submenus. For example:
- A >
– AA >
– AAA
– AAB
– AAC
– AAD
– AB >
– AC > - B >
– BA >
– BB > - C >
… - Z >
Each list contains dozens of items across different levels.
Initially, I was initializing the entire screen at load time, but I encountered strange behavior with LVGL: when switching to the screen containing the menu list, the LVGL task would get stuck, and I’d see a watchdog trigger caused by some lv_* functions.
To address this, I changed my approach to load each screen dynamically upon click. I used a tileview, assigning one tile per menu item. Each tile was initialized empty and filled later.
This worked for a while, but as the implementation grew, the watchdog issue reappeared.
I’ve already increased the LVGL task stack size and adjusted various memory-related parameters in sdkconfig, but the issue persists.
My new idea is to create a maximum of n tiles, where n is the maximum depth of the menu/submenu structure, and load each element dynamically on click to further reduce memory usage.
However, even with this approach, I’m still encountering the same watchdog problem.
Has anyone experienced something similar or found a reliable solution? Any hints or suggestions would be greatly appreciated.
Thank you in advance!