3
\$\begingroup\$

As some of you know - Raspberry Pi model B has only 100mA available on USB ports. I want to connect USB modem (that takes > 500mA sometimes) to my Raspberry without powered USB hub.

I have:

  • Raspberry Pi with USB ports that can deliver 100mA (recommended)
  • USB modem with high power demands (theoretically: 500mA, tested: sometimes 650mA)
  • 2A USB power supply with 2 USB ports (it's 2A total or 2x 1A, doesn't matter)
  • USB extension wire

I want to:

  • carefully remove some sheath (outer "insulation") from USB extension wire
  • cut +5V wire
  • connect modem +5V directly to my power supply
  • leave +5V wire from Raspberry not connected

Like on picture pictore below:

enter image description here

Question:

Can I connect power to USB device from source other than USB port, where device is connected?

\$\endgroup\$
4
\$\begingroup\$

The RPi, regardless of version, takes 5V in and does not regulate it past the input. The USB ports' VUSB pins are connected to the 5V input. Depending on the RPi revision, there are one or two (in everybody's opinion) undersized fuses in the way, as well as (in everybody's opinion) undersized power and usb capacitors. By doing what you have described, you simply bypass the undersized fuses. Same as if you had soldered a jumper across the fuses. This is pretty common mod for the RPi. So you should be fine, it will work as you believe.

\$\endgroup\$
  • 1
    \$\begingroup\$ You've described the circuit if he attached the modem to the power pin of the RPi. He didn't, he cut that line. \$\endgroup\$ – Ben Voigt Aug 2 '14 at 2:45
  • 1
    \$\begingroup\$ @benvoigt the rpi and the modem both get power from the same usb charger. 101% chance that charger shares the 5v rail on both usb ports without individual regulators or isolation. Logically and physically he did what I just explained \$\endgroup\$ – Passerby Aug 2 '14 at 15:00
  • \$\begingroup\$ Except that he's lost the inherent power sequencing, and now needs to be careful about the order of connections, as my answer explains. \$\endgroup\$ – Ben Voigt Aug 2 '14 at 15:13
  • \$\begingroup\$ @benvoigt except it doesn't. The usb ports on the rpi are not switched, they are always powered as long as the power supply is on, even if the rpi is in a shutdown state. And your explanation falls apart when you consider many setups always leave usb devices plugged in, so when powering the rpi up, the re is no sequencing. \$\endgroup\$ – Passerby Aug 2 '14 at 15:28
  • \$\begingroup\$ There still is a guarantee that those devices won't see VBUS before the RPi does. "not earlier than" is still a sequencing constraint. This frankencircuit removes that guarantee. Did you bother to read my answer? \$\endgroup\$ – Ben Voigt Aug 2 '14 at 15:30
3
\$\begingroup\$

It will probably work, although it isn't quite kosher.

Having USB device power come from somewhere other than the host controller is fine; this is what powered USB hubs do.

Self-powered devices are also fine.

What you've done is not quite the same as either a powered hub upstream or a self-powered device, however. The issue is that with both of these legal topologies, the pullup resistors used for speed detection are tied between the data pins and power pin of the same port. Having the USB data pins pulled up to an independent power source is discouraged, because current can flow upstream when the upstream hub or host controller is turned off, which can cause damage to components and is therefore strictly forbidden by the USB standard.

You can use this circuit, but you will be responsible for preventing the USB data lines from being pulled above the upstream 3.3V power rail. Essentially, when plugging or unplugging this circuit, you must ensure that the RPi is powered before the USB modem, and unpowered after. At the same time, the USB connector is designed so that power pins make connection before the data pin. So really, you need to power up both components, then plug in the data connection. And unplug the data connection before powering down either the modem or the RPi.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.