Powering the Oculus Rift with USB

Oculus Rift dev kits are starting to make their way onto the workbenches of makers around the globe. Some are even going so far as to tear open the hardware and see how they can improve it. [Mike] didn’t like the fact the Oculus Rift needed a wall wart power supply, so he modded it so it can be powered over a USB port.

The key insight for this mod comes after [Mike] put a Kill-a-Watt between his outlet and the Rift’s power adapter. He found only 600 mA of current was being used by the Rift, assuming 100% efficiency in the adapter. A USB port is supposed to provide 500 mA of current, so with a soldering gun, [Mike] bridged the DC input jack and the USB port on the Rift. Perhaps unsurprisingly, everything worked perfectly.

52 thoughts on “Powering the Oculus Rift with USB”

There is potentially a big difference between a measured idle current draw and peak current draw. Sure wall warts are fairly inefficient things, but the designers obviously considered the peak current draw as being too much for the USB port to provide and chose to power via a wall jack instead.

Additionally, if this USB port is used for data only, bear in mind that it’ll probably be informing the host that it’s only drawing 100mA, so it’d be very easy for that individual bus to be overloaded if other high draw devices are attached to the same hub/controller.

Almost all computers are capable of 1000mAh from USB. The USB port in the Rift is also used for power as well, for the motion sensor unit. It is far more likely that the designers intended to use USB power only, but could not because a draw of even slightly more than 500mAh would not allow them to sell in certain foreign markets, as well as receive certification here.

usually the computer flashes an error saying “the port is using too much power, disabling”
I have only had this happen a couple times, while running stuff on usb hubs that didnt have a wall wart external power source.

If you exceed the 500mA, the hub’s overcurrent protection kicks in and the port will shut down if engineered properly. The hack described above is a good way how to potentially blow up a motherboard on a PC, especially in a laptop – many laptop ports have hard time to deliver even the standard required 500mA.

Furthermore, the standard specified 500mA is *per port*. Now imagine that you have an unpowered hub on it (e.g. in a keyboard) – that power is shared by all devices attached to the hub, so the real amount of current available is going to be much less.

A desktop PC may be able to provide 1000mA, but that is way out of USB spec, you cannot rely on that. If someone’s computer won’t be able to deliver it and the HMD blows up the USB controller, are you going to be the one handling the returns and complaints?

The wall wart on the Rift is there for a very good reason. Reliability, compatibility and certification – the USB consortium will *not* certify any device that doesn’t meet the specs – and the current draw specs are *very strict*. Ignoring that is maybe OK for a home Arduino hacker and common in cheap Chinese junk, but a show stopper for a company trying to actually sell a product – the rate of returns and complaints about broken computers would pretty much kill any such product.

no, defiantly only 500mA and only if the device can negotiate it even USB 3.0 only allows 900mA the only version that allows more is an as yet unreleased add-on to the spec. and most PC i’ve used will fail to power even marginally more than that

That’s really something that needs fixing. With 400W of DC power, or even 230W, a PC PSU is well capable of supplying the amps. It’s pretty stupid to not have SOME sort of DC power supply, to save on all the wall warts. Cumulatively that’s millions of dollars of wall warts and chargers that could be eliminated.

Even just a DC barrel plug with, say, 5V at a couple of amps. Or perhaps the old Molex hard disk power connector, with a bit of protection.

It’s silly that all those amps are sat inside the machine, kept away from so much use by a strip of plastic.

You can only eliminate the wall warts if you can be sure the appliance will only be used near a computer with a free USB port. You don’t really save much power either. The efficiency of a typical PC power supply isn’t much better than a modern wall wart.

If the mains-wall power supply (wall-wart) is powering a modern device (smart phone) then it should be more or less the same as a PC supply as they should both be switching power supplies (>~90% efficiency)

Yep but if it’s a computer accessory, like the Rift or a thousand other things, then it is going to be near a computer. And it isn’t so much saving the power, as saving having to include a wall-wart in the first place. It’s silly to include a DC PSU with every little gadget, when the PC has hundreds of watts of DC bubbling away inside it.

It just needs a standardised interface for a DC power plug. Like USB but for more useful amounts of power. Enough to power, say, a printer. As much as anything it saves on wall sockets.

All implementations of USB3 I know of actually push it to 1A, seems it’s easier for manufacturers to do that.
But I guess millage may vary.

As for USB2, it was extended to allow 1A when put in ‘recharge mode’ as I recall (and the only time I heard of it being significantly less than the common 500mA or so was in the infamous raspberry pi case)..

could it be that current measured from the AC side would be more that what the RIFT is actually drawing in DC. for ex, computers. if you have a 400w PSU and the AC meter says 400Ws of AC power are going to the PSU, the watts in DC would be less, so you wouldnt be frying your psu. i dont know why, but i think that is correct.

i dont see why he didnt just patch into the 5v output from the wallwart and measure the amperage with a 20 dollar multimeter. Would have been much more accurate.
Heck, he could have even made a little adaptor cable to do so, to avoid the slim chance of ruining the wallwart cable.

The article is poorly written. In fact, the guy measured the power, not current. That was 3W at idle. 3W at 5V gives those 600mA, at full efficiency.

