Can't compile LVGL

I’m new to LVGL and I tried to do a simple hello world but when I install it I get the following error “error configTASK_NOTIFICATION_ARRAY_ENTRIES must be at least 1” if I compile with esp-if and get " error: ‘EFUSE_BLK0_RDATA3_REG’ was not declared in this scope" if I use ardurino as a framework.

Any help would be greatly appreciated.

esphome:
  name: kitchen-info
  friendly_name: kitchen-info
  platformio_options:
    board_build.flash_mode: dio
    build_flags:
      - "-DBOARD_HAS_PSRAM"
      - "-DconfigTASK_NOTIFICATION_ARRAY_ENTRIES=1"
    board_build.arduino.memory_type: qio_opi
    board_build.psram_type: opi
    board_upload.maximum_size: 16777216
    board_upload.maximum_ram_size: 524288

esp32:
  board: esp32-s3-devkitc-1
  variant: esp32s3
  flash_size: 16MB
  framework:
    type: esp-idf
    sdkconfig_options:
      CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240: "y"
      CONFIG_ESP32S3_DATA_CACHE_64KB: "y"
      CONFIG_ESP32S3_DATA_CACHE_LINE_64B: "y"
      CONFIG_SPIRAM_FETCH_INSTRUCTIONS: y
      CONFIG_SPIRAM_RODATA: y
  
psram:
  mode: octal
  speed: 80MHz

# Enable logging to view the output in logs
logger:
  hardware_uart: UART0

# SPI Configuration for ILI9488
spi:
  clk_pin: GPIO14
  mosi_pin: GPIO11
  miso_pin: 12 # Not used in ILI9488, can be left unconnected

# TFT Display Configuration
display:
  - platform: ili9xxx
    id: my_display
    model: ILI9488
    cs_pin: GPIO5
    dc_pin: GPIO16
    reset_pin: GPIO18
    rotation: 90
    invert_colors: false
    auto_clear_enabled: false
    update_interval: never    

lvgl:
  displays:
    -  my_display
  widgets:
    - label:
        align: CENTER
        text: 'Hello World!'

The mention about configTASK_NOTIFICATION_ARRAY_ENTRIES is a clue.

Remove all the platformio_options - I’m not sure where you took those from but the only one with any relevance is board_build.flash_mode: dio which was required when using IDF 4.x but now that ESPHome has moved to 5.1 even that is no longer necessary.

If using hardware_uart: UART0 then make sure you are in fact using that port for flashing/logging - on an S3 it is usual that it uses the inbuilt USB port, though some boards do have 2 USB-C connectors. If you only have one, it’s likely not to be UART0.

1 Like