by rene-aguirre

rene-aguirre / pywinusb

USB / HID windows helper library

132 Stars 48 Forks Last release: Not found BSD 3-Clause "New" or "Revised" License 146 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Installing and Using pywinusb.hid

.. contents:: Table of Contents


This project aims to be a simple USB/HID user application space (hence no system drivers needed) 100% python package (without C extensions). Initially targeting simple HID devices management.

The vision for this project is to be something similar to

but for USB/HID hardware enthusiasts.


  • All python code, using ctypes

  • Top level handling of HID events (usage events calling hook function handlers)

Current limitations

Depending on your application you might find these limitations

  • Windows only (so far...)

  • Maybe speed. I've had feedback by some users that speed is not a problem for high data throughput, but I think you might hit some Python limits if you are require any real time processing.

Installation Instructions


The most convenient way of installing is using

(see below for
install commands in Windows). I recommend you do
this once you are familiar with the library as you might otherwise
loose track of the example source files. However, you can always
come back and take a look at the examples or the source browsing the
github repository here.

| pip install commands:
| For Python 2:

pip install pywinusb
, or
py -2 -m pip install pywinusb

| For Python 3:
py -3 -m pip install pywinusb

| (More on pip installation instructions here: | | If using a source package (.zip) from PyPi, un-zip your file (or get the source
from the main repository) and run the familiar install
from the command line, as this is sufficient. Note that setuptools or distribute
(for python 3) are required.


So far only Windows OS it's supported.

Using pywinusb.hid

View the

directory for some (ok, few right now) scripts. These show, for instance, how to use pywinusb.hid to handle events from HID class devices usages events.

Latest code and some Wiki information can be found on the

main project code page

.. _main project code page:


More on this later...

  • The module contains a function to check HID class devices capabilities, for now it provides a basic human readable text report (see the hid.core package, run it as main while HID class devices are connected to your system)

Feedback and Contributing

Feel free to contact me! use the

main code project page
_, just tell what do you think about the project or bring me anything you think might be cool to consider.

Any participation it's appreciated, feel free to contribute more examples or applications or just a reference to your open source project that uses the library.

.. _main code project page:

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.