Closed kasbert closed 2 months ago
@espzav Can you please help with initial triage of this ticket? Thanks
Hi @kasbert,
you are right, we are supporting mainly Espressif's boards in BSP
, drivers
and LVGL port
. We haven't HW for support 3wire SPI in LVGL port now.
Your change of lv_disp_flush_ready()
is pretty righ but better is call it after SPI transfer is done.
I added lv_disp_flush_ready
to vsync callback. Seem to work well enough.
IRAM_ATTR
static bool lvgl_flush_ready_callback(struct esp_lcd_panel_t *panel_io, const esp_lcd_rgb_panel_event_data_t *edata, void *user_ctx)
{
lv_disp_drv_t *disp_drv = (lv_disp_drv_t *)user_ctx;
assert(disp_drv != NULL);
lv_disp_flush_ready(disp_drv);
return false;
}
and
esp_lcd_rgb_panel_event_callbacks_t cbs = {
.on_vsync = lvgl_flush_ready_callback,
};
ESP_ERROR_CHECK(esp_lcd_rgb_panel_register_event_callbacks(disp_ctx->panel_handle, &cbs,
disp->driver));
I have ESP32-4848S040 board like this https://github.com/rzeldent/platformio-espressif32-sunton?tab=readme-ov-file#esp32-4848s040-c . I understand that Espressif supports only own boards, but I am hoping you could give some advise.
The board has ST7701 / 16 bit parallel interface and 3 wire SPI. For 3 wire SPI I use esp_lcd_panel_io_additions. https://github.com/espressif/esp-iot-solution/tree/master/components/display/lcd/esp_lcd_panel_io_additions. When using it with esp_lvgl_port, the driver gives an error
E (5430) lcd_panel.io.3wire_spi: Register event callbacks is not supported
Because of this, thelvgl_port_flush_ready_callback
is never called and the task hangs with a watchdog error:Adding
lv_disp_flush_ready()
tolvgl_port_flush_callback
helps, but is this the right way ?