Monday, March 3, 2014

The "Foculus Rift" part 1: Building a Head Mounted Display

Some time ago I read BitCortex's manual on building a homemade "head mounted display" (HMD), just like the Oculus Rift:

The concept is surprisingly simple and low tech. A LCD panel presents seperate pictures to the left and right eye, lenses are used to place the panel close to the eyes and hence produce a wide field of view (FOV). What I read about these very simple homemade glasses made me curios. The people on the mtbs3d forums (the birth-place of the rift) claimed that the 3D effect is fantastic and the head tracker allows the games to become extremely immersive.

It was clear, I had to try to build some of these fancy 3D goggles.
These posts will document the progress I have made, the problem I encountered and the improvements I came up with along the way.

Here's what I used for the first (and very much hacked together) prototype:
  • N070ICG-L21  7" LCD panel, 1280x800 (same size and resolution as the Rift), from ebay, 51 Eur
  • 5x pocket loupe magnifier with aspheric Lens (two times), from ebay, 19 Eur
  • Lunch box as enclosure, Skiing goggles, some cardboard and tape, lots of tape
The LCD panel includes a controller with VGA and HDMI inputs and runs on 5 V - 12 V power, drawing a maximum of 1 A. There is a secondary PCB, which features a boost converter for driving the backlight LEDs with 15 V.

The display panel was carefully attached to a cardboard "mounting plate" with tape. This plate fits tightly in the lunch box.

Cardboard spacers were attached to the display, so when it's placed in the lunchbox, it stays at a well defined position. This is important to keep it in the focal spot of the lenses.

Holes were cut to mount the lenses. They were first taped to some plastic spacers (actually some recycled juice bottles ;). The spacers were mounted to the lunchbox and then fine tuned, to get the lenses in focus and at the right positions. This was actually quite difficult and I still didn't get it perfect yet. The problem is, if the alignment is a little off, you will not notice immediately -- however it will result in a lot of eyestrain during longer use.

Actually at this point I noticed that the lenses are not the best choice and slightly too big. Although I think that it should be possible to get a well aligned picture, they can not be brought close enough to the eyes. The closer the lenses are, the larger is the field of view and the more of the LCD panel is actually visible. For these lenses, the sweet spot is very very close to the eyes. In fact, so close, that they touch the nose because of their rather large diameter. I'm planning to grind one side of them flat to make some nose-space :)

After much playing around I fixed the lenses, mounted the display controller board and attached the whole thing to skiing goggles rather crudely with a lot of tape. No rocket science involved here.

At this point you can use the HMD already with many Oculus Rift Tech demos and watch 3D stereographic videos on Youtube. The 3D effect is fantastic indeed!

However, one thing to improve is the weight!
I included all the circuit boards in the lunchbox, which makes these goggles way too heavy to wear comfortably for longer period of time. The weight of the cables (power, USB and VGA) is also a considerable factor. The weight rests on the nose and even an improvised "headstrap" did not really provide relief. For the second prototype I'm planning to only include the display panel itself in the goggles and keep the controller in a separate box.

Part 2 will be about the "Inertial Measurement Unit" IMU, which is the sensor, tracking the orientation of the goggles. I will present a cheap and simple solution to building a "Tracker" which is fully compatible with the existing Oculus Rift games. Stay tuned ...

1 comment:

  1. Hi Michael, I'm very interested in your project and I still have a lot of questions ? Is there an easier way to reach you if you don't mind ?

    I was wondering also if in that video, is the same process ?
    I don't quite understand the difference, are both compatible with steam vr ?

    Thanks in advance for your help