Monthly Archives: December 2014

Unbrick a counterfeit FTDI chip under Linux

I recently purchased a Serial-to-TTL adapter at the Amazon Marketplace for programming of micro-controllers, such as ATMega328P.

41vFeNmOOEL._SS300_The device worked very well until I plugged it into a machine running Windows. It turned out that it contains a counterfeit FTDI chip. The latest FTDI driver bricked the device by setting it’s product ID to “0000”. I understand that FTDI tries to react on faked chips, but I would say that this is quite conniving. I’m a victim of a counterfeit product and I had no chance to recognize a faked chip when I placed my order. FTDI promised to roll back and to stop distributing the malicious driver via Windows Update. However, what shall I do with a bricked device?

Fortunately, there is a method to reset the FTDI chip back to its original VID:PID of 0403:6001:

  • Plug-in the bricked device and check the ID with “lsusb” (if it is bricked, it shows 0403:0000).
  • To re-program the EEPROM, download ft232r_prog from ft232r_prog (v1.24).tar.gz and extract it to a folder. To compile the program, make sure to have libftdi-dev installed on your system.
  • After building the program, run:
sudo ./ft232r_prog --old-pid 0x0000 --new-pid 0x600
  • Now, unplug and re-insert your USB device and run “lsusb” again.  It should show the proper id of 0403:6001. The device should show up again as ttyUSB0.