ESP32/Chips/ESP32-C3

ESP32-C3

Small, cheap, RISC-V. One core that does one thing at a time, and does it well.

Before you plan anything
Single core, no touch pins, no DAC.
A long blocking loop now delays Wi-Fi housekeeping, because there is no second core to carry it. Keep loop() short.
Wi-Fi 4BLE 5No classic BTNo Zigbee or ThreadUSB serial/JTAGNo DACNo touch pinsNo PSRAMSingle coreNo MIPI display
RISC-V · 1 × 160 MHz
ESP32-C3 board photo
We stock
ESP32-C3 SuperMini
Thumbnail sized and the cheapest way to get something on Wi-Fi. Watch GPIO8 — it is the on-board LED.
See it in the shop →

The pins that matter

Not all forty-odd of them. The five rows that decide whether your wiring works.

Default I2CSDA 8 · SCL 9Core default — but see the warning below about GPIO 8.
On-board LEDGPIO 8On the SuperMini. It shares a pin with the I2C default and has a pull-up on it.
We use insteadSDA 5 · SCL 6Our board profile moves I2C off GPIO 8 for exactly that reason.
Strapping pinsGPIO 2, 8, 9GPIO 9 is the BOOT button. Pulling GPIO 2 low at boot stops it starting.
ADC pinsGPIO 0–4Five analog inputs, all on ADC1, so Wi-Fi does not interfere.
Pinout diagram — ESP32-C3 SuperMini

Board settings, all three toolchains

Get one of these wrong and nothing else on the site will work.

Arduino IDEC++Tools → BoardESP32C3 Dev Module

On the SuperMini set "USB CDC On Boot" to Enabled or Serial stays silent.

MicroPythonPython + ThonnyfirmwareESP32_GENERIC_C3-20260201-v1.25.bin

The REPL comes up on the native USB port with no extra driver.

PlatformIObuild systemplatformio.iniboard = esp32-c3-devkitm-1

Works for the SuperMini too; only the LED pin differs.

What catches people out on this chip

These are the support emails. They exist nowhere else on the site because they are true of nothing else.

GPIO 8 is the LED and the I2C default

Wire an I2C module to the core defaults on a SuperMini and the LED’s pull-up fights the bus. Move to GPIO 5 and 6 and it works immediately.

One core means Wi-Fi shares your loop

A delay(2000) in loop() is two seconds during which nothing services the radio. Long tasks need to be broken up.

No touch and no DAC

Two whole categories of tutorial simply do not apply. The site greys them out rather than letting you find out the hard way.

Resetting drops the serial port

USB serial/JTAG is part of the chip, so the port goes away on reset. Serial monitors that do not reconnect will look dead.

News about this chip

2026-09-02Arduino core 3.1 changes analogWrite resolution on the C3Sketches written against 3.0 now output 8-bit instead of 10-bit unless you set it explicitly. One line to fix.
2026-08-01MicroPython 1.25 firmware for all five chipsFresh .bin files, and the C6 build finally exposes the Wi-Fi 6 flags.

Guides for this chip

72 of 81 apply

Written once for the whole family. Opening one from here fixes the pins to this chip and the code to your language.

01 · Start hereWhat the ESP32 is02 · Start hereChoosing your tools03 · Setup and uploadingInstall the toolchain04 · Setup and uploadingHello world over serial05 · Setup and uploadingBlink an LED06 · Setup and uploadingWhen uploads fail07 · Setup and uploadingSerial ports and drivers08 · Setup and uploadingPrinting, plotting and debugging09 · The board itselfThe EN and BOOT buttons10 · The board itselfThe pins you cannot use11 · The board itselfWhat the chip says about itself12 · Pins and signalsDigital I/O13 · Pins and signalsPWM with LEDC14 · Pins and signalsReading the ADC15 · Pins and signalsuse insteadDAC output16 · Pins and signalsuse insteadTouch pins17 · Interrupts and timingInterrupts on a pin18 · Interrupts and timingSharing data with an ISR19 · Interrupts and timingHardware timers20 · Interrupts and timingCounting pulses21 · Interrupts and timingAddressable LEDs with RMT22 · Wires on the boardDigital in and digital out23 · Wires on the boardOne-wire sensor timing24 · Wires on the board1-Wire and device chains25 · Wires on the boardI2C, start to stop26 · Wires on the boardI2C addresses and conflicts27 · Wires on the boardI2C on a shared bus28 · Wires on the boardSPI and chip select29 · Wires on the boardUART, start to stop30 · Wires on the boardIR remote codes31 · BusesI2C32 · BusesSPI33 · BusesUART and baud rates34 · BusesRS485 and Modbus35 · StorageFilesystem on flash36 · StorageUploading files to LittleFS37 · StoragePreferences and NVS38 · StoragemicroSD cards39 · StoragePartition tables and flash size40 · Joining a networkWi-Fi station mode41 · Joining a networkAccess point mode42 · Joining a networkBoth at once: AP and station43 · Joining a networkSeveral networks, one board44 · Joining a networkWi-Fi provisioning45 · Joining a networkuse insteadWi-Fi 6 features46 · Living on a networkmDNS and NTP47 · Living on a networkKeeping time with time.h48 · Living on a networkHTTPS and certificates49 · Living on a networkOTA updates50 · Living on a networkEthernet instead of Wi-Fi51 · Web serverHello world from the board52 · Web serverA reading on the page53 · Web serverSwitching a pin from the page54 · Web serverAsync web server55 · Messages on the networkHTTP from a board56 · Messages on the networkMQTT and a broker57 · Messages on the networkWebSocket dashboards58 · Messages on the networkNames and time59 · Messages on the networkFirmware in two slots60 · BluetoothBLE server and client61 · BluetoothA value a phone can read62 · BluetoothA value a phone can write63 · Bluetoothuse insteadClassic Bluetooth serial64 · Other radiosESP-NOW65 · Other radiosESP-WIFI-MESH66 · Other radiosuse insteadZigbee, Thread and Matter67 · Other radiosLoRa for long range68 · Sleep and wake-upDeep sleep and wake sources69 · Sleep and wake-upHibernation, the floor below sleep70 · Sleep and wake-upWaking on a timer71 · Sleep and wake-upWaking on a pin or a touch72 · Sleep and wake-upWhat survives deep sleep73 · Sleep and wake-upuse insteadThe ULP low-power core74 · PowerPower and the 3V3 rail75 · PowerBattery and power budget76 · PowerMeasuring current draw77 · Systemuse insteadDual core tasks78 · SystemCrash dumps and the watchdog79 · SystemI2S audio80 · Systemuse insteadCamera capture81 · Systemuse insteadMIPI displays
Modules that work with the ESP32-C3

All modules work electrically. Touch-based and DAC-based lessons are marked as not applicable, and analog modules should stay on GPIO 0 to 4.

Browse the module index →