Introduction: OpenVR - 3D Printed Rift for Only 150$

OpenVR is a virtual reality headset similar to Oculus Rift DK1. The best part is it cost around 150$ to build.

In this instructable, we will go through each step and you will have an home made Oculus Rift DK1 clone by the end.

Since it was opensource some people improved it further and made it work with Smartphones. That will be the topic of our next instructable.

This project was first published on June 2014. It gained a huge interest from maker communities all over the world and got great coverage on magazines. :

http://hackaday.com/2014/06/13/openvr-building-an-...
https://xakep.ru/2014/06/14/62636/
http://www.comptoir-hardware.com/actus/peripheriqu...

http://www.slideshare.net/mclightning/openvr-at-ar...

Step 1: Materials

Before we begin building an OpenVR, let’s make a list of requirements.

Parts:


Tools:

Warning!

Don’t try lenses directly on your eyes in sunlight, intense room light.

Step 2: Hardware 1 : Headtracking Sensor

Pin connection

We will start with connection of Arduino and GY85 sensor module. Please carefully connect them according to connection table below.

GY85 - Arduino

  • SDA - A5
  • SDL - A4
  • VCC - VCC
  • GND - GND

Arduino Sketch

Please extract contents of zip archive.

  1. Open file /Arduino/Final_arduino_code.ino in Arduino Software
  2. Connect Arduino to PC using USB-TTL cable
  3. Upload sketch onto Arduino

Test

You will find a processing sketch in the zip contents. It will get data of headtracking sensor from Arduino. Then it will draw a visual representation of rotation.

Please run this file in Processing Software :
/IMU Calibration – Processing/Razor_AHRS_test/Razor_AHRS_test.pde

You can watch video of my test : https://www.youtube.com/watch?v=Gx6jRevFA4U

Step 3: Hardware 2 : Assembly

We can start assembling things together now. Then we will be done with hardware part of our project.

1. Lenses

The first and easiest is to place lenses. Gently place lenses onto holes on the 3D printed case. They should fit right into place since holes are specifically designed to hold the lenses.

Afterwards using hot silicone gun, glue lenses from their edges onto case carefully. Don’t pour too much silicone.

2. Display

We have the lenses on, but without a display, they are no good. Place the screen onto opening right in front of the lenses. I’m assuming you have the LVDS cable connected between the Screen and the Driver board.

Be very careful with the LVDS cable. They are pretty fragile and you wouldn’t want to wait for another shipment for weeks.

Glue the screen from screwing holes onto 3d printed case, using hot silicone gun.

Place the LCDPlace_1 onto back of the screen. This part will act as a separator between the screen and the driver board. Secure this part onto the screen using hot glue or tape.

I would suggest taping some bubble nylon onto this separator to increase heat insulation between driver board and screen. Because driver board gets very hot and you don’t want to damage the screen.

Then we need to place the driver board on the outside. Tape may not work for securing board because after several minutes of operation, heat from board loosens the tape. So you should probably use hot glue.

3. Test

Since we have both optics and display ready in place. We better test everything before taking further steps.

Now you should be able to watch a stereoscopic video using your OpenVR.

Connect driver board to your computer via HDMI, and connect power adapter to driver board. You may see a blue screen waiting for a video signal. You may need to set HDMI as input source using buttons of the driver board.

Display acts just like a monitor. You should set your computer to duplicate its display onto HDMI.

Afterwards search for a stereoscopic 3d video on youtube then play it on full-screen. You should be able to watch it using your OpenVR now.

4. Headtracking sensor

We are going to securely place both GY85 IMU and Arduino onto headset.

We will glue IMU onto headset like shown on the photo. We will pour some hot glue and then place and push IMU on it, before it cools.

Then we need to place Arduino onto headset. I would suggest gluing it sideways, because unused pins offers a surface for the glue. And it is easier to plug TTL side of USB to TTL converter, this way.

5. Sponge Pad for Nose and Cheek Rest

Carefully cut a linear piece from the sponge pad with a width of 1,5cm~.

Then stitch the cut opening of cloth back together.

Then glue it onto plastic surface that rests on your forehead.

Repeat these steps for each plastic piece that rests on your face by carefully cutting pieces from sponge pad.

Your OpenVR will be very comfortable to wear now.

Step 4: Hardware 3 : Optional Sensor Calibration

If you would like to make headtracking sensor work more precisely, you can do sensor calibration.

You can learn about this on following page:
https://github.com/ptrbrtz/razor-9dof-ahrs/wiki/Tu...

Step 5: Software 1 : Head Tracking Injection Into Games

PC games use several different protocols to accept head tracking input, such as; TrackIR, FreeTrack etc.

We will use FreePie application which is able to send our sensor data in different protocols.

1. Please download and install FreePie;
http://andersmalmgren.github.io/FreePIE/

2. Connect Arduino to PC with USB-TTL cable

3. FreePie

We have several scripts ready in the contents of zip archive. We will use one for Vireio Shared Memory Tracker.

Please open file on FreePie: /FreePie/FREEPIE vireio GY85.py

Run the script, you should first see 3 zeros for a few seconds. Then FreePie will start fetching sensor data from Arduino and it will show 3 axis rotation values in console instead of those 3 zeros.

When we finally setup 3D SBS, you will leave it running in background like this. This will inject head tracking into the game.

Step 6: Software 2 : Vireio 3D Side by Side Rendering

Vireio is an opensource project that converts your regular PC games to 3D SBS. So you can play them in OpenVR or Oculus Rift.

Community of Vireio works actively on improving it. So please visit their page for updated instructions on installing Vireio:
http://www.mtbs3d.com/index.php?option=com_content...

When you run Vireio after installation is done, please select “DIY Rift” and “Shared Memory Tracker”, instead of those selected in the guide. Because it is usually written for Oculus Rift.

If it is still not working and you’re seeing same old 2d game. Try copying d3dx9.dll from Vireio folder to nearby executable file of the game.

Make sure to have FreePie up and running before starting game, so you will have headtracking.

Step 7: Software 3 : Commercial Alternatives for 3D SBS Rendering

There are a few other alternatives to Vireio. These are paid and not covered in this guide.

If you are not happy with Vireio, you can try this paid alternatives.

Here is my comparison among all these options:

  • Vireio : Free Open-Source, Easier Head-tracking Setup, Good Community Support
  • Tridef : Paid, Trial Option, Multimedia Support, Easy to setup
  • Vorpx : Paid, No Trial Demo

Step 8: Result

Please vote for me in 3D printing contest. So I can make a better version that also supports Smartphones.

Comments

author
knexpert1700 made it! (author)2015-04-03

You can cut your price in half if you buy the panels from a wholesale source. Here are some I found:

http://www.amazon.co.uk/inch-1280-HV056WX1-100-Scr... (70GBP = ~$105)

http://www.aliexpress.com/w/wholesale-hv056wx1%252...

http://www.alibaba.com/trade/search?fsb=y&IndexAre...

author
knexpert1700 made it! (author)knexpert17002015-04-03

Last comment; Promise. http://www.aliexpress.com/item/GY-85-BMP085-Sensor...

http://www.aliexpress.com/item/Free-Shipping-1pcs-...

So with the links I provided, the total price for the Arduino Mini Pro, GY-85 sensor, LCD Screen, & controller board would be $96.57

author
AbhishekB5 made it! (author)AbhishekB52016-01-27

Check this out, 2560x1440 display on alibaba for ~48$. Should drop price of build significantly.

http://www.alibaba.com/product-detail/6-inch-1440p-lcd-panel-with_60410479386.html?spm=a2700.7724838.30.67.yae1Lf

author
ayıldırım3 made it! (author)ayıldırım32015-04-03

Thank you so much! Do you also have a link to the cheaper lcd+controller on aliexpress?

author
knexpert1700 made it! (author)knexpert17002015-04-08

I found a cool 2560x1440 display for only $88. I'm still waiting for a price quote, but the recent price was $88. I'm not sure if this includes the driver board, but I asked if it does in the price request. http://www.alibaba.com/trade/search?fsb=y&IndexAre...

author
knexpert1700 made it! (author)knexpert17002015-04-18

The price quote was $100 for the 2560x1440 display. $50 for the driver board. $50 for shipping (I think the extra shipping is necessary for better package handling). I've heard others have had a $10 bank transaction fee. Total $210. Subtract $50 if you want to buy the 1920x1080 version.

author
knexpert1700 made it! (author)knexpert17002015-04-03

I do on the comment I made that starts with 'I guess'

author
knexpert1700 made it! (author)knexpert17002015-04-03

The board and LCD are separate though, it brings it down to about $85

author
ayıldırım3 made it! (author)ayıldırım32015-04-03

thank you so much. i will make sure to update the guide as soon as possible with these. Until then i set it as sticky comment, so others can benefit from these links.

author
knexpert1700 made it! (author)knexpert17002015-04-03

I guess 'half' might be an exaggeration, but here is something that I think might work. http://www.ebay.com/itm/HDMI-VGA-AV-Audio-USB-Cont...

and http://www.aliexpress.com/item/free-shipping-Best-...

and a different board that might work is http://www.aliexpress.com/item/HDMI-VGA-2AV-AUDIO-...

author
knexpert1700 made it! (author)knexpert17002015-04-03

Lastly, I'd like to say that things may be even cheaper on AliBaba, but you need to get price quotes.

author
Hellwind made it! (author)2016-09-12

Can you please tll me the specs for the 12V adapter or maybe just a link to a correct one. Thank you.

author
DavidB298 made it! (author)2016-04-03

Hi, I'm using "generic" GY-85 compatible IMU sourced from eBay. Finally got the Processing sketch working BUT (for device I'm using) the connection to the Arduino must be: IMU SDA pin -> Arduino A4, IMU SCL pin (typo'd as SDL) -> Arduino A5 pin.

author
FracturedCrystal made it! (author)2016-03-17

Absolutely awesome man! Congrats on the features all across the net, this is top notch stuff. Definitely one of the greatest instructables out there. Rock on!

author
BrendanTheSequeira made it! (author)2016-02-04

Are there any specific pc requirements?

author
HomiePigForever made it! (author)2016-01-26

So I bought the LCD plate, and it came in the mail. Unfourtunatly, me being the idiot that I am, had no idea how to set it up. Are there any videos that could show me how to do a simple test with it??

author
WiseSageBum made it! (author)2015-08-29

Is this compatible with Unity 3D and Unreal 4?

author
mo300zx made it! (author)2015-08-18

How do you power the arduino ?

author
musthy made it! (author)2015-07-08

Kutlarım ! Ellerine sağlık bende deneyeceğim.

author
CanerÇ made it! (author)2015-06-16

My number one enginner, thank you Ahmet

author
rcbazaaruae made it! (author)2015-05-09

author
mo300zx made it! (author)2015-04-27

What if you add a Bluetooth to the VR head set ? Can you ?

author
kai.lin.0515 made it! (author)2015-04-25

can some one tell me the size of the goggle so i can make a case

author
kai.lin.0515 made it! (author)2015-04-25

how to make a case for it?

author
dgateley made it! (author)2015-04-21

Creator: please take note of this:

https://www.kickstarter.com/projects/wearality/wea...

I was at a demo last night and was extremely impressed. It's pretty near everything they claim it to be. (I will require some IPD adjustment which actually surprised them.) I spent some time talking to the CTO and they definitely anticipate people popping the lenses out of the deliverable for use with other devices, kits and DIY projects.

author
ayıldırım3 made it! (author)ayıldırım32015-04-22

I read on reddit thread, they are also planning to share STL files for bracket but no words yet. It's a nice foldable design that can be useful.

author
dgateley made it! (author)2015-04-05

The usual 50 mm 5x aspheric HMD lenses require that the eye be able to focus on things somewhat close up. If one has had cataract surgery, as I have, the plastic prosthetic lenses in the eye will be unable to focus anywhere but at infinity. Does anyone here know or can anyone determine what specification HMD lenses are required to put the plane of its display at infinity too?

I have found that approximately +3.5 diopter reading glass lenses superimposed in front of the lenses of a Google Cardboard will accomplish that but what I'd like to determine is what aspheric lens parameters can replace the compounded pair.

There might be a good DIY VR forum for placing a question like this if anyone can suggest one.

author
ayıldırım3 made it! (author)ayıldırım32015-04-21

Hi,

Forum you are looking for is : mtbs3d.com

You may be able to get good answer from expert guys there :)

