The Modern Bane Of Every Mouse User
Do you remember mechanical mice? They either had a gummy or rough ball protruding through the bottom to transfer motion to rollers mechanically coupled to optical rotary position encoders. The ball would inevitably pick up all sorts of crud from your mousing surface, which would then cake up on rollers until they eventually got stuck and required cleaning.
Once the ball's gummy coating wore out or its grippy surface got polished off (which rarely took more than a year of intensive use), the ball no longer had enough friction to turn the encoders' rollers. The mechanical mouse became nearly unusable, regardless of how much you tried to clean it. This usually meant buying a new mouse long before anything else had a chance to fail. Optical tracking eliminated that major mechanical shortcoming, enabling mice to remain usable for a few years longer and reveal their next major service life limitation.
Have you ever had a drag-and-drop file or text selection mysteriously disappear or reset on you as you pulled the mouse pointer from one corner of a selection to the other? How about single clicks registering as doubles, performing actions you never intended? In productivity applications, this can result in accidental file transfers and other irritating outcomes. In games, it can trigger the wrong ability or interface action, such as prematurely releasing an arrow, shot or other hold-to-aim/charge ability. That sort of outcome is simply unacceptable in a competitive environment.
So what's the issue here? Switches. The humble switch is the only remaining mechanical component still used in modern mice if we overlook the cord. While most PC enthusiasts associate switches with electricity, they're still mechanical systems performing an electrical function, which makes them inherently susceptible to wear from friction where different components rub together and material fatigue where these components are under mechanical loads, both static and dynamic.
And even though switches may look ideal at macroscopic time scales, with a contact closing and opening, they're not so binary as seen from a digital circuit's point of view in millisecond and less time scales.
This combination of less than ideal mechanical and electrical contact properties are the reasons why debouncing (the process of filtering or processing switch inputs to hopefully eliminate mechanically-induced glitches) is necessary when interfacing switches to logic and micro-controllers. As switches age, their characteristics degrade to the point of exceeding the debouncing circuit or algorithm's parameters, letting glitches through with increasing frequency and severity.
MORE: All Mice ContentMORE: All Peripherals Content
MORE: Peripherals in the Forums
The hack might be more trouble than it is worth but it does show that there is no reason for mouse buttons with SPDT switches to glitch until the switch mechanically fails. Other than mice manufacturers choosing to design them this that way that is.
My G500S is about four years old and the glitching is at that early stage where I'm not sure if the glitches are caused by the mouse or by mouse movement when I click.
The switches can be magnetically shielded, and as long as the button actuation functions (no broken springs), the button will continue to work, along with any vibrations of the actuation being calibrated out in software.
One option which does not require calibration is optical sensing: poke a slotted stem through the detector. Most mechanical mice used optical wheel encoders to convert ball motion to digital. The same thing could be done for switches.
I doubt either option would be as inexpensive as a mechanical switch and with the "memory" version of my hack, it would be a practically free fix. Free is a tough price to beat.