Xiao esp32c3 won't upload programs unless I'm in bootloader mode

Is this the expected operation ? Sure is annoying. Arduino IDE (2.02 & 1.8.55)

Seriously ! Two tiny buttons in sequence for every load ?? And then another tiny button before the monitor will come active ?? After a couple of days of this I’m beat ! Is there an update that does away with this lunacy ? I’ve used ESP32’s before and this is NOT an ESP32 thing. No way I’m going to do any level of development with this constant hurdle. Is there an update ???

You may need to update the bootloader… I’ve seen some posts about that.
I push BL and hold then push RESET , then release all. Go click upload… works every time?
pretty sure if update the bootloader it will work like the Xiao Nrf52840 Sense.
search it in the mag.


Well I have updated the bootloader using this Getting Started with Seeed Studio XIAO ESP32C3 - Seeed Wiki but it still requires the multi button sequence that gets very old when actually trying to do something. Is there an update that allows simply loading without all the button folderol ?? None of the other devices of this ilk I’ve used require such a thing and that ilk includes several other ESP32 versions. This is a great and wonderful implementation but all the button pushing is gonna put it on a shelf.

Yea, I’m feeling your pita… I updated my test unit and it still needs me to push the buttons also, Strange as well when it finishes uploading… and Resets (well it say’s it’s resetting RTS. ) but it never does I must manually reset it to start executing the revised code download. Something is WACK!
May need to CAD up a reset & boot helmet like the Xiao nRF52840 BLE Sense Reset Button(pic2) Helemet. LOL :military_helmet: :grinning:
more testing… may jump over to VS_code and try it there.

GL :-p

Well OK. Notes for anyone considering using the SEED ESP32C3 in the future. The noted switches sequence that MUST be used at every upload sequence is ridiculous and will wear out those tiny low cost switches during the course of any normal development process (if not your fingers and patience).
Also note that there is no onboard RF antenna and so the WiFi and Bluetooth will not function without an additional antenna. The included antenna is 3 times the size of the chip.
This otherwise is a fine piece of hardware at an excellent price. Too bad the actual implementation didn’t follow thru ! The 3 I bought are on the shelf unless and until something changes.

Hey there,

Same frustration here, would love to see the manufactures response to this, since this is not mentioned anywhere on there website. Also on other tutorials, this procedure is not mentioned. I was wondering if this is an issue related to Arduino and the way it uses the upload tool. That is why I’ve also tested it with PlatformIO, but also no luck there.

I am wondering If there has been a change in the bootloader that caused this. Again, I would like to see some response of Seeedstudio to shine light on this topic. The waiting game I suppose…

Yea, I’d sure like to see them address the issue too, for me it’s a show stopper. It’s not present in other ESP’s I’ve used. During development I’ll do a zillion uploads and I’m just not going thru the button sequencing required a zillion times no matter how much I like the hardware.
FWIW Before I ordered I asked the question about there being an onboard antenna like many (all?) other ESP32s have and never got a response on that so I suspect they just clam up if it’s something they don’t want to fess up to. Probably a space issue being the device is so small. Understandable. The antenna is not really a big deal to me but they could have answered the question.

Hi @PJ_Glasso
I think I have the same issue with my XIAO nRF52840 Sense. I need to push the reset button twice before uploading the code. (not sure if that is called opening bootloader) Otherwise the port selection option is greyed out. Can you confirm if you had the same issue and fixed it by updating bootloader? (feels like asking a contact method from you but not sure if its under community guidelines :
:upside_down_face: )

Very similar, excessive button pushing requirements. I’ve only seen one alternate bootloader (suggested above) and that did nothing for the issue at hand.
Private conversations are OK but sharing information with all concerned is really the purpose of this forum. When we talk privately others can’t benefit from the info exchanged.

No I think it’s called DFU mode for those chips.
Anyway Wrong thread to ask on also, this is for the Xiao ESP32c3 which is WAYYY different than the Sense version of NRF52 series.
No way around the button dance to upload code to the ESP32c3.
GL :-p

Well. I only bought ESP32C3s to see if they would be usable, mostly like the pin compatibility to Xiao & their small footprint. There are other less obnoxious ESP32s that I use. Anyone wanna trade 3 ESP32C3s for 3 Xiaos ?

Don’t trade your boards away just yet…

I fixed the issue. I have created a repository with a guide on how to do it. Please contribute if necessary. I created it in a way that other board fixes can be addressed in this repo as well.

Since I’ve fixed it I’m in love with these boards again :wink:

No joy continues ! Life is too short to fool endlessly with inferior products especially those shipped in INCOMPLETE VERSION OF SOFTWARE. My offer to trade still stands…anyone ?

Simple, but dumb suggestion here, while I’m waiting on delivery of one of these, I’ve noted that often when I’ve found myself unable to push code without resetting to DFU mode, it’s my own stupid fault, and is caused by my having deployed software to the board that doesn’t allow the processor to go into AND OUT OF the default loop() often enough.
Try deploying the simplest blinky code to the processor, and see if this clears the problem - if so, you’ve got a hang or infinite loop in your code, and that’s preventing it from getting to the “do I have a request for update” section of the onboard code.

Thanks for the suggestion but that’s not the case. Simply this device has not been implemented properly. Doesn’t matter these are and will remain on the shelf. Life is way to short to deal with ignorant designs. Sorry I wasted my money.

Unfortunately, I have the same problem and I could not upload the code to the board. I tried different methods and different OS but I don’t understand why the problem is not solved. Every time after uploading the code, the board enters the bootloader mode.

You can try updating your xiao with a new firmware, which will most likely solve your problem!

Did that, as stated by me and others in this thread. The available firmware did not accomplish.

1 Like

After doing this, the problem was not solved.