Skip to content

Installation

James Ridgway edited this page Nov 11, 2021 · 14 revisions

Pre-requisite: LibUSB HIDAPI Backend

A HID backend is required to interact with the StreamDeck, otherwise you will encounter errors such as:

StreamDeck.DeviceManager.ProbeError: ('Probe failed to find any functional HID backend.', {'libusb': TransportError("No suitable LibUSB HIDAPI library found on this system. Is the 'libhidapi-libusb.so' library installed?")})                                         

Windows

Install hidapi.dll to a folder on your systems %PATH% directory list

  1. Download the DLL from the libUSB release page
  2. Extract to a directory
  3. Ensure that the directory is added to your %PATH% variable.

macOS

Install the following using Homebrew:

brew install hidapi

Ubuntu

Install the following:

sudo apt install -y libudev-dev libusb-1.0-0-dev libhidapi-libusb0

# Add your user to plugdev group
sudo usermod -a -G plugdev `whoami`

# udev rule to allow all users non-root access to Elgato StreamDeck devices:
sudo tee /etc/udev/rules.d/10-streamdeck.rules << EOF
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0060", MODE:="660", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0063", MODE:="660", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006c", MODE:="660", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006d", MODE:="660", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0080", MODE:="660", GROUP="plugdev"
EOF

# Reload udev rules to ensure the new permissions take effect
sudo udevadm control --reload-rules

Make sure to disconnect and reconnect your Stream Deck device after applying the udev rules

Raspberry PI / Raspbian

Install the following:

sudo apt install -y libudev-dev libusb-1.0-0-dev libhidapi-libusb0 libopenjp2-7 libtiff5

# Add your user to plugdev group
sudo usermod -a -G plugdev `whoami`

# udev rule to allow all users non-root access to Elgato StreamDeck devices:
sudo tee /etc/udev/rules.d/10-streamdeck.rules << EOF
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0060", MODE:="660", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0063", MODE:="660", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006c", MODE:="660", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006d", MODE:="660", GROUP="plugdev"
EOF

# Reload udev rules to ensure the new permissions take effect
sudo udevadm control --reload-rules

Note: these steps have been tested on Raspberry Pi 4. Earlier Raspberry Pi models have not been tested.

Installing DevDeck

Install devdeck by running:

pip install devdeck

You should then be able to run DevDeck by running:

devdeck

The first time that DevDeck is run, it will generate a basic ~/.devdeck/settings.yml populated with the clock control for any Stream Decks that are connected.

Clone this wiki locally