An Open-Source VR Headset Inspired by the Oculus Rift
*** This is a draft – if you get stuck building your own HMD or find any incorrect instructions, please let me know and I will try to help you ***
The Oculus Rift is a low-cost, high-performance virtual reality headset that is well positioned to usher VR into the mainstream. It is by all measures a remarkable product with an ambitious agenda – which is to change the way we relate to the games we play by completely immersing us into the game world.
If you have never used a head-mounted display (HMD) you are in for an experience you will not easily forget. Basically, the Rift presents you with a very large screen that covers most of your field of view while blocking all light coming from the real world. The Rift is also equipped with a high-performance tracker that measures your head movements to update what you see accordingly – for example if you turn your head to the left, the image updates to show what is to your left in the virtual world. In essence the experience of wearing the Rift is similar to having your head surrounded by a spherical screen.
What most people don’t know is that the Oculus Rift started as a do-it-yourself project by Palmer Luckey, a single talented individual with a vision for a future where virtual reality is both accessible and pervasive. His remarkable journey is a great example of what happens when passion meets determination towards realizing an idea whose time has come. After a wildly successful Kickstarter campaign, the developer version of the Oculus Rift is on track for a December 2012 delivery.
If you missed the Kickstarter, you can still order your Rift development kit here.
Or if you are like me and would like to carry on the DIY VR torch, you can follow the instructions on this guide to build your own VR headset inspired by the Oculus Rift.
The goal isn’t to compete with OculusVR in any way. The Rift developer kit is very fairly priced and you will not save any money by building your own. This DIY HMD is also unlikely to be directly compatible with the official Rift so if you want something that “just works”, you should wait for the official release instead.
Speaking frankly, the Oculus Rift is the best thing to happen to VR in decades and the short-term future of VR is somewhat coupled with the future of the Rift. If OculusVR succeeds, we may soon live in a world where VR is pervasive. If they fail, this short renaissance may end up being yet another false start for mainstream VR.
If you don’t want this to happen we must do whatever we can to support OculusVR. Here are a few things you can do:
- Develop great applications for the Rift, you can start now, there is no need to wait for the official SDK.
- Evangelize: write a blog post on why you are excited about the Rift, tell all your friends about it, contact your favorite game developers about adding Rift support, etc.
- If you can afford it, you can also buy a Rift developer kit for a game developer that isn’t already onboard. Game developers love free stuff!
So why should you build your own HMD?
- You love VR and you want immersive reality replacement right now!
- You are a curious person that loves to build things and wants to learn more about VR.
- You want to become the next VR entrepreneur extraordinaire and building your own HMD sounds like a great way to learn the basics.
- You never built anything and want an easy project to start with.
- You want to contribute to the emerging DIY VR community. Matching the Rift’s specifications is just the beginning, there are already several other projects based on designs that outspec the Rift.
No prior experience with electronics or VR hardware is required to build your own Rift-inspired HMD following the instructions you will find in this guide.
If you are an experienced maker, you could complete this project in as little as two hours. If this is going to be your first attempt at building something, this is best seen as a fun weekend project.
Here are the tools you will need:
- A Computer, preferably running Windows Vista or 7 and equipped with at least a low-end GPU and a HDMI video output
- A X-Acto knife (make sure it is sharp)
- A steel ruler with a cork bottom (so it will not slide)
- A printer
- Some black duct tape, painter’s tape, dual-sided foam tape and electrician’s tape
And here are the parts you will need to buy:
- (1x) 5.6″ LCD screen, model HV056WX1-100
- (1x) LVDS LCD control board a with a HDMI input
- You can also buy it from EBay: http://bit.ly/W9cNx8
- The pictures in this guide use a NT68674.5X board, but the exact model isn’t that important.
- Make sure it comes with a power supply and a datasheet documenting all input/outputs.
- (1x) LVDS cable to connect the display to the controller board
- VERY IMPORTANT: buy the LCD screen and the controller board from the same seller and make sure to ask the seller to send you this cable pre-assembled. LVDS cables can be very hard to build if you don’t have plenty of soldering experience.
- (2x) 2″ 5x pocket loupe magnifier with Aspheric Lens
- Also available on EBay: http://bit.ly/Tyt7sA
- (1x) Hillcrest Freespace FSRK-USB-2 IMU
- You can buy it here: http://bit.ly/SYsAei
- (1x) RocketFish Ultra-Thin Active HDMI cable 10ft
- Available on Amazon: http://amzn.to/V7fAc4
- Any HDMI cable will suffice, but this one is very thin and great for mobility.
- (1x) Smith Optics SC Black Clear Lens Goggle
- On Amazon: http://amzn.to/SUdxHO
- While any Ski goggles with a removable visor will suffice, this one is particularly easy to work with.
- (1x) Black foam-core sheet, 4mm
- (1x) Thick metal nail, 50-70mm long
Assembling and Testing the LCD Screen
This is what the front of your screen should look like:
And the back:
For now, leave the factory protective plastic cover on. On the backside you will find the only connector you need to be aware of, a mini-LVDS female that is used both for input and power supply (highlighted in red). Be very careful as you manipulate the screen because it is rather fragile and you don’t want to end up with a cracked panel like I did.
If you are curious, this is what a cracked panel looks like:
Next, let’s inspect the controller board. The board pictured here is an NT68674.5X. Using this exact model isn’t a requirement as long as you have a datasheet for the board you bought (ask the seller).
Here is the front of the NT68674.5X board:
And the back:
And this is why datasheets are useful:
Connecting the board to the display will either be the easiest step in building your HMD or the hardest. To make it easy you should buy the LCD screen and the controller board from the same seller and ask them for the proper LVDS cable. I am going to assume that is what you did, if not I recommend you reach out to someone with an electronics background and plenty of soldering experience to help you build this cable.
With the LVDS cable at hand, you must then consult your board’s datasheet to find the correct way to connect it to the display. Be very careful as some boards will allow you to connect the cable backwards which might damage the display, the board or both.
On the particular board pictured here, the LVDS cable must be connected to two distinct male connectors, one on the top right side of the board for data and a the red connector on the bottom right for power (I presume).
Be very careful when connecting the LVDS cable to the screen. The male connector is very small and it is hard to tell which side is up. Try it both ways carefully – it should not take much force to slide it in the proper way.
After you double-check all connections, it is time to power it up!
If everything is in order, Windows should immediately recognize your assembled components as an external monitor. Next you need to run a few tests to make sure your LVDS cable isn’t noisy. A well-made LVDS cable has a few specific pairs twisted together to reduce noise. However most cables you will find on EBay are not properly twisted which can lead to visual artifacts. To make sure your cable is good, you should load several different images on your LCD screen, the more images you try, the better because sometimes the artifacts only show when a specific color is displayed.
If you see any artifacts, there is an easy way to mitigate most or all noise. All you need is some tape and someone to help you. First, gently twist the cable around itself but be careful to not put too much tension and then while you hold the twisted cable, ask someone to tape it so it will remain twisted after you let go of it. This trick worked for me every time!
Assembling the Foam-Core Case
Update: You could also use this incredible 3D-printed case by WickedAndy instead of building the foam-core case described below.
Next it is time to assemble the foam-core case. Before you get started please take a minute and make sure your X-Acto knife is sharp and clean, doing so will make the following steps much easier!
If you have never worked with foam-core before, I recommend that you cut a small piece from your sheet to practice some straight cuts using the steel ruler. It is not hard, but it takes a few cuts to get the hang of it.
Important Note: One concern when building a HMD is that everyone has a different intra-pupillary distance, or IPD, which is the distance between your pupils. There are two ways to address this issue, one is to make the distance between the lenses adjustable, which is quite tricky on a DIY budget, the other is to use optics with a wide exit-pupil so most people can use the HMD without adjustment. The latter is the method used by both the Rift and by our DIY project. Invariably, some people will fall outside the range of supported IPDs and some adjustments will be necessary. For maximum optical clarity I recommend that you take a measure of your IPD and make the adjustments to the provided AutoCAD file before moving to the next step. Once you open the file, you will notice a dotted line connecting the center of the two circular cutout for the eyes, by double-clicking that line you can enter your own IPD (in millimeters).
The PDF file that we will use as a cutting guide looks like this:
Steps to build the foam-core case:
- If you made adjustments to the AutoCAD file, first export it to PDF.
- Download and install Adobe Reader or any PDF reader that supports printing in “poster mode”.
- Make sure to print at 100% scale, in poster mode and with cut-marks enabled.
- Tape all 4 pages to a 4mm tick sheet of foam-core using transparent masking tape.
- Using an X-Acto knife, cut out the lens openings completely first. The easiest way to cut a clean circle is to lay the foam-core sheet over a stack of scrap paper then use the knife to punch several holes around the line of the circle, always making sure each hole connects with the previous one. Next turn the sheet around and use the small holes on the other side as a guide to cut the circle by connecting the dots.
- Next mark all other lines with a shallow cut – but don’t cut through yet!
- Cut through all outside lines to separate the shell from the rest of the sheet.
- Finally we must deal with the internal lines which are fold lines and are a bit trickier since they must be v-cut. It is not as hard as you think, just make sure to practice a few v-cuts on a spare piece before moving on.
Next we are going to add the lenses.
Top view of the lens:
To separate the acrylic lens from its harness, simply remove the thin rubber ring that keeps it in place. After that you should have no problems setting the lens free:
Now take a minute to look at the lens’ profile. You will notice that one side is rounder and “fatter” than the other. Keep that in mind for the next step because the rounder side should face the LCD screen and the thinner side should face your eyes:
Next lay the foam-core case cutout so the two holes for the eyes are at the bottom and all v-cut fold lines are facing down. If you try to stick your face to the case as it is, you will notice that you are missing a cut out for your nose and now it is a good time to add one!
We are going to tape the lens in place next, first put both lenses on top of the circular holes, with the “fat” side of the lenses facing down. Once the lenses are in place, you can use two pieces of painter’s tape, one on each side of each lens, to hold them in place.
Here is what the case should look like with the lens taped in place:
By looking at this picture, you will notice that the piece of tape I used on the left side of the left lens and on the right side of the right lens covers about 1cm of each lens. I recommend that you do the same and then cover those two pieces of tape with another layer of opaque black tape – by doing so you will be unable to see the edges of the LCD screen which will in turn make your HMD feel more immersive.
Mounting the Screen
It is now time to add the electronics to the foam-core case and we will start by adding the screen.
First, we must remove the factory screen protector and carefully bend these metal flaps around the screen upwards (towards the screen) about 70 degrees each:
Remember that the LCD screen is rather fragile, so it is best to carefully remove the metal frame from the screen (so very carefully) before trying to bend the flaps. Once you are done, lay the case cutout so the lenses are at the top and all v-cuts are facing up. The screen should be taped upwards (with the LVDS cable properly connected) to the third section of the case, counting from the top, which is the one with the lateral flaps.
Hint: tape a small piece of folded paper as thick as your LVDS cable to the opposite side where the LVDS connector is located on the back of the display to make sure the screen is properly leveled.
Apply the tape around the screen’s metal frame and be careful to not apply any tape directly to the screen. Now carefully turn the shell cutout so the screen is facing down and use a piece of non-conductive two-sided foam tape to secure the LCD controller board to the opposite side of the foam sheet where you taped the screen to.
Next it is time to fold your case along the v-cut fold lines, securing each flap in place with duct tape, except for the bottom one. Before we move on, you should also make a small cut to the bottom flap so the LVDS cable can pass through later when it is time to close the case.
Here is what the folded-up case should look like:
And from the back:
This last step is not complicated but it involves a lot of duct tape and some trial and error. It is also the last step separating you from having awesome, immersive virtual reality strapped to your face.
Important: make sure your screen is clean before moving to the next step!
First we must remove the transparent visor from the Smith Optics SC Black Clear Lens Goggle (or any other cheap Ski goggle you decide to use). Carefully align the nose part of the goggles with your case’s nose cut out. You must then close the bottom flap of the case with duct tape while making sure the nose portion of the ski goggles is “trapped” in place.
Next, pull over the top portion of the goggles so it stretches above the foam-core case and use a thick metal nail (piercing both the goggles and the top of the case) to secure it in place.
Your goggles should now be in place but the whole thing still feels very fragile. That is when the duct tape comes in – lots of it. Use as much duct tape as you need to secure the goggles in place and block all light from the outside world. If you don’t have any black duct tape, you can use electrician tape on top of the duct tape to make the whole thing opaque.
As you apply the duct tape, don’t forget to try on the headset a few times, this will help you account for the fact that the headband will be pulling the goggles away from the case when the headset is being worn.
Finally, you can use a piece of non-conductive two-sided foam tape to secure the Hillcrest Freespace tracker to the top or the bottom of the case.
Here are some images of the final product:
It is alive!
If you made it this far, now it is time to take your new HMD for a spin. Unless you are reading this after the Rift’s official release, odds are that there aren’t any applications out there that will work with your new HMD.
Here is a list of things you can try today, I will constantly update this list so make sure to check again every once in a while:
- You can write your own games and virtual reality experiments using one of the many free 3D engines available.
- Crysis 2 supports native SBS stereoscopic output and depending on your IPD, it might just work for you as is, so give it a try!
- If Crysis 2 SBS works for you, you can also use TriDef to enable non-native SBS mode for hundreds of other games.
- Since there aren’t many games out there with head-tracking support, you can use FreePIE to enable basic 2DoF (degrees of freedom) tracking through mouse emulation on most games. It is not great but it is better than no tracking at all.
- You can check out this demo application: http://bit.ly/SYLgdS
- Try those MTBS3D community drivers: http://bit.ly/QTnz7h and http://bit.ly/Vlrvl7
- Write your own free-open source driver and share it with the community!
I hope you enjoyed reading this guide and building your own HMD!
This guide is the result of a collaborative effort by several members of the MTBS3D community, including Palmer Luckey himself. As such this guide and HMD design belongs to the DIY VR community and are yours to take, modify and improve on. A link to this original guide or to MTBS3D would be appreciated but it is by no means mandatory.
Ultimately I would like to move this guide to a wiki where anyone could also post their own original DIY VR projects. Please contact me if you would like to help me make that happen!
Meant To Be Seen 3D
MTBS3D is the online community at the center of the ongoing DIY VR revolution and it was also the birthplace of the Oculus Rift. Highly recommended!
Also check out these great MTBS3D community builds: