Win 10 FTDIgate solved!

My recent upgrade to Windows 10 has brought back to me an old issue: FTDI drivers.

Yes, I’ve bought cheap Chinese Arduino clones, mostly small boards to use in my projects as the official ones are quite expensive.

I never had problems on my previous Windows 7 install: even if I knew I was probably using one or more of those infamous FTDI counterfeited usb-to-ttl chips, I was lucky enough to dodge the FTDIgate.

When today, while setting up again my Eclipse + Arduino Eclipse Plugin, I stumbled into a weird message on the serial console my first thought was they did it again!

So, if your cheap Arduino clone has suddenly stopped responding and your OS is Windows 8, 8.1 or 10 you are probably stumbling on my exact same issue and you might want to carefully read this post to solve your troubles.

1. Assess

First of all you want to verify you are affected by the new FTDIgate, so connect via a serial terminal of your choice to your problematic Arduino: if you see a repeated message stating NON GENUINE DEVICE FOUND! then welcome aboard!

2. The tools

We will download all the tools we need upfront because this process implies we will have to disconnect from the Internet at a certain point to prevent Windows 10 to kick our butts with its automatic updates.

What you need is:

  • an older version of the FTDI drivers, latest working ones are 2.10.00, which you can get from FTDI in the No Longer Supported section (get the zip version)
  • a tool called CDMUninstaller which completely removes the existing drivers and it’s distributed by FTDI itself

3. Clean up

First we need to remove the drivers causing us all these troubles. If you believe you can do that via the Windows Device manager then youa re wrong: these drivers come in two separate parts, only one of which can be managed via the default driver management tool. You need the CDMUninstaller tool to ensure the drivers are completely removed:

remove

I’m not 100% it is needed, but I suggest you restart your system now, just to be sure there are no leftovers.

4. Prepare

It’s now time to load the new drivers, but be sure to do it with your Arduino board unconnected and while being offline.

Start decompressing the drivers package, then install the drivers right clicking on the two .inf files and selecting Install from the context menu.

Now it’s a good time to verify you have solved your problem, so open a serial terminal and check you can now communicate again with your Arduino.

The drivers we have just installed are going to be replaced at first opportunity by Windows with the trouble-making ones. In order to prevent Windows to find a more recent drivers version online, which will occur as soon as you’ll go back online, you have to open the two .inf files in any text editor, change the DriverVer line with a date very far in the future (I sat mine to 01/27/2034) and save.

If you now right click on the two .inf files and select Install from the context menu you’ll receive an error message informing you the files do not match their signature: don’t worry, we are going to solve this little issue.

We need to restart our OS, but allowing for unsigned drivers install: this can be achieved only with a system restart so open the Settings app and navigate to Update & security > Recovery.

Since the next step will actually restart your computer you have to read the next paragraph carefully before selecting the Restart Now button in the Advanced startup section.

5. Advanced Restart

Once in the Advanced restart section you’ll have to browse the advanced settings to Disable drivers signature verification, something a little tricky to achieve, but look at the following pictures and prepare yourself:

656x307ximage49-pagespeed-gpjpjwpjjsrjrprwricpmd-ic-cwzcnv7v-_
Select option Troubleshoot

656x307ximage50-pagespeed-gpjpjwpjjsrjrprwricpmd-ic-s7_14-sqwn
Head into Advanced Options

656x307ximage51-pagespeed-gpjpjwpjjsrjrprwricpmd-ic-izel4o6a5
Pick the Startup Settings

656x307ximage52-pagespeed-gpjpjwpjjsrjrprwricpmd-ic-mfl_b-m4mc
And finally Restart

656x473ximage53-pagespeed-gpjpjwpjjsrjrprwricpmd-ic-m7oxusdlqr
Activate the Disable driver signature enforcement setting

During the restart process you will be asked to select an option to activate during the next boot: we need to disable drivers signature verification, which was option number 7 for me.

6. Permanent Install

After reboot you will be able to right click on the two .inf files and select Install from the context menu: you will still receive a warning, but this time you will be able to get around the issue and proceed ignoring the verification error.

You can now go back online on the Internet, this time Windows shouldn’t be able to replace your working drivers!

7. Verify

It’s now time to restart your computer and verify everything still works. After a reboot open the Device Manager, select the problematic Arduino COM port and check the drivers version: if it’s anything above the version you selected…. well, something went wrong.

If I were you would try restarting from step 1, but this time try to read more carefully the instructions!

7 thoughts on “Win 10 FTDIgate solved!

  1. Viste le difficoltà che hai incontrato a riguardo con Windows 10, io avrei agito diversamente, tipo creare un’immagine virtuale di Windows XP, al cui interno inserirei tutto l’occorrente per sviluppare e collaudare Arduino et cloni. Potrebbe risultare una soluzione dispendiosa a livello di tempo per la sua preparazione ma almeno ti eviterebbe una serie di incompatibilità e ti consentirebbe di creare una sandbox ad hoc definitiva, sempre pronta e soprattutto “trasferibile” facilmente da PC a PC, a prescindere dal sistema che poi si utilizzerà per farla partire (sia esso Win8/10 oppure una distro Linux)

    Like

    1. Hi Francesco and thanks for your comment.
      In reality working in a virtual environment is going to be harder because whenever there is a communication problem you will not know if it’s in the host controller driver or in the guest OS driver… Less layers mean easier troubleshooting, but I get your point in making a complete box and I actually might decide to invest some time in giving that a try: thanks for the suggestion!

      Like

      1. A quick update on this virtualization suggestion: since the host OS doesn’t mount the serial port without the proper drivers virtualization is not going to provide any help as the serial port will not be made visible to the guest OS unless it is also visible to the host OS.
        Good idea Francesco, sadly it cannot help in this context…

        Like

  2. Hi, I’ve the same issue with a win 7 pc and 8.1 laptop
    Can I use this same kind of procedure to reinstall the FTDI drivers
    for a freeduino and elektor uno R4 board on.
    On a win 10, I got no problem. Can that be an windows update issue or something else

    Like

    1. Sorry, as I don’t have those OS available I can’t check: I really hope somebody else will jump in and comment on this…

      Like

  3. Better solution: Buy boards with valid FTDI chips. Chip cloning by Chinese companies is stealing from us here in the United states (and other countries like FTDI). Don’t fall for the lure of cheap product at the expense of honest companies!

    Like

    1. While I totally agree with you I also wish to highlight a few aspects of this issue:
      1. not everybody is aware a valid FTDI chip is actually more expensive than a whole Chinese Arduino clone. I personally wasn’t and so I had no idea I was obviously buying a counterfeit product just by looking at the price… Blaming only the buyer is silly and has the only effect of raising the counterfeit prices to “look legit”
      2. FTDI, unable to touch the Chinese companies making profit out of those clones, went for disabling hundreds of thousands of end user devices, punishing the end users, who are not making profit out of this (very like Evil Corp action from them)
      3. I wouldn’t advise buying “devices with proper FTDI” chips, simply because the FTDI chips are overly priced: go for CH340 or other alternatives instead

      On top of that I kindly ask you to please refrain from starting an argument regarding “Chinese stealing from us here in the US” because I could say your US companies have been stealing from us Italian for the past 50 years with regards to parmesan, mozzarella, wine, spaghetti and ice cream advertised as “Made in Italy”…
      This is an illegal practice which has nothing to do with the Country of origin but with ruthless people aiming at a profit “no matter what”… From one side we have to punish the perpetrators of such actions and from the other side, we have to protect the consumer, especially those that are unaware they are buying counterfeited products.

      Like

Leave a comment