Skip to content
My Account

Guide

ESP32-C5 Pinout

The complete pin reference for the ESP32-C5: the first RISC-V Espressif chip with dual-band Wi-Fi 6, plus the exact pins you can safely reuse.

  • Dual-core RISC-V
  • Dual-band Wi-Fi 6
  • 29 GPIOs
  • 4–32 MB flash
No ratings yet, be the first.

Overview

The ESP32-C5 launched after this site’s existing photo and diagram library was put together, so there’s no product photo or illustrated pinout diagram here yet, only verified spec and GPIO tables sourced directly from the official datasheet. It’s Espressif’s first RISC-V chip with dual-band Wi-Fi 6, 2.4 GHz and 5 GHz on the same chip, not just 2.4 GHz like the C6.

Wi-Fi 6, Bluetooth LE and 802.15.4 (Thread and Zigbee) all run at the same time on this chip, like the C6, plus a 5 GHz Wi-Fi band the C6 doesn’t have.

Dual-band Wi-Fi 6 2.4 GHz and 5 GHz on the same chip, useful for avoiding the crowded 2.4 GHz band on busy networks.
Not every GPIO is equal GPIO2, GPIO3, GPIO7, GPIO25, GPIO26, GPIO27 and GPIO28 are strapping pins, check their boot-time state before using them as outputs.
External flash again Unlike the C2 and C3-MINI-1, GPIO15–GPIO22 are wired to an external flash chip, leave them alone.

Getting started

Board support for such a new chip can lag behind the official Arduino/ESP-IDF releases, check your installed ESP32 board package version supports the C5 before assuming a problem is your wiring.

1. What you need A USB cable that fits your board and a computer. No extra power supply needed, USB power is enough.
2. Install the software Install the free Arduino IDE, then add the latest ESP32 board package via Boards Manager (search “esp32”, by Espressif Systems).
3. Upload your first sketch Open File → Examples → Basics → Blink, pick your board and port, then click Upload. If it hangs on “Connecting…”, hold the BOOT button until it starts.

Hello World: blink an LED

The microcontroller equivalent of “Hello World”: GPIO23 toggles once a second, shown here in two different environments. Wire an LED (with a resistor) to GPIO23, a plain general-purpose pin with no other job on this chip.

#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"

#define LED_PIN GPIO_NUM_23

void app_main(void)
{
    gpio_reset_pin(LED_PIN);
    gpio_set_direction(LED_PIN, GPIO_MODE_OUTPUT);

    while (1) {
        gpio_set_level(LED_PIN, 1);
        vTaskDelay(pdMS_TO_TICKS(1000));
        gpio_set_level(LED_PIN, 0);
        vTaskDelay(pdMS_TO_TICKS(1000));
    }
}

ESP-IDF: build and flash with idf.py build flash monitor. Arduino IDE: install ESP32 board support first, see “Getting started” above.

Specifications

Official Espressif specifications for the ESP32-C5 chip and the ESP32-C5-WROOM-1 module.

Compute

ChipESP32-C5
CPUDual-processor RISC-V: high-performance core up to 240 MHz, plus a low-power core up to 48 MHz
SRAM384 KB HP + 16 KB LP
Flash4 to 32 MB, plus optional 2 or 8 MB PSRAM (variant-dependent)

Radio

Wi-Fi802.11ax (Wi-Fi 6), dual-band 2.4 + 5 GHz
Bluetooth5 LE
802.15.4Thread 1.4, Zigbee 3.0
AntennaOn-board PCB (U.FL variant available)

Physical

Operating voltage3.0V – 3.6V
Dimensions18 × 27.5 × 3.3 mm (WROOM-1)
Operating temperature−40°C – +85°C
GPIOs29 on the chip (fewer usable once flash pins are excluded)

No illustrated dimension diagram or pinout diagram yet, this chip is too new for this site’s asset library, only the verified numbers above. The module has 28 castellated pads at 1.27 mm pitch, same pitch as the WROOM-32D and C6-WROOM-1, but a longer 27.5 mm body.

GPIO quick reference

This is the full chip-level pin list. A specific WROOM-1 board may not break out every one of these to a header pin.

GPIO Special function ADC Boot state
0 Free
1 ADC1_CH0 ADC1 Free
2 JTAG MTMS, SPI FSPIQ, ADC1_CH1 ADC1 Strapping
3 JTAG MTDI, ADC1_CH2 ADC1 Strapping
4 JTAG MTCK, SPI FSPIHD, ADC1_CH3 ADC1 Free
5 JTAG MTDO, SPI FSPIWP, ADC1_CH4 ADC1 Free
6 SPI FSPICLK, ADC1_CH5 ADC1 Free
7 SDIO DATA1, SPI FSPID Strapping
8 SDIO DATA0 Free
9 SDIO CLK Free
10 SDIO CMD, SPI FSPICS0 Free
11 UART0 TX (default) Free
12 UART0 RX (default) Free
13 USB D−, SDIO DATA3 Free
14 USB D+, SDIO DATA2 Free
15 SPI flash (SPICS1) — reserved Reserved
16 SPI flash (SPICS0) — reserved Reserved
17 SPI flash (SPIQ) — reserved Reserved
18 SPI flash (SPIWP) — reserved Reserved
19 VDD_SPI (flash power) — reserved Reserved
20 SPI flash (SPIHD) — reserved Reserved
21 SPI flash (SPICLK) — reserved Reserved
22 SPI flash (SPID) — reserved Reserved
23 Free
24 Free
25 Strapping
26 Strapping
27 VDD_SPI voltage-select strap Strapping
28 Strapping
Strapping pins GPIO2, GPIO3, GPIO7, GPIO25, GPIO26, GPIO27, GPIO28
Default UART TX: GPIO11, RX: GPIO12
USB Serial/JTAG D−: GPIO13, D+: GPIO14
Reserved for flash GPIO15–GPIO22

Flashing pins (UART0)

Used by a USB-to-serial adapter (or the onboard one) to upload firmware.

Function Pin Description
TXD0 GPIO11 ESP32-C5 → PC (output)
RXD0 GPIO12 PC → ESP32-C5 (input)
EN EN pin Resets the chip
BOOT GPIO26, GPIO27, GPIO28 Held at specific levels at reset to select the boot mode, see the datasheet’s Chip Boot Mode Control table

Safety notes

Before you wire anything up

  • Never reassign the flash pins (GPIO15–GPIO22), the module won’t boot.
  • GPIO2, GPIO3, GPIO7, GPIO25, GPIO26, GPIO27 and GPIO28 are strapping pins, check their boot-time state before using them as outputs.
  • GPIO13 and GPIO14 are the USB Serial/JTAG D−/D+ pins, avoid reassigning them if you rely on the built-in USB console.
  • Stay within the datasheet’s absolute maximum current rating per GPIO, don’t assume it matches the classic ESP32’s figure, this is a different chip.
Advertisement

More guides

Keep building.

From ESP32 HomeKit accessories to Arduino and ATtiny reference guides, there’s more where this came from.

All guides