Project

General

Profile

RTSystemsCablesAndMavericks » History » Revision 14

Revision 13 (Alexandre J. Raymond, 05/23/2024 05:51 PM) → Revision 14/15 (Alexandre J. Raymond, 05/24/2024 09:56 AM)

# RTSystemsCablesAndMavericks 

 RTSystems USBcables usb cables are a branded (i.e., customized) FTDI cable. They simply have different USB Vendor (VID) and Product IDs (PID) from generic FTDI USB adapters. 

 Apple OSX 10.9.x aka Mavericks now has a built in FTDI Driver, com.apple.driver.AppleUSBFTDI. 
 However, it does not load by default because it does not recognized the custom VID/PID combos that RTSystems cables use. 

 Many folks have been simply loading the FTDI OEM driver, com.FTDI.driver.FTDIUSBSerialDriver (2.2.18), and this works, but I have been able to reproduce a nasty hang when uploading from CHIRP chirp to some Yaesu radios, e.g., VX-6. 

 The workaround is to disable the OEM driver, and modify and load the Apple FTDI driver. 

 Warning you take all responsibility for mucking with your system files. Know what you are doing and how to undo it before you proceed. We do not take any responsibility for issues arising from this. 

 Also, if you do not have any issues with your RTSystems FTDI cables, CHIRP, Chirp, Mavericks, and the FTDI OEM driver, then don't bother with this procedure.  

 This is a workaround only for people who have been having these issues. 


 ## Steps 

 * Stop stop using and unplug all FTDI usb adapters 

 * Unload unload existing FTDI OEM driver (if applicable): 
 ``` shell 
 sudo kextunload -b com.FTDI.driver.FTDIUSBSerialDriver 
 ``` 

 * Disable FTDI OEM driver (if applicable): 
 ``` shell 
 sudo mv -v /System/Library/Extensions/FTDIUSBSerialDriver.kext/ /System/Library/Extensions/FTDIUSBSerialDriver.kext_disabled 
 ``` 

 * Check check to see that there are no FTDI drivers loaded: 
 ``` shell 
 kextstat | grep -i ftdi 
 ``` 
 (should not show anything) 

 * Add RTSystems VID/PIDs to Apple FTDI driver: 
 ``` shell 
 sudo nano /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBFTDI.kext/Contents/Info.plist 
 ``` 

   add following to *IOKitPersonalities* section: 
 ``` 
           <key>AppleUSBFTDI-RTSystems</key> 
                <dict> 
                        <key>CFBundleIdentifier</key> 
                        <string>com.apple.driver.AppleUSBFTDI</string> 
                        <key>IOClass</key> 
                        <string>AppleUSBFTDI</string> 
                        <key>IOProviderClass</key> 
                        <string>IOUSBInterface</string> 
                        <key>InputBuffers</key> 
                        <integer>8</integer> 
                        <key>OutputBuffers</key> 
                        <integer>16</integer> 
                        <key>bConfigurationValue</key> 
                        <integer>1</integer> 
                        <key>bInterfaceNumber</key> 
                        <integer>0</integer> 
                        <key>idProduct</key> 
                        <integer>0x9000</integer> 
                        <key>idProductMask</key> 
                        <integer>0x9000</integer> 
                        <key>idVendor</key> 
                        <integer>0x2100</integer> 
                </dict> 
 ``` 
               


 * Plug plug in your rtsystems ftdi usb adapter 

 * Force load of Apple FTDI driver: 
 ``` shell 
 sudo kextload -b com.apple.driver.AppleUSBFTDI 
 ``` 

 * Verify verify Apple FTDI driver is loaded: 

 ``` shell 
 kextstat | grep -i ftdi 
 ``` 
   should be something like: 
 ``` 
   129      0 0xffffff7f826d0000 0x7000       0x7000       com.apple.driver.AppleUSBFTDI (1.0.1b3) <77 36 5 4 3> 
 ``` 

 * Verify Apple FTDI device node is created: 
 ``` shell 
 ls -l /dev/cu.usbserial-* 
 ``` 

   *good result*: should list a device file 
   *bad result*: "no such file or directory" 

 *you should now be able to use your adapter* 

 ### Note 

 *You may need to repeat these steps if Apple updates FTDI driver (such as in a Combo Update aka Minor update release)*