Introduction: Arduino Nano CH340

Picture of Arduino Nano CH340

If you are like me and ordered a cheap arduino nano clone from a chinese website like aliexpress or banggood, chances are that they come with the cheaper CH340 USB to Serial chip. This is a cheap chip that manufacturers exploit to make the clone a lot cheaper. This can also be a downside. For me, being a mac user, I had a real hard time finding drivers etc for it. In the end I found some drivers, which were pretty good and I finally could get a blink sketch uploaded. I now want to share my experience for future buyers so you can get it working a lot faster. Enjoy!

Step 1: Drivers

Picture of Drivers

Basically, let me put it this way. Buy from chinese site, get chinese drivers. I got my drivers from here. Once you have downloaded the file. Unzip the install file and start the install process. Once this is done, reboot your computer. ALTHOUGH WAIT. If you have mac and are running yosemite. You will need to follow the instructions in the next step. If you are not a yosemite user, please skip the next step and restart your computer.

Step 2: If You Have Yosemite

For the drivers to work for you, you will have to do this before you reboot your mac:

1. Open terminal

2. Write the following (just copy from here): sudo nvram boot-args="kext-dev-mode=1" Do not ess up here. It may ruin your computer if you write the wrong code.

3. Once you have pressed enter, terminal will prompt you for your user password. Insert this and press enter.

4. Once done, restart your computer.

Step 3: Testing

Picture of Testing

If everything is done correctly and there were no errors appearing. You should be able to restart your arduino IDE and see the port. For my mac it is usually like above in the picture but sometimes it changes. You will also notice that once in a while (maybe 1 time of 3) you will get errors when uploading but you do not have to care, the code will usually upload either way.

I hope this tutorial helped you and remember that the CH340 chip is a bit complicated and it may also be used in other cheap arduino board clones. Thanks for reading and once again, I hope it helped you.



Lolman4000 (author)2017-10-14

Thanks so much for this instructible!

LucM15 (author)2017-10-03

Thanks, works fine (Win7 -64)

leon-geyer (author)2017-09-22

Ou ou. I missed the step 2, shame on me, just installed without "sudo nvram boot-args="kext-dev-mode=1" and now the screen freezes after starting the computer, Keyboard and trackpad non-reactive, not even a plugged one. How can I revert that? Argh. On Sierra with a MBP 5,1.

carlos66ba (author)2015-05-07

Yes, these CH340 may have drawbacks but they have a HUGE ADVANTAGE vis-a-vis the FTDI's: they are not bricked on Windoze. Be careful guys and girls, the FTDI chips get bricked with the new Windoze drivers. (author)carlos66ba2017-07-21

I can't get this working with Windows 10 - I run the install for the driver then Windows takes over and tries to load its own drivers - then I keep getting Code 31 in device manager on the nano

Hilleskog (author)2017-04-10

Thank you! Works well!

FTWingnut (author)2016-11-28

I am running Mac Sierra, and after following your instructions, installing the driver and running the boot command "csrutil enable --without kext" listed below, my Mac now kernel panics and reboots when plugging the Arduino Nano into the USB port. What do I do now? How do I uninstall the driver?

AnhT51 (author)FTWingnut2017-03-16

Use this link

AnhT51 (author)AnhT512017-03-16

The china link is the bad one

JohnH745 (author)FTWingnut2016-12-26

I got it to work on Sierra with this:

also useful sites were:

and i think this is the same download as my first link

MartinH221 (author)FTWingnut2016-12-02

sorry it was this site:

MartinH221 (author)FTWingnut2016-12-02

I had the same issue on Sierra, my Mac crashed everytime i plugged the nano in.

this page helped me to deinstall the driver:

hope it can fix your issue too!

roger9 (author)2017-02-21

Or if you have an old OS you can buy the drivers from <> > for a few bucks. Just US$8.58 and my Mac OS 10.7.5 machine works great with the Arduino Nano and the C340 serial chip. Beats paying Apple big bucks for a new machine!

Shlepzig (author)2016-09-18

I am having these issues on Linux (Ubuntu 16.04) I have downloaded the drivers but the MakeFile won't make and the most detailed instructions I have found are:

"To install drivers, first install the drivers."

[quote]1.Please run followed executable programs as root privilege

2.Current Driver support versions of linux kernel range from 2.6.25 to 3.13.x

3.Current Driver support 32bits and 64bits linux systems


(load or unload linux driver of CH34x)



//load ch34x chips driver

#make load

//unload ch34x chips driver

#make unload[/quote]

In the end, my intention is to use this with a Raspberry Pi and it appears that the Raspberry Pi doesn't support the CH340/CH341 drivers.

Can anybody provide me with some helpful step by step instructions to bridge the gap on compiling and installing the drivers.

BrunoP101 (author)Shlepzig2017-01-22

I got the same issue

Gelfling6 (author)Shlepzig2016-09-20

Odd... I downloaded the latest Arduino IDE, and ran the '' as administrator, (If you're using the Ubuntu Software release, it's the old 1.0.5, latest release is 1.6.11).. no problems what so ever under Ubuntu 16.04, the stock CH340g chip on my nano, and whatever driver the IDE installed, works just fine.

rickycatto (author)2016-09-27

Amazing! thank you

BrahimC4 (author)2016-08-23

thnks it works with the uc MEGA 328P AU 1544

ams31 (author)2016-08-21

I had written article for ch340 Installation for Windows and was about to write for MAC then I saw this well written articles of yours with lots of positive feedback so instead of writing decided to link it back to this post of yours. Thank you

CésarA33 (author)2016-07-29

thank you

ambassallo made it! (author)2016-06-18


jw_gmail (author)2016-06-01

Ok, I have the LoLin v3 and Yosemite. I did the nvram boot-args setting change, installed the drivers, restarted, and still cannot see the device in /dev

I am still seeing the error (using sudo dmesg) when I plug the board in:

"The IOUSBFamily was not able to enumerate a device"

I tried 3 different USB cables, both ports. When I plug it in, a blue LED flashes twice - is that at least normal?

I'm thinking I got a bad nodeMcu and might try to return it. Anything I haven't tried? Thanks!

pri.vilarino (author)2016-03-27

It worked like a charm for me too. Thanks a lot, dude! You saved me a couple hours of beating my head against a wall

CharlesB131 (author)pri.vilarino2016-05-09


ByteRider (author)2016-05-06

It works!

IslamS17 (author)2016-04-18

it WORKED Perfect

Thank you so much (Y)

VanshA1 (author)2016-04-13

Thank you so much!

It works perfectly now.

Ferenc AndrásK (author)2016-03-26

Thanks! It works!!!

AmirM1 (author)2016-03-19

thanks a lot

VincentB58 (author)2016-03-15

Thanks a lot man !

kikkawav (author)2016-03-10

Thanks a lot

nemeier (author)2016-02-23

Apple, Linux or PC, no references at all, I guess Apple :)

jporges1. (author)2016-02-21

Thank you. It worked.

alex_wood (author)2015-11-23

it also works on El Capitan however I managed to make it working only following

OS-X El Capitan Steps

  • Reboot and press ⌘-R immediately after the chime to enter Recovery Mode
  • Open Terminal from the recovery mode
  • run the command csrutil enable --without kext
  • Reboot.
DragonFired (author)alex_wood2016-02-06

I've tried your 'fix' under El Capitan. The port now shows up! (Thank you) However, I get the following error message. Any idea what's up?

avrdude: ser_open(): can't open device "/dev/cu.wch": No such file or directory

ioctl("TIOCMGET"): Inappropriate ioctl for device

Problem uploading to board. See for suggestions.

zammykoo (author)DragonFired2016-02-15

Try a different usb cord. It worked for me.

zammykoo (author)alex_wood2016-02-15

Wow, after trying so many different things, this works perfectly! I followed these steps exactly.

A quick note: after rebooting the final time, the Arduino IDE finally displayed "wchusbserialXXXX" under Arduino Nano Board as a port option. I then tried uploading sketch but gave errors. THEN I tried using a different usb cord and that worked! I don't know what inconsistencies there are between different cords but my higher quality cord helped.

svarc (author)2016-01-25

bought those cheap ones from here:
couldnt make it work until i found your post (tho on Windows 7) :) thanks man allot i owe you...

Engin BurakA (author)2016-01-14

running Mac OSX 10.9.5. it worked properly only after I did step 2.

rsrini7 (author)2015-12-06

Is this ch340 drivers will support Intel Atom Laptops (Z3735F variant). Like Canvas Labbook with Windows 10.

eddythebreaker (author)2015-11-16

Thanks a lot my friend!

maunde (author)2015-10-31

I would assume you are on yosemite not el capitan?

lynch_stephen (author)2015-09-07

Hello, I followed the steps above and when I connected my Arduino Nano, the screen blanked out. It also did the same when I tried to do this on Windows 7, (through Parallels).

Is there an answer to overcome this problem.

Many thanks

FilipeC4 (author)2015-07-14

i got the same problem in my mac and my windows station, i tried the original drivers in both machine, but them i realize that is a different serial interface and search it...

MarieA10 (author)2015-07-10

dan3008 (author)2015-05-08

I've got a few CH340 arduino's including a full size uno clone. They are reliable little devices, and have worked out the box on unbuntu :D

Thanks for the driver link :D I'd lost the drivers when i reinstalled my windowz partition :(

samuel123abc (author)dan30082015-05-08

You're welcome. Yes, of course, this tutorial was mostly made because I didn't get it to work right out of the box with my mac.


dan3008 (author)samuel123abc2015-05-08

Yeh, It seems to only be debian based systems they work out the box with :/ Pitty really, you'd think that basic serial communication would be standard on all systems, It used to be when we used 9 pin serial for everything

About This Instructable




Bio: Hello, My name is Samuel, I am a student. I love micro controllers like arduino, they are my favorite interest. I also do geocaching, a ... More »
More by samuel123abc:Real time clock using DS3231 (EASY)Controlling 120-240 VAC with a relay using arduinoNokia 5110 graphics tutorial
Add instructable to: