I already have an OTG hub that works fine either powered or not as described here, but note when the hub is powered, it must be used to provide power to the Pi, since otherwise there would be two competing power sources and that is a bad thing.
But I decided to try this with an ordinary (optionally powered) USB hub, and ended up with a similar answer to this one from a similar question. People who are having a problem may want to look at both.
There are two traps I suspect people fall into:
Believing you can plug the Pi into any random port on the hub with a microUSB cable. You can, and power the pi that way, but it will then be a slave device, meaning it won't have access to other devices on the hub.
Instead, you must connect the hub's data line to the Pi. Unless they are specially designed, hubs have only one of those. This makes the Pi the master. There may be many slaves, but only one master.
Believing you can power the Pi via the hub's data line. You cannot do that because the data line from the hub is intended to connect to a normal USB master, and masters provide power, they do not draw it. In other words, you can connect a normal hub via its data line and power the hub from the Pi, but not vice versa.
This means with a normal USB hub, no matter what, you will have to connect both ports on the Zero to something, as shown below.
To make sure these points are clear:
- If you want to use a normal USB hub as a hub with the Zero, you must connect the hub data line to it.
- A normal hub does not provide power on the data line, so it cannot power the Pi that way.
- You can power a hub this way from the Pi.
If you want a hub that you can both power the pi from and use as a hub, you need an OTG hub, not just a normal hub with an OTG adapter; see the first link above.
Here's two variations on the normal hub. In the first picture, the Pi is powering the hub:
A is the data line coming from the hub. It is connected to the data jack on the Pi. It's mostly hidden in the picture, but I'm using an OTG adapter on the other end that fits inside the normal size male end of the data cable, so what you can see is the smaller micro B jack sticking out of it into the Pi.
B is an RF keyboard/mouse transciever I used to test that the hub worked to provide slave devices. C is the power supply to the Pi, which is used to power the hub.
It can't be seen in the picture, but the hub is unplugged (there's a third variation on all this, since it also works with the hub plugged in but the pi powered separately).
Here's a variation on that where the hub is powered, and used to power the pi, but this requires two cables between the hub and the pi, one for the data line and a normal one to provide power.
The green dots are at either end of the data line (of which, again, there is only one per hub). The red dots are at either end of a normal microUSB cable used to power the Pi.
I would guess that if the hub is plugged in, it disconnects the power from the data line so there are not competing supplies. I'd also guess that any hub which can be used this way does the same thing, and that most powered hubs can be used this way. But I don't know for sure. In any case, it did not explode for me ;)
One thing you should be sure of: DO NOT PLUG TWO NORMAL PORTS INTO THE PI THIS WAY. One is okay. The other one here is the hub's data line.
lsusb
with the hub attached -- you may have toapt install usbutils
(or whatever equivalent) first; 2) A photograph of how the hub is connected to the Pi.