A pointing device driver is the software layer between the device and the
operating system. If its doing the job well, you won't even notice its
handiwork. Wiggle your mouse (or other pointing device), do you see
the cursor move? That's your device driver. The driver translates between specific devices and a
general operating system. The OS only speaks in terms of higher level
code and data structures. The device just streams data.
The operating system needs to know:
coordinates, buttons, pressure information in OS coordinates
resource information (e.g. what port and addresses is the device using?)
Identity of the device
Each device talks in a specific language of its own.
Data format (baud rate, parity, stop bit)
Packet format (may or may not be standardized)
Identification and other custom information
The device driver sets the ports to enable communicate to a specific
device. It can then pass on the OS's identification requests and help the
OS allocate the device's resource settings within the OS.
Usually the device will send data in the form of Hex codes. The
driver decodes this HEX packet, does any necessary filtering of data, and maps the coordinates for use by the OS.
Because of the device driver, the OS can communicate with many different devices. The device driver can also expose controls for changing device settings, thus hiding the language barrier between the device and OS.
Some typical pointing input devices
Typical Uses for Input devices
Enable people suffering from disability or RSI to use computers
Pressure sensitive drawing applications
It is suggested to become
familiar with the specifications for the communication protocols,
chipset, and data format that your device is using. Determine what OS you want to use, and what type of connectors you've got.
A sample of working hardware for development of a device driver is absolutely