DIY VR Headset for $80 (DIY VR Part 2)

IMG_1817

The purpose of this series of posts was to look at ways to experience VR at home for the lowest cost possible. In Part 1 of DIY VR, we took a look at using a smart phone and a Google cardboard compatible headset to stream computer games to the phone in stereoscopic 3D. The main problem with this approach was that it was still relatively expensive as it required a smart phone (iOS or Android) to function.

Now in part 2 we will look at building a VR headset from scratch. My initial goal was to do this for under $150(USD), however after shopping around and changing some parts out for alternatives I managed to get this down to around $80. So let us get started.

The parts required are:

  • Toggle Flick Switch
  • 2x LED
  • 1x resistor 150 Ohm
  • 1x Micro USB cable (at least 2 meters long)
  • 1x HDMI Cable (thin ones work best as they hinder movement less, also at least 2 meters long)
  • Some jumper wires
  • DC Adapter plug 5V 3A (Raspberry Pi compatible one works great)
  • Push Button
  • Google Cardboard Compatible VR Headset (I recommend one with a phone compartment door that opens as it gives better access than the ones which uses a tray that slides in)
  • 6DOF MPU 6050 3Axis gyroscope and accelerometer
  • Arduino Micro (can use off brand alternative)
  • 5inch RaspberryPi LCD Screen 800×480 with HDMI interface

All of these parts can be acquired on AliExpress for about $80 ($82.78 to be precise), as shown in the image below:

Resistorflick_switchwireDC AdapmicroUSBHeadsetpushbuttonledMPU6050lcdHDMIarduinoMicrototals

You will also require Tridef3D or similar software (there are some free alternatives, but I have not had a chance to give them a try at present). Tridef3D is used to convert any Direct X 9/10/11 game into stereoscopic 3D. Tridef3D offers a 14-day free trial, which is plenty to give this a try. The full version of Tridef3D retails for $39.99.

Now that we have all the required components, let us begin with the assembly.

The assembly comprises of 3 main elements:

  1. The Arduino Micro circuit (containing the MPU 6050, push button and led)
  2. The Wiring (providing connectivity to Arduino Micro and power to Screen)
  3. Inserting the screen in the headset and connecting the micro USB cables as well as the HDMI cable.

The Arduino Micro circuit

The diagram below illustrates how the different components need to be connected to the Arduino Micro:

vr_bb1

The push button uses digital pin 5 and the MPU 6050 is connected to the Arduino Micro as follows:

– MPU 6050 SCL pin to Digital Pin 3 on Arduino

– MPU 6050 SDA pin to Digital Pin 2 on Arduino

– MPU 6050 VCC to 5V pin on Arduino

– MPU 6050 GND to GND pin on Arduino

The code to be loaded on the Arduino is as follows:

#include <Mouse.h>
#include <Wire.h>
#include <I2Cdev.h>
#include <MPU6050.h>

MPU6050 mpu;
int16_t ax, ay, az, gx, gy, gz;
int vx, vy;
int inputPin = 5;
bool enableMouse;

void setup() {
Serial.begin(9600);
Wire.begin();
mpu.initialize();
enableMouse = true;
pinMode(inputPin, INPUT);
if (!mpu.testConnection()) {
while (1);
}
Serial.println("Running...");
}

void loop() {
int val = digitalRead(inputPin);
if (val == HIGH) { // check if the input is HIGH
//Place logic here to execute when button is pressed
//Disables mouse movement while button is pressed, this allows you to set your view angle easily.
enableMouse = false;
}
else
{
enableMouse = true;
}
if(enableMouse)
{
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
vx = -(gy)/150;
vy = (gz+100)/150;
Mouse.move(vx, vy);
delay(20);
}
}

Just note that the orientation of the MPU 6050 makes a difference to which of the axis of the gyroscope will be used. For the above code the MPU 6050 was mounted on the side of the headset as shown in the pictures below:

IMG_1795

In the event of the MPU 6050 being mounted with a different orientation you might have to substitute between the gx, gy and gz values until the desired configuration is achieved.

For my configuration I am rotating around the Y and Z axis.

Also the numbers associated with calculation of vx and vy might have to be tweaked to get the results (movement speed etc.) you desire.

