macOS Hardware Driver – CP2102 Device Not Listed in /dev on macOS 10.13

driverhardwaremacos

I have the ESP32 board with Silicon Labs CP2102 controller. When I connect it to my MacBook, I can get the details about this device using the command system_profiler SPUSBDataType, but it is not listed in /dev as a virtual serial port – so I can't communicate with it.

    CP2102 USB to UART Bridge Controller:

      Product ID: 0xea60
      Vendor ID: 0x10c4  (Silicon Laboratories, Inc.)
      Version: 1.00
      Serial Number: 0001
      Speed: Up to 12 Mb/sec
      Manufacturer: Silicon Labs
      Location ID: 0x14200000 / 5
      Current Available (mA): 500
      Current Required (mA): 100
      Extra Operating Current (mA): 0

I'm using the official driver downloaded from https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers.

Any ideas how to make it visible in /dev? I have also Windows installed on the same computer where it works fine, so the HW and the USB cable are OK.

Best Answer

I found that macOS High Sierra has blocked all unsigned / unmanaged kernel extensions and the SiLabs kernel extension guide doesn’t have information on how to manually enable the required extensions.

An excellent overview of this process is at man blogs - here is one such guide:

Here are steps to allow this extension specifically:

  1. Go to "System Preferences" -> "Security & Privacy"
  2. In the bottom of the window, you will see a message "System software from developer "SiLabs" was blocked from loading."
  3. Click on "Allow" button
  4. Restart your Mac

Now my device is listed as /dev/cu.SLAB_USBtoUART and everything work as expected.