THE ULTIMATE GUIDE TO THE ESP32-C6 PINOUT

The ESP32-C6 DevKitC-1 V1.0 is a powerful new development board based on Espressif’s groundbreaking ESP32-C6-WROOM-1 module. This chip is the first in Espressif’s lineup to feature Wi-Fi 6Bluetooth 5, and IEEE 802.15.4 (for Zigbee & Thread) all in one SoC. With native USB, RISC-V architecture, and secure IoT features, the ESP32-C6 is designed for tomorrow’s wireless world. It is also suitable for ESP32 HomeKit Development. In this guide, you’ll learn everything about the ESP32-C6 pinout and onboard features to help you build smarter — faster.

What is the ESP32-C6?

System-on-Chip (SoC):

The ESP32-C6 features a 32-bit RISC-V single-core processor running at 160 MHz. Unlike earlier Xtensa-based ESP32s, the C6 brings support for:

  • Wi-Fi 6 (802.11ax)
  • Bluetooth 5 (LE)
  • IEEE 802.15.4 (Zigbee / Thread)
  • USB 1.1 full-speed device
  • Secure boot + flash encryption

This makes it ideal for low-power, highly connected IoT devices.

Module:

The board uses the ESP32-C6-WROOM-1 module, combining the C6 chip, 4–8MB flash, crystal, PCB antenna, and passives — pre-certified for FCC/CE and ready for production designs.

Development Board (DevKit):

The DevKitC-1 V1.0 offers:

  • Dual USB-C ports (UART + USB)
  • Onboard WS2812 RGB LED on GPIO8
  • BOOT and RESET buttons
  • Full GPIO breakout with clearly labeled headers
  • CH343 USB-to-serial chip

Designed for the Future of IoT

The ESP32-C6 supports:

  • RISC-V CPU at 160 MHz
  • Wi-Fi 6 (2.4GHz)
  • BLE 5 and Mesh
  • Zigbee / Thread (802.15.4)
  • 24 GPIOs
  • USB 1.1 device support
  • UART, I2C, SPI, PWM, ADC
  • Secure boot / encryption
  • Native RGB LED support
  • Low-power modes for deep sleep

** The ESP32 pinout is available for download at the end of this post in high resolution – for free!

ESP32-C6 Pinout – GPIO Fundamentals

This dev board exposes 24 GPIO’s, many of which are fully multifunctional. You’ll find support for everything from analog inputs and PWM to UART, SPI, and I2C.

Onboard WS2812 RGB LED

The addressable RGB LED is connected to GPIO8.

Applications:
Use it to indicate Wi-Fi connection status, show HomeKit pairing state, or create colorful animations.

Control it using FastLED or Adafruit_NeoPixel.

ADC – Analog to Digital Converter

The ESP32-C6 includes a 12-bit ADC with 8 channels:

ADC Channels:

  • ADC1: GPIO0, GPIO1, GPIO2, GPIO3, GPIO4, GPIO5, GPIO6
  • ADC2: GPIO9

Perfect for reading sensors, sliders, or analog voltage levels.

PWM (Pulse Width Modulation)

PWM is available on almost all GPIO’s.

Use cases: dimming LED’s, controlling motors, tone generation, etc.

I2C & SPI Communication

I2C

I2C is software-configurable. Typical setup:

  • SDA – GPIO8
  • SCL – GPIO9

Use Wire.begin(SDA, SCL); to reconfigure.

SPI

Also fully software-assignable. Example config:

  • MOSI – GPIO5
  • MISO – GPIO4
  • SCLK – GPIO6
  • CS – GPIO7

UART and USB Communication

UART

The USB-to-serial interface (CH343) connects to:

  • TXD – GPIO17
  • RXD – GPIO18

Used for programming and debugging via the UART USB-C port.

USB (Native)

The second USB-C port uses native USB support via:

  • USB D+ – GPIO19
  • USB D− – GPIO20

Ideal for HID devices, USB CDC, or firmware updates.

ESP32-C6 GPIO Quick Reference Table

GPIOFunctionADCPWMNotes
0ADC1_CH0YesYesBoot strapping pin
1ADC1_CH1YesYes
2ADC1_CH2YesYes
3ADC1_CH3YesYes
4SPI MISOADC1_CH4YesCan be used as SDA (I2C)
5SPI MOSIADC1_CH5YesCan be used as SCL (I2C)
6SPI CLKADC1_CH6Yes
7SPI CSNoYes
8RGB LED / SDANoYesOnboard NeoPixel
9SCLADC2_CH1YesI2C SCL, second ADC
12GPIONoYes
13GPIONoYes
15GPIONoYes
16GPIONoYes
17UART TXDNoYesUART via CH343
18UART RXDNoYesUART via CH343
19USB D+NoYesNative USB
20USB D−NoYesNative USB
21GPIONoYes
22GPIONoYes
23GPIONoYesMay not be available on all boards

Best Practices and Common Mistakes

  • Avoid using GPIO0 for output during boot — it’s a strapping pin.
  • GPIO8 is tied to the onboard NeoPixel — don’t repurpose unless disabled.
  • Always debounce buttons in software.
  • Pull-up or pull-down resistors may be needed for floating inputs.
  • Don’t overload GPIOs: max ~12mA sink/source.
  • Use the UART USB-C for flashing; USB USB-C for native device communication.

How to Program the ESP32-C6

Development Environments

  • Arduino IDE – (ESP32-C6 support via board manager)
  • PlatformIO – Best for multi-project workspaces
  • ESP-IDF – Espressif’s official low-level SDK

Programming Pins

FunctionPinDescription
TXD0GPIO17Serial output to PC
RXD0GPIO18Serial input from PC
IO0GPIO0BOOT mode when pulled LOW
ENEN pinReset the ESP32-C6

Steps:

  1. Connect the UART USB-C port.
  2. Select ESP32C6 Dev Module in Arduino/PlatformIO.
  3. Press “Upload.” Hold BOOT if flashing fails.

Conclusion: Built for the Next Generation

With Wi-Fi 6, BLE 5, and Thread/Zigbee in one chip, the ESP32-C6 is the ultimate low-power wireless SoC. The DevKitC-1 V1.0 board makes development effortless with full pinout access, dual USB, and onboard RGB feedback. If you’re building for the connected future — this board is your launchpad.

Happy Building! 

Download the ESP32- C6 pinout here in high resolution – for free*!

Free to use under the MIT license — attribution is required.

Scroll to Top