ESP32-P4-Pi-VIEWE Dev Board
-
ESP32-P4-Pi-VIEWE --- development board is designed based on the VIEWE ESP32-P4-Core module, which integrates ESP32-P4 and ESP32-C6 dual chips and supports Wi-Fi 6 and Bluetooth 5 wireless connections with “Raspberry Pi” form factor.
1. Introduction
The ESP32-P4-Pi-VIEWE development board is designed based on the VIEWE ESP32-P4-Core module, which integrates ESP32P4 and ESP32-C6 chips and supports Wi-Fi 6 and Bluetooth 5 wireless connections. It provides a variety of Human-Machine Interface (HMI) interfaces, including MIPI-CSI (integrated with Image Signal Processor ISP), MIPI-DSI, SPI, I2S, I2C, LED PWM, MCPWM, RMT, ADC, UART, and TWAI. In addition, it supports USB OTG 2.0 H5, reserves an RJ45 Ethernet interface, can be expanded with POE (Power over Ethernet) functionality, and is equipped with a 40-pin GPIO expansion interface. By adopting the industry-standard “Raspberry Pi” form factor (85 x 56 mm), it offers a seamless upgrade path for developers looking to migrate from Linux-based systems to the more cost-effective and real-time capable ESP32-P4 ecosystem.
2. Functional Features
2.1 CPU
- High-Performance System: Equipped with a RISC-V 32-bit dual-core processor with DSP and instruction set extensions, floating-point arithmetic unit (FPU), and a main frequency of up to 400 MHz
- Low-Power System: Equipped with a RISC-V 32-bit single-core processor with a main frequency of up to 40 MHz
- Wireless Coprocessor: Equipped with an ESP32-C6 WIFI/BT coprocessor, expanding functions such as WIFI 6/Bluetooth 5 through SDIO
2.2 Memory
- Read-Only Memory (ROM):
- 128 KB of high-performance (HP) system ROM
- 16 KB of low-power (LP) system ROM
- RAM:
- 768 KB of high-performance (HP) L2 memory (L2MEM)
- 32 KB of low-power (LP) SRAM
- 8 KB of system tightly coupled memory (TCM)
- External Memory:
- 32 MB PSRAM is stacked and sealed inside the package
- 16MB Nor Flash is connected through the QSPI interface
2.3 Peripheral Interfaces
- Multimedia Processing:
- Powerful image and voice processing capabilities
- Dedicated interfaces including JPEG codec, Pixel Processing Accelerator (PPA), Image Signal Processor (ISP), and H.264 video encoder
- On-Board Interfaces:
- MIPI-CSI, MIPI-DSI, USB 2.0 OTG, Ethernet
- SDIO 3.0 SD card slot
- Dual microphones and speaker terminals
- RTC battery terminals
- Expansion:
- 2×20 pin headers providing access to 28 remaining programmable GPIOs
3. Applications
With low power consumption, ESP32-P4 is an ideal choice for IoT devices in the following areas:
- Smart Home
- Industrial Automation
- Health Care
- Consumer Electronics
- Smart Agriculture
- Retail Self-Service Terminals (POS, Vending Machines)
- Service Robot
- Multimedia Player
- Cameras for Video Streaming
- High-Speed USB Host and Device
- Smart Voice Interaction Terminal
- Edge Vision AI Processor
- HMI Control Panel
4. Hardware Description
4.1 Module Introduction

| Component | Description |
|---|---|
| 01. ESP32-P4-Module | ESP32-P4-Core Built-in ESP32-P4NRW32, ESP32-C6, 16MB Nor Flash, WIFI 6/Bluetooth 5 |
| 02. RGB LED | RGB status indicator |
| 03. Ethernet port chip | Ethernet controller |
| 04. ES8311 | Audio codec chip |
| 05. MIC1 | First microphone input |
| 06. Speaker interface | MX1.25 2P connector, supporting 8Ω2W speaker |
| 07. Type-A interface | USB OTG 2.0 High Speed interface |
| 08. 100 Mbps RJ45 Ethernet port | Standard Ethernet connection |
| 09. PoE Module interface | Supports external PoE module connection for PoE power supply |
| 10. Display interface | MIPI-2lane display interface |
| 11. MIC2 | Second microphone input |
| 12. Button | Boot button (press when powering on/resetting to enter download mode) and Reset button |
| 13. Type-C interface | Can be used for power supply and program burning |
| 14. Type-C UART interface | Can be used for power supply, program burning, and debugging |
| 15. CH340C | USB to UART bridge |
| 16. ES7210 | Quad-channel digital microphone interface chip |
| 17. TF card slot | SDIO 3.0 interface protocol |
| 18. ESP32-C6 UART interface | UART connection to ESP32-C6 |
| 19. Power indicator light | Power status indicator |
| 20. Camera interface | MIPI 2-lane camera interface |
| 21. 6-axis attitude sensor | 3-axis accelerometer and 3-axis gyroscope sensor |
| 22. ESP32-C6 SMD ANT | SDIO interface protocol, expanding Wi-Fi 6 and Bluetooth 5 |
| 23. 40PIN Pin header | GPIO expansion header |
4.2 GPIO Definition

