| HW Reference | HOW TO USE API | EXAMPLES | |
|
| — | — | — | — | – |
| ESP32-S3-LCD-EV-Board is a development board for evaluating and verifying ESP32-S3 screen interactive applications. It has the functions of touch screen interaction and voice interaction. The development board has the following characteristics: * Onboard ESP32-S3-WROOM-1 module, with built-in 16 MB Flash + 8/16 MB PSRAM * Onboard audio codec + audio amplifier * Onboard dual microphone pickup * USB type-C interface download and debugging * It can be used with different screen sub boards, and supports `RGB`, `8080`, `SPI`, `I2C` interface screens, as below: |
|
| 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 with ESP32S3_DATA_CACHE_LINE_64B configuration. 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 setting BSP_LCD_RGB_BUFFER_NUMS to a value greater than 1.
BSP_DISPLAY_LVGL_MODE:
BSP_DISPLAY_LVGL_FULL_REFRESH: Use LVGL full-refresh mode. Set BSP_LCD_RGB_BUFFER_NUMS to 3 will 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:
BSP_LCD_RGB_BUFFER_NUMS to 2BSP_DISPLAY_LVGL_AVOID_TEAR and BSP_DISPLAY_LVGL_FULL_REFRESHBSP_LCD_RGB_BUFFER_NUMS to 2BSP_DISPLAY_LVGL_AVOID_TEAR and BSP_DISPLAY_LVGL_DIRECT_MODEBSP_LCD_RGB_BUFFER_NUMS to 3BSP_DISPLAY_LVGL_AVOID_TEAR and BSP_DISPLAY_LVGL_FULL_REFRESHDATE: 01.10.2025 13:12
LVGL version: 9.3.0
| Name | Avg. CPU | Avg. FPS | Avg. time | render time | flush time |
|---|---|---|---|---|---|
| Empty screen | 97% | 18 | 52 | 30 | 22 |
| Moving wallpaper | 98% | 9 | 91 | 81 | 10 |
| Single rectangle | 98% | 35 | 24 | 1 | 23 |
| Multiple rectangles | 99% | 32 | 28 | 18 | 10 |
| Multiple RGB images | 99% | 29 | 29 | 22 | 7 |
| Multiple ARGB images | 99% | 17 | 51 | 35 | 16 |
| Rotated ARGB images | 99% | 16 | 58 | 50 | 8 |
| Multiple labels | 100% | 19 | 45 | 31 | 14 |
| Screen sized text | 99% | 8 | 109 | 89 | 20 |
| Multiple arcs | 99% | 35 | 22 | 6 | 16 |
| Containers | 99% | 15 | 55 | 42 | 13 |
| Containers with overlay | 99% | 10 | 84 | 73 | 11 |
| Containers with opa | 99% | 12 | 68 | 55 | 13 |
| Containers with opa_layer | 99% | 6 | 139 | 129 | 10 |
| Containers with scrolling | 99% | 11 | 82 | 62 | 20 |
| Widgets demo | 99% | 7 | 98 | 84 | 14 |
| All scenes avg. | 98% | 17 | 64 | 50 | 14 |