Skip to content
/ usbx Public

Modern and user-friendly Python library for working with USB devices.

License

Notifications You must be signed in to change notification settings

manuelbl/usbx

Repository files navigation

usbx

usbx is a modern, powerful and user-friendly Python library for working with USB devices. It provides many useful features:

  • Querying information about connected devices
  • Communication with USB devices
  • Notification when devices are connected and disconnected
  • Single API for Windows, Linux and macOS
  • Good documentation
  • Thread-safe
  • No need to install further software like libusb

usbx is easy to use:

>>> from usbx import usb
>>> for device in usb.get_devices():
...     print(device)
...
USD device 4295171929, vid=0x1a40, pid=0x0801, manufacturer=None, product=USB 2.0 Hub, serial=None
USD device 4295171974, vid=0x0b0e, pid=0x0412, manufacturer=None, product=Jabra SPEAK 410 USB, serial=783F92B9DD3Cx011200

Installing

usbx can be installed with pip:

python -m pip install usbx

Usage

The User Guide will get you started with the library. Also read Platform-specific Considerations as some operating systems might need extra steps to work with USB devices.

The API Reference documentation provides API-level documentation.

Examples

Serveral examples demonstrate the use of the library:

  • enumerate.py: Enumerate all connected devices including details about the interfaces and endpoints
  • monitor.py: Monitor USB devices being connected and disconnected
  • epaper.py: Display an image on e-paper display with (with IT8951 controller)
  • stm32dfu: Upload firmware to an STM32 based device

License

usbx is made available under the MIT License. For more details, see The MIT License.

Contributing

This is an open-source project that happily accepts contributions. Please see Contributing for details.

System Requirements

  • Python 3.9 or higher
  • Windows (x86-64 or ARM), Linux (x86-64 or ARM), macOS (x86-64 or ARM)
  • 64-bit platform and Python interpreter
  • For Linux: udev (usually goes together with systemd)

About

Modern and user-friendly Python library for working with USB devices.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages