58

Some laptops have a special USB port that can deliver more power than the other ones. However it is not always easy to identify which one is the good one, nor how much power it can deliver.

So is there a good way to figure it out? I'm open to any software or hardware solution.

2
  • What operating system are you using? Jun 22, 2011 at 18:30
  • I personally use linux, but answers for any OS are interesting.
    – Peltier
    Jun 22, 2011 at 19:56

5 Answers 5

43
+50

Under Linux, you can see this in the tree of lsusb -v.

Specifically, call lsusb -v |grep 'Bus\|MaxPower' to avoid excessive output.

  1. Debian / Ubuntu:

    Use sudo aptitude install usbutils to obtain this tool.

  2. Redhat / Fedora:

    Use sudo yum install usbutils to obtain this tool.

  3. Gentoo:

    Use sudo emerge usbutils to obtain this tool.


A solution on Windows which doesn't require additional software is the Device Manager itself:

  1. Go to Device Manager ( devmgmt.msc )

  2. Click View > Devices by connection.

  3. Click on your Machine Name, hit the * to expand everything.

  4. Look through the properties of the different USB Hubs, you can see what devices are connected.

  5. On the power tab, you get to see the power a device is consuming and what is being offered.

    enter image description here

    Just like Jeff Atwood explained, the total power available is 500 mA standard.

  6. On the advanced tab, you get to see bandwidth information.

    enter image description here

So, this should allow you to see which port provides more power and even power consumption.

If you have bandwidth problems where USB devices work slowly you can also use this to troubleshoot...

7
  • 2
    I'm going to be unexpectedly out of town for the rest of the week, so I'm going ahead and awarding the bounty. Great answer, I had no idea Windows told you this!
    – Shinrai
    Jun 24, 2011 at 16:24
  • 2
    This is a great trick. Unfortunately, for a PCI-e add-on USB 3.0 hub, the dialog doesn't show the power option. May 25, 2012 at 16:05
  • @TomWijsman: Fedora has no hwinfo. And lsusb only prints how much power the ports deliver with -v option. The manpage says: -t Tells lsusb to dump the physical USB device hierarchy as a tree. This overrides the v option.
    – erik
    Oct 13, 2013 at 0:47
  • @erik: Please read further than the first sentence: "Use sudo yum install hwinfo usbutils to obtain these tools." (pkgs.org/fedora-19/rpm-sphere-i586/… and pkgs.org/fedora-19/rpm-sphere-x86_64/…) and the -v option is provided. As for -t; indeed, corrected. Oct 13, 2013 at 0:56
  • 1
    The lsusb command seems to show what each connected device/hub has requested, not what the local root-hub ports are capable of delivering. (e.g. I see a device with MaxPower of 500mA, but its corresponding root hub reporting 0)
    – David C.
    Feb 28, 2023 at 20:51
34

One (very cool!) way I found:

https://web.archive.org/web/20130529073635/http://www.ultramobilegeek.com/2007/02/measuring-power-on-peripherals-usb.html

When I write peripheral reviews for ultra-mobile devices, people constantly ask me how significant the power draw is for the device. Previously, I had no answer. Today, I whipped up a rough way to find a solution.

I call it my USB Drawbox. Attached to a multimeter, it measures the number of milliamperes (mA) any given device pulls over USB. Generally, devices will request up to 500 mA. Above that, standard ports will shut down power to the device. Some devices, notably external hard drives and CD-ROM drives, can pull power from two USB ports simultaneously using a Y connector.

usb drawbox

This little DIY hack requires a tiny bit of solder, a tiny bit of Dremel skills, and a whole lot of testing and tweaking. The way I did it - in a metal Penguin Mints tin - required some VERY careful insulation on the screws that went through the banana jacks. Other than that, it was pretty straightforward.

6
  • Cool, I think I might build one of those
    – MBraedley
    Jun 16, 2011 at 11:12
  • 8
    "required some VERY careful insulation" Isn't that why plastic boxes were invented *g*
    – oleschri
    Jun 16, 2011 at 15:00
  • 9
    This tests what the device draws, rather than what the port can deliver at maximum, cool diy though.
    – Moab
    Jun 16, 2011 at 15:27
  • 4
    @oleschri The metal box acts as a Faraday cage and prevents interference, the original shielded cable that prevents interference is opened here to interpose the multi-meter so the metal box is a must. Aug 27, 2015 at 7:29
  • 1
    This box will work only for FS and LS devices, like mouse/keyboard, low-quality audio etc. This won't work for 480 Mbps HS devices because the green-white twisted pair impedance is brutally distorted, so the measurements will be for non-functional unconfigured devices, that's it. It is possible to do a better job and not to touch the differential pair, and cut only the red wire though. Dec 21, 2019 at 1:08
11

I'm not sure why the accepted answer is so upvoted, hwinfo --usb doesn't provide any power information, neither does lsusb -v -t. See for yourself:

hwinfo

(Ubuntu 12.04)

% lsb_release -a|grep Des
Description:    Ubuntu 12.04.1 LTS

% hwinfo --usb
...
...
14: USB 00.0: 10900 Printer
  [Created at usb.122]
  UDI: /org/freedesktop/Hal/devices/usb_device_4a9_1069_206NL6_if0_printer_noserial
  Unique ID: IO+7.s5u63YPdXG8
  Parent ID: Uc5H.d7FDLX76qXB
  SysFS ID: /devices/pci0000:00/0000:00:12.2/usb1/1-4/1-4.4/1-4.4:1.0
  SysFS BusID: 1-4.4:1.0
  Hardware Class: printer
  Model: "Canon S820"
  Hotplug: USB
  Vendor: usb 0x04a9 "Canon"
  Device: usb 0x1069 "S820"
  SubVendor: "Canon"
  SubDevice: "S820"
  Revision: "1.02"
  Serial ID: "206NL6"
  Driver: "usblp"
  Driver Modules: "usblp"
  Device File: /dev/usb/lp0
  Device Number: char 180:0
  Speed: 12 Mbps
  Module Alias: "usb:v04A9p1069d0102dc00dsc00dp00ic07isc01ip02"
  Driver Info #0:
    Driver Status: usblp is active
    Driver Activation Cmd: "modprobe usblp"
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #11 (Hub)

(Fedora 14)

% lsb_release -a|grep Desc
Description:    Fedora release 14 (Laughlin)

% hwinfo --usb
...
...
09: USB 00.0: 10e00 Chipcard Reader
  [Created at usb.122]
  Unique ID: Bgjr.EgDcOidyXjF
  Parent ID: FKGF.0j9+vWlqL56
  SysFS ID: /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5:1.0
  SysFS BusID: 2-1.5:1.0
  Hardware Class: chipcard
  Model: "Lenovo Integrated Smart Card Reader"
  Hotplug: USB
  Vendor: usb 0x17ef "Lenovo"
  Device: usb 0x1003 "Integrated Smart Card Reader"
  Revision: "1.00"
  Driver: "usbfs"
  Driver Modules: "usbcore"
  Speed: 12 Mbps
  Module Alias: "usb:v17EFp1003d0100dc00dsc00dp00ic0Bisc00ip00"
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #6 (Hub)

lsbusb -v -t

(Ubuntu 12.04)

% lsusb -v -t
/:  Bus 07.Port 1: Dev 1, Class=root_hub, Driver=ohci_hcd/2p, 12M
/:  Bus 06.Port 1: Dev 1, Class=root_hub, Driver=ohci_hcd/3p, 12M
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=ohci_hcd/3p, 12M
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ohci_hcd/3p, 12M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ohci_hcd/3p, 12M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/6p, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/6p, 480M
    |__ Port 4: Dev 3, If 0, Class=hub, Driver=hub/4p, 480M
        |__ Port 3: Dev 5, If 0, Class=stor., Driver=usb-storage, 480M
        |__ Port 4: Dev 4, If 0, Class=print, Driver=usblp, 12M

(Fedora 14)

