Adafruit ESP32-C6 Feather

Feather-format ESP32-C6 board with Wi-Fi 6, Bluetooth 5 and Zigbee/Thread radio, LiPo charging, NeoPixel and a STEMMA QT port.

USB-C Native USB
Adafruit ESP32-C6 Feather board
51 × 23 mm
ESP32-C6
RISC-V MCU
160MHz
clock
4MB
flash
512KB
SRAM
19· 6 ADC
GPIO
BLE 5.3+ WiFi
radio
On this page

Pinout

28 pins · 2.54 mm pitch
View:
Adafruit ESP32-C6 Feather pinout diagramAdafruit ESP32-C6 Feather pinout diagram, second view
PinGPIOLabelsStatusCapabilitiesNotes
1-RSTcontrol-Reset; tie to GND to restart the board
2-3V3.3Vpower-3.3V regulator output, 500mA peak
3-3V3.3Vpower-Second 3.3V output pin
4-GNDground-
51A0IO1safeadc
64A1IO4strappingadcStrapping pin
76A2IO6strappingadcSame GPIO6 net as the IO6 pin on the opposite edge
85A3IO5strappingadcStrapping pin; same GPIO5 net as the IO5 pin on the opposite edge
93A4IO3safeadc
102A5IO2safeadc
1121SCKIO21safespi
1222MOMOSIIO22safespi
1323MIMISOIO23safespi
1417RXIO17uartuart
1516TXIO16uartuart
169IO9strapping-Strapping pin; shared with the onboard BOOT button and NeoPixel - hold low at reset to enter the ROM bootloader
17-BATpower-LiPoly battery +, JST-PH 2-pin jack
18-ENcontrol-3.3V regulator enable, pulled up; pull low to disable
19-USBpower-5V from the USB-C connector
201515IO15strapping-Strapping pin; drives the onboard red LED (LED_BUILTIN)
211414IO14safe-Silkscreen misprinted "12" on boards made before Jan 23, 2025 - actual pin is GPIO14
220IO0safe-Also usable as hardware SPI chip-select (Arduino SS)
238IO8strapping-Strapping pin
247IO7strapping-
256IO6A2strappingadcSame net as the A2 pin on the opposite edge
265IO5A3strappingadcStrapping pin; same net as the A3 pin on the opposite edge
2718SCLIO18safei2cAlso routed to the STEMMA QT connector
2819SDAIO19safei2cAlso routed to the STEMMA QT connector

Start with these

10 pins with no boot or system involvement
A0IO1A4IO3A5IO2SCKIO21MOMOSIMIMISO14IO14IO0SCLIO18SDAIO19

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
A1MTMSUsed during boot; required for JTAG debugging; flash data in internal-flash models.Strapping
A2MTCKRequired for JTAG debugging; connected to flash clock in internal-flash models.JTAG
A3MTDIUsed during boot; required for JTAG debugging; flash data in internal-flash models.Strapping
RXU0RXDDefault UART0 receive pin; using it may interfere with serial console or programming.UART
TXU0TXDDefault UART0 transmit pin; using it may interfere with serial console or programming.UART
IO9GPIO9Pulling low on reset forces the ESP32-C6 into download mode instead of normal boot.Strapping
15JTAG_SELControls JTAG input source at boot; avoid altering its state.JTAG
IO8GPIO8Determines boot mode; pulling low at reset can prevent normal boot.Strapping
IO7MTDORequired for JTAG debugging; connected to flash data in internal-flash models.JTAG
IO6MTCKRequired for JTAG debugging; connected to flash clock in internal-flash models.JTAG
IO5MTDIUsed during boot; required for JTAG debugging; flash data in internal-flash models.Strapping
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 The Adafruit ESP32-C6 Feather breaks out 28 pins in total: 21 GPIO for your project, with 3V, GND, BAT and USB handling power. For peripherals, I²C is mapped…

The Adafruit ESP32-C6 Feather breaks out 28 pins in total: 21 GPIO for your project, with 3V, GND, BAT and USB handling power.

For peripherals, I²C is mapped to SDA on GPIO19 and SCL on GPIO18; the SPI bus (MOSI, MISO, SCK) is broken out in full; TX/RX on GPIO16 and GPIO17 cover serial logging and flashing.

On the analog side there are 8 ADC-capable pins for sensors and battery monitoring.

