Guide
ESP32-C61 Pinout
The complete pin reference for the ESP32-C61: Espressif’s budget Wi-Fi 6 chip, and the exact pins you can safely reuse.
- Single-core RISC-V
- Wi-Fi 6 + Bluetooth LE
- 30 GPIOs
- 4–8 MB flash
Overview
The ESP32-C61 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. Despite being a very recent chip, the datasheet is already a released, non-preliminary v1.1, not a draft.
No 802.15.4 radio on this chip, so Thread and Zigbee aren’t possible here: that needs an ESP32-C6 or C5 instead. It’s easy to assume otherwise since the name looks similar to the C6, but this is a plain Wi-Fi 6 + Bluetooth part, not a Thread/Zigbee one.
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 C61 before assuming a problem is your wiring.
Hello World: blink an LED
The microcontroller equivalent of “Hello World”: GPIO24 toggles once a second, shown here in two different environments. Wire an LED (with a resistor) to GPIO24, 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_24
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));
}
}
#define LED_PIN 24
void setup() {
pinMode(LED_PIN, OUTPUT);
}
void loop() {
digitalWrite(LED_PIN, HIGH);
delay(1000);
digitalWrite(LED_PIN, LOW);
delay(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-C61 chip and the ESP32-C61-WROOM-1 module.
Compute
| Chip | ESP32-C61 |
| CPU | Single-core RISC-V, up to 160 MHz |
| SRAM | 320 KB |
| Flash / PSRAM | 4 or 8 MB flash, optional 2 or 8 MB PSRAM (variant-dependent) |
Radio
| Wi-Fi | 802.11ax (Wi-Fi 6), 2.4 GHz |
| Bluetooth | 5 LE |
| Antenna | On-board PCB (U.FL variant available) |
Physical
| Operating voltage | 3.0V – 3.6V |
| Dimensions | 18 × 25.5 × 3.1 mm (WROOM-1) |
| Operating temperature | −40°C – +85°C |
| GPIOs | 30 on the chip (fewer usable once flash/PSRAM pins are excluded) |
No illustrated pinout diagram yet, this chip is too new for this site’s asset library. The module itself has the same footprint as the WROOM-32D and the C6-WROOM-1: 18 by 25.5 by 3.1 mm.
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 | SPI FSPIQ | — | Free |
| 3 | JTAG MTMS, ADC1_CH1 | ADC1 | Strapping |
| 4 | JTAG MTDI, ADC1_CH2 | ADC1 | Strapping |
| 5 | JTAG MTCK, ADC1_CH3 | ADC1 | Free |
| 6 | JTAG MTDO, SPI FSPICLK | — | Free |
| 7 | SPI FSPID | — | Strapping |
| 8 | SPI FSPICS0, zero-cross detect 0 | — | Strapping |
| 9 | — | — | Strapping |
| 10 | UART0 RX (default) | — | Free |
| 11 | UART0 TX (default) | — | Free |
| 12 | USB D− | — | Free |
| 13 | USB D+ | — | Free |
| 14 | SPI flash (SPICS1) — reserved | — | Reserved |
| 15 | SPI flash (SPICS0) — reserved | — | Reserved |
| 16 | SPI flash (SPIQ) — reserved | — | Reserved |
| 17 | SPI flash (SPIWP) — reserved | — | Reserved |
| 18 | VDD_SPI (flash power) — reserved | — | Reserved |
| 19 | SPI flash (SPIHD) — reserved | — | Reserved |
| 20 | SPI flash (SPICLK) — reserved | — | Reserved |
| 21 | SPI flash (SPID) — reserved | — | Reserved |
| 22 | SDIO DATA2 | — | Free |
| 23 | SDIO DATA3 | — | Free |
| 24 | — | — | Free |
| 25 | SDIO CMD | — | Free |
| 26 | SDIO CLK | — | Free |
| 27 | SDIO DATA0 | — | Free |
| 28 | SDIO DATA1 | — | Free |
| 29 | — | — | Free |
Flashing pins (UART0)
Used by a USB-to-serial adapter (or the onboard one) to upload firmware.
| Function | Pin | Description |
|---|---|---|
| TXD0 | GPIO11 | ESP32-C61 → PC (output) |
| RXD0 | GPIO10 | PC → ESP32-C61 (input) |
| EN | EN pin | Resets the chip |
| BOOT | GPIO9 | Hold low at reset, together with GPIO8, to enter UART download mode |
Safety notes
Before you wire anything up
- Never reassign the flash/PSRAM pins (GPIO14–GPIO21), the module won’t boot.
- GPIO3, GPIO4, GPIO7, GPIO8 and GPIO9 are strapping pins, check their boot-time state before using them as outputs.
- GPIO12 and GPIO13 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.
More guides
Keep building.
From ESP32 HomeKit accessories to Arduino and ATtiny reference guides, there’s more where this came from.
All guides