CH340 CH341 serial adapters fix for El Capitan OS X

UPDATE 4 Jan 2016
I have seen this driver reported as working without disabling kext signing Signed CH340 Driver
http://blog.sengotta.net/signed-mac-os-driver-for-winchiphead-ch340-serial-bridge/
Thanks Björn.
I have not tested it as i have already done the below and am fine with it but you can give it a try. Hit me up on @tzapulica if it doesn’t work.

nodemcu 0.9 CH340G serial adapter chip

There are a lot of devices using a CH340, CH340G or CH341 serial adapter that no longer work under El Capitan. NodeMCU 0.9, WeMos D1 Mini and a lot of Arduino clones use these chips. You might have discovered that your Arduino IDE can no longer find a serial port in El Capitan.

Like under Yosemite, any CH340 or CH341 based usb to serial adapter will not install because El Capitan enforces kext driver signing.

Since no updated and signed drivers came from WCH the only way to install them is to disable kext signing verification on both Yosemite and El Capitan. Unfortunately this leave your system a bit less secure than Apple intended but if you need to play…you need to play. Just use your own head before deciding to do this.

Under OS X 10.11 El Capitan Apple change the way kext signing can be disabled by introducing “System Integrity Protection” and a new cli util “csrutil”.

To disable kext signing you will need to do the following:

  • Reboot and press CMD+R immediately after the chime to enter Recovery Mode
  • Open Terminal from Recovery mode
  • run the command csrutil enable --without kext
  • reboot

You should now be able to install the serial adapter drivers from WCH Chinese CH340 CH340G CH341 Drivers

You can also inspect the status of the System Integrity Protection with

csrutil status

from terminal. Output will be something like:

System Integrity Protection status: enabled (Custom Configuration).

Configuration:
Apple Internal: disabled
Kext Signing: disabled
Filesystem Protections: enabled
Debugging Restrictions: enabled
DTrace Restrictions: enabled
NVRAM Protections: enabled

This is an unsupported configuration, likely to break in the future and leave your machine in an unknown state.

More info about System Integrity Protection that i found useful.

I have tested this on a Retina MBP with El Capitan GM trying to get a NodeMCU board working with Arduino IDE. It worked !!! I could see my CH340 based device under the Tools/Port in Arduino IDE.

arduino ide found wchusbserial1410 device

I hope it’s useful for someone as I couldn t find all the info in one place.

Category: blog

Tags: , , , , ,

- September 24, 2015