Just like Windows 8 broke PteroDAQ until we figured out a workaround, so does Mac OS 10.11.
It turns out that the reason is the same—Mac OS 10.11 now won’t mount some USB serial devices unless there is a signed .kext file. This is supposedly part of the “security” of the operating system, but it causes the same havoc as Windows-8’s insistence on signed drivers.
There are workarounds described in a couple of places:
WARNING: This will disable the new Rootless protection.
OSX 10.11 has a new feature called “System Integrity Protection” that blocks any kind of third party driver from being used. This is also referred to as “Rootless”. This process will turn that off and allow you to run processes that can modify system files.
- Install your USB Serial adapter drivers if you haven’t already done so.
- Open a terminal and type
sudo nvram boot-args="kext-dev-mode=1 rootless=0"
- Open terminal with USB adapter attached and cd to /dev
- type ls and your adapter should show up like tty.usbserial.
sudo chmod -R 755 /System/Library/ProlificUsbSerial.kext/
sudo kextload /System/Library/ProlificUsbSerial.kext/
It is not clear that these workarounds are any good though, as there is a discussion by the Teensy developer [https://forum.pjrc.com/threads/32602-Mac-OS-X-El-Capitan-No-Serial-Port-Solution-inside?highlight=capitan]:
This should not be necessary for Teensy.
Teensyduino never installs any drivers on Macintosh or anything else requiring root access. The serial driver is built in to every version of OSX. You *do* need this for some Arduino clones that have special drivers. But Teensy uses only the built-in drivers from Apple.
However, Teensyduino does modify your copy of Arduino. That can make Gatekeeper unhappy. On Yosemite or later, you need to move Arduino to /Applications (or whereever you want it to live) and run it at least once to confirm you want to run something downloaded from the Internet. Sometimes Gatekeeper will forget this if you move it to another location, so move it first. After passing the Internet downloaded check, install Teensyduino.
Another forum member in that thread reports:
I am on a Mac running the latest OSX 10.11.2 and have had no problems with port recognition.
It seems like the first release of El Capitan had a badly broken USB stack, but this may be fixed in 10.11.2. I would try updating the Mac OS before trying any workarounds. I don’t have a Mac with 10.11 installed, so I don’t see how I can debug the problem myself. Do any of my readers have Mac OS 10.11 and a Teensy board? Does PteroDAQ work with it? (Download a new copy of PteroDAQ if you are using the latest Arduino environment, as Arduino changed which files it compiles, and we had to put #ifndef protection around several files that were only for the mbed.org environment.)
[Update 2016 Feb 6: I changed the way that PteroDAQ lists the ports, borrowing somewhat from the PySerial code. I now list the IOSerialBSDClient services, and look for one with an ancestor in the registry that is AppleUSBEHCI (for Arduino FTDI boards and OS X 10.6.8) or AppleUSB20HubPort (for Teensy boards on OS 10.11.3) and get the name from the child of that. I’ve not been able to test on Leonardo boards, because my son has that board in Santa Barbara.]