Saturday, July 31, 2010

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.[29] For any motion, button press or button release event, a PS/2 mouse sends, over aHere, 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.

In Linux, a PS/2 mouse is detected as a /dev/psaux device.

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).[30]

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

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

For 3-D (or 6-degree-of-freedom) 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 profitable product. In 2008, Motion4U introduced its "OptiBurst" system using IR tracking for use as a Maya (graphics software) serial port, a sequence of three bytes, with the following format:

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.[28]

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 orUSB. Cordless mice instead transmit data via infrared radiation (see IrDA) or radio (including Bluetooth), 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.

Mouse use in DOS applications became more common after the introduction of the Microsoft mouse, largely because Microsoft provided an open standard for communication between applications and mouse driver software. Thus, any application written to use the Microsoft standard could use a mouse with a Microsoft compatible driver (even if the mouse hardware itself was incompatible with Microsoft's). An interesting footnote is that the Microsoft driver standard communicates mouse movements in standard units called "mickeys".

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[27] but never marketed.

3D mice

Also known as bats,[23] flying mice, or wands,[24] these devices generally function through ultrasound and provide at least three degrees of freedom. 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.[25] 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 IRemitter using its integrated IR camera (since the nunchuk accessory 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.

In February, 2008, at the Game Developers' Conference (GDC), a company called Motion4U introduced a 3D mouse add-on called "OptiBurst" for Autodesk's Maya application. The mouse allows users to work in true 3D with 6 degrees of freedom.[citation needed] The primary advantage of this system is speed of development with organic (natural) movement.

A mouse-related controller called the SpaceBall™ [26] has a ball placed above the work surface that can easily be gripped. With spring-loaded centering, it sends both translational as well as angular displacements on all six axes, in both directions for each.

Inertial and gyroscopic mice

Often called "air mice" since they do not require a surface to operate, inertial mice use a tuning fork or other accelerometer (US Patent 4787051) to detect rotary movement for every axis supported. The most common models (manufactured by Logitech and Gyration) work using 2 degrees of rotational freedom and are insensitive to spatial translation. The user requires only small wrist rotations to move the cursor, reducing user fatigue or "gorilla arm". Usually cordless, they often have a switch to deactivate the movement circuitry between use, allowing the user freedom of movement without affecting the cursor 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.[22] In combination with a wireless keyboard an inertial mouse can offer alternative ergonomic arrangements which do not require a flat work surface, potentially alleviating some types of repetitive motion injuries related to workstation posture.

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.

The optical mouse technology was invented by Travis N. Blalock, Richard A. Baumgartner, Thomas Hornak, and Mark T. Smith at HP Labs.

Mechanical mice

Bill English, builder of Engelbart's original mouse,[11] invented the ball mouse in 1972 while working for Xerox PARC.[12]

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.

Mechanical mouse, shown with the top cover removed

The ball mouse has two freely rotating rollers. They are located 90 degrees apart. One roller detects the forward–backward motion of the mouse and other the left–right motion. Opposite the two rollers is a third one (white, in the photo, at 45 degrees) that is spring-loaded to push the ball against the other two rollers. Each roller is on the same shaft as an encoder wheel that has slotted edges; the slots interrupt infrared light beams to generate electrical pulses that represent wheel movement.

Each wheel's disc, however, has a pair of light beams, located so that a given beam becomes interrupted, or again starts to pass light freely, when the other beam of the pair is about halfway between changes. Simple logic circuits interpret the relative timing to indicate which direction the wheel is rotating. (This scheme is sometimes called "quadrature encoding" or some similar term by technical people.) The mouse sends these signals to the computer system via a data-formatting IC and the mouse cable. The driver software in the system converts the signals into motion of the mouse cursor along X and Y axes on the screen.

The ball is mostly steel, with a precision spherical rubber surface. The weight of the ball, given an appropriate working surface under the mouse, provides a reliable grip so the mouse's movement is transmitted accurately.

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

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

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.[18] 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.[19] In 1985, René Sommer added a microprocessor to Nicoud's and Guignard's design.[20] Through this innovation, Sommer is credited with inventing a significant component of the mouse, which made it more "intelligent;"[20] though optical mice from Mouse Systems had incorporated microprocessors by 1984.[21]

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.

Early mice

The trackball was invented by Tom Cranston, Fred Longstaff and Kenyon Taylor working on theRoyal Canadian Navy's DATAR project in 1952. It used a standard Canadian five-pin bowling ball. It was not patented, as it was a secret military project.[3]

Independently, Douglas Engelbart at the Stanford Research Institute invented the first mouse prototype in 1963,[4] with the assistance of his colleague Bill English. Engelbart never received any royalties for it, as his patent ran out before it became widely used in personal computers.[5]

The invention of the mouse was just a small part of Engelbart's much larger project, aimed at augmenting human intellect.[6]

The first computer mouse, held by inventor Douglas Engelbart, showing the wheels that make contact with the working surface

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".[7] 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.[8] The concept was preceded in the 19th century by the telautograph, which also anticipated the fax machine.

A Smaky mouse, as invented at the EPFLby Jean-Daniel Nicoud and André Guignard

The first marketed integrated mouse – shipped as a part of a computer and intended for personal computer navigation – came with the Xerox 8010 Star Information System in 1981. However, the mouse remained relatively obscure until the appearance of theApple Macintosh; in 1984 PC columnist John C. Dvorak dismissively commented on the release of this new computer with a mouse: "There is no evidence that people want to use these things".[9][10]