Maintenance/Mouse button replacement

From ludd
Revision as of 21:36, 19 September 2023 by Adamw (talk | contribs)

Background and problem

I'm your ordinary sort of office worker, one who types and clicks far too often in the course of a day as if this digital thwacking were my only form of exercise. Various body parts connected to these devices are getting old and very much appreciate the mid-range ergonomic keyboard and mouse generously granted by my employer. Office workers of the world, you are advised to ask for at least this much.

Maybe I'm emotionally attached to these toys because it makes me feel fancy that someone once spent a hundred euro on my well-being. Or maybe it's all a performance of longevity as this job becomes a career—like a delivery driver who hangs a pair of fuzzy dice over the rear-view mirror to announce that they were once cool, or an academic whose bookshelf holds all the back issues of a professional journal.

The mouse trouble began when I no longer needed this performance because I had moved into my "home office"—the mouse lives on a homemade standing desk not much bigger than a cutting board, screwed to the wall at navel height where I can accidentally bump into it as I stumble out of bed. This is also the ideal height for the extremely destructive impact of any plastic-encased electronics unlucky enough to fall to the floor. My mouse has suffered a thousand of these shocks and its once-noble exterior is held together by a combination of gravity and a handful of the fasteners it was born with. But it still clicks!

At least, it clicks most of the time. Once I noticed an issue, I began denial stage of grief and just clicked a bit harder every time, until the charade wore thin. Where this kind of inconsistency really starts to burn is when double-clicking—an ableist caprice under normal circumstances but a fool's errand for a fool whose buttons are iffy. There was a hot minute for which I imagined I had worked around it by software-mapping the right and left buttons to one another, holding the mouse in a funny way so that both pointing fingers reach across to what used to be the right-hand button. Games like this are causing my habits to cross-wire, howecer, and of course I found that the right button becomes increasingly important in proportion to how much it can't be used.

Maybe I could have found another mouse but the manufacturer cleverly ships it as a bundle with the keyboard. These two and the USB dongle are a happy little nuclear family, and nothing but the vilest of e-waste if separated.

I'd really like to make the mouse work again for the sake of the planet if nothing else.

Pop the hood[1]

Something's rotten about these microswitches

I started the repair by measuring missed clicks with the linux utility xev [2] and it showed that the buttons had become sensitive to the exact orientation of my finger. Either something was wrong with the alignment of the broken plastic parts, contact material was worn off of the internal switch, dust sand and chips had gotten in, or all of the above. First thing to do is just disassemble and reassemble. Next, I cleaned it by wiping out the stray lint, squirting canned air at all the moving parts and flooding the heart of the buttons with isopropyl, finally imagining very hard that I had fixed the issue, yet nothing changed.

Still feeling stubborn, I imagined that the lightest possible repair would involve a quick exchange of the standard microswitches, the little silver squares with an orange dot in the middle which are pressed by plastic stems inside of the buttons. These switches come in exactly the same vanilla flavor that has been made since long before this particular mouse was dreamed up ten years ago. All 8 solder points are accessible as you might see in this image, so it shouldn't be a challenging fix.

I was able to confirm that the switches have the same pinout and footprint as their potential replacements, although the proof will not be definitively in the pudding until the switches are isolated from their circuit.

A fellow Earth defender in my office's IT department orders the new switches and I barely remember the next couple of weeks of missed clicks.

Prying the switches off

What could possibly go wrong?

The old switches need to be desoldered but the geometry of a four-legged chip is slightly annoying. I believe that the right tool to lift both legs on one side or all four legs at once with be either a double-headed iron, or a hot air setup. Desoldering the legs one at a time is hard to do otherwise since the legs go under the component and there's not much to pry at. I relied on the versatile thumbtack to apply some pressure to the switch body as I heated up each pad in turn.

In hindsight, what I relearned is that coffee mixes poorly with fine motor tasks. My hands were trembling like leaves in wind, and I probably used ten times the force that I should have when pushing the thumbtack under the switch. I also should have pried only at the legs and not at the body of the switch itself, if possible.

What I'm trying to get around to telling, gentle reader, is that I tore a bunch of important little electrical traces right off of the board during this step.

Here are some photos of the damage:

Removing the original microswitches has wounded their host
There should be no brown visible, this shows that electrical traces were torn away.

It's a bit like discovering that bits of a placenta are missing after birth: this is going to be a serious problem and we shouldn't continue without knowing exactly what went wrong.

Internal schematic for a microswitch

Nonetheless, I thought I would try to finish the replacement as planned.

After all, the internal wiring for these switches has the left and right pads tied together internally so it's possible that we only need one pad conducting the signal and the other would have no traces, purely for mechanical attachment. This could also explain why the exact same pads tore more easily on each switch?

The new switches went in.

I should mention at this point that I'm a complete hack—an unlicensed hobbyist. I was let go from a summer job soldering for a hardware video artist decades ago, and flashbacks from this experience came against my will, singeing my conscience with a cloud of lead smoke even at this distance through time, as I sweat over two small switches.

Okay but it went uneventfully and here is the result, notice the handsome slate-gray nubs.

New mouse same as the old mouse

There was a slight height difference between the old and new switches, so I was ready to sand down the part of the button which does the internal pressing.

Side view of old (left) and new (right) switches

However, this is where the story turns sad: although the mechanical clickiness feels better than what I remember of original condition, there is no signal sent from either button. They are dead to the computer, and a multimeter confirms nothing is happening on the board. My photographer suddenly gets distracted by the pretty trees outside of our window and mercifully snaps a few photos of that, instead of zooming in on my shed tears as a more seasoned journalist might have done.

All is not lost.

Nothing to lose but our chains

So many screws

Time to go deep. Take the everything apart and find out what's going on. I'd rather not pull the switches back off, for fear of tearing out the remaining traces. Instead, there's got to be a way of reconnecting the signals that connected to the missing surface-mount pads. A continuity tester confirms that the working buttons do what we might expect: one side has a positive voltage and the other causes a wire in the board connector jumper to toggle between high-impedance and the positive voltage. The broken buttons don't cause a similar signal anywhere on the jumper, and it's hard to tell where the traces should have gone because of the high-obscurity board layout and black solder mask.

Oh, hold everything! The trivial middle board is clearly marked "confidential", we'll have to stop here and can't go on... Joking.

Two-layer board edge

This is only a two-layer board so everything is on the front and back, networks can only go through the board via a via through-hole, sideways on a trace or plane of foil, or through a component. Nonetheless, I can't quite follow the signal. Now we're going to have fun: I make a jumper ending with a small resistor and clip it to the positive voltage of a working switch, poke this into each wire of the board connector one at a time with the mouse turned on, and watch xev.

Luckily for me, this is successful! It becomes clear which of the switch pads should carry positive voltage and which board connector wires relay the outgoing button signals.

Top jumper
Bottom jumper

In the end it only takes two additional wires to make the mouse fully functional. I would put this hack firmly on the "I'll jam the satellite uplink with my hair clip" scale of electrical engineering, and the result is a fire hazard which I wouldn't feel comfortable letting anyone else use. But it's good enough for me. The top jumper looks especially scary since it attaches to an unusual hole cut in a ribbon cable, but both wires make me slightly queasy.

Empiricism.

Here's a close-up of the most absurd detail—kids please do not try this at home.

Notes

  1. I don't own a car nor do I condone their use but did I grow up in California, USA so everything comes with a car metaphor.
  2. https://www.x.org/releases/X11R7.7/doc/man/man1/xev.1.xhtml