The ESP32-C3 is a 32-bit RISC-V single-core microcontroller featuring Wi-Fi and Bluetooth 5. Unlike its dual-core ESP32 predecessor, the C3 variant offers a lower pin count (22 usable GPIOs) but excels in low-power IoT applications. Crucially, the ESP32-C3 operates strictly at 3.3V logic and is not 5V tolerant on its GPIO pins. Below is the definitive pinout and peripheral wiring reference for the two most common 2026 variants: the ESP32-C3-SuperMini and the official ESP32-C3-DevKitM-1.
The Complete ESP32-C3 Pinout & Peripheral Color Code Table
This table maps the physical GPIO pins to their default peripheral functions and cross-references them with standard wiring color codes. Use this as your primary bench reference when wiring sensors, displays, and communication buses.
| GPIO | Symbol / Default Function | Peripheral Bus | IEC 60446 (EU/Global) | TIA-598 (US Data) | Maker Hobbyist Standard |
|---|---|---|---|---|---|
| 5V | VBUS / 5V Input | Power | Brown | Orange/White | Red |
| GND | Ground Reference | Power | Blue | Blue | Black |
| 3V3 | 3.3V Regulated Output | Power | Brown (Striped) | Green/White | Orange / Red |
| GPIO0 | ADC1_CH0 / I2S / SPI | ADC1 / SPI | Black | Blue | Yellow |
| GPIO1 | ADC1_CH1 / I2S / SPI | ADC1 / SPI | Black | Orange | White |
| GPIO2 | ADC1_CH2 / Strapping Pin | ADC1 / Boot | Grey | Green | Purple (Caution) |
| GPIO3 | ADC1_CH3 / SPI MISO | ADC1 / SPI | Grey | Brown | Green |
| GPIO4 | ADC1_CH4 / I2C SDA / SPI | I2C / SPI | Violet | Slate | Blue (SDA) |
| GPIO5 | I2C SCL / SPI CS | I2C / SPI | Violet | White | Yellow (SCL) |
| GPIO6 | UART1 TX / SPI CLK | UART / SPI | Pink | Red | Green (TX) |
| GPIO7 | UART1 RX / SPI MISO | UART / SPI | Pink | Black | White (RX) |
| GPIO8 | I2C SCL / Strapping Pin | I2C / Boot | White | Yellow | Purple (Caution) |
| GPIO9 | I2C SDA / Strapping Pin | I2C / Boot | White | Violet | Purple (Caution) |
| GPIO10 | SPI FSPICS0 / PWM | SPI / LEDC | Green/Yellow | Pink | Grey |
| GPIO18 | USB D- (Native USB) | USB Serial | Green | Green | White (D-) |
| GPIO19 | USB D+ (Native USB) | USB Serial | Yellow | Orange | Green (D+) |
| GPIO20 | UART0 RX (Default Serial) | UART0 | Red | Blue/White | Black (RX0) |
| GPIO21 | UART0 TX (Default Serial) | UART0 | Red | Orange/White | Grey (TX0) |
Rows People Get Wrong: Strapping Pins & 5V Tolerance Myths
When reading the ESP32-C3 Technical Reference Manual, three specific rows in the pinout table cause the most bricked boards and boot-looping firmware: GPIO2, GPIO8, and GPIO9.
The Strapping Pin Trap
GPIO2, GPIO8, and GPIO9 are 'strapping pins.' During reset, the ESP32-C3 samples the voltage on these pins to determine its boot mode.
- GPIO8: Controls the boot source. If pulled HIGH at boot, it attempts to boot from the SPI flash. If pulled LOW, it enters the serial bootloader. Many off-the-shelf I2C sensor breakout boards have internal pull-up resistors on the SCL line. If you wire your I2C SCL to GPIO8, the sensor's pull-up resistor can force GPIO8 HIGH during a soft reset, causing the C3 to hang or fail to enter flash mode during OTA updates.
- GPIO9: Dictates the boot log output. If you wire a low-impedance load (like an LED without a sufficient current-limiting resistor) to GPIO9, it will drag the pin LOW during boot, redirecting boot logs to GPIO2 and potentially stalling the boot sequence.
- GPIO2: Tied to the internal pull-up during boot. If externally pulled LOW, it disables the boot log printing.
Wire.begin(4, 5); initialization to avoid strapping pin conflicts.The ADC Limitation
Unlike the original ESP32 which featured two ADC units, the ESP32-C3 only has ADC1, limited to GPIO0 through GPIO4. If your project requires more than 5 analog inputs, the C3 is the wrong silicon; step up to an ESP32-S3.
Regional & Standard Wiring Variants for Peripherals
While microcontrollers don't fall under NEC or IEC mains wiring codes, the peripheral wires connecting them to sensors, relays, and industrial PLCs do follow distinct regional and industry standards. Choosing the right color code prevents catastrophic cross-wiring when a project moves from the hobbyist bench to a commercial enclosure.
| Standard | Region / Industry | VCC / Positive | GND / Negative | Data / Signal | When to Use |
|---|---|---|---|---|---|
| IEC 60446 | EU / Global Industrial | Brown | Blue | Black / Grey | Wiring 24VDC industrial sensors, PLCs, and CE-marked control panels. |
| TIA/EIA-598 | US Telecom / Data | Orange/White | Blue | Green/Brown pairs | Pulling CAT5e/CAT6 cable for long-distance RS485 or UART runs. |
| Maker Hobbyist | Global (Adafruit/SparkFun) | Red | Black | Yellow/White/Blue | Breadboarding, 3D printer control boards, and quick prototyping. |
What this means in practice: If you are building a home automation node that will eventually be mounted in a DIN-rail enclosure alongside 24VDC relays, use IEC 60446 colors (Brown for 3.3V/5V, Blue for GND). If a maintenance technician opens that panel, they will instantly recognize Brown/Blue as DC power. Using Red/Black (Hobbyist) in an industrial panel creates a severe safety hazard, as Red is often reserved for emergency stop circuits or high-voltage DC in specific regional contexts.
Decision Path: Which Pin and Board Variant to Choose
Stop guessing which pin to use. Follow this decision tree to terminate your design with a concrete pick.
| Application Need | Condition | Concrete Pick (GPIO) | Required Code / Config |
|---|---|---|---|
| I2C Sensor (BME280, OLED) | Needs stable boot, no strapping conflicts | GPIO4 (SDA), GPIO5 (SCL) | Wire.begin(4, 5); |
| SPI Display (ST7789, ILI9341) | High-speed data, needs dedicated SPI bus | GPIO2 (CS), GPIO3 (MISO), GPIO4 (MOSI), GPIO5 (CLK) | Use hardware SPI1, avoid bit-banging. |
| Analog Reading (Potentiometer, LDR) | Needs 12-bit ADC | GPIO0, GPIO1, or GPIO3 | analogRead(0); (Note: 12-bit max, 2.5V ref limit). |
| Hardware UART (GPS, PMS5003) | Needs dedicated serial port, not USB debug | GPIO6 (TX), GPIO7 (RX) | Serial1.begin(9600, SERIAL_8N1, 7, 6); |
| Deep Sleep Wakeup | Needs EXT0 or EXT1 interrupt wakeup | GPIO2 or GPIO3 | Configure RTC_GPIO in ESP-IDF or Arduino deep sleep API. |
The Default Recommendation: For 90% of general-purpose IoT sensor nodes using the ESP32-C3-SuperMini, wire your primary I2C bus to GPIO4 and GPIO5, reserve GPIO6 and GPIO7 for a secondary UART device (like a GPS module), and leave GPIO8 and GPIO9 completely unconnected to guarantee flawless OTA flashing and boot sequences.
Verifying Dead Boards and Faded Markings
The ESP32-C3-SuperMini is notorious for poor silkscreen quality. After a few weeks on the bench, the pin labels rub off, leaving you with a blank black PCB and a row of unmarked castellated holes. Here is how to safely interpret the pinout when markings are missing, without relying on guesswork.
- Identify Ground (GND): Set your multimeter to continuity mode (the diode/beep setting). Place the black probe on the metal shield of the USB-C connector. Probe the header pins with the red probe. Any pin that beeps (reads less than 1.0 ohm) is a GND pin. On the SuperMini, there are typically two GND pins located on opposite corners of the header.
- Identify 5V (VBUS): Switch the multimeter to DC Voltage. Plug the board into a known-good 5V USB data cable (do not connect to a PC yet; use a dumb wall charger to avoid shorting PC USB ports if you make a mistake). Place the black probe on your identified GND pin. Probe the remaining pins. The pin reading exactly 4.8V to 5.2V is your 5V VBUS pin.
- Identify 3.3V: With the board still powered, probe the remaining pins against GND. The pin reading 3.25V to 3.35V is the 3V3 output from the onboard LDO regulator.
- Locate the LDO Capacitors: Visually locate the largest ceramic capacitor (usually 10uF, marked '106') near the voltage regulator. One side of this capacitor is tied directly to the 3.3V rail, and the other to GND. Tracing the copper pour from these capacitors under a magnifying glass will confirm your power pins with 100% certainty, bypassing the need for faded silkscreen entirely.
For comprehensive hardware layout rules and RF antenna keep-out zones when designing custom carrier boards, always defer to the official Espressif Hardware Design Guidelines. Never route high-speed SPI traces directly under the PCB antenna trace, as the 2.4GHz harmonic noise will desensitize the Wi-Fi receiver by up to 15dB.






