7-inch 1024 × 600 touch display development board powered by ESP32-P4 and ESP32-C6
中文 · 🌐 Product Page · 📚 Documentation · 🧩 ESP-IDF Examples · 🔧 Arduino Examples · 📦 Firmware
This repository provides first-party ESP-IDF and Arduino examples, GitHub Actions validation, ESP-Brookesia firmware source, and a prebuilt factory firmware image for the Waveshare ESP32-P4-WIFI6-Touch-LCD-7B.
The board combines the multimedia capabilities of ESP32-P4 with an ESP32-C6 wireless coprocessor, a 7-inch capacitive touch display, camera and audio interfaces, USB, microSD, and industrial expansion interfaces. See the product page for ordering information and the official documentation for complete hardware and setup guidance.
| Feature | Device / interface |
|---|---|
| Main processor | ESP32-P4NRW32 with dual-core HP RISC-V processing up to 360 MHz and a low-power core |
| Memory | 32 MB in-package PSRAM and 32 MB external NOR Flash |
| Wireless | ESP32-C6-MINI-1 over SDIO, providing 2.4 GHz Wi-Fi 6 and Bluetooth 5 (LE) |
| Display | 7-inch 1024 × 600 IPS touch display over MIPI-DSI |
| Touch | GT911 capacitive controller with five-point touch |
| Camera | MIPI-CSI (2-lane) connector; an OV5647 camera is available with the camera version |
| Audio | ES8311 codec, ES7210 audio ADC, dual microphones, and speaker header |
| Storage and expansion | microSD, USB 2.0 OTG HS, CAN/TWAI, RS485, I2C, UART, and GPIO |
| Board support | Managed component: waveshare/esp32_p4_wifi6_touch_lcd_7b 3.0.1 |
| ESP-IDF target | esp32p4 |
Note
Hardware pin assignments are maintained in the official product documentation and board support package. This repository does not currently include a local schematic copy.
Install ESP-IDF v5.5.5, then build the first-run board check:
cd examples/esp-idf/00_board_check
idf.py set-target esp32p4
idf.py build
idf.py -p PORT flash monitorReplace PORT with the board's serial port. After the board check succeeds,
continue with the Getting Started guide or choose an
example from the table below.
| Example | Focus |
|---|---|
| 00_board_check | First-run board, memory, and chip-revision checks |
| 01_how_to_create_project | Minimal project template |
| 02_hello_world | Basic application and logging |
| 03_i2c_tools | I2C scanning and diagnostics |
| 04_sdmmc | microSD card access |
| 05_wifistation | Wi-Fi station through the ESP32-C6 hosted path |
| 06_i2s_codec | Board audio input and output |
| 07_color_panel | MIPI-DSI color-bar bring-up |
| 08_lvgl_display_panel | LVGL display and GT911 touch integration |
| 09_lvgl_demo_v9 | LVGL 9 demo |
| 11_esp_brookesia_phone | ESP-Brookesia application UI |
| 12_usb_extend_screen | USB extended display |
| 13_rs485_test | RS485 transmit and receive |
| 14_twai_transmit | CAN/TWAI transmit |
| 15_nvs_counter | Persistent NVS counter |
| 16_freertos_tasks | FreeRTOS tasks and queues |
| 17_system_monitor | Serial system diagnostics |
| 18_mp4_player | MP4 or AVI playback from microSD |
See the complete example index for recommended learning order and hardware requirements.
The examples/arduino/ directory provides 12 Arduino-ESP32
3.3.11 sketches for the 7B display, GT911 touch, ESP32-C6 Wi-Fi path, camera,
microSD, audio, RS485, and CAN/TWAI. Select ESP32P4 Dev Module, enable PSRAM,
and choose the Chip Variant that matches the ESP32-P4 silicon revision. CI uses
the Rev3.x postv3 variant by default. The Arduino integration does not assign
GT911 INT or RST; it probes 0x5D and then 0x14 and keeps touch input in
polling mode. See the
Arduino example guide for menu settings, pin maps,
and field-bus wiring requirements.
ESP32-P4 does not contain an integrated radio. Wi-Fi and Bluetooth are provided
by the ESP32-C6 coprocessor over SDIO using ESP-Hosted. Keep the ESP32-C6 slave
firmware compatible with the esp_hosted and esp_wifi_remote versions
declared by each wireless project before changing or reflashing the
coprocessor.
The ESP-IDF examples workflow
discovers first-party projects and builds them for esp32p4:
| ESP-IDF version | Current coverage |
|---|---|
v5.5.5 |
All 18 included first-party examples |
v6.0.2 |
All 18 included first-party examples |
The Arduino examples workflow
compiles all 12 Arduino sketches with Arduino-ESP32 3.3.11 and the postv3
Chip Variant. It is compile coverage only and does not publish firmware ZIPs.
The lightweight discovery job classifies the complete pull-request diff before
starting expensive builds. Documentation-only and governance-only changes run
the repository checks without building examples; direct source changes select
the affected example, and shared CI or configuration changes select all 18.
All 46 example builds default to the Rev3.x rev3_x silicon profile without
multiplying the matrix. firmware/brookesia remains outside that matrix and is
not currently built or packaged by GitHub Actions. See
Continuous Integration for routing and dispatch options. CI is
compile evidence only, not hardware/HIL validation; no local schematic is held
in this repository and the online BSP/application glue boundary remains in use.
The firmware/ directory keeps two different firmware surfaces:
firmware/brookesia/is an inventoried delivery-source project; it is not built by the default example CI.firmware/ESP32-P4-WIFI6-Touch-LCD-7B-FactoryOnly.binis the existing prebuilt factory firmware image and is not a CI build output.
Factory BIN files are immutable delivery artifacts. Firmware-source changes and validation require an explicitly scoped firmware-maintenance workflow. See Firmware for delivery and flashing boundaries.
| Path | Purpose |
|---|---|
examples/esp-idf/ |
First-party ESP-IDF projects |
examples/arduino/ |
Arduino sketches and bundled board libraries |
firmware/ |
Brookesia source and prebuilt factory firmware |
config/ |
Shared ESP32-P4 revision overlays |
docs/ |
Getting-started, CI, structure, and revision notes |
assets/ |
Product images used by repository documentation |
.github/ |
CI workflows and repository checks |
Use lowercase examples/esp-idf/ and examples/arduino/ paths. Generated
build outputs such as build/, managed_components/, dependencies.lock, and
local sdkconfig files are intentionally ignored.
- Official Product Documentation
- Getting Started
- Examples
- Arduino Examples
- Example Guide
- Firmware
- Continuous Integration
- Project Structure
- ESP32-P4 Revision Configuration
Contributions and reproducible issue reports are welcome. Include the board version, example path, ESP-IDF version, reproduction steps, expected behavior, actual behavior, and relevant serial logs.
This repository is licensed under the Apache License 2.0. See LICENSE.