• sales

    +86-0755-88291180

ESP32-P4-WIFI6-DB User Guide

Features

  • Processor
    • Equipped with a RISC-V 32-bit dual-core processor (HP system), with DSP and instruction set extensions and a floating-point unit (FPU), running at up to 360 MHz
    • Equipped with a RISC-V 32-bit single-core processor (LP system), running at up to 40 MHz
    • Equipped with an ESP32-C5 Wi-Fi / Bluetooth co-processor, expanding dual-band Wi-Fi 6 and Bluetooth 5 (LE) functionality via SDIO
  • Memory
    • 128 KB high-performance (HP) system read-only memory (ROM)
    • 16 KB low-power (LP) system read-only memory (ROM)
    • 768 KB high-performance (HP) L2 memory (L2MEM)
    • 32 KB low-power (LP) SRAM
    • 8 KB system tightly coupled memory (TCM)
    • 32 MB PSRAM packaged in the chip, and 32 MB onboard Nor Flash
  • Peripheral Interfaces
    • 2 × 20 pin headers onboard, exposing 27 remaining programmable GPIOs
    • Onboard speaker connector and microphone; audio capture and playback can be implemented using the codec chip and amplifier chip
    • Onboard MIPI-CSI HD camera interface, supporting Full HD 1080P image capture and encoding; integrated image signal processor (ISP) and H.264 video encoder, supporting H.264 and JPEG video encoding (1080P @30fps), suitable for computer vision, machine vision, and other fields
    • Onboard MIPI-DSI HD display interface, integrated pixel processing accelerator (PPA) and 2D graphics acceleration controller (2D DMA), supporting JPEG image decoding (1080P @30fps), suitable for smart home control panels, industrial control panels, vending machines, and other scenarios

Onboard Resources


  1. ESP32-P4NRW32X: ESP32-P4 with 32 MB PSRAM packaged in the chip.
  2. ESP32-C5 Module: Communicates with the ESP32-P4 via an SDIO interface, providing 2.4 GHz / 5 GHz dual-band Wi-Fi 6 and Bluetooth 5 (LE).
  3. 32 MB Nor Flash.
  4. Display Interface: MIPI-DSI, 2‑lane. Compatible with 5 / 7 / 8 / 10.1-inch DSI screens.
  5. Camera Interface: MIPI-CSI, 2‑lane. Compatible with cameras such as the OV5647.
  6. Type-C Port: For power supply, program flashing, and serial debugging.
  7. Microphone: Onboard audio capture.
  8. Speaker Connector: MX1.25 2P connector, supports 8 Ω 2 W speakers.
  9. 4PIN USB Interface: USB OTG 2.0 High-Speed interface.
  10. Wireless Module UART Pads: Exposes the serial port of the wireless co-processor.
  11. BOOT Button: Press during power‑on or reset to enter download mode.
  12. RESET Button: Resets the board.
  13. PWR: Power indicator.
  14. TF Card Slot: SDIO 3.0 interface protocol.

Peripheral Quick Reference

ModuleDevice / FunctionInterfaceAddress / ParametersGPIO / Signals
LCDMIPI-DSI displayMIPI-DSI2‑lane; supports 5 / 7 / 8 / 10.1‑inch panel configurationsLCD reset not connected; backlight controlled via shared I2C
TouchGT911 capacitive touchI2C7‑bit address 0x5D / 0x14SDA=GPIO7, SCL=GPIO8; RST / INT not connected
LCD BacklightBacklight controllerI2C7‑bit address 0x45; brightness register 0x96SDA=GPIO7, SCL=GPIO8
CameraMIPI-CSI camera interfaceMIPI-CSI + SCCB2‑lane; camera model and address depend on module documentationSCCB shared on GPIO7 / GPIO8; XCLK / RESET not connected
AudioES8311 CodecI2C + I2S7‑bit I2C address 0x18; 8‑bit write address 0x30; single analog microphoneI2C: SDA=GPIO7, SCL=GPIO8; MCLK=GPIO13, SCLK=GPIO12, WS=GPIO10, DOUT=GPIO9, DIN=GPIO11
Amplifier ControlOnboard speaker amp enableGPIOHigh level to enableGPIO53
TF CardSDMMC 4‑bitSDMMC4‑bit modeCLK=GPIO43, CMD=GPIO44, D0=GPIO39, D1=GPIO40, D2=GPIO41, D3=GPIO42; power control=GPIO45
ESP32-C5ESP-Hosted communicationSDIOWi‑Fi 6 / Bluetooth 5 (LE) co‑processorCLK=GPIO18, CMD=GPIO19, D0=GPIO14, D1=GPIO15, D2=GPIO16, D3=GPIO17, RESET=GPIO54

Pin Definitions

When using the GPIO headers on the ESP32-P4-WIFI6-DB, note the multiplexed functions marked on the pin diagram. Some GPIOs are already connected to onboard peripherals; before using them as general‑purpose I/O, confirm that the corresponding peripheral is not enabled.


GPIO Allocation

The table below lists the GPIOs already occupied by onboard circuits and those brought out to expansion headers.

GPIOSignal NameConnected ToRemarks
GPIO0GPIO0XTAL_32K_NXTAL_32K
GPIO1GPIO1XTAL_32K_PXTAL_32K
GPIO2GPIO2Reserved pad / pin headerExpansion header GPIO2
GPIO3GPIO3Reserved pad / pin headerExpansion header GPIO3
GPIO4GPIO4Reserved pad / pin headerExpansion header GPIO4
GPIO5GPIO5Reserved pad / pin headerExpansion header GPIO5
GPIO6GPIO6ESP32-C5 module
GPIO7I2C SDAES8311, GT911, LCD backlight, camera SCCB, expansion headerShared I2C SDA
GPIO8I2C SCLES8311, GT911, LCD backlight, camera SCCB, expansion headerShared I2C SCL
GPIO9I2S DOUTES8311 DSDINAudio playback data
GPIO10I2S WSES8311 LRCKAudio frame sync
GPIO11I2S DINES8311 ASDOUTAudio capture data
GPIO12I2S SCLKES8311 SCLKAudio bit clock
GPIO13I2S MCLKES8311 MCLKAudio master clock
GPIO14GPIO14ESP32-C5 moduleC5 SDIO D0
GPIO15GPIO15ESP32-C5 moduleC5 SDIO D1
GPIO16GPIO16ESP32-C5 moduleC5 SDIO D2
GPIO17GPIO17ESP32-C5 moduleC5 SDIO D3
GPIO18GPIO18ESP32-C5 moduleC5 SDIO CLK
GPIO19GPIO19ESP32-C5 moduleC5 SDIO CMD
GPIO20GPIO20Reserved pad / pin headerExpansion header GPIO20
GPIO21GPIO21Reserved pad / pin headerExpansion header GPIO21
GPIO22GPIO22Reserved pad / pin headerExpansion header GPIO22
GPIO23GPIO23Reserved pad / pin headerExpansion header GPIO23
GPIO24GPIO24Reserved pad / pin headerGPIO24 / USB1P1_N0
GPIO25GPIO25Reserved pad / pin headerGPIO25 / USB1P1_P0
GPIO26GPIO26Reserved pad / pin headerGPIO26 / USB1P1_N1
GPIO27GPIO27Reserved pad / pin headerGPIO27 / USB1P1_P1
GPIO28GPIO28Reserved pad / pin headerExpansion header GPIO28
GPIO29GPIO29Reserved pad / pin headerExpansion header GPIO29
GPIO30GPIO30Reserved pad / pin headerExpansion header GPIO30
GPIO31GPIO31Reserved pad / pin headerExpansion header GPIO31
GPIO32GPIO32Reserved pad / pin headerExpansion header GPIO32
GPIO33GPIO33Reserved pad / pin headerExpansion header GPIO33
GPIO34GPIO34Solder padStrapping pin
GPIO35GPIO35BOOT keyStrapping pin
GPIO36GPIO36Solder padStrapping pin; external 3.3 V pull-up
GPIO37UART0_TXDCH343PUART0 TX; not recommended for general-purpose use
GPIO38UART0_RXDCH343PUART0 RX; not recommended for general-purpose use
GPIO39SD_D0TF cardSDMMC 4-bit data line
GPIO40SD_D1TF cardSDMMC 4-bit data line
GPIO41SD_D2TF cardSDMMC 4-bit data line
GPIO42SD_D3TF cardSDMMC 4-bit data line
GPIO43SD_CLKTF cardSDMMC clock line
GPIO44SD_CMDTF cardSDMMC command line
GPIO45SD_VDD_ENTF card power controlLow to enable
GPIO46GPIO46Reserved pad / pin headerExpansion header GPIO46
GPIO47GPIO47Reserved pad / pin headerExpansion header GPIO47
GPIO48GPIO48Reserved pad / pin headerExpansion header GPIO48
GPIO49GPIO49Reserved pad / pin headerExpansion header GPIO49
GPIO50GPIO50Reserved pad / pin headerExpansion header GPIO50
GPIO51GPIO51Reserved pad / pin headerExpansion header GPIO51
GPIO52GPIO52Reserved pad / pin headerExpansion header GPIO52
GPIO53PA_CTRLNS4150B CTRLAmplifier enable, active high
GPIO54C5_CHIP_PUESP32-C5 enableHigh to enable, low to reset
LCD and Touch Pins
SignalGPIO / SignalDescription
MIPI-DSIMIPI interface2‑lane display interface
LCD_RSTNot connectedNo dedicated GPIO for LCD reset
LCD_BLI2C 0x45Backlight controlled via register 0x96
TP_SCLGPIO8GT911 touch I2C SCL, shared bus
TP_SDAGPIO7GT911 touch I2C SDA, shared bus
TP_RSTNot connectedGT911 reset signal not connected
TP_INTNot connectedGT911 interrupt signal not connected; uses polling mode
Audio and TF Card
Signal / PeripheralGPIO / SignalDescription
I2S_MCLKGPIO13ES8311 master clock
I2S_SCLKGPIO12ES8311 bit clock
I2S_WSGPIO10ES8311 frame sync
I2S_DOUTGPIO9ESP32-P4 output to ES8311
I2S_DINGPIO11ES8311 output to ESP32-P4
Amplifier enableGPIO53Active high
SD_D0 / SD_D1GPIO39 / GPIO40SDMMC data lines
SD_D2 / SD_D3GPIO41 / GPIO42SDMMC data lines
SD_CLK / SD_CMDGPIO43 / GPIO44SDMMC clock and command lines
SD_VDD_ENGPIO45TF card power control, low to enable
I2C Device Summary
DeviceModel / FunctionI2C AddressI2C PinsNotes
Audio CodecES83117‑bit 0x18; 8‑bit write address 0x30GPIO7 / GPIO8Onboard audio capture and playback
TouchGT9110x5D / 0x14GPIO7 / GPIO8Both addresses are tried; RST / INT not connected
LCD BacklightBacklight controller0x45GPIO7 / GPIO8Brightness register is 0x96
Camera SCCBExternal camera moduleDepends on moduleGPIO7 / GPIO8Shares bus with onboard I2C devices