author
dgateley made it! (author)dgateley2015-04-21

Thanks. As for my particular problem I saw the solution last night at a demo of this:

https://www.kickstarter.com/projects/wearality/wea...

I was able to get perfect focus with no glasses. It seems that they were able to get a default focus at infinity through collimation. Amazed me.

author
MikeM_Detroit made it! (author)2015-04-19

The thing that I don't see is the STL for the case? Or is there another instructable for designing the case?

author
ayıldırım3 made it! (author)ayıldırım32015-04-21

Hi,

I added zip package to Materials -> Tools section.

Model file is in the zip package.

Thanks,

author
bvandenheuvel made it! (author)2015-04-09

I feel really dumb, but I can't find the files he keeps talking about. Are they missing from this instructable?

author
ayıldırım3 made it! (author)ayıldırım32015-04-21

Hi,

I added link in Materials -> Tools section.

So sorry. Apparently upload failed when I was publishing the instructable.

Thanks,

author
nguests made it! (author)2015-04-11

http://vrglasseskit.com/ compelete clone of the oculus rift DK1 just $140

author
Georgeh3 made it! (author)2015-04-05

This looks like it could be good for FPV for quadcopters and planes.

author
ayıldırım3 made it! (author)ayıldırım32015-04-07

Exactly! I actually used it with my arducopter. Using EasyCap and a SBS player, you can get video stream to show as side-by-side.

author
Georgeh3 made it! (author)Georgeh32015-04-07

Sounds great, much latency?

author
ineedab made it! (author)2015-04-05

It would be great if you could use your phone as a screen.

author
ayıldırım3 made it! (author)ayıldırım32015-04-07

It will be in the next version. I will release it soon. Currently I have it working with some phones, but Im working on the adjustable mechanism

author
tommygirl69 made it! (author)2015-04-07

Supercool

author
ayıldırım3 made it! (author)ayıldırım32015-04-07

thank you :) please vote to support this instructable in 3d printing contest using Vote button upper right corner

author
vectieba made it! (author)2015-04-06

Hi

Not sure if this display will be compatible but it sells for $80

http://www.dhgate.com/product/hdmi-dvi-vga-audio-l...

Or is it too big for this project?

author
barancanaydin made it! (author)2015-04-06

Best instructables of the this years.

author
ayıldırım3 made it! (author)ayıldırım32015-04-06

thank you :) please vote to support this instructable in 3d printing contest using Vote button upper right corner

author
barancanaydin made it! (author)barancanaydin2015-04-06

Ok. Congratulations

author
Horef made it! (author)2015-04-05

soooo much work! kudos for holding up man, it came out great!

author
ayıldırım3 made it! (author)ayıldırım32015-04-06

thank you :) please vote to support this instructable in 3d printing contest using Vote button upper right corner

author
Horef made it! (author)Horef2015-04-06

done and done :)

author
manwithvanhirebattersea made it! (author)2015-04-03

very good dude

author
ayıldırım3 made it! (author)ayıldırım32015-04-06

thank you :) please vote to support this instructable in 3d printing contest using Vote button upper right corner

About This Instructable

49,582views

636favorites

License:

More by ayıldırım3:OpenVR - 3D printed Rift for only 150$
Add instructable to: