How do you check how much power a USB port can deliver?

51

20

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.

Peltier

Posted 2011-06-16T09:21:57.433

Reputation: 4 834

What operating system are you using? – Breakthrough – 2011-06-22T18:30:24.587

I personally use linux, but answers for any OS are interesting. – Peltier – 2011-06-22T19:56:42.307

Answers

38

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...

Tamara Wijsman

Posted 2011-06-16T09:21:57.433

Reputation: 54 163

very informative answer – yoyo_fun – 2016-12-14T11:53:10.807

2I'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 – 2011-06-24T16:24:40.580

1This is a great trick. Unfortunately, for a PCI-e add-on USB 3.0 hub, the dialog doesn't show the power option. – nicorellius – 2012-05-25T16:05:20.817

@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 – 2013-10-13T00:47:37.530

@erik: Please read further than the first sentence: "Use sudo yum install hwinfo usbutils to obtain these tools." (http://pkgs.org/fedora-19/rpm-sphere-i586/hwinfo-19.0-5.1.i686.rpm.html and http://pkgs.org/fedora-19/rpm-sphere-x86_64/hwinfo-19.0-5.1.x86_64.rpm.html) and the -v option is provided. As for -t; indeed, corrected.

– Tamara Wijsman – 2013-10-13T00:56:05.293

32

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.

Jeff Atwood

Posted 2011-06-16T09:21:57.433

Reputation: 22 108

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. – Eduard Florinescu – 2015-08-27T07:29:10.740

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. – Ale..chenski – 2019-12-21T01:08:32.483

Cool, I think I might build one of those – MBraedley – 2011-06-16T11:12:03.823

Someone should start selling those. – Peltier – 2011-06-16T11:29:31.687

8"required some VERY careful insulation" Isn't that why plastic boxes were invented *g* – oleschri – 2011-06-16T15:00:07.540

9This tests what the device draws, rather than what the port can deliver at maximum, cool diy though. – Moab – 2011-06-16T15:27:22.523

10

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!

slm

Posted 2011-06-16T09:21:57.433

Reputation: 7 449

@TomWijsman That's why you should post multiple answers as multiple answers: http://meta.stackexchange.com/a/25210/130885

– endolith – 2016-02-09T20:49:50.520

@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 – 2016-02-10T22:04:08.863

@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. – Tamara Wijsman – 2016-02-11T09:42:48.803

@TomWijsman Read the other answers and the conversation about them. Your original answer was incorrect (hwinfo) but got upvotes anyway which was confusing people. Linux lsusb and Windows Device Manager couldn't be more distinct. – endolith – 2016-02-11T14:54:04.123

@endolith: Yes, I've definitely read and replied to my own answer! You'll get less confused if you look at its green check mark. They could be distinct if both of them were not to list the power of USB devices, but then they would not even qualify as answers... :-) – Tamara Wijsman – 2016-02-11T16:25:20.367

@endolith: That's why you should NOT post multiple answers as multiple answers: http://meta.stackexchange.com/questions/25209/what-is-the-official-etiquette-on-answering-a-question-twice/25210#comment52722_25210

– Tamara Wijsman – 2016-02-11T16:28:19.243

@endolith: And just to make sure you read the other answers and the conversation about them: http://meta.stackexchange.com/a/25211/145350

– Tamara Wijsman – 2016-02-11T16:31:12.123

@TomWijsman Yeah, I'm one of the people who downvoted that answer. Jeff's opinions are often bizarre. – endolith – 2016-02-11T16:41:11.740

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 – 2013-10-13T00:57:00.207

1A 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 – Tamara Wijsman – 2013-10-13T01:09:46.607

6

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.

Ale..chenski

Posted 2011-06-16T09:21:57.433

Reputation: 9 749

I like the point you make, but users may not be interested in the maximum potential, only the advertised capacity. – HRJ – 2017-03-18T11:13:22.547

@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. https://msdn.microsoft.com/en-us/library/windows/hardware/mt710944(v=vs.85).aspx

– Ale..chenski – 2017-03-18T18:20:00.457

This. The other answers only tell how much current the connected devices claim to draw. Not the maximum capacity of the port. – Julian – 2017-05-24T16:55:24.030

2

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

Suncatcher

Posted 2011-06-16T09:21:57.433

Reputation: 908

1This 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. – Vanessa Phipps – 2017-07-13T05:35:41.777

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 – 2017-07-13T05:51:09.013

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. – Vanessa Phipps – 2017-07-13T16:57:43.440

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. – Vanessa Phipps – 2017-07-13T16:58:59.807