The present invention relates generally to computer pointing devices, and more specifically, to computer pointing devices that are capable of communicating using several different types of protocols or to those that use light-emitting diodes to generate positional information.
As graphical user interfaces (GUIs) for personal computers gain in popularity, use of associated computer pointing devices likewise increases. Computer pointing devices must use a particular communications protocol to communicate with its associated personal computer system. There are several communications protocols available. The use of any particular one depends upon the type of personal computer attached to the computer pointing device. For example, for IBM personal computers and compatibles, computer pointing devices commonly use an "M" protocol, developed by Microsoft Corporation of Redmond, Wash. or an "M+" protocol developed by Logitech of Fremont, Calif. or a "5-byte" protocol associated with Mouse Systems of Fremont, Calif. It is common for workstations using the UNIX operating system to communicate with pointing devices using the "5-byte" protocol. These protocols are applicable to asynchronous communications using an RS-232 compliant interface.
It is known to provide computer pointing devices with multiple protocols. Conventional computer pointing devices often use hardware switches or jumpers to set the desired communications protocol. Use of switches and jumpers is undesirable for several reasons. Providing switches and jumpers requires user access. The switches and jumpers are accessed through an aperture in a housing of the computer pointing device, or the pointing device includes features to allow a user to open the pointing device to make desired settings. Both of these solutions are undesirable from a manufacturing cost and a maintenance perspective. The addition of an aperture in a housing increases the manufacturing cost of a computer pointing device. Also, the more apertures that there are in a computer pointing device, the greater the exposure the internal components have to the environment, potentially decreasing the component reliability and decreasing the mean time between failures (MTBF).
Switches and jumpers are undesirable for another reason that relates to selection of proper settings by the user. It is often difficult for a user to determine the proper switch or jumper settings to achieve the desired configuration. Improper switch or jumper settings can result in improper operation, or nonoperability, of the computer pointing device.
It is also known to use software-controlled configuration options in computer pointing devices. A user selects a desired protocol from the available options by operating a configuration program. Proper attention to user-interface issues when designing the configuration program tremendously simplifies issuing commands to the computer pointing device over an asynchronous communications port.
There are drawbacks to the prior art configuration programs and computer pointing devices. In order to operate conventional configuration programs, the manufacturer must offer the computer program for the particular computer system using the computer pointing device. For platforms such as the widespread IBM PC-compatible system, many publishers compile their programs to operate on the platform in well-known fashion. For less popular platforms, suitable configuration programs are not as readily available. For computer pointing device configuration programs, it is particularly important to have a program designed for the particular platform that is issuing the configuration commands to the computer pointing device. One reason that this is true is because configuration programs interface to the computer hardware at a basic level. Specific commands to access and set values of particular registers are often necessary.
Another reason to have a platform-specific configuration program is that the configuration program often uses infrequently used commands in order to configure the pointing device, or to configure the communications port to allow the configuration program to issue commands to the computer pointing device. Computer pointing devices generally send signals to the associated computer. Sometimes the communications port through which the computer pointing device communicates to the associated computer is only a one-way channel. Such systems are incapable of issuing commands to the computer pointing device. Conventional configuration programs are useless if the associated computer cannot execute the configuration program or if the associated computer cannot issue commands to the computer pointing device.
Many conventional computer pointing devices use encoder wheels to translate movement of the pointing device into digital positioning signals for use by the computer system. There are at least two different types of encoder wheels: those that include periodic apertures and those with alternating dark and light radial stripes. In either case, an LED illuminates the encoder wheel and a suitably-positioned detector monitors the change in light intensity due to rotation of the wheel.
For apertured encoder wheels, positioning the detector on a side opposite from the LED provides "WON" and "OFF" signals according to movement of the computer pointing device. For striped encoder wheels, positioning the detector on the same side of the wheel as the LED provides a pulsating "HIGH" and "LOW" signal as light from the LED is more or less strongly reflected from the surface of the encoder wheel.
There are various advantages and disadvantages with each type of encoder. For the striped encoder wheel, it is important to maximize LED illumination intensity to permit error-free discrimination of the HIGH and LOW signals. As the illumination intensity falls, discrimination of the HIGH and LOW signals is more difficult. LED illumination invariably declines over the useful life of the computer pointing device. Slight misalignments in the optical path of the LED, encoder wheel and detector can introduce errors in translating the positioning signals as the illumination intensity decreases. It is difficult to detect these types of minor misalignments, or similar problems, with quality control checks and acceptance testing because the LED for each encoder is at its maximum intensity for a particular input current level.