The mouse was invented by Douglas Engelbart of Stanford Research Institute in 1963. The first devices were bulky and used two gear wheels perpendicular to each other: the rotation of each wheel was translated into motion along one axis in the plane. By the early 1970s the external wheels had been replaced by a single internal ball that could rotate in any direction and whose motion was detected using perpendicular wheels housed inside the mouse’s body. This variant of the mouse resembled an inverted trackball.
The first PCs were equipped with the traditional user input device – a keyboard. Microsoft’s first PC-specific mouse, designed for use with the company’s word processing application, appeared in 1982. By the end of the 1980s, the inverted trackball style of mouse had become an essential for PCs running the GUI-based Windows operating system. It remained the predominant form of mouse used with personal computers through the 1990s.
The ball of an opto-electronic mouse is steel for weight and rubber-coated for grip. When the mouse is moved, the ball rotates, and as it does so it drives two rollers, one each for x and y displacement. A third spring-loaded roller holds the ball in place against the other two. These rollers then turn two disks with radial slots cut in them. Each disk rotates between a photo-detector cell, and each cell contains two offset light emitting diodes (LEDs) and light sensors. As the disk turns, the sensors see the light appear to flash, showing movement, while the offset between the two light sensors shows the direction of movement.
Also inside the mouse are a switch for each button, and a microcontroller which interpret the signals from the sensors and the switches, using its firmware program to convert them to X and Y velocities and translate them into packets of data which are sent to the PC. Serial mice use voltages of 12V and an asynchronous protocol from Microsoft comprised of three bytes per packet to report x and y movement plus button presses. PS/2 mice use 5V and an IBM-developed communications protocol and interface.