Page 1 of 1
ESP32-C3-MINI-1 automatic upload mode
Posted: Thu Nov 03, 2022 12:31 pm
by Abujajuba
Hi there!
I am designing a pcb at the moment using the ESP32-C3-MINI-1.
One thing I am wondering is, how to design the board in such a way, that I am able to upload my application without pressing the boot and enable buttons without using an external USB to Serial CP2102 or similar.
For the ESP32-WROOM-32D it was possible to use a configuration of 2 transistors, which brought the ESP into upload mode.
I haven't seen anything similar for the ESP32-C3-MINI without a USB to serial adapter.
How would this be achieved here?
I'm thankful for any assistance.
Re: ESP32-C3-MINI-1 automatic upload mode
Posted: Fri Nov 04, 2022 6:37 am
by ESP_Sprite
If you were to use something like a CP2102 or other USB-serial chip, you would use exactly the same circuit but with IO0 replaced with IO0.
If you're intending to use GPIO18/19 to program the ESP32C3 directly, you generally don't need the auto-reset circuit as that functionality is built-in. (But do note that you may want to have *some* way to manually put the C3 into download mode while developing if you do something that stops the internal USB-serial-JTAG from working, like accidentally configuring the USB pins as GPIOs.)
Re: ESP32-C3-MINI-1 automatic upload mode
Posted: Fri Nov 04, 2022 6:49 am
by felmue
Hello @ESP_Sprite
I think you meant to write `... same circuit but with IO0 replaced with IO9.`
Thanks
Felix
Re: ESP32-C3-MINI-1 automatic upload mode
Posted: Fri Nov 04, 2022 6:05 pm
by Abujajuba
Thanks for the replies!
That already answers one questions but brings another one up
Auto uploading without a CP2102 would be my goal.
How could that *some* way look like to bring the ESP into download mode once I accidentally made the internal USB-Serial-JTAG stop working? Do I need to provide some buttons in advance for this case, or would any circuit (similar to the one posted in the initial question) also be able to do the job?
Thank you!
Re: ESP32-C3-MINI-1 automatic upload mode
Posted: Sat Nov 05, 2022 2:56 am
by ESP_Sprite
I personally simply make sure GPIO9 is accessible on my devboard (as a testpad, or as an exposed pad on the module) but you can also make it a button if you want: in devices where I need a button anyway I tend to tie it to GPIO9 specifically for that reason. In theory you won't ever need it if you take even the smallest amount of care not to select the wrong GPIO, but you also wouldn't want to have to throw away the board simply because you did.