Adafruit QT Py ESP32-C3

Small ESP32-C3 board with STEMMA QT - perfect for plug-and-play sensor projects and low-power wireless apps.

USB-C Native USB
Adafruit QT Py ESP32-C3 board
22 × 17.8 mm
ESP32-C3
RISC-V MCU
160MHz
clock
4MB
flash
400KB
SRAM
13· 5 ADC
GPIO
BLE 5.0+ WiFi
radio
On this page

Pinout

13 pins · 2.54 mm pitch
View:
Adafruit QT Py ESP32-C3 pinout diagram
PinGPIOLabelsStatusCapabilitiesNotes
10A3safeadc
21A2safeadc
32PIN_NEOPIXELstrapping-
43A1safeadc
54A0strappingadc
65SDAA4strappingadc · i2c
76SCLSSstrappingspi · i2c
87MOSIstrappingspi
98MISOstrappingspi
109BUTTONstrapping-
1110SCKsafespi
1220RXuartuart
1321TXuartuart

Start with these

4 pins with no boot or system involvement
A3A2A1SCK

Freely assignable - no strapping, flash, USB or JTAG duties. Ideal first picks for buttons, sensors and LEDs.

Fine - with a little care

sampled at boot or shared with debug/serial
PinLabelWhat to knowRole
PIN_NEOPIXELGPIO2Must be held high during boot (if low on reset, normal flash boot may fail)Strapping
A0MTMSUsed during boot; JTAG TMS for debugging; acts as Quad-SPI flash IO (hold data line) in internal-flash variantsJTAG
SDAMTDIUsed during boot; JTAG TDI for debugging; acts as Quad-SPI flash IO (write-protect data line) in internal-flash variantsJTAG
SCLMTCKUsed during boot; JTAG TCK for debugging; provides flash clock in internal-flash variantsJTAG
MOSIMTDOUsed during boot; JTAG TDO for debugging; acts as Quad-SPI flash IO (data line) in internal-flash variantsJTAG
MISOGPIO8Must be held high during reset (if low, UART flashing/boot may not work)Strapping
BUTTONGPIO9Controls boot mode on reset (HIGH for normal flash boot, LOW enters serial download mode)Strapping
RXU0RXDUsed as UART0 receive (console/bootloader); repurposing may disable serial programming and debug logsUART
TXU0TXDUsed as UART0 transmit (console/bootloader); repurposing may disable serial console output and printingUART
These are recommendations, not hard rules - with the right pull-ups, timing and boot-state awareness most pins can be made to work. When in doubt, start green.
Pinout notes All 13 pins on the Adafruit QT Py ESP32-C3 are usable GPIO, spaced at the standard 2.54 mm pitch. Peripheral wiring is straightforward: I²C is mapped to SDA on…

All 13 pins on the Adafruit QT Py ESP32-C3 are usable GPIO, spaced at the standard 2.54 mm pitch.

Peripheral wiring is straightforward: I²C is mapped to SDA on GPIO5 and SCL on GPIO6; the SPI bus (MOSI, MISO, SCK, SS) is broken out in full; TX/RX on GPIO21 and GPIO20 cover serial logging and flashing.

Beyond plain digital I/O you get 5 ADC-capable pins for sensors and battery monitoring.

9 of the exposed pins carry boot-time or system duties on the ESP32-C3 (PIN_NEOPIXEL, A0, SDA and 6 more) - check the guidance above before wiring anything to them. A3, A2, A1 and SCK are free of any such role - the safest first picks.

Getting started

flash your first firmware in ~2 minutes
Tool:
1
Connect over USB
Native USB - shows up as a port right away, no driver needed. Not detected? Hold BOOT while plugging in.
2
Match & flash
Set the Tools options shown, then click Upload.
3
Verify it runs
GPIO0 toggles - wire an LED and resistor to it, or change the pin to your board's own LED.
Set these in Tools · leave everything else at default
Arduino IDE 2.x - Tools Copy
Board: "ESP32C3 Dev Module"
USB CDC On Boot: "Enabled"
Flash Size: "4MB (32Mb)"
Flash Mode: "DIO"
Partition Scheme: "Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)" (default)
Upload Speed: "921600"
▸ every other Tools option - leave at default
Board: ESP32C3 Dev Module
USB CDC On Boot: Enabled
Flash Size: 4MB (32Mb)
Flash Mode: DIO
Partition Scheme: Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
Upload Speed: 921600
Find it: Tools ▸ Board ▸ ESP32 Arduino ▸ ESP32C3 Dev Module
blink.ino Copy
// toggle GPIO0 - wire an LED and resistor to it
void setup() {
  pinMode(0, OUTPUT);
}
void loop() {
  digitalWrite(0, HIGH); delay(500);
  digitalWrite(0, LOW);  delay(500);
}
board to selectesp32-c3-devkitm-1⧉ copy
platformio.ini Copy
[env:adafruit_qtpy_esp32c3]
platform = espressif32
board = esp32-c3-devkitm-1
framework = arduino
monitor_speed = 115200
upload_speed = 921600
Find it: PlatformIO Home ▸ Boards, search esp32-c3-devkitm-1 - or type it after board =.
board to selectesp32-c3-devkitm-1⧉ copy
device.yaml Copy
esp32:
  board: esp32-c3-devkitm-1
  variant: esp32c3
  framework:
    type: esp-idf

# blink - GPIO0
output:
  - platform: gpio
    pin: 0
    id: led_out
light:
  - platform: binary
    name: "LED"
    output: led_out
Find it: search ESPHome's board list for esp32-c3-devkitm-1 (same ids as PlatformIO).
esptool doesn't pick board settings - a prebuilt .bin already has them baked in. This is just the raw flash command.
terminal Copy
esptool.py --chip esp32c3 --port /dev/ttyACM0 \
  --baud 921600 write_flash 0x0 firmware.bin
--port = your /dev/tty* (macOS/Linux) or COMx (Windows).
Build details: sketch space 1310720 B · data 327680 B · DIO

Specifications

ESP32-C3 · 22 × 17.8 mm · vs other ESP32 chips →
Compute
MCU
ESP32-C3 · RISC-V
Clock
160 MHz
SRAM · Flash
400 KB · 4MB
Radio
Wi-Fi
802.11 b/g/n
Bluetooth
5.0 LE
Antenna
Ceramic
I/O
GPIO · ADC
13 · 5
UART · I²C · SPI
2 · 1 · 1
PWM
6 channels
Power
USB
USB-C
Serial
Native (CDC)
Boot address
0x0
Electrical
Input
5V USB-C · up to 6V battery pads
Consumption
-
Regulator
AP2112
Flashing
Upload · OTA
esptool_py · esp_ota
Flash · Boot mode
DIO · QIO
Sketch · Data
1.25 MB · 320 KB
17.8 mm22 mm
22 × 17.8 mm · pin pitch 2.54 mm
The Adafruit QT Py ESP32-C3 uses esptool_py for firmware uploads, esp_ota for over-the-air (OTA) updates. Flash mode is DIO with QIO boot mode. The maximum sketch size is 1.25 MB with 320 KB available for data.

About this board

At 22 × 17.8 mm it's among the smallest boards in the whole ESP32 family.

Inside sits the ESP32-C3 - a single-core RISC-V and the budget low-power pick.

The $9.95 price tag is typical for an ESP32-C3 board.

Around the module: a STEMMA QT connector, an addressable RGB LED (GPIO2) and Reset/Boot buttons.

It flashes over native USB - no serial-converter driver needed, which isn't a given among ESP32-C3 boards.

Where to buy

prices are typical street prices
Adafruit QT Py ESP32-C3
Adafruit QT Py ESP32-C3
$9.95per unit, typical

Resources

Similar boards