General Community
Waveshare **ESP32-S3-Touch-LCD-5B
Board
Waveshare ESP32-S3-Touch-LCD-5B, 1024×600, the revision with the CH422G IO expander (not the newer CH32V003 revision the 7B profile uses). ESP32-S3, octal PSRAM, GT911 touch.
There's no 5B entry in boards.yaml, so I built it on the waveshare5 profile with overrides.
It's now running well: display, touch and the HA connection all work.
- Package ref:
screens-v0.4.88, filepackages/waveshare5.yaml - Built with ESPHome 2026.9.1 (Device Builder in Docker)
Problems I hit (in case they help with a 5B profile)
- Vertical lines / no picture: the waveshare5 profile assumes 800×480 glass and the 4.3" porch timings (4/8). On 5B glass that gives only vertical lines. Overriding the panel size and timings (below) fixed it.
ESP_ERR_WIFI_NOT_INIT, Wi-Fi never starts: at 1024×600 the profile'sLVGL_BUFFER_SIZE: "12%"lands in internal RAM and leaves too little for Wi-Fi (same issue as #207 on the 7B). Setting it to25%pushes it to PSRAM and fixed it. I also had to removeCONFIG_ESP32S3_DATA_CACHE_64KB.!extend my_displayin the local overrides file failed with "Source for extension of ID 'my_display' was not found". It only worked when placed in the main screen YAML.
Working overrides (in the main screen YAML)
The timings are the ones that already worked on this panel with a plain rpi_dpi_rgb config.
substitutions:
PANEL_W: "1024"
PANEL_H: "600"
DISPLAY_DPI: "237.4" # 1187 diagonal px / 5 in
LVGL_BUFFER_SIZE: "25%"
psram:
mode: octal
speed: 120MHz # 80MHz untested on this build
esp32:
framework:
advanced:
enable_idf_experimental_features: true
sdkconfig_options:
CONFIG_IDF_EXPERIMENTAL_FEATURES: "y"
CONFIG_SPIRAM_SPEED_120M: "y"
CONFIG_ESP32S3_DATA_CACHE_LINE_64B: "y"
CONFIG_SPIRAM_FETCH_INSTRUCTIONS: "y"
CONFIG_SPIRAM_RODATA: "y"
CONFIG_COMPILER_OPTIMIZATION_PERF: "y"
display:
- id: !extend my_display
model: RPI
color_order: RGB
pclk_frequency: 16MHz
pclk_inverted: true
de_pin: GPIO5
pclk_pin: GPIO7
hsync_pin:
number: GPIO46
ignore_strapping_warning: true
vsync_pin:
number: GPIO3
ignore_strapping_warning: true
hsync_pulse_width: 30
hsync_back_porch: 210
hsync_front_porch: 210
vsync_pulse_width: 4
vsync_back_porch: 23
vsync_front_porch: 12
data_pins:
red: [GPIO1, GPIO2, GPIO42, GPIO41, GPIO40]
green: [GPIO39, GPIO0, GPIO45, GPIO48, GPIO47, GPIO21]
blue: [GPIO14, GPIO38, GPIO18, GPIO17, GPIO10]
Touch and backlight work unchanged from the waveshare5 profile (GT911 reset on CH422G line 1, backlight on line 2, panel reset on line 3).
Happy to test a proper waveshare5b profile if you add one. Thanks for Tessera, it's exactly
what I was looking for.
Discussion 0
Add a commentStart the conversation
Share an example, ask a question or explain how you would use this.