Introduction: Automatic ESP-01 Programming
I wrote this guide because I found many articles about programming ESP-01 but all of them require manual actions like switch from programming to running or pressing reset button.
Using a FTDI board with RTS and DTR pins I made a programmer that automatically switch in programming mode, reset when needed and then go back to running mode like the ESP-WROOM-32 board.
With this project you can simply connect ESP-01 to Arduino IDE and press UPLOAD.
Requirements:
- FTDI board with RTS & DTR pins and with 3.3v line (like this one Amazon link)
- 470 uf capacitor
- 10k resistor
- Mini breadbord (to simplify connections)
- 7 male to female jumpers
- ESP-01
Step 1: Check Your FTDI Board
My FTDI board has no pin headers to use with breadboard, so I soldered 2 pin header stripes to make it breadboard friendly.
Step 2: Connect All Together
Now it's time to connect all this elements. The connections to do are the following:
- FTDI GND to ESP-01 GND
- FTDI 3.3V to ESP-01 3V3
- FTDI RXD to ESP-01 TX
- FTDI TXD to ESP-01 RX
- FTDI RTS to ESP-01 RST
- FTDI DTR to ESP-01 IO0
- FTDI 3.3V to 10k resistor AND THEN resistor to ESP-01 EN
- Finally 470 uf capacitor between FTDI 3.3v (catode) and FTDI GND (anode).
Step 3: Improvements
To further simplify wiring and reuse you could use a breadboard adapter made specifically for ESP-01 (see image).
This lets you make a static board and simply plug and unplug your ESP-01.
Step 4: Enjoy
Now you can connect FTDI to PC with USB cable and play with Arduino IDE or esptool without annoying button press.