Introduction: ESP-01 Programmer Hack - the Easy One :)

About: An Enigineer by birth and hobbyist by profession :D

Hi ESPers,

In this instructable I'll be showing you a simple hack to make a programmer for ESP-01 / ESP8266-01 / ES-01 module. Most of us have used a Arduino board or FTDI USB-TTL devices as programmers for this module. Both method works fine. But there is one more way!

Recently I bought a USB to UART/ESP8266 device for this module as a replacement of FTDI. But I soon realized that It is not as flexible as FTDI to use it as a programmer :(

So being an engineer I checked if it can be used as a programmer...And presto ! I hacked it a little to convert it to one. And now here it is for you to make your life easy.


List of materials

  1. USB to UART/ESP8266 - 1
  2. Two 6mm tactile buttons - 1
  3. Two Resistors or Some jumper wire
  4. Piece of veroboard / dot board - 1

List of tools

  1. Knife & hacksaw
  2. Soldering kit
  3. Glue gun
  4. Cutting pliers
  5. Rasp or sand paper (not shown in image)

Step 1: Images of the Items and Tools :D

Just verify if you have right items.

Step 2: Cutting and Preparing the Veroboard / Dot Board

Next, we cut the veroboard to required size minimum (6 x 17 dots) excluding the cutting lines as show in the image. After cutting the piece out use a rasp or sand paper to smooth out the edges.

Step 3: Images and Pinouts

On the left is the USB to UART/ESP8266 adapter and on the top right is the piout diagram of the ES-01 module as seen from top keeping the PCB trace antenna towards your left.

Basically we require only three pins to implement our hack (Green(pin 5), Red(pin 6) and Cyan(pin 1)), but in some modules pin 4 and 8 (Orange pins) are not shorted like mine with a PCB trace as shown in the bottom right image. In that case you must short them for making the module as a programmer.

Step 4: Soldering...

So now the soldering..

First short pin 4 & 8 if not shorted with a small wire.

Next cut 3 pieces of resistor leads / jumper wire about 20mm in length(I used resistor leads as shown in figure-1. Now solder them to pin 1, 5 & 6 figure-2 & 3 at the bottom(solder side) of the module.

Next place the tactile switches as shown in figure-4 and mark the positions for the three pins. Take note of the orientation of the switches. Use a multi meter or a continuity tester for orientation. Solder the switches as shown in figure-5 & 6. I've sorted the center adjacent pin as they are going to be common.

Stick one or two pieces of double sided foam tape at the back of the module to raise the veroboard a bit to make space for the soldered joints as in figure-7.

Insert the soldered pins into the respective switches and press the veroboard to the tape firmly.

Refer to the schematic diagram for connections. You can connect the switches as per your convenience. I connected right one to Reset and the left to GPIO 0. See figure-9.

And that's it ! You are done. Just verify all the connections as per schematic for the last time before testing.

Step 5: Testing...

Great job!

Insert a ES-01 module into the adapter and connect to one of your PCs USB port. If you use an extension cable, it will be convenient. The moment you plug in you should see your power led in the ES-01 turn on. This is normal mode. Meaning that if there is firmware inside the ES-01, it will just start execution.

Now press and hold the GPIO 0 key (Marked '0' in my case) and press and release the Reset key (Marked 'R' in my case) once. And then release the '0' key. This will put the ES-01 module to program mode.

Now you should able to upload your sketch from Arduino IDE or PIO. Make sure to select the right board and COM port. If everything is alright you should able to see the upload status as shown on the right. After upload press and release the Reset key to return back to normal mode and execute the uploaded code.

Step 6: Finalization

After testing your programmer just put a blob of hot glue at the bottom to protect it from sorting out.

Hope you like this hack. Please feel free to comment and share. Peace..