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

Picture of 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.

I printed it using my delta 3d printer from GearBest.

If you also want to get a delta 3d printer, you can use special coupon code GBTE to get %12 discount on GearBest

http://www.gearbest.com/3d-printers-3d-printer-kit...



Step 2: Hardware 1 : Headtracking Sensor

Picture of 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

Picture of 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

knexpert1700 (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...

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

AbhishekB5 (author)knexpert17002016-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

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

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...

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.

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

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

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.

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-...

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

Hellwind (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.

DavidB298 (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.

FracturedCrystal (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!

BrendanTheSequeira (author)2016-02-04

Are there any specific pc requirements?

HomiePigForever (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??

WiseSageBum (author)2015-08-29

Is this compatible with Unity 3D and Unreal 4?

mo300zx (author)2015-08-18

How do you power the arduino ?

musthy (author)2015-07-08

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

CanerÇ (author)2015-06-16

My number one enginner, thank you Ahmet

rcbazaaruae (author)2015-05-09

mo300zx (author)2015-04-27

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

kai.lin.0515 (author)2015-04-25

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

kai.lin.0515 (author)2015-04-25

how to make a case for it?

dgateley (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.

ayıldırım3 (author)dgateley2015-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.

dgateley (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.

ayıldırım3 (author)dgateley2015-04-21

Hi,

Forum you are looking for is : mtbs3d.com

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

dgateley (author)ayıldırım32015-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.

MikeM_Detroit (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?

Hi,

I added zip package to Materials -> Tools section.

Model file is in the zip package.

Thanks,

bvandenheuvel (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?

Hi,

I added link in Materials -> Tools section.

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

Thanks,

nguests (author)2015-04-11

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

Georgeh3 (author)2015-04-05

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

ayıldırım3 (author)Georgeh32015-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.

Georgeh3 (author)ayıldırım32015-04-07

Sounds great, much latency?

ineedab (author)2015-04-05

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

ayıldırım3 (author)ineedab2015-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

tommygirl69 (author)2015-04-07

Supercool

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

vectieba (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?

barancanaydin (author)2015-04-06

Best instructables of the this years.

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

Ok. Congratulations

Horef (author)2015-04-05

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

ayıldırım3 (author)Horef2015-04-06

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

Horef (author)ayıldırım32015-04-06

done and done :)

manwithvanhirebattersea (author)2015-04-03

very good dude

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

About This Instructable

49,969views

637favorites

License:

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