Andrey Ovcharov

Professional Software Engineer and hobbyist Hardware enthusiast

Andrey Ovcharov

CH340G programmer for ESP8266/ESP32

Slightly tired of big and long-running projects both at work and at home I decided to make a small spin-off project to help me working with ESP8266/ESP32 devices. Is there any reason to make it when there are a lot of cheap USB-Serial converters in the market? I don’t think so. My only reason to make it is to have cool addition allowing ESP8266s to be programmed automatically without “flash”/”reset” buttons but simple circuit with two transistors. Normally USB-Serial converters do not have it. And, of course, I wanted to have some fun.

The device is built around cheap and popular CH340G chips. The only addition to standard schematics is two BC847 transistors for automatic programming.


Components are soldered on dual layer PCB. I did not need to make it as small as possible, so the components are distributed very sparse. And since I already have a bunch of regular 12MHz quartz oscillators I used one of them instead of buying SMD one.

PCB design

The PCBs were ordered at JLCPCB and arrived in about two weeks after ordering. Quality, as always, is very good. Minimal batch of 5 boards is enough.

PCB for the programmer

With this project for the first time, I have tried a hot air gun. Technology is simply - put some mechanical solder paste on the board, place components and heat them with the hot air. The solder will melt and put everything in place. It worked quite well for me although I’ve put too much soldering paste and had to remove excess with the iron. Next time I am going to order special stencil together with the board for easy application.

The completed device started to work from the first attempt without any problems. Both ESP8266 and ESP32 boards were successfully programmed with the speed of 921600 baud.

Complete CH340G programmer

The projects files are available in my GitHub repo