Q1) I have obtained a unique VID/PID combination for my VCP or USBXpress (Direct Access) driver and have contacted Silicon Labs to obtain reseller status, however the package that is shipped to me via Microsoft Dashboard has the Silicon Labs default VID/PID. How do I recertify a driver with my VID/PID combination?
Q2) Changing the VID/PID of the default Silicon Labs driver invalidates the driver signature. I understand that that means I must recertify the driver. Does that also mean that I must rigorously retest the driver prior to recertification?
A1) In the case that you have your own VID/PID combination already, you must customize both your devices and your driver with this VID/PID combination according to AN721: CP210x/CP211x Device Customization Guide and AN220: USB Driver Customization, as well as complete the following steps:
1. Purchase the appropriate certificate from a certificate vendor.
2. Contact Silicon Labs technical support (http://www.silabs.com/support) for reseller status. Please provide the driver used (VCP or USBXpress), driver version, and the WHQL registered company name.
3. Add your certificate to the Microsoft Hardware Dashboard.
4. Add the certificate to the certificate store on your computer.
5. Download a file to sign, sign it, and upload the signed file.
6. Download the DUA shell (a .hlkx file) from the driver shipped to you.
7. Download the signed files. Modify the .inf file as desired. (Or upload the modified .inf output of AN220: USB Driver Customization Software. This is how you can create a customized driver using your VID/PID combination.)
8. Download and install the latest version of HLK Studio. Open HLK Studio.
9. Change to the package tab. Right click on the driver and choose [Replace Driver]. Choose a folder with the signed driver files and your modified .inf file.
10. Click [Create Package].
11. Sign from the certificate store on your computer. Save the .hlkx file.
12. In the Microsoft dashboard, click [Upload New] and choose your new .hlkx file.
You can find greater detail on this list of steps in AN807: Recertifying a Customized Windows HCK Driver Package, including illustrative screenshots.
A2) Many driver customizations, including changing the VID/PID, product and manufacturer strings, and other minor changes require modification of the .inf file only and do not affect the binary executable or functional portion of the driver. In such cases the resigning process is eligible for re-certification as Driver Update Acceptable (DUA), which is a streamlined re-certification process that does not require the detailed testing that Silicon Labs must undergo for the initial submission of the original driver that Silicon Labs ships to customers via the Microsoft dashboard. Please follow the steps outlined above and in the linked documentation and customization utilities to complete the process.
At the outset, CP210x driver v10.1.1 is a Windows Universal driver. More information regarding this driver can be found in this KB Article - https://www.silabs.com/community/interface/knowledge-base.entry.html/2017/12/27/vcp_driver_-_windows-Ulur.
The CP210x driver v6.7.5 is now the "legacy" driver and can be used on Windows 7, 8 and 10. The differences between the two versions of the drivers can be explained in the following way -
1. Differences in the Driver Software
This has been captured by the release notes documentation which can be obtained from here - https://www.silabs.com/documents/public/release-notes/CP210x_Universal_Windows_Driver_ReleaseNotes.txt
2. Functional differences, i.e., why have v10.1.1?
The driver version v6.7.5 is for "Desktop" Editions of Windows 7 and later, i.e., Windows 7, 8, 8.1 and 10. Please note that these drivers are valid only for "Desktop" editions, i.e., PCs and servers. Windows v10.1.1 is a universal Windows driver. "Universal" was introduced by Microsoft in Windows 10. "Universal" means desktop plus embedded plus mobile, etc. editions of Windows that support Universal, i.e., Windows 10. For more information about Universal drivers, please refer to this article by Microsoft - https://docs.microsoft.com/en-us/windows-hardware/drivers/develop/getting-started-with-universal-drivers. This knowledge base article on our community forum has more information about universal drivers in general and driver v10.1.1 in particular - https://www.silabs.com/community/interface/knowledge-base.entry.html/2017/12/27/vcp_driver_-_windows-Ulur.
3. Serial Enumeration
Serial enumeration is enabled in v6.7.5 while v10.1.1 does not have serial enumeration enabled.
4. Legacy versus Current
Technically, the driver version v6.7.5 is almost a "legacy" driver. Windows and in turn Silicon Labs is planning to continue using only v10.1.1 and make edits (if necessary) to that version of the driver.
Please note that if you are running a desktop PC with Windows 10, you can use either v6.7.5 or v10.1.1 drivers on your system.
I just installed the latest USB to UART Bridge Virtual COM Port (VCP) drivers on my Mac OSX computer, but system info still depicts the driver version as 1.00. Why?
Verifying the driver version number on Mac OSX requires some extra steps. For example, on a MacBook Pro the System Information (or System Profiler) utility may reveal something like this:
At first glance, it appears that the system is using driver version 1.00 to interact with the attached CP2102. However, the version "1.00" string appearing here does not refer to the driver version - it instead refers to the variant of the set of USB descriptors returned to the OS during the enumeration process that occurs between the CP2102 and the USB Host controller when first connected.
On a Mac, the actual VCP driver version string can be found within some text files - typically located at a path like
At this location resides a file of type "*.plist", which is really a text file (with XML content formatting) that you can view in a text editor (textedit). Within this file you'll see elements like "Version 5.0" - these references do indeed indicate the version of the driver installed on your system.
Can the CP210x VCP drivers be installed in a way that prevents Windows from prompting for a reboot?
The requirement to reboot is determined by the operating system as system and driver files may be locked during the driver installation. A reboot may be required to unlock these files for driver update.