Have you ever wondered if a cheap Chinese Arduino clone will actually work?
You pay only a few bucks and get the same product. Sounds to good to be true right?

The truth is that some work and some won't. Follow the rest of this instructable and I'll explain you how to make them all work in no time.

Here is where I got my Cheap Arduino clone

Step 1: Genuine Arduino and Chinese Clone - the CH340 Chip Problem

I use an Arduino Uno for this example but it is the same process for most Arduino models.
So here we have a genuine Arduino and a Chinese clone. Let's do the test.

My Arduino environment has been installed and is working properly. First I plug in the genuine Arduino. Everything works just fine. Now I use my cheap Chinese copy and.... the computer does not recognise the hardware.

The problem is that the clone does not use the standard serial to usb chip but a chip marked CH340. Your computer will not recognize these CH340 chips on your computer. To fix this is very easy.

Step 2: Download Software

Download the manufacturer software and istall it on your computer. This software will work for all versions of windows.
Here is the link:


This instructable is based on pc but here is a link for a solution for Mac users:


Now plug in your Chinese clone and try again. It should work just fine.

The board should be visible now in the Arduino IDE and ready to use.

I upload the blink sketch to the board and it all works.

In some cases the board might still not work. This is because there is no bootloader installed on the Atmel microcontroller ship. To solve this problem we need a working Arduino and the clone Arduino we want to fix.

Step 3: Make an ISP Programmer From Your Working Arduino

First we connect the working Arduino to our computer and open the Arduino IDE.

We go to File -> Examples and click ArduinoISP and upload this to the Arduino. Ones uploaded disconnect the Arduino.

Step 4: Connecting the Wires

Next we connect the wires from the working Arduino to the clone as follows.

Pin 10 goes to reset pin 11 goes to 11,

pin 12 to 12,

pin 13 to pin 13.

5v to 5v and ground to ground.

Connect a 10 uF capacitor between reset and ground on the working Arduino.

Step 5: Burn the Bootloader

Next we connect the working Arduino with a usb to the computer.

Go to Tools -> Board and select the chinese board that is not working. in my case it's an Arduino Uno.

Next we go to Tools again -> Programmer and select Arduino as ISP.

Go to Tools again and select "Burn Bootloader".

Go back to Tools -> Programmer and set back to ArduinoISP.

Your clone should work just fine now.

Step 6: Contribute

Arduino is great software an completely free to use.

If you are buying Chinese copies of the Arduino controller, consider making a donation to support the Arduino software. Here is a link.

Step 7: Final

If this instructable was helpfull for you, please click the favorite button.

Comments and suggestions below.

Also check out my 2$ ARDUINO INSTRUCTABLE here.

See you in the next instructable.

Tom Heylen

Facebook: https://www.facebook.com/OfficialTomHeylen

Donate to help me keep doing this work: https://www.paypal.me/TomHeylen/2usd

