Connecting the ESP8266 to a breadboard and FTDI programmer

Connecting the ESP8266 to a breadboard and FTDI programmer
Published: by Renier Delport
Last updated: 14 September 2017

Compared with other microcontroller boards (e.g. the Arduinos), the ESP8266 is slightly more complex to hook up with a serial programming port. This post will show you how to connect the ESP8266 to a breadboard and FTDI programmer.

To get started you will need

These were the parts I used. Most are available from BangGood, eBay and RS Components.

The FTDI programmer – the missing link

Like any other microcontroller, the ESP8266 needs to get its code from somewhere. By having no connection port (just pins), this this process is slightly more complex. Although there are other ways, a very popular and relatively safe and easy way to connect the ESP8266 to a serial port is by using a FTDI programmer.

FTDI Programmer
FTDI programmer with a 5/3.3V DC voltage regulator, a mini-B USB port and 6 I/O pins.

The FTDI programmer is an universal asynchronous receiver-transmitter board (UART) that is assembled with a FTDIFT232RL USB to serial converter chip.

The I/O pins are used to connect to the ESP8266 and the mini-B USB port is used to connect to, for example a PC.

When looking for a new FTDI programmer for this project, make sure it has a 3.3/5V DC jumper.

The pins on the FTDI programmer are clearly marked. The FTDI pins are also breadboard friendly.

The ESP8266

To program the ESP8266 it needs to be connected to the FTDI programmer. Generally, the pins on the ESP8266 are not marked. The pinout is as follows:

ESP8266 pinout
ESP8266 pinout

The ESP8266 is also not breadboard friendly. To achieve the goal with this post, it needs to be. The simplest solution I came up with was by using two, 4 Pin 2.54mm stackable long legs female connector headers. The legs can be bend and the two parts can be ‘superglued’ together.

ESP8266 breadboard connectors
Home made ESP8266 breadboard friendly connector using 2, 4 Pin 2.54mm stackable long legs female connector headers.

Connecting the ESP8266 with the FTDI programmer

The FTDI programmer can either be used as power source (not withing the scope of this post) or to program the ESP8266. Note that the wiring will be completely different when the ESP8266 is not being programmed (see later).

To use the FTDI programmer as a ESP8266 programmer the connections need to be as follows:

ESP8266 to FTDI programmer connection
Image from Pixhawk.org

The connection can be made directly, for example by using modified 40 x 30 cm female-to-female breadboard jumper wire cables, or indirectly using a breadboard. The breadboard solution takes a little more time, but is easier to use in the future, neater and a more sustainable solution.

The FTDI programmer needs to be set to use 3.3V instead of 5V. This is usually done by changing the jumper on the FTDI 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 programmer. This will allow the programmer to lie flatter instead of perpendicular to the board.

ESP8266 breadboard connections
The end result will look something like this:

Connecting the ESP8266 to a breadboard and FTDI programmer
My final build.

This breadboard configuration allows simple connection of the ESP8266 and FTDI programmer by using the appropriate connector headers.

ESP8266 programming vs. normal mode

While (and only while) booting up, the status of GPIO0 and GPIO2 is used to check which mode the ESP8266 needs to enter. GPIO15 is also checked, but will not be discussed for the purpose of this post.

ESP8266 boot options

Apart from the Tx and Rx connections, the main difference between the wiring for programming mode and normal operational mode is the connections of GPIO0 to GND. By grounding GPIO0 it is being pulled down to Low, to enter programming mode.

More ESP8266 related posts

Try one of Lynda.com’s online software and skills learning courses
Improve your knowledge on anything from programming to business skills with Lynda.com’s huge range of professional video courses.
22 November 2017 | 5 401 reader(s) found this helpful so far.
Understanding the digital read pin on a microcontroller
Understanding the digital read pin on a microcontroller
Read more about the digital read pin on a #microcontroller... #Arduino #ESP32 #DIY
6 July 2017 | | 5 reader(s) found this helpful so far.
Installing the Arduino IDE on a Raspberry Pi 3
Installing the Arduino IDE on a Raspberry Pi 3
See #howto install the #Arduino IDE on a #RaspberryPi 3...
1 July 2017 | | 3 reader(s) found this helpful so far.
ESP32 development boards for Wi-Fi communication
ESP-32 development boards for Wi-Fi communication
#ESP32 #microcontroller development boards with build-in Wi-Fi & Bluetooth... #tinkering #DIY #homeautomation #IoT
25 June 2017 | Updated 26 June 2017 | | 2 reader(s) found this helpful so far.
Getting started with the Arduino Nano
Getting started with the Arduino Nano
See #howto get started with the #Arduino Nano... #ArduinoNano
3 January 2016 | Updated 31 October 2017 | | 2 reader(s) found this helpful so far.
Introducing the Arduino Nano Microcontroller Board
Introducing the Arduino Nano microcontroller development board
Read more about the #Arduino Nano #microcontroller board... #ArduinoNano #microelectronics #DIY
3 January 2016 | Updated 2 November 2017 | | 3 reader(s) found this helpful so far.

Save, share, comment & Disqus

Use the buttons below, on the left or the bottom of this page to share this post. Your comment is important, but don't be a shit. Keep it constructive and polite.
Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInPin on PinterestShare on StumbleUponShare on Tumblr

Comment via Facebook

Disqus

About the author

Renier finds himself busy with creative web design and his websites, motorcycling, photoshopping, micro electronics, non-commercialised music, superhero movies, badass series and many other things that are not interesting to most people.