The CH340 chip is used by a number of Arduino compatible boards to provide USB connectivity, you may need to install a driver, don’t panic, it’s easier than falling off a log, and much less painful.
How to install the Arduino CH340 and CH341 USB Drivers on a Mac. We are modifying the driver signature enforcement so we can install the driver onto our Mac. 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.
Windows
(Manufacturer’s Chinese Info Link)
- Download the Windows CH340 Driver
- Unzip the file
- Run the installer which you unzipped
- In the Arduino IDE when the CH340 is connected you will see a COM Port in the Tools > Serial Port menu, the COM number for your device may vary depending on your system.
Older Windows Driver Version and Instructions
Download the Windows CH340 DriverUnzip the folder.If you are running a 64Bit Windows: – run the SETUP_64.EXE installer.If you are running a 32Bit Windows: – run the SETUP_32.EXE installer.If you don’t know, try the 64 bit and if it doesn’t work, the 32 bit.In the Arduino IDE when the CH340 is connected you will see a COM Port in the Tools > Serial Port menu, the COM number for your device may vary depending on your system.
Macintosh
(Manufacturer’s Chinese Info Link)
(V1.3) Download the CH340 Macintosh Signed Driver for Mavericks (10.9), Yosemite (10.10) and El Capitan (10.11) and Sierra (10.12)
Inside the zip file you will find a PDF and a “pkg” file, short version, double click the pkg file, the PDF has some extra information.
OSX Sierra (10.12) Note
A kindly user, Maarten Segers reports
FYI, the driver documented here WILL crash on OSX Sierra.
I can personally not test on MacOS and can not vouch for the above drivers at github, but there you go.
See uninstalling information at the bottom of the page if the driver causes problems for you.
Here is an older version of the Mac driver, NOT FOR 10.12 Sierra
(V1.0) Download the CH340 Macintosh Signed Driver for Mavericks (10.9), Yosemite (10.10) and El Capitan (10.11)
Linux
(Manufacturer’s Chinese Info Link)
Drivers are almost certainly built into your Linux kernel already and it will probably just work as soon as you plug it in. If not you can download the Linux CH340 Driver (but I’d recommend just upgrading your Linux install so that you get the “built in” one).
Uninstalling From Macinstosh
A couple of Mac users have said “the driver crashes my mac Sierra how do I uninstall”.
Firstly regards the crash make sure you installed the 1.3 version of the driver, not the old one. You could download it directly from the Manufacturers Website in case they have issued an update since I wrote this page.
Secondly a quick google search reveals that this is how you uninstall:
- Open a terminal and type:
cd /Library/Extensions/
- Verify that the .kext file is present:
ls | grep usbserial.kext
- Output should be:
usbserial.kext
- Then type:
sudo rm -R usbserial.kext
- Verify that the .kext file has been removed:
ls | grep usbserial.kext
- Output should be empty.
- After you should remove the files stored in receipts folder:
cd /private/var/db/receipts/
- Find the enties:
ls | grep usbserial*
- Output should be:
codebender.cc.ch34xinstaller.usbserial.pkg.bom codebender.cc.ch34xinstaller.usbserial.pkg.plist
- Remove each one of the files of the above list:
sudo rm -r
filename
`
Introduction
In this tutorial, we'll show you how to install CH340 drivers on multiple operating systems if you need. The driver should automatically install on most operating systems. However, there is a wide range of operating systems out there. You may need to install drivers the first time you connect the chip to your computer's USB port or when there are operating system updates.
Required Materials
Depending on your application, the CH340 may be populated on a breakout or development board. Here are a few boards that use this particular USB-to-serial converter.
SparkFun RedBoard Artemis
DEV-15444SparkFun RedBoard Artemis Nano
DEV-15443SparkFun RedBoard Artemis ATP
DEV-15442SparkFun RedBoard Qwiic
DEV-15123SparkFun Serial Basic Breakout - CH340C and USB-C
DEV-15096SparkFun Serial Basic Breakout - CH340G
DEV-14050SparkFun Servo pHAT for Raspberry Pi
DEV-15316Accessories
You'll also need the correct USB cable to connect the board to your computer. You may need a jumper wires and a breadboard for prototyping.
Jumper Wires Premium 6' M/M Pack of 10
PRT-08431USB 3.1 Cable A to C - 3 Foot
CAB-14743SparkFun Traveler microB Cable - 1m
CAB-14741Suggested Reading
Before you begin this tutorial, you should have the Arduino IDE installed on your computer. Check out our Installing Arduino tutorial for a step by step guide.
Serial Communication
Usb Serial Ch340 Driver Download
Connector Basics
What is an Arduino?
Logic Levels
Serial Terminal Basics
Alright, let's get to work! You can visit the next section to learn more about the CH340 and why you need the drivers, or you can skip straight to the operating system of your choice!
Meet the CH340
There are a few variants of the CH340. The CH340G requires an external crystal oscillator to function while the CH340C includes a built-in crystal oscillator. However, both function in the same fashion - they convert USB data for a serial UART and vice versa!
CH340G | CH340C |
The CH340 is also populated on development boards such as the RedBoard Qwiic to upload code using the Arduino IDE.
Drivers (If You Need Them)
The CH340 has been tested on:
- Windows 7/10
- Mac OSX
- v10.10.5 (Yosemite)
- v10.11.6 (El Capitan)
- v10.13.0 (High Sierra)
- v10.14.5 (Mojave)
- Linux
- Raspbian Stretch (11-13-2018 release) for the Raspberry Pi
- Raspbian Buster (2019-07-10 release) for the Raspberry Pi
- Ubuntu v18.04.2, 64-bit
These operating systems have the CDC drivers pre-installed, which means you shouldn't need to install any extra software. However, there are a wide range of operating systems out there, so if you run into driver problems, you can get the archived drivers linked below:
- Windows (EXE) -- Driver executable
- Windows (ZIP) : Driver v3.4 (2016-09-27)
- Mac (ZIP) : Driver v1.5 (2018-07-04)
- Linux (ZIP) : Driver v1.5 (2018-03-18)
The CH340 is made by WCH. You can find the latest version of their drivers here, but most of their pages are in Mandarin. If you use a Chrome web browser, you should have the option to have the web page translated.
Updating Drivers
If you have the older CH340 drivers installed, you may need to update them. Below are the instructions for doing so on each of the tested operating systems.
Windows 7/10
Download and run the executable.
Click the 'Uninstall' button first. Then click on the 'Install' button.
Windows CH340 Driver Installation
Driver Verification for Windows
To verify that your driver is working, you should see a difference in the following pictures after plugging the CH340 to a USB port.
Device Manager
To check that the CH340 enumerates to a COM port, you can open the device manager. You can click the Start or ⊞ (Windows) button and type 'device manager to quickly search for the application.
After opening the device manager, you will need to open the Ports (COM & LPT) tree. The CH340 should show up as USB-SERIAL CH340 (COM##). Depending on your computer, the COM port may show up as a different number.
Arduino IDE
Alternatively, if you have the Arduino IDE installed, you should also see a change in the number of available COM Ports (you may need to restart the Arduino IDE for the board to populate). Without the CH340 connected to your computer, click on Tools >Port. Take note of the Serial Ports available.
Connect the CH340 to your computer's USB port. Click on somewhere else on the screen for the menu to refresh itself. Then head back to the menu by clicking on Tools >Port. A new COM port should pop up. By process of elimination, the CH340 should have enumerated to the new COM port! Feel free to click on the COM port to select if you are uploading code to a microcontroller. Depending on your computer, the COM port may show a different number.
Serial Loop Back Test
You can also verify if the USB-to-serial converter is working by doing a serial loop back test or echo test. If you are using the breakout board, you can add a jumper between the Tx and Rx to try and echo a character in a terminal program. For more information, try checking out the Hardware Test for the serial basic hookup guide.
Mac OSX
Open the Terminal program by selecting Go >Applications.
Select and open the Terminal program under Applications >Utilities >Terminal.
If you are still unsure of how to access the Terminal, watch this video or read this Apple support article.
You'll need to move to the directory where the *.kext files are stored.
For Mac OSX v10.9+, you will need to use this command:
For Mac OSX v10.8 and below, you will need to use this command:
In this case, we will be using Mac OSX v10.13, so we will need to use the first command.
To check to see if the CH340 driver is in the correct path, use the following command to list the contents of the folder.
To look for CH340 driver files (i.e. usb.kext or usbserial.kext) in the path, you could use the following command.
Usb Serial Ch340 Driver Mac
You should see something similar to the output below after using the commands.
If you have found the file in the path, you will need to run each of the following commands in the CLI/Terminal to remove old CH340 drivers. In this case, there was only the usbserial.kext file but it does not hurt to run both commands. Make sure to have administrative privileges to ensure that the drivers are removed.
Check if the old drivers were removed in the paths by using the ls
command with your respective OS version. You will notice that the *.kext file is removed from the respective paths. In this case, the usbserial.kext was removed from Mac OSX High Sierra.
Download and extract the folder.
Then, open the '*.pkg' file from the unzipped folder and follow the instructions. You'll need to restart your computer for the changes to take effect.
Mac OSX CH340 Driver Installation File
Heads up! Depending on your settings, you may need to adjust your Security & Privacy settings to allow the CH340 drivers to function. A window may pop up indicating that the drivers have been block as shown in the image below.If you receive a window that indicates that the system extension is blocked, you'll need to open a search with Spotlight by pressing ⌘ (Command) + space bar (Space Bar). Type Security & Privacy and click on the 'Allow' button to enable the CH340 drivers.
Driver Verification for Macs
To verify that your driver is working, you should see a difference in the following pictures after plugging the CH340 to a USB port.
Command Line
Open the Terminal by heading to Applications >Utilities >Terminal if the program is not open yet.
If you are still unsure of how to access the Terminal, watch this video or read this Apple support article.
Then run the following command:
A list of devices connected to your Mac's COM ports will be displayed as a result. Assuming that the CH340 is not connected to your computer, you should see something similar to the image below.
Connect the CH340 to one of your Mac's COM ports. Check for the following changes (your board may show up under a different device name). The CH340 should show up as /dev/cu.wchusbserial*****. Depending on your computer, the COM port may show up as a different number.
Arduino IDE
Alternatively, if you have the Arduino IDE installed, you should also see a change in the number of available COM Ports (you may need to restart the Arduino IDE for the board to populate). Without the CH340 connected to your computer, click on Tools >Port. Take note of the Serial Ports available.
Connect the CH340 to your computer's USB port. Click on somewhere else on the screen for the menu to refresh itself. Then head back to the menu by clicking on Tools >Port. A new COM port should pop up. By process of elimination, the CH340 should have enumerated to the new COM port! Feel free to click on the COM port to select if you are uploading code to a microcontroller. Depending on your computer, the COM port may show a different number.
Serial Loop Back Test
You can also verify if the USB-to-serial converter is working by doing a serial loop back test or echo test. If you are using the breakout board, you can add a jumper between the Tx and Rx to try and echo a character in a terminal program. For more information, try checking out the Hardware Test for the serial basic hookup guide.
Linux
Raspbian for Raspberry Pi
Run the following commands in the CLI/Terminal when using Raspbian on a Raspberry Pi. After updating, the latest CH340 should be installed!
Other Linux Distributions
Here is a downloadable *.ZIP of standard CH340 drivers for Linux.
There are some reported cases of serial communication failure when using the factory drivers in Linux. If you encounter this problem, you can try installing patched drivers as explained in this forum post. Here are the steps (to run in the command line):
- Plug and unplug your CH340 device from the USB port
- Type
dmesg
to see what has happened- The expected output (shows 'ch341') should have the following in the recent log:
- Download the patched drivers repository and unzip the files
cd
into the directory where the files are savedmake clean
make
sudo make load
sudo rmmod ch341
to uninstall the broken driverlsmod | grep ch34
to list what modules are currently installed- Plug and unplug your CH340 device again on the USB port
dmesg
- Expected output (should show 'ch34x' now):
Depending on your root permissions, you may need to configure the serial port with the following two commands. Make sure to adjust the $username
with respect to the user ID that is currently logged in.
/dev/ttyUSB0
may be different. Try using ls
command as explained in the Driver Verification if you have issues configuring the serial port settings and adjusting the port as necessary.Driver Verification for Linux
Command Line
Plug the CH340 back to your computer's USB port. Then run the following command in the CLI/Terminal on any Linux distribution. Check for the following changes (your board may show up under a different device name).
The serial port that CH340 is connected to should pop up as a result.
Screenshot of Raspberry Pi CLI with the CH340 on ttyUSB0. Click to enlarge
Arduino IDE
Alternatively, if you have the Arduino IDE installed, you should also see a change in the number of available COM Ports (you may need to restart the Arduino IDE for the board to populate). Without the CH340 connected to your computer, click on Tools >Port. Depending on the Linux flavor that you have, the Ports may not open to display any serial ports. Take note of the Serial Ports available if it opens up.
Connect the CH340 to your computer's USB port. Click on somewhere else on the screen for the menu to refresh itself. Then head back to the menu by clicking on Tools >Port. A new COM port should pop up. By process of elimination, the CH340 should have enumerated to the new COM port! Feel free to click on the COM port to select if you are uploading code to a microcontroller. Depending on your computer, the COM port may show a different number.
Serial Loop Back Test
You can also verify if the USB-to-serial converter is working by doing a serial loop back test or echo test. If you are using the breakout board, you can add a jumper between the Tx and Rx to try and echo a character in a terminal program. For more information, try checking out the Hardware Test for the serial basic hookup guide.
Troubleshooting
COM Port is Not Showing Up as CH340 Windows
We have had a few reports on Windows 10 where the driver will automatically install and the board will show up under a new COM port as USB-Serial CH340, but with a different device name. However, the board cannot be accessed on the Arduino IDE. Others have had issues where the installation process hangs.
Based on the customer experiences, this might be specific to the manufacturer and are usually isolated cases. Users seem to be able to eventually get the board recognized by a combination of giving the computer time to finish the install (close to 20 min), plugging the board back in multiple times, reinstalling the drivers, and/or resetting the computer multiple times (repeat both steps).
Ch340 Driver Macos
COM Port Not Available Windows, Mac, and Linux
If you installed the drivers for the CH340 on your computer but have issues connecting via serial terminal or uploading code using the Arduino IDE, there may be an issue with your user settings preventing you from using the CH340. You may receive an avrdude: ser_open(): can't open device
error similar to the output shown below.
In this case, the error appeared on a Linux when trying to upload code due to the drivers not being installed and the root permissions.
Arduino Ch341 Driver
Make sure to check your configuration settings and ensure that the serial port for the CH340 is enabled for your OS. You may also need to reinstall the drivers for your operating system.
USB Cable Windows, Mac, and Linux
Certain USB cables are for power only and may not have the data lines available. Try checking your USB cable and ensure that the data lines are intact.
Issues Uploading at Fast Baud Rates
If you are uploading to certain boards like the Apollo3 on the Artemis development boards with fast baud rates, there are some platforms (Linux flavors) where the standard CH340 USB to serial drivers don't operate well at speeds higher than 115200. So if you run into upload problems, consider reducing the upload speed. For more information about upload issues, see this forum post and consider upgrading with these drivers for Mac OSX or these for Linux.
Resources and Going Further
Now that you've successfully got your CH340 up and running, it's time to incorporate it into your own project!
- WCH: CH340 Drivers
- Windows (EXE) -- Driver executable
- Windows (ZIP) -- Driver v3.4 (2016-09-27)
- Mac (ZIP) -- Driver v1.5 (2018-07-04)
- Linux (ZIP) -- Driver v1.5 (2018-03-18)
USB-to-serial converters like the CH340 are great for uploading code to a microcontroller or viewing data from a GPS on a serial terminal. Check out these tutorials to dive even deeper into the world of microcontrollers or send serial data to your computer with a GPS!
Ch340 Driver Windows 10
Serial Terminal Basics
Headless Raspberry Pi Setup
GPS-RTK Hookup Guide
RedBoard Qwiic Hookup Guide
SparkFun Inventor's Kit Experiment Guide - v4.1
Ch340 Driver Windows 7
Or check out these blog posts.