% lsusb -v -t
Bus#  2
`-Dev#   1 Vendor 0x1d6b Product 0x0002
  `-Dev#   2 Vendor 0x8087 Product 0x0020
    |-Dev#   3 Vendor 0x046d Product 0xc521
    `-Dev#   4 Vendor 0x17ef Product 0x1003
Bus#  1
`-Dev#   1 Vendor 0x1d6b Product 0x0002
  `-Dev#   2 Vendor 0x8087 Product 0x0020

So what does work?

Just a regular old lsusb -v does provide the power info.

% lsusb -v|egrep "^Bus|MaxPower"
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    MaxPower                0mA
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    MaxPower                0mA
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    MaxPower                0mA
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    MaxPower                0mA
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    MaxPower                0mA
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    MaxPower                0mA
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    MaxPower                0mA
Bus 001 Device 003: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
    MaxPower              100mA
Bus 003 Device 002: ID 046d:c517 Logitech, Inc. LX710 Cordless Desktop Laser
    MaxPower               98mA
Bus 001 Device 004: ID 04a9:1069 Canon, Inc. S820
    MaxPower                2mA
Bus 001 Device 005: ID 05ac:120a Apple, Inc. iPod Nano
    MaxPower              500mA
    MaxPower              500mA

NOTE: It should be noted that this does not seem to show the maximum amount the port can deliver, but the maximum amount the device can draw at the given port it’s connected to.

Additional comments

Also I should mention that hwinfo was not a standard package that was available for my particular version of Fedora. I had to download and compile for myself on Fedora!

10
  • As written above to Tom Wijsman: The manpage says, that option -t overrides -v, that means, there is no use starting both options at the same time, it does not work! Please delete your answer, as the answer from Tom Wijsman is now corrected.
    – erik
    Oct 13, 2013 at 0:57
  • 1
    A lot of voters are Windows users; I guess that's how it managed to drive a lot of upvotes, now that I am a Linux user I've removed hwinfo and corrected the -t parameter. Somehow I remember the -t not overriding from when I first researched it; but well, times have changed. Please keep your answer and perhaps focus it on the grep; because well, you are the first to actually point this out... +1 Oct 13, 2013 at 1:09
  • @TomWijsman That's why you should post multiple answers as multiple answers: meta.stackexchange.com/a/25210/130885
    – endolith
    Feb 9, 2016 at 20:49
  • @TomWijsman You have one answer about Windows and one answer about Linux, combined into one. Your Linux answer was incorrect but got upvoted by Windows users because of the Windows part. That's why separate answers should be posted separately, so they can be upvoted or downvoted independently.
    – endolith
    Feb 10, 2016 at 22:04
  • @endolith: You must be confused. The OP is a Linux user whom has accepted my answer, confirming that it works. From the screenshots can be seen that Windows shows this as well, confirming that it works as well. This makes it one confirmed OS-agnostic solution, they are not distinct solutions. The link you've given is there for distinct solutions, for example with software recommendations, which are off-topic here anyway. Feb 11, 2016 at 9:42
9

All answers are wrong. There is no way to figure out how much current a particular USB port can deliver other than to use a "variable USB load tester", and crank it up until the voltage either drops to 4V, or the VBUS gets disconnected with "port overcurrent" message, or the entire PC resets and restarts.enter image description here

Every design (laptop, desktop) has its own idea on how to supply VBUS. Some use hi-side switches with pre-set current limiter, some use resettable polyfuses with unmanageable range of flip thresholds, some use nothing, just a direct connection to the internal +5V standby voltage rail, with possibly one "ganged" polyfuse for all ports.

All software tools are based on formal reporting from devices, which may be totally off, have no relation to reality, and cannot possibly show real maximum potential of a port.

3
  • I like the point you make, but users may not be interested in the maximum potential, only the advertised capacity.
    – HRJ
    Mar 18, 2017 at 11:13
  • @HRJ, advertised capacity must be written in product manual, and ports must be labelled accordingly, per USB specifications. Even if a newest port has Type-C connector with Power Delivery capability, there is a long way to know which profile it supports, unless you have a functional implementation of UCSI power delivery architecture. msdn.microsoft.com/en-us/library/windows/hardware/… Mar 18, 2017 at 18:20
  • This. The other answers only tell how much current the connected devices claim to draw. Not the maximum capacity of the port.
    – Julian
    May 24, 2017 at 16:55
3

In Windows, if you have USB 3.0 controller and lack correspondent applet in Device Manager, you can use USBDeview from NirSoft.

enter image description here

UPD: I support commenters that the info showed by USBDeview is most probably NOT accurate and denotes only the power the device can consume (negotiable power), do not treat it as a rule of thumb! Upon my tests I see that it shows the same values on USB2.0 and USB3.0 controllers.

5
  • 3
    This seemed to give wrong current values for me. It says 500 mA for a Type C port that my phone claims is giving it at least 1500 mA. Jul 13, 2017 at 5:35
  • 1
    Yes. Unfortunately this app shows only negotiable power, which is limited by upper limit of the port (500 mAh). So this is not very useful for power-greedy devices.
    – Suncatcher
    Jul 13, 2017 at 5:51
  • I appreciate the quick response! That still doesn't seem quite right though. To be clear, this is a Thunderbolt 3 Type C port on an Asus Q534 laptop, connected through a USB 3.1 Gen 2 Type C to Type C cable, to a Nexus 6P phone. I'm trying to diagnose why the phone isn't drawing the 3A max current specified by Type C, so am trying to find out the current limit for that port. Notably, the Nexus 6P only supports USB 2.0 data, but can draw 3A anyway due to the Type C standard. I suspect USBDeview says "USB 2.0 = 500 mA", which is no longer necessarily true. Jul 13, 2017 at 16:57
  • 3 A is the max charging current for Type C. I suspect the limit on this port is lower. It's definitely higher than 500 mA though; my phone reported it was being charged at at least 1500 mA. Jul 13, 2017 at 16:58
  • @VanessaPhipps there are many things which can affect the output of a given port, including the quality of the cable. You are better off asking your own question in the electronics stack. Oct 14, 2021 at 21:52

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .