5

I have also asked this on serverfault but perhaps it is better suited to be asked here? I hope I'm not breaking any etiquette.

When producing devices that use a FTDI USB to serial chip to communicate with a Windows host, we get hundreds of COM-ports, since Windows seems to just increase the port number each time a new FTDI vid+pid+serial is connected to the PC.

I have looked into HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\FTDIBUS and tried deleting the new entries that appear, but the only effect is that the COM port number is increased even for devices with the same vid+pid+serial (i.e. devices that have already been connected once).

The question: is it possible to reset this counter some way so that the enumeration starts from the first free COM port number?

1 Answer 1

7

I'm not at work so I don't have any hardware in front of me, but the FTDI application note AN_107 - Advanced Driver Options looks to have some promising options.

In particular, I think the "Ignore Hardware Serial Number" (section 7.1, page 20) option would do what you want.

7.1 Ignore Hardware Serial Number

If devices have the same vendor ID and product ID but different serial numbers, the system will normally treat them as different devices. This causes the drivers to be installed for each device and create registry entries for each device.

It is possible to override this behaviour to make the system ignore a device's serial number and treat all devices with matching VID and PID connected to the same USB port as if they were the same device. This is achieved by adding a REG_BINARY value called IgnoreHWSerNum to the registry and setting it to 01.

The AN_123 How COM Ports Are Allocated On Driver Installation app note is also very informative.

OT, devices these days are getting so complex that most of the documentation is being moved out of the datasheet and into App Notes. Don't forget to always read the app notes!

3
  • Great! I'll look into this. I'd upvote, but I have only 1 in reputation at the moment.
    – icecream
    Mar 2, 2010 at 11:32
  • It worked! :) If you have an account at serverfault.com you can give the correct answer there too and I will select it. serverfault.com/questions/117898/…
    – icecream
    Mar 2, 2010 at 12:21
  • Done! (15 chars)
    – Fake Name
    Mar 2, 2010 at 23:46

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .