🛠 Console et flash par USB natif (USB Serial/JTAG)

ESP32-C6 · debutant · Schéma : IMG-esp32-c6-debutant-2-c6-usb-serial-jtag-console.svg — Contrôleur USB Serial/JTAG du C6 connecté aux broches GPIO12 (D−) et GPIO13 (D+) vers un port USB-C, avec les boutons BOOT (GPIO9) et RESET.

This tutorial teaches you how to use the ESP32-C6's native USB-C port without an external serial bridge. The chip integrates a USB 2.0 full speed (12 Mbit/s) USB Serial/JTAG controller on GPIO12 and GPIO13: a single USB connection provides the CDC console, flashing, and JTAG/GDB debugging all at once. How to use it: plug in the USB-C cable, hold BOOT (GPIO9), then press RESET to enter download mode, and flash using esptool or idf.py flash. On the DevKitC-1, there are two USB-C ports, and current measurement jumpers allow you to observe power consumption. A key pitfall to know from the start: this USB connection is a debug peripheral, NOT a USB-OTG controller or host — USB HID projects copied from the ESP32-S2 or S3 are not portable to the C6. Another surprising detail: as soon as the USB Serial/JTAG is active, GPIO12 and GPIO13 disappear from the pool of GPIOs available for your project. Final exercise: display a startup message on the console at 115200 bauds from an Arduino sketch (using the ESP32C6 Dev Module board under arduino-esp32 v3.x), where Serial already uses this native USB.

Other tutorials for this board

Code examples for this board

← Back to the board 🛠 All tutorials