Skip to content

Repository files navigation

ESP32-P4-WIFI6-Touch-LCD-7B

7-inch 1024 × 600 touch display development board powered by ESP32-P4 and ESP32-C6

ESP-IDF Examples License

中文 · 🌐 Product Page · 📚 Documentation · 🧩 ESP-IDF Examples · 🔧 Arduino Examples · 📦 Firmware

Waveshare ESP32-P4-WIFI6-Touch-LCD-7B

✨ Overview

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.

🖥️ Hardware Overview

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.

🚀 Quick Start

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 monitor

Replace 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.

🧪 ESP-IDF Examples

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.

🧪 Arduino Examples

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 and ESP32-C6 Wireless

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.

✅ Continuous Integration

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.

📦 Firmware

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.bin is 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.

🗂️ Repository Layout

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.

📚 Documentation

🤝 Support and Contributions

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.

📄 License

This repository is licensed under the Apache License 2.0. See LICENSE.

About

ESP32-P4-WIFI6-Touch-LCD-7B Engineering Sample Program

Resources

Contributing

Stars

32 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages