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 - no driver, no serial chip. Not detected? Hold BOOT while plugging in.
2
Flash with your tool
Arduino IDE, PlatformIO, ESPHome or esptool - copy the settings on the right.
3
Verify it runs
The blink example uses GPIO0 - swap for your board's LED pin if different.
Tools → Board settings Copy
Board:            Adafruit Qtpy Esp32c3
USB CDC On Boot:  Enabled
Flash Size:       4MB · DIO
Upload Speed:     921600

// blink
pinMode(0, OUTPUT);
digitalWrite(0, LOW);   // on (often inverted)
platformio.ini Copy
[env:adafruit_qtpy_esp32c3]
platform = espressif32
board = esp32-c3-devkitm-1
framework = arduino
monitor_speed = 115200
upload_speed = 921600
device.yaml Copy
esp32:
  board: esp32-c3-devkitm-1
  variant: adafruit_qtpy_esp32c3
  framework:
    type: esp-idf

# blink - GPIO0
output:
  - platform: gpio
    pin: 0
    id: led_out
light:
  - platform: binary
    name: "LED"
    output: led_out
shell Copy
esptool.py --chip esp32c3 --port /dev/ttyACM0 \
  write_flash 0x0 firmware.bin
Build details: sketch space 1310720 B · data 327680 B · DIO

Specifications

ESP32-C3 · 22 × 17.8 mm
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 · 3
PWM
6 channels
Power
USB
USB-C
Serial
Native (CDC)
Boot address
0x0
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