If you want zero surprises, A0, A4, A5, SCK and 6 more are free of any such role - the safest first picks. 11 of the exposed pins carry boot-time or system duties on the ESP32-C6 (A1, A2, A3 and 8 more).

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
The onboard user LED on GPIO15 blinks.
Set these in Tools · leave everything else at default
Arduino IDE 2.x - Tools Copy
Board: "Adafruit Feather ESP32-C6"
USB CDC On Boot: "Enabled"
Flash Size: "4MB (32Mb)"
Partition Scheme: "Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)" (default)
Upload Speed: "921600"
▸ every other Tools option - leave at default
Board: Adafruit Feather ESP32-C6
USB CDC On Boot: Enabled
Flash Size: 4MB (32Mb)
Partition Scheme: Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
Upload Speed: 921600
Find it: Tools ▸ Board ▸ ESP32 Arduino ▸ Adafruit Feather ESP32-C6
blink.ino Copy
// blink the onboard user LED
void setup() {
  pinMode(15, OUTPUT);
}
void loop() {
  digitalWrite(15, HIGH); delay(500);
  digitalWrite(15, LOW);  delay(500);
}
board to selectadafruit_feather_esp32c6⧉ copy
platformio.ini Copy
[env:adafruit-esp32-c6-feather]
platform = https://github.com/pioarduino/platform-espressif32/releases/download/stable/platform-espressif32.zip
board = adafruit_feather_esp32c6
framework = arduino
monitor_speed = 115200
upload_speed = 921600
Find it: PlatformIO Home ▸ Boards, search adafruit_feather_esp32c6 - or type it after board =.
board to selectadafruit_feather_esp32c6⧉ copy
device.yaml Copy
esp32:
  board: adafruit_feather_esp32c6
  variant: esp32c6
  framework:
    type: esp-idf

# blink - GPIO15
output:
  - platform: gpio
    pin: 15
    id: led_out
light:
  - platform: binary
    name: "LED"
    output: led_out
Find it: search ESPHome's board list for adafruit_feather_esp32c6 (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 esp32c6 --port /dev/ttyACM0 \
  --baud 921600 write_flash 0x0 firmware.bin
--port = your /dev/tty* (macOS/Linux) or COMx (Windows).
Build details: sketch space 4194304 B · data B

Good to know

board-specific quirks worth 60 seconds

The ESP32-C6 has no native USB peripheral - only a built-in USB-Serial/JTAG interface for flashing and console output. It cannot act as a USB HID or mass-storage device, and CircuitPython on this board cannot use the UF2 drag-and-drop bootloader. Move files over Wi-Fi, Bluetooth, or WebSerial instead.

GPIO20 (NEOPIXEL_I2C_POWER) gates power to both the onboard NeoPixel and the STEMMA QT/I2C connector, and it must be driven high for either to work. CircuitPython and Arduino do this automatically at boot, but bare-metal or ESP-IDF code needs to set GPIO20 high manually before the NeoPixel or any STEMMA QT sensor will respond.

Specifications

ESP32-C6 · 51 × 23 mm · vs other ESP32 chips →
Compute
MCU
ESP32-C6 · RISC-V
Clock
160 MHz
SRAM · Flash
512 KB · 4MB
Radio
Wi-Fi
802.11 ax b/g/n
Bluetooth
5.3 LE
Antenna
PCB
I/O
GPIO · ADC
19 · 6
UART · I²C · SPI
2 +1 LP · 1 +1 LP · 1
PWM
6 channels
Power
USB
USB-C
Serial
Native (CDC)
Boot address
0x0
Electrical
Input
5V USB-C - 3.7/4.2V LiPo
Consumption
17µA sleep
Regulator
-
Flashing
Upload · OTA
esptool_py · esp_ota
Flash · Boot mode
- · -
Sketch · Data
4 MB · -
23 mm51 mm
51 × 23 mm · pin pitch 2.54 mm
The Adafruit ESP32-C6 Feather uses esptool_py for firmware uploads, esp_ota for over-the-air (OTA) updates. The maximum sketch size is 4 MB.

About this board

At its core is the ESP32-C6 - a RISC-V part adding Wi-Fi 6 plus Thread/Zigbee radios.

Expect to pay about $14.95 - above the ~$10 typical for ESP32-C6 boards.

Onboard you'll find a STEMMA QT connector, an addressable RGB LED (GPIO9), a battery fuel gauge (MAX17048), battery charging via JST-PH 2.0, status LEDs (Red LED, Charge LED) and Reset/Boot buttons.

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

  • Wi-Fi 6 (802.11ax), Bluetooth 5, and an 802.15.4 radio for Zigbee and Thread
  • MAX17048 LiPo fuel gauge for battery percentage readouts
  • Cuttable Charger Disable trace on the back for use with non-rechargeable AA/AAA packs
  • No onboard DAC - analog output is not available, only ADC input on A0-A5

Where to buy

prices are typical street prices
Adafruit ESP32-C6 Feather
Adafruit ESP32-C6 Feather
$14.95per unit, typical
As an Amazon Associate, ESPboards earns from qualifying purchases.

Resources

Similar boards