To let you access USB devices, Zadig is a Windows application that installs generic USB drivers like WinUSB, libusb-win32/libusb0.sys, or libusbK.
You have the option to install generic USB drivers using Zadig instantly. This can assist you in using WinUSB or a libusbK-based program to access USB devices. If you want to update a generic USB driver, the program may be helpful as well. You can quickly get the drivers up and running by clicking a button rather than searching for them yourself. You don’t need to go through an installation process because the application is provided as a single executable file. It supports both 32-bit and 64-bit versions and runs on Windows XP and all subsequent editions.
Working with Zadig is quite simple. To begin the installation, just choose a driver from the application’s simple user interface and click a button. Alternatives include installing the WCID or filter drivers or just extracting the files without doing anything further. Additionally, a list of the currently installed drivers may be retrieved and changed with Zadig’s offerings.
The program doesn’t have many features, making it simple to learn. In the event that you want to learn every detail about the files that have been added to your system, you may expand its interface to disclose a log. There will be no guesswork because information about each supported driver is also available.
Running Zadig and installing the default WinUSB drivers to the RTL-SDR, which appears as «Bulk-In, Interface (Interface 0)» in Zadig, is all that is required to install an RTL-SDR dongle on Windows.
However, we have discovered that occasionally, users inadvertently install WinUSB to «Bulk-In, Interface (Interface 1)» via Zadig. The RTL-SDR may display a «USB open error -12» message on command-line software and may have trouble connecting to the device on GUI applications like SDR# if WinUSB is installed on this interface.
Zadig simplifies accessing USB devices by enabling fast and hassle-free installation of generic USB drivers.
Features:
- Automatic data synchronization with Magento makes it easier to perform everyday chores
- Utilizing data globally while simultaneously distinguishing information based on locality
- boosting performance and lowering bounce rates to boost SEO ranking.
Windows XP or later version
32-bit or 64-bit system support
USB interface for device connection
Existing generic USB drivers for updating
👨💻️ USER REVIEWS AND COMMENTS 💬
image/svg+xmlBotttsPablo Stanleyhttps://bottts.com/Florian Körner
Kayden
Zadig for Windows makes it so convenient to get the drivers for generic USBs set up on my device, which means I can then reach all of the files that are stored on those drivers whenever I’m working. Zadig gives me such peace of mind since I know that my important files and data are never more than a USB installation away.
image/svg+xmlBotttsPablo Stanleyhttps://bottts.com/Florian Körner
Arlo Q.
Zadig is a free software program for Windows, developed by the French software developer, Pascal B.It is a user-friendly application designed to install generic USB drivers (such as WinUSB, libusb-win32, and libusbK) onto your computer. It can also be used to replace existing drivers, and to create or modify driver installation packages. It is particularly useful for connecting various USB devices, including USB flash drives, game controllers, keyboards, and other accessories.
image/svg+xmlBotttsPablo Stanleyhttps://bottts.com/Florian Körner
Robert G.
Zadig software is an easy to use driver installation tool. It has a simple and straightforward interface that is easy to understand and use. I have used it to install drivers on several computers and it has been very reliable. It offers a quick and effective way to install drivers without having to go through the complicated process of manually installing them. It is also very light on system resources, and I have not experienced any slowdown in performance. The updates are frequent and it is also free, so it is a great choice for anyone needing to install drivers.
image/svg+xmlBotttsPablo Stanleyhttps://bottts.com/Florian Körner
Aaron Y.
I found Zadig software to be quit useful, but it can be a bit confusing at times as the user interface isn’t the most intuative.
image/svg+xmlBotttsPablo Stanleyhttps://bottts.com/Florian Körner
Daniel Pangrazio
Zadig is a free, open-source software designed to help users install generic USB drivers for their devices on Windows operating systems. It allows users to replace the default drivers with compatible ones for specific devices, which can improve their functionality and performance. The software also includes features such as automatic driver detection, driver backup and restoration, and device filtering based on vendor and product IDs. Zadig is a lightweight and easy-to-use tool that can be helpful for users who encounter driver-related issues.
image/svg+xmlBotttsPablo Stanleyhttps://bottts.com/Florian Körner
Oliver
Zadig is an open-source software which simplifies the installation of USB drivers on Windows. The most significant feature of Zadig is its ability to replace a driver without intricate command line or steps, thus saving time and reducing errors. It offers a clean interface, making it accessible for both novice and advanced users. The software also supports a wide range of drivers, including libusb-win32, libusb0, libusbK, or WinUSB.
image/svg+xmlBotttsPablo Stanleyhttps://bottts.com/Florian Körner
Tyler
A versatile tool for installing generic USB drivers with user-friendly interface.
image/svg+xmlBotttsPablo Stanleyhttps://bottts.com/Florian Körner
Caleb
Efficient for signal analysis, occasionally confusing interface.
Zadig is a Windows application that installs generic USB drivers, such as WinUSB, libusb-win32/libusb0.sys or libusbK, to help you access USB devices.
Command Line
Download Links For Version 2.8
https://github.com/pbatard/libwdi/releases/download/v1.5.0/zadig-2.8.exe
Download
Download Links For Version 2.7.765
https://github.com/pbatard/libwdi/releases/download/v1.4.1/zadig-2.7.exe
Download
Download Links For Version 2.9.788
https://github.com/pbatard/libwdi/releases/download/v1.5.1/zadig-2.9.exe
Download
Zadig 2.x — User Guide
Table of Contents
- Basic usage
- Advanced usage
- Example of a zadig.ini file
- Example of a zadig preset device config file
-
Preventing the replacement of a Zadig libusbK USB Device Driver
- The Problem
- The Cause
- The workaround
- Possible Prevention
- Process and Diagnostic Details
Basic usage
In its simplest mode of operation, Zadig is meant to install a libusb compatible driver, for a device that does not yet have such a driver installed.
Below is an overview for a typical driver installation:
- The first screen you will see when launching Zadig is the User Account Control prompt displayed below. This is because the application needs to run with administrative privileges. To be able to install a driver, you should answer Yes.
- With the application running, you should see your USB device appear in the dropdown list (click on the dropdown to see all devices).
You can also plug your USB device after Zadig is running, as the list is refreshed automatically. When possible, we recommend that you leave only the device you want to install a driver for, and unplug any other USB device.
The Vendor ID (VID
, here0x045E
), Product ID (PID
, here0x289
) and (optionally) Interface ID (MI
) are also displayed under «USB ID» for your reference. If you leave your mouse over the Vendor ID, you should get the full name of the Vendor displayed. If the Vendor Name cannot be determined, and you know it, you are invited to report it to the USB ID Repository using the new button that will appear then.HELP! MY DEVICE DOES NOT APPEAR IN THE LIST!!
If you cannot see your device listed, then it probably means that it already has a driver installed, in which case you need to be very cautious about replacing it, as other applications or the OS itself may no longer be able to access it afterwards. For instance, if you replace the existing driver for an USB keyboard or mouse, it will no longer be usable for input in Windows but instead will only work with a custom application, which is probably not what you want.
To see USB devices that already have a driver installed, go to the Options menu and select List All Devices.
Below is an example of what you would see for an USB mouse, with the HidUsb driver already installed: - (Optional) With your device selected, you can edit its name if the default doesn’t suit your needs by clicking the Edit checkbox.
You can enter a description in the language of your choice. The description you enter here is how the device will appear in Device Manager and other locations.
You can also select the driver you want to install, betweenWinUSB
,libusb-win32/libusb0
andlibusbK
, depending on the type of application you plan to use. Currently, any of those drivers can be used for libusb, or LibusbDotNet, whereaslibusb-win32
can be used for applications based on the library of the same name. - Once you are satisfied with the selection and device description, simply click the Install Driver Button. Note that the label of this button may change according to the operation you are about to perform. You can also use the split part of the installation button to choose a different operation than the default one, such as extracting the driver files rather than installing them, performing the one-off installation of a WCID Device driver or installing/uninstalling the libusb-win32 filter driver.
- On some versions of Windows 7, it is possible that you get the following security alert:
If that is the case, you should install the hotfix for KB2921916 from Microsoft or select Install this driver software anyway. - Once the installation is started, just wait until it completes. Normally, the installation process takes a matter of seconds, but in some circumstances, if the local system policies cannot be temporarily overridden to disable the creation of a system restore point, it may take a lot longer. You will be notified once the installation is complete.
- If the installation was successful, you should end up with something similar to this:
Notice how the driver is now being displayed (in green) and indicates WinUSB. WinUSB is one of the drivers supported by libusb-1.0.
If the driver has been installed successfully, you should now be able to use your device with a libusb based application.
Advanced usage
For power users, Zadig offers the following list of features:
-
Advanced Mode (Options → Advanced Mode):
In this mode, additional information is displayed, and users also have the ability to select the directory where the files should be extracted. -
Setting of the options through an INI file:
All the options that can be set in the menus can also be set from a zadig.ini file, which Zadig attempts to read when started. An example of such an ini file is provided below. -
Info/Log:
In Advanced Mode, you can also select the log level appearing in the logging window by going to Options → Log Level. If you want to find out more about what the installation process is doing, or report an issue, make sure you run your driver installation with a sufficient log level. -
Automated Creation/Signing of a Catalog file (Options → Create a Catalog File / Options → Sign Catalog & Install Autogenerated Certificate):
Depending on whether these options are enabled, and when using the default drivers, Zadig will automatically generate a Catalog (.cat) file, as well as sign it with a unique self-signed certificate generated on the fly, which is then installed on the current machine during file extraction -
Fine control over devices listed (Options → List All Devices / Options → Ignore Hubs or Composite Parents):
By default, Zadig only lists devices that don’t have a driver installed. In some situations however, you might want to replace an existing driver, including the ones for USB hubs (usbhub.sys) or Composite Parent (usbccgp.sys). These options allow you to do just that. -
Create New (Device → Create New Device):
In the case where you want to install a driver for a device that is not yet plugged, and for which you have the relevant information (VID, PID, etc.), you can select the Create New option and run the installation process so that the next time the device is plugged, the driver will be available. -
Open Preset (Device → Load Preset Device):
Similar to the Create New option above, but using a zadig preset device config file. For an example of such a file, see below.
Example of a zadig.ini file
# Sample ini file for Zadig [general] # Start application in advanced mode (default = false) advanced_mode = true # Exit application upon successful driver installation (default = false) exit_on_success = false # Log level (0=debug, 1=info, 2=warning, 3=error) log_level = 0 [device] # List all devices, including the ones that already have a driver (default = false) list_all = true # Include hubs and composite parent devices when listing all (default = false) include_hubs = true # Trim trailing whitespaces from the USB device description (default = false) trim_whitespaces = true [driver] # Select the following as the default driver to install: # WinUSB = 0, libusb0.sys = 1, libusbK.sys = 2, Custom = 3 (default = WinUSB) default_driver = 2 # Extract driver files only, don't install (default = false) extract_only = false # Set the default destination directory for extraction of the driver files (default = "C:\\usb_driver") default_dir = "C:\\usb_driver" [security] # If embedded, install the following certificate to the Trusted Publisher store # install_cert = "mycert.cer" # If set to true, will silently install the cert provided above (not recommended) # disable_cert_install_warning = false
Example of a zadig preset device config file
# This is a sample preset device configuration for Zadig [device] Description = "Sample Device" VID = 0xABCD PID = 0x1234 MI = 0x01 # You can also force a specific Device Interface GUID as follows # GUID = "{11111111-2222-3333-4444-555555555555}"
Preventing the replacement of a Zadig libusbK USB Device Driver
The Problem
After replacing an existing USB device driver with libusbK, using Zadig, one may find that Windows silently rolls back the device driver to the previous driver. This usually happens after reboot, but may also occur after unplugging the device. Similar behaviour can also occur as a result of Windows Update; either a rollback or possibly replacement with a newer driver (rollahead).
The Cause
Windows continually, albeit episodically, quests to assure that for each device, the ‘best’ driver is installed. One is probably already aware of such a notion when one attempts to ‘upgrade’ a device driver (via Device Manager) and it comes back saying the best driver is already installed. The metric of ‘best’, termed driver ‘rank’, is some combination of driver date, version, and other factors described here.
However, multiple candidate drivers may share the same rank in which case the most recent date trumps. This quest for ‘best’ is also episodic, so as not to disrupt ongoing programmatic control of a device. Upon power-up or reboot, the Windows PnP Manager scans (‘enumerates’) all attached devices, also doing so upon event of a device attachment (e.g. plug-in of USB device). Upon enumeration, the best driver is determined and assigned.
As explained above, this will typically be the driver with the newer date. For instance, Zadig’s date stamp for libusbK might be 11/30/2014
for version 3.0.7.0
resulting in rank 00FF0001
. If the user has ever installed other drivers for this device, e.g. drivers from manufacturer, or the device manufacturer’s drivers are hooked by Windows Update (some are, some aren’t), then there is risk of unwanted rollback. As mentioned, this risk generally holds for driver dates greater than libusbK’s.
The workaround
Remove competing (typically newer-dated) device drivers, via pnputil
.
See Microsoft’s How Devices and Driver Packages are Uninstalled under section Deleting a Driver Package from the Driver Store which boils down to issuing the command:
pnputil /delete-driver <example.inf> /uninstall
However, one needs to know which .inf
to cite in the <example.inf>
placeholder as this may not typically be an explicit manufacturer’s .inf
, but rather an installation-synthesized oem####.inf
.
To identify that .inf
, one can use DeviceManager → [device] → Properties → Events to examine driver events and identify which oem####.inf
is the manufacturer-tied one. Or if the driver to delete is the one presently installed: DeviceManager → [device] → Properties → Details → Property:Inf name.
Upon issuing pnputil /delete-driver
, both the .inf
file in C:\Windows\INF
, and the driver folder in C:\Windows\System32\DriverStore\FileRepository\
are deleted.
But what if one alternately needs to switch between libusbK and the (newer) manufacturer’s drivers, e.g. per usage of the manufacturer’s application software? Then one is evidently stuck with manually monitoring for rollback and managing installation/uninstallation of device drivers, which is less than ideal…
Also note that you can’t simply edit the date in the .inf
file, since it is bound via digital signature in the accompanying .cat
file (see here or here), although perhaps deliberately deleting the .cat
file to force the prompt for ‘install anyway’ might be a workaround.
Possible Prevention
Block (Windows Update) driver installation for particular device, per this arcticle (Caution: We have not tried this!). Necessary only if device manufacturer’s drivers are hooked by Windows Update.
Process and Diagnostic Details
- One can check for device entry in the Windows Registry using
RegEdit
:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\
- Look up entry under
VID_PID_
Entry (VID: Vendor ID; PID: Product ID) - Does service indicate WinUSB or libusbK?
- The
mfg
(Manufacturer) entry should show the synthesizedoem###.inf
, corresponding to (same date)oem###.inf
underC:\Windows\INF\
- Look up entry under
- One can check in Driver Store
C:\Windows\System32\DriverStore\FileRepository\
for a folder, with naming indicating the manufacturer and device, corresponding to prior installation of manufacturer’s driver. - Comprehensive Windows driver installation log at:
C:\Windows\INF\setupapi.dev.log
. Example excerpt showing involuntary rollback:
>>> [Device Install (Hardware initiated) - USB\VID_2457&PID_104B\7&13b69c22&0&3] >>> Section start 2020/10/02 14:13:19.318 utl: {Select Drivers - USB\VID_2457&PID_104B\7&13b69c22&0&3} 14:13:19.364 utl: Driver Node: utl: Status - Selected utl: Driver INF - oem37.inf (C:\WINDOWS\System32\DriverStore\FileRepository\ooi_flamenir.inf_amd64_c49d37bc221e3c4a\ooi_flamenir.inf) utl: Class GUID - {bad36dab-a3d2-4a0e-8b2e-da36202187d4} utl: Driver Version - 04/11/2016,1.2.0.0 utl: Configuration - USB\VID_2457&PID_104B utl: Driver Rank - 00FF0001 utl: Signer Score - WHQL (0D000005) utl: Driver Node: utl: Status - Outranked utl: Driver INF - oem48.inf (C:\WINDOWS\System32\DriverStore\FileRepository\ocean_optics_flame-nir128.inf_amd64_9d418d0d07e56955\ocean_optics_flame-nir128.inf) utl: Class GUID - {ecfb0cfd-74c4-4f52-bbf7-343461cd72ac} utl: Driver Version - 11/30/2014,3.0.7.0 utl: Configuration - USB\VID_2457&PID_104B [LUsbK_Device.NTamd64] utl: Driver Rank - 00FF0001 utl: Signer Score - Authenticode (0F000000)
If you are using a probe with your board, you may need to install the «WinUSB» Driver on «Interface 0» of the probe, to allow Visual Micro to detect it correctly.
Check this page to see if you will need to follow this process.
Download Zadig
-
Download the Zadig tool from https://zadig.akeo.ie/
-
Connect your probe to your PC via USB
-
Run the Zadig.exe as an Administrator
Installing the Driver
Once the tool is loaded you will need to:
-
Click Options
-
Enable List all devices
-
In the drop down list you should see your probe listed, and these often have more than one interface available.
If there is more than one interface, ensure you select Interface0 for external Debug Probes (JLink, ESP-PROG, STLink etc).
For the ESP32S2/S3 USB Debuggers ensure you select Interface2.e.g. ESP-PROG Device Listing in Zadig
The Segger JLink only presents as a single device, so this is the one which needs selecting in this scenario.
e.g. JLink Device Listing in Zadig
The PicoProbe device needs the driver installing on Interface 2, as shown below.
e.g. JLink Device Listing in Zadig
-
Once you have selected the correct device, ensure you have the WinUSB driver selected in the Target driver box on the right hand side.
-
Then click the Install Driver button, this can take up to 5 minutes to complete.
-
Once this is completed you can close the Zadig tool.
If you move your probe to a different USB port, you may need to re-install the driver using the same process as above.
Driver Installation Troubleshooting
In some scenarios you may encounter difficulties with the WinUSB Driver on your system, where it may appear installed via Zadig, however the device is not correctly detected for debugging or programming in Visual Micro.
This has been seen on the ESP-PROG, and may also affect other probes with the same FT2232/HL chip, the below instructions guide you on how to re-install the drivers to work correctly.
- Connect the Esp-Prog probe to the PC with a USB cable.
- If a USB driver is already installed, you must delete the driver in Device Manager.
- After deleting, disconnect the Esp-Prog from the PC.
- Download the VCP driver (Virtual COM Port Drivers) for the FT2232HQ chip from the FTDI website (https://ftdichip.com/drivers/vcp-drivers/)
- Install the downloaded VCP driver (run nn.exe).
- Connect the Esp-Prog probe to the PC with a USB cable.
- The USB driver will be installed so that channels 0 and 1 will be Virtual COM Port.
- If there will be no Virtual COM port on channels 0 and 1, go back to step 2.
- Currently (2022.02.07) the result of the correct driver installation on channels 0 and 1 is as follows: «FTDIBUS (v2.12.36.4)»
- With Zadig, the «Dual RS232-HS (Interface 0) channel driver must be replaced with a WinUSB (v6.1.7600.16385) driver.
The driver for the «Dual RS232-HS (Interface 1) channel does not need to be changed, it remains an FTDI driver!
June 14th, 2024 — Free — 100% Safe
Zadig will allow you to generate catalog files and instantly install generic USB drivers on your computer without too many problems.
Tweaking your computer’s components is easy, especially if you have the right tools. However, this requires you to know how these applications work and how to get the most out of them.
One of these is Zadig, a portable tool that will help you install generic USB drivers on your computer. It will feature support for many drivers, including WinUSB, libusb, libusbK, and others.
It allows you to choose from the drivers you want to install freely, and you can do that easily and quickly.
Portable and Simple
Zadig is a simple application at its core. You don’t need to install it because it’s a portable application that enables you to work immediately. You only need to deploy it on your computer by either downloading the archives that come with this download or uploading it to your USB drive and deploying it from there.
You’ll notice that it has a minimalistic interface, enabling you to start using it instantly. It has everything organized neatly, especially its main features.
One issue might be that there’s no additional help documentation, although that might only be useful if you’re a beginner. Otherwise, it should be simple enough for almost anyone.
Install USB Drivers
The main capability of this tool is to help you install various USB generic drivers. It allows you to access and use your USB devices more easily.
The great thing is that you can use various driver types, including WinUSB – the most common, libusb, and libusbK. You can select these drivers from the dedicated list and make any choice you want.
Conclusion
Zadig is an effective tool that will help you install USB generic drivers on your computer, allow you to use various USB devices on your computer, and use their full potential.