FTDI Windows Device Driver notes for BeagleBone

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.

  1. 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.

  2. 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).

  3. 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.

These lines shouldn’t have a space after “PID_”

[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

Should be:

[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

Hey guys,

Has there been any update to the available drivers for a signed, correct driver? I have installed the latest BONE_D64.exe and that did not seem to install the drivers properly, while this fix did. Obviously rebooting with F8 every time is a major pain…

Can I just sign these modified drivers myself?

Thanks!

E

While they sort things out, there are other alternatives to pressing F8 at startup:

You can sign it yourself via WinQual ($99 Class 3 Digital ID)
https://winqual.microsoft.com/help/sub_help/steps_testsig.aspx

Enable kernel debugger:
http://technet.microsoft.com/en-us/query/ff547565

Bill Mar
Special Computing

Ah,

Thanks Bill!

E

Patches with a signed set of drivers are always welcome.

I was able to load the Beaglebone with no problems on a Win7x64 system, but I know that others are having a lot of problems.

Here is my theory of why I was able to do this successfully. I have previously installed Code Composer Studio, which installed the XDS100v2 drivers onto my system. It so happens that these are the drivers with the correct VID/PID for the FTDI chip on the Beaglebone. When I connect the Bone, the XDS100v2 drivers are the ones that load, followed by a USB-serial driver.

The only way I have of confirming this is to completely uninstall all of the FTDI drivers as well as all versions of CCS, so I haven’t confirmed this yet. Perhaps a knowledgeable person on this list could help? Unfortunately, TI doesn’t provide a download of the XDS100 drivers outside of complete CCS installs, so confirming this will be a bit more work than it really needs to be. However, if it does work, then a signed driver set already exists.

I have confirmed that if you install CCS5.1, the serial port drivers for Beaglebone work on Win7x64. I’m fairly certain that this is because the XDS100 drivers being installed with CCS use the same chip as the Beaglebone, and the same VID/PID. They are signed.

Are these the correct drivers to use? If so, can we get them broken out of the CCS installation as a standalone download?

John

Hi John.

I have installed CCSv5.1. I had installed it before but then decided to uninstall yet I was not able to do that smoothly. Looked like I am not the only one facing such an issue hence followed the instructions here and then reinstalled it.

The reason I am giving out this background information is because I am unable to attach my beaglebone to my windows 7 x64 machine despite having installed CCSv5.1. It could very well be that ‘By default, 64-bit versions of Windows Vista and later versions of Windows will load a kernel-mode driver only if the kernel can verify the driver signature’ as is mentioned here.

It looks like perhaps the correct driver might have got installed but as the previous link says, windows didn’t allow it to be loaded automatically. Or it could also be the case that windows was not able to find the correct driver. This link mentions a way to sort out the mess but I would want to try to use CCSv5.1 before all that.

My next question is that while CCSv5 was being installed, it also installed ‘driver packages’ for various ‘emulators’. Now beaglebone is not directly supported by TI but as you said,

I have confirmed that if you install CCS5.1, the serial port drivers for Beaglebone work on Win7x64. I’m fairly certain that this is because the XDS100 drivers being installed with CCS use the same chip as the Beaglebone, and the same VID/PID. They are signed.

Did these drivers autoload when you connect the bone to your USB?? Or did you manually ‘point’ windows to the right place where it could load the drivers? Also in that case, you would have loaded the drivers in the ‘right order’ which is XDS100v2 drivers first and the USB-serial next. I am keen to know. Please elaborate.

try ssh into beaglebone.local. you can use putty for this.

thanks bob, Iv’e been fighting this issue for a few days. Ive got the console working now. thanks again, ted

It’s October 2012 but I still can’t get the driver to install… would have thought this wouldn’t be required now?

Is there somewhere else to download a driver? I will try linux now but that also I’ve had trouble with.

Here’s a youtube video of me trying to get the driver installed:
http://youtu.be/w_j2QVIUhhY

It works fine for me.

It works fine for me.

It's October 2012 but I still can't get the driver to install... would
have thought this wouldn't be required now?

It seems to work fine for almost all people, but I'm certainly anxious
to work out any glitches.

There is one significant issue in that I still haven't worked out
getting the drivers signed, but ignoring the warnings should be
sufficient to work-around that.

Is there somewhere else to download a driver? I will try linux now but
that also I've had trouble with.

Here's a youtube video of me trying to get the driver installed:
http://youtu.be/w_j2QVIUhhY

Out of curiosity, what revision board do you have? Newer board
revisions updated the FTDI VID/PID to enable the drivers distributed
directly by FTDI.

Try following the step-by-step at
http://beagleboard.org/getting-started using the latest BONE_DRV.exe
or BONE_D64.exe, depending on your version of Windows. There is now a
link to instructions to help you identify if your Windows is 32-bit or
64-bit. For some Windows 7 users, there is also a link to a resolution
for an issue seen by some users (not having the latest service pack).

Hey all.
My Beaglebone arrived today. With bated breath, I downloaded the BONE_D64 package off the homepage. Installing it, I proceeded to connect my Bone to the PC. The mass storage device showed up, as did USB Serial Converter A and B, but no serial port!
I did everything I could, reinstalled, but to no avail. And then I stumbled upon this page.
I was a little timid regarding modifying INF files having had a nasty experience rather recently, so I decided to go the Windows Update way. I made my PC go online everytime it detected a new device and search for the drivers off Windows Update. I should probably mention that I’m running on Windows 7 Home Premium, x64.
I then uninstalled the USB Composite device via Device Manager, and proceeded to plug it back in. Lo and Behold, while installing drivers, a USB Serial port appeared in the device dialog and was installed successfully. Hence, I guess its safe to assume (for 64-bit Windows 7 anyhow) that Windows Update actually works. Remember to set Windows to go online for all driver installs and uninstall the faulty drivers it would invariably install otherwise.
Happy hacking!

And, I used this same Windows Update approach for the ®NDIS-Ethernet gadget thingy you get when you eject the Beaglebone-worked excellently as well. Now onto some PuTTY goodness!

Bonjour,

Merci pour c’est information, mais pouvez-vous décrire de façon détaillée comment faire la modification, comment entrer dans le fichier INF, etc…

Hello, Thank you for this information , but can you describe in detail how to make the change, how to get into the INF file , etc …