Getting Around The Raspi’s USB Host Current Limit

For being such a revolutionary device, there are still a few problems with the Raspberry Pi. For one, the USB host ports are only able to source 140 mA per port, while the USB ports on your desktop, laptop, and even tablet are able to send a full 500 mA per port.

The official ‘fix’ for this problem is to use a powered USB port for any device that requires more than 140 mA,  something that didn’t sit well with [Manis]. He came up with an easy fix , though, that only requires a few bits of wire and a soldering iron.

The USB ports on the Raspi are current limited to 140 mA by a pair of polyfuses. [Manis] bridged these fuses, effectively taking them out of the circuit with a short length of wire. This allowed him to use a USB hard drive (powered by USB, of course) with the Raspi.

There’s one small problem with sending that much current through the Raspi’s USB port. Sometimes, when the high-power USB device is powered on, the voltage will sag, resetting the SoC and rebooting the system. [Manis] did his homework and discovered USB 2.0-spec ports should use a 120 μF, low-ESR capacitor to prevent this. The Raspi comes stock with a 47 μF cap used for this purpose. Replacing this cap (C32) might be a good idea if you’re planning on using high-power devices with your Raspi.

26 thoughts on “Getting Around The Raspi’s USB Host Current Limit

  1. I thought the Raspberry Pi’s voltage regulator was only rated for 5V 1A. Surely plugging high current USB devices is going to sap power from the rest of the device?

    I thought they’d put those polyfuses there in the first place because the ports were only meant to be used for keyboard, mouse or connecting a powered hub. I’ve come across quite a few laptops that couldn’t even supply 500mA to USB because they were expected to be used just for connecting a keyboard and mouse.

      1. This what I could find on the microUSB connector spec.

        5.3 Contact Current Rating

        5.3.1 Signal Contacts Only (2, 3, and 4)
        1A minimum when measured at an ambient temperature of 25 degrees Celsius. With power applied to the
        contacts, the delta temperature must not exceed +30degrees Celsius at any point in the USB connector
        under test.

        5.3.2 With Power Applied Contacts (1 and 5)
        1.8A for contacts 1 and 5 and at the same time 0.5A for contacts 2, 3 & 4, minimum when measured at an
        ambient temperature of 25 degrees Celsius. With power applied to the contacts, the delta temperature must
        not exceed +30degrees Celsius at any point in the USB connector under test.

        I don’t see why the microUSB connector shouldn’t be able to supply current for the RPi and 2 high power USB devices.

  2. regluator is 3.3v and also feeds a 1.8v reg too, 5v is straight in as has been mentioned. if you want to feed the usb via the pi then make sure you’ve got a psu that can cope with 700ma for the pi itself + another 1000ma for the usb ports, so you’re probably going to be OK with a 2amp 5v psu :)

  3. Not to mention the fact that the original creators still have not figured out how to pump this out to the masses. WTF?!?

    I mean seriously. There are investors, distributors, and/or kickstarts to get this going. WTF is rPi’s fucking issue?

    1. Last I checked, wait was under a month. I imagine it depends on who you’re ordering with and if they’re likely to run out of their current stock.

      I had to wait a LONG time for mine.

  4. The rev B boards (and some later rev A boards) have ditched the polyfuse and gone for a fusible link. I might order one as a XMBC box once I can be sure it’ll be a rev B board with the HDMI CEC fix.

  5. The right way to do this is put some low ESR capacitance on the front end and use a current limited switch with the appropriate current limit configured. That will keep your USB device from knocking down your on-board 5V and the current limited switch will just bang on and off until the USB device is charged to 5V (in the case of a USB device with a non-compliant amount of capacitance on its USB 5V input).

    I work in USB, there are lots of solutions but if you want a sure fire way to protect your on-board 5V and want to support bigger USB loads (and non-USB spec compliant ones, there are a lot of them out there), a current limited switch will give you just that. Many USB current limited switches have adjustable current limit – Very useful when you are dealing with a max. input current and don’t want to have to upgrade to a bigger supply just to support inrush currents on the USB port.

  6. FYI, depending on the current limited switch you use, you can get away with less than 120uF of low-ESR capacitance on the USB port and save yourself some $$$ on the cap.

    If you want some sweet low ESR can electrolytics that give you the best of both worlds, look at Sanyo’s OS-CON series of caps. If you are interested in a solid electrolytic with a smaller case size, check out their POSCAP line.

  7. the limit on the ports isnt 140mA, its 100mA
    there is ~40% extra room on the poly-fuse’s to allow for non-perfect manufacturing and to make sure the voltage drop isnt bad at the target of 100mA

    if you use over 100mA (like 140), you will get problems, and will need to either bypass them or get a proper supply

    1. Correct. A standard USB 1-unit load is 100mA/10uF = ~44ohm resistor in parallel with 10uF ceramic capacitance. The 44ohm is typically used as the load to compensate for the voltage drop of the USB connector and short cable that is assumed to be present (otherwise, 44ohm would = ~113mA).

      Fuses are a very cheap solution, but not optimal at all. If the fuse reacts to fast, the inrush current that results from charging the load capacitance will blow the fuse.

  8. the other day i did this

    and then i saw this post and looked at the pi schematics. so my power supply board should solve the capacitance problem. the fuses on the other hand probibly need to be blobbed. but i really dont want to solder on my pi just yet. but i did think ahead and installed an extra 5v port on my supply which should feed the hub and bypass the fuses all together. so i think i may be set. i was having trouble getting my bluetooth dongle and wifi dongle powered at the same time.

  9. FYI The fuses were removed on the latest revision, so now you can power the Rpi trough the USB ports, or use a bit more power from the ports.

    For a R1 board, the poly fuses can be bridges, which is more or less what they did on R1.1

  10. Remember when laptops and PCs couldn’t source enough current to run 2.5″ portable hard drives, so the drives came with a double-headed USB cable (one for power+data, one for power only) to solve the spinup problem?

    Those cables are an excellent solution for RPi. I used a $5 USB/SATA double-header cable from eBay and a 4-port 2A USB wallwart to power a 500GB 7200RPM drive (containing content for an mpd server). The Pi uses one port for its own power and the HDD is powered off a second port.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.