Connecting the ESP-01 module to a breadboard and FTDI programmer

ESP8266 breadboard connections

When compared with some other microcontroller boards (e.g. the Arduinos), the ESP8266 is slightly more complex to hook up to a serial port for programming.

This post will show how to connect the ESP-01 module to a breadboard and FTDI programmer for ‘flashing’ purposes.

Introduction to the ESP-01

The ESP8266 is the microcontroller chip that is used on the ESP-01 module/microcontroller board. The chip has at least two different boot modes: ‘normal mode’ and ‘programming mode’. ‘Programming’ (or ‘flashing’) refers to uploading any (custom or default) software (or firmware) to the ESP8266’s flash memory.

Flashing will overwrite the previous programming/firmware (including the AT command set if that was flashed). The breadboard setup in this post will allow booting into programming mode which will allow a module to be flashed with new firmware.

To be able to flash new firmware onto an ESP-01 module, it needs to be connected to a programming device containing a copy of the firmware (e.g. a PC). An FTDI USB to TTL serial converter module will be used as a communication module.

Raspberry Pi accessories

To get started with the ESP-01 module, you might need some of the following accessories.

Please support us by using these links - they come at no additional cost to you, but we get a little commission each time they are used. These and others are available from Amazon.com and BangGood.

We have tested most of these products ourselves. Other selection criteria include affordability, quality, availability and average user rating and popularity by other buyers.

Links will open in a new window.
(Dead or old links can be reported in the comments section below.)

Featured products

ESP-01 module (blue)
ESP-01 module (blue)

ESP-01 containing ESP8266 chip. 512 KB flash memory.
Available from BangGood
ESP-01S module (black)
ESP-01S module (black)

ESP-01S containing ESP8266 chip. 1 MB flash memory.
Available from BangGood
ESP-01S module (black, 5pcs)
ESP-01S module (black, 5pcs)

5 x ESP-01S’ containing ESP8266 chip. 1 MB flash memory.
Available from BangGood

Related products

ESP8266 programming mode vs. normal mode

The ESP8266 can either boot up in ‘programming’ mode or in ‘normal’ mode. While (and only while) booting up, the status of GPIO0 and GPIO2 is seen as input pins (as suppose to output pins) and their voltage status is used to check which mode the ESP8266 needs to enter.

ESP8266 boot options

Apart from the Tx and Rx connections, the main difference between the wiring for ‘programming’ mode (UART) and normal operational mode (flash) is the connection of GPIO0 to GND.

To boot into ‘normal’ operational mode, the status of GPIO0 and GPIO2 needs to be HIGH (which is their default status, i.e. they are connected to a pull-up resistor).

To enter ‘programming’ (or bootloader) mode, GPIO0 needs to be connected to ground where it is being pulled down to LOW. GPIO15 should also be grounded, but does not need any consideration here and will not be discussed for the purpose of this post.

TTL serial connection

The ESP8266 has a built-in UART (universal asynchronous receiver/transmitter) which can be used for TTL serial communication and/or flashing the chip.

To be able to use the UART, a 3.3V USB to TTL serial converter is required. The USB to TTL serial converter must be able to supply at least 300 mA. For the purpose of this post, the FTDI USB to TTL serial converter module which has a 3.3/5V jumper will be used. It will supply 500 mA through its Vc pin.

FTDI Programmer
FTDI USB to TTL serial converter module with a 5/3.3V DC voltage regulator, a mini-B USB port and Rx/Tx pins.

The FTDI USB to TTL serial converter module has a mini-B USB port which is connected to a programming device with a USB input. The other end has breakout pins (Tx, Rx, Vc and GND) that are connected to the ESP-01 module.

The pins on the FTDI USB to TTL serial converter module are clearly marked. The FTDI pins are also breadboard-friendly.

The ESP-01(S) module

The pins on the ESP-01 are not marked:

ESP8266 pinout
ESP-01 pinout

