[Guide] Permanently repair broken fake FTDI chip

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: Utilities - FTDI. 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:

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

Now you have to insert the broken FTDI chip

lsusb

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

Try setting a new PID:

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

./ft232r_prog --dump --save original

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

Try

./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 ?