Anyone got LVGL working on a Cheap Yellow Display?

Hi folks!

I have a Cheap Yellow Display (ESP32-2432S028) and while it works fine using lambda to put stuff on the screen, I would really like to use LVGL instead as that’s easier for my tiny brain to comprehend.

However, I can’t for the life of me even get a basic Hello World to display when using LVGL :frowning:

This is my ESPHome script:

esphome:
  name: esphome-web-6d0fe4
  friendly_name: yellow
  min_version: 2024.11.0
  name_add_mac_suffix: false

esp32:
  board: esp32dev
  framework:
    type: arduino

logger:
  level: DEBUG

api:

psram:

ota:
- platform: esphome

wifi:
  ssid: "xxxx"
  password: "xxxx"

spi:
  - id: tft
    clk_pin: GPIO14
    mosi_pin: GPIO13
    miso_pin: GPIO12
    interface: hardware

lvgl:

display:
  - platform: ili9xxx
    id: coolscreen
    model: TFT_2.4
    cs_pin: GPIO15
    dc_pin: GPIO2
    invert_colors: false
    update_interval: never
    auto_clear_enabled: false
    spi_id: tft

And this is the log output in ESPHome after uploading the script to the device:

[09:56:06][I][app:100]: ESPHome version 2025.4.1 compiled on May 11 2025, 09:54:23
[09:56:06][C][wifi:600]: WiFi:
[09:56:06][C][wifi:428]:   Local MAC: 14:33:5C:6D:0F:E4
[09:56:06][C][wifi:433]:   SSID: [redacted]
[09:56:06][C][wifi:436]:   IP Address: 192.168.1.38
[09:56:06][C][wifi:440]:   BSSID: [redacted]
[09:56:06][C][wifi:441]:   Hostname: 'esphome-web-6d0fe4'
[09:56:06][C][wifi:443]:   Signal strength: -52 dB ▂▄▆█
[09:56:06][C][wifi:447]:   Channel: 11
[09:56:06][C][wifi:448]:   Subnet: 255.255.255.0
[09:56:06][C][wifi:449]:   Gateway: 192.168.1.1
[09:56:06][C][wifi:450]:   DNS1: 192.168.1.1
[09:56:06][C][wifi:451]:   DNS2: 0.0.0.0
[09:56:06][C][logger:177]: Logger:
[09:56:06][C][logger:178]:   Max Level: DEBUG
[09:56:06][C][logger:179]:   Initial Level: DEBUG
[09:56:06][C][logger:181]:   Log Baud Rate: 115200
[09:56:06][C][logger:182]:   Hardware UART: UART0
[09:56:06][C][spi:068]: SPI bus:
[09:56:06][C][spi:069]:   CLK Pin: GPIO14
[09:56:06][C][spi:070]:   SDI Pin: GPIO12
[09:56:06][C][spi:071]:   SDO Pin: GPIO13
[09:56:06][C][spi:076]:   Using HW SPI: SPI
[09:56:06][C][ili9xxx:091]: ili9xxx
[09:56:06][C][ili9xxx:091]:   Rotations: 0 °
[09:56:06][C][ili9xxx:091]:   Dimensions: 240px x 320px
[09:56:06][C][ili9xxx:092]:   Width Offset: 0
[09:56:06][C][ili9xxx:093]:   Height Offset: 0
[09:56:06][C][ili9xxx:099]:   Color mode: 16bit
[09:56:06][C][ili9xxx:108]:   Data rate: 40MHz
[09:56:06][C][ili9xxx:111]:   CS Pin: GPIO15
[09:56:06][C][ili9xxx:112]:   DC Pin: GPIO2
[09:56:06][C][ili9xxx:114]:   Color order: BGR
[09:56:06][C][ili9xxx:115]:   Swap_xy: NO
[09:56:06][C][ili9xxx:116]:   Mirror_x: YES
[09:56:06][C][ili9xxx:117]:   Mirror_y: NO
[09:56:06][C][ili9xxx:118]:   Invert colors: NO
[09:56:06][C][ili9xxx:123]:   Update Interval: never
[09:56:06][C][psram:018]: PSRAM:
[09:56:06][C][psram:033]:   Available: NO
[09:56:06][C][lvgl:086]: LVGL:
[09:56:06][C][lvgl:087]:   Display width/height: 320 x 240
[09:56:06][C][lvgl:088]:   Rotation: 0
[09:56:06][C][lvgl:089]:   Draw rounding: 2
[09:56:06][E][component:082]:   Component lvgl is marked FAILED: 
[09:56:06][C][mdns:116]: mDNS:
[09:56:06][C][mdns:117]:   Hostname: esphome-web-6d0fe4
[09:56:06][C][esphome.ota:073]: Over-The-Air updates:
[09:56:06][C][esphome.ota:074]:   Address: esphome-web-6d0fe4.local:3232
[09:56:06][C][esphome.ota:075]:   Version: 2
[09:56:06][C][safe_mode:018]: Safe Mode:
[09:56:06][C][safe_mode:020]:   Boot considered successful after 60 seconds
[09:56:06][C][safe_mode:021]:   Invoke after 10 boot attempts
[09:56:06][C][safe_mode:023]:   Remain in safe mode for 300 seconds
[09:56:06][C][api:140]: API Server:
[09:56:06][C][api:141]:   Address: esphome-web-6d0fe4.local:6053
[09:56:06][C][api:145]:   Using noise encryption: NO

The only hint is Component lvgl is marked FAILED: - which isn’t very helpful :frowning:

Anyone have any hints? Or is LVGL just not possible on this $10 gizmo?

Do you need to use
framework: esp-idf

instead of
framework: arduino ?

No PSRAM, so use buffer_size: 25% as per the docs.

There’s several test configs and user submitted projects for that yellow display and lvgl, all you have to do is some online seaching.

Thanks! Feel stupid for not having seen that in the ESPHome docs :frowning: