New boards Wishlist

Waveshare ESP32-P4-WIFI6-Touch-LCD-10.1 (800×1280, JD9365 + GT9271)

AmazingwunSuggested this wish ·

Please add the Waveshare ESP32-P4-WIFI6-Touch-LCD-10.1. It's very close to the JC8012P4A1 (same P4 + C6 SDIO wiring, 800×1280, 2-lane DSI). Only the display preset, the reset and backlight pins and the touch chip differ, and a working hardware config is attached. Happy to test.

Docs: https://docs.waveshare.com/ESP32-P4-WIFI6-Touch-LCD-X

Hardware testing

We often do not have this board ourselves. Community testing helps establish what actually works. A successful report is evidence for the maintainer to review, not an automatic compatibility claim.

Board details & configuration
Model
Waveshare ESP32-P4-WIFI6-Touch-LCD-10.1 (all-in-one 10.1" from the ESP32-P4-WIFI6 7/8/10.1-inch series), PCB revision unknown
Chip, RAM and flash
ESP32-P4NRW32 (32 MB PSRAM in package), 32 MB flash; ESP32-C6-MINI co-processor over SDIO for Wi-Fi 6 / BLE
Display and touch
10.1", 800×1280 portrait, MIPI-DSI 2-lane, JD9365. GT9271 touch on I2C (SDA GPIO7, SCL GPIO8), INT/RST not wired. Backlight PWM on GPIO26, panel reset on GPIO27.
Already tried
Tessera 0.4.87 with the JC8012P4A1 and JC8012P4A1 v3 packages, the closest 10.1" P4 boards. The board joined Wi-Fi and Home Assistant, because the C6 SDIO pins are identical, but the screen didn't work and I had to reflash over USB to recover. The display init, touch chip and reset/backlight pins differ from the Guition. A hand-written ESPHome 2026.9.1 + LVGL config runs well on it: display, touch, backlight, Wi-Fi and landscape all work. Two things it needed: PSRAM at hex/200 MHz (the default 20 MHz underruns the DSI and watchdog-resets), and a panel reset on GPIO27, because the P4-NANO-10.1 preset has none and the panel never answers without it.
Configuration status
working
View shared configuration
# Waveshare ESP32-P4-WIFI6-Touch-LCD-10.1 — hardware only, working on ESPHome 2026.9.1
esp32:
  variant: esp32p4
  engineering_sample: true
  flash_size: 32MB
  framework:
    type: esp-idf
    advanced:
      enable_idf_experimental_features: true

psram:
  mode: hex
  speed: 200MHz   # 20 MHz default underruns the DSI ("can't fetch data from external memory fast enough")

esp32_hosted:     # ESP32-C6 over SDIO, same pins as the Guition JC8012P4A1
  variant: ESP32C6
  type: sdio
  active_high: true
  clk_pin: GPIO18
  cmd_pin: GPIO19
  d0_pin: GPIO14
  d1_pin: GPIO15
  d2_pin: GPIO16
  d3_pin: GPIO17
  reset_pin: GPIO54

esp_ldo:
  - channel: 3    # MIPI D-PHY rail
    voltage: 2.5V

display:
  - platform: mipi_dsi
    id: tft_display
    model: WAVESHARE-P4-NANO-10.1   # JD9365 800x1280 "A" panel
    reset_pin: GPIO27               # carrier holds the panel in reset; the NANO preset drives no reset

i2c:
  - id: bus_a
    sda: GPIO7
    scl: GPIO8

output:
  - platform: ledc
    id: backlight_output
    pin: GPIO26
    frequency: 20000Hz
    min_power: 0.01
    zero_means_zero: true

light:
  - platform: monochromatic
    id: display_backlight
    output: backlight_output

touchscreen:
  - platform: gt911   # Waveshare lists GT9271; ESPHome's gt911 driver runs it
    id: tft_touch
    display: tft_display
    i2c_id: bus_a     # INT/RST not wired, so it polls (0x5D, then 0x14)

# Landscape: lvgl: rotation: 270° puts the camera at the top.
# LVGL rotates touch with it, so the touchscreen needs no transform.

1 owner has volunteered to test.

Sign in to volunteer

Discussion 0

Add a comment

Start the conversation

Share an example, ask a question or explain how you would use this.

Add your thoughts, a screenshot or a useful link.

Markdown & basic HTML
Paste or drop images · URLs on their own line become previews0 / 10,000
Create your account to join in

We need a verified email address to reach you about your contribution. Your address stays private.

Continue with GitHub

Your draft stays in this tab. Return here after verification.