WeAct 2.9 tri-color with seed Studio xiao esp32-s3

Can anyone help me with my configuration. I recently bought a esp32-s3 and a epaper display from weact and i wanted to use them together but i dont get it to work. Im quite new to esphome and microcontrollers but i thought this couldnt be this hard.

spi:
  clk_pin: GPIO7
  mosi_pin: GPIO9

font:
  - file: "gfonts://Roboto"
    id: my_font
    size: 20

display:
  - platform: epaper_spi
    model: weact-2.9in-3c
    id: my_display
    
    cs_pin: GPIO4
    dc_pin: GPIO3
    reset_pin: GPIO2
    busy_pin: GPIO43
    
    update_interval: 5s
    lambda: |-
      // Print the string "Hello World!" at [0,10]
      it.print(0, 10, id(my_font), "Hello World!");

this is the current configuration but everytime the display wants to update i get the error “Display already in state REFRESH_SCREEN”

I dont know what i can do to debug this error and would like to know how i can solve this, please.
if you need any additional information please tell me.

Thanks in advance

5s update interval is too short for that display, try 1min

Thx for the response. Already did that but that did not change anything. The 5 seconds was only for testing purpose

Try another busy-pin, like gpio5.

If i remove the cable from the busy pin it says the update worked but nothing changes in the display. I think the data gets not send correctly

Double check your wiring, connect busy to suitable pin and observe what you get on logs.

Try inverting the busy pin

I was finally able to get my e-paper display to work with your setup, except different pin numbers. Thanks! So my guess is probably the pin selection or wiring. I was using the GPIO# but then switched to only the number for pins. Hope this at least helps.

spi:
  clk_pin: 14
  mosi_pin: 13
- platform: epaper_spi
    model: weact-2.9in-3c
    id: epaper_display
    cs_pin: 5
    dc_pin: 4
    busy_pin: 26
    reset_pin: 27
    rotation: 270
    reset_duration: 1ms
    update_interval: 5min
    full_update_every: 1
    lambda: |-
      const auto BLACK   = Color(0,   0,   0);
      const auto RED     = Color(255, 0,   0);
      const auto WHITE   = Color(255, 255, 255);
      it.print(1, 28, id(font1), Color(BLACK), "Basement");
      it.printf(offsetValue, 28, id(font2), Color(BLACK), "%.1f °C", id(temp_basement).state);

Thank you very much for your config. I have a question regarding the pin numbers. If i look at the schema of the pining i cant find a 13 or 14. Could you please tell me where to look to get the right pins? This is the ovberview i was looking at: https://files.seeedstudio.com/wiki/SeeedStudio-XIAO-ESP32S3/img/2.jpg

Quite seriously I somewhat hacked it, or tried configurations/pins. It’s rather hell with all the various ESP32 varions I have. For the 13 and 14, I had a printed schema (and this doesn’t even match the ESP32 dev kit I have) however if you can find a PDF with pinouts, it will show HSPI-CLK (14) and HSPI-MOSI (13) as I found for me. I think the rest of the pins is just choosing any GPIO pins. Using a ESP32-WROOM-32, but some of the pins don’t match, however I do have a D13 and D14 printed on the board but yours might be other pins, the pain and joys of various ESP32 boards. Find a pinout diagram of an ESP32-C3 and find what pins are HSPI_CLK and HSPI_MOSI pins, sorry, can’t help you more than that, I don’t have a ESP32-C3 to play with. Maybe soon.