CH340 Arduino performance

There have been many low-cost Arduino boards with CH340 converter available recently. CH340 is a USB to UART/TTL converter made by WCH (Win Chip Head ? / / The converter replaces the costlier FT232 / PL2303 / CP2102 / M16U2 USB to UART converter chips and has a Windows certified driver to avoid problems with installation.

I have tested Arduino UNO board with the CH340G and the converter on WinXP, Win7 and Win8 computers. On WinXP it requires manual installation of the drivers (CH341SER.EXE available from the producers website), while on the other two versions the drivers installed automatically without any user help needed. Also mac and linux drivers are available on same page. I suggest you to have an antivirus running while downloading and running any executable from unknown source. The driver installation on WinXP is simple and requires you just to run the supplied exe file and click a button. I have tested the board with Arduino IDE on all of the computers and everything seems to work as it should.

The following arduino code was used to test the CH340 at receiving data.

The program cycles through the preset baudrates. At each baudrate the program makes arduino send a baudrate in number form and then a predefined string consisting of all human readable characters. Sending data and baudrate switching is done at 1s interval. Terminal software on PC (eg. RealTerm, Bray Terminal or whatever you choose to use) will show correct data only at the set baudrate on PC side, other baudrates will produce garbage data.I have done preliminary testing at standard baudrates of 600 – 256000 and the CH340 seems to preform quite well. The only thing that may be problematic is that it does not report framing errors (if wrong baudrate is set), however in normal operation such errors should not occur and checking for this is mostly not implemented in software I know.

I plan to do further testing with both receive and transmitt and with high data loading to determine the stability of the chip and the supplied driver. Also electromagnetic interference susceptibility will be tested, which is important for example in control and CNC applications.

EMI susceptibility is common problem of most of the USB to TTL converter chips, but can be avoided by properly wiring and protecting your circuit (eg. short and twisted cables to motors, good grounding, snubbers where applicable). If EMI interference causes the USB chip to get stuck the computer can not communicate with the Arduino anymore, however the Arduino may still work / run it’s code. Pressing reset button on Arduino won’t fix stuck USB chip, only removing power / unplugging USB cable will gelp. If EMI interference causes Arduino processor (eg. M328) to get stuck (and the USB chip still functions) the board will recover (reset and restart the program) when pressing reset button on Arduino.


Update: I have recently done some light CNC controller development on Arduino UNO with CH340 and have not experienced any problems so far.


PS: For MAC and PC the drivers can also be found at the following links: (I have not checked the following files as I don’t have MAC computer and on newer versions of legitimate Windows there is absolutely no need for installing the external drivers – they should auto-install from Windows Update)  (PC)  (MAC)

6 Comments on “CH340 Arduino performance

    • Hi !
      I am not able to load the driver in win 7 64 bit system.
      The ch341 exe program says that the driver is installed but no comunication with nano_328. Pc control panel says there is a problem with the driver.
      Any help to me please ?

      • Hi iw2fvo,

        what kind of problem does Windows show? On Windows 7 the driver should auto-install from windows update without any need for installing it manually. I have tested on Win 7 Pro 64 bit and things work as they should:
        CH340 driver properties

        Try changing the USB cable and see if it makes any difference. You can also try right clicking on the device in the device manager and choosing to update the driver via Windows update.

        If the lights on the arduino are flashing when trying to connect to it the CH340 is working OK, but some settings in the Arduino IDE may be wrong or you got an unprogrammed or faulty atmega328 chip.

        As there are many flavours of arduino clones around try to contact the seller you got it from.

        Regards dejko1

  1. hello

    the ch34xInstall.pkg driver does not function with mac os yosemite 10.10.1

    do you have any suggestions to get a arduino nano with ch340 working?

    many thanks

    • Hi,

      I don’t have Mac OS so I can’t give you first hand advice. But according to this manual you may have to disable driver signature enforcement checking before installing the driver.

      “””To install CH340 on Mac OS Yosemite 10.10 you have to run the following command in the Terminal:
      sudo nvram boot-args=”kext-dev-mode=1″
      Then reboot the computer and install the driver.”””

      Let us know if this works for you, so others can benefit from this also 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *