I am working on a project which requires testing products in production environment.
These product have USB Port and the only way we can talk to the product is through USB Port.
The USB inside the device under test is using a USB to Serial Converter chip from FTDI.
The issue is that everytime when we plug in a new product on the tester, windows detects it and takes its own time to install the drivers, which is leading to a long cycle time. Once the drivers are installed, we need to configure the FTDI Chip for product description.
After configuring the FTDI Chip we configure the microcontroller on the product talking through the FTDI chip.
Is there any other way this communication could be achieved, I mean using any other Embedded platform, or if some how the process can be accelerated on windows?
Any ideas would be appreciated.
Solved! Go to Solution.
Why does Windows need to install the same driver multiple times?
Using as an example, once the same USB flash drive is used more than once on the same PC, the driver does not need to be reloaded.
As mentioned in my post, it is not the same product being tested multiple times. Everytime there is a new product.
The Product ID and Vendor ID of the FTDI chip is same, but the Serial number is different for each product and thus windows installs it as a new device.
Is it possible to bypass the FTDI chip and use direct serial? I realize you said you needed to use the USB port, but that'd be one of the easier ways I can think of to have Windows not detect it every time.
Otherwise, I'm not familiar with any methods of forcing Windows to not detect the new device, and you'd need the device to be detected by Windows to use it with our software.
Is this a third-party device or something your company created? If it's a third-party device, maybe we can work on figuring out another solution for you.
No, we can't use serial, this is our own product and it uses the FTDi chip to provide the USB to Serial interface to talk to the microcontroller.
So we are stuck with using FTDI chip.
I see. I did some searching and found a page on the FTDI site that seems to describe the problem:
And they suggest setting it up to install the device based on its physical location on the USB bus, rather than by serial number. Here's the PDF from FTDI on how to do that: http://www.ftdichip.com/Support/Documents/AppNotes/AN232B-07_LocIDs.pdf
I hope this helps some, and let us know if you need any more help!
We are using the USB location as basis of communication with the device and using the DLL provided by the FTDI to communicate, we have disabled enumuration of device as Virtual Com Port.
Our issue is the loading time for the drivers by Windows.
Some time ago I saw an application which was testing USB based products, when the application was launched, it some how takes control over the USB ports and detects the USB devices straight away without need of Windows Loading the drivers.
I was wandering if there could be any other possible solution than windows, such as embedded.
What type of device are you working with? It may be possible to bypass the drivers and create your own which uses the device's default USB driver. We did this to allow us to communicate with our printers using USB. We wrote a driver which directly accessed the default USBPrint driver. From there we could look at what is connected to the bus and establish a connection. No driver install was necessary.
Try adding a Windows Registry entry:
Windows Registry Editor Version 5.00
where 0403 is the Vendor ID (hex) and 6001 is the Product ID (hex)
I've used this hack successfully on test machines that run the FTDI USB to serial controller before.
As a side note, if the device is plugged into a different port, Windows will "load drivers" and assign it a new COM port. Take care it always has the same physical connections and double check the port assignment after replacing USB hubs, power failures etc.