ESP32/Chips/ESP32-P4

ESP32-P4

The big one. 400 MHz across two cores, MIPI displays and cameras, and real headroom for interfaces that used to need a Pi.

Before you plan anything
No radio at all. No Wi-Fi, no Bluetooth, nothing.
This is not a limitation to work around — it is the design. If your project needs a network, the P4 needs a second chip beside it. We ship a C6 companion in the box for exactly this reason.
No Wi-FiNo BLENo classic BTNo Zigbee or ThreadUSB 2.0 HSNo DACNo touch pinsPSRAM up to 32 MBTwo coresDSI + CSI
Dual RISC-V · 2 × 400 MHz
ESP32-P4 board photo
We stock
ESP32-P4 Function EV
For touchscreens and camera work. Ships with a C6 companion module, because networking needs a second chip.
See it in the shop →

The pins that matter

Not all forty-odd of them. The five rows that decide whether your wiring works.

Default I2Cassign any GPIOThe core ships no default for this board yet. Pass your pins to Wire.begin() explicitly.
MIPI displaydedicated DSI pinsNot GPIO. They go to a flat-flex connector, not to header pins or jumper wires.
MIPI cameradedicated CSI pinsSame story. A camera needs the right FPC cable, not a breadboard.
Companion radioSDIO or UARTHow the C6 attaches. Our board profile fixes the four SDIO pins so the examples just work.
Strapping pinscheck the silkscreenStill moving between board revisions. Ours are printed next to the USB port.
Pinout diagram — ESP32-P4 Function EV
unverifiedThis chip is new enough that core defaults are still moving. Rows marked in orange are what we measured on our own board, not what a datasheet promised.

Board settings, all three toolchains

Get one of these wrong and nothing else on the site will work.

Arduino IDEC++Tools → BoardESP32P4 Dev Module

Arduino support arrived after ESP-IDF support. Expect fewer libraries than on the S3.

MicroPythonPython + ThonnyfirmwareESP32_GENERIC_P4-20260201-v1.25.bin

Works, but the MIPI display drivers are C-side only for now.

PlatformIObuild systemplatformio.iniboard = esp32-p4-function-ev

Needs a current platform. Anything from last year does not know the P4.

What catches people out on this chip

These are the support emails. They exist nowhere else on the site because they are true of nothing else.

It has no Wi-Fi, and people keep discovering that after buying

There is no antenna, no MAC, no radio block on the die. Networking happens through a companion chip over SDIO, and every network guide on this site is marked as not applicable to a bare P4.

MIPI is not a breadboard interface

DSI and CSI run at hundreds of megahertz on impedance-matched traces. You need the right flat-flex cable and a screen that matches it. Jumper wires will not work at any length.

400 MHz is not a battery figure

Two cores at 400 MHz with 32 MB of PSRAM is a mains-powered profile. If your project runs on a cell, the C3 or C6 is the honest answer.

The toolchain is the newest thing here

IDF support landed first, Arduino second, MicroPython third and partially. Check what your language actually supports before committing the design.

News about this chip

2026-08-14P4 boards now ship with a C6 companion in the boxToo many people bought a P4 expecting Wi-Fi. Every P4 board we sell now includes the companion module and the SDIO wiring guide.
2026-08-01MicroPython 1.25 firmware for all five chipsFresh .bin files, and the C6 build finally exposes the Wi-Fi 6 flags.
2026-07-09MicroPython P4 build lands, without MIPI driversThe REPL and the peripherals are there. Screens and cameras stay C-side for now.

Guides for this chip

59 of 81 apply

Written once for the whole family. Opening one from here fixes the pins to this chip and the code to your language.

01 · Start hereWhat the ESP32 is02 · Start hereChoosing your tools03 · Setup and uploadingInstall the toolchain04 · Setup and uploadingHello world over serial05 · Setup and uploadingBlink an LED06 · Setup and uploadingWhen uploads fail07 · Setup and uploadingSerial ports and drivers08 · Setup and uploadingPrinting, plotting and debugging09 · The board itselfThe EN and BOOT buttons10 · The board itselfThe pins you cannot use11 · The board itselfWhat the chip says about itself12 · Pins and signalsDigital I/O13 · Pins and signalsPWM with LEDC14 · Pins and signalsReading the ADC15 · Pins and signalsuse insteadDAC output16 · Pins and signalsuse insteadTouch pins17 · Interrupts and timingInterrupts on a pin18 · Interrupts and timingSharing data with an ISR19 · Interrupts and timingHardware timers20 · Interrupts and timingCounting pulses21 · Interrupts and timingAddressable LEDs with RMT22 · Wires on the boardDigital in and digital out23 · Wires on the boardOne-wire sensor timing24 · Wires on the board1-Wire and device chains25 · Wires on the boardI2C, start to stop26 · Wires on the boardI2C addresses and conflicts27 · Wires on the boardI2C on a shared bus28 · Wires on the boardSPI and chip select29 · Wires on the boardUART, start to stop30 · Wires on the boardIR remote codes31 · BusesI2C32 · BusesSPI33 · BusesUART and baud rates34 · BusesRS485 and Modbus35 · StorageFilesystem on flash36 · StorageUploading files to LittleFS37 · StoragePreferences and NVS38 · StoragemicroSD cards39 · StoragePartition tables and flash size40 · Joining a networkuse insteadWi-Fi station mode41 · Joining a networkuse insteadAccess point mode42 · Joining a networkuse insteadBoth at once: AP and station43 · Joining a networkuse insteadSeveral networks, one board44 · Joining a networkuse insteadWi-Fi provisioning45 · Joining a networkuse insteadWi-Fi 6 features46 · Living on a networkuse insteadmDNS and NTP47 · Living on a networkKeeping time with time.h48 · Living on a networkuse insteadHTTPS and certificates49 · Living on a networkuse insteadOTA updates50 · Living on a networkEthernet instead of Wi-Fi51 · Web serveruse insteadHello world from the board52 · Web serveruse insteadA reading on the page53 · Web serveruse insteadSwitching a pin from the page54 · Web serveruse insteadAsync web server55 · Messages on the networkHTTP from a board56 · Messages on the networkMQTT and a broker57 · Messages on the networkWebSocket dashboards58 · Messages on the networkNames and time59 · Messages on the networkFirmware in two slots60 · Bluetoothuse insteadBLE server and client61 · Bluetoothuse insteadA value a phone can read62 · Bluetoothuse insteadA value a phone can write63 · Bluetoothuse insteadClassic Bluetooth serial64 · Other radiosuse insteadESP-NOW65 · Other radiosuse insteadESP-WIFI-MESH66 · Other radiosuse insteadZigbee, Thread and Matter67 · Other radiosLoRa for long range68 · Sleep and wake-upDeep sleep and wake sources69 · Sleep and wake-upHibernation, the floor below sleep70 · Sleep and wake-upWaking on a timer71 · Sleep and wake-upWaking on a pin or a touch72 · Sleep and wake-upWhat survives deep sleep73 · Sleep and wake-upThe ULP low-power core74 · PowerPower and the 3V3 rail75 · PowerBattery and power budget76 · PowerMeasuring current draw77 · SystemDual core tasks78 · SystemCrash dumps and the watchdog79 · SystemI2S audio80 · SystemCamera capture81 · SystemMIPI displays
Modules that work with the ESP32-P4

Sensor and display modules work normally through GPIO, I2C and SPI. Anything that assumed the board could reach the internet on its own needs the companion radio first.

Browse the module index →