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

Adafruit ESP32-C6 Feather Pinout

28 pins · 2.54 mm pitch
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
21 GPIOs broken out 10 free · 11 need care · 0 to avoid

Start with these

10 pins with no boot or system involvement
A0GPIO1A4GPIO3A5GPIO2SCKGPIO21MOGPIO22MIGPIO2314GPIO14IO0SCLGPIO18SDAGPIO19

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

Fine - with a little care

11 pins · 8 things to know
A1GPIO4A3GPIO5IO5 Bootstrapping pins; JTAG TMS and TDI; flash data lines on internal-flash models Strapping

Used during boot; required for JTAG debugging; flash data in internal-flash models.

  • A1Bootstrapping pin; JTAG TMS; Flash data (FSPIHD in internal-flash models).
  • A3Bootstrapping pin; JTAG TDI; Flash data (FSPIWP in internal-flash models).
  • IO5Bootstrapping pin; JTAG TDI; Flash data (FSPIWP in internal-flash models).
A2GPIO6IO6 JTAG TCK; Used for flash clock (internal-flash models). JTAG

Required for JTAG debugging; connected to flash clock in internal-flash models.

  • A2JTAG TCK; Used for flash clock (internal-flash models).
  • IO6JTAG TCK; Used for flash clock (internal-flash models).
RXGPIO17 UART0 RX. UART

Default UART0 receive pin; using it may interfere with serial console or programming.

TXGPIO16 UART0 TX; Flash CS0 (internal-flash models). UART

Default UART0 transmit pin; using it may interfere with serial console or programming.

IO9 Boot mode strapping pin. Strapping

Pulling low on reset forces the ESP32-C6 into download mode instead of normal boot.

15GPIO15 JTAG source selection pin. JTAG

Controls JTAG input source at boot; avoid altering its state.

IO8 Boot mode strapping pin; also gates ROM boot message printing (UART_PRINT_CONTROL efuse). Strapping

Determines boot mode; pulling low at reset can prevent normal boot.

IO7 JTAG TDO; Used for flash data (FSPI DO in internal-flash models). JTAG

Required for JTAG debugging; connected to flash data in internal-flash models.

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.

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 · -

Dimensions

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