Info

There is a lot of (mis)information floating around the web about what's important when shopping for a mouse. The goal of this page is to help you understand the various aspects of mice.

Overview

How much will a mouse cost me?

The price and the quality don't correlate very well. What I consider to be the perfect gaming mouse at the moment costs $50 - The Glorious Model O. If you're on a tighter budget the Nixeus Revel is the cheapest mouse you can buy with a 3360 sensor. Don't believe the marketing on these $200 mice, use the information on this page to make an informed purchase.

Sensor

Resolution / CPI / DPI / PPI

First of all, just to clarify:

  • DPI (Dots Per Inch): A term used in the printer world to describe how many little blobs of color (dots) the printer can fit in a linear inch
  • PPI (Pixels Per Inch / Pulses Per Inch):
    • Pixels Per Inch: A term used in the display world to describe the pixel density, also measured in linear inches
    • Pulses Per Inch: What people called CPI long ago
  • CPI (Counts Per Inch): This is the correct term for mice, like with all the other "per inch" measurements, this is measured in linear inches

There are a few ways to think about CPI, if you Google it you'll get something along the lines of "the number of steps the sensor will report after moving one linear inch". I think a more intuitive way to think about it is by looking at the extremes. If we have a mouse with 1 CPI that means we will have to move the mouse an entire inch before a single movement step is sent to the computer.

In other words, CPI is the measure of the minimum physical movement of the mouse which will be sent to the computer. You can test this yourself by plugging in a mouse that can be set to 100 CPI (or lower) and very gently moving it. You will notice the discrete steps the cursor takes. A higher CPI means a more accurate representation of the movement will be reported to the computer.

There are two caveats with resolution:

  • At some point the movement reported by the mouse will be smaller than the minimum visually noticeable movement on your monitor / in your game. At this point raising the CPI will not produce visual differences. This number depends on your resolution, and your field of view.
  • Some mouse manufacturers will use the microcontroller to fudge the numbers that the sensor can actually achieve, check the sensor specifications and make sure it lines up with what the mouse claims. If this is the case, it is likely the mouse will have jitter

A rough estimate for the maximum useful CPI is to look at this extreme example: 4k (aka 2160p) resolution width is 3840 pixels, combine this with a 3D game which defaults you to 60 degrees field of view (borderlands 1?) and you get a total of \( 3840(\frac{360}{60}) = 23040 \) pixels per 360 degree rotation. If you have a very high sensitivity of 4 inches per 360 degree rotation that gives us a maximum useful CPI of \( \frac{23040}{4} = 5760 \) CPI.

Generally speaking, anything above that will not provide a benefit to you. I've put those numbers from the example above into this little calculator, give it a shot to see what the maximum useful CPI is for you personally:

Horizontal FOV in degrees
Horizontal Resolution
Inches Per 360
Maximally useful CPI: 5760

Polling Rate / Refresh Rate / Hertz (Hz)

This section is about the USB polling rate, not the sensor refresh rate. I have yet to see a sensor which has a refresh rate slower than the USB polling rate. If there is a limitation it generally comes from the Microcontroller. This is only part of the sensor section because it's often associated with the sensor.

The polling rate is the rate at which your computer asks your mouse to send an update. I am not a fan of this definition because it doesn't give you an intuitive concept around the consequences of low polling rates, for that we'll conduct a little thought experiment in the next paragraph. An easy way to think about the polling rate is by looking at it as the maximum variance in response time. In other words a 125Hz polling rate has a maximum variance of 8ms - This means you will see your cursor respond anywhere between ~0ms and 8ms after the physical movement of the mouse.

We will start our thought experiment with two identical mice with differing polling rates: a 1Hz mouse, and a 1000Hz mouse. If we move both mice one inch on the mouse pad, will they move the same distance on the screen? Yes, they will - even though one is polled once per millisecond and the other is polled once per second, the total distance reported by the mouse will be the same. The real question is: How long will it take for the 1Hz mouse to complete the motion?

