My ILI9341 display working very slow

The refresh could be slow in two ways:

  1. You see that the screen is refreshed in blocks (I.e. 20 lines instantly and wait). I’d mean that lvgl needs a lot of time to render a part of the screen but once its ready you can display it fast.
  2. You see that the screen is refreshed line by line. It means lvgl can render the image fast but you send it slowly to the display.

From the video it seems it’s 2) in your case.

How does you my_disp_flush function look like? Do you use drawPixel() in it? If so it will be very slow the send the pixels one by one this way. Instead you should create a function similar to fillRect but with an lv_color_t * parameter instead of a constant color.

It’d be great to know how fast is your SPI and what is the resolution of you display to calculate the theoretical minimum refresh time.