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:
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:
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!
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)
LikeLike
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!
LikeLike
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…
LikeLike
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
LikeLike
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…
LikeLike
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!
LikeLike
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.
LikeLike