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 download has been tested by an editor here on a PC and a list of features has been compiled; see below. We've also created some screenshots of Zadig to illustrate the user interface and show the overall usage and features of this USB driver program.
Zadig is a free and open-source device driver installation utility developed by the French software developer libwdi. It is designed to install device drivers for USB devices on Windows in cases where the operating system does not automatically recognize the device or install the appropriate driver. Zadig allows you to install device drivers in the form of kernel-mode drivers and user-mode drivers, and includes support for various driver installation options, such as installing or replacing existing drivers, and creating and installing system-wide drivers. Zadig is often used to install device drivers for USB-based hardware, such as USB-to-serial adapters and USB-based peripherals.Zadig does exactly what you tell it to do. If you select the wrong device, and Zadig happen to replace its driver, the responsibility is entirely yours. Zadig will try to warn about common system drivers, such as HID or Mass Storage, that you don't usually want to replace, but there are only so many drivers Zadig can know about.Therefore caution should be used when installing these drivers.
I'm pretty happy with Windows 10 as my primary development box. It can do most anything I want, run a half-dozen Linuxes, and has a shiny new open source Terminal, and has great support for Docker now.
The Mac and Linux instructions usually say something like "plug it in and party on" but folks like myself with Windows have to set up a WinUSB Driver (libusb-win32 or libusbK) as dfu-util uses those libraries to speak to USB devices.
If you plug in a device, the vast majority of Windows users want the device to 'just work.' My non-technical parent doesn't want Generic USB drivers so they can flash the firmware on their mouse. I, however, as an aristocrat, sometimes want to do low-level stuff and flash an OS on a Microcontroller.
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. It can be especially useful for cases where:
Here you can see me finding the ST device within Zadig and replacing the driver with WinUSB. In my case the device was listened under STM32 Bootloader. Be aware that you can mess up your system if you select something like your WebCam instead of the hardware device you mean to select.
Now I can run dfu-util --list again. Note the before and after in the screenshot below. I run dfu-util --list and it finds nothing. I replace the bootloader with the generic WinUSB driver and run dfu-util again and it finds the devices.
NOTE: When using dfu-util on Windows, I recommend you either be smart about your PATH and add dfu-util, or better yet, make sure the dfu-util.exe and libusb.dlls are local to your firmware so there's no confusion about what libraries are being used.
Sponsor: Develop Xamarin applications without difficulty with the latest JetBrains Rider: Xcode integration, JetBrains Xamarin SDK, and manage the required SDKs for Android development, all right from the IDE. Get it today
Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.
ok, replaced driver for STM32BOOTLOADER in Zadig with libusbK (v3.1.0.0).
Confirmed in Devices and Printers.
Left board plugged in in bootloader mode and ran proffie-dfu-setup.exe.
It installed itself and auto-ran.
After which, Zadig showed the correct driver under Current, as did Devices and Printers.
I hit upload in Arduino while in this state and it worked fine as expected.
I am struggeling to get some communication via USB using PyUSB (help there is also very much appreciated). For me, the documentation of PyUSB does not cover the full picture (including such traps and time-consuming annoyances. The minimal examples do not work in my case. During the annoying trial and error process, I also used Zadig to force a certain driver.
The communication was working with the Keysight IO Libraries Suite, however, I want to use PyUSB in my own programs.Due to forcing another USB driver (libusbK) via Zadig, the Keysight Suite doesn't work anymore. However, now it seems I can't go back to the original driver which was installed when installing the Keysight IO Library Suite. Re-installation or reparing of the Keysight Suite does not help.
Hi,
I am using a windows 8.1 system. For flashing my spark core firmware I installed the zadig driver. Is there any way to use this driver for serial communication? The driver is listed in my device manager as USB-Device.
First I had installed the the Spark Core USB Driver according to the manual of BDub:
@Roadrunner in my case when I flash the spark I am able to see the it in the COM&LPT list, however I cannot connect to it via putty. I then press the reset and hear Windows to play a sound to indicate that a usb device has been unplugged. As soon as I hear the connect sound from Windows I connect via putty and this time it works.
For a while I thought you needed to use the spark_core.inf driver for COM and Zadig for DFU, but later I found out Zadig works for COM and DFU. EDIT: and then later I realized you really do need both! lol.
You have about 10-15 seconds before this will kick your core off the cloud, so be quick. You also have to do the above process if you want to reflash your device over the air from the web IDE, because it will be stuck in the setup() and not able to receive a new program until you connect your serial terminal properly.
I think you really do need to use the spark_core.inf driver as well but it gets along fine alongside the Zadig USB driver. We've discussed this elsewhere but I think it is useful to mention it in this post since it also has @BDubs's neat "wait while I press the key" trick.
Under some circumstances, the RoasTime 3 drivers may not properly install on Windows. If your roaster is showing disconnected even while plugged into the computer via USB, you may need to force the driver installation from within RoasTime 3. Again,...
If I go to DL driver in RT3, its will try do something if I chose folder with some files inside, but nothing if happens, if I choose empty folder just nothing, I made a video here Roasttime 3 driver? - YouTube
So this is actually my fault. It seems I broke this in the last version. I DO have a fix for it, but I was trying to get some other stuff also in with the release. In the meantime, you can download the drivers by:
mcaillio, I have the same sort of issue. Have tried using the 3.1.7 route and it seems to just sit with a dos popup open saying it is installing, I gave up after 1/2 hour. I also went the other route above using zadig and it timed out. Can you help please.
Thanks.
Steve.
Unfortunatley I am having some problems with a USBasp programmer I got recently. I know there are tons of posts out there with issues and fixes for the USBasp, but non of them seem to have the same issue I have. I am on a pc on windows 10. I have installed usb asp drivers, and in device manager there is an entry for "libusb-win32 devices, so that is ok. Also, if I go into command prompt and enter "avrdude -c usbasp -patmega328p" I get the message that everything is ok. The issue comes when I go into the arduino IDE. I select the board I want to program (in this case an Arduino nano just to test), and try to burn bootloader, but the IDE gives this error:
Ok, thanks. I did in the past try using zadig to install the driver and it seemed to work ok. Whenever I do it now however, zadig doesnt seem to detect the usbasp. I have taken a screenshot to show what I mean. Imgur: The magic of the Internet
If your device is connected through a (virtual) COM port, libsigrok generally doesn't need a special driver. Please install the driver as provided by the manufacturer. If you are unsure, you can check if your device appears at the "Ports (COM&LPT)" section of the Windows Device Manager.
Exception: If the libsigrok driver uses the chip, for example an FTDI chip, in a special mode (i.e., not as a plain COM port), the Zadig steps outlined below will be required. One example for that is the "ftdi-la" libsigrok driver.
For installing the WinUSB driver you can use the Zadig executable. There are two versions, one for Windows XP (zadig_xp.exe), and another one for all other (Vista or higher) supported Windows versions (zadig.exe). Both 32 and 64 bit Windows versions are supported.The sigrok-cli and PulseView installers ship with both Zadig executable files for convenience and they're available from the Windows "Start" menu (the Zadig *.exe files themselves are located in the installation directory of the respective application).
If you already installed the vendor driver previously, you need to run Zadig and switch to the WinUSB driver (see above). There's no need to uninstall or deactivate the vendor driver manually, Zadig will handle all of this.
Note: For some devices (such as the Hantek 6022BE, for example) you might have to assign the WinUSB driver via Zadig twice: the first time for the initial USB VID/PID the device has when attaching it via USB, and a second time after the firmware has been uploaded to the device and the device has "renumerated" with a different VID/PID pair.
c80f0f1006