Go Down

Topic: [Guide] Permanently repair broken fake FTDI chip (Read 12938 times) previous topic - next topic


Oct 23, 2014, 09:06 pm Last Edit: Oct 23, 2014, 10:08 pm by peterpoetzi2
Unfortunately FTDI released a new driver version via Windows Update which attempts to destroy every FTDI chip by overwriting the PID with 0x0000, but with a false checksum. The faked FTDI chips do not verify the checksum and let the driver overwrite their own PID, where original FTDI chips don't.

If you have a broken fake FTDI chip on your Arduino clone/fake/compatible/whatever, then you should be able to fix it with this program: http://www.ftdichip.com/Support/Utilities.htm#FT_Prog. Unfortunately it did not work for me.

If you have the same problem, you have to set up Ubuntu on your machine or boot it from a live usb stick. For me, it did not work with a virtual machine.

Remember to delete the 2.12 Version of the FTDI driver first!

Follow these steps on your ubuntu machine in a terminal:
Code: [Select]

git clone https://github.com/mehlis/ft232r_prog
cd ft232r_prog
sudo apt-get install build-essential gcc make libftdi-dev

Now you have to insert the broken FTDI chip

Code: [Select]
If you see something like
Code: [Select]
Bus 001 Device 020: ID 0403:0000 your adapter is broken. If you see
Code: [Select]
Bus 001 Device 020: ID 0403:6001 do NOT continue!

Try setting a new PID:
Code: [Select]
./ft232r_prog  --old-pid 0x0000 --new-pid 0x6001

Execute lsusb again and see if the PID is now 0x6001

If the adapter does not work with windows, there must be something else broken too.

Now you have to attach a original ftdi chip.

Code: [Select]
./ft232r_prog --dump --save original

The values of the Original FTDI EEPROM are now saved in the file called "original"

Code: [Select]
./ft232r_prog --dump --restore original

to program your FTDI chip with the values of the original one. Be careful: you probably cannot use both chips together because the have the same serialnum. That is the reason why I do not want to post my original values here.


My Nano 3.0 has an FTDI chip, and the problem is that its VID (vendor ID) has also been set to 0000. Therefore Linux won't even list it with lsusb, since that device is invisible to it.

Do you know of anything I can do to restore its VID to 0x0403 ?
Some of my projects:
Shield for DS1337+, DS1624 and AT24C1024B (RTC, temp & mem): http://forum.arduino.cc/index.php/topic,126197.0.html
CHDK Camera remote shutter (BT, IR, USB): http://forum.arduino.cc/index.php?topic=295377.0

Go Up