Skip to content

ESP32 automatic reset into bootloader fails due to missing capacitor on RESET (EN) signal #1

@cdwilson

Description

@cdwilson

Issue

I get an error message like the following when trying to program the MicroMod ESP32 Processor board with esptool.py using the automatic reset hardware built onto the board:

esptool.py v3.3
Serial port /dev/cu.usbserial-2130
Connecting......................................

A fatal error occurred: Failed to connect to Espressif device: Wrong boot mode detected (0x13)! The chip needs to be in download mode.
For troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html

Solution

I think the board is missing a capacitor between the RESET# signal (connected to ESP32 CHIP_PU/EN) and GND. This capacitor is required for the automatic reset circuit to work reliably.

image

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

adding a capacitor between the EN pin and GND (in the 1uF-10uF range) is necessary for the reset circuitry to work reliably

Rework

Here's some photos of the rework I did to get things working in case somebody comes across this issue in the future.

image

image

After adding a 1 uF capacitor between the RESET# signal and GND, programming via esptool.py works correctly:

esptool.py v3.3
Serial port /dev/cu.usbserial-2130
Connecting....
Detecting chip type... Unsupported detection protocol, switching and trying again...
Connecting....
Detecting chip type... ESP32
Chip is ESP32-D0WDQ6-V3 (revision 3)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 24:6f:28:8f:5d:bc
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Auto-detected Flash size: 16MB
Flash will be erased from 0x00001000 to 0x00007fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x00010000 to 0x00033fff...
Flash params set to 0x0240
Wrote 32768 bytes at 0x00001000 in 0.5 seconds (531.7 kbit/s)...
Hash of data verified.
Wrote 16384 bytes at 0x00008000 in 0.2 seconds (582.0 kbit/s)...
Hash of data verified.
Wrote 147456 bytes at 0x00010000 in 2.0 seconds (595.1 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions