Guide
ESP32-C3-MINI-1 Pinout
The complete pin reference for the ESP32-C3-MINI-1 module: a single RISC-V core, Wi-Fi and Bluetooth LE, and the exact pins you can safely reuse.
- Single-core RISC-V
- Wi-Fi + Bluetooth LE
- 15 GPIOs
- 4 MB flash
Overview
This guide covers the ESP32-C3-MINI-1 module: a small, shielded module with the flash memory embedded inside the chip package itself rather than on a separate external chip. It’s the module most ESP32-C3 “Super Mini”-style development boards are built around, but the pin functions below apply to the module itself, independent of any specific board.
No 802.15.4 radio on this chip, so Thread and Zigbee aren’t possible here: that needs an ESP32-C6 or H2 instead. (Only badges for protocols this exact chip actually supports are shown, no Wi-Fi 6/7 either: this is 802.11 b/g/n.)
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-C3 chip and the ESP32-C3-MINI-1 module.
Compute
| Chip | ESP32-C3 |
| CPU | Single-core RISC-V, up to 160 MHz |
| SRAM | 400 KB |
| Flash | 4 MB, embedded in the module package |
Radio
| Wi-Fi | 802.11 b/g/n, 2.4 GHz |
| Bluetooth | 5 LE (+ mesh) |
| Antenna | On-board PCB |
Physical
| Operating voltage | 3.0V – 3.6V |
| Dimensions | 13.2 × 16.6 × 2.4 mm |
| Dev board size | 25.4 × 40.1 mm |
| Operating temperature | −40°C – +85°C |
| GPIOs | 15 programmable |
Pinout diagram
The 30-pin layout used on most ESP32-C3 “Super Mini”-style development boards. The bare module itself exposes fewer pins, boards add 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 | Boot state |
|---|---|---|---|
| 0 | ADC1_0 | ADC1 | Free |
| 1 | ADC1_1 | ADC1 | Free |
| 2 | ADC1_2 | ADC1 | Strapping |
| 3 | ADC1_3, SPI CS | ADC1 | Free |
| 4 | ADC1_4, SPI SCK | ADC1 | Free |
| 5 | ADC2_0, SPI MISO | ADC2 | Free |
| 6 | SPI MOSI | — | Free |
| 7 | — | — | Free |
| 8 | I2C SDA, onboard RGB LED on most boards | — | Strapping |
| 9 | I2C SCL | — | Strapping |
| 10 | — | — | Free |
| 18 | USB D− | — | Free |
| 19 | USB D+ | — | Free |
| 20 | UART0 RX (default) | — | Free |
| 21 | UART0 TX (default) | — | Free |
Flashing pins (UART0)
Used by a USB-to-serial adapter (or the onboard one) to upload firmware.
| Function | Pin | Description |
|---|---|---|
| TXD0 | GPIO21 | ESP32-C3 → PC (output) |
| RXD0 | GPIO20 | PC → ESP32-C3 (input) |
| EN | EN pin | Resets the chip |
| BOOT | GPIO9 | Hold low at reset to enter UART download mode |
Safety notes
Before you wire anything up
- GPIO2, GPIO8 and GPIO9 are strapping pins, check their boot-time state before using them as outputs.
- GPIO18 and GPIO19 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 embedded inside the module package, 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