Which pins are free
GPIO 0, 1, 3, 4, 5, 6, 7 and 10 have no boot role. GPIO 4 to 7 are also the JTAG pins, which you need only with an external debugger, because the board programs and debugs over the chip’s own USB. GPIO 18 and 19 carry that USB link and are not on the header.
GPIO 2, 8 and 9: strapping pins
The ESP32-C3 reads these three pins at reset. GPIO9 has a pull-up and goes to the BOOT button: held LOW at reset, it starts download mode. GPIO8 must be HIGH for download mode and drives the blue LED on most boards. Espressif recommends keeping GPIO2 HIGH at reset. All three work as normal pins once the program runs; just don’t connect anything that forces them LOW at power-up.
| GPIO | Default at reset | What it selects | In practice |
|---|---|---|---|
| 2 | Floating | Not part of the boot choice, but Espressif recommends a pull-up | Keep it HIGH at reset |
| 8 | Floating | Must be HIGH to enter download mode | Don’t hold it LOW at power-up |
| 9 | Weak pull-up (HIGH) | Boot mode: HIGH runs the program, LOW enters download mode | BOOT button; nothing else may hold it LOW |
GPIO 20 and 21: UART0
They are the chip’s UART0, RX and TX. Uploads go through the native USB port, and whether Serial uses USB or these pins depends on the “USB CDC On Boot” option of Arduino-ESP32. The ROM boot messages come out on GPIO21 at reset.
Analog inputs and deep sleep
ADC1 is on GPIO 0 to 4. GPIO5 is on ADC2, which ESP-IDF and Arduino-ESP32 don’t support on the ESP32-C3, so plan analog readings on GPIO 0 to 4: they also work with Wi-Fi on. Only GPIO 0 to 5 can wake the chip from deep sleep.
Power and clones
The board takes 5 V from USB-C or from the 5V pin and has a small 3.3 V regulator. There is no circuit that keeps the two 5 V sources apart, so don’t connect both at once. The regulator and its current differ between makers, with figures from 250 to 500 mA in sellers’ documents, so give heavy loads their own supply. Many boards also have a weak ceramic antenna: if Wi-Fi range is poor, the antenna is usually the cause, not the chip.
The drawing follows each row from the USB end. The labels are printed on the back, so which row looks left or right depends on the side you are looking at: check the labels on your board.
Full ESP32-C3 SuperMini pin table
| Pin | GPIO | Status | Analog | Functions | Notes |
|---|---|---|---|---|---|
| L8 | GPIO0 | Free to use | ADC1_CH0 | RTC_GPIO0, PWM (LEDC), XTAL_32K_P | 32 kHz crystal |
| L7 | GPIO1 | Free to use | ADC1_CH1 | RTC_GPIO1, PWM (LEDC), XTAL_32K_N | 32 kHz crystal |
| L6 | GPIO2 | Use with care | ADC1_CH2 | RTC_GPIO2, PWM (LEDC) | strapping |
| L5 | GPIO3 | Free to use | ADC1_CH3 | RTC_GPIO3, PWM (LEDC) | No restrictions |
| L4 | GPIO4 | Free to use | ADC1_CH4 | RTC_GPIO4, PWM (LEDC), MTMS (JTAG) | JTAG, SPI SCK |
| R1 | GPIO5 | Free to use | ADC2_CH0 | RTC_GPIO5, PWM (LEDC), MTDI (JTAG) | ADC2 not supported, JTAG, SPI MISO (RX) |
| R2 | GPIO6 | Free to use | No | PWM (LEDC), MTCK (JTAG) | JTAG, SPI MOSI (TX) |
| R3 | GPIO7 | Free to use | No | PWM (LEDC), MTDO (JTAG) | JTAG, SPI CS |
| R4 | GPIO8 | Use with care | No | PWM (LEDC) | strapping, LED, I²C SDA |
| R5 | GPIO9 | Use with care | No | PWM (LEDC) | strapping, BOOT button, I²C SCL |
| R6 | GPIO10 | Free to use | No | PWM (LEDC) | No restrictions |
| R7 | GPIO20 | Use with care | No | PWM (LEDC), U0RXD | UART0, UART RX |
| R8 | GPIO21 | Use with care | No | PWM (LEDC), U0TXD | UART0, UART TX |
Default pins of the SuperMini in Arduino-ESP32: I²C on 8 (SDA) and 9 (SCL), SPI on 4 (SCK), 5 (MISO), 6 (MOSI) and 7 (SS), UART on 20 (RX) and 21 (TX). Through the GPIO matrix you can move them to any pin.
Frequently asked questions
Which GPIO is the LED on the ESP32-C3 SuperMini?
GPIO8 on most boards. It lights when the pin is LOW, so digitalWrite(8, LOW) switches it on. GPIO8 is also a strapping pin, which is fine for an LED. Clones differ, so check yours with a blink sketch.
How do I put the ESP32-C3 SuperMini in download mode?
Hold BOOT (GPIO9), press and release RESET, then release BOOT. If uploads fail because your sketch crashed or reconfigured USB, this brings the chip back to its bootloader.
Which ESP32-C3 SuperMini pins are analog?
GPIO 0 to 4, on ADC1. GPIO5 is on ADC2, which isn’t supported on the ESP32-C3, so it can’t be used for analog readings.
What are the I2C and SPI pins of the ESP32-C3 SuperMini?
In Arduino-ESP32 the SuperMini board uses GPIO8 for SDA and GPIO9 for SCL, and GPIO 4, 5, 6 and 7 for SCK, MISO, MOSI and SS. GPIO 8 and 9 are strapping pins, but the I²C pull-ups keep them HIGH, which is what a normal boot needs.
Are the ESP32-C3 SuperMini pins 5 V tolerant?
No. The ESP32-C3 GPIOs work at 3.3 V and are not rated for 5 V. Use a level shifter or a resistor divider for 5 V signals.