So I bought some Arduino Nano over Amazon lately and was amazed that I got 5 boards for only ~15 EUR by some chinese retailer. When I finally found some time and wanted to start programming with the Nano modules I couldn’t manage to connect them to the Arduino IDE.
If connected via USB you normally have to make the USB connection first, start the Arduino IDE and finally have to select the model and mainly the port over the Tools menu. I did so on my OSX 10.12, but the Nano module didn’t show up on the ports list. Only /dev/cu.Bluetooth-Incoming-Port was listed.
After some days of random Google researches and several driver installations without fixing the problem, I finally found out that there are two main USB to UART converter chips used which need different drivers.
Official boards use FT232 some chinese boards use a CH340 Chip
First have a look at the USB modules on your board and read if it says something like „CH34*“ or „FT232“. You could with the chip on the backside of the Arduino board like this:
First of all be sure that your board is still working and is detected at the USB Port. So go by „Apple Logo top left“ > „About This Mac“ > „System Report“ > „Hardware / USB„. Try this once without the Arduino board connected and once with the board connected. There should be an additional USB device listed. With the original Arduino boards you might directly get the board name, like „Arduino Leonard“. With the cheaper models it maybe just say „USB Device 2.0“.
To make those chips running you just need to install new drivers. Adrian Mihalko created some working drivers for macOS 10.12 and later. Go to this github project and download the latest .pkg-file.
If you already installed older versions for CH34* drivers uninstall them first. Do the following steps:
- Remove the old driver by issuing one of the following commands (depending on your installation):
sudo rm -rf /System/Library/Extensions/usb.kext
sudo rm -rf /Library/Extensions/usbserial.kext
- Restart your Mac.
- Double-click on the
CH34x_Install_V1.3.pkg
file. - Restart your Mac.
- Plug in your device. It should now be listed under the
/dev
directory. Examples: /dev/cu.wchusbserial1410
/dev/cu.wchusbserial1420
cheers.
Sebastian
I tried but it didn’t work on my mac.
Device appear as cu.usbserial-1410 (as an arduino uno or mega) and not as cu.wchusbserial-1410.
Communication though this port with arduino IDE is not working :
“ Using Port : /dev/cu.usbserial-1410
Using Programmer : arduino
Overriding Baud Rate : 115200
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding“
I found !!!
I followed this process :
Unplug any CH34* devices.
Unload the old drivers if running:
sudo kextunload /Library/Extensions/usbserial.kext
sudo kextunload /System/Library/Extensions/usb.kext
Remove the old driver by issuing one of the following commands (depending on your installation):
sudo rm -rf /System/Library/Extensions/usb.kext
sudo rm -rf /Library/Extensions/usbserial.kext
Double-click on the CH34x_Install_V1.5.pkg file and install (no need to reboot)
Instead of rebooting, you can force quit Installer after it completes.
Load the new driver:
sudo kextload /Library/Extensions/usbserial.kext
Plug in your device. It should now be listed under the /dev directory. Examples:
/dev/cu.wchusbserial1410
/dev/tty.wchusbserial14210 (driver version 1.5)
BUT Before i did csrutil disable in recovery mode …
Hi Eric,
I didn’t work with nano for I while, so maybe this is also a thing of the latest OSX updates?
Anyway, thanks a lot for sharing your finding! Much appriciated.
cheers,
Sebastian