FTDI Bricked Chips Fix

I odn’t know if I’ve been in a cave for the last few months – I certainly have for the last couple of weeks (literally), but when I came to program my little ESP8266 boards using the only trusty FTDI chip I have here in Spain (and as you can imagine they don’t sell them at the corner shop) – I was mortified to find that the FTDI board didn’t work.

Well, it did not take long to realise that I’d missed one of the biggest scandals of modern times, the bastards at FTDI have DELIBERATELY put out an update for Windows that BRICKED counterfeit chips (now removed but too late, the damage is done).. HOW THE HELL ARE WE END USERS SUPPOSED TO KNOW??? How many people out there go and buy a car and get the manufacturer to sign a document to state that every single component in there is genuine?  I thought not. Think of all the schools who will have bought this kit on a budget, totally unaware of what was about to happen mid-lesson!!

So it turns out there are a number of counterfeit versions of the large chip you see on typical FTDI boards – and the Windows update has been deliberately BRICKING them – I would imagine this will bankrupt the company once a large manufacturer sues the ARSE off them.

Anyway, after spending the afternoon reading this up – it turns out the product ID is set to ZERO in the internal EEPROM.  Windows can neither make use of this NOR can Windows 8 do anything about it – but Linux can – and guess what, I just happen to have a RASPBERRY PI 2 here with me.. .i.e. a Linux computer.

I scoured the web, one guy offered a solution for Windows – didn’t work as Windows can’t even SEE a device with product ID 0000… so that went out of the “window” – another fellow wanted you to download something to a Linux machine but didn’t say where. That would be fine for most Linux users but I wasn’t suer – anyway here’s his blog. http://www.minipwner.com/index.php/unbrickftdi000

Finally after much searching I found this. http://binefa.cat/blog/?p=80

It didn’t work – the last line was wrong somehow. but comparing the two I could see what was wrong in that last line from the OTHER blog… and so…

Firstly plug the knackered FTDI board into your PI and try this..

$ lsusb

You’ll see a line with a reference to the board and a PID of 0000.

$ sudo apt-get install make gcc libftdi-dev
$ wget http://rtr.ca/ft232r/ft232r_prog-1.24.tar.gz
$ tar -zxvf ft232r_prog-1.24.tar.gz
$ cd ft232r_prog-1.24
$ make
$ sudo ./ft232r_prog –-old-pid 0x0000 -–new-pid 0x6001

So… unplug the board, plug it back in, run this checker again..

$ lsusb

and hopefully, Voila – Bob’s your uncle – worked for me. I unplugged the FTDI – plugged it back into Windows and…. started blowing Arduino programs once again just like the good old days.

I’d like to say at this point – I do NOT condone piracy, the company obviously worked hard to make a chip and a driver to work together – so I’d say this – don’t consider this a long term solution. Go out and buy a proper board. BUT – I consider the tactic against the end user here to be an ATTROCIOUS mis-use of trust. I suggest if you really want long term success at programming your boards – find an alternative from a company who CARE about end users! Oh and I accept NO responsibility if this breaks anything – make sure the chip is 0000 before you do this – i.e. deliberately bricked.

10 thoughts on “FTDI Bricked Chips Fix

  1. First of all: Great Blog

    In the meantime the driver will not any more brick the chip but do something different: It just lets the driver always send repeated “This is not a genuine product” to any serial listener.

    The Fake FTDI chip will work more or less under Linux. But I found they start to behave strange after some time or even die. Some do not communicate any more.

    ~Josef

  2. The way I fixed this from within Windows was to force installing the drives. Then use FTDI’s FT_PROG EEPROM programming utility to change the device ID back to 6001. I’ve provided links to two videos below for this process. FYI if you just want use the FT232 in windows it’s enough to force install the drivers. Let me know if you have any questions.

    1. Force install drivers.

    2. Reprogram EEPROM – Change device ID.

    1. Well I sorted myself with the Pi to reprogram the boards – but I’m sure those with Windows only will delight in your links, thanks.

  3. yes…that FTDI driver action was quite the eye-poke, and apparently the Arduino community was especially hit hard. I can’t condone piracy (of hardware or software), but I thought that the step of “bricking” the device wasn’t the best PR move. In FTDI’s brogues, I think I would have opted to throw a BIG warning when the fake was detected, and at random intervals thereafter, and maybe operate slower or with a restricted range (eg 9600 only). The idea is you want the consumer to hate on the company that selected the faked FTDI part, not FTDI themselves.

    About 3 years back, I bought a few serial adaptor cables ($3 each!) that used the CH340 cable. They didn’t have a native driver in windows up to win7, but my cables work without a hitch in Win 8.1.

  4. Aye unfortunately same thing happend to me :S, luckily I was able to fix it.

    Oddly enough though I thought I had read that they removed the offending driver from Windows so it no longer automatically updates the driver which bricks the FTDI when you simply plug it into the USB port.

    Still poor form from the company to do what it did.

    Cdr

  5. What?!?! Are you in spain? any chance you are in Barcelona?
    we would love to invite you at our makerspace!!! 😀

    1. Oh that would have been nice – but I’m in Spain only for another 18 hours – back in the summer though. I’m in Andalucia – a slight drive from Barcelona 🙂

      1. geeezzzzz! so close, hopefully next time that you com to Barcelona can contact us! we are madebcn.org and we would be glad to invite you next time! hopefully we can do something for next makerfaire on june!
        Cheers, your work is a great inspiration!

    1. Well apparently it will work in XP Bill, but not 8.1 as 8.1 doesn’t actually see anything with a PID of ZERO – the programmer I tried would not find the board therefore could not fix it…

Comments are closed.