Uhubctl – control USB power per-port on smart USB hubs
uhubctl — Per-Port USB Power Management for Smart Hubs
uhubctl is a specialized command-line utility that allows users to control the power state of individual ports on "smart" USB hubs.
Definition: A smart hub is defined as any USB hub that implements the hardware and firmware capability for per-port power switching.
🛠️ Project Origins & Logic
The development of this tool was heavily influenced by the work of Niibe Yutaka, specifically the hub-ctrl.c implementation.
The logic follows a simple flow:
⚠️ Compatibility Warning
It is important to note that most USB hubs not many USB hubs actually support per-port power switching. Many devices that claim to be "smart" do not implement this specific feature. Furthermore, some compatible models are no longer in production and may be difficult to acquire.
To identify a hub, the software looks for the Vendor ID and Product ID, represented mathematically as:
Pre-Installation Checklist
- Verify if your hub is "smart."
- Check the compatibility table below.
- Ensure you have the necessary permissions to access USB raw devices.
📋 Known Compatible USB Hubs
The following table lists hardware confirmed to work with uhubctl.
| Manufacturer | Product | Ports | USB Ver. | VID:PID | Release | EOL |
|---|---|---|---|---|---|---|
| Acer | BE270U monitor | 4 | 3.0 | 2109:2811 | 2016 | - |
| AmazonBasics | HU3641V1 (RPi issue) | 4 | 3.0 | 2109:2811 | 2013 | - |
| AmazonBasics | HU3770V1 (RPi issue) | 7 | 3.0 | 2109:2811 | 2013 | - |
| AmazonBasics | HU9003V1EBL, HUC9003V1EBL | 7 | 3.1 | 2109:2817 | 2018 | - |
| AmazonBasics | HU9002V1SBL, HU9002V1EBL, HU9002V1ESL, HHU9002V1EZPR01 | 10 | 3.1 | 2109:2817 | 2018 | - |
| AmazonBasics | HUC9002V1SBL, HUC9002V1EBL, HUC9002V1ESL | 10 | 3.1 | 2109:2817 | 2018 | - |
| AmazonBasics | U3-7HUB (1 charge port only) | 7 | 3.0 | 2109:2813 | 2020 | - |
| Anker | AK-68ANHUB-BV7A-0004 | 7 | 3.0 | 2109:0812 | 2014 | - |
| Apple | Mac Mini M4 (front ports only) | 2 | 3.2 | 05AC:800B | 2024 | - |
| Apple | MacBook Air (Late 2010) | 2 | 2.0 | 1D6B:0002 | 2010 | 2020 |
| Apple | Pro Display XDR MWPE2LL/A (internal) | 4 | 2.0 | 05AC:9139 | 2019 | - |
| Apple | Thunderbolt Display 27" (internal) | 6 | 2.0 | - | 2011 | 2016 |
| Apple | USB Keyboard With Numeric Pad (internal) | 3 | 2.0 | - | 2011 | - |
| Asus | Z77 Sabertooth Motherboard (onboard) | 6 | 2.0 | - | 2012 | - |
| Asus | Z87-PLUS Motherboard (onboard) | 4 | 3.0 | - | 2013 | 2016 |
| Aukey | CB-C59 | 4 | 3.0 | 2109:2813 | 2017 | - |
| B+B SmartWorx | UHR204 | 4 | 2.0 | 0856:DB00 | 2013 | - |
| B+B SmartWorx | USH304 | 4 | 3.0 | 04B4:6506 | 2017 | 2019 |
| Basler | 2000036234 | 4 | 3.0 | 0451:8046 | 2016 | - |
| Belkin | F5U101 | 4 | 2.0 | 0451:2046 | 2005 | 2010 |
| Belkin | F5U238UKCRL-MOB | 4 | 2.0 | 0409:0059 | 2004 | 2010 |
| BenQ | PD2700U 4K Monitor (USB2 mode only) | 4 | 3.0 | 05E3:0610 | 2018 | - |
| BenQ | PD3220U | 4 | 3.1 | 05E3:0610 | 2019 | - |
| Bytecc | BT-UH340 (warning) | 4 | 3.0 | 2109:8110 | 2010 | - |
| Centech | CT-USB4HUB ReTRY HUB | 4 | 3.0 | 0424:2744 | 2017 | - |
| Circuitco | Beagleboard-xM (internal) | 4 | 2.0 | 0424:9514 | 2010 | - |
| Club3D | CSV-3242HD Dual Display Dock | 4 | 3.0 | 2109:2811 | 2015 | - |
| Coolgear | USBG-12U2ML | 12 | 2.0 | 05E3:0607 | 2015 | - |
| Cypress | CY4608 HX2VL | 4 | 2.0 | 04B4:6570 | 2012 | - |
| D-Link | DUB-2332 rev A1 | 3 | 3.0 | - | 2022 | - |
| D-Link | DUB-H4 rev D,E (black) | 4 | 2.0 | 05E3:0608 | 2012 | - |
| D-Link | DUB-H7 rev A (silver) | 7 | 2.0 | 2001:F103 | 2005 | 2010 |
| D-Link | DUB-H7 rev D,E (black) | 7 | 2.0 | 05E3:0608 | 2012 | - |
| Dell | DA300 USB-C Mobile Adapter | 2 | 3.0 | 2109:2820 | 2018 | - |
| Dell | P2416D 24" QHD Monitor | 4 | 2.0 | - | 2017 | - |
| Dell | S2719DGF 27" WQHD Gaming-Monitor | 5 | 3.0 | 0424:5734 | 2018 | - |
| Dell | UltraSharp 1704FPT 17" LCD | 4 | 2.0 | 0424:A700 | 2005 | 2015 |
| Dell | UltraSharp U2415 24" LCD | 5 | 3.0 | - | 2014 | - |
| Dell | UltraSharp U3419W 34" Curved | 6 | 3.0 | - | 2020 | - |
| Dell | Wyse 3040 (-f required) | 6 | 3.0 | - | 2017 | - |
| Delock | 62537 | 4 | 3.0 | - | 2017 | 2021 |
| Delock | 87445 | 4 | 2.0 | 05E3:0608 | 2009 | 2013 |
| Elecom | U2H-G4S | 4 | 2.0 | - | 2006 | 2011 |
| Gigabyte | G27Q monitor | 4 | 3.0 | 2109:0817 | 2020 | - |
| GlobalScale | ESPRESSObin SBUD102 V5 | 1 | 3.0 | 1D6B:0003 | 2017 | - |
| Hardkernel | ODROID-C4 | 4 | 3.0 | - | 2020 | - |
| Hawking Tech | UH214 | 4 | 2.0 | - | 2003 | 2008 |
| HP | USB-C Dock G5 5TW10AA | 5 | 3.0 | 03F0:076B | 2019 | - |
| HP | P5Q58UT | 3 | 3.0 | - | 2019 | - |
| IBM | SK-8815 USB Keyboard | 3 | 1.1 | 04B3:301A | 2004 | - |
| Inateck | HB2025A (USB2 only) | 4 | 3.1 | 2109:2822 | 2021 | - |
| IOI | U3H415E1 | 4 | 3.0 | - | 2012 | - |
| j5create | JUH377 | 7 | 3.0 | - | 2016 | - |
| j5create | JUH470 | 3 | 3.0 | 05E3:0610 | 2014 | - |
| Juiced Sys. | 6HUB-01 | 7 | 3.0 | 0BDA:0411 | 2014 | 2018 |
| KUNBUS GmbH | RevPi Connect (+) / S / SE | 2 | 2.0 | 0424:9514 | 2018 | - |
| KUNBUS GmbH | RevPi Connect 4 2 | 3.0 | - | - | 2022 | - |
| KUNBUS GmbH | RevPi Core 3 / S / SE | 2 | 2.0 | 0424:9514 | 2017 | - |
| LG Electronics | 27MD5KL-B monitor | 4 | 3.0 | 043E:9A60 | 2019 | - |
| LG Electronics | 27GL850-B monitor | 4 | 3.0 | 0451:8142 | 2019 | - |
| LG Electronics | 27UK850-W monitor | 2 | 3.0 | - | 2018 | - |