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:

  1. FTDI board with RTS & DTR pins and with 3.3v line (like this one Amazon link)
  2. 470 uf capacitor
  3. 10k resistor
  4. Mini breadbord (to simplify connections)
  5. 7 male to female jumpers
  6. 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.