User:Diego Moya/Technology of computer mice

The computer mouse was invented by Douglas Engelbart at the Stanford Research Institute in 1963, and since then has undergo a variety of changes in technology to make it more precise, robust, cheap and versatile.

Early mice
Douglas Engelbart at the Stanford Research Institute invented the mouse in 1963 after extensive usability testing. Several other experimental pointing-devices developed for Engelbart's oN-Line System (NLS) exploited different body movements — for example, head-mounted devices attached to the chin or nose — but ultimately the mouse won out because of its simplicity and convenience. The first mouse, a bulky device (pictured) used two gear-wheels perpendicular to each other: the rotation of each wheel translated into motion along one axis. Engelbart received patent US3541541 on November 17 1970 for an "X-Y Position Indicator for a Display System". At the time, Engelbart envisaged that users would hold the mouse continuously in one hand and type on a five-key chord keyset with the other.

Mechanical mice
[[Image:Mouse-mechanism-cutaway.png|thumb|right|Operating a mechanical mouse.  1: moving the mouse turns the ball. 2: X and Y rollers grip the ball and transfer movement. 3: Optical encoding disks include light holes. 4: Infrared [[Light-emitting diode|LEDs]] shine through the disks.

5: Sensors gather light pulses to convert to X and Y velocities.]]

Bill English, builder of Engelbart's original mouse, invented the so-called ball mouse in 1972 while working for Xerox PARC. The ball-mouse replaced the external wheels with a single ball that could rotate in any direction. It came as part of the hardware package of the Xerox Alto computer. Perpendicular chopper wheels housed inside the mouse's body chopped beams of light on the way to light sensors, thus detecting in their turn the motion of the ball. This variant of the mouse resembled an inverted trackball and became the predominant form used with personal computers throughout the 1980s and 1990s. The Xerox PARC group also settled on the modern technique of using both hands to type on a full-size keyboard and grabbing the mouse when required.

The ball mouse utilizes two rollers rolling against two sides of the ball. One roller detects the horizontal motion of the mouse and other the vertical motion. The motion of these two rollers causes two disc-like encoder wheels to rotate, interrupting optical beams to generate electrical signals. The mouse sends these signals to the computer system by means of connecting wires. The driver software in the system converts the signals into motion of the mouse pointer along X and Y axes on the screen.

Ball mice and wheel mice were manufactured for Xerox by Jack Hawley, doing business as The Mouse House in Berkeley, California, starting in 1975.

Based on another invention by Jack Hawley, proprietor of the Mouse House, Honeywell produced another type of mechanical mouse. Instead of a ball, it had two wheels rotating at off axes. Keytronic later produced a similar product.

Modern computer mice took form at the École polytechnique fédérale de Lausanne (EPFL) under the inspiration of Professor Jean-Daniel Nicoud and at the hands of engineer and watchmaker André Guignard. This new design incorporated a single hard rubber mouseball and three buttons, and remained a common design until the mainstream adoption of the scroll-wheel mouse during the 1990s.

Another type of mechanical mouse, the "analog mouse" (now generally regarded as obsolete), uses potentiometers rather than encoder wheels, and is typically designed to be plug-compatible with an analog joystick. The "Color Mouse," originally marketed by Radio Shack for their Color Computer (but also usable on MS-DOS machines equipped with analog joystick ports, provided the software accepted joystick input) was the best-known example.

Mechanical or opto-mechanical
A mouse described as simply "mechanical" has a contact-based incremental rotary encoder, a system prone to drag and unrealiability of contact. Opto-mechanical mice still use a ball or crossed wheels, but detect shaft rotation using an optical encoder with lower friction and more certain performance.

Optical mice
An optical mouse uses a light-emitting diode and photodiodes to detect movement relative to the underlying surface, rather than moving some of its parts — as in a mechanical mouse.

Early optical mice
Early optical mice, circa 1980, came in two different varieties:


 * 1) Some, such as those invented by Steve Kirsch of Mouse Systems Corporation, used an infrared LED and a four-quadrant infrared sensor to detect grid lines printed with infrared absorbing ink on a special metallic surface. Predictive algorithms in the CPU of the mouse calculated the speed and direction over the grid.
 * 2) Others, invented by Richard F. Lyon and sold by Xerox, used a 16-pixel visible-light image sensor with integrated motion detection on the same chip and tracked the motion of light dots in a dark field of a printed paper or similar mouse pad.

These two mouse types had very different behaviors, as the Kirsch mouse used an x-y coordinate system embedded in the pad, and would not work correctly when the pad was rotated, while the Lyon mouse used the x-y coordinate system of the mouse body, as mechanical mice do.

Modern optical mice
Modern surface-independent optical mice work by using an optoelectronic sensor to take successive pictures of the surface on which the mouse operates. As computing power grew cheaper, it became possible to embed more powerful special-purpose image-processing chips in the mouse itself. This advance enabled the mouse to detect relative motion on a wide variety of surfaces, translating the movement of the mouse into the movement of the pointer and eliminating the need for a special mouse-pad. This advance paved the way for widespread adoption of optical mice. Optical mice illuminate the surface that they track over, using an LED or a laser diode. Changes between one frame and the next are processed by the image processing part of the chip and translated into movement on the two axes using an optical flow estimation algorithm. For example, the Avago Technologies ADNS-2610 optical mouse sensor processes 1512 frames per second: each frame consisting of a rectangular array of 18×18 pixels, and each pixel can sense 64 different levels of gray.

Laser mice
The laser mouse uses an infrared laser diode instead of an LED to illuminate the surface beneath their sensor. As early as 1998, Sun Microsystems provided a laser mouse with their Sun SPARCstation servers and workstations. However, laser mice did not enter the mainstream market until 2004, when Logitech, in partnership with Agilent Technologies, introduced its MX 1000 laser mouse. This mouse uses a small infrared laser instead of an LED and has significantly increased the resolution of the image taken by the mouse. The laser enables around 20 times more surface tracking power to the surface features used for navigation compared to conventional optical mice, via interference effects. While the implementation of a laser slightly increases sensitivity and resolution, the main advantage comes from power usage.

Power-saving in optical mice
Manufacturers often engineer their optical mice — especially battery-powered wireless models — to save power when possible. In order to do this, the mouse blinks the laser or LED when in standby-mode (Each mouse has a different standby time). This function may also increase the laser / LED life. Mice designed specifically for gamers, such as the Logitech G5 or the Razer Copperhead, often lack this feature in an attempt to reduce latency and to improve responsiveness.

A typical implementation in Logitech mice (eg. Cordless Mouseman optical) has four power states, where the sensor is pulsed at different rates per second: Some other mice turn the sensor fully off in the sleep state, requiring a button click to wake.
 * 1500 - full on condition for accurate response while moving, illumination appears bright.
 * 100 - fallback active condition while not moving, illumination appears dull.
 * 10 - Standby
 * 2 - Sleep state

Optical versus mechanical mice


Unlike mechanical mice, which can become clogged with lint, optical mice have no rolling parts; therefore, they do not require maintenance other than removing debris that might collect under the light emitter. However, they generally cannot track on glossy and transparent surfaces, including some mouse-pads, sometimes causing the cursor to drift unpredictably during operation. Mice with less image-processing power also have problems tracking fast movement, though high-end mice can track at 2 m/s (80 inches per second) and faster.

Some models of laser mice can track on glossy and transparent surfaces, and have a much higher sensitivity than either their mechanical or optical counterparts. Such models of laser mice cost more than LED based or mechanical mice.

As of 2006, mechanical mice have lower average power demands than their optical counterparts. This typically has no practical impact for users of cabled mice (except possibly those used with battery-powered computers, such as notebook models), but has an impact on battery-powered wireless models.

Optical models will outperform mechanical mice on uneven, slick, soft, sticky, or loose surfaces, and generally in mobile situations lacking mouse pads. Because optical mice render movement based on an image which the LED illuminates, use with multi-colored mouse pads may result in unreliable performance; however, laser mice do not suffer these problems and will track on such surfaces. The advent of affordable high-speed, low-resolution cameras and the integrated logic in optical mice provides an ideal laboratory for experimentation on next-generation input-devices. Experimenters can obtain low-cost components simply by taking apart a working mouse and changing the optics or by writing new software.

Inertial mice
Inertial mice use a tuning fork or other accelerometer (US Patent 4787051) to detect movement for every axis supported. Usually cordless, they often have a switch to deactivate the movement circuitry between use, allowing the user freedom of movement without affecting the pointer position. A patent for an inertial mouse claims that such mice consume less power than optically based mice, and offer increased sensitivity, reduced weight and increased ease-of-use.

3D mice
Also known as flying mice, bats, or wands, these devices generally function through ultrasound. Probably the best known example would be 3DConnexion/Logitech's SpaceMouse from the early 1990s.

In the late 1990s Kantek introduced the 3D RingMouse. This wireless mouse was worn on a ring around a finger, which enabled the thumb to access three buttons. The mouse was tracked in three dimensions by a base station. Despite a certain appeal, it was finally discontinued because it did not provide sufficient resolution.

A recent consumer 3D pointing device is the Wii Remote. While primarily a motion-sensing device (that is, it can determine its orientation and direction of movement), Wii Remote can also detect its spatial position by comparing the distance and position of the lights from the IR emitter using its integrated IR camera (since the nunchuk lacks a camera, it can only tell its current heading and orientation). The obvious drawback to this approach is that it can only produce spatial coordinates while its camera can see the sensor bar.

Double mouse
Double mouse allow for two mice to be used by both hands as input devices such as when operating various graphics and multimedia applications.

Connectivity and communication protocols
To transmit their input, typical cabled mice use a thin electrical cord terminating in a standard connector, such as RS-232C, PS/2, ADB or USB. Cordless mice instead transmit data via infrared radiation (see IrDA) or radio (including Bluetooth or WiFi), although many such cordless interfaces are themselves connected through the aforementioned wired serial buses.

While the electrical interface and the format of the data transmitted by commonly available mice is currently standardized on USB, in the past it varied between different manufacturers. A bus mouse used a dedicated interface card for connection to an IBM PC or compatible computer.

Serial interface and protocol
Standard PC mice once used the RS-232C serial port via a D-subminiature connector, which provided power to run the mouse's circuits as well as data on mouse movements. The Mouse Systems Corporation version used a five-byte protocol and supported three buttons. The Microsoft version used an incompatible three-byte protocol and only allowed for two buttons. Due to the incompatibility, some manufacturers sold serial mice with a mode switch: "PC" for MSC mode, "MS" for Microsoft mode.

PS/2 interface and protocol
With the arrival of the IBM PS/2 personal-computer series in 1987, IBM introduced the eponymous PS/2 interface for mice and keyboards, which other manufacturers rapidly adopted. The most visible change was the use of a round 6-pin mini-DIN, in lieu of the former 5-pin connector. In default mode (called stream mode) a PS/2 mouse communicates motion, and the state of each button, by means of 3-byte packets. For any motion, button press or button release event, a PS/2 mouse sends, over a bi-directional serial port, a sequence of three bytes, with the following format:

Here, XS and YS represent the sign bits of the movement vectors, XV and YV indicate an overflow in the respective vector component, and LB, MB and RB indicate the status of the left, middle and right mouse buttons (1 = pressed). PS/2 mice also understand several commands for reset and self-test, switching between different operating modes, and changing the resolution of the reported motion vectors.

