Hello guys, When I am new to the field of electronics, Arduino Atmega328p is my first microcontroller. I don’t know how to program, use digital/ analog pins, interrupts and libraries. So, I bought Arduino UNO, Then I started learning Arduino IDE. After a few weeks, everything is understandable. Searching for a MCU board with a better form factor, I got Arduino NANO. This board has same MCU, clock and everything. A new Usb to serial programmer provided, that is named as CH340G. But Arduino UNO has 16U2 for this purpose.

Yes, I bought a clone board that costs me around $2. So, without installing ch341 drivers, I uploaded my first sketch. And this was the scene….


Firstly, it complies the sketch successfully and then stuck when uploading, after 3-4 minutes I got error i.e. MCU Board is not responding or programmer is not responding.

After watching 2-3 YouTube videos and reading some articles. I installed the CH drivers. Link to them is here. That’s why I’m here, I want to give you full instructions to solve this problem of drivers and more.

Installing process:

1) Download the drivers using link given above.

2) Extract the divers and install them.


3) Paste ch341.SER extracted folder file to Arduino driver folder.



4) To make sure they are installed, Search device manager and see ports options.


5) Sometimes, installing process can be affected by antivirus programs.


6) Stay updated with drivers.


Solving troubleshooting after installing drivers, Software Troubleshooting:

So, now we can upload our sketch and use Arduino NANO. But in some cases, it will not work even after installing drivers and repeating the steps. The same problem is also with me. Then I search for the datasheet and found this.


There are many varieties of these Usb to serial programmers. Our Arduino chip works on a clock of 16-20MHz. But CH340 works on 12MHz. Some of these tiny chips has inbuilt crystal oscillator like in case of CH340C, but these may cost a little bit more.


My Arduino NANO has CH340g with external 12MHz Smd Oscillator. So, I think everything is okay. Because it is same as in datasheet. So, I tried to upload sketch again and failed. After searching more in datasheets and web pages the same thing is given as before.

After some days, I got an idea to burn Arduino Uno bootloader in NANO. So, I connected Nano with my Arduino UNO using this schematic and burn bootloader. And this thing solved my problem, Here I am using Arduino UNO bootloader in NANO. I am very happy and curious to know why this thing is not work with NANO board directly.


Using UNO bootloader inside NANO board will limit the use of 2 analog pins i.e A6 and A7. Because smd package of 328P MCU has 2 extra analog pins.

Hardware troubleshooting:

Mine is now working fine, but you can get hardware problems too. So here are some points I want to clear-

1) Make sure ch340g is powered, check using multimeter.

2) Check your chip variety and then, see for crystal oscillator.

3) Check for the capacitor between the DTR and Reset pin. If missing or damaged then change it.


4) Check for the 1k resistor between the TX and RX pins of Arduino Nano.

5) Check the 3.3 voltage on the Arduino Nano pin, if there is voltage on the pin then ch340 is in working.


This video May help you, contains full instructions in detail.

This is my first video in English, so please co-operate with me:

My own Usb to serial programmer:

I searched for the schematics of ch340 and made my own Usb to serial programmer. I made this circuit diagram using EasyEDA and Order my PCB from JLCPCB just in $2.


Links to Gerber files and circuit diagram is here.


Connect this programmer using this schematic to any of your Arduino board and upload program instantly.

mini_connection diagram.png


JLCPCB is the one of the most popular PCB makers. Price is just $2 for 2,...

Read more »