ESP-01 CH330N USB Programmer

2.9K104

Intro: ESP-01 CH330N USB Programmer

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.

You will need to order the PCB (I use www.pcbs.io or www.oshpark.com) and the following components:

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!

4 Comments

Hello..I have used CH340G before, but haven't used CH330N. The SOP-8 package is obviously impressive, but I am a bit skeptical because there isn't enough documents verifying its usability. Since you have used it, may I ask you a few queries of mine, so that I can safely invest my money into this tiny IC and pursue future projects with this?
Sure! I don't use it a lot but I have used it successfully with the ESP-01 and an Atmega238. It's very minimal but seems to work just fine!
Guess you meant ATMega328..anyways..I wanted to know if it is reliable, i.e., does it work after 4-5months reliably? And..is there any visible differences in its working due to temperature variations, from, say summer to winter? (Temperature varies from about 4°C to 49°C here.. XD )

And what did you do with the V3 pin?
And..does the RTS pin work for resetting the ATMega328 during program upload (with a series capacitor, maybe)?
And what are the baud rates at which it is working effectively?

Pretty long list of questions..but hope you'll answer. Have a nice day.
So far, it's been working for about 6 months or so and indoors so I cannot comment too much on the temps - though if it's made by the same guys as other CH340G USB chips, I'm sure it would be fine. V3 is actually the power pin in the case of ESP which needs 3.3V and VCC is unconnected in that case (just capacitor to GND). In the case of a 5V logic device, it reverses - VCC gets hooked up to 5V and V3 via capacitor to GND. I haven't used the RTS pin but I believe it would work the same way as other CH340G USB chips. So far I have only used this at 9600 and 115200 baud rates and it works fine there. Honestly, it cost me $4 to get 10 units so it's a pretty inexpensive investment to play around with. Hope this helps.