USB hub with power delivery OR android accessory mode

arduinopicpower supplyusbusb-host

I'm looking for a USB hub solution for small host computer (like a Raspberry Pi or Nexus tablet) that can simultaneously power/charge said host computer.

I've heard about the USB power delivery specification, but I can't find USB hubs that implement this.

I've also seen the Android Open Accessory Protocol. I don't think it's possible to program an Android Accessory to appear as a USB hub to the Android device, but feel free to prove me wrong.

Since I can't find any existing implementations, I'm going to implement it myself, on a PCB. Is there any specialized circuity involved in wiring a microcontroller (as a USB HUB) that provides Power Delivery?

Alternatively, I'd take a PIC/Arduino project that implements a USB Hub with power delivery, as a starting point.

Edit: pertains to Power Delivery circuitry.

Best Answer

While the Power Delivery standard exists for USB 2.0, it's barely a year old, and rarely implemented in 2.0 designs which has been around for 13 years now. Considering everyone is moving towards widespread USB 3.0 adoption, you won't see any USB 2.0 PD devices.

The Raspberry PI is easy though. It's half-way designed with backfeeding in mind. The USB ports' 5v is directly (well, through a fuse) connected to the Micro USB power jack. There is no circuitry involved that would make backfeeding an issue (again, except the fuse, which would be useless, and the older models had 140mA fuses on the usb ports). Since the Pi is powered by 5v, and regulated down from the 5v line, everything works as expected, and about 20% of the time you will find RPI projects that deliberately work through backfeeding.

The Nexus Tablet is different. It uses a USB power controller IC that changes the power circuitry from input/charging mode to output/host mode when the usb controller detects a OTG slave device/cable plugged in. There is no kernel module, hack, or cable that allows charging and otg at the same time. Some other devices do, like the Nexus 7 having a kernel mod enabling charging while OTG. Other devices don't have OTG by default, get hacked in, and since there is no active circuitry to allow OTG in the first place, require an external power source for those OTG device. These can most of the time be charged while using OTG, but it is not designed to act as such. Like with everything, Android device hardware varies based on OS version and manufacturer, so there is no universal option.