5. Functional Block Diagram
The main components and connection methods of the ESP32-P4-Pi-VIEWE-Board are shown in the following figure:

6. Instructions for Use
This tutorial aims to guide users to set up the software environment for ESP32-P4 hardware development, and demonstrates how to use the ESP-IDF configuration menu, compile, and download firmware to the ESP32-P4 development board through simple examples.
Preparation
Hardware
- ESP32-P4-Pi-VIEWE Development Board
- USB data cable (Type-A to Type-C, prepared as needed)
- Computer (Windows, Linux or macOS)
Software
Tip
It is recommended to install ESP-IDF using an integrated development environment. If you are familiar with ESP-IDF, you can start directly from the ESP-IDF terminal. You can choose any of the following development methods:
- VSCode + ESP-IDF plugin (recommended)
- Eclipse + ESP-IDF plugin (Espressif-IDE)
- Arduino IDE
7. Software
We provide comprehensive support for Arduino, PlatformIO, and ESP-IDF frameworks, with pre-ported LVGL examples.
7.1 Software Examples
Examples are available in the GitHub Repository.
| Framework | Example Path | Description |
|---|---|---|
| Arduino | examples/arduino/gui/lvgl_v8 | LVGL Benchmark: Usage example of lvgl v8. It can also be directly opened in the Arduino IDE. |
| ESP-IDF | examples/esp_idf/lvgl_v9_port | lvgl port: Example of porting and using lvgl in esp-idf |
| PlatformIO | examples/platformio/lvgl_v8_port | lvgl v8 port: Usage example of lvgl v8. |
Framework Support Status
- Arduino: Not supported temporarily, but we will provide corresponding steps and launch the update as soon as possible.
- PlatformIO: Not supported temporarily, but we will provide corresponding steps and launch the update as soon as possible.
7.2 Getting Started
7.2.1 Preparation
- Hardware: ESP32-P4-PI Board, USB-C Cable
- Software:
- VS Code (ESP-IDF v5.5+)
- Arduino IDE (v2.0+)
- VS Code (PlatformIO)
- Libraries (needed for Arduino IDE and PlatformIO):
| Library | Version | Description |
|---|---|---|
ESP32_Display_Panel | 1.0.3+ | by Espressif, This is necessary to drive the screen |
ESP32_IO_Expander | Arduino automatic selection | Dependency library of ESP32_Display_Panel |
esp-lib-utils | Arduino automatic selection | Dependency library of ESP32_Display_Panel |
lvgl | 8.4.0 | A free and open-source embedded graphics library |
7.2.2 ESP-IDF Setup
- Open platformio example
- Go to GitHub to download the program. You can download the main branch by clicking on the "<> Code" with green text
-
Open the example using VS Code(ESP-IDF)
-
Compile and upload:
- Click
buildin the upper right corner to compile - Connect the microcontroller to the computer. If the compilation is correct
- Click
uploadin the upper right corner to download
7.2.3 Arduino Setup (Novice tutorial)
- Install Arduino
- Choose installation based on your system type
-
Newcomers please refer to the beginner's tutorial
-
Install ESP32 Board Package:
- Open Arduino IDE
- Go to
File>Preferences - Add to
Additional boards manager URLs:https://espressif.github.io/arduino-esp32/package_esp32_index.json - Go to
Tools > Board > Boards Manager -
Search
esp32by Espressif and install version 3.0.0+ -
Install Libraries:
- Go to
Sketch > Include Library > Library Manager - Search
ESP32_Display_Panelby Espressif and install version 1.0.4+. You will be prompted whether to install its dependencies, please click INSTALL ALL to install all -
Install
lvgl(v8.4.0 recommended) -
Open example:
- Navigate to
File>Examples>ESP32_Display_Panel -
Select
Arduino>gui>lvgl_v8>simple_port -
Select Board:
- Target:
ESP32P4 Dev Module -
Settings:
- Flash Size: 32MB
- Partition Scheme: 32M Flash
- PSRAM: OPI PSRAM (Crucial!)
-
Config ESP supported panel board:
- Open the
esp_panel_board_supported_conf.hfile in the example - Enable this file: change the
ESP_PANEL_BOARD_DEFAULT_USE_SUPPORTEDmacro definition to1 -
Ensure you uncomment:
#define BOARD_VIEWE_ESP32_P4_PI... /** * @brief Flag to enable supported board configuration (0/1) * * Set to `1` to enable supported board configuration, `0` to disable */ #define ESP_PANEL_BOARD_DEFAULT_USE_SUPPORTED (1) ... // #define BOARD_VIEWE_SMARTRING // #define BOARD_VIEWE_UEDX24240013_MD50E // #define BOARD_VIEWE_UEDX24320024E_WB_A // #define BOARD_VIEWE_UEDX24320028E_WB_A // #define BOARD_VIEWE_UEDX24320035E_WB_A // #define BOARD_VIEWE_UEDX32480035E_WB_A // #define BOARD_VIEWE_UEDX46460015_MD50ET // #define BOARD_VIEWE_UEDX48270043E_WB_A // #define BOARD_VIEWE_UEDX48480021_MD80E_V2 // #define BOARD_VIEWE_UEDX48480021_MD80E // #define BOARD_VIEWE_UEDX48480021_MD80ET // #define BOARD_VIEWE_UEDX48480028_MD80ET // #define BOARD_VIEWE_UEDX48480040E_WB_A // #define BOARD_VIEWE_UEDX80480043E_WB_A // #define BOARD_VIEWE_UEDX80480050E_AC_A // #define BOARD_VIEWE_UEDX80480050E_WB_A // #define BOARD_VIEWE_UEDX80480050E_WB_A_2 // #define BOARD_VIEWE_UEDX80480070E_WB_A #define BOARD_VIEWE_ESP32_P4_PI ... -
Configure the example:
- [Optional] Edit the macro definitions in the
lvgl_v8_port.hfile- If using
RGB/MIPI-DSIinterface, change theLVGL_PORT_AVOID_TEARING_MODEmacro definition to1/2/3to enable the avoid tearing function. After that, change theLVGL_PORT_ROTATION_DEGREEmacro definition to the target rotation degree - If using other interfaces, please don't modify the
LVGL_PORT_AVOID_TEARING_MODEandLVGL_PORT_ROTATION_DEGREEmacro definitions
- If using
-
[Optional] Edit the macro definitions in the
lv_conf.hfile- If using
SPI/QSPIinterface, change theLV_COLOR_16_SWAPmacro definition to1
- If using
-
Select the correct port:
- Connect to the device
-
Go to
Tools > Port, Select the corresponding port -
Compile and upload:
- Click
√in the upper right corner to compile - Connect the microcontroller to the computer. If the compilation is correct
- Click
→in the upper right corner to download
Configuration Tips
- In
esp_panel_board_supported_conf.h, ensure you uncomment:#define BOARD_VIEWE_ESP32_P4_PI - Do not enable both
ESP_PANEL_BOARD_DEFAULT_USE_SUPPORTEDandESP_PANEL_BOARD_DEFAULT_USE_CUSTOM - You cannot enable multiple esp supported panel boards at the same time
7.2.4 PlatformIO Setup
- Open platformio example
- Go to GitHub to download the program. You can download the main branch by clicking on the "<> Code" with green text
-
Open the example using VS Code(PlatformIO)
-
Configure PlatformIO:
-
This example uses the
BOARD_ESPRESSIF_ESP32_S3_LCD_EV_BOARD_2_V1_5board as default. ChooseBOARD_VIEWE_UEDX24320024E_WB_Ain the[platformio]:default_envsof theplatformio.inifile -
Configure the example:
-
[Optional] Edit the macro definitions in the
lvgl_v8_port.hfile- If using
RGB/MIPI-DSIinterface, change theLVGL_PORT_AVOID_TEARING_MODEmacro definition to1/2/3to enable the avoid tearing function. After that, change theLVGL_PORT_ROTATION_DEGREEmacro definition to the target rotation degree - If using other interfaces, please don't modify the
LVGL_PORT_AVOID_TEARING_MODEandLVGL_PORT_ROTATION_DEGREEmacro definitions
- If using
-
Compile and upload the project
- Click the
√(Compile) button - Connect the board to your computer. If the compilation is correct
- Click the
→(upload) button
8. Related Documents
📄 Product Documents
| Document Title | Type | Description |
|---|---|---|
| Product Datasheet | Product Specification | |
| Schematic Diagram | Circuit Design & PCB Connections | |
| Display Driver IC | EK79007AD3 Driver Manual | |
| Camera Specification | MIPI-CSI Camera Module Spec |
🧠 Chip Datasheets
| Chip | Document | Language |
|---|---|---|
| ESP32-P4 | Datasheet | English |
| ESP32-P4 | Datasheet | Chinese |
| ESP32-P4 | Tech Reference Manual | English |
| ESP32-P4 | Tech Reference Manual | Chinese |
| ESP32-C6 | Datasheet | English |
| ESP32-C6 | Datasheet | Chinese |
9. More Resource
Can't find what you need?
If you need more Support or Products or Resource, please contact our team: