Troubleshooting

In case your USB to Serial is not working, you can try the following steps find and solve the problem.

0. Is the device connected and recognized

The first step is to actually check if the USB serial device is connected to your mac and recognized by OS X as USB Device.
Make sure you have all cables plugged in and open System Info to verify your device is connected:

Mac OS System Info overview USB devices including serial CH341 device

Alternatively, you can use the command line to list all USB devices connected to your mac:

agito:~ jeroen$ ioreg -p IOUSB
+-o Root
+-o Root Hub Simulation Simulation@14000000
+-o BRCM20702 Hub@14300000
| +-o Bluetooth USB Host Controller@14330000
+-o IOUSBHostDevice@14100000
| +-o HP LaserJet Professional P1102w@14120000
| +-o IOUSBHostDevice@14140000
| +-o Keyboard Hub@14110000
| +-o Apple Keyboard@14112000
| +-o Mad Catz R.A.T.3 Mouse@14111000
+-o IOUSBHostDevice@14500000
| +-o IOUSBHostDevice@14540000
+-o USB2.0-Serial@14200000``

This check is not dependent on any driver, and only verifies if OS X recognizes the device at USB level. If the device doesn’t show up, it is either a broken cable or broken chip.

Make sure you use a fully wired micro-USB cable!

Since the introduction of micro-USB, some USB cables are not fully wired. You might have a charge-only cable. In that case the device will never work. You can check it, when you connect the device via this cable it will never pop-up in the lists above.

1. Remove Conflicting Driver

When you connect a device to you Mac, OS X searches for the appropriate driver via a matching algorithm. In case of a USB device, OS X uses the vendor id and product id of the device to load the right driver. However, if multiple drivers are registered for a certain device, the matching algorithm becomes arbitrary. You will confronted with not working devices or strange behavior.
In the newest 3.0+ drivers we avoid this by setting a higher priority in the matching results, however, it might be better to have no conflicts at all.

To check which drivers are installed, run the following command in the terminal application:

sudo find /System/Library/Extensions/ /Library/Extensions/ -o -name osx-cp2102.kext -name osx-pl2303.kext -o -name osx-ch341.kext -o -name usbserial.kext -name usb.kext -o -name ProlificUsbSerial.kext -o -name ch34xsigned.kext

This commands detects installed drivers. It is necessary to have admin rights, so the sudo command is necessary. Alternatively you can list the directories /Library/Extensions and /System/Library/Extensions, and search for the installed kexts.

If you install our drivers then they should be installed in one of the following directories:
For OS X 10.9+
  • /Library/Extensions/osx-ch341.kext

  • /Library/Extensions/osx-pl2303.kext

  • /Library/Extensions/osx-cp2102.kext

For OS X 10.8 and earlier

  • /System/Library/Extensions/osx-ch341.kext

  • /System/Library/Extensions/osx-pl2303.kext

When no conflicting drivers are installed, the output on OS X 10.9+ should look like:

Find Conflicting Drivers

In case you have found conflicting drivers, like the ProlificUsbSerial.kext (Prolific) or usb.kext (Winchiphead), you should remove them. Execute the following steps in the terminal:

  • cd /<_path_where_conflicting_driver_is_located_>/

  • sudo kextunload ./<name>.kext

  • sudo rm -rf <name>.kext

The kextunload command may fail if the driver is not loaded. It may be necessary to reboot the mac to be sure the kexts are not loaded into the kernel.

2. Test If the Driver is Loaded

Next step is to check if the driver is loaded. Connect your USB to serial cable to your mac and execute the following command in Terminal: sudo kextstat | grep repleo

Driver kext loaded

If you don’t see a driver, please make sure it is loaded by using the commands:

  • cd /library/extensions/

  • sudo kextload ./<name>.kext

Alternatively, rebooting your mac will also load the drivers. If you don’t see the driver, it is possible you don’t own a supported device, or the driver is not loaded properly. Try to load the driver with the verbose command: sudo kextutil -v 6 ./<name of kext>.kext in the directory /library/extensions, inspect the output of sudo dmesg and contact us via support@mac-usb-serial.com for further assistance.

Since OS X High Sierra, you need to explicitly allow the drivers in the Security & Privacy pane of System Preferences. You will get a dialog System Extension Blocked during installation, which alerts you to approve the driver.

In case the sudo kextutil -v 6 ./<name of kext>.kext command shows the line:

Kext rejected due to system policy: <OSKext 0x7fc4b9d32d10 [0x7fffb095e5b0]>{ URL =
"file:///Library/StagedExtensions/Library/Extensions/osx-ch341.kext/", ID = "nl.repleo.osx-ch341" }

You still need to approve the driver. This approval UI is only present in the Security & Privacy preferences pane for 30 minutes after the alert. The gatekeeper pane in System Preferences looks like:

Gatekeeper

Our Team Identifier for the gatekeeper is: C3V2MXS8TG (BJA Electronics). When you have approved the driver, you might need to reboot your machine. Click with a normal mouse, without emulating software. Apple is strict on this.

Until you approved the KEXT, future load attempts will cause the approval button in the Security & Privacy pane to reappear but will not trigger another user alert. You can trigger it by these commands:

  • sudo spctl --add --label "Repleo"

  • sudo spctl --enable --label "Repleo"

You can verify the driver is allowed by:

sudo spctl --list |grep "Repleo"
2721[Repleo] P0 allow execute [/Library/Extensions/osx-ch341.kext]

In case this doesnot work, you can try to trigger the gatekeeper by loading the driver via kextutil, or rebooting your mac.

3. Test If the Device is Recognized

When the kext is loaded properly, it should instantiate the .cu and .tty handles. You can verify this using the terminal with the following to commands:

  • sudo dmesg | grep repleo

  • ls /dev | grep Repleo

Check serial
The log files (via dmesg) shows is the driver is correctly allocated. The ls command shows if the .cu and .tty are loaded. If an error occurs it is also visible via the dmesg. Please contact us in case you see an error, and send us the dmesg output with this error for further assistance.

4. Test the Serial Interface with a Loopback

The last test is to verify the driver is really able to send and/or receive data. Connect the RxD and TxD pin of the RS-233 connector, this will create a loopback. Any character transmitted from your Mac should also be echoed into the terminal. Use a simple tool like CoolTerm to verify if data is transmitted.

In case no data is received, it is important that is not a hardware failure. Please test the setup using Windows or Linux to ensure the hardware is operating correctly. If the hardware is not the problem, you can contact us for assistance.

Please include all the steps you did to determine the cause of the problem.