I also added a push button, that when pressed temporarily disables the gyroscopic mouse movement. This is useful when you want to reset you point of view in games.

I attached all the parts of this circuit to the VR Headset using double-sided tape.

The Wiring

In order to have as few cables as possible connecting to the VR headset I modified the USB cable so that it pulls external power from a DC power adapter (a single USB port will not be able to power both the Arduino and the 5 inch LCD) as well as splitting into 2 micro USBs on one end (one only provided power to the LCD and the other one both power and connectivity to Arduino.) the below diagram shows how the wiring is connected:

VR2_bb

For reference a USB cables contains 4 wires:

  • Red wire – +5V DC
  • White or Yellow – Data connectivity
  • Green – Data Connectivity
  • Black – GND

I also included a switch to turn the power on and off (this is useful to turn off the mouse functionality until it is needed, otherwise it will interfere with mouse movement when it is not desired) as well as an LED to show when the headset is powered on.

IMG_1807

Inserting Screen in Headset and connecting all the wiring

The LCD screen is held in place by the clamps in the headset used to hold a phone (it is a snug fit). Then simply connect the 2 micro USBs to the LCD and Arduino respectively (ensuring the plug with the data connections is plugged into the Arduino and that the power only micro USB is plugged into the power socket on the LCD display). Try to run the cables in the extra spaces in the Headset around the screen in order to keep them out of the way.

Lastly connect the HDMI cable to the LCD.

The assembly is now complete.

IMG_1817

Connecting headset to PC and setting up software

To connect the headset to your PC do the following:

  1. Plug the DC adapter into mains power.
  2. Plug the USB connector into an available USB port in your PC.
  3. Connect HDMI cable into and available HDMI port on your PC graphics card (You can use a DVI port with an adapter)

Go to display settings and click on detect displays, then set Multiple displays to “Duplicate these Displays” and make sure your resolution is set to 800×480.

Open up Tridef3D and start-up a game.

You might have to play around with each individual games graphical settings as well as mouse sensitivity to get the best results.

For future enhancements I will look at getting a higher definition LCD screen and also work on head movement tracking by using infrared LEDs and a Wiimote (Wiimote used as a IR Camera).

And there you have it a DIY VR Headset for $80. Give it a try.

Here is a short demonstration video:

DIY VR Headset for $80 (DIY VR Part 2)

Google Cardboard: V1 vs. V2

In a previous post, I has a look at the original Google Cardboard or the version 1 as it is now known. The version 1 of the Google Cardboard was initially released in 2014. It was very well received with over 5 million units sold. In 2015 a new updated and improved version 2 was released, so how does the Google Cardboard version 2 measure up to the amazing version 1? Let us take a look.

Firstly from a fit and comfort perspective the version 2 has significant improvements compared to the version 1. The nose hole on the version 2 is much larger and has foam padding around the rim, which greatly improves the comfort of using the headset, especially for longer wear times.

The version 2 also comes bundled with head-straps, whereas with the version 1 they had to be ordered separately upon initial release.

Another difference between the version 1 and version 2 is how they interact with VR applications. Both have an action button, but how they function is very different. They version 1 has a magnet which slides up and down and triggers an action on certain android smartphones similar to a screen tap. The problem with this magnet based action button is that it only works with certain android phones and not on iPhones, thus limiting the Cardboards’ functionality on all but fully supported phones.

The version 2 on the other hand utilises a lever based design which presses a conductive pad against the phones screen, fully replicating a finger touching the screen. This works on all touch screen smartphones, including iPhones, and is a great improvement over the version 1, especially for people using non-Android Smartphones.

The version 2 is also designed in a manner that holds a phone more securely, thus reducing the anxiety resulting from the fear of having your phone fall out mid VR experience.

Additionally the version 2 contains much larger and better lenses, which are fitted more securely and flush, than the version 1.

Use is made of protective plastic tape in the version 2 where your forehead comes in contact with the headset. This protects the headset from damage due to sweat, a common complaint in the version 1.

So, up to this point the version 2 has clearly taken the lead. But there are however 2 key areas in  which the version 1 outperforms the version 2.

The first of these key areas is price. The version 1 costs approximately half what the version 2 does.

