Introduction: Breadboard FTDI USB Flash Loader for ESP8266-01

About: IoT - Internet of Things. Iota - small thing. Thingamajig - An object whose name can't be recalled. Iotamajig - A little unnamed internet connected gizmo!

If you are new to programming the ESP8266, once you decide what IDE (integrated development environment), the next thing you need is a way to transfer data between your computer and your ESP. I have a breadboard dedicated to this, and that's what I'll cover here.

Technically you can use this with other ESPs, but I'm using a special 8 pin ESP to breadboard adapter, so this board's main purpose is handling the ESP8266-01.

There are certainly other ways you can load your ESP (Arduino, etc), but having a dedicated board like this one will make your life easier.

Step 1: Gather Your Parts

You will need the following parts (links included for the parts I used):

  1. breadboard (example)
  2. Power supply (example)
  3. 3.3 Volt regulator (example)
  4. FTDI USB to serial adapter (example)
  5. 8 Pin ESP8266 to breadboard adapter (example)
  6. ESP8266-01 (example)
  7. a switch (example)
  8. jumper wires (example)

Step 2: Set Up the Breadboard

Assemble the breadboard as in the diagram:

  • The voltage regulator will nicely fit in and supply the power rails on both sides of your bread board.
  • The ESP adapter socket will straddle the middle board, allowing all 8 pins to be accessed separately. For reference, the adapter I have has "ADDICORE" printed on one side - I arrange it so the antenna side of the ESP goes on the same side as the "ADDICORE". Helps me to remember proper arrangement when swapping modules in and out.
  • Connect the FTDI board into the breadboard. The pins should be labeled - pay attention which side you are looking at - the pins in the diagram are viewed from the back of the board, so you may have to mirror it to match your set up.
  • Put the switch in across three rows of the breadboard.

Step 3: Connect Your Wires


Connect Gnd to the ground rail of the breadboard

Connect Tx to the Rx pin of the ESP.

Connect Rx to the Tx pin of the ESP.


Connect Gnd to the ground rail of the breadboard.

Connect Vcc and Ch_Pd to the Vcc+ rail of the breadboard.

Connect GPIO to one side of the switch.

Connect the middle pin of the switch to the ground rail of the breadboard.


The FTDI is powered by the USB connection. Technically, you don't need the 3.3 Volt regulator - you COULD power the ESP from the FTDI. My preference is to use the separate power source to guarantee the ESP gets enough current, PLUS if you throw any extra sensors on the board while you test, you'll again ensure you have enough power.

Connecting the Gnd from the FTDI to the breadboard is just giving it common ground.

Step 4: Finished!

Connect the FTDI to your PC, power up the breadboard power supply, and make sure your switch is set to connect the GPIO0 pin to ground. This boots the ESP in flash mode. You can use this setup whether you are using the Arduino IDE, or ESPlorer (or other NodeMCU IDE).

The purpose of the switch is for testing your uploaded code. Once you upload your code, reboot the ESP with the switch the other way to boot in normal mode.