Project

General

Profile

RTSystemsCablesAndMavericks » History » Version 15

Alexandre J. Raymond, 05/24/2024 09:57 AM
Missing space

1 13 Alexandre J. Raymond
# RTSystemsCablesAndMavericks
2 1 Jens Jensen
3 15 Alexandre J. Raymond
RTSystems 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.
4 1 Jens Jensen
5
Apple OSX 10.9.x aka Mavericks now has a built in FTDI Driver, com.apple.driver.AppleUSBFTDI.
6
However, it does not load by default because it does not recognized the custom VID/PID combos that RTSystems cables use.
7
8 14 Alexandre J. Raymond
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 to some Yaesu radios, e.g., VX-6.
9 2 Jens Jensen
10
The workaround is to disable the OEM driver, and modify and load the Apple FTDI driver.
11
12
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.
13
14 14 Alexandre J. Raymond
Also, if you do not have any issues with your RTSystems FTDI cables, CHIRP, Mavericks, and the FTDI OEM driver, then don't bother with this procedure. 
15 2 Jens Jensen
16
This is a workaround only for people who have been having these issues.
17 1 Jens Jensen
18
19 13 Alexandre J. Raymond
## Steps
20 1 Jens Jensen
21 14 Alexandre J. Raymond
* Stop using and unplug all FTDI usb adapters
22 1 Jens Jensen
23 14 Alexandre J. Raymond
* Unload existing FTDI OEM driver (if applicable):
24 13 Alexandre J. Raymond
``` shell
25 1 Jens Jensen
sudo kextunload -b com.FTDI.driver.FTDIUSBSerialDriver
26 13 Alexandre J. Raymond
```
27 1 Jens Jensen
28 4 Jens Jensen
* Disable FTDI OEM driver (if applicable):
29 13 Alexandre J. Raymond
``` shell
30 1 Jens Jensen
sudo mv -v /System/Library/Extensions/FTDIUSBSerialDriver.kext/ /System/Library/Extensions/FTDIUSBSerialDriver.kext_disabled
31 13 Alexandre J. Raymond
```
32 1 Jens Jensen
33 14 Alexandre J. Raymond
* Check to see that there are no FTDI drivers loaded:
34 13 Alexandre J. Raymond
``` shell
35
kextstat | grep -i ftdi
36
```
37 1 Jens Jensen
(should not show anything)
38
39
* Add RTSystems VID/PIDs to Apple FTDI driver:
40 13 Alexandre J. Raymond
``` shell
41 4 Jens Jensen
sudo nano /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBFTDI.kext/Contents/Info.plist
42 13 Alexandre J. Raymond
```
43
44 1 Jens Jensen
  add following to *IOKitPersonalities* section:
45 13 Alexandre J. Raymond
```
46
          <key>AppleUSBFTDI-RTSystems</key>
47 1 Jens Jensen
               <dict>
48
                       <key>CFBundleIdentifier</key>
49
                       <string>com.apple.driver.AppleUSBFTDI</string>
50
                       <key>IOClass</key>
51
                       <string>AppleUSBFTDI</string>
52
                       <key>IOProviderClass</key>
53
                       <string>IOUSBInterface</string>
54
                       <key>InputBuffers</key>
55
                       <integer>8</integer>
56
                       <key>OutputBuffers</key>
57
                       <integer>16</integer>
58
                       <key>bConfigurationValue</key>
59
                       <integer>1</integer>
60
                       <key>bInterfaceNumber</key>
61
                       <integer>0</integer>
62
                       <key>idProduct</key>
63
                       <integer>0x9000</integer>
64
                       <key>idProductMask</key>
65
                       <integer>0x9000</integer>
66
                       <key>idVendor</key>
67
                       <integer>0x2100</integer>
68
               </dict>
69 13 Alexandre J. Raymond
```
70 1 Jens Jensen
               
71
72 4 Jens Jensen
73 14 Alexandre J. Raymond
* Plug in your rtsystems ftdi usb adapter
74 4 Jens Jensen
75 1 Jens Jensen
* Force load of Apple FTDI driver:
76 13 Alexandre J. Raymond
``` shell
77 1 Jens Jensen
sudo kextload -b com.apple.driver.AppleUSBFTDI
78 13 Alexandre J. Raymond
```
79 4 Jens Jensen
80 14 Alexandre J. Raymond
* Verify Apple FTDI driver is loaded:
81 13 Alexandre J. Raymond
82
``` shell
83
kextstat | grep -i ftdi
84
```
85 1 Jens Jensen
  should be something like:
86 13 Alexandre J. Raymond
```
87 1 Jens Jensen
  129    0 0xffffff7f826d0000 0x7000     0x7000     com.apple.driver.AppleUSBFTDI (1.0.1b3) <77 36 5 4 3>
88 13 Alexandre J. Raymond
```
89 4 Jens Jensen
90 1 Jens Jensen
* Verify Apple FTDI device node is created:
91 13 Alexandre J. Raymond
``` shell
92 1 Jens Jensen
ls -l /dev/cu.usbserial-*
93 13 Alexandre J. Raymond
```
94 9 Jens Jensen
95
  *good result*: should list a device file
96 1 Jens Jensen
  *bad result*: "no such file or directory"
97 3 Jens Jensen
98 1 Jens Jensen
*you should now be able to use your adapter*
99
100 13 Alexandre J. Raymond
### Note
101 1 Jens Jensen
102
*You may need to repeat these steps if Apple updates FTDI driver (such as in a Combo Update aka Minor update release)*