The answer is very interesting: it's possible that the 1Hz mouse actually ends up moving the cursor the total distance more quickly than the 1000Hz mouse. How is that possible? If the 1Hz mouse sends an update and then 999.5 milliseconds later you move the mouse 1 inch another update will be sent only half a millisecond later, whereas if the 1000Hz mouse sends an update then immediately after you move the mouse 1 inch another update will be sent one whole millisecond later. In that exact scenario the 1000Hz mouse is slower to respond than the 1Hz mouse. However, the variance on the 1Hz mouse is extremely high, your response time could be anywhere in the range of ~0ms to 1000ms after the physical movement of the mouse. The 1000Hz mouse will respond anywhere between ~0ms and 1ms after the physical movement of the mouse.

This example is ridiculous, but it helps you understand an important consequence of polling rates: The higher the polling rate, the lower the variance of the response time, and therefore the higher the predictability.

One very interesting subtlety of mouse polling rates has to do with monitor refresh rates. If you have a 60Hz monitor and a 125Hz mouse then the best case visual response time is still ~0ms, if the monitor and your mouse refresh virtually at the same time you physically move the mouse. In the worst case you move the mouse right after a mouse refresh, which then takes 8ms for the next refresh. The monitor then refreshes just before the mouse information is processed so you have to wait an additional 17ms for the monitor to refresh, and finally after 25ms you see the cursor move. So the variance of this setup is between 0 and 25ms. The visual variance of a 144Hz monitor and a 1000Hz mouse is between ~0ms and 8ms.

On page 271 of the USB2.0 specification the polling interval is defined as being in between 1 to 16 milliseconds. What this means is it's impossible to have a USB Spec compliant controller poll over once per millisecond (1000Hz). However you can overclock your USB controller to poll as high as 8000Hz as shown in this Overclock Thread. This will not help in most cases because it's dependent on the mouse itself having an internal reporting rate of over 1000Hz, there are very few mice which support it.

The key to consistency is predictability, you want to minimize the variance of your setup in order to perform more consistently. Since this isn't a guide to buying a monitor I will give recommendations for the mouse sensor only: The higher the polling rate, the better, period.

Some nerds might give some crappy arguments like:

Spongebob

To that I say: Show me a computer that will run your FPS game but struggle handling 1KHz polling rate. The human eye arguments really annoy me because they're just completely wrong. First of all, you can easily disprove this by comparing a 60Hz monitor and a 120Hz monitor, everyone can see the difference just by spinning the mouse cursor in a circle. Second of all, when you play at a very high level your hands will move faster than you can decipher the visual information. If you're not convinced, set your monitor's max refresh rate to 30Hz and downclock your mouse to 30Hz... GOOD LUCK!

Acceleration

The acceleration of a mouse sensor is usually rated in g's, this rating represents the maximum linear acceleration the sensor can undergo and still function accurately.

I used an NGIMU to measure the linear acceleration that I could apply with my arm. I went through some regular motions and then some more vigorous movement; You can see the data in the following video:

In this video I was able to reach an acceleration just shy of 13g. After the video I tried holding the sensor in my hand and moving as fast as I possibly could and was actually able to max out my NGIMU at 16g. I don't think I was moving much faster than 16g though. This data shows that if you want a sensor which won't get in your way with "twitchy" movements (like clearing long doors on dust2 coming from ct side) you need a sensor rated for at least 13g of acceleration - to be safe get one with 20g or more since that seems to be the limit of what a human shoulder can produce.

Tracking Speed / Inches Per Second (IPS)

Tracking speed is most often rated in inches per second. It's the maximum linear velocity which the sensor will accurately record.

I performed an experiment to get the approximate maximum required IPS for humans.

From this video you can see between timestamps 0.521 and 0.561 I moved 20cm on the mouse pad. I used these times because that seemed to be the fastest part of my movement. Given these values we can come up with: \( \frac{0.2}{0.561 - 0.521} = 5 * 39.3701 \approx 197\frac{inches}{second} \)

This number is confirmed with the mousetester which I ran simultaneously with the video. As you can see I peak just under 5m/s

