[Zaion] grabbed an ATX power supply to source the 5V the Raspberry Pi needs to run. The common problem when it comes to RPi supplies is a shortfall in how much current a USB wall adapter can source. The ATX shouldn’t have this problem, but none-the-less he found that the USB ports were only reading about 5V. Strange. He grabbed the soldering iron and fixed the issue with a piece of jumper wire (English translation found in the second half of his post).
The problem was discovered when trying to get a WiFi dongle to work on one of the RPi’s USB ports. It simply wouldn’t show up, and after going down the blind alley of assuming it was a driver problem he started to investigate the hardware. After discovering the below-nominal voltage [Zaion] measured the resistance between the 5V pin on the GPIO header and the one on the USB port. It reads 3-4 Ohms and he concluded that the trace is too thin. We took a quick look at the schematic for the board and see no reason for the voltage drop. His jumper wire fixed the issue but it leaves us wondering, is this an isolated case, or a design flaw? Tell us what you think in the comments section.
38 thoughts on “Problems Powering Raspberry Pi From GPIO Header”
Typo in article – his USB ports were reading 4v.
…or, since you can’t delete/edit replies – was dropping to 4v
I blame the 140mA polyfuses. I bridged solder over mine. Problem solved.
Polyfuse is the correct answer. There’s a lot more detail here:
Polyfuses are a pain to design with unless you have large tolerances. Best to just bypass the USB polyfuses and depend on the input one.
USB2 limit is 100ma per device that is why the polyfuses are the way they are. 500ma is for a hub with 5 devices , each at 100ma, not 500ma on a single port for a single device.
usb2 spec is 500ma per port on the base port or any “powered” hub ports, 100ma per port on an “unpowewred” hub
so a device drawing 500ma is within spec and many computers will supply more than that to individual ports (mine will supply 1.5A i beleive before cutting off power to that port)
i get 2,6 Ohms
So I’ve also noticed that my r-pi starts powering on when I plug in only a powered usb hub to the ports. Of course it then starts a power cycle loop as it overcurrents, turns off, then turns back on..
The best way to implement a USB host is to connect the 5V supply to the connector with a MOSFET, so the voltage drop is as low as possible when it’s operating normally, then to cut off the supply when a device connected to the port draws too much current (e.g. shorts out.) Luckily they make chips that do this for you but the RPi designers clearly needed to save a few cents so they used polyfuses, which roughly do the job (but not quite, as we see here.)
Motherboard manufacturers use polyfuses too. Look at some recent Asus motherboards, near the USB connectors they are filled with polyfuses. So it’s not uncommon.
I don’t know if there is any power controller IC behind there, but I guess not. Polyfuses are great for shorting out, because they will protect the PCB from carrying tens of Amps. A PC supply has plenty of power though , so if one would draw 800mA instead of 500mA, no big deal(for the PC that is).
In this case he is overloading the USB port and encountered the effects.
I ran into the same issue when trying to use the pi to adb into my phone, ended up with a jumper from the input to the leg of the polyfuse.
So if I go over the comments we got confirmation that it’s a design flaw then. Sloppy, but hey the big boys do it too.
Not a design flaw. If you draw up to around 100mA you’re fine. If you draw more then you need a powered hub. It may be roughly standard for hosts to support the 500mA provision, but I don’t believe it’s a requirement.
On a more practical note, the intention for the USB ports on the Pi awas to allow you to connect a basic keyboard and mouse.
You cannot assume only a mouse or keyboard on a development system, that is a design flaw and a thinking flaw.
As per other posts here, their original intention was educational – mostly around easing kids into programming and controlling hardware via the expansion header. The fact that it suddenly became incredibly popular for other purposes doesn’t change that.
If you read their news posts you’ll notice that they’re taking steps to resolve the issues people have been having, so that it becomes more widely useful. Remember – if you pre-order a dev board (especially one not targeted at you) then you’re going to be playing beta tester.
In depth analysis of the voltage drop issue, with graphs and stuff.
I just use a powered hub and feed my Pi off one of its ports with a type A to micro USB cable. I was having the same issues with a Wifi dongle randomly dropping out when plugged in directly, particularly when I had a keyboard on the other port.
FYI: They are already shipping boards with the USB polyfuses replaced with 0ohm resistors.
replacing it with a 0ohm resistor is a hack that removes protecting, they should just pick one rated for higher current.
that poly fuse is available in the same series and footprint up to ~1A holding current at 20’C
It’s not ‘removing protection’, it’s just moving it back to the system’s 1A polyfuse. Of course, this means that your rpi might reset if a usb device tries to draw too much current.
There is a polyfuse at the power input connector anyway. So a high rating polyfuse at the USB connector wouldn’t really do much unless you are powering from GPIO (but if you do that then it’s your responsibility to replace the protection you are bypassing).
or you could “stack” the poly fuses thereby keeping the protection.
Powered hub or better isolated hub is what I prefer to use on all projects that connect back to a host interface, especially when prototyping. It protects the host and also doesn’t wear out usb ports from plug/unplug constantly.
I think most of us with a pi have experienced this problem as soon as we got it out of the box. If you want to plug in anything more than a keyboard then it pretty much just wimps out and gives up on the device.
Or it will use the device for maybe 10 seconds before dropping it.
Even with a powered usb hub you can have problems and a lot of people are having to mod t heir hubs to make it work.
USB is like THE main connectivity for this board and in my opinion they screwed it up.
I don’t feel they screwed anything up, because the original intent for a pi is, was, and always has been for teaching children coding. This means that a USB keyboard and mouse were the only things intended to be plugged into the USB ports.
Yeah but loads of people aren’t even able to power a keyboard and mouse, its one or the other or in some cases neither! I’m a huge pi fan and have two. Don’t get me wrong, I love the pi and what the group are doing. It just seems like a huge oversight.
Unlike the 99$ laptop idea and other similar projects, these guys have had the sense to sell in mass from day one. The more they make and sell, the cheaper it will get. So while it was originally aimed at the education market, it’s obviously grown far beyond that. So improving them without upping the cost will benefit everyone.
Shorted polyfuses on mine that day I got it. Meant I could power the device through the standard USB ports so didn’t need to have some stupid Y-cable type setup just to use a hub and a single power supply.
Ahh, the many, many ways that the Raspberry Pi is really poorly designed.
Unless I’m mistaken, polyfuses are required by the USB standard (or if not polyfuses, some form of overcurrent protection). The actual amount of power a USB port can draw actually varies depending on the state of the USB link, and the current limit is supposed to vary depending on how much power is requested. It is not unreasonable for a piece of hardware to say that it cannot supply more than 100mA (for something like the rasbpi this is not unreasonable). I don’t know if anyone remembers, but back in the day laptops commonly had this issue where most laptop ports were configured to be low power and could not power devices which drew more than 100mA.
I would not call this a design flaw–I think it’s more accurate to say that the needs of USB devices have changed and many devices easily consume near the 500mA limit (hence one of USB 3.0’s goals was to increase the maximum current the wiring could carry). Also, this 500mA limit is based both on voltage drop given the longest length of USB cable and maximum current that minimum USB cable gauges can safely handle.
The question for the raspi is, of course, what exactly the end user actually wants. They claim the project is for a very low cost computer, but I think it’s pretty clear that the platform is mostly being used for hacking. In that case, there really ought to be some sort of jumper position which allows you to bypass the fuse if you’re prototyping and know how to watch your current limits. You still want to keep the fuses for a final product, so if a device a user might plug in fails the whole system doesn’t go down with it.
The end user wants wireless connection. The hackers want it, the (hypothetical) children for who the RPi was designed to want it even more (who has RJ45 cables in his children’s room?).
Not having included it in the first place is a big mistake.
Requiring various hacks or bulky USB hubs (with tons of associated wires) for proper wifi connection is an even bigger mistake.
wireless keyboard and mouse + wifi dongle.
As reported everywhere, wifi dongles do not work reliably without power supply hack (or powered usb hub).
“children for who the RPi was designed to want it even more..”
I feel this is largely conjecture on your part. Every classroom I have been in since elementary school (I’m now 24) has had at least one computer in it. In that case, it would only take a switch and cables to network these things together.
Also, you don’t NEED network connectivity on these things to teach children about computers. There is still a lot to learn/teach without networking.
new board revision announced today for the pi resolving the issue.
I’ve been having similar problems with my RPi’s USB ports not supplying correct voltage, and the issue gets worse the more I overclock my Pi. I ended up just using a powered USB hub, but this solution is cheaper and would allow more space in embedded projects. I’ll look into using it myself!
Just wanted to say that this helped me finding the problem to my USB issues with the Raspberry Pi 4
I took a measure between the 5v pins and USB port 5v pin and it measured 8 omhs.
This “fix” helped me as I kept having intermittent I/O errors on an external USB hard drive.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)