WT32-SC01 - Slow Down

I’ve been using four of these esp32 based devices around my home for a while, and they’ve been working flawlessly.

However, fairly recently I’ve noticed that all of them seem to be suffering significant slow down, to the point that sometimes the touch screen is barely responsive at all, and screen (re) draws are noticably slow.

My only thought is that an ESPhome update has perhaps caused this, as its affecting all of these devices.

I think these are pretty commonly used, and curious to know what experiences other ppl have had with these.

For reference, the device is:-

https://www.aliexpress.com/item/1005006050379552.html

If you don’t get answers here, Ro

Turns out, my display settings seem to be causing my main page to be redrawn 3-4 times a second. That update itself takes 300ms, causing the device to constantly redraw and basically max out:-

display:
  - platform: mipi_spi
    id: device_display
    model: wt32-sc01-plus
    data_rate: 10MHz
    rotation: 90

    pages:
      - id: main_page  
        lambda: |-
          ESP_LOGI("log", "Updating display...");    

I stripped my esphome config right back, removing all component update commands caused by sensor changes and intervals, and it still did it.

So I assume this is built in behaviour for the mipi_spi platform on this device.

So… I could add an update_interval, but all that seems to do is ‘batch up’ the redraws.

The only other option seems to be creating a manual global that holds the seconds since last redraw, and for my display page code to abort its its less than x. Seems clunky, but maybe my only option. ← UPDATE:- This doesnt work, it causes the screen to only partially redraw. I’ve gone with update_interval set to never, and only update based on sensor changes on that screen, which has helped a bit.

Did you configure PSRAM?

This is the hardware config:-

esphome:
  name: $device_name
  friendly_name: $friendly_name
  name_add_mac_suffix: false
  project:
    name: esphome.w32-sc01-plus
    version: "1.1"
  platformio_options:
    build_unflags: -Werror=all
    board_build.flash_mode: dio
  on_boot:
    priority: 600
    then:
      - display.page.show: loading_page
      - component.update: device_display

esp32:
  board: esp32-s3-devkitc-1
  flash_size: 16MB
  framework:
    type: esp-idf
    sdkconfig_options:
      CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240: "y"
      CONFIG_ESP32S3_DATA_CACHE_64KB: "y"
      CONFIG_ESPTOOLPY_FLASHMODE_QIO: y
      CONFIG_SPIRAM_FETCH_INSTRUCTIONS: y
      CONFIG_SPIRAM_RODATA: y
      CONFIG_ESP_TASK_WDT_TIMEOUT_S: "10"
      CONFIG_SPIRAM_USE_CAPS_ALLOC: y

i2c:
  sda: 6
  scl: 5

touchscreen:
  - platform: ft63x6
    id: my_touchscreen
    interrupt_pin: 7
    transform:
      swap_xy: true
      mirror_y: true
      mirror_x: false

spi:
  - type: octal
    id: octal_spi
    clk_pin: 47
    data_pins:
      - 9
      - ignore_strapping_warning: true
        number: 46
      - ignore_strapping_warning: true
        number: 3
      - 8
      - 18
      - 17
      - 16
      - 15

Remove the sdkconfig options and add a psram config as per the docs

@clydebarrow's recommendation fixed my devices and my slow redraws are now gone.