Guide
ESP32-C6-WROOM-1 Pinout
The complete pin reference for the ESP32-C6-WROOM-1 module: Wi-Fi 6, Bluetooth LE and 802.15.4 (Thread and Zigbee) on one chip, plus the exact pins you can safely reuse.
- RISC-V + low-power core
- Wi-Fi 6 + BLE + 802.15.4
- 23 GPIOs
- 4–8 MB flash
Overview
This guide covers the ESP32-C6-WROOM-1 module: the shielded, castellated-pad module that integrates the ESP32-C6 system-on-chip, a crystal oscillator and flash memory. It’s the module most ESP32-C6 “Super Mini”-style development boards are built around, but the pin functions and dimensions below apply to the module itself, independent of any specific board.
This is the chip that made single-chip Matter accessories practical: Wi-Fi 6, Bluetooth LE and 802.15.4 (Thread and Zigbee) all run at the same time on the same silicon.
Getting started
Most people using this module have it on a “Super Mini”-style development board, not the bare module by itself, and the three steps below assume that. If you’re wiring the bare module directly, see “Flashing pins” further down for how to connect a USB-to-serial adapter instead.
Hello World: blink an LED
The microcontroller equivalent of “Hello World”: GPIO10 toggles once a second, shown here in two different environments. Wire an LED (with a resistor) to GPIO10, a plain general-purpose pin with no other job on this module.
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#define LED_PIN GPIO_NUM_10
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 10
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. Many of these boards also carry an onboard addressable RGB LED on GPIO8, that one needs a WS2812/NeoPixel library instead of a plain digitalWrite.
Specifications
Official Espressif specifications for the ESP32-C6 chip and the ESP32-C6-WROOM-1 module.
Compute
| Chip | ESP32-C6 |
| CPU | Single-core RISC-V, up to 160 MHz, plus a low-power RISC-V co-processor up to 20 MHz |
| SRAM | 512 KB HP + 16 KB LP |
| Flash | 4 or 8 MB (module variant-dependent) |
Radio
| Wi-Fi | 802.11ax (Wi-Fi 6), 2.4 GHz |
| Bluetooth | 5.3 LE |
| 802.15.4 | Thread 1.3, Zigbee 3.0 |
| Antenna | On-board PCB (U.FL variant available) |
Physical
| Operating voltage | 3.0V – 3.6V |
| Dimensions | 18 × 25.5 × 3.1 mm |
| Operating temperature | −40°C – +85°C |
| GPIOs | 23 programmable |
Pinout diagram
The 30-pin layout used on most ESP32-C6 “Super Mini”-style development boards. The bare module itself only exposes 28 castellated pads, boards add a handful of extra breakout pins (like the second 5V/GND pair) beyond that.
GPIO quick reference
This chip only has ADC1 and ADC2, no DAC or capacitive touch peripheral, unlike the classic ESP32.
| GPIO | Special function | ADC | RTC / LP wake | Boot state |
|---|---|---|---|---|
| 0 | ADC1_0 | ADC1 | Yes | Free |
| 1 | ADC1_1 | ADC1 | Yes | Free |
| 2 | ADC1_2 | ADC1 | Yes | Free |
| 3 | ADC1_3 | ADC1 | Yes | Free |
| 4 | ADC1_4, SPI MISO | ADC1 | Yes | Free |
| 5 | ADC1_5, SPI MOSI | ADC1 | Yes | Free |
| 6 | ADC1_6, SPI SCK | ADC1 | Yes | Free |
| 7 | SPI CS | — | No | Free |
| 8 | I2C SDA, onboard RGB LED on most boards | — | No | Strapping |
| 9 | ADC2_1, I2C SCL | ADC2 | No | Strapping |
| 10 | — | — | No | Free |
| 11 | — | — | No | Free |
| 12 | USB D− | — | No | Free |
| 13 | USB D+ | — | No | Free |
| 15 | — | — | No | Strapping |
| 16 | UART0 TX (default) | — | No | Free |
| 17 | UART0 RX (default) | — | No | Free |
| 18 | — | — | No | Free |
| 19 | — | — | No | Free |
| 20 | — | — | No | Free |
| 21 | — | — | No | Free |
| 22 | — | — | No | Free |
| 23 | — | — | No | Free |
Flashing pins (UART0)
Used by a USB-to-serial adapter (or the onboard one) to upload firmware.
| Function | Pin | Description |
|---|---|---|
| TXD0 | GPIO16 | ESP32-C6 → PC (output) |
| RXD0 | GPIO17 | PC → ESP32-C6 (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
- GPIO8, GPIO9 and GPIO15 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 for flashing or logging.
- The flash memory is wired internally inside the module, unlike the WROOM-32D none of the exposed GPIOs are reserved for it.
- 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