Hardware Considerations


There are many different pointer devices and they have been around for a long time and have evolved as computing has evolved.  The more recent standard physical connection of these devices to a computer system has been serial or latterly USB.  In the most simplest form when a pointer device is used it sends to the computer an x and y co-ordinate positional data.  For a device not overlaid or related to the video output, such as a mouse, the co-ordinate data is relative to its current position.  For a pointer device related in someway to the video output the co-ordinate data indicates the absolute position relative to the video.

In the early days of pointer devices, the manufacturers had to supply drivers with the devices, but eventually some standards evolved that allowed a single driver to support a common device, such as a mouse, such that you could plug in the device and expect it to work without having to install a driver.

For touch screen type devices this standard took a lot longer to evolve and you needed to install a specialised driver supplied with the device.

Although this is still the case with serial devices the industry did eventually settle on a USB driver standard called HID - Human Interface Device - such that various operating systems could ship a standard HID driver that would support mice, keyboards, touchscreens, digitizers, pens etc.  This allowed for the term Plug and Play - the notion being that you plugged it in and it worked!  This is possible because a PnP device exchanges some information with the PnP manager to help it select the correct driver. If it indicates it is HID compatible then the HID driver is given control of the device. The HID driver will then read information from the device (as held in the HID Report Descriptor) and this will pass device characteristics to the HID driver to support as required.

As it stands, old USB devices are unlikely to be HID compatible, and may still require a driver, but more modern ones, especially multi-touch hardware, will be HID compatible and will utilise the native HID driver supplied with the OS.

Microsoft, and hence Windows desktops, fully embraced the touch revolution, and therefore their HID driver supports most pointing devices and touch functions, including multi-touch and gestures. Regarding the other mainstream operating systems, not all have fully embraced touch type devices and still require drivers to be installed to offer full functionality and this is true of Mac OS X, Windows CE, Solaris and Linux, albeit there are a number of Linux enthusiast maintaining a Linux HID driver that tries to handle multi-touch hardware and offer some degree of gesture support, but it is not as seamless as Windows desktop support.

UPDD is typically used in cases whereby old legacy pointer devices are being used in modern operating systems where manufacturers driver do not exist or to implement full touch functionality in systems that do not support it with their native drivers. 

When UPDD version 6 is used it registers itself for a given USB device (by specifying a USB vendor and product - or range of) such that when the device is plugged in or discovered on the system the PnP manager will select UPDD to handle the device.  If the device is known to be HID then UPDD will read the HID Report Descriptor and implement the functionality to match the capabilities of the device.

Given that Windows implements full support for touchscreen then most modern devices, when plugged into a Windows system, will present a HID report descriptor that describes the full functionality of the touch device such as multi-touch capabilities, number of stylus etc. However, when plugged into non Windows systems, some devices present a different HID Report Descriptor, such that the device will still function but as a single touch, mouse like device.  In these cases the HID report descriptor information held in the device is of no use to the driver.  To cater for this situation we have created a HIDRD tool that can be run on a Windows system to read the full HID Report Descriptor to a file that can be shipped with the driver.  When a device is being handled by UPDD if the driver finds one of the file based HIDRD that relates to the device it uses the information in the file rather than read it from the device.  Based on information held in the HIDRD file, if the device is capable of working in a multi-touch mode the driver will query the number of stylus supported and also request that the device operate in MT mode.  This exchange with the device is often sufficient for the device to switch back into multi-touch mode thus restoring full touch functionality that can then be supported by the UPDD driver.

In cases where a multi-touch device is to be supported in a non-multi-touch aware operating system whereby the device presents itself differently than when plugged into Windows we would like to be supplied the Windows HID report descriptor in a file.  The required file can be generated as follows:

  • Download the utility from here and extract the contents to a folder and run gethid.exe.
  • This will present a dialog listing all the discovered USB devices as per this example:

  • Select the touchscreen or pointer device and press GET.  This will pass back the VID/PID to our server that will generate a 'signed' driver that can be used to handle the device. The 'driver' is automatically installed ,the HID Report Descriptor is written to a desktop file and the driver then unloads.  Once unloaded the original driver will regain control.
  • Email the file to support@touch-base.com or your Touch-Base contact.

 

Search