The second area is the support of Augmented Reality Apps. The version 1 has a cut out where the phone camera is located, whereas the version 2 does not. Without this hole for camera access, Augmented Reality Apps can not function due to their reliance on the phone camera.

Even considering these 2 areas, except if you are extremely price sensitive or dead-set on AR apps, the version 2 is a much better option, especially if you have an iPhone or any other non-Android phone. 

The improvements and design changes made in the version 2 are all vast improvements over its predecessor. Although the price did roughly double it is still not a large amount of money, and in my opinion the version 2 is well worth the extra cost.

As an iPhone user I am very happy with the Google Cardboard Version 2 and how it was enhanced for better support of non-Android phones.

If you have never owned a Google Cardboard, I would definitely recommend picking up the version 2 over the version 1. And even if you already have a version 1 I would still recommend upgrading to the version 2 due to its improvements and better phone support.

The Google Cardboard Version 2 is a great upgrade to an already great product, so pick one up, for the money you won’t regret it.

Google Cardboard: V1 vs. V2

DIY VR – Part 1

In this post we will look at ways to experience VR at home for the lowest cost possible. In Part 1 we will look at using your smartphone and a Google cardboard compatible headset to stream computer games to the phone in stereoscopic 3D. Basic “head tracking” will be achieved by linking the mouse look in the games with the gyroscopic sensors of your phone.

There are many applications available to achieve the above mentioned and we will look at a few options available, comparing features, performance and price. All of the mentioned software have free trial versions available in the event you want to give them a try. All you will need is a smartphone (iPhone or Android), a PC capable of running some Direct X 9 3D games and a Google cardboard compatible headset (one with head-straps will work best).

All my testing was done on an iPhone 6S, a 2012 MacBook Pro Retina (Nvidia GeForce 650M 1GB) running windows 7 using Boot Camp and a SensofinityVR headset.

The games I used to test were Doom (original), QuakeHD, Dear Esther, Subnautica, Minecraft and Fallout New Vegas.

We will be looking at 3 different products (All of which consist of a phone app and a server windows application) that stream computer games to your phone and also link the games mouse input to the phones gyroscopic sensor. They are TrinusVR, KinoVR and IntugameVR.

First let us look at Tridef3D, a software product that will be required for the best results by all the before mentioned VR Streaming software products.It converts the game screen image into stereoscopic 3D before it is streamed to the phone.

Tridef3D

As mentioned above Tridef3D converts any Direct X 9/10/11 game into stereoscopic 3D, and I can say this software works great. Just note that its website states that it does not support VR headsets, but this is not the case if you enable windowed mode using this script. Tridef3D sells for $39.99 directly on the company site, however there is a free trail version available.

Most of the games I tested worked best in windowed mode except for Doom and QuakeHD, which only worked in full-screen mode.

Now let us have a look at the VR streaming software options. Firstly with all the mentioned software products, one of the most important things to configure correctly is mouse sensitivity. This is extremely important as getting this wrong can result in slow or jerky head-tracking which can cause the user to feel sick.

TrinusVR

Of the 3 products looked at TrinusVR was by far the best from an interface and general usage perspective. I also found it to be the most stable with the least amount of issues. At the time of my testing there was however no support for USB tethering in iOS.

I did experience issues connecting the phone to the hotspot created by the TrinusVR server software, and it appears that the phone is not assigned an ip address.

When I connected the phone to my MacBook via my home Wi-Fi network performance was extremely slow and unplayable.

I got around these issues by creating a Wi-Fi hotspot on my phone and connecting my MacBook to it. The server software and client app could then see each other and performance was really good and games highly playable. This configuration delivered the best results of all the tests performed.

Just note that in the TrinusVR server settings, on the Main tab, there is an option called “Capture mode”. For most games the best results are achieved by setting this to “Fast”, except for Minecraft that only works when this is set to “Compatibility Mode”.

TrinusVR sells for $9.99 on the respective App Stores (Apple App store and Google Play Store), but as mentioned earlier trial versions are available and the server software can be downloaded for free from the company website.

KinoVR

KinoVR does claim to support USB tethering in iOS, however in practice the results were far from perfect. The client app continuously disconnects from the server software every 15 seconds or so and then takes approximately 5 seconds to reconnect, thus rendering this feature unusable.

When connecting the phone to my MacBook via my home Wi-Fi network the performance was good, even with a good level of graphic details configured in the games.

KinoVR is however found lacking from a user interface and ease of use perspective.

KinoVR Pro sells for $9.99 on the respective App Stores (Apple App store and Google Play Store), and once again there is a free trail version. The server software is freely available here.

IntugameVR

Of all the VR streaming software I tested, IntugameVR is the only one I could not get to work properly. It does not support USB tethering in iOS so once again I configured it to connect over Wi-Fi. Irrelevant of what setting configuration I used the image rendered to the phone display was distorted and squashed. I cannot comment on the performance of this product, as I just could not get it working in any way that was even remotely usable.

IntugameVR Premium is also available on the respective App Stores (Apple App store and Google Play Store) for $9.99 with a free trial version also available. The server software is once again available for free from here.

So given all this, what were my findings? And would I recommend this as a low-cost VR solution?

Well, as long as you do not expect an experience on par with the Oculus Rift or HTC Vibe, you might be pleasantly surprised. Given the low cost of giving this a try, assuming that you have either an iPhone or Android smartphone and utilize the trial versions of the software products mentioned, the cost of this experience will add up to $10 for a Google cardboard compatible headset. Although I would recommend splashing out and getting a plastic headset with padding and better head straps, which you should still be able to pick up for under $20. This will greatly improve the experience from a comfort and usability perspective.

Many people have not had the opportunity to try a premium VR product, such as the Oculus Rift, HTC Vibe or PlaystationVR, and this solution is a great deal more accessible and affordable.

So my recommendation is to give it a try. Who knows it might even convince you to invest in one of the premium VR products available at the moment.

Watch out for DIY VR Part 2, which will be coming soon. In Part 2 I will show how to construct a custom-built VR headset, but in the meantime a few other posts are lined up for your reading pleasure.

DIY VR – Part 1

FITBIT CHARGE 2

In a previous post I took a look at the Fitbit Flex and the Fitbit Charge HR, which were the two fitness trackers I had previously used. So due to a misadventure (I took a swim with my non waterproof Charge HR) I was in the market for a new Fitbit, and because I loved the Charge HR I decided to give its brand new successor, the Charge 2, a try.

So firstly the Charge 2 is once again not waterproof, it is however water resistant and should be able to withstand splashes, rain and sweat. This is a shortcoming I really wish they would have addressed. The second shortcoming is that the big bright beautiful new screen is very prone to scratches. Now that we have the bad out the way let us take a look at the good.

All the standard functionalities of the Charge HR are present in the Charge 2, such as a heart rate monitor, stop watch, as well as step, floors climbed and calories burned counters. Some functions have also been enhanced, such as the call notification with the Charge HR which now with the Charge 2 also shows text messages received as well as calendar reminders.

Various exercise modes have also been added (such as run, bike, interval training, etc.) which can easily be activated due to the larger screen and can also be customised.

The biggest improvement that was included, and which I love, is the connected GPS functionality. This is where the Fitbit uses your phones GPS to map out runs and bike rides. This can be configured to push straight to Strava. I use this functionality numerous times a week on runs and mountain bike rides and it is great not having to mess around with your phone to get Strava started before you start running or cycling.

I really am a fan of Fitbit, this is now my 3rd fitness tracker from them and I think the Charge 2 offer enough improvement over the Charge HR to make it a worthwhile upgrade.

FITBIT CHARGE 2

Fitbit

I have been a loyal Fitbit user since 2013 and I love their devices and ecosystem. They are easy to use and very durable.

Flex

Approximately 3 years ago I received a Fitbit Flex as a gift and I loved the device, but it had one major flaw, which is also the reason why I no longer have it. The mechanism by which the strap locks on is completely inadequate and while I was in Seattle I actually lost it because the strap came loose.

ChargeHR

While in the US I got a Fitbit Charge HR, which has a strap similar to most wristwatches, which is a lot more secure than that of the Fitbit Flex. It also has various additional features such as a heart rate monitor and floors climbed counter.

