Sponsored Links

A Raspberry Pi and High Power USB Devices

18th Oct 2012, 10:16:49

By James Stocks

After some faltering attempts to use my Raspberry Pi model B as a media centre, I
repurposed it as a take-anywhere 3G router and general wireless swiss army knife. To do
so, I needed to be able to use high power USB devices which the Raspberry Pi is not
designed for. I (re)learned a bit about electronics in the process.

The first thing to know is that there are presently three versions of the Raspberry Pi
knocking around out there. By far the easiest way to identify a board is to boot it and
look at:

# cat /proc/cpuinfo | grep Revision
Revision : 0002

This is the revision number of the Broadcom chip, not the revision number of the board,
but it's possible to match up the two like so:

Key:

Broadcom revision number

System revision number

0002

Revision 1.0, 1st production board.

0003

Revision 1.0, but with removal of components D14, F1 and F2.

000400050006

Revision 2.0

The revision number is somewhat important because it determines how much current can be
drawn from the USB ports.

Polyfuses or polymer PTC fuses are actually non-linear thermistors. They act
like circuit breakers, (and can be reset unlike true fuses) but their mechanism of action
is different. When the load on a polyfuse exceeds its rating, it changes from low
resistance to high resistance, effectively chopping the power to whatever it is supplying.
The inclusion of these was a good decision, since it reduces the likelihood of someone
frying their power supply and board with a short. If (like me) you just connected up some
high power USB devices, you'll have blown the fuses. Don't worry, just leaving the Pi
unplugged for a while will allow the polyfuses to reset.

All revisions are fitted with fuse F3, which sets a limit of 1.1A. This fuse restricts
the total power draw through the micro USB socket on the board. My Raspberry Pi is a 0002
revision 1.0, one of the initial batch that hit the shelves in
May 2012. Bad news, because this means in addition to F3 it is fitted with polyfuses F1
and F2. These limit the maximum current of the USB A ports to 140mA, which is a very low
limit.

So, what are the options?

Using a powered USB hub seems like an obvious solution, but
this uncovered two problems for me. Some hubs supply 'back power' down the USB interface
which
is used to connect to the computer. This seemed to make my Pi highly unstable, in fact
it wouldn't boot at all. Anecdotally, I've heard this isn't a problem with rev 2 boards,
but I've not had chance to test this for myself. Other hubs that don't supply back power
seem to draw more than the 140mA limit and blow polyfuse F1/2. Maybe bypassing F1 and F2
would prevent this, but I didn't try. Further, this has the problem that you'll need two
power supplies, one for the Pi and one for the USB devices. Messy.

If you have fuses F1 and F2, it's definitely a good idea to
simply bridge over these with a length of wire. This is effectively the same as the
Raspberry Pi foundation have done with rev 2 of the board, except they achieve it by
replacing the fuses with 0 ohm blanks. If you want to draw more than 1A however, it's
necessary to take fuse F3 out of the equation:

I did this by soldering the power pins of the USB A sockets to the inputs of F3 and D17.
Some people have removed F1 and F2 from the board as well as doing this. I haven't done
so and have noticed no negative effects.

Of course, all this assumes that your power supply will allow you to draw 1A or greater,
which the majority will not. I was using a power supply which claimed to be capable of
1.5A, however when I measured the voltage across TP1 and TP2 with a multimeter, it was
dropping to around 4.5V, which is below acceptable levels. I elected to assemble my own
power supply based around one of these
DC-DC step down modules. Coupled with an 18V/1A wall wart I found, this does the job
nicely. Given that Power = Volts x Amps, this gives much more juice than a 5V 1A supply
would. As a bonus, I can now connect any sufficiently beefy DC power supply as long as
it's between 5 and 24V, so the Pi can now run off alkaline batteries if needs be.

Not exactly compact, but hey, it works. Even with a 3G dongle and a hefty USB 802.11b/g/n
wireless module connected, so far I've had four hours runtime out of these
batteries. I expect they might give a full day's use given that each cell has a
18,000mAh capacity (although this will be much reduced at a 1A load).