Skip to main content

Adafruit QT Py ESP32-C3 WiFi

A tiny ESP32-C3 board.

Adafruit QT Py ESP32-C3 WiFi picture


  • I2C on SDA_D4/SCL_D5 using Qwiic connector
  • WS2812B RGB LED on pin 2 (use setStatusLight to control)
  • Serial logging on pin TX_D6 at 115200 8N1

  • Service: buttonBOOT (button)



pin namehardware idfeatures
A0_D0GPIO4analogIn, debug, io
A1_D1GPIO3analogIn, io
A2_D2GPIO1analogIn, io
A3_D3GPIO0analogIn, io
MISO_D9GPIO8boot, io
MOSI_D10GPIO7debug, io
RX_D7GPIO20bootUart, io
SCL_D5GPIO6i2c.pinSCL, debug, io
SDA_D4GPIO5i2c.pinSDA, debug, io
TX_D6GPIO21log.pinTX, bootUart, io
$services.buttonBOOT[0].pinGPIO9$services.buttonBOOT[0].pin, boot, io, analogIn, boot, io

DeviceScript import

You must add this import statement to load the pinout configuration for this device.

In Visual Studio Code, click the wand icon on the file menu and select "Adafruit QT Py ESP32-C3 WiFi".

import { pins, board } from "@dsboard/adafruit_qt_py_c3"

Firmware update

In Visual Studio Code, select DeviceScript: Flash Firmware... from the command palette.

Run this command line command and follow the instructions.

devicescript flash --board adafruit_qt_py_c3


"$schema": "",
"id": "adafruit_qt_py_c3",
"devName": "Adafruit QT Py ESP32-C3 WiFi",
"productId": "0x3693d40b",
"$description": "A tiny ESP32-C3 board.",
"archId": "esp32c3",
"url": "",
"$services": [
"name": "buttonBOOT",
"pin": 9,
"service": "button"
"i2c": {
"$connector": "Qwiic",
"pinSCL": "SCL_D5",
"pinSDA": "SDA_D4"
"led": {
"pin": 2,
"type": 1
"log": {
"pinTX": "TX_D6"
"pins": {
"A0_D0": 4,
"A1_D1": 3,
"A2_D2": 1,
"A3_D3": 0,
"MISO_D9": 8,
"MOSI_D10": 7,
"RX_D7": 20,
"SCK_D8": 10,
"SCL_D5": 6,
"SDA_D4": 5,
"TX_D6": 21