Low FPS Counter


I have this graphical interface but at the moment when the RPM needle increases or moves it generates low fps! Any way to manage memory? so you can increase an acceptable number! I have tried with lv_conf but no luck!

What MCU/Processor/Board and compiler are you using?

ESP32-S3 HMI 8M PSRAM 16M Flash Arduino LVGL WIFI&Bluetooth 5 " IPS 800*480
From AliExpress

What LVGL version are you using?


What do you want to achieve?

Better FPS

What have you tried so far?

Mod custom mem on lv_conf

Code to reproduce

The code block(s) should be formatted like:

/1: use custom malloc/free, 0: use the built-in lv_mem_alloc() and lv_mem_free()/
#define LV_MEM_CUSTOM 1
#if LV_MEM_CUSTOM == 0
/Size of the memory available for lv_mem_alloc() in bytes (>= 2kB)/
#define LV_MEM_SIZE (256U * 1024U) /[bytes]/

/*Set an address for the memory pool instead of allocating it as a normal array. Can be in external SRAM too.*/
#define LV_MEM_ADR 0     /*0: unused*/
/*Instead of an address give a memory allocator that will be called to get a memory pool for LVGL. E.g. my_malloc*/
#if LV_MEM_ADR == 0
    #undef LV_MEM_POOL_ALLOC

#define LV_MEM_CUSTOM_INCLUDE <stdlib.h> /Header for the dynamic memory function/
#define LV_MEM_CUSTOM_ALLOC malloc
#define LV_MEM_CUSTOM_FREE free
#define LV_MEM_CUSTOM_REALLOC realloc
#endif /LV_MEM_CUSTOM/

/*Number of the intermediate memory buffer used during rendering and other internal processing mechanisms.
*You will see an error log message if there wasn’t enough buffers. */
#define LV_MEM_BUF_MAX_NUM 16

/Use the standard memcpy and memset instead of LVGL’s own functions. (Might or might not be faster)./

Screenshot and/or video

here is a video with the problem
Video Low FPS

800x480 isnt relevant info. For performance question is your LCD connected bus 16bit or ? Have own framebuffer or not? But primary how FPS you see and ??