My own ESP32 board needs the BOOT button for every upload – how do dev boards use DTR/RTS?
Proud moment, I designed my first PCB! ESP32-WROOM-32E, CP2102N for USB, AMS1117, two buttons (EN and BOOT). It works, it’s sending greenhouse readings to Hermetry. BUT to upload a sketch I have to hold BOOT, press EN, release, then upload. My bought DevKit boards never need that.
I connected DTR of the CP2102N to EN and RTS to GPIO0 directly, because I saw DTR/RTS on a pinout somewhere. Now the board also resets every time I open the serial monitor and sometimes it just sits in download mode after reset. What is the dev board doing that I’m not?
Maybe try a lower upload speed in the IDE? That fixed some upload errors for me.
Do you have the two transistors between DTR/RTS and EN/IO0? Direct wires won’t do the sequence.
Aoife has it. Every DevKit has two NPN transistors (or one UMH3N dual) cross-coupled like this:
DTR ──[10k]── base Q1 Q1: collector → EN, emitter → RTS
RTS ──[10k]── base Q2 Q2: collector → IO0, emitter → DTR
EN or IO0 only gets pulled low when DTR and RTS are in opposite states. When both are asserted together (which is what many serial terminals do when they open the port), nothing happens. esptool toggles them in a sequence that holds IO0 low while EN goes high, so the chip starts in download mode, then releases both to run.
With your direct wires, any change of either line resets or straps the chip, hence the resets when the monitor opens and the stuck download mode.
Also add 10k pull-up on EN plus 1 uF to ground. Without the cap, EN can come up before the 3.3 V rail is stable and you’ll get random boot failures on power-up, especially with the AMS1117 which is slow.
The EN capacitor saved us too. Our line counter boards would boot-loop maybe one power-up in twenty without it.
rev 2 boards arrived with two MMBT3904 and the 1 uF on EN. Uploads are automatic now and opening the monitor no longer resets it. I bodged rev 1 with transistors on wires, ugly but works. Thanks Eric, and Aoife for spotting it straight away.
- You must be logged in to reply to this topic.
Join the conversation
Sign in to ask and answer, like helpful posts and mark the reply that solved your problem. Every contribution earns points and levels.

