Most optical mouses use a camera to track the movement of the surface under the mouse. I wanted to compare the features and technology used by all the optical mouses I can. Here are my results.
There are several optical methods used by mouses. Here is a short over-view of the main methods:
The rest of this paper deals with camera-based sensing.
In regards to the algorithm used by the digital signal processor (DSP) in the sensor chip, Professor Berthold K.P. Horn of MIT emailed me this:
Enjoyed your
site about mice.
Ever wonder what makes it all work?
Many people think it has something to do with correlation.
Actually, the underlying technology is "Optical Flow" (*) worked out in
detail in http://csail.mit.edu/~bkph
This algorithm was *not* patented, so that all could benefit.
regards, Berthold K.P. Horn
(*) Actually the "Determining Optical Flow" paper solves a harder
problem, where the velocity need not be the same in different parts of
the image. The simpler version for "Fixed Flow" (where all parts of
the image move at the same speed) is described in http://csail.mit.edu/~bkph
The quality of an optical mouse is defined by how well it actually works. While some aspects (such as shape, size, weight, color, number of buttons, etc.) are personal preferences, we can actually compare the quality of other aspects, namely:
The optical sensor in the mouse is essentially a small digital gray scale camera. How big the image is helps determine how fast you can move the mouse and maintain accurate tracking. If the image processor in the mouse is able to handle all the data, bigger images are generally better.
Image sensor sizes vary from 16x16 pixels to 30x30 pixels.
The resolution of the mouse is determined by the optical properties of the focusing lens and the physical size of the image sensor. The mouse resolution is then further modified by the driver software on the computer, where the sensitivity of the mouse can be decreased by ignoring very small movements or increased by jumping more than one pixel on screen even though the mouse only moved one pixel on the desk.
The optical resolution of the mouse is usually given in CPI (counts per inch), but can also be given in pixels per inch or (somewhat erroneously) in DPI (dots per inch). Just keep in mind that this is how many optical sensor pixels per inch the camera sees, not how many screen pixels the pointer moves per inch of mouse movement.
The main advantage of higher resolutions is that the minimum physical distance needed to register as a mouse movement goes down. Usual mouse resolutions are 400 or 800 CPI.
Coupled with sensor size and resolution, how fast the camera takes pictures determines how far the mouse can be moved per second and not lose tracking.
Refresh rates are given in samples per second, Hertz, or (also somewhat erroneously) frames per second. As long as the image processor keeps up, faster refresh rates are better. Mouse refresh rates vary from 1500-7080 samples/sec.
The quality of the lens has an impact as blurry lenses distort and corrupt the image that the sensor sees, making it more difficult for the image processor. The light color can affect the contrast of the surface (red brings out details better than blue) and the image sensor is designed to respond best to a certain light wavelength as well.
For example, the Avago/Agilent ADNS-3080 optical mouse sensor has this response curve for a given wavelength of light (from page 14 of the sensor's data sheet available at the link above).
The visible light spectrum is made up of electromagnetic waves of wavelength from ~400 to ~750 nanometers (nm):
| Wavelength Range (nm) | Color | LED's Available (nm) |
| (100-400) | Ultraviolet (UV) | (none) |
| 400-450 | Violet | "UV" 405 |
| 450-500 | Blue | "Blue" 463, 470, 472 |
| 500-570 | Green | "Green" 524-525 |
| 570-590 | Yellow | "Yellow" 588-595 |
| 590-610 | Orange | "Orange" 605 |
| 610-750 | Red | "Red" 625-630, 660 |
| (700-1000) | Infrared (IR) | "IR" 850-860, 880, 940-950 |
So, red light at 630nm works best (and is also very efficient power-wise, so that's what is used), near infrared at 850nm would work OK, IR at 945nm (like the LED's in most VCR-type remotes) wouldn't work very well. Blue LED's at 470nm would work better than 850nm near IR, so I'm not sure why more manufacturers don't use blue.
Most optical mouses use a Light Emitting Diode (LED) as the illumination for the optical sensor. In September 2004, Logitech and Agilent (now Avago) released the first optical mouse to use a laser as the illumination source. The MX1000 Laser Cordless Mouse uses the same optical sensor as their high-end MX510 wired gaming mouse, but uses an 832-852nm Infrared laser instead of the LED (it also adds left-right scrolling with a tilt-wheel, like the latest incarnation of Microsoft's IntelliMouse Explorer: wired 4.0 or wireless 2.0). The Laser Technology Brief (pdf) does a good job explaining the upgrade, and even has nice images of what the optical sensor actually sees (shown at left).
Basically, because the laser is a uniform tight beam, it
reflects more detail from minor surface defects and textures, even on
what normal LED illumination shows as uniform-color smooth shiny
surfaces (like white board), resulting in, "20x times the tracking
power of optical." (That is, it can navigate on surfaces with 20x
smaller surface features.) Logitech still warns that the
"Laser still may not track on mirrored or clear surfaces, such as
windowpane glass." But, at
least one user claims that, "this mouse has had no issues
with any surface I have tried it on, including a mirror."
The quality factors listed above aren't the best way to compare optical mouses, as they must be taken together to get a meaningful representation of the over-all quality of an optical mouse system. Some more meaningful quality measurements:
The total amount of image data processed per second goes up if you increase the image sensor size or the refresh rate. Mouses with the same amount of image data processed per second should work about the same, even if they have very different sensor sizes and refresh rates. A large image size with a slower refresh rate can do the same job as a smaller image size with a faster refresh rate.
To calculate the image processing power we multiply the total number of pixels in each image by the number of images per second. Some mouses process as little as 0.486 Mpixels/sec, up to 5.8 Mpixels/sec for the Logitech MX510.
Note: One might think that it would be better to have a fast refresh rate with a small image size than vice versa, as this would tend to actually update the position of the mouse pointer on screen faster. But, the update rate of the mouse pointer on screen is limited by the update rate of the USB system over which the updates are sent. So while a Microsoft IntelliMouse Explorer 3.0 takes pictures at 6000 images/sec and the IntelliMouse Explorer 2.0 takes pictures at 2000 images/sec, either way the mouse pointer on screen updates only 125 times per sec (the polling rate of USB). To test the screen update rate of your mouse, use mouserate.
This is the maximum speed at which the mouse can move and maintain tracking. In addition to resolution, sensor size, and refresh rate, this is also determined by the tracking algorithm used (how much overlap the image processor needs between each frame, etc.) Because we don't have access to info about the tracking algorithm, we can't calculate the max speed; the numbers listed below are as reported by the manufacturer.
If this figure is too low, your mouse will lose tracking at high speeds, resulting in random mouse movements. This is often encountered when trying to turn your character around quickly in a First Person Shooter (FPS) type game, such as Quake. One way to test if your mouse is prone to losing tracking is to move your mouse pointer to the edge of the screen and then quickly move the mouse further off-screen. If your mouse kept tracking properly, the mouse pointer will still be at the side of the screen (possibly moved up or down, but still at the edge). If your mouse lost tracking, the random interpreted movements will move your mouse away from the edge of the screen.
I can lose tracking quite easily on mouses with a max speed of 16 in/sec or lower. The newest mouses from Microsoft and Logitech have max speeds of 37 and 40 in/sec respectively, and I've not been able to get them to lose tracking.
This is how fast the mouse can change direction, given in units of 'g', the acceleration due to gravity on the Earth's surface. This also varies by image processor design and tracking algorithm, so the numbers listed below are as reported by the manufacturer.
I've seen no test to demonstrate when this is 'too low', so the numbers aren't all that useful.
Here's what I've found out about various optical mouse sensors (sorted by Mpixels/sec):
| Sensor Chip | Known Mouses Used In | Image Sensor Size (pixels) | Resolution (CPI) | Refresh (Hz) | Mpixels/sec | Max Speed (inches/sec) | Max Acceleration (g) |
| Agilent HDNS-2000 (16 pin, obsolete) | Apple Pro (old version), MS IntelliMouse Optical 1.0A, MS Wheel Mouse Optical, MS IntelliMouse Explorer 1.0A, etc. (all now obsolete) | 18x18 | 400 | 1500 | 0.486 | 12 | 0.15 |
| Avago/Agilent ADNS-2610 (8 pin) | Belkin's 400cpi mouses (F8E814-OPT USB and PS/2 w/Scroll Wheel, F8E850-OPT USB and PS/, F8E882-OPT MiniScroller), ViewSonic CC2201 Combo (800cpi by software?!), ViewSonic CP1204 Combo (400cpi), etc. | 18x18 | 400 | 1500 | 0.486 | 12 | 0.25 |
| Avago/Agilent ADNS-2620 (8 pin) | (none known) | 18x18 | 400 | 1500 or 2300 | 0.486 or 0.7452 | 12 or ? | 0.25 or ? |
| Avago/Agilent ADNS-2051 (16 pin) | Apple Pro (new version), Apple Mighty, Logitech MouseMan Dual Optical (used 2 sensors, no longer made), Razer Viper1, Contour Design Perfit Mouse Optical/Optical Classic, etc. | 16x16 | normally 400 or 800 (Logitech uses 800, Razer Viper uses 1000) | 1500 to 2300 (Logitech used 1500, Razer Viper uses 2300) | 0.384 for Logitech, 0.5888 for Razer Viper | normally 12 | normally 0.15 |
| Avago/Agilent ADNS-2030 (16 pin) | Belkin's 800cpi mouses (F8E826-OPT ErgoFit Wireless, F8E829-BNDL Ergo Wireless w/keyboard, F8E832-BNDL Wireless w/keyboard), ViewSonic CW2403 Wireless Desktop (800cpi), ViewSonic MW407 Wireless Mouse (800cpi 'by software'?!), etc. | 16x16 | 400 or 800 | 2300 | 0.5888 | 14 | 0.15 |
| Avago/Agilent ADNS-2001 (16 pin, obsolete) | MS IntelliMouse Explorer 2.0 (obsolete), etc. | 18x18 | 400 | 2000 | 0.648 | 16 | 0.2 |
| ELAN Microelectronics OM014 (16 pin) | (none known) | ?x? | ? | ? | ? | ? | ? |
| ELAN Microelectronics OM024 (16 pin) | I-Rocks 7300 (800 dpi) | ?x? | 800 | ? | ? | ? | ? |
| @Lab ATA1080XA (24 pin) | Ergotech Optical Mouse ET-M6733U, Ergotech Optical Mouse ET-M6653, Set Walk Optical Mouse | ?x? | 400? | 1700? | ? | ? | ? |
| PixArt Imaging PAN101A/B3 (20 pin) | iConcepts HTM-62WT (by HorngTech), Ergotech Only Blue ET6603U | 16x16 | 400 or 800 (400 in iConcepts) | 3000 or 4000 (3000 in iConcepts) | 0.768 or 1.024 | 16 | 3.9 |
| PixArt Imaging PAN301A (20 pin, improved tracking vs. PAN101) | none that I know of (new sensor) | 16x16 | 400, 600, or 800 | 3000 or 4000 | 0.768 or 1.024 | 37 | 20 |
| STMicroelectronics 9N MLT 03 (square 44 pin, exclusive to MS) | MS IntelliMouse Explorer 4.0, etc. | 22x22 | 400 | 6000 | 2.904 | ? | ? |
| STMicroelectronics ? (exclusive to MS) | MS IntelliMouse Explorer for Bluetooth 2.0, MS Wireless Notebook Optical Mouse 1.0, etc. | 22x22 | 400 | 6000 | 2.904 | 20 | ? |
| STMicroelectronics "Aviator" (so called in the FCC docs, square 32 pin, exclusive to MS) | MS Wireless IntelliMouse Explorer 2.0, MS Wireless Optical Mouse 2.0, MS Standard Wireless Optical Mouse 1.0, etc. | 22x22 | 400 | 6000 | 2.904 | 36 | ? |
| STMicroelectronics OS MLT 04 (square 44 pin, exclusive to MS) | MS IntelliMouse Optical 1.1, MS Wheel Mouse Optical 1.1 , etc. | 22x22 | 400 | 9000 | 4.356 | 20 | ? |
| Avago/Agilent A2020? (20 pin, exclusive to Logitech) | Logitech MX300, MX500, MX700, MX900 | 30x30 | 800 | 5250 | 4.725 | 40 | 10 |
| Avago/Agilent S2020? (20 pin, exclusive to Logitech) | Logitech MX3102, MX510 (comes in red or blue), MX1000 Laser | 30x30 | 800 | 5250 for MX310, 6445 for MX510/MX1000 | 4.725 for MX310, 5.8 for MX510/MX1000 | 40 | 15 |
| Avago/Agilent ADNS-3060 (20 pin) | (none known, new chip released Dec 2004. Similar to what Logitech now uses in MX510/MX1000) | 30x30 | 400 or 800 | 6469 | 5.8221 | 40 | 15 |
| Avago/Agilent ADNS-3080 (20 pin, exclusive to Razer from Oct 2004-Mar 2005, now openly available) | Razer Diamondback5, Diamondback Plasma LE6, Logitech MX518 Gaming-Grade Optical Mouse | 30x30 | 400 or 1600 | 6469 | 5.8221 | 40 | 15 |
| Avago/Agilent ADNS-6000 LaserStream (20 pin) | Close to Logitech MX1000 (which is label as a 6020) | 30x30 | 400 or 800 | 6469 | 5.8221 | 20 | 8 |
| Avago/Agilent ADNS-6010 High-Performance LaserStream (20 pin) | Might be in the new Razer Copperhead (which claims 50 inch/sec max speed) | 30x30 | 400, 800, 1600, or 2000 | "over 7080" | 6.372 | 45 | 20 |
| Avago/Agilent ADNS-6030 Low-Power LaserStream (for wireless) (20 pin) | ? | 22x22 | 400 or 800 | SmartSpeed self-adjusting only (max Hz not listed) | ? | 20 | 8 |
| Avago/Agilent A6060? (18 pin, exclusive to Apple?) Laser | Apple wireless Mighty Mouse | ? | ? | ? | ? | ? | ? |
| Philips PLN2020 twin-eye laser sensor (13 pin) | Logitech V400, Kensington Laser Wireless Micro | dual-laser interferometry | 800 | n/a | n/a | 40 | infinite |
Notes:
Here's some images of several opened-up mouses and microscope images of the sensor chips from a few. If you have a dead optical mouse I'd be willing to pay shipping to gut it and put it's picture here.
Click images for huge versions. WARNING: I do mean huge (most are 1280x960 or 2048x1536).
Philips Laser Sensors sent me this image showing the total size of various mouse sensor systems.
Since Philips' twin-eye laser sensor has the sense/illumination system (the two lasers) and the lens all in one package, it makes for
a very small system:
Thanks to Avago/Agilent for these samples. Note that close-ups are all oriented with front of the mouse up.
Uses the PixArt PAN101 sensor.
Thanks to Stan Horn for these pictures. Uses the ELAN OM02 sensor.
I have one, but haven't taken the pictures yet. Uses the same sensor as the MX310.
I have the pictures, but haven't organized them yet. Uses the same sensor as the IntelliMouse Explorer 4.0.

Using
the 2051's pixel dump mode, I managed to snag a few images. I've attached one of the more interesting ones. It is of two
threads of burlap material crossing. Images from the ADNS-2051 are
16x16 with 6 bit pixel depth. I multiplied the pixels by four to
increase the contrast and use the full 256 grayscale offered by RGB
bitmaps.Inside images of an Apple Pro Mouse (old version that uses an Avago/Agilent HDNS-2000) I especially liked this image of the CCD (Charge Coupled Device) image sensor.
Inside images of a newer Apple Pro Mouse (uses Avago/Agilent ADNS-2051)
Opened-up Apple Might Mouse (uses Avago/Agilent ADNS-2051)
Inside images of the Razer Viper (uses an Avago/Agilent ADNS-2051 with out-of-spec lens)
How to get an MX1000 working in Linux (with some of my stats)
uberOptions mod for Logitech SetPoint (Enables editing of all the buttons on Logitech SetPoint-controlled keyboards and mouses, by replacing the XML device settings files. Adds lots of features. Created and maintained by me.)
If you have questions, comments, optical mouses you'd like to donate, or more info to include in this page, email Richard L. Owens (remove NOSPAM).
-Richard L. Owens
Last updated 26-Apr-2006. See change logThis page visited
times since Mon 25-Apr-2005 11 PM UTC (6K+ visitors before that).
A no-frills page whipped-up in Crimson Editor and Nvu.