Precautions

  • GPIO7 / GPIO8 are the onboard shared I2C bus. When connecting external I2C devices, confirm that the addresses do not conflict.
  • GPIO45 is used for TF card power control, GPIO53 for the audio amplifier, and GPIO54 for ESP32-C5 communication reset; it is not recommended to use these as general‑purpose GPIO while the corresponding peripherals are active.
  • The LCD reset, GT911 reset, and interrupt signals are not connected; the corresponding control is handled through software in the display or touch drivers.

Dimensions



Working with Arduino

This chapter includes the following sections, please read as needed:

BEFORE YOU START

The Arduino examples for the ESP32-P4-WIFI6-DB are based on Arduino-ESP32 3.3.11. The onboard ESP32-P4 is the compile target for Arduino projects. The ESP32-C5 wireless co-processor connects to the ESP32-P4 via ESP-Hosted/SDIO and is not a compile target for Arduino projects.

Before running the display, camera, audio, or TF card examples, connect the corresponding onboard or external hardware first, and install the required libraries and configuration files as described in the example prerequisites.

Arduino Getting Started

New to Arduino ESP32 development and looking for a quick start? We have prepared a comprehensive Getting Started Tutorial for you.

Note: This tutorial uses the ESP32-S3-Zero as a reference example, and all hardware code is based on its pinout. Before you start, we recommend checking the pinout of your development board to ensure the pin configuration is correct.

Setting Up the Arduino Development Environment

1. Install Arduino IDE

Please refer to the Install and Configure Arduino IDE Tutorial to install the Arduino IDE and add ESP32 board support.

2. Install Arduino-ESP32 and Board Definitions

  1. Install Arduino-ESP32 3.3.11. The example code and board definitions are organized around this version. Do not mix the board files in this directory with other versions.
  2. Copy examples/Arduino/esp32/variants/waveshare_esp32_p4_wifi6_db from the example package to the variants directory in your Arduino-ESP32 installation.
  3. examples/Arduino/esp32/boards.txt is a complete boards.txt snapshot based on Arduino-ESP32 3.3.11. If your Arduino-ESP32 installation has no other local board modifications, you can back up the original file and replace it. If you have already added other boards, merge only the entries beginning with waveshare_esp32_p4_wifi6_db..
  4. Restart Arduino IDE and select Waveshare ESP32-P4-WIFI6-DB from the board list.

The Arduino examples are located in the examples/Arduino directory of the ESP32-P4-WIFI6-DB example repository.

3. Arduino IDE Tool Options

After connecting the board, select the board and port from the "Tools" menu in Arduino IDE. The default parameters in the board definition are as follows:

OptionSetting
BoardWaveshare ESP32-P4-WIFI6-DB
Compile Targetesp32p4
Flash Size32MB
Partition Scheme32M Flash (13MB APP/6.75MB SPIFFS)
PSRAMThe board entry automatically defines BOARD_HAS_PSRAM
Upload ModeUART0
Serial Monitor Baud Rate115200

The development board uses the onboard CH343P USB-to-serial chip for program flashing and serial log output. Keep the upload mode at the default UART0. When changing the partition scheme or upload speed, confirm the corresponding example's memory requirements and actual connection. The serial output for all examples uses 115200.

Arduino Examples

The example directory is examples/Arduino and currently includes the following examples:

Example DirectoryFunctionMain Dependencies or Hardware
board_checkOutputs chip, Flash, PSRAM, and heap memory informationNo external peripherals required
gpioInteractive GPIO testing via serial commandsArduino-ESP32 Console
i2cScans for 7‑bit addresses on the I2C1 busWire1, I2C1
i2sAudio loopback from a single microphone to a single speaker using ES8311ES8311, onboard mic and speaker
sdmmcTests TF file read/write in 4‑bit modeOnboard TF card
mipi_dsiDisplays MIPI-DSI color bars and tests backlightLCD panel, backlight controller
mipi_csiDisplays OV5647 camera feed on the MIPI-DSI LCDOV5647, LCD, ESP_Video

board_check: Board Information Check

Open board_check/board_check.ino, compile and upload, then set the serial monitor to 115200. The example will output:

  • Chip model and chip revision;
  • CPU core count and frequency;
  • Flash size;
  • PSRAM size;
  • Remaining heap memory.

This example does not access the LCD, camera, audio, SDMMC, or ESP-Hosted, making it suitable for first confirming that the Arduino board definition is working correctly.

gpio: GPIO Console

Open gpio/gpio.ino and upload it. Set the serial monitor line ending to Newline. Enter help to see the command list.

gpio read <pin>
gpio write <pin> <0|1>
gpio mode <pin> <in|out|in_pu|in_pd>

For example:

gpio mode 2 out
gpio write 2 0
gpio write 2 1
gpio mode 4 in_pu
gpio read 4

