Difficulty with getting ESP32-C6-MINI running...

carbeque
Posts: 5
Joined: Thu Dec 05, 2024 3:13 am

Difficulty with getting ESP32-C6-MINI running...

Postby carbeque » Thu Dec 05, 2024 4:24 am

Hi everyone,

I designed a board that uses this ESP32-C6:
https://www.digikey.com/en/products/det ... 4/17885794
and the schematic (regarding IO0, IO9, EN, and a USB-C connector) is exactly the same as the Adafruit Feather ESP32-C6:
https://cdn-learn.adafruit.com/assets/a ... _schem.png
In fact, I literally did a Save As from that board layout, including the ESP32 footprint. My schematic is attached to this post.

I did add a solder-jumperable connection so the boot switch can activate either IO0 or IO9, since Adafruit uses IO9 and other ESP designs use IO0 to go into boot mode. I did verify that when I connect a USB cable to my board, my 3.3V regulator is putting out 3.28V, and it's rated for 1A, so I should be good in that department:
https://www.digikey.com/en/products/det ... E/10212098
I also verified that when my reset and boot switches aren't pressed, those pins are at 3.3V. I initially solder-jumpered it to connect IO0 to ground when the boot button is pressed.

I'm running Arduino IDE 2.3.3, with Espressif's ESP32 v3.0.7 board files installed. I'm using the "ESP32C6 Dev Module" as my board.

Disclaimer: I know just enough to be dangerous with this stuff... I apologize if I'm missing something obvious. I hope that's the case, because I literally spent 4 hours last night trying to get this chip to talk! Obvious is good at this point. ;-) I do know enough to make sure baud rates and COM ports are set correctly, and I have done ~15 projects involving Arduino and CircuitPython, but I'm still a bit shaky on how bootloaders, etc. work... so this is tough for me to troubleshoot.

So, here's the weird stuff:
1) When I initially powered it up, it was in some kind of "boot loop" that wouldn't stop cycling unless (of course) I held the reset button down. I went ahead and configured the Arduino IDE properly and just kept trying and trying as it was resetting and happened to catch it between resets when the IDE was ready to write the file, at which point it did write okay (according to the IDE).
2) At no point after that could I get anything to really work. I did get ONE little thing to work: a simple sketch that serves up a basic web page. However, instead of it being at the SSID that I specified, it was at some default SSID, but it did show my content (text saying "Welcome to Wonderpuck").
3) When I did get something to come through the serial console, it occasionally spit out the text "01:25:02.490 -> ESP-ROM:esp32c6-20220919", which (according to ChatGPT) I understand to mean that it's stuck in bootloader mode.

I did play with Adafruit's web-based ESPTool to attempt to erase flash, re-load a bootloader and partition table from Espressif, and other things that I found both online and on ChatGPT. I even tried loading Adafruit's bootloader from the Feather ESP32-C6. Nothing has made a difference. I just don't understand how an identically-wired ESP isn't behaving correctly. I assembled two boards, using solder paste stencils and my vapor phase reflow oven, quality appears to be perfect, and both boards behave exactly the same way.

Any ideas out there? I'm making something cool to give away for Christmas gifts, and I gotta get this stuff figured out! ;-)

Thanks! I hope I provided sufficient detail that someone in the know can efficiently give me that nugget of truth I'm missing!

-Rodney
Attachments
SCHEMATIC, LOWER BOARD R01.pdf
(263.86 KiB) Downloaded 222 times

Sprite
Espressif staff
Espressif staff
Posts: 10609
Joined: Thu Nov 26, 2015 4:08 am

Re: Difficulty with getting ESP32-C6-MINI running...

Postby Sprite » Thu Dec 05, 2024 8:34 am