IPS mousetester

This wasn't the fastest I was able to make the mouse move. I peaked at around 240 IPS, but this is far beyond how fast I would normally move a mouse. To me this shows that in order to never have a tracking issue you want to aim for around 250 IPS on the sensor. However in these tests I was position to move the mouse as fast as humanly possible, in a real game I expect to be moving less than half of that speed so even a sensor with 150 IPS is likely good. Picking a sensor with the right IPS for you is a judgment call based on your play style.

Frame Rate / FPS

The sensor is a tiny camera, the frame rate is the frequency at which that camera takes pictures. The sensor compares two of the pictures to figure out how far you moved the mouse. Generally the frame rate is well over the polling rate which means many of the movements are used in a single report to the USB controller. This value is generally not important when looking to purchase a mouse since it is implied by the Acceleration & Tracking Speed values on the sensor. If you want some additional reading on sensor frame rates see this Overclock post.

Lift Off Distance (LOD)

There's not much to say here, every sensor has a working distance. If you play on low sensitivity or for some other reason find yourself lifting the mouse off of the surface often, then you want a lower lift off distance. I personally play on a very low sensitivity so I look for a lift off distance of less than 3mm. Some sensors have configurable lift off distances. Every mouse will seat the sensor slightly differently so this is more of a mouse specific measurement rather than a sensor measurement.

There is a trick you can do by taping the sensor aperture which will lower the lift off distance at the expense of other mouse specs. I recommend using this as a last resort, instead look for a mouse with the right lift off distance for you.

Optical vs Laser

Generally optical mice are better because they have less smoothing / jitter issues, besides that a reason to specifically look for a laser is if you know an optical mouse will not track on your playing surface. For example, Many optical sensors fail on translucent surfaces like glass - but laser sensors do not. The reason for this is because an optical mouse tries to illuminate the whole surface so the capturing area is quite large and the performance is based on how well the surface diffuses the light. A laser is more sensitive to the imperfections on the surface so even if the surface doesn't diffuse light well it can still track. In the image below (courtesy of Vixarinc) you can see the light beam used in laser sensors is very thin compared to what's used in optical sensors. The smoothing / jitter issues are due to the lower physical area of illumination being stretched to the sensors working resolution.

vixarinc laser vs led

Flaws & Flawless Sensors

Some sensors, or sensor firmware, or microcontrollers introduce "flaws" into the output of the mouse. If there is any distortion of the signal that the sensor or microcontroller receives and it cannot be disabled, then it is a flaw. You want to look for a sensor which has none of the following issues:

Pointer Acceleration / Tracking Speed Inconsistency

Not to be confused with the sensors rated acceleration, this has to do with the output of the mouse. If your mouse has pointer acceleration then the distance pointer moves on the screen is a function of both the physical travel of the mouse and the velocity which the distance was traveled. Some people add pointer acceleration through software, which is perfectly fine - but you absolutely do not want it built into the hardware you purchase. Pointer acceleration will make it harder to develop muscle memory.

Axis Asymmetry

Some sensors have differing sensitivities (maybe due to CPI distribution?) on different axes. A mouse should work the same regardless of the axis it's moved. The exception to this being a flaw is of course when it's a feature! Some mouse software lets you change the CPI axis independently.

Prediction / Drift Correction / Angle Snapping

Some mice will try to correct your nearly horizontal or vertical movements and report them to the computer as true horizontal or vertical movement. In other words if the mouse thinks that you are trying to move in a straight line it will kindly tell the computer you're moving in a straight line. Some people like this feature, most people do not. Regardless of people's opinion, if done anywhere other than software (where it can be disabled) - it is a flaw.

Jitter

Jitter is noise on the sensor causing movements which didn't actually happen. This can be seen either with the cursor slightly shaking around the screen when untouched, but can also occur by slightly deviating your mouse path during movement. It will always be more noticeable with higher eCPI This is a problem mostly with laser mice since they are generally noisier.

Smoothing / Interpolation

This can happen both at the sensor level and at the microcontroller level. If more than a single frame of data from the sensor is being averaged then there is smoothing. Mice with bad smoothing issues will not track accurately, there will be a "gummy" feeling to your movements - basically like adding momentum to the mouse movement.

Example

For both examples I'll use a hypothetical sensor with a frame rate of 4000, and an MCUwith a polling rate of 1000hz. This sensor will report to the MCU 4 times before that data to the USB controller.

Without smoothing

If we label each report from the sensor with a letter we get a, b, c, d sent to the MCU. This data will be added up and sent to the USB controller so the total motion is the sum: \(a + b + c + d\).

With smoothing

Using the same labeling as the example above, except with 2 frames of smoothing done at the sensor level the data reported to the MCU will be \( \frac{a+b}{2}, \frac{b+c}{2}, \frac{c+d}{2}, \frac{d+e}{2} \) which means the data summed up and sent to the USB controller will be \( \frac{a}{2} + b + c + d + \frac{e}{2} \). As you can see with smoothing the input is no longer 1:1 but instead some frames are weighted more than others.

The example above shows only 2 frames of smoothing - this is basically impossible to feel as a human. Some sensors have significantly more smoothing than that which can be felt and will mess with your accuracy / muscle memory in games. For information on how to test if your mouse has smoothing see qsxcv's visualizing smoothing in mousetester.

Feet / Skates

Most people want feet with the lowest amount of friction to the mouse pad. Generally speaking PTFE (also known colloquially as TeflonTM) is a good choice for mouse foot material since it has an incredibly low coefficient of friction.

There are some people who prefer more friction, if you are one of those people I recommend looking into "control" mouse pads. Usually they are metal with a coarse surface. If you use one of these pads your feet will wear down more quickly.

When looking at mouse feet, one thing we should note is that friction is independent of surface area. So in the friction case size does not matter. However in the case of wear - the larger the mouse foot, the longer it will take to wear down. Many mouse manufacturers will sell you replacement feet, there even exists a 3rd party market for feet (see Hyperglide).

If there is a mouse which is perfect for you but uses a crappy material for the feet or the feet have worn out and you can’t find replacements, you can purchase a roll of PTFE adhesive tape (solid not woven). This tape is basically a very thin amount of PTFE which you stick right on top of your mouse feet and use a razor blade to cut it down to size. This will perform just as well as solid PTFE feet, but will wear down quickly depending on the material your mouse pad is made of.

Switches / Buttons

A switch refers to any mechanism which switches the state of a signal. This switching can be done by making or breaking the electrical connection in a circuit, by using a light sensor and interrupting it, or many other ways. Buttons are switches which are actuated by pushing on them. Scroll wheels are switches which are actuated through rotation. Generally scroll wheels also have a separate button beneath them which is the mouse wheel button we're all familiar with.

Mouse Buttons

Latency & Bouncing

Every switch has some actuation latency; This is the time it takes from the moment the button is pressed to the moment the signal is thrown. I measured my clicking speed on mousetester by using my finger on the side of the mouse which resulted in a range of 150mm/s to 1000mm/s depending on how "hard" I click. on average I was around 500mm/s.

I opened a D2FC-F-7N(20M) that I had from an old mouse and used a caliper to measure the gap between the two switch positions at 0.88mm, the leaf spring itself was 0.41mm which means the travel distance is 0.47mm.

Given these values we can calculate the actuation latency on a D2FC-F-7N(20M) switch to be around \(\frac{0.47}{500} = 1.1ms \).

Bouncing

Bouncing is a surprisingly simple phenomenon. It's literally the two contacts inside of any switch physically bouncing off of each other on an actuation. This is a problem because a single actuation will throw multiple signals indicating multiple clicks since the contacts themselves are making and breaking the circuit multiple times. Switches which use an optical mechanism don't have to perform any debouncing since there are no bouncing contacts.

There are multiple methods to deal with debouncing a switch. Some methods add additional latency to the clicks, and others which do not:

  • Mice which use Single Pole Single Throw (SPST) switches are limited to the methods which add latency to the click.

  • Mice which use Single Pole Double Throw (SPDT) switches like the Omron D2F-01F can use zero-latency debouncing methods.

Generally mice which are using the SPST switches have a minimum of 4ms and an average of 10ms latency added. On certain very poorly engineered mice I've seen as bad as 30ms (there is no upper limit). The reason for the additional latency is because one way or another the circuit must wait for the bouncing to stop before reporting a click. Whether the waiting be through a low pass filter, or in software - it's all additional latency.

Mice which use SPDT switches can use an RS Flip Flop circuit or other similar latching methods to get essentially zero-latency debouncing. The reason they can do this is because a click is based on the two inputs rather than one. As soon as a signal comes in on one input, the next action must come from the other input. This means bouncing has no effect and the initial contact is used to perform the click.

Mouse Buttons

Omron is the "hottest" name when it comes to mouse switches, it's often seen as the Cherry equivalent in the keyboard world. Be careful though because the difference in build quality is significantly between the Chinese made switches like the D2FC-F-7N and the Japanese made D2F-01F. The latter is far superior.

For whatever reason the D2FC-F-7N switches are sold as SPST switches even though they are SPDT switches. The data sheet explicitly says not to use the NC pin which is labeled as the "dummy pin" - But my multimeter disagrees with this, it's a perfectly good NC. Mice manufacturers should be taking advantage of the NC pin and getting rid of click latency!

D2FC-F-7N SPDT

For an immensely detailed video about switches I highly recommend Alex Kenis' video. Be prepared for a journey if you decide to watch it!

Scroll Wheel

Scroll wheel technology is generally done in one of two ways:

  • A mechanical rotary encoder which physically connects two conductors to register a scroll
  • An optical rotary encoder which uses a beam of light to register a scroll

Generally this is up to preference of the feel, if you want something like "infinite" scroll which Logitech offers - you end up with an optical rotary encoder.

Shape & Weight

There are 3 common ways to hold a mouse:

  • Palm Grip - Your entire palm through the fingers lays on the mouse surface
  • Claw Grip - The base of the palm and the finger tips lay on the mouse surface
  • Fingertip Grip - Only the fingertips lay on the mouse surface

My personal recommendation is to measure from the middle of your palm to the tip of the longest finger. For palm grip the mouse should be at least that long. For claw grip it should be at least one inch shorter than that. For fingertip grip it doesn't matter what the length is. The shape of the mouse can play some role in the sizing too so check the reviews on the particular mouse you're looking at if you think it might be an issue.

The weight of the mouse is a debated topic. Some companies market heavy mice, some market light mice, and some market adjustable weight mice. The physical consequences of a heavy mouse are: Higher friction, and more inertia. With higher friction it's going to be more difficult to make small precise movements. Having more inertia compounds that effect as well as making it more difficult to start and stop flick movements. The lighter the mouse the less effort it will take you to make a particular motion, which means more of your brain power / muscle memory can be used on the quality and accuracy of the motion. As G-Guy once said: "Anything over 95 grams is barbarian tier and should be avoided." - I generally agree with this statement, but in the end it boils down to whatever you find more comfortable.

If you're having wrist problems and want a mouse that will help you prevent further injury then I highly recommend a vertical mouse. Unfortunately there aren't any performance vertical mice on the market - all the sensors in use are garbage. The best one I found in my years of gaming with a vertical mouse was the Delux M618LU. There are many versions of this mouse, but this particular one uses a decent sensor, I'm not sure what it is but it has a medium acceleration (around 10g). If you're looking to game on a vertical mouse that's what you need. The best thing you can do for your wrists is strengthen them, handstands and ring holds will give you iron wrists. I recommend that method over any vertical mouse.

Memory

Some mice will have software you can download which will allow you to change the settings on the mouse such as: color of LEDs, CPI, and macros. Other mice will have dedicated hardware buttons for some or all of these functions, if these are important to you check the manufacturers website for software or see if it's in the feature list.