3

TL;DR - How do I make a USB Serial cable work on Catalina?

I work as an embedded software developer. I write software on small circuit boards like an Arduino or BeagleBone or RaspberryPi. You might know or hear the phrase: "JTAG DEBUGGER"

Every day I use various USB serial converters to do my work.

I just got a new (Nov 2019) MacBook Pro 1 week ago with a real escape key.

I can get SOME, but not all, USB serial things to work.

Knowns:

A) (TYPE_CDC_DEVICES) Some development boards (from ST Microsystems and Texas Instruments) implement what is known as a "USB CDC ACM" Serial port:

These CDC type devices seem to work.

B) (TYPE_CHIP_DEVICES) Others are what you would describe as a "USB Serial Cable" in some cases, the usb-chip that makes this work is built into the main board and is used to as a debugger.

This is an APPLE supplied driver.

These chips come from companies like: FTDI, and PROLIFIC (Apple has a driver for this), and MICROCHIP, and SILABS.

For example the FTDI driver FROM APPLE is here:

/System/Library/DriverExtensions/DriverKit.AppleUSBFTDI.dext

These CHIP type cables and boards DO NOT WORK.

I cannot open the serial device with my TERMINAL programs. Such as: Screen, and CoolTerm and others.

C) I know the device is present, and the driver is loaded - I can see the device, but when I try to open the device I get various different errors. (The exact error depends on the application I am using).

foo@bar /dev % ls -l /dev/*usb*
crw-rw-rw-  1 root  wheel   18,  27 Dec  1 16:33 /dev/cu.usbserial-534400
crw-rw-rw-  1 root  wheel   18,  29 Dec  1 16:33 /dev/cu.usbserial-534401
crw-rw-rw-  1 root  wheel   18,  26 Dec  1 16:33 /dev/tty.usbserial-534400
crw-rw-rw-  1 root  wheel   18,  28 Dec  1 16:33 /dev/tty.usbserial-534401
foo@bar /dev % 

D) Others have problems too - I am not alone.

Trying to run screen as root does not help.

E) Tried "sudo chmod a+rwx /dev/tty.usb*"

PART 2 ....

Often these USB chips have 2 interfaces, more specifically the FTDI2232.

Interface #0 - tends to be the JTAG debugger interface.

Interface #1 - tends to be the UART debug terminal.

I need both to work. But if I can't get the basic UART to work - I can't even start with the JTAG part.

I am stuck.

8
  • 1
    Catalina make everything under the root dir read only and I’m quite positive you need read/write permissions for those devices. I’d file a bug report and downgrade to Mojave so you can at least get working again
    – Allan
    Commented Dec 2, 2019 at 3:05
  • Where do I file a bug report? Commented Dec 2, 2019 at 4:55
  • BTW - Found the Feedback Assistant, and filed an issue. You suggest "permissions" as the cause, I did a "chmod a+rwx /dev/tty.usb*" and verified that all permissions where present. See point (E) above. Commented Dec 2, 2019 at 5:18
  • That’s permissions of the file, not the device itself. See this related question: apple.stackexchange.com/q/283671/119271
    – Allan
    Commented Dec 2, 2019 at 6:15
  • In that post, the user wants to be able to rd/wr the device identified as /dev/disk<SOMENAME>, on linux these tend to be /dev/sda, /dev/sdb, the digits that follow (ie: /dev/sda1) indicate the partition number on that disk. And they want to write a full disk image - so they are trying to “chmod’” the device at the entire disk drive level. I’m doing same thing for the TTY device, rather then /dev/tty.usbmodem-SOMENUMBER ... all of these serial ports use different names that generically start with /dev/tty.SOMETHING-SOMENUMBER, so /dev/tty.usb* matches those. I don’t see what you describe. Commented Dec 2, 2019 at 15:40

4 Answers 4

2

Just FYI, I have the same problem. Using Fusion it will work on e.g. a virtual Windows Machine.

Another user has also posted this, but no replies on that thread. It appears to be a more general problem.

Update: I've been working on this for some days, but it might be working now. I am not quite sure what did the trick, however.

I've installed/reinstalled the VCP driver found here. That didn't help.

Then I also installed the D2xxHelper, which also didn't help. Actually it made it worse since this actually removed the device completely from /dev/cu.usbserialxxx.

I then rebooted the Mac and the device was back and now actually working as it should. If it was necessary to install both or only one of the two and reboot, I do not know. Hope this helps you too.

3
  • Can you clarify: NEW MAC, or an UPGRADED Mac? Per this: link developer.apple.com/library/archive/technotes/tn2459/… the last sentence says: To reiterate, all third-party KEXTs that were already installed at the time of upgrading to macOS High Sierra are automatically approved and don't require any user action, thus anybody who upgraded a working system is not effected. Only those who purchased NEW would be effected Commented Dec 4, 2019 at 15:50
  • He wrote late 2019 (so is mine) so it is a new with preinstalled Catalina :o)
    – joni
    Commented Dec 5, 2019 at 7:23
  • "automatically approved"???? Can I re-create that? Someone did this?
    – Yaro
    Commented Mar 21, 2020 at 13:50
1

On the suggestion of the developer of Serial.app, I installed the FTDI VCP driver v2.4.2, available from the FTDI Chip web site. This seems to be a functional workaround to the problem.

Yeah, Apple's driver should work without the FTDI driver, but until they get it right, installing the FTDI VCP driver should do it.

The D2xxHelper driver is needed ONLY if you want to use the FTDI library APIs to use the FTDI interface. If you want the /dev/cu(or tty).usbserial interface, you should NOT install the D2xxHelper driver.

You also should not need to reboot, just make sure you close any apps that might have been trying to access the device before you install. You WILL be prompted to Allow the driver in the SystemPreferences, Security & Privacy panel (General tab). After you get the prompt, you have 30min to "allow" before it goes away in the Security & Privacy panel. Once it goes away, it will re-appear if something tries to use it, so I assume it would re-appear if you plug a cable in, or launch an app that uses the device.

1

UPDATE: Dec/16/2019 - installed latest updated MACOS .. and problem magically went away. GRRR no explanation, no release note, just magically fixed it self.

1
  • apple magic :) In Hackintosh world USB can have tons of problems and we use patched kext that solves a list of USB problems for most of the manufacturers.
    – Yaro
    Commented Mar 21, 2020 at 13:49
0

Response from FTDI regarding signed drivers

Apple are moving from what are called Kernel Extentions (.kexts) to what are called Driver Extensions (.dexts) for the implementation of drivers starting in macOS Catalina (10.15). Currently .kexts are still supported in macOS Catalina, however after the beta release they issued an update which stopped our driver from loading. This update required our driver (FTDIUSBSerialDriver.kext) to be re-signed and notarized, we completed this process with an updated Apple Developer ID (as they lapse every two years). Unfortunately when Apple issued our new Developer ID to re-sign and notarize the driver package they did so without the .kext support option enabled (as .kexts are being deprecated it is no longer automatically included). This is why there is a code signature issue with our driver, currently we are waiting on Apple issuing us with the correct Developer ID to be able to sign .kexts for macOS Catalina.

As such our current VCP driver available on the website has a signature issue and wont load. However if the device you are using implements a default FTDI VID/PID combination it should be picked up by the inbuilt AppleUSBFTDI.dext driver and present accordingly in the ‘/dev’ folder on your system in the following form:

/dev/cu.usbserial-xxxxxxxx

/dev/tty.usbserial-xxxxxxxx

despite of having default PID VID it doesn't work on my Catalina 10.15.4 @ FTDI USB to serial module doesn't work in Catalina

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .