This note is only for folks installing the BeagleBone under Windows.
As noted in the BeagleBone documents, the FTDI FT2232H used for USB to JTAG and Serial ports currently uses the USB Vendor ID of 0x0403 and Product ID of 0xA6D0. Device driver installers are available on the Bone; however, for Windows they have an incorrect setting in the INF files and will not load the drivers. In short, the INF files provided were for a single-port FTDI device like the FT232R and not the FT2232H.
This can easily be corrected by downloading the FTDI drivers from http://www.ftdichip.com/Drivers/VCP.htm and editing the ftdibus.inf file. These instructions are on the TI BeagleBone Wiki page (https://processors.wiki.ti.com/index.php/BeagleBone-Android-DevKit_Guide#Hardware_setup), but the information presented also has a couple errors by assigning the same VID and PID to lines for 1-, 2- and 4-port devices. Only the 2-port device lines are needed in the [FtdiHw], [FtdiHw.NTamd64] and [Strings] sections:
; … All lines above this section are OK
[FtdiHw]
%USB\VID_0403&PID_A6D0&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_A6D0&MI_00
%USB\VID_0403&PID_A6D0&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_A6D0&MI_01
; Only these two lines are necessary here - note the “&MI_00” and “&MI_01”
; This is what links the two ports of the chip to the driver
[FtdiHw.NTamd64]
%USB\VID_0403&PID_A6D0&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_A6D0&MI_00
%USB\VID_0403&PID_A6D0&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_A6D0&MI_01
; The Wiki indicates to copy the same lines for both hardware sections.
; It actually needs to have the 64-bit designation so these lines are slightly
; different from the FtdiHw section above
;
; … All lines between those above and Strings are also OK
;
[Strings]
Ftdi=“BeagleBone”
DESC=“CDM Driver Package - Bus/D2XX Driver”
DriversDisk=“FTDI USB Drivers Disk”
USB\VID_0403&PID_A6D0&MI_00.DeviceDesc=“XDS100v2 compatible USB Serial Converter A”
USB\VID_0403&PID_A6D0&MI_01.DeviceDesc=“XDS100v2 compatible USB Serial Converter B”
SvcDesc=“USB Serial Converter Driver”
ClassName=“USB”
; I included all the Strings lines here
; This is how the driver is listed in the Device Manager and Driver Properties tab
The ftdiport.inf will also need modified under the same headings:
;… lines above are OK
[FtdiHw]
%VID_0403&PID_ A6D0.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_A6D0
[FtdiHw.NTamd64]
%VID_0403&PID_ A6D0.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_A6D0
;… Lines between are OK
[Strings]
FTDI=“BeagleBone”
DESC=“CDM Driver Package - VCP Driver”
DriversDisk=“FTDI USB Drivers Disk”
PortsClassName = “Ports (COM & LPT)”
VID_0403&PID_A6D0.DeviceDesc=“BeagleBone USB Serial Port”
SvcDesc=“USB Serial Port Driver”
SerEnum.SvcDesc=“Serenum Filter Driver”
; Note that the individual port designations are note required for the port driver as they are for the bus driver
There are a couple other notes about the INF files.
-
All FTDI default VID/PID lines should be removed from any customized INF file. If this is not done, when FTDI releases a new WHQL driver version, it may overwrite and break the edits for this custom PID.
-
Any edits to the INF files will invalidate the signatures. Windows XP and 32-bit versions of Windows Vista and Windows 7 will show an “unsigned driver” warning. It is safe to proceed through this warning. 64-bit Windows Vista and 7 require signed drivers, either through WHQL, or self-signed. Until new BONE_DRV.exe and BONE_D64.exe files can be generated and released, users will need to boot these 64-bit Windows systems with the boot menu and select the option to disable the signed driver requirement on EVERY reboot or power-up. (Suspend and Hibernate are OK).
-
The TI wiki also notes that in the future, the FT2232H will use FTDI default ID values. Once this happens, users can just let Windows get the latest FTDI/WHQL-certified drivers from Windows Update. This is the usual default setting unless your IT department does otherwise. You can use the FTDI FT_Prog utility ( http://www.ftdichip.com/Support/Utilities.htm#FT_Prog) to change the PID back to the default yourself, but you’ll need to load the drivers with the modified PID at least once as noted above before FT_Prog will recognize the FT2232H. Once the FT2232H is modified back to the default, then these customized drivers could be removed. Be sure to scan the chip, make the PID modifications, save the template and then program the new settings. This will preserve any other settings that need to remain in the EEPROM.