The hack works for him, because the real current draw is likely just around 500mA, thus not triggering the overcurrent protection (if there is any on his MB) – the wall wart is not 100% efficient. However, that still doesn’t change absolutely anything on the fact that this is a horrible idea reliability-wise and very good way how to blow up your mainboard.

For the Rift, what is “idle”? How many times are you going to talk about “blowing up a motherboard”? Do you want me to take a video of shorting the USB 5V to Ground to show that any non-garbage motherboard will just shut off the port?

Don’t forget that USB 2.0’s maximum draw is 500mA but only after enumeration, during the enumeration process it can not exceed 100mA. The “charging mode” of USB 2.0 does allow up to 1000mA but it does not allow communication. As a company getting a product “USB Certified” can be painful, the 100mA/500mA limits are 100% adhered to as the majority of onboard usb controllers provide ZERO protection as the protection is built into the device specifications. I ran a dev kit with 7″ LCD via usb and a 15′ extension and it fried the controller on my 2 year old motherboard.

More recently (some time in 2010 I think) they released an addendum to allow USB 2.0 charging up to 1.5A WITH data transmission because of the influx of tablets that require huge charging power for realistic recharge times but I don’t know of any PC controllers that can handle any more than one device at a time, most will require an externally powered usb hub.

The Rift is going to be a late 2013 product I see no reason why they couldn’t aim for USB 3.0 specs and then they could run up to 1.5A at full data speeds. Put the video controller on board and now its a one cable gaming solution!

“The Rift is going to be a late 2013 product I see no reason why they couldn’t aim for USB 3.0 specs and then they could run up to 1.5A at full data speeds. Put the video controller on board and now its a one cable gaming solution!”

That would just be an overkill. The USB is used only for the tracker, which probably needs less than 100mA. By requiring USB 3.0 you would limit the possible market only to the newest machines for absolutely no reason. Also USB 3.0 support in an embedded hw is *MUCH* more complex and expensive, USB 2.0 can be handled by a $2 micro these days.

The wall-wart solution is easier and nobody prevents you to make an adapter cable to power the HMD from USB charging port instead of a wall wart if that is what you need.

“Put the video controller on board” I meant they could run both video, tracking and power all through the USB 3. I have a few USB 3 devices that are backwards compatible to USB 2 and its an astounding difference. But with the Rifts resolution they could undoubtedly fit it into USB 2.0 with some packet handling though.

I understand it’s me erroring on the side of caution I would have assumed a wall wart efficiency of 100%. I would have sacrificed a USB cable to make a break out cable to used to measure the DC current, if I need it once, I’m likely to need it a again. Better yet a Bench power supply a metered 5V. source and USB jacks.

I don’t mind wallwarts much, not now they aren’t the old ones with a big heavy transformer in it anymore ((most of the time).

Still an interesting experiment and find though, although the idea is to increase the resolution in later final builds so then it means back to the drawing board, and perhaps switch to a USB3 port which can do double the power (officially 900mA I think, but in practice it’s 1A when implemented in the wild).

If the USB-spec only allows for 500mA with data transfer per port then why not just splice it into 2 USB ports??

I know this is a bit of a shitty way of doing things, but no more than the OP’s method. This should get round the current limiting problem whilst providing the freedom of no wall power supply.

Anyone care to chime in why this shouldn’t work?? I mean, if it was good enough for the hundreds of HDD’s i’ve seen supplied with this (and most won’t work without it) then why not for the Occulus Rift?

The trick is that they often use a USB “Y” cable, wich only connects data lines to one of it’s two usb plugs. This means that the plug doing the data transfer will negotiate it’s 500ma, but the auxiliary plug won’t ask nicely for however much power it draws.

If they simply connect the power / ground lines in parallel to split the load this means one port is drawing too much. Worse, I can imagine a case where plugging this in to two ports that aren’t on the same USB controller chip might cause some issues (short circuiting one controllers +5v to the others +5v might do nasty things if they both aren’t exactly 5V or have different ground references.)

Sorry I was researching while you wrote this, otherwise I would have replied directly. I think i’m a bit more clued up about it now.
You make a good point about connecting up to separate USB controllers. That is something I didn’t consider.
It seems that in this particular case with the Rift, using the “Y” connector wouldn’t be such a bad idea as they can negotiate for 500ma on the data port and use the remaining 100ma from the secondary port without much trouble as it should be limited.

Also reading around seems to indicate that this would really only be a major problem with older hardware as USB specs seem to favour high current draw hardware more and more, especially with new sync& charge specs.

For a device to consume more than 100ma(1 unit load) it has to communicate it’s power requirements to the USB host.
500ma (5 unit loads) is the maximum that the USB 2.0 spec allows for per port and doesn’t officially support loading from multiple ports.
The USB spec DOES allow for this though but the device must be classified as a non-standard USB device, therefore it can’t qualify as USB 2.0 spec. So it would appear there isn’t *really* anything wrong with doing this within reason.

It would at first glance however be possible to make the Rift USB 3.0 complaint if it can negotiate for high power mode using up to 150ma(1 unit load) as it can supply up to 900ma(6 unit loads)