XIAO ESP32C3 wont program without manually entering bootloader mode

I just received two XIAO ESP32C3 and I can not get them to auto-program then reset. Every time I need to program it I have to enter boot-mode. Once programmed it does not reset and run the program, just stays in boot mode till manual reset button is pressed.
I tried reflashing the bootloader as described in the Wiki but made no difference.

As an experiment, I hooked up an AI-thinker ESP32C3 dev-board and wired a broken out USB lead direct to the board power and USB lines (GPIO18 & 19). I left Arduino settings as an XIAO (both are 4Mb flash) and everything worked as expected. It programmed fine and USB serial was also good. If this programs OK, its hard to see why neither of my XIAO’s will do the same.

I have tried Arduino 1.8.19 and 2.04 and Platform-IO.
All platforms can program the ESP32C3 dev board when they think its an XIAO but none of them will program the actual XIAO without it being manually put in bootloader mode.

Does anyone have any ideas how to get the XIAO’s to program/reset correctly?

I tried out XIAO ESP32C3 as well and have the same issue. According to some design documentation that I saw, some USB commands must be sent to trigger the auto-reset:

Automatic Bootloader​​ esptool.py resets ESP32 -C3 automatically by asserting DTR and RTS control lines of the USB to serial converter chip, i.e., FTDI, CP210x, …

Hi Honvi,
Thanks for the info. That may be the case for boards with a USB to serial chip (FTDI, CP210x) but the XIAO ESP32C3 uses the inbuilt native USB port so it is not directly relevant in this case.
Other ESP32C3 boards I have tried program OK using the inbuilt USB port so it seems to indicate some error condition with the XIAO.

Great article! I am also having the same problem!

I have given up on the XIAO. The chip data sheet shows the method, other boards with the same chip can be programmed by the native USB without any problems so since seeed wont actually provide an answer its left for the user to guess. Maybe a bad batch of cheap chips or an error in the board circuit design, who knows… It is just not worth the time to investigate more.
Even adding extra resistors to ensure strapping pins are correct does not help so I changed my design to use ESPC3-12F instead. Native USB programming works perfectly, just as the data sheet shows.
Good luck…

From the same reason I am leaving the XIAO too - both the ESP32 and the Seeeduino

It sucks there’s no response. Seems the hardware is flawed. I guess I will also dump Seeed XIAO junk and look for something reliable, ideally where posts like this get answers.

Hello, I am sorry my parters do not give you feedback, our xiao esp32c3 do not use an external serial chip, we design it use the JTAG which esp32c3 core have, so you need to enter boot mode to flash