So, here's the weird stuff:
1) When I initially powered it up, it was in some kind of "boot loop" that wouldn't stop cycling unless (of course) I held the reset button down. I went ahead and configured the Arduino IDE properly and just kept trying and trying as it was resetting and happened to catch it between resets when the IDE was ready to write the file, at which point it did write okay (according to the IDE).
That is what it does: it'll try to boot from flash, cannot because the flash is empty, then will reset to try again. As the USB also resets, it's a bit tricky to get into download mode. Fix is to make GPIO9 low and to reset the module: that will force download mode and will always allow you to flash the module in peace.
2) At no point after that could I get anything to really work. I did get ONE little thing to work: a simple sketch that serves up a basic web page. However, instead of it being at the SSID that I specified, it was at some default SSID, but it did show my content (text saying "Welcome to Wonderpuck").
That I cannot explain.
3) When I did get something to come through the serial console, it occasionally spit out the text "01:25:02.490 -> ESP-ROM:esp32c6-20220919", which (according to ChatGPT) I understand to mean that it's stuck in bootloader mode.
It depends. It's the first line it spits out after reset/brownout/panic/...; without the surrounding text there's not much to say about it.

FWIW, I can't see anything in your schematic that'd lead to weirdness; it looks OK.

carbeque
Posts: 5
Joined: Thu Dec 05, 2024 3:13 am

Re: Difficulty with getting ESP32-C6-MINI running...

Postby carbeque » Thu Dec 05, 2024 2:16 pm

Thanks for the reply!
3) When I did get something to come through the serial console, it occasionally spit out the text "01:25:02.490 -> ESP-ROM:esp32c6-20220919", which (according to ChatGPT) I understand to mean that it's stuck in bootloader mode.
It depends. It's the first line it spits out after reset/brownout/panic/...; without the surrounding text there's not much to say about it.
There was no surrounding text. That line is the only thing it spit out. When I copied and pasted that line into ChatGPT, it told me that meant the uC was stuck in bootloader mode, which leads me to a question: Is there any other pin or combination of pins on this device that, if pulled low or high, would keep me in bootloader mode? Clearly the USB connection is good, power is good, I've tested that 0 and 9 aren't being pulled low by anything, and I've tested with a meter that at least 0 pulls down when I push the button. I'm stumped.

One other point: I'm using a Multicore Solders Vaporette vapor phase heating device with Galden HT-200 (boils at 200C) PFPE fluid. This module isn't supposed to see higher than a 3C/sec temperature ramp rate, and it was probably faster than that, but it never exceeded 200C, and was only there for about 10 seconds before I pulled the board out of the vapor. All of that said, I can't imagine a soldering process making a module stick in bootloader mode... but I thought I'd throw it out there for consideration.
Here are some pics of this reflow "oven" at work, from back in 2007 or so: http://www.rs-autosport.com/dashcomp_prototype.htm

Question: Can someone prescribe a known-good process (including wiping flash, loading binaries to specific locations, etc. if need be) that I can try? I figure there's gotta be some path I can go down that would undo any changes I've made and make this work, assuming there's no hardware issue causing it to get stuck.

Also, here are my settings in Arduino. Do any of those need changed?
Screenshot 2024-12-05 061338.png
Screenshot 2024-12-05 061338.png (166.44 KiB) Viewed 6508 times
Thanks everyone!

carbeque
Posts: 5
Joined: Thu Dec 05, 2024 3:13 am

Re: Difficulty with getting ESP32-C6-MINI running...

Postby carbeque » Thu Dec 05, 2024 3:18 pm

One more thing: In my design, I'm tying MTMS, IO8, and IO15 together in a net called ALARM and actuating that line with my RTC chip. I don't recall why I tied all of those pins together, but it wasn't a great idea. According to the ESP manual, those are all supposed to float, maybe even relative to each other? Even though the RTC's MFP (multi-function pin) is supposed to be open collector, for some reason, that net is being pulled down on my board. Of course the traces that connect these pins together are under the ESP, so I'll put one more together with that net removed and see if that helps. If so, I'm going to revise the design to leave all of the strapping pins alone. I'm not even using IO 1-4...

Does this seem like a likely culprit?

lbernstone
Posts: 1132
Joined: Mon Jul 22, 2019 3:20 pm

