'Driverless' USB Serial ICs: drivers included as default Windows, Mac & Linux? - Page 1
Forum section: electronics / projects

author: Chendy
author_rank: Contributor
timestamp: May 12, 2017, 11:22:58 am
content: Hi,I have heard that (some?) FTDI ICs have drivers are supported out-of-the-box by Windows, Mac and Linux. So no drivers needed to be installed by an end user.Which models?Any other brands?Cheers!

author: Cervisia
author_rank: Regular Contributor
timestamp: May 12, 2017, 11:54:19 am
content: The USB consortium defined a standard interface for modems (CDC) which can be used for all kinds of serial devices. The driver for this is included with Windows, OS X, and Linux, but in Windows before version 10, does not work automatically without having to install an .inf file.Because of the Windows situation, most hardware makers did not bother to make their chips CDC compatible.Drivers for all common USB serial chips are included in Linux, are available for OS X, and are automatically downloaded through Windows Update. When you build your own hardware and change the device ID to be able to identify it, then you have to take care of ensuring Windows Update access yourself.

author: David Hess
author_rank: Super Contributor
timestamp: May 13, 2017, 09:58:17 am
content: Huh, I always wondered about that.Disabling CDC support in Windows to sabotage common driver support in other operating systems was pretty shrewd of Microsoft.

author: Jeroen3
author_rank: Super Contributor
timestamp: May 13, 2017, 10:48:54 am
content: At least FTDI's drivers are distributed through Windows Update when you plug one in. In contrast to Prolifics and Silabs.So FTDI is the closest you can get with "plug&play", as long as you have internet.

author: SeanB
author_rank: Super Contributor
timestamp: May 13, 2017, 11:30:03 am
content: Just be aware there are a lot of FTDI clones around, and the driver from FTDI is well known to not exactly work well with them depending on the version you have, it actively does a write to the EEprom that fails on the real chip, but the clones accept this faulty write and change the USB PID VID to 0, or write out a string of data which says this is not a genuine FTDI chip. You are almost guaranteed that any chip not from one of the larger suppliers is a fake, and a lot of these fakes land up in equipment for some reason or the other.

author: nctnico
author_rank: Super Contributor
timestamp: May 13, 2017, 01:24:31 pm
content: Windows 10 seems to support all popular USB serial devices by default and Windows 7 seems to be able to find drivers for most. I'd avoid FTDI though because if you run into a fake device (or one for which the driver thinks it is fake -has happened as well-) then you have an unsatisfied customer.

author: Fungus
author_rank: Super Contributor
timestamp: May 13, 2017, 03:05:46 pm
content: Quote from: Jeroen3 on May 13, 2017, 10:48:54 amYes, FTDI has used that feature twice (so far!) to try and brick fake chips.Let's hope all your chips are genuine, eh? Your customers are in for a bad day if they aren't.

author: TJ232
author_rank: Frequent Contributor
timestamp: May 13, 2017, 03:11:44 pm
content: My life has become way better after dropping FTDI chips from my designs for other manufacturers options.The FTDI driver "stories" (to be kind and name them stories) has created a HUUGE mess. And yes, I was used all the time FTDI chips only from traceable soureces, no Ebay & friends.I still have some around, brand new, unused, if anybody wants them can look after, I give them away for free, just postage cost.

author: abyrvalg
author_rank: Frequent Contributor
timestamp: May 15, 2017, 12:42:57 am
content: The CDC specification itself is flawed (no way to read CTS state), that's the reason for the manufacturers designing "full RS232" chips to implement custom protocols/drivers.

author: coromonadalix
author_rank: Super Contributor
timestamp: May 15, 2017, 10:31:11 pm
content: The genuine ftdi and ch340 chipset works well, up to windows 10, the cp2201 and pl2303 gave me lots of problemsThe ftdigate was a nightmare, had a clone ftdi dongle jammed with an driver update, was able to recover it with ftdi prog, but marked it with an sticker.For simplicity i use ch340 chipests / usb to serial adapters, the real FTDI are harder to find, sellers aren't always aware of the clones, even checking the vid pid signatures doesn't give enough guaranties

author: Chendy
author_rank: Contributor
timestamp: May 16, 2017, 10:16:31 am
content: thanks all,surely if designing from scratch, getting official FTDI is as easy as going a proper distributor, say through Octopart?@TJ232whats your chips of choice?

author: janoc
author_rank: Super Contributor
timestamp: May 16, 2017, 01:53:42 pm
content: Quote from: David Hess on May 13, 2017, 09:58:17 amThey didn't disable it or sabotage anything in this case (I am not sure how Microsoft could sabotage Linux driver support ...).It just didn't work without installing the .inf file telling the system that it should use driver X with the given VID:PID, because the system ignored the device class in the descriptor. That isn't specific to CDC, it was like that for pretty much any device, even monitors had .inf files. The only hw not requiring the installation of something (a driver or inf file pointing to another driver) were common HID devices (keyboard, mouse, gamepads) and hw that had drivers pre-installed in Windows already, like the FTDI chips.This stupidity reached the next level with the 64bit Win7 and up that started to require signed drivers. Even the .inf files have to be signed so that makes things a major PITA to deal with. Fortunately in Win10 they came back to their senses a bit and one doesn't need to use the Zadig tool to fix the drivers anymore - anything that enumerates as CDC class gets the generic driver assigned automatically and works.Of course, system like that pretty much defeats the purpose of having the generic device classes in the first place but that's typical Microsoft - they have an uncanny knack for half-assed implementations. They design a feature almost correctly and then screw it up with a totally silly decision at the end that makes it either unusable or a royal pain in the backside to deal with.Another such example is Bluetooth BLE support in Win10 - it kinda works (finally!), but only for paired devices. If your device is some sort of beacon that works without pairing, tough luck, there is no way to work with it at the moment, even though the non-paired mode is actually simpler to implement! Linux, Mac no problem whatsoever, as usual.

author: David Hess
author_rank: Super Contributor
timestamp: May 16, 2017, 05:23:23 pm
content: Quote from: janoc on May 16, 2017, 01:53:42 pmMicrosoft has done so many shady things that I attribute everything they do to malice until proven otherwise.As far as how, they regularly practice embrace, extend, extinguish. In this case by not supporting the CDC standard, they could make sure nobody else supported it also.

author: janoc
author_rank: Super Contributor
timestamp: May 16, 2017, 07:17:42 pm
content: Quote from: David Hess on May 16, 2017, 05:23:23 pmCare to explain how exactly would that work in this case? I really don't follow your argument and certainly not because I am a Microsoft's fanboy. USB specs are open standard, Microsoft has no control over who implements them.Windows, Macs and Linuxsupported CDC(and other USB-related things) from the start, only Windows makes using hardware devices in general (there is nothing CDC-specific here!) more pain for the users than it should be.The only thing they have achieved to do is that manufacturers like FTDI or Silabs didn't care to support CDC and support only their own proprietary driver which has more features instead. If you have to install an .inf file the hassle is the same as installing a full driver, so you can as well do that. In either case it had little to no impact on non-Windows systems, because there are drivers available for either, both vendor-provided (Mac & Linux) and community written (for Linux).

author: Richard Crowley
author_rank: Super Contributor
timestamp: May 16, 2017, 07:31:59 pm
content: Quote from: Chendy on May 16, 2017, 10:16:31 amNO!And that is the larger problem. Unless you travel to Glasgow and receive the chips hand-to-hand at the factory, there is no apparent 100% reliable way of knowing whether you have genuine for counterfeit FTDI chips. And they probably don't sell their product "over-the-counter" at their corporate headquarters (few companies do.) The churlish behaviror of FTDI, and the lack of any reliable certification is one of the major reasons people are rejecting FTDI and using alternate parts.(Octopart is not a distributor. They are a search-engine.)

author: Jeroen3
author_rank: Super Contributor
timestamp: May 16, 2017, 07:52:27 pm
content: You all react like they slept with you wife. If you just buy parts from digikey or farnell you'll be fine.

author: nctnico
author_rank: Super Contributor
timestamp: May 16, 2017, 08:45:35 pm
content: Quote from: Jeroen3 on May 16, 2017, 07:52:27 pmRead the FTDI thread. People have bought FTDI parts from Farnell which where flagged as fake by the driver. Staying away from FTDI is the only 100% sure way to stay clear of the mess they made.

author: David Hess
author_rank: Super Contributor
timestamp: May 17, 2017, 01:12:59 am
content: Quote from: janoc on May 16, 2017, 07:17:42 pmBy Microsoft not supporting the standard, they guaranteed that hardware makers would not produce products under that standard. The incentive for Microsoft is that device makers have to build drivers for every OS and since they have the most widely distributed OS, in practice that means drivers for them only. This is more of a problem with undocumented hardware so drivers usually do eventually get produced.Why support a universal standard when doing so could only help your competition? For example the standard for ACPI is not relevant. Microsoft can break it in subtle ways preventing systems compatible with Microsoft from working with operating systems compatible with ACPI.

author: Monkeh
author_rank: Super Contributor
timestamp: May 17, 2017, 01:15:33 am
content: Quote from: David Hess on May 17, 2017, 01:12:59 am.. but theydosupport it.

author: abyrvalg
author_rank: Frequent Contributor
timestamp: May 17, 2017, 03:11:09 am
content: I would repeat: with CDC it was the bad standard itself that pushed hw manufacturers to proprietary protocols, not bad support. Even a classic RS-232 is impossible to implement to 100% under CDC (missing CTS signal). FTDI custom protocol/driver implements many things beyond that: fractional baudrate, direct pins access, mpsse etc.There are many other USB classes fully supported by MS - i.e. MSD, HID, MTP, so it's strange to expect any conspiracy against CDC.

