Skip to content

Latest commit

 

History

History
 
 

README.md

BSP: ESP32-S3-LCD-EV-Board

HW Reference HOW TO USE API EXAMPLES Component Registry maintenance-status

Overview

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:

  • RGB double-buffer + LVGL full-refresh mode:
    • Set BSP_LCD_RGB_BUFFER_NUMS to 2
    • Enable BSP_DISPLAY_LVGL_AVOID_TEAR and BSP_DISPLAY_LVGL_FULL_REFRESH
  • RGB double-buffer + LVGL direct-mode:
    • Set BSP_LCD_RGB_BUFFER_NUMS to 2
    • Enable BSP_DISPLAY_LVGL_AVOID_TEAR and BSP_DISPLAY_LVGL_DIRECT_MODE
  • RGB triple-buffer + LVGL full-refresh mode:
    • Set BSP_LCD_RGB_BUFFER_NUMS to 3
    • Enable BSP_DISPLAY_LVGL_AVOID_TEAR and BSP_DISPLAY_LVGL_FULL_REFRESH

Capabilities and dependencies

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

Compatible BSP Examples

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

LVGL Benchmark

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