Game Operation

So you're all set, it's time to try it out in-game. Stick your EDTracker on your noggin and let's go!

The EDTracker device pretends to be a joystick, so any game that allows you to map an analogue joystick to a head-look feature should work. Additionally, if your game only supports protocols such as FSX, TrackIR or FreeTrack, you can use the 3rd party Open Source software, Opentrack, to take your joystick input from EDTracker and emulate those protocols.

Instructions are obviously going to be very specific to the game in question, but in general you will have at least 2 axes that you can map for head looking. Up/down (called pitch) and left/right (called yaw). Roll, where you tilt your head side-to-side, isn't often very useful so if often not a mappable axis, even though the EDTracker does report it.

In your game's control setup, choose the pitch or up/down axis and choose the Y axis of the EDTracker device. If it asks you to move the joystick axis in question, look up or down when prompted.

Repeat the process for the yaw (or left/right) axis - this is the X axis on your EDTracker. Again, look left or right if you're prompted to move the joystick in the required direction.

Deadzone settings shouldn't really be necessary but if you want, you can set a little deadzone to make the device 'snap' to dead ahead. This can feel offputting, so try it and see how it feels for you.

Some games only enable headlook after a button or key has been pressed, so check if this is the case.

Windows USB Controllers

The device doesn't need calibrating in windows like some joysticks, because the zero point of the axes (ie. 'dead centre') can be reset with the press of a button. With real joysticks, variance in manufacturing tolerances and wear on internal components over time can mean that despite being set dead-central, the stick can report non-zero values when at rest; by calibrating in windows, your PC can cater for this by offsetting the reported values from the stick. There's no need to do this on the EDTracker because you can always make it reset to dead-centre with a quick press of the button on the device.

Settle period

After powering up (plugging in), the EDTracker will take a few seconds before it starts reporting values. This is because during the initial period after powering-up, the accelerometer and gyroscope requires time to settle and some quite spurious values are reported during the early moments of use. During this settle period, the indicator LED on the Arduino will flash rapidly for about 10 seconds. When finished settling, the LED will start flashing slower.

Recentering

If over a period of play you find that dead-centre is drifting off to one side, you can reset the EDTracker with a quick button press. Look straight ahead (ie. where you WANT dead ahead to be). Press the button and hold your head still for approximately 2 seconds. The EDTracker will reset its internal offsets and start report zero for your current head position - you should be back to where you want to be.

Axis creep over time is unavoidable on the MPU-6050 accelerometer/gyroscope unit because it does not include a magnetometer, and the yaw axis has no frame of reference (because gravity is pulling straight down along the axis, unlike the other two where gravity is always applying across them). However, one of the design goals was always to get the axis creep to an acceptable limit of at least 30 minutes gameplay between resets - this is perfectly achievable with calibration, and I've even had gaming sessions of up to an hour without needing to reset.

If you find axis creep is very pronounced, it is more than likely down to poor calibration (assuming you haven't fiddled with the code anywhere). Go back and repeat the calibration process, and try again.