Configuring the FTDI UART for use on Mojave

The FTDI drivers don’t appear to be required any more but the Apple driver (/System/Library/Extensions/AppleUSBFTDI.kext) doesn’t work out of the box with my particular device. Cribbing from these instructions:

  1. Obtain the product and vendor ID for the device by checking out the USB section of System Profiler
  2. I put the Product and VendorID into one of the entries in Info.plist and restarted the driver with:

    $ sudo kextunload /System/Library/Extensions/FTDIUSBSerialDriver.kext/ $ sudo kextload -b com.apple.driver.AppleUSBFTDI

The information in Systems Profiler was as follows: “` SheevaPlug JTAGKey FT2232D B:

Product ID: 0x9e8f Vendor ID: 0x9e88 Version: 5.00 Serial Number: FTY2MXT4 Speed: Up to 12Mb/sec Manufacturer: FTDI Location ID: 0x14200000 / 9 Current Available (mA): 500 Current Required (mA): 0 Extra Operating Current (mA): 0 ”`

The Product and Vendor IDs need to be converted from Hex to Decimal. Editing the configuration file at /System/Library/Extensions/AppleUSBFTDI.kext/Contents/Info.plist as to change one entry with those numbers. I changed it as follows:

[...]
</dict>
        <key>AppleUSBEFTDI-FT2232HQ-1</key>
        <dict>
            <key>CFBundleIdentifier</key>
            <string>com.apple.driver.AppleUSBFTDI</string>
            <key>IOClass</key>
            <string>AppleUSBFTDI</string>
            <key>IOProviderClass</key>
            <string>IOUSBHostInterface</string>
            <key>bConfigurationValue</key>
            <integer>1</integer>
            <key>bInterfaceNumber</key>
            <integer>1</integer>
            <key>idProduct</key>
            <integer>40591</integer>
            <key>idVendor</key>
            <integer>40584</integer>
        </dict>

[...]

https://developer.apple.com/library/archive/technotes/tn2315/_index.html

https://embeddedartistry.com/blog/2017/6/23/osx-getting-pesky-ftdi-debugging-devices-to-work

Essentially, use the same configuration from the original article but now use the Apple usb driver.