So this weekend I decided to tackle something a little different. I’ve read about the oculus rift (http://www.oculusvr.com/) for a while now, but only development kits exist on the market and are still only on pre-order. These kits are not meant for consumers and cost quite a bit, so probably not the best choice to try out virtual reality head mounted displays. There is a thing called the “durvois dive” which is similar in function to the oculus rift, but uses a smart phone as the display. This is obviously much cheaper, since most of the cost is the smart phone you already own. These are produced in europe somewhere (I think) or printed via a service like shapeways. I had the printer, but not access to the lense kit durvois offers (its only on german Amazon). Plus it is not quite designed to fit the phone I have. So, I set out to build my own.
The durvois dive has a 3D printable file already available, but again, it is designed to mount an iPhone, not my Galaxy S5. The print time was also in the 5+ hours range, which with my printer’s luck would almost certainly end with a small mistake ruining the whole print. Luckily there are some Thingiverse alternative designs out there that were designed to be laser cut. These designs still did not exactly fit my phone, nor the lenses I had or head strap that I had available. My first instinct was to design something in SolidWorks, but I really had no idea of the dimensions I needed, so the first thing I did was grab a hot glue gun, some cardboard and get to prototyping. I followed the rough size of my phone and similar features of a design I found on Thingiverse. I used a rubber head strap from an old pair of chemistry goggles, and pulled two small plastic lenses out of a “3D iPhone viewer” that I got off Amazon. The result was OK, it worked, but was definitely not pretty.
The cardboard prototype taught me a couple of things. First, I cannot cut a straight line by hand very well (part of the reason I like computerized machinery so much). Second, the device would have to be deeper than I originally thought. I had it approximately 3″ deep, but it would just not focus while I had it that size. I added an extra section of cardboard and played around with the depth of where the phone sits to get it to focus. I needed about an extra inch from what I originally planned. I also learned that it would be extremely uncomfortable to wear if only the thin sections of it were resting on your face. Thus foam padding would be necessary. The next step was to model up what I wanted to cut out on my CNC/3D print. So, I fired up SolidWorks and started making my HMD.
The modeling took a couple hours on Thursday night, and then some cleanup on Friday night. I originally thought I was going to be using 3mm thick acrylic as the building pieces, but later found a piece of wood in my shop that I could use instead (as I did not have enough black acrylic on hand). The wood was .21″ thick, so I quickly adjusted my model and the joints so that everything could work. My CNC mill cannot do internal corners that are not the same radius of the tool (in my case 1/8″), so I had to add corner relief to all of my inernal corners or my joints would interfere with each other. A laser cutter can make much sharper interior corners because the beam is much finer. (On a side note, I really want a laser cutter now.) A couple of patterned cuts later I had all the corner reliefs in the model. Once I was happy with the model, I saved off the files as .dxf’s, opened them in Inkscape to delete the Solidworks Education text and rescale correctly then generated the tool paths in MakerCAM. All I had to do now was secure the wood to my work surface with double sided tape, and stream the G-Code to my machine.
The pieces came out very nicely. This was the first time I worked with wood on my CNC and I was quite pleased by how quickly and easily it cut. Wood just cuts so much cleaner than acrylic. The chips are a fine powder instead of the chunks acrylic throws off and it does not chatter nearly as much when cutting a deep profile. The only bad things from this cut were chunks of the veneer chipping off as I cut. The wood was not the best I could have used for this, but I had it on hand already. While my CNC was cutting out the flat pieces, my printer was churning out the corner supports and eye splitter that I had designed.
Everything fit together very nicely. All the corner reliefs worked and did not look as badly as I thought they would. The curves also cut very nicely in the wood. A little sanding/trimming with a razor blade got rid of any pieces hanging off. All that was left to do was paint and glue everything together.
I painted all the wood pieces black to provide better contrast on the inside when viewing anything. The printed components were already black, so they required no paint. The printed corner pieces on each side allowed for little larger of a surface for the phone to rest on, and as additional structure for the whole headset. I left a little bit of tolerance on the joints to ease assembly, and after the paint added a little thickness, a nice tight fit was achieved. I used wood glue and a couple c-clamps to tighten down the assembly while it dried. I then used hot glue to attach the 3D printed components to the wood.
Next up I added some foam on the face side to make it more comfortable to wear. I cut the foam by hand with some large knife. Again, with the manual cuts it came out kind of sloppy, but it gets the job done. The foam is simply hot glued to the edge of the headset. Unfortunately. since the edge is so small, the pressure on your face is still a little high. I have an idea for another revision where a 3D printed part will increase the bearing area, and hopefully make it more comfortable to wear. I also added foam to the front sides so that my phone would not get damaged as it was held on. Two holes in the top and two in the bottom allowed bolts to be added where rubber bands could be placed to hold to phone to the headset.
This new version was much nicer than the cardboard prototype. It fit my phone almost exactly, allowed for easier and more secure phone attachment, and had slotted connections for the ability to adjust focus. Unfortunately, I do not have any photos of it running or with my phone installed in it, because I use my phone for taking pictures.
DOES IT WORK?
Yes! it does work. Several stereoscopic enabled android apps run very nicely and give a decent 3D effect plus head tracking. Does it work for PC games? Sort of. The biggest bottleneck I am finding is that streaming the video from a PC to the android phone only kind of works. Latency is a huge issue and the program I’m using seems to crash quite often. This kills the use of the device. How immersive is something if there is a noticeable delay to action? Another program uses the internal accelerometer readings on the android device and streams it to the PC to emulate a mouse. The app for this also crashes fairly often. I am looking around the internet for some other options. It may be simpler to purchase a small HDMI enabled monitor to strap onto the thing permanently, but then another work around would be required to get head tracking working. These are all things to consider for the next model.
Virtual reality head mounted displays like the oculus rift seem very cool. The promise of an immersive, 3D, head tracked experience is really awesome. Who wouldn’t want to be directly in the driver seat in a racing sim, or the pilot seat of a plane simulator? The real question is whether or not the games and tech will catch up enough to be good and not just gimmicky.
My headset suffers from the lag of streaming from a computer, where as commercial HMD’s are connected via a cable so they are basically just another monitor. My HMD would probably work great as a 3D movie viewer though, as long as the movie is already loaded onto my phone. In the coming weeks I hope to try out some different software and hopefully get a more reliable connection.