ESP32-C3 Dev Kit In-Circuit Debugging

Adding In-Circuit debugging to the ESP32-C3 Dev Kit.

Using an old USB cable/breakout I had lying around. You’ll probably want to use USB-C. 😉

Attach nothing to the Dev Kit USB connector.

Also, I use a lot of power and grounds.


Debugging (at a break point) in VSCode on Ubuntu.


> The ESP32-C3 is said to be the successor to the ESP-8266. And like the 8266 is limited in Programmable IO compared with the ESP-32. This USB method of In-Circuit debugging uses two processor PIO pins instead of the four pins needed for JTAG debugging–freeing up two pins for general use.

> In the processor’s low power modes, the USB interface is powered down and USB debugging is not possible. If you need to debug while in one of the two low power modes, you should use the JTAG interface.

> Visual Studio Code operates at the source code level and is able to use this method of debugging to set breakpoints, examine variables and the stack, single-step high level source code and flash the device. But VSCode has no knowledge of the processor details (e.g. CPU internal registers, memory configuration–access and format). As a result single-stepping through assembly code while examining CPU registers, flags and memory is not possible.
But the detailed knowledge gained while single-stepping assembly code would be an advantage in learning the ESP32-C3’s risc-v architecture. VSCode teamed with PlatformIO could provide this capability and I have filed an issue to that purpose on PlatformIO’s github.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s