NerdKits - electronics education for a digital generation

USB-Serial Overview with CH341 driver

Note: This entire page refers to a older type of USB-Serial cable that we no longer use as of September 2008. Please see up-to-date information.

To allow you to program and talk to your USB NerdKit microcontroller over USB, we make use of a USB to Serial adapter (included with the kit). This page summarizes driver compatibility for various operating systems.


The USB kits include a Windows driver for the cable. This includes full support for Windows Vista, XP, 2000, ME, and 98. Like all device drivers, this driver must be installed as the administrator user.

Supported Windows versions:


Support for the device is mostly in the Linux kernel (but may require some patches and recompiling of the Linux kernel), in the ch341 module. This module is provided in the 2.6.24 and newer kernels, and in recent distributions such as that included with Ubuntu Hardy Heron.

However, kits ordered on or after May 19, 2008 may include a device with a new USB "product ID code", which means that the Linux driver doesn't recognize it anymore. We have submitted a patch to the Linux kernel development team on May 16, 2008, but until it is widely distributed, you will have to do the (one-line) patch yourself, which simply adds the new vendor and product codes to the driver. You should be able to add this line to all kernel versions 2.6.24 and up. If you've compiled your own kernel before, this will be easy for you. If not, you might want to make this work before purchasing.

Note: To ease the transition, we had set aside some USB-serial adapters with the original codes, so that they will work with unpatched kernels 2.6.24 and up. We are now sold out of those cables, so the patch is required.

Also, please be sure to use avr-libc version 1.6 or greater. Ubuntu users in particular have noted the need to upgrade.

Mac OS X

There is currently no OSX driver for the ch341 device. However, we're hopeful that there will be soon. Given the availability of a GPL-ed Linux driver, it seems likely that this is possible.

If you're an OS X developer and might be interested in developing/packaging such a driver (and releasing the result as open source), let us know if we can help.

Did you know that microcontrollers have two different kinds of memory, program space (flash) and SRAM? Learn more...