This board variant does not define an onboard LED_BUILTIN. When testing GPIO, avoid using pins that are already occupied by the MIPI display, touch controller, camera, SDMMC, ESP-Hosted/SDIO, or audio codec.

i2c: I2C Address Scan

Open i2c/i2c.ino and upload it. The example uses Arduino Wire1 to scan the I2C1 bus. The default parameters are:

ItemParameter
SDAGPIO7
SCLGPIO8
Frequency400 kHz
Address Format7‑bit I2C address

This bus is shared by devices such as the ES8311, LCD backlight controller, GT911, and camera SCCB. Do not run other examples that initialize I2C1 at the same time as this scan. If no device responds, the program will not list it as a device; this does not indicate an issue with the scanning program.

i2s: ES8311 Audio Loopback

Open i2s/i2s.ino and upload it. This runs a mono audio loopback using the onboard microphone and speaker. The example runs at 48 kHz, 16-bit, I2S standard mono mode using the left-channel slot.

SignalGPIO
MCLKGPIO13
BCLKGPIO12
LRCKGPIO10
DOUTGPIO9
DINGPIO11
Amplifier EnableGPIO53, high to enable

The ES8311 Arduino Wire1 control address is the 7‑bit address 0x18. If the serial output does not show ES8311 ready, or if there is no sound in the loopback, check the I2C address, MCLK, amplifier enable, and the microphone and speaker connections. Acoustic feedback (howling) may occur if the microphone and speaker are too close together.

sdmmc: TF File Read/Write

Insert a TF card, then open sdmmc/sdmmc.ino and upload it. The example mounts the card using the 4-bit SDMMC interface, reads the capacity, and performs write and read tests on the /arduino_test.txt file in the root directory.

SignalGPIO
CLKGPIO43
CMDGPIO44
D0-D3GPIO39, GPIO40, GPIO41, GPIO42
Card Power ControlGPIO45, low to enable

If mounting fails, check that the TF card is inserted, the format is recognized, and the SDMMC pins are not occupied by other examples.

mipi_dsi: MIPI-DSI LCD

mipi_dsi uses a project-local LCD driver to initialize the MIPI-DSI panel, cyclically displays horizontal and vertical color bars, and verifies the LCD backlight through the I2C backlight controller.

Before running, install or confirm the following libraries and versions:

LibraryVersion
ESP32_Display_Panel1.0.4
ESP32_IO_Expander1.1.1
esp-lib-utils0.2.3

In mipi_dsi/esp_panel_drivers_conf.h, select only one local LCD driver:

  • ESP_PANEL_DRIVERS_LCD_ENABLE_JD9365_LOCAL
  • ESP_PANEL_DRIVERS_LCD_ENABLE_HX8394_LOCAL
  • ESP_PANEL_DRIVERS_LCD_ENABLE_ILI9881C_LOCAL

The current default configuration is for the 10.1inch JD9365, with 800 × 1280 resolution, RGB565, and dual DSI lanes. When using a different LCD panel, you must select the controller and configuration that match the actual panel.

mipi_csi: Camera Display

mipi_csi initializes the OV5647 MIPI-CSI camera and the MIPI-DSI LCD, and displays the camera's live feed on the LCD. The LCD interface supports JD9365, HX8394, and ILI9881C. mipi_csi/lcd_panel.h currently defaults to the 10.1inch JD9365 configuration.

Before running, ensure the following prerequisites are met:

  • Use Arduino-ESP32 3.3.11 and its corresponding ESP32-P4 precompiled libraries.
  • Confirm that ESP_Video has the MIPI-CSI video device enabled: CONFIG_ESP_VIDEO_ENABLE_MIPI_CSI_VIDEO_DEVICE=y.
  • In lcd_panel.h, set LCD_PANEL_TYPE to match the actual connected LCD panel type.
  • Connect the OV5647 camera and the actual LCD panel, and verify that camera power, MIPI cables, and the shared I2C/SCCB connections are correct.

mipi_csimipi_dsii2s, and i2c do not all initialize I2C1 in the same way: i2s and i2c use Arduino Wire1mipi_dsi uses the legacy I2C API, and mipi_csi uses the newer i2c_master API. Do not run these examples simultaneously in the same Arduino project, or re-initialize the same bus repeatedly.

Board Resources and Shared Interfaces

Pin Aliases

The Arduino board variant provides the following common pin aliases:

InterfacePin
SDA / SDA1GPIO7
SCL / SCL1GPIO8
SSGPIO26
MOSIGPIO32
MISOGPIO33
SCKGPIO36
UART TX / RXGPIO37 / GPIO38

GPIO7 and GPIO8 are the onboard I2C1 shared bus. The LCD backlight, GT911, ES8311, and camera SCCB all use the relevant board-level bus resources. Before changing pins, check both the actual hardware connections and the initialization code in the corresponding examples.

I2C and Onboard Peripherals

The board uses GPIO7 (SDA) and GPIO8 (SCL) to connect multiple I2C devices, with a default frequency of 400 kHz. Different examples use different I2C APIs:

  • i2c and i2s use Arduino Wire1.
  • mipi_dsi uses the legacy API from driver/i2c.h to control the LCD backlight.
  • mipi_csi uses Wire1 to create a new‑style i2c_master bus, and passes the bus handle to the camera SCCB and LCD backlight.

Do not mix the initialization methods from these examples within the same program. The build results and hardware state for complex examples must be verified individually on the target board; the current configuration cannot be applied directly after changes to the Arduino-ESP32 version, LCD panel model, or hardware connections.


Working with ESP-IDF

This chapter includes the following sections:

ESP-IDF Getting Started

New to ESP32 ESP-IDF development and looking to get started quickly? We have prepared a general Getting Started Tutorial for you.

Please Note: This tutorial uses the ESP32-S3-Zero as a teaching example, and all hardware code is based on its pinout. Before you start, it is recommended that you check the pinout of your development board to ensure the pin configuration is correct.

Setting Up the ESP-IDF Development Environment

INFO

The ESP-IDF BSP and brookesia_test in the ESP32-P4-WIFI6-DB repository require ESP-IDF >=5.5, and 10_wifi_antenna_tesat requires ESP-IDF >=6.0. These are the version constraints declared in the component manifest. Dependent components may impose additional requirements. For the component and configuration requirements of specific examples, refer to the README in the corresponding example directory.

NOTE

The following guide uses Windows as an example, demonstrating development using VS Code + the ESP-IDF extension. macOS and Linux users should refer to the official documentation.

VERSION SELECTION

The screenshots in this section use ESP-IDF V5.5.2 as an example. When installing, please select the ESP-IDF version that matches your board's example.

Install the ESP-IDF Development Environment

  1. Download the installation manager from the ESP-IDF Installation Manager page. This is Espressif's latest cross-platform installer. The following steps demonstrate how to use its offline installation feature.

    Click the Offline Installer tab on the page, then select Windows as the operating system and the ESP-IDF version you need (the version shown in the screenshot is for reference only — choose the version that fits your actual needs).


    After confirming your selection, click the download button. The browser will automatically download two files: the ESP-IDF Offline Package (.zst) and the ESP-IDF Installer (.exe).


    Please wait for both files to finish downloading.

  2. Once the download is complete, double-click to run the ESP-IDF Installer (eim-gui-windows-x64.exe).

    The installer will automatically detect if the offline package exists in the same directory. Click Install from archive.


    Next, select the installation path. We recommend using the default path. If you need to customize it, ensure the path does not contain Chinese characters or spaces. Click Start installation to proceed.


  3. When you see the following screen, the ESP-IDF installation is successful.


  4. We recommend installing the drivers as well. Click Finish installation, then select Install driver.


Install Visual Studio Code and the ESP-IDF Extension

  1. Download and install Visual Studio Code.

  2. During installation, it is recommended to check Add "Open with Code" action to Windows Explorer file context menu to facilitate opening project folders quickly.

  3. In VS Code, click the Extensions icon Extensions Icon in the Activity Bar on the side (or use the shortcut Ctrl + Shift + X) to open the Extensions view.

  4. Enter ESP-IDF in the search box, locate the ESP-IDF extension, and click Install.


  5. For ESP-IDF extension versions ≥ 2.0, the extension will automatically detect and recognize the ESP-IDF environment installed in the previous steps, requiring no manual configuration.

ESP32-P4-WIFI6-DB Example

The ESP-IDF BSP and example programs for the ESP32-P4-WIFI6-DB are maintained in the ESP32-P4-WIFI6-DB Example. You can obtain the board‑level code and example programs from this repository.

The relevant directories in the repository are:

  • firmware/esp32_p4_wifi6_db/: ESP-IDF BSP, header files, Kconfig, and component manifest.
  • examples/esp_idf/: Peripheral examples and Brookesia applications.
  • firmware/factory-firmware/: ESP32-P4 firmware for 5, 7, 8, and 10.1inch panels, as well as ESP32-C5 slave firmware.
  • ESP32-P4-WIFI6-DB Schematic.

The target chip for the example projects is esp32p4.

Quick Run

The following commands use the 00_board_check example. Switch the terminal's current directory to the example directory and run them, replacing COMx with the actual serial port of the ESP32-P4:

cd examples/esp_idf/00_board_check
idf.py set-target esp32p4
idf.py build
idf.py -p COMx flash monitor

Display, camera, and Wi-Fi related examples also require selecting the actually connected LCD panel and entering Wi-Fi credentials via idf.py menuconfig before building. The component manager resolves dependencies during the configuration phase.

LCD Panel Selection

The BSP selects the LCD panel via the following options:

BSP OptionPanel ControllerResolution
CONFIG_BSP_LCD_TYPE_720_1280_5_INCH_AHX8394, 5inch720 × 1280
CONFIG_BSP_LCD_TYPE_720_1280_7_INCH_AILI9881C, 7inch720 × 1280
CONFIG_BSP_LCD_TYPE_800_1280_8_INCH_AJD9365, 8inch800 × 1280
CONFIG_BSP_LCD_TYPE_800_1280_10_1_INCH_AJD9365, 10.1inch800 × 1280

The BSP Kconfig defaults to the 10.1inch JD9365, and the default configuration of brookesia_test selects the 8inch JD9365. Before building, select the panel that is actually connected. The default configuration does not override an existing sdkconfig; to confirm the options actually in effect, check the project configuration and the generated build/config/sdkconfig.h.

It is recommended to run the examples in the following order: first confirm the board‑level peripherals, then verify the display, networking, and other functions:

  1. 00_board_check: Board‑level peripheral check.
  2. 02_i2c_console_test: I2C bus check.
  3. 03_sdmmc_test: SDMMC check.
  4. 04_mipi_dsi_test: Display test.
  5. 06_wifi_test: Wi-Fi Station test.

ESP-IDF Example Index

Example DirectoryExample Content
00_board_checkOutputs chip, Flash, PSRAM, heap memory information, and periodic heartbeat
01_gpio_input_testDisplays GPIO input status on the LCD
02_i2c_console_testInteractive I2C scan and register read/write console
03_sdmmc_testTF file write, read, and rename test
04_mipi_dsi_testLCD output test, currently displaying a solid white screen
05_mipi_csi_testUses PPA processing and previews the camera feed on the LCD
06_wifi_testWi-Fi Station networking and gateway ping
07_i2s_codecES8311 built-in audio playback or microphone loopback
08_usb_host_mscUSB mass storage file operations and sequential read/write speed test
09_bt_controller_mac_addrHosted Bluetooth MAC view/configuration and BLE GATT test
10_wifi_antenna_tesatWi-Fi scan, STA networking, band, and RSSI logging
brookesia_testComprehensive interface including calculator, drawing board, audio, camera, video, settings, Xiaozhi, and GPIO applications

10_wifi_antenna_tesat is the current directory spelling in the repository. For wiring and operation methods, refer to the README and configuration in each example directory.

