Like many microcontrollers, the ESP8266 and ESP32 series contain an in-Silicon bootloader which can be initiated at chip reset by holding a pin low at the moment of reset.
Documentation is not helped by less than common terms (like EXTRSTB for a pin that is really a /RST, and the EN pin which seems to be used interchangeably as a /reset pin). The other relevant pin is known as GPIO00, but can be thought of as a /BOOT bin (often labelled IO00 on PCBs).
Automatic bootloader initiation
The firmware is uploaded using ordinary RS232/TTL, and it is possible to use modem control signals to control the /RST (EXTRSTB) and /BOOT (GPIO00 or IO0) pins, indeed the common convention is to use RS232 signals RTS for resetting the MCU, and DTR for boot selection.
So, it is possible to connect RS232/TTL /RTS to /RST and /DTR to /BOOT, and ESPTOOL will automatically initiate the boot loader when accessing the chip.
Above is a simulation of that type of direct connection. The RTS/DTR scenario is that from ESPTOOL, but it can be seen that even if the RTS transition was delayed somewhat the /BOOT pin is low and when /RST rises the chip will initiate the bootloader. The critical timing is that /BOOT is low when /RST transitions from low to high. Continue reading ESP8266, ESP32 reset – the (ugly) detail
Last update: 28th March, 2022, 8:29 AM