There are a lot of things I like about Fitbit in general. They are not bound to any mobile ecosystem and works on Android, IOS and Windows Mobile. I also like the Fitbit community with badges that can be earned for certain milestones based on things like steps and floors climbed and also the challenges that can be entered against friends.

Both the Fitbits I have owned were rubberized, which make them feel rugged and durable. While mountain biking I am never scared that the device might get smashed or damaged, as would be the case with something that has a large screen (such as the Apple watch or even the new Fitbit Blaze).

It is important to note that except for the Fitbit Blaze, none of the other Fitbit devices are smart watches, they are fitness devices. And if that is what you are looking for, I would really recommend Fitbit. 

Fitbit

FODA Mini Quadcopter

Numerous mini quadcopters are currently available so I decided to give one a try. As far as I could tell the feature set of all the mini quadcopters are very similar as are their prices.
I decided on the FODA Mini Quadcopter, for no particular reason other than it being very widely available. The FODA mini quadcopter is available in four colours – blue, yellow, green and white.

Box

The box contains the tiny quadcopter, the remote control, an extra set of blades, a protection cover to protect the blades during flight, a charging cable and an instruction manual.

The quadcopter is tiny, measuring in at a length and width of just under 5cm and a height of just under 2cm.

Controlling the quadcopter is quite difficult as the controls (especially the blade speed control) is extremely sensitive. Additionally these mini quadcopters do not have the built-in auto stabilisation functionality as with larger quadcopters, so learning to fly it takes a fair amount of practise and the quadcopter is very sensitive to any air movement.
After spending about 30 minutes playing with the tiny quadcopter I finally got the hang of it and I can say the quadcopter is quite resilient as I crashed it a few times and it took no damage.

quad

A close inspection of the quadcopter shows how truly amazing the little device really is, from the tiny motors to the fact that it contains a rechargeable battery is truly unbelievable.

Untitled

I would recommend the FODA mini quadcopter for anyone interested in quadcopters who do not want to spend a great deal of money. These mini quadcopters are in no way a real reflection of the larger, and much more expensive quadcopters, but they do provide a basic and inexpensive sneak peek at the mechanisms and controls of these type of devices.

I found learning to fly the mini quadcopter challenging and fun, and for the price I recommend giving one a try.

FODA Mini Quadcopter

Google Cardboard

OLYMPUS DIGITAL CAMERA Cardboard cardboard

I recently purchased a Google Cardboard even-though my expectations for this little cardboard gadget were far from high. But to my amazement my pre-perceived ideas turned out to be completely wrong.

The item ships as a flat cardboard envelope, which you simply open, tear off some indicated bits and then fold as instructed to form the headset (I did have to use a bit of tape to get it to hold together). There are 2 lenses, 2 strips of Velcro and some magnets already fitted on the cardboard, so very little assembly is actually required.

After the headset is folded your phone can be placed into the front of the headset, which then acts as the screen.

Cardboardcardboard2

The Google Cardboard utilises the phone to run its apps as well as utilising its accelerometers and gyroscopes for head tracking.

Various apps are available that utilises the headset on the Google Play Store and even on the Apple App Store. I used my iPhone with the headset and it worked perfectly except for the slide magnet button that can be utilised with Android phones on the side of the headset, which did nothing with the iPhone.

Just note that although the Apple App Store has very little in the line of Google Cardboard specific apps, all FIBRUM VR apps work perfectly with the Cardboard headset.

The headset provides a true stereoscopic 3D effect, which is amazing given that it is simply a piece of cardboard with 2 lenses. Additionally the head tracking is truly surprising! And is far more accurate than I could have ever expected.

The best apps that I tried using my iPhone were:

  • Sisters (this is a first person horror experience)
  • War Of Words (this is a graphic representation of Siegfried Sassoon poem “The Kiss” based in World War 1)
  • FIBRUM Crazy Swing VR (A VR Swing-chair theme park ride)
  • FIBRUM Roller Coaster VR (A VR Roller Coaster)

For the price Google Cardboard is truly remarkable and is the cheapest way to experience stereoscopic 3D at your home.

I highly recommend picking up a Google Cardboard, there are very few things that can provide so much entertainment for such a small price.

Google Cardboard