New boards Wishlist
elecrow-esp32-p4-1024x600-10.1-V1.2
Board or product name and model
CrowPanel ESP32 P4-Adanvance HMI 10.1 V1.2
Link to the product listing or datasheet
Display controller and resolution, if known
10.1-inch 1024×600, EK79007 timing controller
Touch controller, if known
GT911 (on the touch FPC/display module)
Do you own this board and can test it?
Yes, I have it and can test
Anything else
#CrowPanel ESP32 P4-Advance HMI Display 10.1 V1.2 #SKU DHE04310D #16MB Flash #32MB PSRAM #Below is the current config working on my board using a remote webview application, this board is very similar to the Guition, however, from what I can tell the GPIO arrangement for everything including the C6 Wi-Fi is different. It would be must more responsive to use a tile based application such as Tessera than attempt to navigate a clunky non-optimised HA dashboard (despite my attempts at reducing / customising).
esp32:
variant: esp32p4
engineering_sample: true
cpu_frequency: 360MHZ
flash_size: 16MB
framework: type: esp-idf advanced: enable_idf_experimental_features: true sdkconfig_options: CONFIG_SPIRAM_FETCH_INSTRUCTIONS: y CONFIG_SPIRAM_RODATA: y
Serial logging configuration
psram: speed: 200MHz mode: hex esp_ldo:
- channel: 3 voltage: 2.5V
- channel: 4 voltage: 2.5V
Enable logging
logger: baud_rate: 115200 hardware_uart: UART0 # Use UART0 for logs level: INFO
esp32_hosted: variant: esp32c6 active_high: true reset_pin: GPIO32 cmd_pin: GPIO19 clk_pin: GPIO18 d0_pin: GPIO17 d1_pin: GPIO16 d2_pin: GPIO15 d3_pin: GPIO14
switch:
Controls panel power for LCD and touch
- platform: gpio pin: GPIO29 id: display_power name: "Display Power" restore_mode: ALWAYS_ON
Amplifier power (active‑low on this board)
- platform: gpio id: amp_power name: "Speaker Power" pin: number: GPIO30 inverted: true restore_mode: ALWAYS_ON
Microphone routing switch (R/L channel selection on the board)
- platform: gpio pin: GPIO20 id: mic_r_l name: "Mic R-L" restore_mode: ALWAYS_ON
output:
LEDC PWM output for LCD backlight control
- platform: ledc pin: GPIO31 id: backlight_pwm frequency: 1000 Hz
light:
Simple dimmable backlight light entity
- platform: monochromatic output: backlight_pwm name: "Display Backlight" id: back_light restore_mode: ALWAYS_ON
display:
MIPI‑DSI display driver for Waveshare ESP32‑P4 7" LCD
- platform: mipi_dsi id: my_display model: WAVESHARE-ESP32-P4-WIFI6-TOUCH-LCD-7B reset_pin: number: 41 rotation: 0
i2c:
I²C bus for touch controller and other peripherals
- id: bus_a sda: GPIO45 scl: GPIO46
touchscreen:
GT911 capacitive touch controller on the Waveshare panel
platform: gt911 reset_pin: GPIO40 transform: mirror_x: false mirror_y: false
Any touch event wakes the backlight / restarts inactivity timer
on_touch: then: - script.execute: inactivity_timer
i2s_audio:
I2S bus for PDM microphone (clock only, data is on i2s_din_pin)
- id: i2s_mic i2s_lrclk_pin: GPIO24
I2S bus for external speaker amplifier
- id: i2s_spk i2s_lrclk_pin: GPIO21 i2s_bclk_pin: GPIO22
microphone:
PDM digital microphone connected via I2S
- platform: i2s_audio id: pdm_mic i2s_audio_id: i2s_mic i2s_din_pin: GPIO26 adc_type: external pdm: true
speaker:
External NS4168 I2S speaker amplifier
- platform: i2s_audio id: ns4168_speaker i2s_audio_id: i2s_spk i2s_dout_pin: GPIO23 dac_type: external
Discussion 1
Add a commentHi Max, I have managed to get this working, and have tested swiping between pages, tiles, dimming and waking. I used the following files, initially basing my screen on the guition-esp32p4 hardware, but ran into nothing but problems with the differing pins and settings:
packages/hardware/lab-elecrow-esp32p4** "ESP Screens - a Elecrow panel based on an ESP32-P4 with an ESP32-C6 for Wi-Fi, for a board file that includes this one. The chip, its memory, the supply of the MIPI-DSI, the Wi-Fi co-processor, the I2C bus of the touch panel and the backlight's pin: what the 10.1-inch CrowPanel ESP32‑P4 Advance 1020x600 sceens configuration, specific to this brand and hardware revision
(1.2)."esp32: variant: esp32p4 flash_size: 16MB Engineering-sample silicon (pre-v3) runs at 360 MHz at most; rev3 does 400 MHz._ cpu_frequency: 360MHz The chips in these panels are pre-v3 ("chip revision: v1.3" in the boot log). ESP-IDF links a different memory layout for pre-v3 and for rev3 (CONFIG_ESP32P4_SELECTS_REV_LESS_V3) and the two are NOT binary. engineering_sample: true framework: advanced: execute_from_psram: true sdkconfig_options: The Wi-Fi co-processor's driver (esp_hosted): its own memory pool off and its task stack in PSRAM, so the memory inside the chip stays for LVGL and the panel; the extra thread-local slot is what that driver asks for. All three from the build that ran on the real board (pull request14). CONFIG_ESP_HOSTED_USE_MEMPOOL: "n" CONFIG_ESP_HOSTED_DFLT_TASK_FROM_SPIRAM: "y" CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS: "1"
psram: mode: hex speed: 200MHz
The MIPI-DSI PHY has its own supply, switched by one of the chip's internal regulators. esp_ldo:
esp32_hosted: variant: esp32c6 active_high: true reset_pin: GPIO32 cmd_pin: GPIO19 clk_pin: GPIO18 d0_pin: GPIO17 d1_pin: GPIO16 d2_pin: GPIO15 d3_pin: GPIO14
i2c:
switch: __ Controls panel power for LCD and touch
Amplifier power (active‑low on this board)
Microphone routing switch (R/L channel selection on the board)
LEDC PWM output for LCD backlight control; The backlight, a PWM pin (features/backlight.yaml makes it the light). output:
GT911 capacitive touch controller on the Waveshare panel touchscreen:
i2s_audio: I2S bus for PDM microphone (clock only, data is on i2s_din_pin)
microphone: PDM digital microphone connected via I2S
speaker: External NS4168 I2S speaker amplifier
display: MIPI‑DSI display driver for Waveshare ESP32‑P4 7" LCD
packages/boards/lab-cp-esp32-p4-1060-10 ESP Screens - lab-cp-esp32-p4-1060-10: a 10.1-inch 1020 x 600 panel. Written by tools/new_board.py from the jc1060p470 board: its packages and its hardware sections are the template's until they are replaced by this board's (docs/ADDING_A_BOARD.md). docs/PROFILES.md says how the files of a screen fit together. packages: The board apart from its LCD: the ESP32-P4 and its ESP32-C6 (shared with the 10.1-inch) and the GT911, shared with the V2. hardware: !include ../hardware/lab-elecrow-esp32p4.yaml The cards of this board's grid, one per cell (tools/generate_cells.py writes them; docs/RESPONSIVE.md). cells: !include ../cells/16.yaml look: !include ../looks/standard.yaml touch: !include ../features/capacitive-touch.yaml backlight: !include ../features/backlight.yaml camera: !include ../features/camera.yaml self_test: !include ../features/self-test.yaml snapshot: !include ../features/snapshot.yaml
substitutions: The key of this board file; the firmware reports it so ESP Screens knows what board a screen is. BOARD_ID: "lab-cp-esp32-p4-1060-10" DEVICE_NAME: "lab-cp-esp32-p4-1060-10-new" DEVICE_FRIENDLY_NAME: "My lab-cp-esp32-p4-1060-10"
The glass: the panel's own pixels and its density, 1183 diagonal pixels over 10.1 inches. PANEL_W: "1020" PANEL_H: "600" DISPLAY_DPI: "169.548" The tile grid: columns and rows of cells lying down, and standing up. GRID_COLS: "4" GRID_ROWS: "4" GRID_COLS_PORTRAIT: "4" GRID_ROWS_PORTRAIT: "2" LVGL_BUFFER_SIZE: "50%" _LVGL's draw buffer as a share of the screen
Original on GitHub