ESP32-C5-DevKitC-1 is the official Espressif development board with the ESP32-C5 chip. It is the first in the ESP32 family to support dual-band Wi-Fi 6 (2.4 and 5 GHz), along with Bluetooth LE and an IEEE 802.15.4 radio for Zigbee, Thread and Matter. The 5 GHz band is useful where 2.4 GHz is congested.
The board has two USB-C connectors (native USB and a USB-UART converter) and an addressable RGB LED.
Specifications
- ESP32-C5: RISC-V up to 240 MHz + 48 MHz low-power core, 384 kB SRAM
- ESP32-C5-WROOM-1 module with PCB antenna
- Wi-Fi 6 (2.4 and 5 GHz), Bluetooth LE, Zigbee and Thread (802.15.4)
- 22 GPIO on the headers (21 on the module with PSRAM), 6 analog inputs (ADC1)
- UART, I2C, SPI, PWM, I2S, 2× CAN FD (TWAI), USB Serial/JTAG
- 2× USB-C (native USB and UART via CP2102N), RGB LED on GPIO27
- 53.6 × 25.4 mm (the module with antenna overhangs)
Headers J1 and J3 have pin 1 next to the module and pin 16 next to the USB connectors – this is also how Espressif’s tables number them. The pinout applies to board version v1.2; the first version, v1.1, had a different header layout.
GPIO0–6 are also LP GPIO: they are controlled by the low-power core and can wake the chip from deep sleep. Arduino IDE support is available from arduino-esp32 core 3.3.
Pinout and pin table
Hover over a pin in the diagram or a table row; use the filter to highlight a bus. You can download the pinout as PNG or SVG.
| Pin | Name | Direction | UART | I2C | SPI | ADC | Note |
|---|---|---|---|---|---|---|---|
| J3-1 | GND | – | |||||
| J3-2 | GPIO11 | input/output | TX | UART0 TX – to the USB-UART converter (UART connector) | |||
| J3-3 | GPIO12 | input/output | RX | UART0 RX – to the USB-UART converter (UART connector) | |||
| J3-4 | GPIO24 | input/output | |||||
| J3-5 | GPIO23 | input/output | |||||
| J3-6 | GPIO15 | input/output | Only on modules without PSRAM – with PSRAM it is SPICS1 and not connected on the header | ||||
| J3-7 | GPIO27 | input/output | WS2812B RGB LED – data goes through a level shifter to 5 V. Strapping pin: must be logic 1 at boot (10 kΩ pull-up on the board), otherwise the program does not start from flash; logic 0 also disables ROM output on UART0. | ||||
| J3-8 | GPIO4 | input/output | ADC1_CH3 | JTAG MTCK, fixed LP UART RX | |||
| J3-9 | GPIO5 | input/output | ADC1_CH4 | JTAG MTDO, fixed LP UART TX | |||
| J3-10 | NC | – | |||||
| J3-11 | GPIO28 | input/output | BOOT button. Strapping pin: logic 1 at boot (internal pull-up) = run program from flash, logic 0 = download mode via USB or UART. Auto-download from the USB-UART converter toggles it automatically. | ||||
| J3-12 | GND | – | |||||
| J3-13 | GPIO14 | input/output | USB D+ (native USB, USB connector) – usable as GPIO only without USB | ||||
| J3-14 | GPIO13 | input/output | USB D− (native USB, USB connector) – usable as GPIO only without USB | ||||
| J3-15 | GND | – | |||||
| J3-16 | NC | – | |||||
| J1-1 | 3V3 | output | 3.3 V output from the SY8088 DC/DC converter (1 A). Jumper J5 sits between the converter and the module – open it to measure the module's current draw with an ammeter. | ||||
| J1-2 | RST | input | Reset (CHIP_PU, RESET button) – logic 0 turns the chip off | ||||
| J1-3 | GPIO2 | input/output | ADC1_CH1 | Strapping pin (no effect on boot). JTAG MTMS, fixed LP I2C SDA | |||
| J1-4 | GPIO3 | input/output | ADC1_CH2 | Strapping pin (SDIO slave timing) – normally no effect. JTAG MTDI, fixed LP I2C SCL | |||
| J1-5 | GPIO0 | input/output | SDA | 32.768 kHz crystal input (XTAL_32K_P) for accurate timekeeping in sleep; a regular GPIO without the crystal. LP GPIO0 – can wake from deep sleep. Arduino uses it as the default I2C SDA. | |||
| J1-6 | GPIO1 | input/output | SCL | ADC1_CH0 | 32.768 kHz crystal input (XTAL_32K_N); a regular GPIO without the crystal. LP GPIO1. Arduino uses it as the default I2C SCL. | ||
| J1-7 | GPIO6 | input/output | SS | ADC1_CH5 | |||
| J1-8 | GPIO7 | input/output | Strapping pin (JTAG source) – has no effect unless set in eFuse | ||||
| J1-9 | GPIO8 | input/output | MOSI | ||||
| J1-10 | GPIO9 | input/output | MISO | ||||
| J1-11 | GPIO10 | input/output | SCK | ||||
| J1-12 | GPIO26 | input/output | Strapping pin: GPIO26 to GPIO28 select the boot mode. UART and SDIO download mode (Joint Download Boot 1) occurs only with logic 0 on all three, so GPIO26 normally does not affect boot. | ||||
| J1-13 | GPIO25 | input/output | Strapping pin (SDIO slave timing) – normally no effect | ||||
| J1-14 | 5V | input/output | 5 V from both USB connectors (through Schottky diodes on the board). It can also power the board – voltage will not flow back into USB. | ||||
| J1-15 | GND | – | |||||
| J1-16 | NC | – |
Pins used on the board
These chip pins are used by parts on the board and are not broken out:
| Pin | Function on the board |
|---|---|
| GPIO16 | Flash modulu (SPICS0) |
| GPIO17 | Flash modulu (SPIQ) |
| GPIO18 | Flash modulu (SPIWP) |
| GPIO19 | Flash power (VDD_SPI) |
| GPIO20 | Flash modulu (SPIHD) |
| GPIO21 | Flash modulu (SPICLK) |
| GPIO22 | Flash modulu (SPID) |
What to watch out for
- The GPIO are not 5V tolerant.
- GPIO28 is the BOOT button and a strapping pin – logic 0 at boot starts download mode.
- GPIO27 is the RGB LED and also a strapping pin – it must be at logic 1 at boot, otherwise the program won’t start.
- GPIO13 and GPIO14 are taken by native USB – use them as GPIO only without the USB port.
- GPIO11 and GPIO12 (UART0) go to the USB-UART converter.
- GPIO15 is on the header only with the module without PSRAM; with PSRAM, the module uses it for the memory.
- The chip has no ADC2, DAC or touch inputs.
ESP32-C5 on chiptron.eu/
Projects and guides on chiptron.eu/:
- ESP32 chip comparison – when to choose the C5 (Wi-Fi 6 also in the 5 GHz band) and when another chip
- ESP32-C5 in production – the first ESP32 with Wi-Fi 6 in both the 2.4 and 5 GHz bands
More pinouts
See all pinouts on the Pinouts page.