| HW Reference | HOW TO USE API | EXAMPLES |
|---|
| Board Name | Screen Size (inch) | Resolution | LCD Driver IC (Interface) | Touch Driver IC | Schematic | Support |
|---|---|---|---|---|---|---|
| ESP32-S3-LCD-EV-Board-SUB1 | 0.9 | 128 x 64 | SSD1315 (I2C) | * | link | Not yet |
| 2.4 | 320 x 240 | ST7789V (SPI) | XTP2046 | Not yet | ||
| ESP32-S3-LCD-EV-Board-SUB2 | 3.5 | 480 x 320 | ST7796S (8080) | GT911 | link | Not yet |
| 3.95 | 480 x 480 | GC9503CV (RGB) | FT5x06 | Yes | ||
| ESP32-S3-LCD-EV-Board-SUB3 | 4.3 | 800 x 480 | ST7262E43 (RGB) | GT1151 | link | Yes |
Here are some useful configurations in menuconfig that can be customed by user:
BSP_LCD_RGB_BUFFER_NUMS: Configure the number of frame buffers. The anti-tearing function can be activated only when set to a value greater than one.BSP_LCD_RGB_REFRESH_MODE: Choose the refresh mode for the RGB LCD.BSP_LCD_RGB_REFRESH_AUTO: Use the most common method to refresh the LCD.BSP_LCD_RGB_BOUNCE_BUFFER_MODE: Enabling bounce buffer mode can lead to a higher PCLK frequency at the expense of increased CPU consumption. This mode is particularly useful when dealing with screen drift, especially in scenarios involving Wi-Fi usage or writing to Flash memory. This feature should be used in conjunction withESP32S3_DATA_CACHE_LINE_64Bconfiguration. For more detailed information, refer to the documentation.
BSP_DISPLAY_LVGL_BUF_CAPS: Select the memory type for the LVGL buffer. Internal memory offers better performance.BSP_DISPLAY_LVGL_BUF_HEIGHT: Set the height of the LVGL buffer, with its width aligning with the LCD's width. The default value is 100, decreasing it can lower memory consumption.BSP_DISPLAY_LVGL_AVOID_TEAR: Avoid tearing effect by using multiple buffers. This requires settingBSP_LCD_RGB_BUFFER_NUMSto a value greater than 1.BSP_DISPLAY_LVGL_MODE:BSP_DISPLAY_LVGL_FULL_REFRESH: Use LVGL full-refresh mode. SetBSP_LCD_RGB_BUFFER_NUMSto3will get higher FPS`.BSP_DISPLAY_LVGL_DIRECT_MODE: Use LVGL's direct mode.
Based on the above configurations, there are three different anti-tearing modes can be used:
- RGB double-buffer + LVGL full-refresh mode:
- Set
BSP_LCD_RGB_BUFFER_NUMSto2 - Enable
BSP_DISPLAY_LVGL_AVOID_TEARandBSP_DISPLAY_LVGL_FULL_REFRESH
- Set
- RGB double-buffer + LVGL direct-mode:
- Set
BSP_LCD_RGB_BUFFER_NUMSto2 - Enable
BSP_DISPLAY_LVGL_AVOID_TEARandBSP_DISPLAY_LVGL_DIRECT_MODE
- Set
- RGB triple-buffer + LVGL full-refresh mode:
- Set
BSP_LCD_RGB_BUFFER_NUMSto3 - Enable
BSP_DISPLAY_LVGL_AVOID_TEARandBSP_DISPLAY_LVGL_FULL_REFRESH
- Set
| Available | Capability | Controller/Codec | Component | Version |
|---|---|---|---|---|
| ✔️ | 📟 DISPLAY | espressif/esp_lcd_gc9503 espressif/esp_lcd_panel_io_additions idf |
^3 ^1 >=5.3 |
|
| ✔️ | ⚫ LVGL_PORT | espressif/esp_lvgl_port | ^2 | |
| ✔️ | ☝️ TOUCH | espressif/esp_lcd_touch_ft5x06 espressif/esp_lcd_touch_gt1151 |
^1 ^1 |
|
| ✔️ | 🔘 BUTTONS | espressif/button | ^4 | |
| ✔️ | 🎵 AUDIO | espressif/esp_codec_dev | ~1.3.1 | |
| ✔️ | 🔈 AUDIO_SPEAKER | es8311 | ||
| ✔️ | 🎤 AUDIO_MIC | es7210 | ||
| ❌ | 💾 SDCARD | |||
| ❌ | 🎮 IMU |
| Example | Description | Try with ESP Launchpad |
|---|---|---|
| Display Example | Show an image on the screen with a simple startup animation (LVGL) | Flash Example |
| Display, Audio and Photo Example | Complex demo: browse files from filesystem and play/display JPEG, WAV, or TXT files (LVGL) | Flash Example |
| LVGL Benchmark Example | Run LVGL benchmark tests | - |
| LVGL Demos Example | Run the LVGL demo player - all LVGL examples are included (LVGL) | Flash Example |
| Display Rotation Example | Rotate screen using buttons or an accelerometer (BSP_CAPS_IMU, if available) |
Flash Example |
DATE: 08.07.2025 10:31
LVGL version: 9.3.0
| Name | Avg. CPU | Avg. FPS | Avg. time | render time | flush time |
|---|---|---|---|---|---|
| Empty screen | 98% | 18 | 51 | 30 | 21 |
| Moving wallpaper | 100% | 8 | 109 | 84 | 25 |
| Single rectangle | 99% | 35 | 24 | 1 | 23 |
| Multiple rectangles | 99% | 32 | 27 | 18 | 9 |
| Multiple RGB images | 99% | 28 | 29 | 22 | 7 |
| Multiple ARGB images | 99% | 16 | 51 | 36 | 15 |
| Rotated ARGB images | 100% | 15 | 59 | 51 | 8 |
| Multiple labels | 99% | 18 | 47 | 35 | 12 |
| Screen sized text | 100% | 8 | 110 | 91 | 19 |
| Multiple arcs | 99% | 35 | 23 | 8 | 15 |
| Containers | 99% | 14 | 56 | 41 | 15 |
| Containers with overlay | 99% | 9 | 87 | 75 | 12 |
| Containers with opa | 99% | 11 | 72 | 58 | 14 |
| Containers with opa_layer | 99% | 6 | 149 | 135 | 14 |
| Containers with scrolling | 99% | 11 | 81 | 62 | 19 |
| Widgets demo | 99% | 7 | 100 | 87 | 13 |
| All scenes avg. | 99% | 16 | 67 | 52 | 15 |

