Table of Contents
UR-98 - UR98 (TR88L803) head tracker driver
Option "Device" "devpath"
UR-98 is an XFree86 input driver for the Union Reality
The UR-98 driver functions as a pointer input device,
and can be used either as an additional input device or as the X server's
core pointer. The driver provides support for the three axes, throttle and
four buttons of the controller. If mapped as the core pointer the headtracker
provides headtracking to try and place the mouse cursor where you look.
As a secondary input device the unit can be used for gaming, for example
to provide the look up/down and the turn in quake, and with the Z axis
bound to ack/forward to provide movement control.
The default mapping maps
left-right movement to X, up-down movement to Y and near/far movement to
the Z axis. The throttle is mapped as the fourth axis by default but can
also be mapped as button 5.
For use in "head only" mode the Z axis can be
mapped as a button. This allows the user to select objects with head/neck
movement alone but takes some practice to use well.
Reality UR-98. While this is a joystick driver the behaviour is absolute
so this driver is not useful for true joystick interfaces.
Please refer to XF86Config(5)
for general configuration details
and for options that can be used with all input drivers. This section only
covers configuration details specific to this driver.
The following driver
options are supported
The "HeadButton" option
is currently not implemented.
- Option "MinX" "integer"
- Set the left hand X value
from the headgear, for calibration.
- Option "MaxX" "integer"
- Set the right
hand X value from the headgear, for calibration.
- Option "MinY" "integer"
- Set the top Y value from the headgear, for calibration.
- Option "MaxY" "integer"
- Set the bottom Y value from the headgear, for calibration.
- Option "MinZ"
- Set the nearest Z value from the headgear, for calibration.
- Set the furthest Z value from the headgear, for calibration.
- Option "MinT" "integer"
- Set the low throttle value from the headgear, for
- Option "MaxT" "integer"
- Set the high throttle value from the
headgear, for calibration.
- Option "Screen" "integer"
- The screen to attach
to the headgear when running with multiple screens. The default is screen
- Option "Device" "string"
- The joystick port that is attached to the headgear
interface. This is usually /dev/input/js0. The digital port is not supported
due to lack of documentation.
- Option "DeviceName" "string"
- Set the X11 device
name for the headgear. This defaults to HEAD.
- Option "PortraitMode" "string"
- Set the display orientation. The default is "landscape" but you can rotate
the screen clockwise ("portrait") or anticlockwise ("portraitCCW").
- Swap the X and Y values on the display. The default is
- Option "Button5" "boolean"
- Map the throttle as a button instead of
axis 4. For some gaming applications this can be more useful. The default
is to map the throttle as axis 4.
- Option "HeadButton" "boolean"
- Map the
Z axis as button 1. This defaults to false.
- Option "HeadThresh" "boolean"
- Set the distance that is held to be mouse down.
- Option "HeadLock" "boolean"
- Set the range of depth around the mouse down point where mouse x and y
movement is locked out. Set to zero to disable.
The hardware or kernel driver has some idiosyncracies.
Notably on kernel initialization the interface occasionally gets into a
state where the readings rapidly cycle left-right-left-right or top-bottom-top-bottom.
In those cases it seems to be necessary to unload the driver, unplug, replug
and reload the joystick drivers. Once it initializes sanely it remains
If the device refuses to work check the gray/black cables are plugged
into the right ports on the unit. Be careful about this as crossing the
cables can lead to the device failing with a nasty burning electronics
smell. The author writes from direct experience.
This driver is currently
Authors include... Alan Cox
Table of Contents