This repo aims to provide instructions on how to create a lowcdc.sys driver package for the 64-bit version of Windows 10 and contains almost everything needed (except for the usbser.sys driver because of the limitations of Microsoft Software License Terms) to accomplish this.
The lowcdc.sys driver is developed by Osamu Tamura and published unchanged. The source code is available on the author's site.
The following devices are supported:
Device | Hardware ID |
---|---|
AVR-CDC | USB\VID_16C0&PID_05E1 |
Digispark | USB\VID_16D0&PID_087E |
The master branch can be broken, use tags/releases in order to obtain stable releases.
There is an increasing number of reports that indicate compatibility issues between AVR-CDC devices and the USB 3.0 driver stack of Windows 10. Before trying to create or install a LowCDC-Win10x64 driver package make sure that the USB device has been successfully enumerated and assigned a hardware identifier (ID). Learn more about hardware ID and how to find it for a given device.
-
Some of these driver packages do not include a signed catalog file. The lowcdc.inf setup information file may not contain necessary sections, such as SourceDisksNames and SourceDisksFiles.
-
usbser.sys has been completely re-written in Windows 10 and cannot be used with the current version of lowcdc.sys.
-
Download the latest release of LowCDC-Win10x64 and extract the contents somewhere on your computer.
-
Find
usbser.sys
included in the 64-bit version of Windows 7. The file is located in the\Sources\install.wim\Windows\System32\DriverStore\FileRepository\mdmcpq.inf_amd64_neutral_fbc4a14a6a13d0c8
directory on the installation disk of Windows 7 with integrated SP1. The version number of the driver I use is 6.1.7601.17514. Copy the file to the directory with the LowCDC-Win10x64 files in it—your driver package directory—and rename it tousbser61.sys
to avoid possible replacement of the Windows 10 in-box driver. -
Install Windows 10 SDK and Windows Driver Kit (WDK) with the same version number. Make sure that the
Inf2Cat.exe
tool is located in the\Program Files (x86)\Windows Kits\10\Bin\%Version%\x86
directory, theMakeCert.exe
,CertMgr.exe
,SignTool.exe
tools are located in the\Program Files (x86)\Windows Kits\10\Bin\%Version%\x64
directory. Note that earlier installations of the kits did not include a version number in the path to the tools executables.There is also a workaround, which has been tested with the 10.0.19041.685 version of Windows 10 SDK and WDK, to install mostly necessary software. Choose to download the kits for installation on a separate computer instead of installing them. When the download is complete, run
Windows SDK for Windows Store Apps Tools-x86_en-us.msi
,Windows SDK Signing Tools-x86_en-us.msi
andWindows Driver Kit Binaries-x86_en-us.msi
from theInstallers
directories. -
Delete the private key associated with the test certificate (optional).
⚠️ Because the test certificate has been added to the Trusted Root CA and Trusted Publishers certificate stores, you must destroy the private key, so that it cannot be reused by an attacker to sign malicious applications.
-
Enable the TESTSIGNING boot configuration option, restart the computer for the change to take effect. When the option for test-signing is enabled, Windows displays a watermark with the text "Test Mode", the version and build numbers of Windows in the lower right-hand corner of the desktop.
⚠️ Be aware using Windows with the TESTSIGNING boot configuration option, Windows will load drivers that are signed by any certificate. -
To use the test-signed driver package on another computer, install the test certificate to the corresponding certificate stores using the Certificate Import Wizard or the CertMgr tool.
-
Install the driver package.
createcat.bat is a batch file that generates a test-signed catalog file for a LowCDC-Win10x64 driver package, i.e. performs the steps 4 through 8, inclusive, from the Preparing and test-signing a driver package section.
The batch file does not need any configuration and is ready for use. However you can change the name of a certificate (the CertName
variable) or use an installed certificate (change the CertName
variable, set CreateCert=0
).
-
Run
createcat.bat
with the administrative permissions (it is not necessary to run the batch file in the command prompt). -
Enter the Windows 10 SDK and WDK version number if included in the path to the tools executables.
-
Examine the output. The text below is the result of a successful execution.
D:\LowCDC-Win10x64>createcat.bat Administrator privileges are required. Detecting privileges... Success: Administrator privileges are confirmed. D:\LowCDC-Win10x64>dir "C:\Program Files (x86)\Windows Kits\10\Bin" /a:d Volume in drive C is Windows Volume Serial Number is FA25-3D99 Directory of C:\Program Files (x86)\Windows Kits\10\Bin 2021-02-11 01:47 . 2021-02-11 01:47 .. 2021-02-11 01:47 10.0.14393.0 2021-02-11 01:47 10.0.15063.0 2021-02-11 01:47 10.0.16299.0 2021-02-11 01:47 10.0.17134.0 2021-02-11 01:47 10.0.19041.0 2021-02-11 01:47 arm 2021-02-11 01:47 arm64 2021-02-11 01:47 x64 2021-02-11 01:47 x86 0 File(s) 0 bytes 11 Dir(s) 14 986 432 512 bytes free Enter the Windows 10 SDK and WDK version number if included in the path to the tools executables: 10.0.19041.0 D:\LowCDC-Win10x64>cd /d C:\Program Files (x86)\Windows Kits\10\Bin\10.0.19041.0\x86 C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86>Inf2Cat /driver:"D:\LowCDC-Win10x64" /os:10_X64 ................................. Signability test complete. Errors: None Warnings: None Catalog generation complete. D:\LowCDC-Win10x64\lowcdc.cat C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86>cd ..\x64 C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64>if 1 == 1 ( MakeCert -r -pe -ss My -n "CN=createcat.bat autogenerated certificate" -sk "createcat.bat autogenerated certificate" -eku 1.3.6.1.5.5.7.3.3 "D:\LowCDC-Win10x64\certcopy.cer" CertMgr -add "D:\LowCDC-Win10x64\certcopy.cer" -s -r LocalMachine Root CertMgr -add "D:\LowCDC-Win10x64\certcopy.cer" -s -r LocalMachine TrustedPublisher ) Succeeded CertMgr Succeeded CertMgr Succeeded C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64>SignTool sign /v /s My /n "createcat.bat autogenerated certificate" /t http://timestamp.digicert.com "D:\LowCDC-Win10x64\lowcdc.cat" The following certificate was selected: Issued to: createcat.bat autogenerated certificate Issued by: createcat.bat autogenerated certificate Expires: Sun Jan 01 02:59:59 2040 SHA1 hash: 2F02FA84A9BC0F51901EE66FEC29CC7CCE7B1AF1 Done Adding Additional Store Successfully signed: D:\LowCDC-Win10x64\lowcdc.cat Number of files successfully Signed: 1 Number of warnings: 0 Number of errors: 0 C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64>SignTool verify /v /pa "D:\LowCDC-Win10x64\lowcdc.cat" Verifying: D:\LowCDC-Win10x64\lowcdc.cat Signature Index: 0 (Primary Signature) Hash of file (sha1): F3CFE6C188D35D3F90C588C1CBC239396F770326 Signing Certificate Chain: Issued to: createcat.bat autogenerated certificate Issued by: createcat.bat autogenerated certificate Expires: Sun Jan 01 02:59:59 2040 SHA1 hash: 2F02FA84A9BC0F51901EE66FEC29CC7CCE7B1AF1 The signature is timestamped: Tue Mar 02 13:08:43 2021 Timestamp Verified by: Issued to: DigiCert Assured ID Root CA Issued by: DigiCert Assured ID Root CA Expires: Mon Nov 10 03:00:00 2031 SHA1 hash: 0563B8630D62D75ABBC8AB1E4BDFB5A899B24D43 Issued to: DigiCert SHA2 Assured ID Timestamping CA Issued by: DigiCert Assured ID Root CA Expires: Tue Jan 07 15:00:00 2031 SHA1 hash: 3BA63A6E4841355772DEBEF9CDCF4D5AF353A297 Issued to: DigiCert Timestamp 2021 Issued by: DigiCert SHA2 Assured ID Timestamping CA Expires: Mon Jan 06 03:00:00 2031 SHA1 hash: E1D782A8E191BEEF6BCA1691B5AAB494A6249BF3 Successfully verified: D:\LowCDC-Win10x64\lowcdc.cat Number of files successfully Verified: 1 Number of warnings: 0 Number of errors: 0 C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64>if 1 == 1 ( CertUtil -user -delkey "createcat.bat autogenerated certificate" CertMgr -del -c -n "createcat.bat autogenerated certificate" -s -r CurrentUser My ) createcat.bat autogenerated certificate CertUtil: -delkey command completed successfully. CertMgr Succeeded C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64>cd /d D:\LowCDC-Win10x64 Press any key to continue . . .
createcat.bat has generated the test-signed catalog file lowcdc.cat
and created the certcopy.cer
file that contains a copy of the certificate.
SignTool Error: WinVerifyTrust returned error: 0x800B0101
A required certificate is not within its validity period when verifying against the current system clock or the timestamp in the signed file.
Open lowcdc.cat
, compare the signing time of the catalog file and the 'Valid from' value of the certificate. Adjust the system clock. Run createcat.bat
again.
The installed driver details in Device Manager.
Communication with the MicroProg programmer.
Communication with the STK500 compatible programmer.
lowcdc.sys is developed by Osamu Tamura @ Recursion Co., Ltd.
Copyright 2016-2021 Artyom Protaskin
This document is licensed under a Creative Commons Attribution 4.0 International License.