I am using LVGL 8 on an ESP32 with esp-idf in order to have a simple GUI on a 3.2" 320x240 LCD with resistive touch. It’s working great but I keep on running into memory issues as I have many things running on that controller.
I allocate one buffer with
buf1 = (lv_color_t*)heap_caps_malloc(DISP_BUF_SIZE * sizeof(lv_color_t), MALLOC_CAP_DMA);
and have a color depth of 16 bits.
I tried to change the settings to 8 bit color depth which (obviously) decreases the memory footprint for the framebuffer, but the picture looks totally weird, probably because the display needs 16 bit per dot.
Is there a way to artificially reduce the framebuffer size to 8 bit colors (8 bit colors would be sufficient to me) and use it with a 16 bit display?
ESP32 with esp-idf
Reduce memory footprint
Add the relevant code snippets here.
The code block(s) should be between
buf1 = (lv_color_t*)heap_caps_malloc(DISP_BUF_SIZE * sizeof(lv_color_t), MALLOC_CAP_DMA); lv_disp_draw_buf_init(&disp_buf, buf1, NULL, DISP_BUF_SIZE);
If possible, add screenshots and/or videos about the current state.