2

I have a Raspberry Pi 3 with an On/Off Shim from Pimoroni. If you're not familiar: it's basically a little device that gets soldered onto the first 12 GPIO pins and allows you to use a built-in (or external) momentary power button to turn the Pi on or off. I've used them quite a bit, they work great.

However this particular Pi has a powered USB hub plugged into it, which I need for 2 USB webcams and comm. with a 3D Printer .

When the Shim cuts power to the Pi, the Pi actually still remains powered (i.e. red LED on Pi remains on, and I have an LED on a 3v3/ground GPIO pin that remains on, too) - but I'm guessing it's too little, because the Pi isn't operational and the Shim won't cause the Pi to "snap out of it" when it tries to provide power again.

I have to unplug the Pi and the USB hub and replug them in to get it to work again. This applies to shutdowns and usually reboots (I think it has worked a few times, though).

Is there anything I can do to make the Pi ignore the power that is provided from the USB hub?

(tl;dr; pertinent info is bold)

Thanks

EDIT: I have an open question on the Pimoroni forums. The suggestion there is to just snip the 5v wires from the USB to only use the data lines. I got some spare USB cables, so no biggy if it doesn't work. Will report back shortly.

Adam Plocher
  • 173
  • 9

2 Answers2

4

Theoretically it is impossible to backpower a PI3 (or other modern models).

However tests by a member indicate that if the Pi is powered on, it will remain powered through the hub.

This is arguably a bug in the Pi (actually a consequence of the very simple USB interface, which is a long way from being standards compliant).

There is no "fix", other than using a properly designed hub (which SHOULD NOT supply more than 150mA without negotiation, or NONE to upstream ports).

There is a potential "solution" to include a diode (ideally a Schottky diode or "ideal diode") in the cable.

You can just cut the 5V line in the USB cable, if there is no need to power the hub from the Pi.

Milliways
  • 62,573
  • 32
  • 113
  • 225
3

Thanks to gadgetoid and niko over on the Pimoroni forums it seems the fix was twofold:

  1. Cut the 5v+ wire on the USB cable (assuming you're powering it separately than the Pi)
  2. Add a 1k resistor between pins 1 and 9 on the Pi's GPIO (3v3 and GND)

There is more info about individual hub models here. Mine is the Belkin F5U404 Hi-Speed USB 2.0 4-Port Mobile Hub which they note as being: Faulty/bad design; Leaks current back up the cable to the Raspberry Pi.

Adam Plocher
  • 173
  • 9