The Pragmatic Addict

Power Cycle USB Devices

Background

I have a USB zigbee controller that needed to be unplugged/replugged on a Raspbery Pi 4b. The problem was it was a 4 our drive to get there. After some poking around I found uhubctl which allows you to manage smart USB hubs. As luck would have it, most all Raspberry Pi support this!

Installation

On my Debian/RaspiOS it’s a simple command

sudo apt-get install uhubctl

See what hubs are supported

sudo usbctl

Current status for hub 2 [1d6b:0003 Linux 6.18.50+rpt-rpi-v8 xhci-hcd xHCI Host Controller 0000:01:00.0, USB 3.00, 4 ports, ppps]
  Port 1: 02a0 power 5gbps Rx.Detect
  Port 2: 02a0 power 5gbps Rx.Detect
  Port 3: 02a0 power 5gbps Rx.Detect
  Port 4: 02a0 power 5gbps Rx.Detect
Current status for hub 1-1 [2109:3431 USB2.0 Hub, USB 2.10, 4 ports, ppps]
  Port 1: 0103 power enable connect [1cf1:0030 dresden elektronik ingenieurtechnik GmbH ConBee II DE2688268]
  Port 2: 0100 power
  Port 3: 0503 power highspeed enable connect [090c:1000 General USB Flash Disk AAWMIH7GZ3IMPGW7]
  Port 4: 0100 power
Current status for hub 1 [1d6b:0002 Linux 6.18.50+rpt-rpi-v8 xhci-hcd xHCI Host Controller 0000:01:00.0, USB 2.00, 1 ports, ppps]
  Port 1: 0503 power highspeed enable connect [2109:3431 USB2.0 Hub, USB 2.10, 4 ports, ppps]

Power Cycle the port!

In this case we are cycling port 1 on hub 1-1

sudo usbctl -l 1-1 -p 1 -a cycle

Created: 2026-10-06 Modified: 2026-10-06