Electronics > Microcontrollers

ESP32-WROOM-32U Not Flashing

(1/1)

machinehum:
Any help would be appreciated. I've tried several different chips with the same error.



Here is the log: https://pastebin.com/raw/VAwvwNb0

bookaboo:
Where are those logs from? They are quite verbose.
Have you tried flashing direct from idf.py?
Can you erase ok?
Check the datasheet for bootstrap pins.

tooki:
Just as a test, can you flash it using the Arduino IDE?

I’d add a much larger capacitor (1-10uF) in parallel to C14. This solves a common problem where an ESP32 fails to enter flash upload mode. (The problem occurs when the IO0 bootstrap pin is asserted after the ESP is released from reset. A large cap on EN holds the EN line low for longer, holding the ESP32 in reset long enough for IO0 to be asserted.) I’m not convinced this is the issue here, but it’s something you can easily do to ensure it’s not going to cause issues.


--- Quote from: bookaboo on September 23, 2023, 04:44:41 am ---Where are those logs from? They are quite verbose.

--- End quote ---
I think it’s ESP-IDF (Espressif’s native programming environment).


--- Quote from: bookaboo on September 23, 2023, 04:44:41 am ---Check the datasheet for bootstrap pins.

--- End quote ---
IO0 is the main bootstrap mode pin. Holding it low while the ESP32 is released from reset tells it to enter programming mode.
EN is the ESP32’s reset line.
IO2 is also a bootstrap pin which must be low to enable programming mode, and some reference designs (like the ESP32-LyraT and ES32-WROVER-KIT) use a third bootstrap transistor to pull it low. But this isn’t strictly necessary, and most designs leave IO2 floating, which is fine due to its integrated pull-down resistor. However, if IO2 is used as a GPIO pin and some external circuit keeps it pulled high, this will interfere. That isn’t the case here, since programming is able to begin.
IO12 is the other critical bootstrapping pin. It sets the voltage of the integrated LDO. If it’s pulled high, the LDO will switch to 1.8V, which will cause problems with 3.3V flash memory. The WROOM module uses a 3.3V flash chip, so IO12 must be low or floating on boot.

IO5 is a bootstrapping pin which should be high (or floating, due to internal pull-up) on boot. If the circuit is holding it low, that can cause problems, as it affects IO5’s subsequent output mode (this pin outputs PWM a during startup).

See:
https://docs.espressif.com/projects/esptool/en/latest/esp32/advanced-topics/boot-mode-selection.html

and pages 12-13 of:
https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32e_esp32-wroom-32ue_datasheet_en.pdf

machinehum:
Thanks for all this info; I started looking into this today. Just changed C14 to 1uF with no change.

I'll strike the trace connecting IO12, if that doesn't work I'm out of ideas.

Navigation

[0] Message Index

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod