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

  • Mice
  • Digitizers
  • Tablets
  • Touchscreens
  • Touchpads
  • Joysticks

    Typical Uses for Input devices

  • General Navigation
  • Enable people suffering from disability or RSI to use computers
  • Handwriting authentication
  • Handwriting recognition
  • 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 necessary.


    BACK to PORTFOLIO BACK HOME