ESP32 Bench
Boards: ESP32, S2, S3, C3, C6
Flash and monitor: Web Serial
← All boards

ESP32-C3-DevKitM-1, 30 pin pinout

ESP32-C3 board. Pick ESP32C3 Dev Module in the Arduino IDE. 8 of its header GPIOs are free of boot, flash and USB duties.

ESP32-C3Pins tested on hardware17 projects
ESP32-C3-DevKitM-1, 30 pin. USB connector at the bottom.

Pins tested on hardware

UsePins
I2CSDA 6 / SCL 7
One-wire or DHT dataGPIO 4
BOOT buttonGPIO 9

Field notes

  • Native USB serial is off by default on the DevKitM-1 build. Without -DARDUINO_USB_MODE=1 a board connected only by its native port boots but prints nothing.
  • GPIO 9 is the BOOT button and GPIO 8 drives the RGB LED.
  • GPIO 18 and 19 are the native USB data lines.
  • Check the silkscreen before wiring: a sensor on the wrong pad was the one wiring fault in ProbeHarbor's C3 test.

Analog and Wi-Fi

ADC2 (GPIO 5) gives unstable readings because of a chip erratum, and ESP-IDF no longer supports it in oneshot mode. Use GPIO 0 to 4 for analog.

Every pin

Pads in order from the top, with the USB connector at the bottom. Numbers are GPIO numbers, which is what sketches use.

PadLabelGPIOCan doUse it?
Left 1GND——Power Ground.
Left 23V3——Power The 3.3 V supply.
Left 33V3——Power The 3.3 V supply.
Left 422ADC1_CH2, Deep-sleep wakeBoot pin A strapping pin. It must be high at reset.
Left 533ADC1_CH3, Deep-sleep wakeSafe A general-purpose pin with no boot, flash or USB duty.
Left 6GND——Power Ground.
Left 7RST——Reset The reset pin.
Left 8GND——Power Ground.
Left 900ADC1_CH0, Deep-sleep wakeSafe A general-purpose pin with no boot, flash or USB duty.
Left 1011ADC1_CH1, Deep-sleep wakeSafe A general-purpose pin with no boot, flash or USB duty.
Left 111010—Safe A general-purpose pin with no boot, flash or USB duty.
Left 12GND——Power Ground.
Left 135V——Power The 5 V supply from USB.
Left 145V——Power The 5 V supply from USB.
Left 15GND——Power Ground.
Right 1GND——Power Ground.
Right 2TX21UART0 TXSerial Carries the serial console. Anything wired here fights with flashing and the bench.
Right 3RX20UART0 RXSerial Carries the serial console. Anything wired here fights with flashing and the bench.
Right 4GND——Power Ground.
Right 599—Boot pin A strapping pin and the BOOT button.
Right 688—Boot pin A strapping pin and the RGB LED.
Right 7GND——Power Ground.
Right 877JTAG MTDOSafe A general-purpose pin with no boot, flash or USB duty.
Right 966JTAG MTCKSafe A general-purpose pin with no boot, flash or USB duty.
Right 1055ADC2_CH0, JTAG MTDI, Deep-sleep wakeSafe A general-purpose pin with no boot, flash or USB duty.
Right 1144ADC1_CH4, JTAG MTMS, Deep-sleep wakeSafe A general-purpose pin with no boot, flash or USB duty.
Right 12GND——Power Ground.
Right 131818USB D-Avoid The native USB D- line. Using it breaks USB flashing and serial.
Right 141919USB D+Avoid The native USB D+ line. Using it breaks USB flashing and serial.
Right 15GND——Power Ground.

The ESP32-C3 chip

FeatureValue
CPUSingle-core RISC-V, up to 160 MHz
RadioWi-Fi 4 (2.4 GHz) and Bluetooth LE 5
GPIOs22
Analog in6 channels: ADC1 on GPIO 0 to 4, ADC2 on GPIO 5
TouchNone
Analog outNone
USBUSB serial/JTAG port on GPIO 18 and 19
SRAM400 KB

Compare every ESP32 chip · ESP32-C3 datasheet

Projects for this board

  • ProbeHarbor probe Prebuilt sensor firmware from the ProbeHarbor project. Flash it from this page, then it finds a temperature sensor by itself and posts a reading every minute.
  • Wi-Fi scanner List nearby networks with signal strength and channel every ten seconds. A quick radio health check.
  • I2C bus scanner Probe every address on the I2C bus and report what answers. Run it before trusting any sensor wiring.
  • DHT22 climate logger Read temperature and humidity every two seconds and print them as a log line.
  • SSD1306 OLED status Drive a 128 by 64 I2C OLED and show an uptime counter. The base for any small status display.
  • ESP-NOW pair Two boards talk directly over the Wi-Fi radio, with no router. Each sends a counter and prints what the other sends.
  • NeoPixel effects Drive a strip or stick of WS2812 LEDs through a color wipe, a rainbow and a theater chase.
  • Home Assistant temperature Publish a DS18B20 reading over MQTT every 30 seconds. Home Assistant finds the sensor by itself through MQTT discovery.
  • Bluetooth LE scanner List nearby Bluetooth LE devices with their signal strength every ten seconds: phones, watches, beacons and sensors.
  • Over-the-air updates Upload new firmware over Wi-Fi with ArduinoOTA, so a board in a box on the shelf never needs a USB cable again.
  • Battery deep-sleep sensor Wake every five minutes, read a DS18B20 and the battery voltage, then go back to deep sleep. A boot counter survives in RTC memory.
  • Relay and servo control Move a hobby servo to any angle and switch a relay module on and off by typing commands on the bench.
  • E-paper temperature card Show a DS18B20 reading on a 2.9 inch e-paper panel that keeps its image with the power off, refreshing only when the value changes.
  • BME280 web dashboard The board serves its own web page with live temperature, humidity and pressure and a chart that grows every two seconds.
  • Wi-Fi setup portal No passwords in the sketch: the board opens its own setup network with a page to pick your Wi-Fi, saves it, and joins it from then on.
  • DS18B20 to ProbeHarbor Read a waterproof DS18B20 probe and post the temperature to ProbeHarbor once a minute.
  • DS18B20 with Wi-Fi portal The same DS18B20 probe, but Wi-Fi is set from a phone through a captive portal instead of being compiled in.

Amazon buy links may include an Associates tag, and this site may earn a commission from qualifying Amazon purchases at no extra cost to you. Adafruit links are direct.