Espressif ESP32-P4-Function-EV-Board

Espressif ESP32-P4 evaluation board with 16MB flash, Ethernet, MIPI DSI/CSI, audio codec and an ESP32-C6-MINI-1 for Wi-Fi 6 and Bluetooth 5 LE.

USB-C + USB-C + USB-C + USB-A Native USB
Espressif ESP32-P4-Function-EV-Board board
88 × 74 mm
ESP32-P4
RISC-V MCU
400MHz
clock
16MB
flash
768KB
SRAM
26· 6 ADC
GPIO
Wi-Fi
radio
On this page

Espressif ESP32-P4-Function-EV-Board Pinout

40 pins · 2.54 mm pitch
Espressif ESP32-P4-Function-EV-Board pinout diagram, high resolution: all 40 pins, with GPIO numbers, ADC channels and strapping pins
Espressif ESP32-P4-Function-EV-Board pinout, drawn by ESPboards from the ESP32-P4 Series Datasheet v0.7.
Espressif ESP32-P4-Function-EV-Board pinout diagramEspressif ESP32-P4-Function-EV-Board pinout diagram, second view
PinGPIOLabelsStatusCapabilitiesNotes
1-3V3power-Header J1 pin 1 - 3.3V supply
2-5Vpower-Header J1 pin 2 - 5V supply
377GPIO7SDAsafepwm · i2cHeader J1 pin 3 - BSP I2C SDA (shared with onboard codec/touch)
4-5Vpower-Header J1 pin 4 - 5V supply
588GPIO8SCLsafepwm · i2cHeader J1 pin 5 - BSP I2C SCL (shared with onboard codec/touch)
6-GNDground-Header J1 pin 6
72323GPIO23safeadc · pwmHeader J1 pin 7 - ADC1 channel 7
83737GPIO37U0TXDstrappinguart · pwmHeader J1 pin 8 - UART0 TX
9-GNDground-Header J1 pin 9
103838GPIO38U0RXDstrappinguart · pwmHeader J1 pin 10 - UART0 RX
112121GPIO21safeadc · pwmHeader J1 pin 11 - ADC1 channel 5
122222GPIO22safeadc · pwmHeader J1 pin 12 - ADC1 channel 6
132020GPIO20safeadc · pwmHeader J1 pin 13 - ADC1 channel 4; also the chip's USB D+ pad in the BSP
14-GNDground-Header J1 pin 14
1566GPIO6safepwmHeader J1 pin 15
1655GPIO5safepwmHeader J1 pin 16
17-3V3power-Header J1 pin 17 - 3.3V supply
1844GPIO4safepwmHeader J1 pin 18
1933GPIO3safepwmHeader J1 pin 19
20-GNDground-Header J1 pin 20
2122GPIO2safepwmHeader J1 pin 21
221NC(1)GPIO1safepwmHeader J1 pin 22 - not connected by default; disable XTAL_32K to route GPIO1 here
230NC(0)GPIO0safepwmHeader J1 pin 23 - not connected by default; disable XTAL_32K to route GPIO0 here
243636GPIO36strappingpwmHeader J1 pin 24
25-GNDground-Header J1 pin 25
263232GPIO32safepwmHeader J1 pin 26
27-NCcontrol-Header J1 pin 27 - no connection
28-NCcontrol-Header J1 pin 28 - no connection
293333GPIO33safepwmHeader J1 pin 29
30-GNDground-Header J1 pin 30
312626GPIO26safepwmHeader J1 pin 31 - BSP LCD backlight for the 1024x600 panel
325454GPIO54safeadc · pwmHeader J1 pin 32 - ADC2 channel 5
334848GPIO48safepwmHeader J1 pin 33
34-GNDground-Header J1 pin 34
355353GPIO53safeadc · pwmHeader J1 pin 35 - ADC2 channel 4; BSP power amplifier enable
364646GPIO46safepwmHeader J1 pin 36
374747GPIO47safepwmHeader J1 pin 37
382727GPIO27safepwmHeader J1 pin 38 - BSP LCD reset for the 1024x600 panel
39-GNDground-Header J1 pin 39
4045NC(45)GPIO45safepwmHeader J1 pin 40 - not connected by default; disable SD_PWRn to route GPIO45 here
Download the Espressif ESP32-P4-Function-EV-Board pinout Free to use and share for non-commercial work, as long as you credit espboards.dev. License.
26 GPIOs broken out 23 free · 3 need care · 0 to avoid

Start with these

23 pins with no boot or system involvement
7GPIO78GPIO823GPIO2321GPIO2122GPIO2220GPIO206GPIO65GPIO54GPIO43GPIO32GPIO2NC(1)GPIO1NC(0)GPIO032GPIO3233GPIO3326GPIO2654GPIO5448GPIO4853GPIO5346GPIO4647GPIO4727GPIO27NC(45)GPIO45

Freely assignable - no strapping, flash, USB or JTAG duties. Ideal first picks for buttons, sensors and LEDs.

Fine - with a little care

3 pins · 2 things to know
37GPIO3738GPIO38 Strapping pin; participates in chip boot-mode control (see ESP32-P4 TRM, Chip Boot Control). Strapping

Sampled at reset as a boot-mode strap; avoid holding it at a fixed level during boot unless intentionally configuring boot mode. Free after reset.

  • 37Strapping pin; participates in chip boot-mode control (see ESP32-P4 TRM, Chip Boot Control).
  • 38Strapping pin; participates in chip boot-mode control (see ESP32-P4 TRM, Chip Boot Control).
36GPIO36 Strapping pin; part of boot-mode selection (with GPIO35) and controls ROM-message printing to UART0. Strapping

Sampled at reset for boot mode and log output; driving it at boot can change the boot mode or silence/enable ROM logs. Free after reset.

These are recommendations, not hard rules - with the right pull-ups, timing and boot-state awareness most pins can be made to work. When in doubt, start green.

The Espressif ESP32-P4-Function-EV-Board pinout brings out 40 pins at a 2.54 mm pitch - 26 usable GPIO alongside the 3V3, 5V and GND power rails.

Peripheral wiring is straightforward: I²C is mapped to SDA on GPIO7 and SCL on GPIO8.

Beyond plain digital I/O you get 6 ADC-capable pins for sensors and battery monitoring and PWM on every GPIO.

3 of the exposed pins carry boot-time or system duties on the ESP32-P4 (37, 38 and 36) - check the guidance above before wiring anything to them. 7, 8, 23, 21 and 19 more are free of any such role - the safest first picks.

Getting started

flash your first firmware in ~2 minutes
Tool:
1
Connect over USB
Native USB - shows up as a port right away, no driver needed. Not detected? Hold BOOT while plugging in.
2
Match & flash
Set the Tools options shown, then click Upload.
3
Verify it runs
GPIO7 toggles - wire an LED and resistor to it, or change the pin to your board's own LED.
Set these in Tools · leave everything else at default
Arduino IDE 2.x - Tools Copy
Board: "ESP32P4 Dev Module"▸
USB CDC On Boot: "Enabled"▸
Flash Size: "16MB (128Mb)"▸
PSRAM: "QSPI PSRAM"▸
Partition Scheme: "16M Flash (3MB APP/9.9MB FATFS)" (default)▸
Upload Speed: "921600"▸
▸ every other Tools option - leave at default
Board: ESP32P4 Dev Module
USB CDC On Boot: Enabled
Flash Size: 16MB (128Mb)
PSRAM: QSPI PSRAM
Partition Scheme: 16M Flash (3MB APP/9.9MB FATFS)
Upload Speed: 921600
Find it: Tools ▸ Board ▸ ESP32 Arduino ▸ ESP32P4 Dev Module
blink.ino Copy
// toggle GPIO7 - wire an LED and resistor to it
void setup() {
  pinMode(7, OUTPUT);
}
void loop() {
  digitalWrite(7, HIGH); delay(500);
  digitalWrite(7, LOW);  delay(500);
}
board to selectesp32dev⧉ copy
platformio.ini Copy
[env:espressif-esp32-p4-function-ev-board]
platform = https://github.com/pioarduino/platform-espressif32/releases/download/stable/platform-espressif32.zip
board = esp32dev
framework = arduino
monitor_speed = 115200
upload_speed = 921600
board_build.arduino.memory_type = qio_qspi
build_flags = -DBOARD_HAS_PSRAM
Find it: PlatformIO Home ▸ Boards, search esp32dev - or type it after board =.
board to selectesp32dev⧉ copy
device.yaml Copy
esp32:
  board: esp32dev
  variant: esp32p4
  framework:
    type: esp-idf
psram:
  mode: quad
  speed: 80MHz

# blink - GPIO7
output:
  - platform: gpio
    pin: 7
    id: led_out
light:
  - platform: binary
    name: "LED"
    output: led_out
Find it: search ESPHome's board list for esp32dev (same ids as PlatformIO).
esptool doesn't pick board settings - a prebuilt .bin already has them baked in. This is just the raw flash command.
terminal Copy
esptool.py --chip esp32p4 --port /dev/ttyACM0 \
  --baud 921600 write_flash 0x2000 firmware.bin
--port = your /dev/tty* (macOS/Linux) or COMx (Windows).

Good to know

board-specific quirks worth 60 seconds
End of Life, and two hardware revisions in circulation
Espressif lists this board as obsolete and points to the ESP32-P4X-Function-EV-Board (chip revision v3.1) as its replacement - same PCB and pinout, new silicon. Boards already out there also come in two revisions: v1.5.2 replaced the v1.4's CP2102N USB-to-UART debug port with the ESP32-P4's built-in USB Serial/JTAG, added a Full-speed USB OTG Type-C port and removed IO24/IO25 from the header. Check which…

Espressif lists this board as obsolete and points to the ESP32-P4X-Function-EV-Board (chip revision v3.1) as its replacement - same PCB and pinout, new silicon. Boards already out there also come in two revisions: v1.5.2 replaced the v1.4's CP2102N USB-to-UART debug port with the ESP32-P4's built-in USB Serial/JTAG, added a Full-speed USB OTG Type-C port and removed IO24/IO25 from the header.

Check which revision you have before following a guide - the port layout and header pins differ between v1.4 and v1.5.2.

The LCD and camera ribbon cables are not the same type

The camera connects with a forward ribbon cable (contacts on the same side at both ends), while the LCD uses a reverse cable (contacts on opposite sides). Swapping them or fitting the wrong type leaves the display or camera dead.

Downloads

Free for non-commercial use, credit espboards.dev · License
Espressif ESP32-P4-Function-EV-Board board illustration, front

Board illustration

The bare Espressif ESP32-P4-Function-EV-Board board drawn to scale at 88 × 74 mm, with no pin labels on it. Made for slide decks, wiring diagrams and project write-ups where a photo is too busy. Take the scalable SVG for print or editing, the high-resolution PNG to drop straight in, or the transparent PNG when you need it with no background behind it.

Espressif ESP32-P4-Function-EV-Board pinout diagram

Pinout diagram

Every pin on both sides of the board with its functions, drawn by ESPboards from the ESP32-P4 Series Datasheet v0.7 - the same sheet shown at the top of this page. The PNG is a high-resolution image for screens, the SVG is vector so it stays sharp at any size, and the PDF is laid out to print on A4 or Letter.

Free for non-commercial use, with the credit line kept.

Embed the Espressif ESP32-P4-Function-EV-Board pinout

Paste this where you want the diagram. Keep the credit line - it is what the licence asks for, and it is the only thing we want in return.

<figure>
  <img src="https://cdn.espboards.net/boards/espressif-esp32-p4-function-ev-board/diagram-1600.png"
       alt="Espressif ESP32-P4-Function-EV-Board pinout diagram" width="1600" loading="lazy">
  <figcaption>
    Espressif ESP32-P4-Function-EV-Board pinout by
    <a href="https://www.espboards.dev/esp32/espressif-esp32-p4-function-ev-board/">ESPboards</a>,
    <a href="https://creativecommons.org/licenses/by-nc/4.0/">CC BY-NC 4.0</a>
  </figcaption>
</figure>

Using it commercially? Ask us first - it takes one email.

Yours to use, share and adapt for non-commercial work, as long as you credit espboards.dev - the full terms and ready-made credit lines are here.

Specifications

ESP32-P4 · 88 × 74 mm · vs other ESP32 chips →
Compute
MCU
ESP32-P4 · RISC-V
Clock
400 MHz
SRAM · Flash
768 KB · 16MB · 32MB PSRAM
Radio
Wi-Fi
-
Bluetooth
-
Antenna
PCB
I/O
GPIO · ADC
26 · 6
UART · I²C · SPI
5 +1 LP · 2 +1 LP · 2
PWM
8 channels
Power
USB
USB-C (native) · USB-C (native) · USB-C (native) · USB-A (native)
Serial
Native (CDC)
Boot address
0x2000
Electrical
Input
5V via USB 2.0 Type-C, USB Full-speed or USB Serial/JTAG port
Consumption
-
Regulator
-
Display
Screen
LCD · 7" · 1024x600
Driver
-
Touch
Yes
Flashing
Upload · OTA
esptool_py · esp_ota
Flash · Boot mode
- · -
Sketch · Data
- · -

Dimensions

Espressif ESP32-P4-Function-EV-Board board, drawn to scale
74 mm88 mm
88 × 74 mm · pin pitch 2.54 mm
The Espressif ESP32-P4-Function-EV-Board uses esptool_py for firmware uploads, esp_ota for over-the-air (OTA) updates.

About this board

At 88 × 74 mm it's the smallest ESP32-P4 board we've measured.

The $55.44 price tag is typical for an ESP32-P4 board.

Around the module: 32MB PSRAM, an LCD 7" 1024x600 display with touch, a camera (2MP (MIPI CSI)), a microSD slot, a microphone, an audio codec (ES8311), an amplifier (NS4150B), wired Ethernet (IP101GR), status LEDs (5V Power) and Reset/Boot buttons.

It flashes over native USB - no serial-converter driver needed, which isn't a given among ESP32-P4 boards.

  • ESP32-C6-MINI-1 co-processor module for 2.4 GHz Wi-Fi 6 and Bluetooth 5 LE
  • USB 2.0 OTG High-Speed on a Type-C (device) and a Type-A (host, up to 500 mA) port - the two cannot be used at the same time
  • Kit ships with a 7-inch 1024x600 capacitive touch screen and a 2MP MIPI CSI camera module
  • Onboard power switch
  • Early V0.1 engineering-sample chips had no working USB Serial/JTAG and no ADC calibration

Where to buy

prices are typical street prices
Espressif ESP32-P4-Function-EV-Board
Espressif ESP32-P4-Function-EV-Board
$55.44per unit, typical

Resources

Similar boards