I recently purchased an inexpensive 3D printer from a colleague who had upgraded to a larger model. The printer is a Tinyboy, or Mini Fabrikator 3D. It’s a great little printer, with one unknown flaw… it uses a fake FTDI USB-to-UART chip. FTDI pretty much makes THE USB-to-UART controller, and they know it. The problem (everyone’s problem) is that some Chinese companies have decided to make counterfeit chips, or chips that show up as an FTDI, so they can use the FTDI driver, but aren’t actually FTDI chips.
Now, back in 2014, FTDI released a driver that detected that detected these chips, and reset some identifiers on the chip to basically “brick” the chip. Sure, those that knew how, could go in and fix the chip, then downgrade the driver to one that didn’t do this, but you had to know what you were doing, and it was a huge pain. After enough outrage, FTDI admitted they were a bit overzealous, and pulled the driver. And that was that. Or rather, it was. Then, just late last week, they pushed out another driver, which got into Windows Update (for at least Windows 7), that didn’t brick the chip, but instead injected “bad” data (“NON GENUINE DEVICE FOUND!”) into the USB serial stream. This prevented anything expecting valid data (everything) from working. And it did this relatively silently. The driver installed, loaded, and then just sat there throwing bad data. I quite literally spent four hours screwing with everything I could think of trying to get this working, only to figure out the following.