Metro ESP32-P4 by Adafruit
The METRO series just keeps getting faster and better, now powered with the ESP32-P4! This beast is a dual-core 360 MHz RISC-V CPU featuring AI instruction extensions, an advanced memory subsystem, and integrated new high-speed peripherals like MIPI DSI and CSI. According to Espressif, the P4 is tailored for high-performance applications demanding robust security and bumps the performance of their ESP32 line to ‘single-board computing’ levels. Given it’s high speed, massive pin-count, and display/camera integration plus lots of SRAM/PSRAM/Flash memory, the ESP32-P4 is excellent for Human-Machine Interfaces, efficient edge computing, and increased IO-connectivity demands.
This board features a ESP32-P4 with the stock 768 KB L2 cache/SRAM, plus external 16 MB of QSPI NOR Flash and 16 MB of PSRAM.
PLEASE NOTE: This is NOT the ESP32-P4X chip, we are currently shipping with “v1” chips, if you need the “v3” P4X do not purchase this item!
The chip itself features (Espressif specifications):
- Dual-core 32-bit RISC-V processor, up to 360 MHz.
- Separate 40 MHz low-power RISC-V core.
- 768 KB high-performance SRAM, plus 32 KB low-power SRAM.
- 32 MB PSRAM internally
- Two-lane MIPI DSI display and two-lane MIPI CSI camera interfaces.
- Hardware H.264 encoding, JPEG encoding/decoding, image processing, and pixel acceleration.
- Full-Speed USB OTG, and USB Serial/JTAG. (Main USB-C port)
- Separate 480 Mbps USB 2.0 High-Speed OTG (Secondary USB-A host port)
- UART, SPI, I²C, I3C, I²S, PWM, ADC, touch sensing, SD/MMC, CAN/TWAI, and Ethernet MAC peripherals.
- Hardware cryptography, secure boot, and flash encryption.
Our Metro ESP32-P4 Hydra brings that into a board with:
- 16 MB NOR flash
- ESP32-C6 wireless coprocessor (C6 specifications), connected over SDIO for high speed WiFi access, the C6 radio also supports Bluetooth LE 5.3, Thread, and Zigbee but interfacing firmware may be required to expose that. The C6 can also be reprogrammed over GPIO connected to the P4
- USB-C for power, programming, serial debugging, and TinyUF2 drag-and-drop firmware update support
- USB-A High-Speed host port, with software-controlled power and a dedicated 5 V boost supply for battery operation, with on/off control
- Separate 22-pin, 0.5 mm-pitch MIPI display and camera connectors, each carrying two data lanes. These follow the “Raspberry Pi” format with 2 lanes exposed for connecting off-the-shelf cameras and displays
- microSD socket using four-bit SDIO
- Metro/Arduino Uno-style headers with D0–D13, six analog inputs, I2C/I3C, and a separate six-pin SPI header - all GPIO uses 3.3 V logic
- STEMMA QT connector for I2C/I3C sensors and accessories
- Variety of Power options: 7–12 V DC barrel-jack input, USB C power, or a single-cell LiPo battery connector with battery-voltage monitoring, onboard charging & charging/status indicators
- On/Off power switch
- RGB NeoPixel, separate D13 user LED, and Reset and Boot buttons (for entering the ROM bootloader)
- Dedicated hardware/ROM UART debugging connection
Purchase
Add any links to purchase the board
Contribute
Have some info to add for this board? Edit the source for this page here.
CircuitPython 11.0.0-alpha.2
This is the latest development release of CircuitPython that will work with the Metro ESP32-P4.
Alpha development releases are early releases. They are unfinished, are likely to have bugs, and the features they provide may change. Beta releases may have some bugs and unfinished features, but should be suitable for many uses. A Release Candidate (rc) release is considered done and will become the next stable release, assuming no further issues are found.
Please try alpha, beta, and rc releases if you are able. Your testing is invaluable: it helps us uncover and find issues quickly.
Release Notes for 11.0.0-alpha.2
Modules included in this download
_asyncio _eve _pixelmap adafruit_bus_device adafruit_pixelbuf aesio alarm analogbufio analogio array atexit audiobusio audiocore audioi2sin audiomixer audiomp3 binascii bitbangio bitmapfilter bitmaptools board builtins builtins.pow3 busdisplay busio busio.SPI busio.UART codeop collections countio digitalio displayio dualbank epaperdisplay errno espidf fontio fourwire framebufferio frequencyio getpass gifio hardwarekey hashlib hmac i2cdisplaybus io ipaddress jpegio json keypad keypad.KeyMatrix keypad.Keys keypad.ShiftRegisterKeys keypad_demux keypad_demux.DemuxKeyMatrix locale lvfontio math mdns memorymap microcontroller mii mipidsi msgpack neopixel_write nvm onewireio os os.getenv ps2io pulseio pwmio rainbowio random re rotaryio rtc sdcardio sdioio select sharpdisplay socketpool socketpool.socketpool.AF_INET6 ssl storage struct supervisor supervisor.get_setting synthio sys terminalio tilepalettemapper time touchio traceback ulab usb usb_cdc usb_host vectorio warnings watchdog wifi zlibFeatures: Wi-Fi, Battery Charging, STEMMA QT/QWIIC, USB-C, Arduino Shield Compatible, OSHWA Certified
Absolute Newest
Every time we commit new code to CircuitPython we automatically build binaries for each board and language. The binaries are stored on Amazon S3, organized by board, and then by language. These releases are even newer than the development release listed above. Try them if you want the absolute latest and are feeling daring or want to see if a problem has been fixed.
Previous Versions of CircuitPython
All previous releases of CircuitPython are available for download from Amazon S3 through the button below. For very old releases, look in the OLD/ folder for each board. Release notes for each release are available at GitHub button below.
Older releases are useful for testing if you something appears to be broken in a newer release but used to work, or if you have older code that depends on features only available in an older release. Otherwise we recommend using the latest stable release.