Page 1 of 1

Why do I keep popping my XIOA ESP32-C3's?

Posted: Thu Sep 04, 2025 4:27 pm
by Sunbelt57
I've popped 3 just today so far. Here's my flash script:

Code: Select all

idf.py -p /dev/ttyAMC0 flash
I'm trying to use the espnow example: esp-idf/examples/wifi/espnow_basic_example-master/espnow_basic_slave
All I know is that after I flash it, I try to run the monitor program or get onto the serial port and nothing happens. I've had this happen to 2 other XIOA chips too.

Re: Why do I keep popping my XIOA ESP32-C3's?

Posted: Thu Sep 04, 2025 4:29 pm
by Sunbelt57
Actually, it's supposed to be /dev/ttyACM0

Re: Why do I keep popping my XIOA ESP32-C3's?

Posted: Fri Sep 05, 2025 12:28 am
by Sprite
Have you tried resetting the board after you flash it? If you get them into bootloader mode using the 'boot' button, that is needed to get them running again.

Re: Why do I keep popping my XIOA ESP32-C3's?

Posted: Sun Sep 07, 2025 3:53 pm
by Sunbelt57
It seems you have to 1) hold the boot button down, 2) press and release the reset button, 3) release the boot button.

Funny thing is, I never had to do that before. Something must have changed. I have several others I could try.

Re: Why do I keep popping my XIOA ESP32-C3's?

Posted: Mon Sep 08, 2025 2:43 am
by Sprite
Potentially you're trying to reconfigure GPIO18/19. Those are the pins the USB connection runs on, so if you reconfigure those, you can't put the chip into download mode via USB anymore.

Re: Why do I keep popping my XIOA ESP32-C3's?

Posted: Tue Sep 09, 2025 8:41 pm
by Sunbelt57
Potentially you're trying to reconfigure GPIO18/19. Those are the pins the USB connection runs on, so if you reconfigure those, you can't put the chip into download mode via USB anymore.
Not sure I understand. I'm not doing anything with GPIO18/19. At least not explicitly in my code.

Re: Why do I keep popping my XIOA ESP32-C3's?

Posted: Thu Sep 18, 2025 1:06 pm
by RandomInternetGuy
It seems you have to 1) hold the boot button down, 2) press and release the reset button, 3) release the boot button.

Funny thing is, I never had to do that before. Something must have changed. I have several others I could try.
Once you look at the code that manages this, it's easy to remember this button salute.

1 sets a strapping pin - it's just a GPIO register that's configured as an input.
2 sets and releases the reset line. The SOC is then off to the races. Just before it does a jump into user flash, it polls that GPIO register with the boot button. There's a line in the boot ROM that's essentially:
if (button_held) goto boot room else goto flash monitor/downloader
3 is so your finger isn't on that button forever. :-)

There's no magic of using that pin for an address line or anything that clever.


Back to the original question, some boards do dumb things with the reset circuit that cause them to be unreliable with the normal esptool-generated reset. There are various states you can get the hardware into, such as remapping the GPIO for the boot console or generally wedging the USB/JTAG controller, that can slso get these stuck. Whacking the reset line is the sure thing.