USB to ESP-01 Adapter Board Modification




About: Electronics, programming, woodworking, and outdoors are some of the things that keep me going.

Did you buy this USB to ESP-01 Adapter Board and found out that it can't be used for flashing the ESP-01? You're not alone. This first generation adapter doesn't have any mechanism to put the ESP-01 into Serial Programming mode which require pulling GPIO-0 pin LOW.

I found that very frustrating considering that this board is very cheap, small and convenient to be used to interface the ESP-01 to our PC. I have made another circuit on my breadboard along with FTDI adapter just to be able to flash ESP-01. Wouldn't it be nice if we can use this one instead?

One of the picture above shows the typical error message in Arduino IDE that we see when trying to flash the code to the ESP-01 without first putting it into serial programming mode.

In this Instructable I'm going to show you how to modify this adapter to be able to do just that with a simple mini tactile switch, and a little bit of soldering.

Lets get to it!

Step 1: Parts and Pinout

For this modification, I used a mini tactile switch that I salvaged from other electronic. You also need a couple of short wire to connect the switch to the board.

Step 2: Mounting and Soldering

In this step we are going to mount the mini switch on to the back of the adapter's socket. I used hot glue for this, and optionally you can make a few scratches on the surface of the socket for better adhesion.

Once the glue is set, we're going to solder the 2 short wires between the switch and the GPIO-0 and GND pins. See above picture for the pins location.

This will effectively short the GPIO-0 and Ground when the switch is pressed.

Step 3: Flashing the ESP-01

We're now done with our modification. To flash the ESP-01, follow the steps below:

1. Insert ESP-01 into the adapter's socket with the correct orientation shown in the picture.

2. While pressing the button of the tactile switch, insert the adapter into your PC's USB port. Release the button after about 1 sec. You'll be testing your finger's dexterity by doing this exercise.. :)

3. Set your Arduino IDE board setting, and upload your code. I've included the typical setting that works for ESP-01 board.


  • Once the ESP-01 is flashed, we can use the adapter to power the ESP-01 from any USB power. It has built-in 10K pull-up resistors for GPIO-0 and GPIO-2 pins for it to do normal boot from flash.
  • This adapter is based on CH340 chipset, in my PC it shows up as USB-SERIAL CH340


16 People Made This Project!


  • Backyard Contest

    Backyard Contest
  • Colors of the Rainbow Contest

    Colors of the Rainbow Contest
  • Frozen Treats Challenge

    Frozen Treats Challenge

13 Discussions


6 months ago

Made this, but I thought I did something wrong because it only got into programming mode once. Found something interesting while troubleshooting, though. The button seems to not be necessary. I can reliably get the board into programming mode simply by (1) having the Arduino IDE's Serial Monitor window open (2) with the adapter board already plugged into the USB port, remove the ESP8266 then re-insert it into the adapter. The serial monitor will display some garbled text, and the board will be programming mode!
Any idea why this works? Maybe it's the version of the adapter I have? It looks the same as the one you're using though.


10 months ago

Thanks for this mod, i liked it so much i added another reset button but i switched them around, the flash mode button is at the bottom as i soldered the legs of the switch directly onto GND and GPIO-0 as per and added the reset button as per you instructable. Works a treat now, no need to pull the adapter in and out of the PC. Do you think there is any chance to mod this adapter board to be able to flash ESP-12x series board ?

2 replies

Reply 9 months ago

That's a neat idea, not having to pull out the usb adapter each time. so the additional switch is shorting the reset and GND pins? I don't see why it wouldn't work for other ESP boards, except that you'll have to somehow solder leads that will connect to this adapter. Maybe too troublesome though.. :)

thanks for your comment and the neat enhancement.


Question 1 year ago

I guess i dont understand. i get the same error after following the steps. is there a way to know your in programming mode?

1 answer

Answer 1 year ago

The step # 2 is the part to get esp-01 into flashing mode. If you're still getting the error means this step is not completed properly. Another possibility might be that you have not installed the driver for the module. After inserting the ESP-01 into your PC's USB, check to see if it's recognized in the device manager. Also make sure to select the correct COM port in the arduino IDE.

2. While pressing the button of the tactile switch, insert the adapter into your PC's USB port. Release the button after about 1 sec. You'll be testing your finger's dexterity by doing this exercise.. :)


Question 1 year ago on Introduction

Thank you for this post! Is there a link to this USB->ESP-01 adapter? Nice clean layout!

1 answer

1 year ago

I did a similar, but using a shorting jumper and pushbutton w/2x 10K resistors to GPIO0 & RST , Noticed you scored the face of the socket, I did the same on the side of pins 7&8 (TxD & GND), and soldering the jumper to pin 4 (GPIO0), and a short wire to GND, under the capacitor. (with 10K resistors pulling RST & GPIO0 to VCC)..

2 replies

Reply 1 year ago

Nice, although you technically don't need to add those 10k resistors since they're built in to the adapter board, at least on mine. I tested it with ohmmeter to make sure and it read 10k for both pins.