To make the ESP-01 breadboard-friendly two, 10mm 4 Pin 2.54mm stackable long legs female connector headers can be used. The legs can be bent and the two parts can be ‘superglued’ together.

ESP8266 breadboard connectors
Homemade ESP-01 breadboard friendly connector using 2x 10mm 4 Pin 2.54mm stackable long legs female connector headers. Most of these connectors come in black, but red, yellow, white, green and blue ones are also available.

Connecting the ESP-01 with the FTDI USB to TTL serial converter module

The FTDI USB to TTL serial converter module is used as a power source and to program the ESP-01. To use the FTDI USB to TTL serial converter module as an ESP-01 programmer, the connections need to be as follows:

ESP8266 to FTDI programmer connection
Connecting the ESP-01 to an FTDI programmer. Image from Pixhawk.org

The connection can be made directly, for example by using modified 30 cm female-to-female breadboard jumper wire cables or indirectly using a breadboard. The breadboard solution (see earlier) takes a little more time, but is easier to use, looks neater, is upgradable and a is little more sustainable.

When connecting to an ESP-01, the working voltage of the FTDI USB to TTL serial converter module needs to be set to 3.3V (instead of 5V). On some modules, this can be done by changing the jumper on the board itself.

The breadboard can be wired with solderless breadboard jumper cables. On the top left corner, an optional 6 pin 2.54mm stackable long legs female connector header that is bent inwards can be used to connect the FTDI USB to TTL serial converter module. This will allow the module to lie flatter instead of perpendicular to the board. The 4 pin 2.54mm stackable long legs female connector headers are where the ESP-01 will be plugged into.

ESP8266 breadboard connections
Initial breadboard wiring, which will allow the ESP-01 to boot directly, and only, into programming mode.

In addition to 3.3V DC (red wire) and ground (black wire), this configuration connects the Tx/Rx (yellow/green wires) of the FTDI USB to TTL serial converter module to RX/Tx of the ESP-01.

On the ESP-01, both Vcc and CH-PD need to be connected to 3.3V DC (red wires) and GPIO0 needs to be connected to ground as well (brown/bottom wire).

As mentioned earlier, by grounding GPIO0 it is being pulled down to low which makes it boot into programming mode.

Connecting the ESP8266 to a breadboard and FTDI programmer
Photo of the breadboard wiring.

This board will allow the ESP-01 boot up in program mode, and only program mode. It works well, but when it comes to testing, the ESP-01 has to be transferred to another board.

Rebooting is also only possible by disconnecting the USB cable from the FTDI USB to TTL serial converter module(i.e. disconnecting the entire setup, which often crashes the operating system).

To overcome these shortcomings, a reset switch and an SPDT slide switch can be added:

ESP8266 breadboard connections
Breadboard wiring including a reset switch and an SPDT slide switch.

To be able to reset the board, a tactile pushbutton is wired between the ESP-01’s GND and the RESET pin (purple wire). The tactile button should be normally open (NO) so that when it is pressed, the connection is made.

ESP8266 breadboard connections
Photo of the breadboard wiring including a reset switch and an SPDT slide switch.

Finally, an SPDT slide switch can be used to connect GPIO0 to ground (or not). This will allow switching between program mode and normal boot mode. After switching, the reset button can be pressed to enter that state.

Programming can start immediately after all the components have been added to the breadboard.

Conclusion

This post showed how to connect the ESP-01 module to a breadboard and FTDI programmer. By using 2 10mm 4 Pin 2.54mm stackable long legs female header connectors and the correct pinout, the ESP-01 can be connected to a breadboard for prototyping.

About the author
Renier busies himself with improving his English writing, creative web design and his websites, photoshopping, micro-electronics, multiple genres of music, superhero movies and badass series.
Behind the Scenes is a free, informative website. If you find value in any of our content, please consider making a donation to our cause.
Donate via PayPal

Save, share & discuss

Your comment is important, but don't be a knob. Keep it constructive and polite.

Leave a Reply

Your email address will not be published. Required fields are marked *

More ESP microcontroller related posts