Overview #
If your laptop or desktop’s USB ports stop responding—devices don’t power on, drives don’t appear, or connections drop unexpectedly—the issue could be electrical, driver-related, or firmware-based.
This guide shows you how to isolate whether your USB issue is caused by software, power management, or a failing port, and how to restore proper function safely.
What you’ll learn
- How to test for physical versus software-level USB faults
- How to reset USB controllers and drivers
- How to restore power delivery to ports that appear “dead”
- How to verify device communication using command-line tools
Estimated time: 15–30 minutes
Skill level: Intermediate
Terms and Definitions #
Term | Meaning |
---|---|
USB Root Hub | Internal connection point that manages multiple USB ports |
Selective Suspend | Power-saving feature that temporarily disables inactive USB devices |
HID Device | Human Interface Device (e.g., mouse, keyboard, game controller) |
Controller Reset | Power cycle that reinitializes USB buses and resolves “dead” ports |
Bus Power | The 5V electrical current supplied by a USB port |
Steps #
Step 1 — Test the Port Physically #
- Plug in a simple device such as a USB mouse or flash drive (avoid hubs or docks).
- Observe for any LED activity or vibration (for external drives).
- Test the same device in another USB port on your computer.
- If it works elsewhere, the port may be dirty or physically damaged—inspect for bent pins or debris with a flashlight.
If none of your ports work, continue to software diagnostics.
Step 2 — Check Device Detection #
Windows PowerShell
Get-PnpDevice -Class USB | Select-Object FriendlyName, Status
Lists all recognized USB devices and their states.
If a device shows Error, Disabled, or Unknown, you can re-enable it:
Enable-PnpDevice -InstanceId "device_instance_id_here" -Confirm:$false
macOS Terminal
system_profiler SPUSBDataType
Displays all connected USB devices.
If your device doesn’t appear here, the OS isn’t seeing it at all—indicating a controller or hardware issue.
Step 3 — Restart the USB Controllers #
Windows
- Open Device Manager → Universal Serial Bus controllers.
- Right-click each USB Root Hub or Generic USB Hub → select Disable device.
- Wait 10 seconds, then Enable device again.
- Reconnect your USB device.
PowerShell method
Get-PnpDevice -Class USB | Disable-PnpDevice -Confirm:$false
Start-Sleep -Seconds 5
Get-PnpDevice -Class USB | Enable-PnpDevice -Confirm:$false
macOS
There’s no manual USB controller toggle, but restarting the kernel extension (driver) can help:
sudo kextunload /System/Library/Extensions/IOUSBHostFamily.kext
sudo kextload /System/Library/Extensions/IOUSBHostFamily.kext
Reboot if the system refuses to unload the driver.
Step 4 — Disable USB Power Saving #
Windows
- Open Device Manager → Universal Serial Bus controllers.
- Double-click each USB Root Hub (USB 3.0).
- Under Power Management, uncheck:
“Allow the computer to turn off this device to save power.” - Repeat for all hubs.
Or via PowerShell:
powercfg -devicequery wake_from_any
Then ensure USB hubs are listed as wake-enabled.
macOS
Disable sleep-related USB issues:
sudo pmset -a disablesleep 1
Revert later with:
sudo pmset -a disablesleep 0
Step 5 — Reinstall USB Drivers #
Windows
- In Device Manager, expand Universal Serial Bus controllers.
- Right-click each item labeled Host Controller or Root Hub → Uninstall device.
- Restart your computer.
Windows will reinstall the USB controller stack automatically.
PowerShell verification
Get-WmiObject Win32_PnPSignedDriver | Where-Object {$_.DeviceName -like "*USB*"} | Select DeviceName, DriverVersion
macOS
Drivers are managed at the kernel level; reinstalling isn’t necessary.
If issues persist after reset, check Step 8 for SMC reset.
Step 6 — Reset Power Delivery #
If a port shows no power output (no LED or drive spin), perform a controller reset.
Windows (EC reset)
- Shut down the laptop.
- Disconnect the charger and battery (if removable).
- Hold Power for 15 seconds.
- Reconnect and restart.
macOS (SMC reset)
- Shut down.
- Hold Shift + Control + Option + Power for 10 seconds.
- Release and power on.
These actions restore bus power to all ports.
Step 7 — Check Event Logs for USB Errors #
Windows PowerShell
Get-WinEvent -LogName System | Where-Object {$_.Message -like "*USB*"} | Select TimeCreated, Message -First 15
Look for entries like:
- “USB device not recognized”
- “Port reset failed”
- “Overcurrent condition detected”
macOS
log show --predicate 'eventMessage CONTAINS "USB"' --last 2h
Shows recent USB-related kernel events.
Frequent resets or overcurrent warnings may indicate a failing device or port controller.
Step 8 — Test External Devices and Power Load #
- Plug in only one device at a time.
- Avoid high-draw devices (e.g., external HDDs) when testing basic functionality.
- Try connecting a low-power USB stick first.
- If a specific device repeatedly disconnects, test it on another computer—it may be the problem, not the port.
Step 9 — BIOS and Firmware Updates #
Windows PowerShell
Get-WmiObject Win32_BIOS | Select SMBIOSBIOSVersion, ReleaseDate
Visit your manufacturer’s support site and check for BIOS or chipset driver updates that mention USB, Thunderbolt, or power controller fixes.
macOS
softwareupdate -l
softwareupdate -i -a
Apple firmware updates sometimes resolve USB detection or power issues.
Verification #
Check | Command | Expected Result |
---|---|---|
Device detection | Get-PnpDevice -Class USB / system_profiler SPUSBDataType | Device listed and Status = OK |
Power output | Physical test | LED on, drive spins, or mouse lights up |
Power saving | Device Manager / pmset | Disabled or set to maintain port power |
Logs | Get-WinEvent / log show | No recurring USB reset or overcurrent events |
If all tests pass, your USB subsystem is functioning normally.
Conclusion #
Non-working USB ports are commonly caused by power management interference, corrupted drivers, or overloaded controller circuits.
By re-enabling controllers, disabling selective suspend, reinstalling drivers, and resetting firmware, you can restore full functionality to USB ports on both Windows and macOS.
If power remains absent from certain ports even after resets, those ports may have suffered electrical damage and should be serviced or replaced by a technician.