Looking for working config for Waveshare ESP32-P4- 3.4" Round Touch display

Hi All

I’ve made some (slow) progress with the module: ESP32-P4 3.4 / 4 inch Round Touch Display Development Board, 800 × 800 / 720 × 720 Resolution, Optical Bonding Toughened Glass Panel, Onboard Dual Microphones, Support Wi-Fi 6 / Bluetooth 5 (LE) | ESP32-P4-WIFI6-Touch-LCD-3.4C

So far I’ve got the wifi working but have difficulty in setting up the display using mipi_dsi and model: WAVESHARE-ESP32-P4-WIFI6-TOUCH-LCD-3.4C

But as soon as the unit is flashed and reboots, the WDT triggers after the MIPI DSI setup:

[I][app:091]: Running through setup()
[D][esp_ldo:020]: Acquired LDO channel 3 with voltage 1.100000V
[D][esp_ldo:020]: Acquired LDO channel 4 with voltage 1.800000V
[C][display.mipi_dsi:025]: Running Setup
E (14219) task_wdt: Task watchdog got triggered. The following tasks/users did not reset the watchdog in time:
E (14219) task_wdt:  - loopTask (CPU 1)
E (14219) task_wdt: Tasks currently running:
E (14219) task_wdt: CPU 0: IDLE0
E (14219) task_wdt: CPU 1: IDLE1
E (14219) task_wdt: Aborting.
E (14219) task_wdt: Print CPU 1 registers

I’m not sure if the LDO setup is correct. Here is my config file currently:

esphome:
  name: waveshare-p4-display
  friendly_name: "Waveshare ESP32-P4"

esp32:
  board: esp32-p4-evboard
  variant: esp32p4
  framework:
    type: esp-idf
    version: recommended

psram:
  mode: hex

# Enable the internal LDO to power the display/peripherals
# Usually LDO4 manages the GPIO voltage domains for these panels
esp_ldo:
  - channel: 3
    voltage: 1.1V  # Typical for internal core/digital logic
  - channel: 4
    voltage: 1.8V  # Required for the 32MB Hex-SPI PSRAM

display:
  - platform: mipi_dsi
    id: my_display
    model: WAVESHARE-ESP32-P4-WIFI6-TOUCH-LCD-3.4C
    # update_interval: never
    # auto_clear_enabled: false
    # dimensions:
    #   width: 1024
    #   height: 600

esp32_hosted:
  variant: ESP32C6
  # Hardware pins for the Waveshare P4 SDIO bus
  clk_pin: GPIO18
  cmd_pin: GPIO19
  d0_pin: GPIO14
  d1_pin: GPIO15
  d2_pin: GPIO16
  d3_pin: GPIO17
  # Reset logic for the onboard C6
  reset_pin: GPIO54 
  active_high: true

# Networking via the ESP32-C6 co-processor
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

Any help will be appreciated.

Regards

Herman

I have a library for building button and info screens quickly. Try this demo page

Your display is not working, that’s what causes the watchdog timeout. Probably because you have the wrong voltage for LDO3 which should be powering the DSI interface.

I think it’s unlikely that LDO4 has anything to do with the PSRAM (it doesn’t on any other P4 I’ve seen, and the PSRAM is internal to the module so Waveshare can’t change that.)