USB to ESP-01 Adapter Board Modification

72K10688

Intro: USB to ESP-01 Adapter Board Modification

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.

NOTES:

  • 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

Enjoy..

21 Comments

was about to comment this
no HW-BELTLINE-01 found, reconnect after 1s
I am getting this error when I connect my node MCU with DHT11 sensor in the serial monitor.
please help
i have an assignment to submit A.S.A.P
I received a USB - ESP-01 adapter, but this had a switch already fitted. However I tried to flash a program to it and it failed to connect to the device. I'm wondering if I may have zapped it some how when trying to flash with an FTDI board I purchased.
Beginning to regret going on this path, especially as you can get relays with built in WiFi, which is what I am attempting to achieve.
You may have some problems with GPIO0 having some output in your sketch (?) that switches GPIO0 to on. In this case you plug in the ESP-01, sketch pulls up the GPIO, you force it to GND and thas was you ESP-01. That's why I prefer to have an additonal reset button...
I superglued a momentary button to the back on the adapter and soldered its two legs to the right pins. Super easy!
Thanks, explanation and example fixed what I couldn't find.
I skipped on the soldering, I trailed the wires of my switch into the corresponding holes for the pins. The ESP-01 pins would hold them in place.
This did the trick perfectly. In time I may yet solder it.
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.

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 https://cmheong.blogspot.com/2018/05/using-ch340-usb-dongle-as-esp-01s.html 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 ?

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.

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

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.. :)

Thank you for this post! Is there a link to this USB->ESP-01 adapter? Nice clean layout!
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)..
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.
That's a neat setup :)
More Comments