First flash on C3/C6 — and which USB port to use

The bring-up path for ESP32-C3-DevKitM-1 and ESP32-C6-DevKitC-1: the charging-cable trap, download mode, and the C6's two Type-C ports that look identical but do different jobs.

Question this page answers: "I have a C3-DevKitM-1 or C6-DevKitC-1 — how do I flash it for the first time, and (on the C6) which of the two USB ports do I plug into?"

Both boards start in the same place: Espressif's official ESP-IDF Get Started — both board guides hand you there for toolchain setup and the first example. This page covers the board-specific decisions the guides state.

Before you plug in: the cable trap

The C3 guide's own note: "Be sure to use an appropriate USB cable. Some cables are for charging only and do not provide the needed data lines nor work for programming the boards." A charge-only cable powers the board (LED on) and then flashing silently fails. Use a known data cable. Required hardware per the guides: USB 2.0 cable, Standard-A to Micro-B (C3) or Type-C (C6), and a computer running Windows, Linux or macOS.

C3-DevKitM-1: one port, no decision

Exactly one micro-USB port, wired through the USB-to-UART bridge (up to 3 Mbps). Power, flashing and serial console all go through it. The chip's native USB controller exists but is not wired to a connector — its D-/D+ sit on pins IO18/IO19 (J3 contacts 13/14); leave them alone unless you know why you're wiring them.

If auto-sync fails during flashing: hold BOOT, tap RST, release BOOT — Firmware Download mode, per the guide's component description.

C6-DevKitC-1: two ports that look identical, different jobs

Port (guide's name)Wired toOfficially used for
ESP32-C6 USB Type-C Portthe chip's USB Serial/JTAG controller (USB 2.0 full speed, ≤12 Mbps, no 480 Mbps mode)power, flashing, CDC-ACM serial console, JTAG debugging
USB Type-C to UART Porton-board USB-to-UART bridge (up to 3 Mbps)power, flashing, serial communication via the bridge

How to pick:

  • Either port can power and flash the board — both roles are official. Start with either; if your tool cannot see the chip on one, try the other before assuming failure.
  • Need the native CDC-ACM console or JTAG? Only the native port ("ESP32-C6 USB Type-C Port"). Per the ESP-IDF guide (v5.5.6), the controller's CDC-ACM portion implements a serial port connected directly to the host — no external USB-UART bridge involved — and it is a fixed-function USB device implemented entirely in hardware: it cannot be reconfigured to anything other than serial port and JTAG debugging, unlike the USB OTG controllers in some other ESP chips.
  • Serial console the classic way? The UART-bridge port behaves like every other Espressif board.
  • Silkscreen labels on the board identify which port is which — check the component diagram in the guide if unsure.

Download mode, if auto-sync fails: hold BOOT, tap RST (same pattern as C3; both guides describe the Boot button as the download button).

What to expect, and where failure exits

StepExpectedIf it fails
USB connectedpower LED lights (5 V on C3, 3.3 V on C6) — this only proves power, never data: a charge-only cable lights it toono LED at all → check the cable/port; LED on but no device below → charge-only cable, swap for a known data cable
Serial/USB device appears on the computerbridge (either board) or native device (C6 native port)driver/toolchain setup — ESP-IDF Get Started
First flash (IDF example)tool resets the chip, flashes, runshold BOOT + tap RST for manual download mode
RGB LED behavioronly lights if your firmware drives GPIO8the LED is addressable (WS2812-style), not on/off — see the board pages

What this page cannot tell you

  • Which physical port label your particular C6 board revision silkscreens — v1.1/v1.2 production differences are tracked by PW batch number, not port naming; the component diagram in each revision's guide is the reference.
  • Windows driver specifics for the bridge chip — ESP-IDF Get Started territory.

Boards

Sources