author: janoc
author_rank: Super Contributor
timestamp: May 17, 2017, 08:18:28 pm
content: Quote from: blueskull on May 17, 2017, 03:17:25 amNo, you need a driver for it too in Windows (not sure about Win10, perhaps it is included now).There used to even a FTDI-like scandal too, because these chips are widely counterfeited and the driver was causing crashes/reboots when it detected a counterfeit chip. Or maybe that was the Prolific PL2303 one, not the SiLabs.

author: janoc
author_rank: Super Contributor
timestamp: May 17, 2017, 08:22:12 pm
content: Quote from: David Hess on May 17, 2017, 01:12:59 amDavid, Microsoft supported CDC device class since Windows 98 SE/ME which is pretty much since its introduction in 1999 or so. You are making a strawman argument here.

author: David Hess
author_rank: Super Contributor
timestamp: May 17, 2017, 08:43:34 pm
content: Quote from: janoc on May 17, 2017, 08:22:12 pmSo this post was wrong? I know we ran into this problem years ago and other issues with things which should have just worked. Fiddling with the INF files was an unreliable solution.Quote from: Cervisia on May 12, 2017, 11:54:19 amMy continuing solution is to install an ISA/PCI/PCIe serial adapter. USB serial just sucks; if the signalling levels are not screwed up, then the timing is.My current favorite is the USB serial adapters which claim to be RS-232 serial but produce a non-inverted 0 to 5 volt output. Since it is non-inverted, you cannot even use them with standard level translators. If you read the fine print, they will say something like "RS-232 Compatible Polarity".This can actually work with real RS-232 level translators which decode a ground level signal for the purposes of ignoring not connected signals but that is hardly universal or even common. Level shifters usually only apply this to the handshaking lines.

author: janoc
author_rank: Super Contributor
timestamp: May 18, 2017, 08:32:58 am
content: Quote from: David Hess on May 17, 2017, 08:43:34 pmYes, it was wrong. The .inf/driver problem in Windows existed/exists, but it is not related to CDC and certainly to no complot trying to keep competition out. More like a stupid engineering decision with no f...s given about actual usability, which is a recurring theme at Microsoft ever since the DOS times.Quote from: Cervisia on May 12, 2017, 11:54:19 amUnless you are relying on bitbanging some pins on the port (like old serial mice did), the timing rarely matters. I have yet to find an USB-serial bridge that would be so much off as to not work at all, at least for standard baudrates. Throughput is a different matter, some are better than others (there was a long thread on this some time ago).Quote from: Cervisia on May 12, 2017, 11:54:19 amDon't buy cheap junk from eBay or AliExpress!Even the crappy adapter I have with a (likely counterfeit) Prolific chip has a MAX232/HIN232 inside. What you are describing is an adapter that lacks the RS232 transciever and uses direct UART output from the USB to UART bridge chip. That one is going to be TTL andnot inverted. Those should work just fine for real RS232 if you add the MAX232 line driver to it.These adapters are commonly used for connecting microcontrollers to USB, e.g. for serial debugging, as most don't have true +-15V RS232 on a DB9 connector but only TTL level UARTs.

author: sdim
author_rank: Contributor
timestamp: May 18, 2017, 09:05:29 am
content: Every modern operating system has usb serial drivers build in, as long it complies with the official usb.org protocol.It is not called "USB Serial Device" but "CDC Device" in usb.org dialect.Windows 10 have build in drivers for any CDC device.I programmed a micro-controller and I have a composite device with four serial ports.It was automatically recognized. The CDC devices have a specific signature (I think the USB class and interface). Windows will use a CDC driver for each CDC device with the correct CDC signature. The vendor ID and product ID does not matter.I also created my own drivers, I wanted the final user to see my name and the product name on the drivers. The process is very simple, create the driver inf file, use your VID and PID and then sign it. You cannot install an unsigned driver by default. If you do not have a code signing certificate you can disable driver signature verification.Linux and OSX also have build in support for CDC.Search google for CDC or CDC ACM.

author: TJ232
author_rank: Frequent Contributor
timestamp: May 19, 2017, 06:41:31 am
content: Quote from: Chendy on May 16, 2017, 10:16:31 amMostly Silicon Labs ones.

author: janoc
author_rank: Super Contributor
timestamp: May 19, 2017, 09:34:01 am
content: Quote from: TJ232 on May 19, 2017, 06:41:31 amOr the Microchip MCP2221 series of chips. Also the Chinese CH430 bridge is good, but getting it through some official channel may be a challenge.

author: Matir
author_rank: Contributor
timestamp: May 19, 2017, 09:37:43 pm
content: Is there a good alternative for the MPSSE uses in the FT*232 series? Looking for things like building JTAG adapters, I2C/SPI support, etc.

author: janoc
author_rank: Super Contributor
timestamp: May 20, 2017, 02:57:36 pm
content: Quote from: Matir on May 19, 2017, 09:37:43 pmI think not a direct replacement, but I believe Microchip has a series of USB bridges that include also I2C/SPI support. It is basically a pre-programmed PIC.