Meta

Geek Stuff

I recently had the privilege of a two-week holiday in New York City. During this time I visited Nintendo World (located in the Rockefeller Center) and it was a great experience. There were a lot of amazing displays, showing examples of every Nintendo console ever made and even a Gameboy that was damaged in a bombing during the Gulf war that was still functioning. Here are some photos:

If you are ever in New York, I would recommend going to have a look.

Here are some other photos from the trip:

While there I also picked up a few things that I will be covering on the blog over the next few months:

Recently my Mad Catz R.A.T. 5 died after several years of great service, so I found myself in the market for a new mouse. After shopping around I decided on the Razer Mamba Tournament Edition as it is a larger form factor mouse which I find more comfortable.

From a feature perspective it measures up against the R.A.T.5 as follows:

R.A.T. 5

Mamba TE

Year Released

2010

2015

DPI

Adjustable up to 5600dpi

Adjustable up to 16000dpi

Buttons

8

9

Connectivity

Wired USB (braided cable)

Wired USB (braided cable)

Weight

Adjustable up to 150g

133g

Sensor

Lazer

5G Lazer

Additional Features

Adjustable length, Aluminium Chassis, Removable Thumb Rest

RGB (Chroma, configurable)

The Mamba TE does offer a lot less as far as configurability of the mouse’s physical attributes (e.g. weight and length) is concerned, however I do find it extremely comfortable. It is fractionally lighter than the R.A.T. 5 at its heaviest configuration (17g lighter) but in all honesty I cannot feel a meaningful difference. I find that the Mamba TE does feel like a more refined product, which is to be expected with a product 5 years newer.
I loved the R.A.T.5 and I loved that it was built like a tank, however I am really enjoying the feel of the new mouse and it also looks good, especially if you enjoy RGB.

The leap motion is a USB connected input device like no other. It allows user input through hand motion and gestures without any physical contact between the users’ hands and the device.

The Leap motion consists of a small flat device which is placed on the desk in front of your screen and to use it you simply hold and move your hands over it. The Leap motion contains Infra-Red Cameras and LEDs to track the position of hands as well as hand gestures.

It is a very interesting experience especially when combined with VR (I will cover this in a post at a later time).

The device can track both the user’s hands simultaneously, which results in a great and seamless experience. The included tech demos are also very impressive.

Here is a video showing the device in action:

The Leap motion is a bit of a novelty device and it’s won’t be replacing your mouse and keyboard any time soon. Also note that the sensing area in which your hands need to be isn’t that big, which is a bit restricting, however it does provide a great tool for experimentation with alternative ways of computer interaction.

I have some big plans for the device with my DIY VR headset version 2 in the future.

It is also worth mentioning that the Leap Motion prices have dropped since launch and I managed to pick one up from amazon for just over $60 when I was in the US last year.

15 Years ago I wrote a small game called Hellspawn and I rediscovered it again when I was going through some old backup discs. It is a top down shooter and was developed in Borland C++ Builder (I think version 6). It was a very basic game (especially looking back now) from when I was still a very inexperienced developer, still studying to get a degree.

In a previous post, DIY VR Part 1, we took a look at apps that allowed a user to stream PC games to a smartphone in stereoscopic 3D, which could then be used with a Google Cardboard compatible headset to experience VR.

This worked well, however the apps examined in the previous post did not support or were not optimized for games specifically designed for SteamVR. For SteamVR to start up a compatible HMD (Head Mounted Display, like Oculus Rift or HTC Vive) needs to be detected, something the apps covered previously did not support, with the exception of TrinusVR which does support this, however it does not support USB tethering with iOS which has a significant negative effect on the experience.

Today we will look at an app that does fully supports this functionality, iVRy.

iVRy is an iOS app that allows SteamVR games to be streamed to an iPhone, and as with the previously mentioned apps, utilizes the phone’s gyroscope and accelerometers for head tracking and movement.

iVRy comprises of a app that is installed on your iPhone and a SteamVR HMD driver to be installed alongside SteamVR on your PC.

The iPhone is then connected to the PC either via Wi-Fi or USB (preferably USB as the results are greatly improved). The next step is to start the iVRy app on the phone and then lastly launch

SteamVR (which will detect the phone as a compatible HMD) and you are up and running.

The app has various settings to optimally configure your VR experience, such as lens distortion correction and field of view settings, with a large list of Google Cardboard Compatible Headsets preconfigured for ease of use.

Another feature of the app is that it auto adjusts image quality to ensure a high frame rates, reducing VR sickness.

iVRy supports a lot of SteamVR titles, working with any game that does not require motion controls, so any game that supports a traditional controller should work. Saying this a controller is pretty much required and any Steam compatible controller will work.

iVRy has a free trial version that does not limit play time, but reduces color saturation after 5 minutes of play time, making the image appear in shades of grey. To unlock the full premium version of iVRy costs $6.99, which removes the 5 minute limitation.

If you are an Android user a similar app is available called VRidge by RiftCat, which costs $14.99. It does however offer a great deal more functionality, thus the higher price.

Now on a related topic, I recently had the opportunity to play around with a HTC Vive at the Microsoft Store at NorthPark Center in Dallas Texas, and it was an amazing experience. I played through a series of experiences, starting with a tutorial based on the game Portal and then flowing into The Blu, AudioShield and finally Space Pirate Trainer. The experience was extremely immersive and I got goose bumps, it was truly mind blowing. The motion controls and room tracking of the Vive work extremely well and helps greatly with the immersion. If you ever have an opportunity to use a HTC Vive I would highly recommend it.

While I was in Dallas I also went to see some interesting sights, like the Oculus VR Dallas offices, where John Carmack is based.

Now for a quick update on the DIY VR Headset Version 2. I have acquired the parts for the new headset, including two 1920×1280 (60 Hz) 3.5inch (89mm) displays (one for each eye) and a Leap Motion, which I will use to implement motion controls. I have decided for the version 2 to use two smaller independent displays mounted in portrait mode (similar to what is done in the HTC Vive and Oculus Rift, post Development Kit 1 which used one screen).

I will also look at using iVRy with the Leap Motion to get motion controls working in Steam VR. So watch this space, some exciting things are coming.

Dancing Barefoot is a collection of memoirs by Wil Wheaton in the form of five short stories. The stories are all quick and enjoyable reads covering topics of joy, sadness and self discovery, Wil experienced throughout his life. I really like Wil’s writing style and I am a regular reader of his blog WilWheaton.net. If you’re familiar with Wil’s blog you would pretty much know what to expect from Dancing Barefoot.

The book is a very pleasant, light and quick read and can easily be finished in a single sitting, ideal for a long flight. I really enjoy short stories in general and Dancing Barefoot is no exception, I would highly recommend it if you are looking for some light hearted-feel good entertainment.

If you enjoyed this book also give Wil’s other book Just a Geek, which I covered in another blog post, a try.

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:

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.

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:

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:

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.

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.

Connecting headset to PC and setting up software

To connect the headset to your PC do the following:

Plug the DC adapter into mains power.

Plug the USB connector into an available USB port in your PC.

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