Fixing Fractal Adjust Pro Hub LED Control on Ubuntu via WebHID
Recently, I encountered an issue where my Fractal Adjust Pro Hub could not be controlled through the official web interface (adjust.fractal-design.com) on Ubuntu.
Although the device appeared in the connection popup, clicking Connect failed to establish a working link.
After some debugging, I found that the root cause was insufficient permissions to access the USB HID device from the browser.
Here's the full breakdown of the problem and solution.
Problem Symptoms
- Device shows up as "Paired" in the WebHID connection dialog but cannot actually connect.
- Occurs in Ubuntu (and other Linux distros) due to restrictive default permissions on
/dev/hidraw*devices. - WebHID API in Chrome/Chromium requires the browser to have permission to read/write HID devices.
Step 1 – Identify the Device
First, connect your Fractal Adjust Pro Hub and run:
lsusb
You should see an entry like:
Bus 003 Device 004: ID 36bc:1001 Fractal Adjust Pro Hub
Here:
- Vendor ID (VID) =
36bc - Product ID (PID) =
1001
Step 2 – Create a udev Rule for Permissions
By default, only root can access /dev/hidraw*.
We need to grant access to users in the plugdev group.
Run:
# 1) Create the udev rule
echo 'SUBSYSTEM=="hidraw", ATTRS{idVendor}=="36bc", ATTRS{idProduct}=="1001", GROUP="plugdev", MODE="0660"' | sudo tee /etc/udev/rules.d/99-fractal-adjust-pro.rules
# 2) Add your user to plugdev group
sudo usermod -aG plugdev "$USER"
# 3) Reload rules and re-trigger udev
sudo udevadm control --reload-rules
sudo udevadm trigger
Step 3 – Reconnect the Device
- Log out and log back in (or reboot) to apply the group change.
- Unplug and re-plug the Fractal Adjust Pro Hub.
- Verify that your user has permission:
ls -l /dev/hidraw* | grep plugdev
Expected output:
crw-rw---- 1 root plugdev 239, 0 Aug 9 00:00 /dev/hidraw0
Step 4 – Browser Requirements
- Use Google Chrome or Chromium (Firefox does not yet support WebHID).
- If using Chromium Snap version, connect these permissions:
sudo snap connect chromium:raw-usb
sudo snap connect chromium:hardware-observe
- Enable WebHID support in Chrome (if not already enabled):
- Open Chrome and go to:
chrome://flags/#enable-experimental-web-platform-features - Set Experimental Web Platform features to Enabled
- Restart the browser
- Open Chrome and go to: