Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time
April 21, 2023 23:03
January 26, 2017 00:23
September 21, 2018 13:54


Build Status NuGet version LGPLv3 license

LibUsbDotNet is a .NET C# USB library for WinUsb, libusb-win32, and Linux libusb v1.x developers. All basic USB device functionality can be performed through common device classes allowing you to write OS and driver independent code.

  • LibUsbDotNet versions 2.2.4 and above support the Libusb-1.0 driver.
  • LibUsbDotNet 2.1.0 and above supports the genuine libusb-win32 driver package. However, access to basic device information via the windows registry is not available. See the LegacyUsbRegistry class for more information.


  • Full support for WinUSB. All WinUSB interfaces are treated as separate devices; each interface can be used by a different application.
  • Extended kernel level support for libusb-win32.
  • Supports Unix-like operating systems using Mono .NET and libusb-1.0.
  • Common device classes allow for a single code base to support multiple drivers and platforms.
  • Includes a Usb InfWizard utility (Windows only) for generating usb installation packages, removing devices, and installing drivers.
  • Device discovery using any or all of the folowing criteria:
    • VendorID
    • ProductID
    • Revision Code
    • Serial Number
    • Device Interface GUID

Source package includes many small example applications.

Linux users

If you have installed libusb-1.0 and you still have an error about loading library, it may be needed to make a symlink to allow runtime load the library.

First, find the location of the library. For example : sudo find / -name "libusb-1.0*.so*" can give you :


Then go to the directory, and make the symlink. it should match the library name, with extension (.so) without version :

cd /lib/x86_64-linux-gnu
sudo ln -s


My updates to LibUsbDotNet, an excellent library for cross-platform USB device control using Mono/.NET







No packages published