Unbrick bricked FTDI chip

Last year around October, FTDI, the manufacturer of the popular USB to Serial converter used by many Arduinos released a driver (2.11.0 and 2.12.0) that bricks chips that it believes to be counterfeit. What it did was to set the PID (Product ID) to 0000 instead of 6001 which renders the chip unusable as Windows cannot find a driver for it. However, there seems to be a fix created by the maker community out there and so today we will be seeing on how to do it. I was given an Arduino Nano by my classmate but when I got it I could not program it. I then checked the PID at the device manager and it was showing 0000.

(This tutorial is largely based on Rei-labs.net tutorial here, but I decided to do my own version)

First thing to do is to uninstall the drivers. You can do this by going to device manager > Ports (COM & LPT) > FT232R USB UART. Right click and select Uninstall. Tick Delete the drivers software for this device and click OK.

Now go to C:\Windows\System32\DriverStore\FileRepository and delete anything that starts with FTDI (ftdibus and ftdiport)

FTDIBUSPORT

Now its time to install an older version of the FTDI drivers. Go to this website here and scroll all the way down. Download the 2.08.30 version of the drivers and depending on your computer’s OS, download the WIndows 8.1 if you have windows 8.1 or the Windows**** for all other versions.

DriverFolder

Extract the folders and double click on the exe file. Click next and accept all the license terms. Once done, restart your computer. Do not plug in your FTDI device yet.

Now go back to the  C:\Windows\System32\DriverStore\FileRepository folder and open ftdibus.inf. Open the ftdibus.inf file using any text editor. (Notepad will do)

First change the version of the driver. Find this line “DriverVer=07/12/2013,2.08.30” and change it to DriverVer=07/12/2023,12.08.30 ,without quotes. This is to fool Windows that this is the newest driver

Next go to [FTDIHw] and add this line just below it.

%USB\VID_0403&PID_0000.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_0000

Next go to [FTDIHw.NTamd64] and add this line just below it.

%USB\VID_0403&PID_0000.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_0000

Next go to [Strings] and add this line below DriversDisk=”FTDI USB Drivers Disk”

USB\VID_0403&PID_0000.DeviceDesc=”USB Serial Port 0000″

Save the file to desktop and then move it back to the original folder that you opened it.

Now open ftdiport.inf. Basically we are doing the same thing as above, but slightly different

Find this line “DriverVer=07/12/2013,2.08.30” and change it to “DriverVer=07/12/2023,12.08.30” ,without quotes.

Go to [FtdiHw] and add this line just below [FtdiHw]

%VID_0403&PID_0000.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_0000

Now go to [FTDIHw.NTamd64] and add this line just below [FTDIHw.NTamd64]

%VID_0403&PID_0000.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_0000

Now go to [Strings] and add this line just below PortsClassName = “Ports (COM & LPT)”

VID_0403&PID_0000.DeviceDesc=”USB Serial Port 0000″

Save the file to desktop and then move it back to the original folder that you opened it.

Although a restart is recommended, it seems to work for me without a restart. Now you can plug in your FTDI device and Windows will automatically install the drives. If not, go to device manager and click on Ports (COM& LPT) and right click “FT232R USB UART” and select update driver software. Select Browse my computer for driver software paste the line below as the location. Then click next. Windows should automatically find it and install it.

C:\Windows\System32\DriverStore\FileRepository

Once done, you should see “USB Serial Port 0000 (COMx). Your device can now be used, but the PID is still 0000. You can even try uploading a blink sketch if your FTDI device is an arduino . However, if you plug in your device to other computers, it will still not work. The next step is to change the PID back to default using FT_Prog

Download the software here or go to http://www.ftdichip.com/Support/Utilities.htm and scroll to FT_Prog and download the “Previous Version”

Once installed, launch the program and click on the magnifying glass. Then go to “USB Device Descriptor” on the left. Go to Custom VID/PID and select FTDI default. It should set the Vendor ID to 0403 and the Product ID to 6001. Or you can select Custom PID and set the Product ID to 6001.

FT_Prog6001FT_Prog6001default

Once done, click on the lightning icon. Double check that the Product ID is correct and then click on program. It should only take a few seconds. Then click close.

FT_Prog Program

Then unplug and plug in your device. Go to device manager and your device should not appear as USB Serial Port 0000. That means you’ve done everything correctly!

If you have any problems and/or questions, feel free to comment below 🙂

Advertisements

7 responses to “Unbrick bricked FTDI chip

  1. Michallangelo June 28, 2015 at 1:31 am

    THANK YOU VERY MUCH. You helped me with Galletto ECU programmer. (China clone)

  2. surfnturf57 September 30, 2015 at 5:41 am

    It appears that there was never a follow-up post written to address what to do if the vendorID was changed and you can no longer install the driver to change it back.

    I tried editing the .inf file to reflect the vendorID I had changed my FTDI chip to but then, attempting to install the driver produces an “Access is denied” error.

    Did you ever post a follow-up? Any brief solution that you could share?

    Thanks.

    FYI: My Arduino Nano was bricked with the new driver. I used the PROG utility from FTDI to change the productID to 6001, but that did not help. I later realized that it was because I was still using the new driver, but too late. I had already changed the VendorID to 0401 from 0403 from some bogus blog post (not yours). Now the PROG utility cannot find the nano (no driver installed). The nano appears to be permanently bricked now, yet I am still searching for a solution. The Microsoft “usbview” tool does find the nano with VID=0401, but I cannot find a way to change it back yet

  3. Mark January 31, 2016 at 7:32 am

    It would be great to have a self-executing program that could perform all of this.

  4. Amit parmar March 13, 2016 at 3:33 pm

    Thanks a lot!

  5. Acerbus Pluribus June 1, 2016 at 6:46 am

    Thank you very much!! It worked on Windows 7 x64. I had to change the permissions on the INF files so Windows let me overwrite them.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: