This whole VID/PID thing. What is it actually for?
At the end of the day what we want is a UART. The USB/UART adapter should say "I'm a UART" when plugged in to a USB socket. The OS then creates a virtual UART interface for the user and away we go.
Next thing we need is for the USB device to have some unique identity such that when I unplug and replug it it will come up as the same virtual COM port. None of that constant hoping around from COM10 to COM22 to ....
And of course if I plug in half a dozen similar devices they need unique ID's so that I can tell which is which.
Why should we have to care about vendor and product IDs?
Localroger is right, we should scrap all this and just use network protocols instead. That already has the appropriate IDs, MAC and IP addresses. We don't need to know who made the device on the other end.
Consider. When I talk to a device on a network I don't need to load up a different ethernet driver for every different manufacturers device on the other end of the connection! How crazy would that be?
Now, is what FTDI right? It sounds like they just took back their VID/PID which left the device inoperable since that is the key to recognizing a USB device. It isn't their device and shouldn't have their VID/PID so they are just removing it. A reasonable action on the surface. The problem lies in where and how these USB devices are being used which is where the FTDI action becomes irresponsible.
I think important questions are "is it illegal to use someone else's VID/PID?"1 and "does FTDI have the right to change the VID/PID of another device?".
I think the only reason, it's okay to change this number on the fake device, FTDI has giving is because of the wording in the EULA we are all supposed to read (though I doubt anyone every reads every one).
IMO, what FTDI has done is enough for me to go out of my way to no long purchase their chips or products with their chips.
One option for the Propeller is the SiLABS CP2102 (though I doubt it can do everything the FTDI chips can do, it does enough for my needs).
I've used this $2.20 board to program2 my Props. I'm sure there are lots of other non-FTDI options.
I wonder how much troubleshooting time people will need to spend to figure out what's wrong with devices which will appear to just stop working. Anyone not aware of FTDI's malware won't know to suspect their PC of sabotage.
I used lots of the electronics I make in my business. I can imagine plenty of scenarios where a fake FTDI chip could have ended up in one of my boards. I can think back on plenty of times where a bricked device could have seriously damaged my ability to perform work and could have been catastrophic to my business.
1. I think it's only illegal if they use the "USB" logo on the device.
2. The $2.20 device will work if a series capacitor is added to the DTR line.
I think important questions are "is it illegal to use someone else's VID/PID?"1 and "does FTDI have the right to change the VID/PID of another device?".
That's probably what it is going to come down to in the courts.
Here's what the USB consortium says about compliance:
Vendor ID Usage Mandate: Required Effective Date: February, 2007
The Vendor ID used by a product must match the VID of the company producing the product (the integrator). Please ensure that the VID used by the product matches the company making the product. The USB-IF does not permit the product to display the silicon VID instead of the company making the product.
If the VID of a product does not match the VID of the integrator, the USB-IF will not permit the device to be added to the Integrators List.
If the integrator has permission to use the VID of the other company, then written permission from the other company must be included with the checklist submission to the USB-IF. With written permission, the device may be listed on the Integrators List.
Not a lot of legal teeth in there, probably. It will come down to the money side of it - was the "loss" FTDI incurred significant enough to outweigh any "loss" caused by their actions. The actual vendors using the VID/PID probably won't care or aren't in jurisdiction of any potential lawsuits. It will boil down to deepest pockets/best lawyers and would most likely go to a class action which will only help the lawyers and not any actual victims.
A USB Vendor ID is currently around $3500-$5000.
[h=1]Getting a Vendor ID[/h] If you are a new USB product developer looking to get a vendor ID for your company, there are two preferred options for doing this: 1) Become a member of the USB-IF. Among the many benefits of being a member is the assignment of a vendor ID to your company (if one has not been previously assigned). The annual membership fee is US$4,000. Download the membership application. 2) Become a USB-IF non-member logo licensee. Logo licensees are eligible to use the USB logo in conjunction with products that pass USB-IF compliance testing. In addition, you must also purchase a vendor ID if one has not been previously assigned to your company. The licensing fee is US$3,500 for a two year term (this fee is waived for USB-IF members). Click on the link to download the Logo Trademark License Agreement and vendor ID form in order to become a logo licensee. If your company does not already have a Vendor ID number, your company must execute and return the Vendor ID form along with your USB-IF Trademark License Agreement. The Vendor ID is US$5,000. Please keep in mind that becoming a USB-IF Logo Licensee alone does not entitle your company to USB-IF membership benefits.
If you would like to purchase a vendor ID without signing the logo license agreement, the fee for this purchase is US$5,000. If you do not execute the logo license agreement, you are not authorized to use the USB logo in conjunction with your products regardless of their testing status.
Was it worth it to whoever used the FTDI VID? Probably.
I'm not condoning or condemning anyone at this point.
I do COMMEND Duane for the link to an alternative Prop Programmer. Mine are on order.
I'm not sure if I read it here or else where but I think I found the source of the problem. As usual the guilty party is MS
The statement was to the effect that "Microsoft had never shipped a working USB CDC driver." Indeed they seem to have tried their best to expunge any thoughts of serial interfaces from the landscape.
You see where that leads?
Rather than companies happily creating and shipping cheap USB/serial chips that comply to CDC, because there is no point the MS driver is no good, they have to create the chip and their own Windows driver to go with it. And they would have to keep that driver up to date with all the contortions Windows goes through over time.
Hence we have an FTDI, their chip and their driver. So far so good.
Well not so good. Given a decent MS CDC driver there should be many companies churning out serial adapter chips like 555 timers 74 series logic and TLO72 op amps. With prices to match.
So of course anyone making a USB serial adapter piggy backs on the best available Windows driver. The one by FTDI. After all it's crazy that everyone has to keep reinventing the wheel. Especially when a "standard wheel" has already been defined in this case.
NOT that I'm sayings it's OK for device suppliers to palm off whatever chip they have as an FTDI.
If only MS had done the right thing...
Anyone care to comment on the state of the Windows CDC driver today?
FTDI should have just posted up a dialog and or provided a URL describing the issue to the person installing driver software or updates.
On that page, they could do anything! Ask for tips, ask people to do their part and contact the people they got their devices from, whatever.
Maybe create a wall of shame?
Harming ordinary people, even if legal, won't win the day for them, even if they are completely right and justified about it all.
And it would only take a fraction of users with the devices at issue to get the attention of the tech press and bloggers. It goes nicely in their favor from there.
Whatever happens, have the software work, but nag people about it.
They need lots of sympethetic friends, not annoyed people.
e
Quite so. There must be far more charming and diplomatic ways to tackle the problem that FTDI has.
I'm not sure what though.
USB is supposed to be "plug'n'play"
There is a reason it has become known as "plug'n'pray". Starting from the first time Bill Gates demoed USB on Windows 98 or whatever it was in public and it immediately blue screened the machine.
A few days ago a coworker of mine plugged a serial device into his Windows 7 box via a USB/serial adapter and it was assumed to be a mouse. WTF total loss of control of his machine!
As a naive user whose device suddenly does not work the last thing I might need is directing to some web site that's trying to explain to me all the technical details of why whatever gadget I have purchased in good faith does not work.
Well then, have it work, fade in a standard windows driver notification with the URL there.
They don't have to get in anyones way, and even a single word would spark the movement I just posted.
If it were me, I would have whatever it is say something to the effect of, "your USB device is using a counterfiet chip, but we got your back, and will do our best to make it continue to work. Will you take a moment to return the favor at http://letsnailem.thanks
The single word in the driver notification would be "counterfiet" and have it clickable to the explanation page wher the story and calls to action unfold, most users unaware. It only takes one or a few who see that and click for it to start up nicely.
People really don't understand how social interaction works these days. Do something crappy, hurt the little guy, and it generally doesn't go well.
People seem to gravitate toward those in power being expected to use their position and means for generally good ways.
This is precisely why the piracy discussion went so badly, among many other examples. It's not always about the merits or legalities as much as it is about that perception. This is disturbing, but it is reality too. Ignore at your own peril. (and I am both a realist and pragmatic)
When that expectation isn't met, people respond and it gets ugly very, very quickly.
However, when it is met, awesome thing seem to happen regularly.
An example of the disturbing is Anoymous and 4Chan. Good grief, those two can make one heck of a mess. Often for things we might ignore. An example of the great is Reddit, where sometimes a bit of good alignment with those expectations results in a lot of "let's try to make it right" type efforts.
Examples abound, and I could fill pages.
A local radio station just learned this. Hired a DJ who didn't work. The peeps went off on Facebook, and the station response was not appropriate. The peeps then went off about that, educating the poor, clueless woman school of hard knocks style, and the beauty was she asked for their feed back too.
So it all got deleted, and her response? Need more intellignent listeners.... Yeah, the bell didn't ring, she failed class, and is going to have a rough road.
10 words early on would have transformed that dialog into a movement the station could not possibly pay for. Just 10 words.
(told 'em, I would fix it for a check, lulz)
Even now, 20 words could turn it around.
This stuff is powerful. And it's just there.
IMHO, these guys don't understand, and they have a cause which warrants some action too. Right now, for a short time, they are like the radio station, window open, good will possible.
A little money spent with the right people could do them a ton of good right now.
While it's true you can't own a number, you can "own" a number in a given context. I don't own xxx-xx-xxxx, but when used in context as my Social Security Number,
Mindrobots: please tell me that is not your real ssn.
The recently release driver release has now been removed from Windows Update so that on-the-fly updating cannot occur. The driver is in the process of being updated and will be released next week. This will still uphold our stance against devices that are not genuine, but do so in a non-invasive way that means that there is no risk of end user’s hardware being directly affected.
localroger said Lately I've been building Propeller boxes which communicate via Ethernet UDP via ENC28J60 and bridge to peripherals such as serial ports. These work a lot better than USB to serial adapters, they can be multi-function, I have full control if I need to change their behavior, and they work on all operating systems including in emulation.
Hmm - that is interesting. I looked up "serial to ethernet" on ebay and there are boards for around $16.
So ok, the current Propeller setup is three chips - propeller, eeprom and ftdi usb to serial. The FPGA propeller and chips that may follow can be all sorts of things.
The signals going to and from an eeprom are just digital signals. Ditto the signals to the ftdi, and indeed the two data lines on USB. So one could envisage a single chip like a propeller, no eeprom and no ftdi and it talks directly to USB.
But... what sort of a device is it? A com port, keyboard, mouse, custom device? Do you need custom driver files for these or could you emulate something that seems to be universally recognised when you put it in a usb socket, like a flash drive? So maybe something like localroger is doing is better - talk ethernet instead of USB.
A single chip, and it has 4 pins devoted to ethernet and then you add the RJ45 with magnetics. Program it via ethernet, not via serial. And then for free, you get a bonus internet connection.
Or... even more cutting edge, use these $5 wifi modules and program it wirelessly as well.
Are the raw speeds possible on the fpga emulation - eg old-skool 10 megabit ethernet?
So, it's been pointed out on another forum that FTDI may have violated the UK's Computer Misuse Act 1990, Section 36. 'Unauthorised acts with intent to impair operation of computer,' notwithstanding the added language in the EULA that sought to provide that authorization. EULA experts have weighed in that the average consumer, which does include the DIY maker community, would have no specific means to test if hardware is genuine, unless such a utility is provided to them as part of the driver update process. In that case users cannot be expected to make an informed choice, so that section of the EULA is non-enforceable.
Depending on the breeze up someone's kilt, FTDI might be subject to an inquiry, and could face some charges. (I doubt anyone's going to jail, but the act does provide for it -- unfortunately, it's per offense, which means each individual third-party product that was affected.)
If FTDI has tried to enlist the help of UK's inland revenue and customs to track down the worst of the offenders, they haven't made a big point of it. Will the UK government not help a Scottish company that's losing money to foreign scofflaws? If so, my ancestors are turning over in their haggis. I can't find any press releases or other documents on their site where they talk about their IP problems and what they have been doing to combat counterfeiters and pirates. Well, I imagine it's time they do so. Or at least make those documents much more public.
This whole VID/PID thing. What is it actually for?
At the end of the day what we want is a UART. The USB/UART adapter should say "I'm a UART" when plugged in to a USB socket. The OS then creates a virtual UART interface for the user and away we go.
Next thing we need is for the USB device to have some unique identity such that when I unplug and replug it it will come up as the same virtual COM port. None of that constant hoping around from COM10 to COM22 to ....
And of course if I plug in half a dozen similar devices they need unique ID's so that I can tell which is which.
Why should we have to care about vendor and product IDs?
Localroger is right, we should scrap all this and just use network protocols instead. That already has the appropriate IDs, MAC and IP addresses. We don't need to know who made the device on the other end.
Consider. When I talk to a device on a network I don't need to load up a different ethernet driver for every different manufacturers device on the other end of the connection! How crazy would that be?
USB is just broken. FTDI especially so.
The VID/PID pair is the start of the unique Device Id you are talking about an then there is also a serial id unique inside the vendors domain and a human readable text per device.
The same happens with MAC addresses of network adapters. They are sold like VINs. And contain a VID and a serialNo.
Because they have to be unique in a Network. Basically.
Parallax for example delivers one MAC address per Spinneret and pays for it somewhere. It is on a sticky on the back. You need then to program your Spinneret using this MAC address. Every time.
Sure. You can use Mike G's or my MAC addresses already in the code or just fake one. But it would not work with my or Mike G's Spinneret in the same network.
Same with USB or DNS/IPs. Somebody wants to get paid for to organize the uniqueness of the numbers used for identification purposes.
I do agree with you that simple things like USB-Serial should work with the standard driver provided by the OS (whatever OS it is). Seems to work for USB Sticks. Never had to install a driver from wherever to plug in some noname USB Stick on any computer.
I am not sure here but in opposite to USBSERIAL the driver from FTDI supports buffering. I am on thin ice here since I do not do driver development at all. Just overheard stuff.
Bricking (debadging) the devices was maybe not a smart move of FTDI, but in my opinion a understandable one.
It's like me standing in front of Armani and he is boiling and steaming and ripping off that Armani label from my shirt and saying "I never designed that!".
Programmers can get ****** if their work is not valued and paid for. I can understand that feeling. Been there and - well - done things along that road also in my life.
Now my provocative questions:
If they had replaced VID/PID by 'standard serial device use usbseial' instead of writing 0 and sort of removing it out of the device list, would that be OK?
It still appears as device but not as FTDI anymore. would that be OK?
What can they do to protect their work and investment and yearly costs for usb.org/apple/windows/whoelseneedstogetpaid?
FTDI put in a lot of effort to produce nice drivers for all major distributions and nice chips as well. They even have support! But because of doing all of that they are expensive compared to knockoffs from china using their VID/PIN/driver/support/investment/you name it.
In Germany we call them 'Trittbrettfahrer' a symbol for people clinging onto a train/bus/car, hanging outside and not paying any fair.
Here in the US we had some advertisement of some car insurance about 'RateSuckers'. Just think about the image on TV not the ad itself.
So I am still the advocate diabolic fighting for FTDI to keep the discussion open.
It bugs me because semantically they are different from a function identifier. VID/PID says for example "I am made by FTDI and I'm some funky chip" rather than "I'm a UART".
If they had replaced VID/PID by 'standard serial device use usbseial' instead of writing 0 and sort of removing it out of the device list, would that be OK?
Absolutely not.
What can they do to protect their work and investment and yearly costs for ... FTDI put in a lot of effort to produce nice drivers for all major distributions and nice chips as well.
I have very little sympathy for this idea.
We are talking about a UART here. About the simplest computer interfacing device ever created. Dating back to the telegraph/teletype. Such chips should be available from many sources for cents by now. Like 555 timers and 74 series logic. Well, in fact they are, from those Chinese guys.
There should not even be a need for messing with one off drivers for each vendors jelly bean UART.
With the removal of UARTS from computers and replacement with USB we were given a whole pile of complexity, unreliability and expense.
The FTDI's of the world want to be the gate keepers charging us a toll for this, a UART, the most stupid simple of things.
Well, apparently FTDI has thrown in the towel for now. The driver is gone from Windows Update and probably from FTDI (I haven't actually looked). They are "updating" the driver and it will be released next week.
According to FTDI, the new driver "will still uphold our stance against devices that are not genuine, but do so in a non-invasive way that means that there is no risk of end user’s hardware being directly affected."
The question now is will they be able to repair all the damage they caused by shooting themselves in the foot.
The old 8250 that the first PCs used, the 16550 high-speed UART that supported speeds up to 155200, or...
More advanced and faster chips comes with a cost: DEVELOPMENT EXPENSES.
FTDI spends a lot of money to design new and better chips. They really want to get their money back...
Their chips are a bit better than 'bog standard' so they give them unique IDs, and a custom driver to take advantage of that. This also costs money.
Then some underhanded pirates hacks together a copy that acts MOSTLY the same as FTDIs, uses FTDIs ID, without permission, and they even sell them with the same logo!
Every time one of those chips fails, FTDI gets blamed!
Every time it 'misses a step' and data gets garbled, a Stamp or Propeller fails to reset or download a program, FTDI gets blamed...
Not only are they losing sales, but they get the blame for a hacked together mishmash they have nothing to do with.
I suggest that everyone who has had problems with a zeroed chip to complain to the company that sold the device with the fake chip. Demand your money back!
This isn't just FTDIs problem, it's everyone's problem, and most people are attacking the wrong party!
This isn't just FTDIs problem, it's everyone's problem, and most people are attacking the wrong party!
It would have been a relatively small problem if FTDI had just made a driver which didn't work with the counterfeit chips and told the user. If the counterfeit chip says FTDI and they brick the device without even telling the user why, the user will think the FTDI chip stopped working and FTDI gets blamed.
I think people are correct to be outraged at FTDI.
The old 8250 that the first PCs used, the 16550 high-speed UART that supported speeds up to 155200, or...
None of the above. Nor any other retro UART you can think of. Never said I did. Why would I? What I said was that I wanted a UART.
Earlier we talked about Hardware Abstractions. I'm totally with you with that idea. What does that actually mean?
Well...It means that I get some traditional UART/serial communication signals as a electrical hardware interface, TX, RX, CTS, RTS, DTR etc. It means that when I transmit and receive characters they are framed with start bits, data bits, stop bits, parity etc. The usually expected and standardised over many years hardware signalling interface.
Meanwhile, thanks to the abstraction layer, I can write code like this in my application:
If you don't like JavaScript think of the same kind of code in C.
Thanks to the abstraction layer(s) I need not worry about what OS I'm running on. Or what kind or UART hardware it has. No fussing with chip control registers, no fuss porting my code from one machine to another etc.
As it happens, when using USB this not just layers of software abstractions eventually going through drivers and reaching good old fashioned UART chip and it's registers. No, the abstraction of the UART is specified in a communications protocol between my computer and another computer, the USB/serial dongle itself.
That communications protocol is the USB CDC.
More advanced and faster chips comes with a cost: DEVELOPMENT EXPENSES.
That is true. But this is a UART we are talking about, not the latest core from Intel. The specification of which has been around for decades. The implementation of which can be done by anyone who has studied a bit of logic design for a short while. That can now a days be written in a few lines of software on the Propeller or XMOS or whatever devices. Or easily created in Verilog or VHDL for an FPGA or actual silicon chip.
This isn't just FTDIs problem, it's everyone's problem, and most people are attacking the wrong party!
Perhaps. And at the same time by this action FTDI attacked the wrong party. They disabled devices of innocent parties who may well have bought the USB/serial dongles in good faith and have no idea about what is going on "under the hood".
That is shameful behaviour.
Seems to me that FDTI probably did a very valuable service in bringing the UART back to people who had lost them due to the efforts of Intel and to to expunge "legacy" interfaces from the world and promote USB. Thank you FTDI.
However today a USB/UART can be made for cents and should be as cheap as a 555. And the interface should be common, the CDC, so no special drivers are ever needed in an OS.
Now, you could probably argue that the CDC abstraction is not sufficient in some way. I would be glad to hear in which ways.
That is precisely why FTDI needed to address this socially and potentially legally, not technically.
Everybody knows by know there is always a geek, or group od them with the motivation and skill to counter a technical move.
They could have had a nice movement out there among users who value them and their fine product, and now have a black eye (which they can fix with the help of somebody savvy), and a minor league arms race, which could very easily result in a open solution to this.
I predict exactly that, give this move, and a lack of management of the result of it.
I believe similar can be done with some PIC and AVR devices now.
FTDI's only desperate hold on this market is that they provide a Windows driver that works well. Seems that was an opportunity created by MS not making a good CDC driver until recently.
There are Chinese geeks as well. They will just work around this kind of artificial technical road block.
Honestly, they could seriously benefit from somebody who can build relationships, promote and solidify the brand. It's a nice niche, but they've damaged it, in addition to the niche itself being an artifact of a few different things, all changing. Maximizing that was the right strategy, clearly unknown to them right now. It's still a good one, but they've got to get on it quick.
The second thing they could benefit from is somebody who can identify another one and lead a team to get cracking on it now.
Of course, I'm writing that, not as a fan or with any particular interest other than to highlight and discuss the dynamics.
Personally, I would much rather see this open, boring, and cheap Which doesn't favor FTDI at all. But, they have a market right now, capital, and some options. Maybe they will get after it and continue on nicely. Hope so.
The old 8250 that the first PCs used, the 16550 high-speed UART that supported speeds up to 155200, or...
The smarter approach in 2014, is to simply feed the Baud Rate requested to the driver, and the driver selects the nearest valid value.
Not all devices are as well behaved, some choke (even in 2014) on a unsupported baud value.
Smarter parts have a virtual Baud clock of 12MHz (or >), (no /16) and snap to the nearest divisor from that
The smarter approach means your system always works, and baud rates of 12MBd + can also be supported.
This whole situation is Intel's fault for not including a standard driver specification for serial in the USB spec as they did for HID devices like the keyboard and mouse. The only reason companies make fake FTDI chips is that the FTDI drivers are common and the fakers don't have to distribute their own. It would not be an issue if the drivers were standardized. You don't have to download a special driver for a mouse or keyboard or storage device, so why should you need one for a serial port on a "universal serial bus?"
Comments
At the end of the day what we want is a UART. The USB/UART adapter should say "I'm a UART" when plugged in to a USB socket. The OS then creates a virtual UART interface for the user and away we go.
Next thing we need is for the USB device to have some unique identity such that when I unplug and replug it it will come up as the same virtual COM port. None of that constant hoping around from COM10 to COM22 to ....
And of course if I plug in half a dozen similar devices they need unique ID's so that I can tell which is which.
Why should we have to care about vendor and product IDs?
Localroger is right, we should scrap all this and just use network protocols instead. That already has the appropriate IDs, MAC and IP addresses. We don't need to know who made the device on the other end.
Consider. When I talk to a device on a network I don't need to load up a different ethernet driver for every different manufacturers device on the other end of the connection! How crazy would that be?
USB is just broken. FTDI especially so.
Licensing....money...union dues....guild fees...control...protection.
Third oldest profession in the world! (If you count baking as #1 )
I think important questions are "is it illegal to use someone else's VID/PID?"1 and "does FTDI have the right to change the VID/PID of another device?".
I think the only reason, it's okay to change this number on the fake device, FTDI has giving is because of the wording in the EULA we are all supposed to read (though I doubt anyone every reads every one).
IMO, what FTDI has done is enough for me to go out of my way to no long purchase their chips or products with their chips.
One option for the Propeller is the SiLABS CP2102 (though I doubt it can do everything the FTDI chips can do, it does enough for my needs).
I've used this $2.20 board to program2 my Props. I'm sure there are lots of other non-FTDI options.
I wonder how much troubleshooting time people will need to spend to figure out what's wrong with devices which will appear to just stop working. Anyone not aware of FTDI's malware won't know to suspect their PC of sabotage.
I used lots of the electronics I make in my business. I can imagine plenty of scenarios where a fake FTDI chip could have ended up in one of my boards. I can think back on plenty of times where a bricked device could have seriously damaged my ability to perform work and could have been catastrophic to my business.
1. I think it's only illegal if they use the "USB" logo on the device.
2. The $2.20 device will work if a series capacitor is added to the DTR line.
Baking? I thought the oldest....oh never mind.
That's probably what it is going to come down to in the courts.
Here's what the USB consortium says about compliance:
Not a lot of legal teeth in there, probably. It will come down to the money side of it - was the "loss" FTDI incurred significant enough to outweigh any "loss" caused by their actions. The actual vendors using the VID/PID probably won't care or aren't in jurisdiction of any potential lawsuits. It will boil down to deepest pockets/best lawyers and would most likely go to a class action which will only help the lawyers and not any actual victims.
A USB Vendor ID is currently around $3500-$5000.
Was it worth it to whoever used the FTDI VID? Probably.
I'm not condoning or condemning anyone at this point.
I do COMMEND Duane for the link to an alternative Prop Programmer. Mine are on order.
The statement was to the effect that "Microsoft had never shipped a working USB CDC driver." Indeed they seem to have tried their best to expunge any thoughts of serial interfaces from the landscape.
You see where that leads?
Rather than companies happily creating and shipping cheap USB/serial chips that comply to CDC, because there is no point the MS driver is no good, they have to create the chip and their own Windows driver to go with it. And they would have to keep that driver up to date with all the contortions Windows goes through over time.
Hence we have an FTDI, their chip and their driver. So far so good.
Well not so good. Given a decent MS CDC driver there should be many companies churning out serial adapter chips like 555 timers 74 series logic and TLO72 op amps. With prices to match.
So of course anyone making a USB serial adapter piggy backs on the best available Windows driver. The one by FTDI. After all it's crazy that everyone has to keep reinventing the wheel. Especially when a "standard wheel" has already been defined in this case.
NOT that I'm sayings it's OK for device suppliers to palm off whatever chip they have as an FTDI.
If only MS had done the right thing...
Anyone care to comment on the state of the Windows CDC driver today?
as it makes it easier to use Debian on my main computer.
On that page, they could do anything! Ask for tips, ask people to do their part and contact the people they got their devices from, whatever.
Maybe create a wall of shame?
Harming ordinary people, even if legal, won't win the day for them, even if they are completely right and justified about it all.
And it would only take a fraction of users with the devices at issue to get the attention of the tech press and bloggers. It goes nicely in their favor from there.
Whatever happens, have the software work, but nag people about it.
They need lots of sympethetic friends, not annoyed people.
e
Quite so. There must be far more charming and diplomatic ways to tackle the problem that FTDI has.
I'm not sure what though.
USB is supposed to be "plug'n'play"
There is a reason it has become known as "plug'n'pray". Starting from the first time Bill Gates demoed USB on Windows 98 or whatever it was in public and it immediately blue screened the machine.
A few days ago a coworker of mine plugged a serial device into his Windows 7 box via a USB/serial adapter and it was assumed to be a mouse. WTF total loss of control of his machine!
As a naive user whose device suddenly does not work the last thing I might need is directing to some web site that's trying to explain to me all the technical details of why whatever gadget I have purchased in good faith does not work.
I just want it to work!
Are they ever going to make this mess work?
They don't have to get in anyones way, and even a single word would spark the movement I just posted.
If it were me, I would have whatever it is say something to the effect of, "your USB device is using a counterfiet chip, but we got your back, and will do our best to make it continue to work. Will you take a moment to return the favor at http://letsnailem.thanks
The single word in the driver notification would be "counterfiet" and have it clickable to the explanation page wher the story and calls to action unfold, most users unaware. It only takes one or a few who see that and click for it to start up nicely.
People really don't understand how social interaction works these days. Do something crappy, hurt the little guy, and it generally doesn't go well.
People seem to gravitate toward those in power being expected to use their position and means for generally good ways.
This is precisely why the piracy discussion went so badly, among many other examples. It's not always about the merits or legalities as much as it is about that perception. This is disturbing, but it is reality too. Ignore at your own peril. (and I am both a realist and pragmatic)
When that expectation isn't met, people respond and it gets ugly very, very quickly.
However, when it is met, awesome thing seem to happen regularly.
An example of the disturbing is Anoymous and 4Chan. Good grief, those two can make one heck of a mess. Often for things we might ignore. An example of the great is Reddit, where sometimes a bit of good alignment with those expectations results in a lot of "let's try to make it right" type efforts.
Examples abound, and I could fill pages.
A local radio station just learned this. Hired a DJ who didn't work. The peeps went off on Facebook, and the station response was not appropriate. The peeps then went off about that, educating the poor, clueless woman school of hard knocks style, and the beauty was she asked for their feed back too.
So it all got deleted, and her response? Need more intellignent listeners.... Yeah, the bell didn't ring, she failed class, and is going to have a rough road.
10 words early on would have transformed that dialog into a movement the station could not possibly pay for. Just 10 words.
(told 'em, I would fix it for a check, lulz)
Even now, 20 words could turn it around.
This stuff is powerful. And it's just there.
IMHO, these guys don't understand, and they have a cause which warrants some action too. Right now, for a short time, they are like the radio station, window open, good will possible.
A little money spent with the right people could do them a ton of good right now.
Mindrobots: please tell me that is not your real ssn.
I may have been born at night, just no last night! I used my ex-wife's!
http://www.ftdichipblog.com/?p=1053
There are now 5 more pages of posts there following it that I haven't read yet.
Lately I've been building Propeller boxes which communicate via Ethernet UDP via ENC28J60 and bridge to peripherals such as serial ports. These work a lot better than USB to serial adapters, they can be multi-function, I have full control if I need to change their behavior, and they work on all operating systems including in emulation.
Hmm - that is interesting. I looked up "serial to ethernet" on ebay and there are boards for around $16.
So ok, the current Propeller setup is three chips - propeller, eeprom and ftdi usb to serial. The FPGA propeller and chips that may follow can be all sorts of things.
The signals going to and from an eeprom are just digital signals. Ditto the signals to the ftdi, and indeed the two data lines on USB. So one could envisage a single chip like a propeller, no eeprom and no ftdi and it talks directly to USB.
But... what sort of a device is it? A com port, keyboard, mouse, custom device? Do you need custom driver files for these or could you emulate something that seems to be universally recognised when you put it in a usb socket, like a flash drive? So maybe something like localroger is doing is better - talk ethernet instead of USB.
A single chip, and it has 4 pins devoted to ethernet and then you add the RJ45 with magnetics. Program it via ethernet, not via serial. And then for free, you get a bonus internet connection.
Or... even more cutting edge, use these $5 wifi modules and program it wirelessly as well.
Are the raw speeds possible on the fpga emulation - eg old-skool 10 megabit ethernet?
Depending on the breeze up someone's kilt, FTDI might be subject to an inquiry, and could face some charges. (I doubt anyone's going to jail, but the act does provide for it -- unfortunately, it's per offense, which means each individual third-party product that was affected.)
If FTDI has tried to enlist the help of UK's inland revenue and customs to track down the worst of the offenders, they haven't made a big point of it. Will the UK government not help a Scottish company that's losing money to foreign scofflaws? If so, my ancestors are turning over in their haggis. I can't find any press releases or other documents on their site where they talk about their IP problems and what they have been doing to combat counterfeiters and pirates. Well, I imagine it's time they do so. Or at least make those documents much more public.
The VID/PID pair is the start of the unique Device Id you are talking about an then there is also a serial id unique inside the vendors domain and a human readable text per device.
The same happens with MAC addresses of network adapters. They are sold like VINs. And contain a VID and a serialNo.
Because they have to be unique in a Network. Basically.
Parallax for example delivers one MAC address per Spinneret and pays for it somewhere. It is on a sticky on the back. You need then to program your Spinneret using this MAC address. Every time.
Sure. You can use Mike G's or my MAC addresses already in the code or just fake one. But it would not work with my or Mike G's Spinneret in the same network.
Same with USB or DNS/IPs. Somebody wants to get paid for to organize the uniqueness of the numbers used for identification purposes.
I do agree with you that simple things like USB-Serial should work with the standard driver provided by the OS (whatever OS it is). Seems to work for USB Sticks. Never had to install a driver from wherever to plug in some noname USB Stick on any computer.
I am not sure here but in opposite to USBSERIAL the driver from FTDI supports buffering. I am on thin ice here since I do not do driver development at all. Just overheard stuff.
Bricking (debadging) the devices was maybe not a smart move of FTDI, but in my opinion a understandable one.
It's like me standing in front of Armani and he is boiling and steaming and ripping off that Armani label from my shirt and saying "I never designed that!".
Programmers can get ****** if their work is not valued and paid for. I can understand that feeling. Been there and - well - done things along that road also in my life.
Now my provocative questions:
If they had replaced VID/PID by 'standard serial device use usbseial' instead of writing 0 and sort of removing it out of the device list, would that be OK?
It still appears as device but not as FTDI anymore. would that be OK?
What can they do to protect their work and investment and yearly costs for usb.org/apple/windows/whoelseneedstogetpaid?
FTDI put in a lot of effort to produce nice drivers for all major distributions and nice chips as well. They even have support! But because of doing all of that they are expensive compared to knockoffs from china using their VID/PIN/driver/support/investment/you name it.
In Germany we call them 'Trittbrettfahrer' a symbol for people clinging onto a train/bus/car, hanging outside and not paying any fair.
Here in the US we had some advertisement of some car insurance about 'RateSuckers'. Just think about the image on TV not the ad itself.
So I am still the advocate diabolic fighting for FTDI to keep the discussion open.
Let's dissect the problem...
Mike
I can see what goes on with the VID/PID pair.
It bugs me because semantically they are different from a function identifier. VID/PID says for example "I am made by FTDI and I'm some funky chip" rather than "I'm a UART". Absolutely not. I have very little sympathy for this idea.
We are talking about a UART here. About the simplest computer interfacing device ever created. Dating back to the telegraph/teletype. Such chips should be available from many sources for cents by now. Like 555 timers and 74 series logic. Well, in fact they are, from those Chinese guys.
There should not even be a need for messing with one off drivers for each vendors jelly bean UART.
With the removal of UARTS from computers and replacement with USB we were given a whole pile of complexity, unreliability and expense.
The FTDI's of the world want to be the gate keepers charging us a toll for this, a UART, the most stupid simple of things.
According to FTDI, the new driver "will still uphold our stance against devices that are not genuine, but do so in a non-invasive way that means that there is no risk of end user’s hardware being directly affected."
The question now is will they be able to repair all the damage they caused by shooting themselves in the foot.
The old 8250 that the first PCs used, the 16550 high-speed UART that supported speeds up to 155200, or...
More advanced and faster chips comes with a cost: DEVELOPMENT EXPENSES.
FTDI spends a lot of money to design new and better chips. They really want to get their money back...
Their chips are a bit better than 'bog standard' so they give them unique IDs, and a custom driver to take advantage of that. This also costs money.
Then some underhanded pirates hacks together a copy that acts MOSTLY the same as FTDIs, uses FTDIs ID, without permission, and they even sell them with the same logo!
Every time one of those chips fails, FTDI gets blamed!
Every time it 'misses a step' and data gets garbled, a Stamp or Propeller fails to reset or download a program, FTDI gets blamed...
Not only are they losing sales, but they get the blame for a hacked together mishmash they have nothing to do with.
I suggest that everyone who has had problems with a zeroed chip to complain to the company that sold the device with the fake chip. Demand your money back!
This isn't just FTDIs problem, it's everyone's problem, and most people are attacking the wrong party!
It would have been a relatively small problem if FTDI had just made a driver which didn't work with the counterfeit chips and told the user. If the counterfeit chip says FTDI and they brick the device without even telling the user why, the user will think the FTDI chip stopped working and FTDI gets blamed.
I think people are correct to be outraged at FTDI.
Earlier we talked about Hardware Abstractions. I'm totally with you with that idea. What does that actually mean?
Well...It means that I get some traditional UART/serial communication signals as a electrical hardware interface, TX, RX, CTS, RTS, DTR etc. It means that when I transmit and receive characters they are framed with start bits, data bits, stop bits, parity etc. The usually expected and standardised over many years hardware signalling interface.
Meanwhile, thanks to the abstraction layer, I can write code like this in my application: If you don't like JavaScript think of the same kind of code in C.
Thanks to the abstraction layer(s) I need not worry about what OS I'm running on. Or what kind or UART hardware it has. No fussing with chip control registers, no fuss porting my code from one machine to another etc.
As it happens, when using USB this not just layers of software abstractions eventually going through drivers and reaching good old fashioned UART chip and it's registers. No, the abstraction of the UART is specified in a communications protocol between my computer and another computer, the USB/serial dongle itself.
That communications protocol is the USB CDC. That is true. But this is a UART we are talking about, not the latest core from Intel. The specification of which has been around for decades. The implementation of which can be done by anyone who has studied a bit of logic design for a short while. That can now a days be written in a few lines of software on the Propeller or XMOS or whatever devices. Or easily created in Verilog or VHDL for an FPGA or actual silicon chip. Perhaps. And at the same time by this action FTDI attacked the wrong party. They disabled devices of innocent parties who may well have bought the USB/serial dongles in good faith and have no idea about what is going on "under the hood".
That is shameful behaviour.
Seems to me that FDTI probably did a very valuable service in bringing the UART back to people who had lost them due to the efforts of Intel and to to expunge "legacy" interfaces from the world and promote USB. Thank you FTDI.
However today a USB/UART can be made for cents and should be as cheap as a 555. And the interface should be common, the CDC, so no special drivers are ever needed in an OS.
Now, you could probably argue that the CDC abstraction is not sufficient in some way. I would be glad to hear in which ways.
Detect if you have a clone chip.
Un-brick your clone chip if FTDI has messed it up.
Immunize clone chips against the evil FTDI driver.
The last of those seem pretty cunning.
http://www.eevblog.com/forum/reviews/ftdi-driver-kills-fake-ftdi-ft232/msg537012/#msg537012
Everybody knows by know there is always a geek, or group od them with the motivation and skill to counter a technical move.
They could have had a nice movement out there among users who value them and their fine product, and now have a black eye (which they can fix with the help of somebody savvy), and a minor league arms race, which could very easily result in a open solution to this.
I predict exactly that, give this move, and a lack of management of the result of it.
Basically I think the whole FTDI business plan with regard USB/Serial devices is a dead end.
Neither the UART or the USB end of this is "rocket science" any more.
As probably noted here before one could just use any one of a number of tiny MCU's with USB interfaces and achieve the same end.
For example http://www.silabs.com/Support%20Documents/TechnicalDocs/AN758.pdf
I believe similar can be done with some PIC and AVR devices now.
FTDI's only desperate hold on this market is that they provide a Windows driver that works well. Seems that was an opportunity created by MS not making a good CDC driver until recently.
There are Chinese geeks as well. They will just work around this kind of artificial technical road block.
The second thing they could benefit from is somebody who can identify another one and lead a team to get cracking on it now.
Of course, I'm writing that, not as a fan or with any particular interest other than to highlight and discuss the dynamics.
Personally, I would much rather see this open, boring, and cheap Which doesn't favor FTDI at all. But, they have a market right now, capital, and some options. Maybe they will get after it and continue on nicely. Hope so.
What we are talking about here is a stupid UART.
Perhaps not open exactly but pretty much anyone can do a UART. Ever since the the idea surfaced around about a hundred years ago.
The best FTDI can hope for is to maintain sales through some nebulous brand loyalty until that dries up.
Hopefully they will have other innovative and attractive products to offer by then.
The smarter approach in 2014, is to simply feed the Baud Rate requested to the driver, and the driver selects the nearest valid value.
Not all devices are as well behaved, some choke (even in 2014) on a unsupported baud value.
Smarter parts have a virtual Baud clock of 12MHz (or >), (no /16) and snap to the nearest divisor from that
The smarter approach means your system always works, and baud rates of 12MBd + can also be supported.
Agreed, and there is also a HID one for their smaller 8 bit here
https://www.silabs.com/Support%20Documents/TechnicalDocs/AN249.pdf
suggests just over 4K in size, so that's ~25% Full on the cheapest C8051F38C & Silabs have a free compiler for this series.
eg Parallax could take that, and eliminate the (Reset Transistor/resistor/caps), as well as add some i2c slave ADC features to a PropPCB.