Introduction: 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

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

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.

Samuel

Comments

author
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
stu.tg (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

author
Hilleskog (author)2017-04-10

Thank you! Works well!

author
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?

author
AnhT51 (author)FTWingnut2017-03-16

Use this link https://github.com/adrianmihalko/ch340g-ch34g-ch34x-mac-os-x-driver

author
AnhT51 (author)AnhT512017-03-16

The china link is the bad one

author
JohnH745 (author)FTWingnut2016-12-26

I got it to work on Sierra with this: http://www.mblock.cc/posts/run-makeblock-ch340-ch3...

also useful sites were: https://www.simplicate.info/2016/09/16/ch340-drama...

and i think this is the same download as my first link https://github.com/jimaobian/CH34x_Install_V1.3

author
MartinH221 (author)FTWingnut2016-12-02

sorry it was this site: https://www.simplicate.info/2016/09/16/ch340-drama-osx-10-12-sierra-16a313a/

author
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: https://www.mac-usb-serial.com/wordpress/support/troubleshooting/

hope it can fix your issue too!

author
roger9 (author)2017-02-21

Or if you have an old OS you can buy the drivers from <www.mac-usb-serial.com/> > 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!

author
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

Usage:

(load or unload linux driver of CH34x)

//compile

#make

//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.

author
BrunoP101 (author)Shlepzig2017-01-22

I got the same issue

author
Gelfling6 (author)Shlepzig2016-09-20

Odd... I downloaded the latest Arduino IDE, and ran the 'install.sh' 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.

author
rickycatto (author)2016-09-27

Amazing! thank you

author
BrahimC4 (author)2016-08-23

thnks it works with the uc MEGA 328P AU 1544

author
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

author
CésarA33 (author)2016-07-29

thank you

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

thanks

Client3.png
author
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!

author
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

author
CharlesB131 (author)pri.vilarino2016-05-09

:D

author
ByteRider (author)2016-05-06

It works!

author
IslamS17 (author)2016-04-18

it WORKED Perfect

Thank you so much (Y)

author
VanshA1 (author)2016-04-13

Thank you so much!

It works perfectly now.

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

Thanks! It works!!!

author
AmirM1 (author)2016-03-19

thanks a lot

author
VincentB58 (author)2016-03-15

Thanks a lot man !

author
kikkawav (author)2016-03-10

Thanks a lot

author
nemeier (author)2016-02-23

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

author
jporges1. (author)2016-02-21

Thank you. It worked.

author
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.
author
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 http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

author
zammykoo (author)DragonFired2016-02-15

Try a different usb cord. It worked for me.

author
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.

author
svarc (author)2016-01-25

bought those cheap ones from here:

http://www.aliexpress.com/item/USB-Nano-V3-0-ATmeg...
couldnt make it work until i found your post (tho on Windows 7) :) thanks man allot i owe you...

author
Engin BurakA (author)2016-01-14

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

author
rsrini7 (author)2015-12-06

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

author
eddythebreaker (author)2015-11-16

Thanks a lot my friend!

author
maunde (author)2015-10-31

I would assume you are on yosemite not el capitan?

author
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

author
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...

author
MarieA10 (author)2015-07-10

author
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 :(

author
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.

Samuel

author
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

168,154views

76favorites

License:

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: