Waveshare ESP32-S3-Touch-LCD-1.9 Configuration

Sharing my configuration for the Waveshare esp-s3-touch-led-1.9. This configures the display in a horizontal orientation with lvgl support.

esphome:
  name: esp32-s3-touch
  friendly_name: esp32-s3-touch
  on_boot:
    priority: 600
    then:
      # Wake the screen and start the timeout on boot
      - script.execute: wake_up_script

esp32:
  board: esp32-s3-devkitc-1
  framework:
    type: arduino

psram:
  mode: octal

captive_portal:

# Enable logging
logger:
  level: INFO

i2c:
  sda: GPIO47
  scl: GPIO48
  scan: true

spi:
  clk_pin: GPIO10
  mosi_pin: GPIO13
  
touchscreen:
  platform: cst816
  id: my_touchscreen
  interrupt_pin: GPIO21
  reset_pin: GPIO17
  calibration:
    x_min: 4
    x_max: 317
    y_min: 1
    y_max: 160   
  transform:
    swap_xy: true
    mirror_y: true

              
display:
  - platform: st7789v
    id: tft_ha
    model: Waveshare 1.47in 172X320
    dc_pin: GPIO11
    cs_pin: GPIO12
    reset_pin: GPIO9
    backlight_pin: no
    height: 320
    width: 172
    offset_height: 34
    offset_width: 0
    update_interval: 100ms
    spi_mode: 0

# Setup pin for backlight control using LEDC for dimming
output:
  - platform: ledc
    id: backlight
    pin:
      number: GPIO14
      inverted: true

script:
  - id: wake_up_script
    then:
      # Set backlight to full brightness
      - output.set_level:
          id: backlight
          level: 100%

lvgl:
3 Likes