Extensions: IntelliMouse and others
A Microsoft IntelliMouse relies on an extension of the PS/2 protocol: the ImPS/2 or IMPS/2 protocol (the abbreviation combines the concepts of "IntelliMouse" and "PS/2"). It initially operates in standard PS/2 format, for backwards compatibility. After the host sends a special command sequence, it switches to an extended format in which a fourth byte carries information about wheel movements. The IntelliMouse Explorer works analogously, with the difference that its 4-byte packets also allow for two additional buttons (for a total of five).

The Typhoon mouse uses 6-byte packets which can appear as a sequence of two standard 3-byte packets, such that ordinary PS/2 driver can handle them.

Mouse-vendors also use other extended formats, often without providing public documentation.

For 3D or 6DOF input, vendors have made many extensions both to the hardware and to software. In the late 90's Logitech created ultrasound based tracking which gave 3D input to a few millimeters accuracy, which worked well as an input device but failed as a money making product.

Apple Desktop Bus


In 1986 Apple first implemented the Apple Desktop Bus allowing the daisy-chaining together of up to 16 devices, including arbitrarily many mice and other devices on the same bus with no configuration whatsoever. Featuring only a single data pin, the bus used a purely polled approach to computer/mouse communications and survived as the standard on mainstream models (including a number of non-Apple workstations) until 1998 when iMac began the industry-wide switch to using USB. Beginning with the "Bronze Keyboard" PowerBook G3 in May 1999, Apple dropped the external ADB port in favor of USB, but retained an internal ADB connection in the PowerBook G4 for communication with its built-in keyboard and trackpad until early 2005.

Tactile mice
In 2000, Logitech introduced the "tactile mouse", which contained a small actuator that made the mouse vibrate. Such a mouse can augment user-interfaces with haptic feedback, such as giving feedback when crossing a window boundary. To surf by touch requires the user to be able to feel depth or hardness; this ability was realized with the first electrorheological tactile mice but never marketed.

Other unusual variants have included a mouse that a user holds freely in the hand, rather than on a flat surface, and that detects six dimensions of motion (the three spatial dimensions, plus rotation on three axes). Its vendor marketed it for business presentations in which the speaker stands or walks around. So far, these mice have not achieved widespread popularity.

Mouse speed
The computer industry often measures mouse sensitivity in terms of counts per inch (CPI), commonly expressed less correctly as dots per inch (DPI) — the number of steps the mouse will report when it moves one inch. In early mice, this specification was called pulses per inch (ppi). If the default mouse-tracking condition involves moving the pointer by one screen-pixel or dot on-screen per reported step, then the CPI does equate to DPI: dots of pointer motion per inch of mouse motion. The CPI or DPI as reported by manufacturers depends on how they make the mouse; the higher the CPI, the faster the pointer moves with mouse movement. However, software can adjust the mouse sensitivity, making the cursor move faster or slower than its DPI. Current software can change the speed of the pointer dynamically, taking into account the mouse's absolute speed and the movement from the last stop-point. Different software may name the settings "acceleration" or "speed" — referring respectively to "threshold" and "pointer precision".

For simple software, when the mouse starts to move, the software will count the number of "counts" received from the mouse and will move the pointer across the screen by that number of pixels (or multiplied by a factor f1=1,2,3). So, the pointer will move slowly on the screen, having a good precision. When the movement of the mouse reaches the value set for "threshold", the software will start to move the pointer more quickly; thus for each number n of counts received from the mouse, the pointer may move (f2 x n) pixels, where f2=2,3...10. Usually, the user can set the value of f2 by changing the "acceleration" setting.

Operating systems sometimes apply acceleration, referred to as "ballistics", to the motion reported by the mouse. For example, versions of Windows prior to Windows XP doubled reported values above a configurable threshold, and then optionally doubled them again above a second configurable threshold. These doublings applied separately in the X and Y directions, resulting in very nonlinear response. For example one can see how the things work in Microsoft Windows NT. Starting with Windows XP OS version of Microsoft and many OS versions for Apple Macintosh, computers use a smoother ballistics calculation that compensates for screen-resolution and has better linearity.