We've recently become aware of an issue with a new update to Windows 10 and our CP210x VCP "Universal" Driver for Windows 10, driver version v10.1.1. When attempting to install the driver, an error is given by Windows that states "A service installation section in this INF is invalid." This occurs because Windows has changed drive INF requirements slightly, and our current driver's INF file does not meet these requirements.
We currently are working to fix this issue, although due to testing and recertification requirements, we do not expect the fixed driver to be available until mid-June.
A work-around exists currently, but it involves manually editing the .INF file for the driver. This causes another issue - the driver is no longer signed in this case, so the driver must be forced to install, and Windows will show a warning that the driver is unsigned.
Once these changes are made, attempt to re-install the driver. A warning will be shown that the driver is unsigned, but you can ignore this for now. If you do not receive a warning issue, or if Windows refuses to install the unsigned driver (you may get an error about the hash being invalid), you can disable driver signing enforcement by following these instructions: https://www.maketecheasier.com/install-unsigned-drivers-windows10/
Alternatively, rolling back to a previous build of Windows also resolves the issue.
Before following the steps below, please take some time to read the generic tips for troubleshooting and asking questions from this post:
https://www.silabs.com/community/interface/forum.topic.html/tips_for_troubleshootingandaskingquestions-kcmO
[Note2] If you are not the manufacturer of the device you are troubleshooting, note that Silicon Labs does not support end users directly. Please contact your product manufacturer for support. For more information, please see the following knowledge base article:
http://community.silabs.com/t5/Silicon-Labs-Knowledge-Base/Troubleshooting-a-Product-Using-a-CP210x-USB-to-UART-Bridge/ta-p/131318
Following steps are considered as additional to information described from above. When you will post a question regarding VCP driver for Mac OS, please provide some information as below:
1) The SCH/Layout of your board if It is your custom design (eg: not Silicon Labs' EK).
2) The part number and the VID/PID of the part that you are using.
3) The output of the commands below (make sure your board is plugged in because the driver will not be loaded if there is no device attached to your system): Get Mac Version: $ sw_vers
For Big Sur: $ systemextensionsctl list | grep -iE '(silabs|cp210x)' For Older Mac OS (ex: Catalina): $ kextstat | grep -iE '(silabs|cp210x)'
List USB devices: $ ls /dev/cu.*
4) Your test code or scripts if any that you are using and have the issue with.
There are a lot of traditional COM port sniffers that is useful tool to intercept RS traffic. Sometimes this is the only way to debug program. I have been tried to use some of them to intercept VCP for CP2101, but failed (under Windows 2000). May someone recommend me such program that will work with Virtual COM port under Windows 2000/XP Thank you!
A customer is using the CP2103 in one of their products. They supplied us with custom drivers and a USB configuration tool that's basically a stripped-down CP210xSetIDs.exe.
Everything seemed to be working fine at first. When I changed the product's serial number, I would be prompted to reinstall the drivers, and new registry keys in the format Vid_[VID]&Pid_[PID]&[Serial #] (for the USB bus entry) and Vid_[VID]&Pid_[PID]&[Serial #]_00 (for the virtual COM port) were created.
At some point, I tried to reprogram the serial # on one of the products and the unit stopped responding. I looked at the registry entry, and the serial # section of the key name was garbled text. Even worse, when I change the serial # now, it has no effect on the product - the drivers don't reload, and no new registry key is created.
I uninstalled all the customer drivers/software, and I downloaded the latest SiLabs default drivers. I changed the VID/PID back to 10C4/EA60 and loaded the CP210x drivers. I'm still getting the same problem.
I can use the CP210xManufacturing API to change and read back serial number stored in the CP2103's EEPROM, and that works. But no matter what I change it to, the registry entry looks something like this (multiple entries from plugging the product into multiple USB ports):
I was expecting the keys to follow the serial #, like this: Vid_10c4&Pid_ea60 -0001 -0002,etc
I read about the [Manufacturing Ignore Serial Numbers] option in AN335, but I don't see that set anywhere in the drivers they gave me, and I'm still getting the problem using the default SiLabs drivers. I also get the issue if I move to a different PC.
Did I somehow screw up the CP2103's? Any ideas on what caused this problem, and is there any way of fixing it?
I have a question about the No DAC Config (GPIO5-8 not jumpered) and bringing up a new DAC. I have EVB Rev 1.1 with the Cirrus Logic codec.
I set No DAC config mode but can't read the Cirrus DAC using the CP21xxCustomizationUtility.exe. I tried writing the values from the factory set OTP config 0 (Cirrus codec config) to RAM, observed a Reset take place but still no DAC access. The CP2114 spec states in section 8.2 that DAC configuration text files can be written to RAM and tested. However, if the tool can not read from the DAC, can it still write it? I tried setting the boot config to 0 as well so the audio configuration string parameters would still get loaded for the I2C and audio codec but, no luck there either.
The goal is to modify the DAC registers in the No DAC Config mode. We'll also need to connect another codec with a different I2C address and was hoping to write the Audio Configuration String + DAC configuration string to RAM to get it up. Maybe we'll have to create an OTP config and set it as the boot index first?
I'm sure I'm missing something and was hoping for some guidance.
Can the CP2114 write to muliple I2C addresses? For instance, if the DAC address is at 0x94 and it has something like a DSP at another address, say 0x96, how would the DSP be written via the CP2114. In the Audio Configuration String (ACS) I see byte 2 holds the DAC address but don't see an obvious way to write to a different I2C address simultaneously. I can get a handle to the CP2114 using the HID API's but is there a report I can send to the CP2114 that will pass along the data to a different I2C address than specified in the ACS and OTP boot config?
Is it possible to get Windows 7 64-bit support DLLs for the CP2112? Specifically, the following: SLABHIDtoSMBus.lib, SLABHIDtoSMBus.dll, and SLABHIDDevice.dll.
We are using an external clock that we feed in the CP2114, when setting SYSTEM_PROPS (byte 7) to 0x47, we see that the generated LRCLK is about 46kHz. The EXTCLK is at 49.152MHz. Also, I note that the LRCLK is not in sync with the EXTCLK. How to make all the clock signals in sync with the EXTCLK.
MSC-DKLB2 load board and 4432-T-B1 B 470 card were used. Connected the board to the PC through USB and started Wireless Development Suite. The option button 'Connect physical device' could not turn active for clicking. The WDS version is 3.2.2.0, build date 4/3/2013. My OS is Windows 7 64bit. Could it be the problem?
Dear SL gurus. I'm trying to answer a few CP2105 USB Serial Bridge driver questions and seems can find the answer anywhere through the website and just generally googling around:
1. Does the cp210x driver in the current Linux kernel support CP2105 dual channel bridge? Just looking at the VID/PID list at the top of /kernel/drivers/usb/serial/cp210x.c I would say that it doesn't because 2105 VID=10C4/PID=EA70 is not on the list. Is there an updated driver available that supports 2105?
2. My understanding is that no QNX drivers available for SL USB serial bridge devices (which is shame). However I saw some posts on QNX developer forums people successfully using cp2102 with standard QNX devc-usb driver. I tried that with the cp2105 and got nowhere really. I believe the dual-channel nature is confusing devc-usb driver. So my question is does anyone have any experience with cp2105 under QNX?
After some editing of the CP210x.c file to get it to build on the Linux 3.5.0-28-generic Kernel I am getting an error during the device installation. I have an MEI Cashflow 7000 Coin Changer device attached to USB.
Within the CP210x.c file, I had to add the VID&PID for the new MEI device (VID 0x0BED, and PID=0x0400) to the list of supported devices. The good news is this change now detects the device when I plug it in and I have a /dev/ttyUSB0, but I get this output when I run dmesg:
[ 6230.860153] usb 2-2: new full-speed USB device number 7 using ohci_hcd [ 6231.330652] usb 2-2: New USB device found, idVendor=0bed, idProduct=0400 [ 6231.330655] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 6231.330657] usb 2-2: Product: CF7xxx-USB Coin Changer [ 6231.330658] usb 2-2: Manufacturer: MEI [ 6231.330660] usb 2-2: SerialNumber: 000000000001 [ 6231.332643] cp210x 2-2:1.0: cp210x converter detected [ 6231.528185] usb 2-2: reset full-speed USB device number 7 using ohci_hcd [ 6231.805404] usb 2-2: cp210x converter now attached to ttyUSB0 [ 6231.834662] cp210x ttyUSB0: cp210x_open - Unable to enable UART (error code -32) [ 6231.841140] cp210x ttyUSB0: cp210x_open - Unable to enable UART (error code -32) [66026.077996] cp210x ttyUSB0: cp210x_open - Unable to enable UART (error code -32)
The device driver fails in the cp210x_open() method. I added an extra bit of debugging to the CP210x.c file to show the error code -32. Any idea what this error means, and how can I fix it? I did follow one person's suggestion and increase the USB timeouts from 300ms to 3000ms but this had no effect.
Any help would be much appreciated, or if anyone is using this Cashflow 7000 device on Linux successfully I would really like to know how you got it working!
Forum
CP210x Driver v10.1.1 issue with Windows 10, build 1803
Hi All,
We've recently become aware of an issue with a new update to Windows 10 and our CP210x VCP "Universal" Driver for Windows 10, driver version v10.1.1. When attempting to install the driver, an error is given by Windows that states "A service installation section in this INF is invalid." This occurs because Windows has changed drive INF requirements slightly, and our current driver's INF file does not meet these requirements.
We currently are working to fix this issue, although due to testing and recertification requirements, we do not expect the fixed driver to be available until mid-June.
A work-around exists currently, but it involves manually editing the .INF file for the driver. This causes another issue - the driver is no longer signed in this case, so the driver must be forced to install, and Windows will show a warning that the driver is unsigned.
Firstly, the work-around is as follows:
Download the Windows 10 Universal driver from here: https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
Edit the .inf file with this driver, performing the following modifications:
On or around line 118, change/edit
from this:
to this:
And on or around line 160, change/edit
from this:
to this:
I.e. replace every 13 in the file with 12.
Once these changes are made, attempt to re-install the driver. A warning will be shown that the driver is unsigned, but you can ignore this for now. If you do not receive a warning issue, or if Windows refuses to install the unsigned driver (you may get an error about the hash being invalid), you can disable driver signing enforcement by following these instructions: https://www.maketecheasier.com/install-unsigned-drivers-windows10/
Alternatively, rolling back to a previous build of Windows also resolves the issue.
Tips for troubleshooting and asking questions
Before posting a question
When posting a question, make sure to include the following:
Note: If you are not the manufacturer of the device you are troubleshooting, note that Silicon Labs does not support end users directly. Please contact your product manufacturer for support. For more information, please see the following knowledge base article: http://community.silabs.com/t5/Silicon-Labs-Knowledge-Base/Troubleshooting-a-Product-Using-a-CP210x-USB-to-UART-Bridge/ta-p/131318
For general community usage please refer to the Silicon Labs Community Guidelines
Tips for asking questions regarding VCP driver for Mac OS
Dear all,
Before following the steps below, please take some time to read the generic tips for troubleshooting and asking questions from this post:
https://www.silabs.com/community/interface/forum.topic.html/tips_for_troubleshootingandaskingquestions-kcmO
[Note2] If you are not the manufacturer of the device you are troubleshooting, note that Silicon Labs does not support end users directly. Please contact your product manufacturer for support. For more information, please see the following knowledge base article:
http://community.silabs.com/t5/Silicon-Labs-Knowledge-Base/Troubleshooting-a-Product-Using-a-CP210x-USB-to-UART-Bridge/ta-p/131318
Following steps are considered as additional to information described from above. When you will post a question regarding VCP driver for Mac OS, please provide some information as below:
1) The SCH/Layout of your board if It is your custom design (eg: not Silicon Labs' EK).
2) The part number and the VID/PID of the part that you are using.
3) The output of the commands below (make sure your board is plugged in because the driver will not be loaded if there is no device attached to your system):
Get Mac Version: $ sw_vers
For Big Sur: $ systemextensionsctl list | grep -iE '(silabs|cp210x)'
For Older Mac OS (ex: Catalina): $ kextstat | grep -iE '(silabs|cp210x)'
List USB devices: $ ls /dev/cu.*
4) Your test code or scripts if any that you are using and have the issue with.
Regards,
Virtual COM port sniffer
I have been tried to use some of them to intercept VCP for CP2101, but failed (under Windows 2000). May someone recommend me such program that will work with Virtual COM port under Windows 2000/XP
Thank you!
CP2103 - driver install causes garbled serial # keys in registry
Everything seemed to be working fine at first. When I changed the product's serial number, I would be prompted to reinstall the drivers, and new registry keys in the format Vid_[VID]&Pid_[PID]&[Serial #] (for the USB bus entry) and Vid_[VID]&Pid_[PID]&[Serial #]_00 (for the virtual COM port) were created.
At some point, I tried to reprogram the serial # on one of the products and the unit stopped responding. I looked at the registry entry, and the serial # section of the key name was garbled text. Even worse, when I change the serial # now, it has no effect on the product - the drivers don't reload, and no new registry key is created.
I uninstalled all the customer drivers/software, and I downloaded the latest SiLabs default drivers. I changed the VID/PID back to 10C4/EA60 and loaded the CP210x drivers. I'm still getting the same problem.
I can use the CP210xManufacturing API to change and read back serial number stored in the CP2103's EEPROM, and that works. But no matter what I change it to, the registry entry looks something like this (multiple entries from plugging the product into multiple USB ports):
Vid_10c4&Pid_ea60
-5&3188b497&0&1
-Control
-Device Parameters
-LogConf
-6&2d9531a6&0&1
-6&d48ec28&0&1
I was expecting the keys to follow the serial #, like this:
Vid_10c4&Pid_ea60
-0001
-0002,etc
I read about the [Manufacturing Ignore Serial Numbers] option in AN335, but I don't see that set anywhere in the drivers they gave me, and I'm still getting the problem using the default SiLabs drivers. I also get the issue if I move to a different PC.
Did I somehow screw up the CP2103's? Any ideas on what caused this problem, and is there any way of fixing it?
USB-to-I2S CP2114
CP2114 No DAC Config
I set No DAC config mode but can't read the Cirrus DAC using the CP21xxCustomizationUtility.exe. I tried writing the values from the factory set OTP config 0 (Cirrus codec config) to RAM, observed a Reset take place but still no DAC access. The CP2114 spec states in section 8.2 that DAC configuration text files can be written to RAM and tested. However, if the tool can not read from the DAC, can it still write it?
I tried setting the boot config to 0 as well so the audio configuration string parameters would still get loaded for the I2C and audio codec but, no luck there either.
The goal is to modify the DAC registers in the No DAC Config mode. We'll also need to connect another codec with a different I2C address and was hoping to write the Audio Configuration String + DAC configuration string to RAM to get it up. Maybe we'll have to create an OTP config and set it as the boot index first?
I'm sure I'm missing something and was hoping for some guidance.
Regards,
Patrick
cp210x Drivers for WindowsRT
Maybe they already have and I'm just not seeing it...
-Gary
CP2114 - multiple DAC I2C addresses
I can get a handle to the CP2114 using the HID API's but is there a report I can send to the CP2114 that will pass along the data to a different I2C address than specified in the ACS and OTP boot config?
Thanks,
Patrick
64-bit Windows 7 DLLs for CP2112
Thank you.
CP2114 external clock
We are using an external clock that we feed in the CP2114, when setting SYSTEM_PROPS (byte 7) to 0x47, we see that the generated LRCLK is about 46kHz. The EXTCLK is at 49.152MHz. Also, I note that the LRCLK is not in sync with the EXTCLK. How to make all the clock signals in sync with the EXTCLK.
WDS could not recognize Si4432 EZRadioPRO board connected through load board.
CP2105 driver questions
1. Does the cp210x driver in the current Linux kernel support CP2105 dual channel bridge? Just looking at the VID/PID list at the top of /kernel/drivers/usb/serial/cp210x.c I would say that it doesn't because 2105 VID=10C4/PID=EA70 is not on the list. Is there an updated driver available that supports 2105?
2. My understanding is that no QNX drivers available for SL USB serial bridge devices (which is shame). However I saw some posts on QNX developer forums people successfully using cp2102 with standard QNX devc-usb driver. I tried that with the cp2105 and got nowhere really. I believe the dual-channel nature is confusing devc-usb driver. So my question is does anyone have any experience with cp2105 under QNX?
Thanks for any pointers.
CP210x Linux driver - Unable to enable UART
Within the CP210x.c file, I had to add the VID&PID for the new MEI device (VID 0x0BED, and PID=0x0400) to the list of supported devices. The good news is this change now detects the device when I plug it in and I have a /dev/ttyUSB0, but I get this output when I run dmesg:
[ 6230.860153] usb 2-2: new full-speed USB device number 7 using ohci_hcd
[ 6231.330652] usb 2-2: New USB device found, idVendor=0bed, idProduct=0400
[ 6231.330655] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 6231.330657] usb 2-2: Product: CF7xxx-USB Coin Changer
[ 6231.330658] usb 2-2: Manufacturer: MEI
[ 6231.330660] usb 2-2: SerialNumber: 000000000001
[ 6231.332643] cp210x 2-2:1.0: cp210x converter detected
[ 6231.528185] usb 2-2: reset full-speed USB device number 7 using ohci_hcd
[ 6231.805404] usb 2-2: cp210x converter now attached to ttyUSB0
[ 6231.834662] cp210x ttyUSB0: cp210x_open - Unable to enable UART (error code -32)
[ 6231.841140] cp210x ttyUSB0: cp210x_open - Unable to enable UART (error code -32)
[66026.077996] cp210x ttyUSB0: cp210x_open - Unable to enable UART (error code -32)
The device driver fails in the cp210x_open() method. I added an extra bit of debugging to the CP210x.c file to show the error code -32. Any idea what this error means, and how can I fix it? I did follow one person's suggestion and increase the USB timeouts from 300ms to 3000ms but this had no effect.
Any help would be much appreciated, or if anyone is using this Cashflow 7000 device on Linux successfully I would really like to know how you got it working!
Thank you,
Jon
CP2114 UART access via Python?