DIY Head Tracking using the Wii Remote


In this tutorial the development of a simple and cheap Head Tracking solution with inVRs will be presented. It covers the building of the required hardware for enabling head tracking, the configuration and building of the required software, as well as the development of the inVRs application which interprets the tracking data.

Since i'm writing this tutorial in my spare time i decided to continuously add tutorial steps via this wiki page.
For questions or suggestions you can contact me via email:

Video of final application

Step 0: Getting data from the Wii Remote

Before building the required hardware (and software) i want to describe how to obtain the data from your Wii Remote. Having this data available helps a lot during the construction of the tracking device.
Since the Wii Remote communicates its data via the bluetooth protocol you will need a bluetooth receiver. Many laptops already include these receivers, if you don't have one you can get a small USB bluetooth adapter for less than € 10 at nearly every computer store. In case you are working on a Linux system you probably should search for a list of tested devices (like: before buying such an adapter.
For reading the data from the Wii Remote via bluetooth we will need some piece of software. There are many libraries out there which do this job. In this tutorial the wiiuse library ( will be used. The advantage of this library is that it works on Windows as well as on Linux operating systems. Additionally it is supported by VRPN (, which will be used later in this tutorial for getting the tracking information into our application.

more following soon

Step 1: Building the required hardware

In this section the construction of the used input device will be described. This device is just a prototype, so there may be much better ways to design such a device. Anyways i want to describe the building of this device here so that everybody can rebuild the full tutorial. The design of this device is kept very simple for several reasons, the main reason is probably that i'm a software developer and not a technician :-). Another reason is that the device should be cheap and simple to reproduce.

The presented input device is a baseball cap which is assembled with two sets of infrared LEDs. The following materials are required to build the device:
  • 1x baseball cap
  • 1x switch
  • 1x battery mounting (AA)
  • 1x AA battery
  • 6x 940nm IR-LEDs (1.2V)
  • 1x 10 Ohm Resistor
  • cables

Furthermore you will need a soldering iron, some solder, some heat shrinkable tubing as well as two paper clips (approx. 5cm in size).

Building the IR assembly

In this section the construction of the IR assembly used for my tracking device is described. My initial idea was to use a single IR LED on each side of the cap. But after some testing i found out that the IR LEDs i used were too small to be detected by the Wii Remote at a distance larger than 1 meter. Thus i decided to assemble three IR LEDs together to achieve a higher tracking distance.

more following soon

Step 2: Building and configuration of the required software libraries

Step 3: Obtaining 3D position information from the tracking data

Step 4: Use Head Tracking information in an inVRs application