1.1.1. Default LibUSB HIDAPI Backend¶
This is the default and recommended backend - a cross platform library for communicating with HID devices. Most systems will have this as a system package available for easy installation.
1.1.1.1. Windows¶
Windows systems requires additional manual installation of a DLL in order to
function. The latest source for the hidapi.dll
DLL is the releases page of
the libUSB GitHub project.
1.1.1.2. MacOS (Darwin)¶
On MacOS systems, you can choose to either compile the HIDAPI project yourself, or install it via one of the
multiple third party package managers (e.g. brew install hidapi
, when using
Homebrew).
1.1.1.3. Linux (Ubuntu/Debian)¶
On Linux, the libhidapi-libusb0
package is required can can be installed via
the system’s package manager.
The following script has been verified working on a Raspberry Pi (Model 2 B) running a stock Debian Buster image, to install all the required dependencies needed by this project on a fresh system:
# Ensure system is up to date, upgrade all out of date packages
sudo apt update && sudo apt dist-upgrade -y
# Install the pip Python package manager
sudo apt install -y python3-pip python3-setuptools
# Install system packages needed for the default LibUSB HIDAPI backend
sudo apt install -y libudev-dev libusb-1.0-0-dev libhidapi-libusb0
# Install system packages needed for the Python Pillow package installation
sudo apt install -y libjpeg-dev zlib1g-dev
# Install python library dependencies
pip3 install wheel
pip3 install pillow
# Add udev rule to allow all users non-root access to Elgato StreamDeck devices:
sudo tee /etc/udev/rules.d/10-streamdeck.rules << EOF
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0fd9", GROUP="users"
EOF
# Install the latest version of the StreamDeck library via pip
pip3 install streamdeck
Note that after adding the udev
rule, a restart will be required in order for
it to take effect and allow access to the StreamDeck device without requiring
root privileges.