I have been using the ESP8266 microcontrollers for a while, with the ESP-01 being the most easy to implement and work with. Once you get past the initial learning curve of programming these, they are very versatile and easy to use. But having a separate FTDI programmer is inefficient and very hard to implement into full projects as the FTDI chip is difficult to solder and a bit expensive. Enter the CH330N, a new USB programmer that comes in an easy SOIC-8 package and needs just a few components and works with both 5V and 3.3V, thus uniquely suited to programming the ESP. See the datasheet at the link below for more information.
This instructable will show you how to assemble the PCB and use it to program your ESP-01. The programmer is only suitable for programming the ESP, not for booting it.
You can purchase the CH330N chip and view its datasheet at https://lcsc.com/product-detail/USB_CH330N_C10899...
All files, datasheets, schematics, drivers, and photos can also be found at my Github: https://github.com/mikebebjak/ESP-01-CH330N-USB-P... For those of you who use Eagle, I also include a .lbr file for the CH330N :)
Step 1: PCB
Here are the PCB schematic and gerber files, as well a a shot of the assembled PCB.
1x CH330N USB transceiver
1x AMS1117 TO-223 3.3V regulator
1x Molex USB-A through-hole connector
1x 8-pin 2mm socket for the ESP
4x 10K 1206 resistors (for pullups and pulldowns)
2x 0.1uF 1206 capacitors
1x 6mm through-hole momentary push button for the reset button
1x large electrolytic capacitor (220uF or higher at 6.3V min.)
Step 2: Using Your Programmer
As the schematic from the previous step shows, the programmer is very simple - no LEDs, minimal circuitry (so also ideal for embedding in ESP projects).
The CH330N USB transceiver uses the CH341 drivers. Once you have the drivers loaded, it should recognize your USB programmer and assign it a COM port.
To program, simply select the correct COM port and hit Upload. Because GPIO 0 is tied to GND, there is no annoying Upload button to hold down and most of the time there is not even any need to press the Reset button. The blue LED on your ESP should flash while it is being programmer.
Because GPIO 0 is grounded, this programmer is not designed to boot the ESP, though it may sometimes work anyway.
Enjoy a much easier and simpler way of programming your ESPs!