While experimenting with ESP-01 modules I tried a variety of different methods to program them. USB based programming devices seem quite popular but not all are quite what they seem. Many are advertised as “ESP-01 programmers” but either don’t work or require hardware modifications.
There are three variants you are likely to come across when searching on eBay, Aliexpress or Amazon.
The One with the Big Capacitor
This is a CH340 based device and has a large capacitor to smooth the incoming 5V supply.
This is my preferred device as it is the first one I got working on both Windows and Linux. However it requires a hardware modification to work as advertised. The GPIO0 pin needs to be connected to Ground as this is required for the ESP-01 to operate in “programming mode”.
Here is my device with a 2-pin header soldered to GPIO0 and Ground :
The pins are slightly bent so they touch the required pins without additional wiring. The header is super-glued in place and once the solder joints are made it is fairly robust. The jumper completes the circuit but allows the link to be disconnected if required.
In order to connect ESP-01 modules that had additional hardware glued to them I made an extender to lift it clear of the capacitor.
The Red One With the Switch (CH340C)
This is a CH340C based device and this label should be visible on the chip. The seller advertised it as a CH340G device.
This device looks like it will do the job. It even has a switch to connect GPIO0 to ground and sellers usually declare this makes it better than the one with the capacitor as no additional modifications are required. The only problem is they simply don’t work. I’ve got three and none of them work under Windows or Linux. This includes using ESP-01 modules from different sellers.
You can see the PCB has some unpopulated areas on the PCB.
While searching online for a solution I couldn’t find any reference to anyone ever having got one of these to work. There are lots of sellers but zero satisfied customers.
My advice is to avoid this model. I wonder how many of these end up at the bottom of a drawer after the owner gives up trying? I’m not sure if the PCB components are meant to be missing or this device is part of a rogue batch.
The Red One With the Switch (CH340G)
This variant is identical to the red device that uses the CH340C but it has some additional components on the PCB. The chip is labelled CH340G.
It also has the switch to connect GPIO0 to ground and enable programming mode.
This worked on both my Windows PC and Linux laptop without any modifications.
Which ESP-01 Programmer to Buy and Which to Avoid
Based on my experience I would buy the red CH340G based device with the switch. It works under both WIndows and Linux and doesn’t require any additional modifications. Just make sure you get sent a device with the correct chip on it.
The one with the capacitor is fine but be prepared to make the hardware modification so you can actually use it.
Avoid the red device with the missing PCB components.
Where to Buy ESP-01 Programmers
USB programmers for the ESP-01 can be found from numerous sellers on the following sites :
They usually cost between £1 and £5 depending on location and delivery options.
6 Comments
It seems CH340C has CH_PD and RESET pins unconnected, so module is in disabled state. Soldering jumper wire CH_PD to VCC helped. Related: https://github.com/Shoe-Pi/CH340C (missing parts on PCB are not really necessary).
I have the version you recommend against buying and it works for me in both switch positions. Just sayin’.
had one of those ch340C adapters that did not work.
Soldered bridge from CH_PD to VCC as suggested above in first post. Now it works flawlessly.
Thanks!
It looks like the missing component on the leftmost red one is a crystal and a few capacitors that the CH340G requires (as is used on the center red one) but the CH340C does not.
Same here. Had the “not working version”. Seller advised to put 4.7 kOhm resistor between 3.3V and CH_PD. Did that, now works like a charm. It’s also unpopulated in some areas.
The CH340G requires an external crystal oscillator to function while the CH340C includes a built-in crystal oscillator. However, both function in the same fashion – they convert USB data for a serial UART and vice