Flickering horizontal lines (esp32core s3 / Arduino )

Hi , I have a strange behavior with my project. I’m using a M5dial base on esp32 s3 + GC9A01 LCD driver. SPi seems to be ok , as I hava a, (almost) coherent rendering on screen. But I can see sort of bugged horizontal lines . I change orientation in lvgl conf file, the lines keep the same orientation.

What do you want to achieve?

Get a correct rendering

What have you tried so far?

Change some buffer sizes .

Screenshot or video

Others

  • Squareline Studio 1.5
  • Windows 11
  • ESP32CORE S3 Arduino + LVGL 8.3 + TFT_eSPI

Hi, This pattern is quite distinctive and suggests a few potential issues:

  1. Display Buffer Configuration:
  • The horizontal lines appearing only in the filled areas suggest it might be related to how the frame buffer is being written to the display
  • This could be due to inappropriate color depth settings or incorrect pixel format configuration
  1. SPI Communication:
  • Since the lines are regular and consistent, it might be related to the SPI clock timing or DMA transfer settings
  • Try reducing the SPI clock speed to see if the artifacts improve

Here’s what I suggest trying:

  1. First, verify your display initialization code:
lcd.initDisplay(SPI_CLOCK_SPEED);  // Try reducing this to something like 10MHz
  1. Check your color format settings in your LVGL configuration:
#define LV_COLOR_DEPTH     16
#define LV_COLOR_16_SWAP   0  // Try toggling this
  1. If you’re using DMA transfers, try adjusting the buffer size or temporarily disabling DMA to see if the pattern changes.
2 Likes

Hi , thanks for the tips. :+1:
I got it working correctly decreasing the SPI clock speed !