<p>These are the direct words of Mazzimo Banzi, co-founder of Arduino in his book, page 1: &quot;Getting Started with Arduino, 2nd Edition&quot;:</p><p>&quot;<strong><em>Arduino is different from other platforms on the market because of these</em></strong></p><p><strong><em>features:</em></strong></p><p><strong><em>&gt;&gt; It is open source hardware and software&mdash;if you wish, you can</em></strong></p><p><strong><em>download the circuit diagram, buy all the components, and make your</em></strong></p><p><strong><em>own, without paying anything to the makers of Arduino.</em></strong>&quot;</p><p>I do not need to say anything further.</p>
<p>You are correct that one need not pay them anything. The suggestion to contribute to them was that in supporting them in their open source will hopefully insure that they will be able continue to give such great quality projects in the future.</p>
Thanks for your post. This should make things clear. <br><br>For those who want to support The Arduino software.<br>Step 6 in this instructable contains a link to make a donation to the Arduino software.
<p>For Mac Sierra users download and use the signed driver (worked for me without having to do anything else) - <a href="http://blog.sengotta.net/wp-content/uploads/2015/11/CH34x_Install_V1.3.zip" rel="nofollow">http://blog.sengotta.net/wp-content/uploads/2015/1...</a></p><p>Thanks to <a href="https://tzapu.com/ch340-ch341-serial-adapters-macos-sierra/" rel="nofollow">https://tzapu.com/ch340-ch341-serial-adapters-maco...</a></p>
<p>if any one had query related the port identification of colony aurdino UNO R3 on window 7,8.1, vesta,10 .so contact me on 15020019076@umt.edu.pk</p>
<p>Why is the 10uF capacitor actually?</p>
<p>That really worked, thank you very much!</p><p>I bought chinese nano board for $3 and of course I couldn't upload any sketch to it as there were no drivers to run it. But after &quot;completing&quot; your tutorial it worked and now I can upload without any problems. </p><p>Note for other users: After doing it, it will work, but every time you connect the clone board it will have different port. Also, in the &quot;Control Panel\Hardware and Sound\Devices and Printers&quot; it won't be displayed as &quot;Arduino device&quot; but as a CH340 device. But don't worry, it works perfectly!</p>
<p>Oh and also I forgot to say that the link for the chinese program that fixes the CH340 works great;</p><p>And I am using Windows 7 professional 64 bit.</p>
<p>Arduino: 1.8.1 (Windows 7), Board: &quot;Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)&quot;<br><br>C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega2560 -cstk500v1 -PCOM10 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xD8:m -Ulfuse:w:0xFF:m <br><br>avrdude: Version 6.3, compiled on Dec 16 2016 at 13:33:19<br> Copyright (c) 2000-2005 Brian Dean, <a href="http://www.bdmicro.com/" rel="nofollow"> http://www.bdmicro.com/</a><br> Copyright (c) 2007-2014 Joerg Wunsch<br><br> System wide configuration file is &quot;C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf&quot;<br><br> Using Port : COM10<br> Using Programmer : stk500v1<br> Overriding Baud Rate : 19200<br>avrdude: stk500_recv(): programmer is not responding<br>avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x03<br> AVR Part : ATmega2560<br> Chip Erase delay : 9000 us<br> PAGEL : PD7<br> BS2 : PA0<br> RESET disposition : dedicated<br> RETRY pulse : SCK<br> serial program mode : yes<br> parallel program mode : yes<br> Timeout : 200<br> StabDelay : 100<br> CmdexeDelay : 25<br> SyncLoops : 32<br> ByteDelay : 0<br> PollIndex : 3<br> PollValue : 0x53<br> Memory Detail :<br><br> Block Poll Page Polled<br> Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack<br> ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------<br> eeprom 65 10 8 0 no 4096 8 0 9000 9000 0x00 0x00<br> flash 65 10 256 0 yes 262144 256 1024 4500 4500 0x00 0x00<br> lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00<br> hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00<br> efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00<br> lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00<br> calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00<br> signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00<br><br> Programmer Type : STK500<br> Description : Atmel STK500 Version 1.x firmware<br> Hardware Version: 2<br> Firmware Version: 1.18<br> Topcard : Unknown<br> Vtarget : 0.0 V<br> Varef : 0.0 V<br> Oscillator : Off<br> SCK period : 0.1 us<br><br>avrdude: AVR device initialized and ready to accept instructions<br><br>Reading | ################################################## | 100% 0.02s<br><br>avrdude: Device signature = 0x000000 (retrying)<br><br>Reading | ################################################## | 100% 0.02s<br><br>avrdude: Device signature = 0x000000 (retrying)<br><br>Error while burning bootloader.<br>Reading | ################################################## | 100% 0.02s<br><br>avrdude: Device signature = 0x000000<br>avrdude: Yikes! Invalid device signature.<br> Double check connections and try again, or use -F to override<br> this check.<br><br><br>avrdude done. Thank you.</p><p>&lt;this is one working 2560 clone and one non working. please help</p>
<p>Hi Mate, This didn't work for me. I have a Mac, boards are not recognised on it but are on some pc's. The command coding came back in errors. Any ideas?</p>
<p>Also relevant. I have had &quot;fake&quot; units with defective 12 MHz crystals, the fix is to replace the part with a genuine unit. Also bad regulators, defective &quot;FakeCaps&quot; (tm), micros which only emulate the responses expected for &quot;Hello World&quot;, etc. FFS.</p>
On windows 10 the second step will not help to make the Ch340 be visible nor in arduino ide nor in device manager...:( any suggestions?
<p>i change usb port. usb 3 doesn't function. usb 2 ok.</p>
<p>Thanks for getting back! </p><p>@@@@@@@@@@@@@@@@@@@@@@@@@@</p><p>I FOUND WHAT MY PROBLEM WITH CH340 and Windows 10 was - it was not discover-able SIMPLY because the Ch340 chip was burned accidentally by me not using Vcc correctly. :( ugh, spent so much time with drivers even downgraded to Windows 7 just to learn that simple thing. </p><p>@@@@@@@@@@@@@@@@@@@@@@@@@@</p>
<p>Pro Mini does not have 0, 1 and 5V. How to do please?</p>
<p>hey tom </p><p>i do the same like you </p><p>but i get the error code : </p><p>ik doe het zelfde zo als je uitlegt</p><p>maar ik krijg de fout melding : </p><p>avrdude: WARNING: invalid value for unused bits in fuse &quot;efuse&quot;, should be set to 1 according to datasheet</p><p>This behaviour is deprecated and will result in an error in future version</p><p>You probably want to use 0xfd instead of 0x05 (double check with your datasheet first).</p><p>kun je mij hier bij helpen ? </p><p>can you help me with this problem ? </p>
<p>Dear <a href="https://www.instructables.com/member/tomheylen/" rel="nofollow">tomheylen</a></p><p>Thank you so much.!!!!</p><p>Spent days trying to figure out a 3D printer I got that wouldn't recognize on 3 pc / laptops.</p><p>Need to watch those Clones.....</p><p>You are a computer god. :-)</p><p>Thank you.....</p>
<p>Thank you, good on ya for suggesting donating to Arduino.<br><br></p>
<p>I have several arduino uno R3 clones with micro USB that have the CH340G chip. I have the driver installed, and it recognizes other devices with the same chip, but my computer will not recognize that this particular device is connected. Are there any other potential reasons why the arduino clone would not communicate with the computer? Or are there reasons the CH340G chip would not function with the driver?</p>
<p>Thank you. Clone is running again. Glad that I discovered this tutorial to repair my Arduino clone. </p>
<p>Oddly enough, the CH340G chip has proven to be a solution to a problem plaguing people building controllers/cockpits for Kerbal Space Program. The stock standard Atmel 16U2 based Arduinos were not properly communicating under Windows 10, and we STILL have not found a solution. It was discovered that communication is fine when using the CH340G and it's different drivers.</p><p>Weird, but hey, whatever works, right! Still trying to track down the 16U2 communication issue with Windows 10 though. For the time being... I'm simply not gonna use an Arduino that uses a 16U2 for my build.<br><br>Now the fun part... Finding an eBay listing that doesn't annoyingly put BOTH 16U2 and CH340G in the listing title to stage extra hits.</p><p>/)_-</p>
<p>Thank you very much for this article!</p>
<p>I have a genuine Uno - can I use this board to write the boot loader on a mega or mini?</p>
<p>for OS X users life is too short - return the board to the seller and get one that works - at this price point it's not worth the effort and time is better spent on other projects - i ran across this problem with an UNO - funny how a Mega from the same maker worked properly though...</p>
<p>me again, i have some aditional info. the smd LED (L) is all the time on, after powerup or reset it will flash 3 times und then it will be on. i had writen a sketch that pin 0 to pin 16 set to output and set all of them to LOW, but the LED is still on, strange</p>
<p>thx for the great Tutorial, i have the same clone like in this tuterial. i can upload the led blink example, i get no error, but the sketch dosen't work, nothing will happens no LED is blinkging. Does it mean the sketch is uploaded well??? When i try another Board Model i get an error. So i installed with my working Uno the bootlaoder, but it dosen't fix the problem :-(. when i do a get board info: i will get BN: Unknown Board VID: 1A86 PID: 7523 SN: Upload any sketch to obatin it. what does it mean?, pls, can somebody explain me, i also put a external LED on the Pin13 but it wont' be blink :-(</p>
<p>Thanks, without you I'd be lost!</p>
But when After selecting port, then selecting board info. It shows bn: unknown board. Despite I uploaded sketch
Thank you. I was going to through this chinees uno. But now is working
<p>Was stuck trying to use a few old generic units but all working fine now. Thankyou so much for your advice and links :) </p>
<p>Done burning bootloader but the clone still won't work</p>
<p>Thanks so much! I bought some clone Arduino Mini's which weren't working at all. I followed the &quot;burn bootloader&quot; steps and they are now working. </p>
<p>I'm using Linux and have not had a problem with the CH340 chip at all.</p>
<p>I am using Linux and I see a problem with CH340G!</p><p>There is an example for ArduinoISP, it is part of Arduino IDE. When I load it to Nano V3 with FTDI, it works fine. When I load it to Nano V3 with CH340G, it doesn't work!</p><p>I am not sure what is a problem, it could be that CH340G has smaller buffer for FIFO and buffer overruns or some problem in Linux driver.</p><p>Load ArduinoISP example to your arduino; no real ISP wiring is needed, it fails before it starts to take care about other chip. Try this command, it works with FTDI and doesn't work with CH340G (protocol error):</p><p>avrdude -c stk500v1 -P /dev/ttyUSB0 -b 19200 -p m328p -vvvv</p>
Hi,<br><br>Have you tried using a lower baud rate? Have you got more than one CH340G? If so, do they all behave the same way. Might be a faulty chip.
I'm sorry but I don't have experience with Lunix and Arduino. But some say it should work without installing the driver.
<p>Yes, it really works, no need to install drivers at Linux. When I run a simple application to send data over serial port, Arduino with CH340G works great. Unfortunately, I ordered this Arduino to build an ISP programmer and avrdude has a problem with CH340G. I have found how to modify source code of avrdude to talk to Arduino with CH340G. The point is that Arduino with FTDI chip works better than Arduino with CH340G...</p>
<p>Thank you so much for these great intructions.</p><p>My Arduino UNO is back to life.</p><p>You're a genius!</p>
<p>If you have a 2560 Chinese clone don't forget to go into your computer's driver settings and manually switch over. I spent hours trying all the different suggestions and it was just that simple.</p>
<p>Hi! Unfortunetly I am still having troubles with an CH340 ARDUINO MEGA 2560. I'm using an original Arduino Uno to burn it's bootloader but I get the message : </p><p>avrdude: Yikes! Invalid device signature.<br> Double check connections and try again, or use -F to override<br> this check.</p><p>Any ideas?</p>
<p>i have the same problem too and need the answer</p>
<p>Thank you Tom,</p><p>Excelent trouble shooting instructions.</p><p>It works also on the chinese &quot;Arduino&quot; Mega 2560</p>
<p>HI!</p><p>I'm having some problem with a Nano chinese clone.</p><p>I already re-flashed firmware and installed COM drivers; but I keep getting this error trying to programming ANY sketch!</p><p>avrdude: verification error, first mismatch at byte 0x00ea<br> 0x05 != 0x06 --&gt;(random values with different sketches)<br>avrdude: verification error; content mismatch</p><p>do you have any idea?</p>
<p>Have hou chosen Arduino Nano among boards men&ugrave;?</p>
<p>Thanks for your instructable. It really saves time. I really appreciate it.</p>
<p>Theft is theft.. as a software developer it's the same to me, if you make a living from proceeds or products that are being cloned you would have the same view.</p><p>The Italian company that makes the Arduino also pumps their time and money into the IDE that made it so easy to use.</p><p>Some of those chips on the boards are also rip-offs also, the Chinese are making copies of low tech chips.</p><p>Why would you buy a clone? </p>
Settle down, dude. First, no one is stealing anything. Second, we're just having fun so no need to get your panties in a bunch. Arduino is open source thus anyone can use it...legally. You would know this if you knew anything about the industry. Settle down, drop it, and enjoy the instructable with the rest of us. <br>
<p>Actually I do know the industry, I was a chip designer for many years. Open source doesn't mean Chinese companies can reverse engineer a chip by pulling the layers off and making their own copy for sale.</p><p>I have 24+ patents, many of them are used by millions of people everyday. People and companies that employ them should be rewarded for being smart, generating patents and protecting IP benefits us all.</p><p>Yes I would take the high ground, enabling this fake to work is just enabling an open market for these clones.</p><p>The CH340 is a fake.. what struck me was no one here really seemed to care when they should.</p>
<p>I hope you are making good royalties on your 24+ patents, many used by millions of people.</p><p>But you appear to be promoting a very loose concept of intellectual property, where any new product which competes in the same market niche is automatically a &quot;fake&quot; and some kind of theft.</p><p>The CH340g is a USB to Serial chip. It's a new chip with different features (like IRDA and parallel port options), with a different name, and requiring different drivers (from the manufacturer, not from FTDI). It doesn't in any way pretend to be an FTDI chip - to consumers, manufacturers, or host computers. It's no more a &quot;fake&quot; than a Toyota sedan is a &quot;fake&quot; Chevrolet or Fiat. This is not theft, it's called &quot;competition&quot;; the CH340g is a cheaper alternative in the USB to Serial market; it may or may not be inferior to FTDI products in other ways so the buyer can choose whether to buy the FTDI, the CH340g, or an ATMega 32U, etc.</p><p>There ARE FTDI clones which pretend to be FTDI, and use the FTDI drivers. They appear to be near-exact but not fully exact clones, so the FTDI drivers can tell the difference, tho it's not evident to users. Whether intellectual property was violated, or a &quot;clean&quot; reverse engineering process was used, is beyond my knowledge. But in any case, that's a very different thing than the CH340g situation, where there is no deception or pretense.</p><p>It's appropriate for you to protect your patents from real infringement; it's not appropriate to stifle competition by calling any competitor a &quot;fake&quot;.</p>

About This Instructable




Bio: I like to make stuff in my free time. Especially programming, cooking, electronics etc. Lately I'm making tutorials about stuff I made the last ... More »
More by tomheylen:Long range, 1.8km,  Arduino to Arduino wireless communication with the HC-12. How to connect a FT232RL programmer to the Arduino ATMEGA328 for uploading sketches $2 Arduino. The ATMEGA328 as a stand-alone. Easy, cheap and very small. A complete guide. 
Add instructable to: