While native serial ports have almost disappeared from modern laptops, COM port-mapped devices are very popular: USB ports, USB-to-serial adapters, Bluetooth devices, virtual devices, and so on… all of them are viewed as serial ports under Windows. Every time a new driver is installed, one or more COM devices are added and remapped to the first COM number available: this quickly causes the COM port number to shoot through the roof.
As for my laptop, there have been quite a few driver reinstallations, that caused the Bluetooth port to be mapped to as high a number as 14. This behavior was quite puzzling: after some trials and Internet search, I was able to find a working solution which I’d like to share.
Disclaimer: the following procedure requires familiarity with manipulation of the Windows registry, and therefore I can’t be held liable for any damage/problem whatsoever. This modification applies to Windows 2000 and Windows XP: I can’t comment about other operating systems.
Here are the main steps:
- Perform a complete uninstall of the bluetooth dongle driver. Removing all other serial add-ons such as USB-to-serial adapters and virtual mappers may be also required.
- Reset the Windows COM port mapper by editing the registry (see below for details)
- Reboot again
- Reinstall the bluetooth dongle driver.
And here’s how to edit the registry (“close-up” of step 3 above):
- Open Regedit
- Navigate to the following key: “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter”
- Highlight “COM Name Arbiter”
- Write down the current value of the “ComDB” key. In case of problems, you can easily restore its original value.
- Right-click on “ComDB” and click “Modify”
- Now a dialog pops up in which you can edit the entry’s value (hexadecimal string). Please pay attention NOT to alter its overall length!
- Clear all of it hex byte values until it reads all “00″‘s.
- Click OK and close Regedit.
Please note that the COM port remapping does not take place until you trigger a “re-detection” by reinstalling the dongle driver.
If everything works out OK, the Bluetooth serial port(s) will get mapped to “more reasonable” device numbers (in my case, COM4). Everything now works like a charm! 🙂