Pre‑run Checks

  • The board implements wireless functionality via the ESP32-C5 wireless co-processor and ESP-Hosted/SDIO. The ESP32-C5 requires compatible ESP-Hosted slave firmware; flashing an ESP32-P4 example will not update the ESP32-C5.
  • The I2C bus uses GPIO7 (SDA) and GPIO8 (SCL), connecting to the ES8311, GT911, LCD backlight controller, and camera SCCB bus.
  • The ES8311 I2S signals use GPIO13, GPIO12, GPIO10, GPIO9, and GPIO11, and amplifier enable uses GPIO53.
  • The TF uses 4-bit SDMMC, card power enable is GPIO45 (active low), and SDMMC IO power uses LDO channel 4.
  • The LCD backlight is controlled via the 0x45 device on the shared I2C bus, brightness register 0x96; GT911 uses polling mode.
  • ESP-Hosted/SDIO uses GPIO18, GPIO19, GPIO14, GPIO15, GPIO16, GPIO17, and GPIO54.
  • For component versions, configuration requirements, and hardware connection details of specific examples, please refer to the README in the corresponding example directory and the board hardware documentation. Build, flash, and run results must be confirmed separately for the selected example, ESP-IDF version, and actual panel.


ESP32-P4-WIFI6-DB Firmware Flashing and Erasing

The following steps apply to flashing the bin firmware provided for this model when the ESP32-P4-WIFI6-DB is connected to a 10.1inch panel. Before using the firmware, confirm that it matches the ESP32-P4 chip version, Flash size, board model, and panel model.

For other panel models, select the corresponding BSP panel configuration in the ESP-IDF project and build the firmware yourself. This 10.1inch firmware cannot be used directly.

The following steps apply to the firmware provided on this page.

  • Download and extract Espressif's official Flash Download Tool (Download)

  • Run Flash Download Tool and select the options that match the development board's MCU and download interface. The screenshot below uses ESP32-S3 and USB as an example; use the options required by the product's hardware design.


  • Parameter settings

    • Select the COM port for the development board
    • Set BAUD to the maximum value, 1152000
    • Click the "..." button in the row, select the bin file provided by Waveshare, manually enter the flash address given at the top of this page in the field to its right, and select the leftmost checkbox in the row
    • Click START to begin flashing


  • Wait for flashing to complete (this may take some time; please be patient)

  • Press the reset button and verify the result



Resources

1. Example

The BSP, ESP-IDF examples, and Arduino examples for the ESP32-P4-WIFI6-DB are maintained in the example repository for this model.

2. Hardware Resources

3. Technical Manuals

4. Software Tools







TAG: ESP32 ST7789 5inch USB Monitor Raspberry Pi Refractive Prism SpotPear Day and IR Night Vision Modbus POE ETH Relay Waveshare User Guide Jetson Nano IO Board 7inch-USB-Monitor user guide MPW7 Raspberry Pi 5 PCIe to WIFI7 Adapter Board HAT Pi5 For Google TPU BE200 AX210 AI RV1106 7.5 inch Passive NFC e-Paper V2 BW Display 7.5inch E-ink Screen No Need Battery Wireless Powered Data Transfer For Mobile APP ESP32-S3 1.69inch Touchscreen LCD Round Display WiFi Bluetooth With QST Attitude Gyro Sensor QMI8658 USB IR Infrared Thermal Imaging Camera C 45°/88° 160x120 For Phone/PC High Temp Warning/Take Photo /Recording video Font-Modulation-Tutorial User Guide ESP32 Raspberry Pi Compute Module 5 CM5 Cortex A76 BCM2712 With/Without Wi-Fi RAM 2/4/8/16GB eMMC Lite/8/16/32/64GB DeepsSeek XiaoZhi AI Voice Chat ESP32-S3 1.54 inch LCD Kit N16R8 WROOM-1-N16R8 DevKitC-1 Development Board user guide Raspberry Pi 3 display HAT Raspberry Pi Zero Pi0 2W Digital Photo Frame 7.3 inch E6 Full Color E Paper Ink Calendar Art Poster