Re: Difficulty with getting ESP32-C6-MINI running...

Postby lbernstone » Thu Dec 05, 2024 5:50 pm

I can't see what you have gpio8 tied to, but it should be held high at boot. gpio8 and 9 are the strapping pins. If you are going to build your own boards, get used to reading the datasheets or you are sure to run into some gotchas.

carbeque
Posts: 5
Joined: Thu Dec 05, 2024 3:13 am

Re: Difficulty with getting ESP32-C6-MINI running...

Postby carbeque » Fri Dec 06, 2024 7:40 am

I can't see what you have gpio8 tied to, but it should be held high at boot. gpio8 and 9 are the strapping pins. If you are going to build your own boards, get used to reading the datasheets or you are sure to run into some gotchas.
Well, I modified a bare board as shown below (GPIO pin numbers on pads) to take those pins off of the ALARM net. I left 8 floating, which is exactly what Adafruit did on their board, and it's still behaving the same way. I wish I would've done the trace cut further away so I could stick a pullup wire to it, but now I'm warming up the ol' vapor phase to attempt to pull the module off of one of my original two boards so I can modify the traces differently and attempt to re-reflow the module back on... nothing to lose at this point! I sure wish I would've brought them all out to solder jumpers, at least!
Screenshot 2024-12-05 233901.png
Screenshot 2024-12-05 233901.png (152.08 KiB) Viewed 6495 times

carbeque
Posts: 5
Joined: Thu Dec 05, 2024 3:13 am

Re: Difficulty with getting ESP32-C6-MINI running...

Postby carbeque » Fri Dec 06, 2024 8:44 am

Alright... I successfully removed the module from one of my boards, reworked the board so I could put a pullup on IO8, then re-reflowed it. Same result. It's still spitting out "ESP-ROM:esp32c6-20220919" regardless of resetting with IO9 low or high...

I tried running the Adafruit Web-based ESPTool, and this is what came out. Does this tell a story at all?

ESP Web Flasher loaded.
Connecting...
Connected successfully.
Try hard reset.
Chip type ESP32-C6
Connected to ESP32-C6
MAC Address: 8C:BF:EA:B4:AF:C4
Uploading stub...
Running stub...
Stub is now running...
Detecting Flash Size
FlashId: 0x164020
Flash Manufacturer: 20
Flash Device: 4016
Auto-detected Flash size: 4MB

Thanks,

-Rodney

lbernstone
Posts: 1132
Joined: Mon Jul 22, 2019 3:20 pm

Re: Difficulty with getting ESP32-C6-MINI running...

Postby lbernstone » Fri Dec 06, 2024 6:06 pm

Assuming you are uploading on USB, you need to set USB-CDC to enabled. The first time you upload with that setting, you will need to hold the boot pin low, but after that, the board will be able to signal over USB that it is going to upload, so you won't need to hold the pin down. You probably also want to enable the jtag adapter over usb, so you can see the output.
The only other thing that affects the ability to upload (or boot even) is the RC timer circuit on the enable pin. Your 5k/1uF combo is a bit shorter than the 10k/1uF recommended, but I think it should be adequate.
Not sure if I already posted it, but the Espressif reference design for ESP32-C6 is here

eggmister
Posts: 1
Joined: Sun Aug 17, 2025 12:14 pm

Re: Difficulty with getting ESP32-C6-MINI running...

Postby eggmister » Sun Aug 17, 2025 12:17 pm

i've found the same issue that they are hard to do the initial programming sometimes.

i have found that to get them into bootloader mode i didn't need to hold the button down, and leave the unit continuously resetting itself.

i think used the adafruit tool at https://adafruit.github.io/Adafruit_WebSerial_ESPTool/ to connect because it remembers the com port. Once it connects it will stop the device resetting itself. I can then disconnect and the device is in programming mode

i then connect the ESPhome tool https://web.esphome.io/ and it can connect and program

what a faff!

Who is online

Users browsing this forum: No registered users and 1 guest