cleaning Keyboards and fixing key bounce
© 2012 by KV5R.
In 2010 I ruined my beloved Strong Man SMK-85 keyboard by cleaning some of the Alps switches with the wrong contact cleaner. It roughed up the surface of the plastic in the switches, so they would no longer slide smoothly, but jammed instead. I really loved that keyboard — both the layout and a the key action! So I tried to buy another one and, of course, they were no longer available…
I made a long search for another compact keyboard. Being weaned in around 1989 on the Northgate Omnikey, I have always liked clicking mechanical key-switches, and detested those mushy dome-membrane keyboards and, even worse, those short-strokin’ toy-like laptop keys. I also hate full-size keyboards that push your mouse way too far to the right and put a cramp in your shoulder. Compact keyboards with good switches and good layout are not easy to find, and they are not cheap!
I ended up with a Filco Tenkeyless, populated with the blue (clicking) Cherry switches. It’s a fairly heavy, well-made, and expensive keyboard, selling for about $130. I enlarged the hole in my desk a little (it’s 14 inches wide, while the SMK-85 was about 12½ inches). Right away I liked it, but then the problems started: contact bounce in some of the switches. After much experimentation, I discovered that vibrating the affected key with a little muscle massager for a few seconds would make it work okay for a while. One key, the E, was so bad that I ended up opening up the Filco (foolisly ending my warranty) and swapping the E switch with the ScrollLock switch — some very careful soldering. The bounce problem pretty much just faded away over time, and it worked well for about a year and a half.
Then recently (Feb 2012) it suddenly started bouncing keys again, particularly the D, H, and Backspace. I said, “No way can three switches go bad at once; it must be a software problem!” Many early Filco keyboards are known for not having enough bounce suppression in their firmware, and there's no way to fix it. The D key was so bad it was almost impossible to type one D; you always get 2-3 of them. But I decided to spray some DeoxIt D5 in the D key and, to my surprise, it fixed it! Then I likewise fixed the H and Backspace.
Since the keyboard was pretty dirty by now, I decided to just go ahead and pull all the caps, spray all the switches with DeoxIt (which not only cleans contacts, but also leaves a protective coating and very light lubricant on them); blow it all out with the air compressor, and clean all the keytops. In other words, the whole treatment. I did so and took some pictures (below), and then started this article. Within an hour or so, some keys started bouncing again! Not the same ones as before, but several different ones.
Bottom line: this keyboard is never going to be worth what I paid for it. The recurrence of contact bounce and all the frustration it creates, and all the hundreds of hours I’ve spent trying to get it to work reliably, means that it has bugs in its debounce firmware. Now don’t misread me: many people got a good one (according to reviews), but some of us got bad ones.
Disclaimer: Opening your keyboard may void your warranty. This article is for informational purposes only. The author holds no responsibility if you damage your keyboard.
Let’s face it: after a year or two your keyboard will look like a war zone. They’re designed to catch and hold hair, dust, bugs, crumbs, and anything else in the environment. Fortunately, most are easy to take a apart and blow out with an air compressor nozzle, and greasy key caps may be cleaned with a few Q-Tips with a little 409 on them.
If you have a dome-switch membrane keyboard, just split the case (several little screws in the bottom) and blow out with an air compressor, then wipe everything down with a lint-free cloth. If some of the dome switches are not making reliable contact (you’ve been missing letters), you can clean the board’s contacts and the membrane’s carbon pads with q-tips and alcohol, then reassemble and try it again. If some dome buttons are still failing to make reliable contact, you can either pay ~$12 for some CaiKote 44 and silver-paint the pads (see my video about that); or, for about the same $12, just buy another dome-switch membrane keyboard. Or better, save it as a backup and go buy a good mechanical switch keyboard!
If you have a mechanical switch keyboard, sooner or later you’ll need to pull all the key caps and treat the switches to a high-quality contact cleaner. DeoxIt D5 is the best, as it not only cleans switch contacts, but leaves a very light protective coating on them. As you’ll see below, it’s a bit of messy procedure. Plan on spending a couple hours doing it. You will need an air compressor to blow out the excess DeoxIt, as it doens’t evaporate like most contact cleaners. It’s more like WD-40, but a lot lighter (and safe for electronics). Keep the pressure regulated fairly low.
NOTE! Don’t do like I did below. (1) Blow, wipe and brush out all the dust and hair and bugs before you start using any contact cleaner, and (2) Do not spray the DeoxIt directly — even on the lowest nozzle setting and shortest burst, you get WAY too much and it makes a mess! Spray some into a little jar, then use a syringe or disposable pipette, and put a drop in each switch, then operate the switch a few times to spread it around inside.
The Filco Tenkeyless looks like this.
You can buy a key-cap puller, or just make one like this from a large paper-clip.
The 5 wide caps use stabilizer bars that unsnap from the board by pushing them forward, not up.
You’ll need small needle-nose pliers or hemostats.
(My dog is a hair factory!)
Keep the caps in order.
With the caps removed (notice the d, h and backspace sprayed before).
Spray by pushing the switch down with the nozzle. Give it the shortest possible shot.
Better: spray some into a small jar then use a syringe, dropper, or pipette to apply.
The actual switch contacts are vertical, on the side under the Cherry logo.
After spraying all the switches, I took it out to the workshop and blew out all the dog hair
and excess DeoxIt with the air compressor, then wiped it all down with a soft cloth.
Replacing caps. Blow out the bottom and clean all 5 sides.
Greasy tops may need a spot of 409 in your rag. But don’t rub off the printing!
Replace the 5 keys with stabilizer bars first—you need the space around them.
It takes a firm push to snap the bars back in.
There’s the 5 with stabilizers—whew! The rest are fast and easy.
Well, it still works…
Testing, e, d, h… So far, so good…
Always use the plastic cover when not in use.
Well, I finally had to do the registry mod above and make Windows filter the bounces. But the Filco is still doing strange things. Sometimes it drops the first letter of a word, then it doesn’t. Then it bounces a lot when first started up, then quits bouncing. Other times it’s fine when started up, then starts bouncing later. Is it just me? Nope—I test it with very deliberate keystrokes. I think the keyboard’s debounce routine must be an adaptive algorithm, and it’s just a little buggy.
I regret that I didn’t send it back as soon as it started acting up. If you get one, test it extensively for bounce, and if it bounces, send it back for a replacement. They have a one-year warranty. When you get a replacement, test it extensively, too. This keyboard costs way too much to screw up your typing every ten seconds.
Update (May 2012): I put the Filco away and used a SIIG Mini for about three months. It’s a decent little $20 keyboard, but has that mushy membrane feel—and I never could get used to the layout. So I decided to plug in the Filco and try it again. I tried for three hours to make it bounce—tested every key repeatedly—and I could not make it bounce, not even once! It’s working perfectly, and I have no idea why. But then again, it bounced when new, then stopped for over a year, then one day it started again (hence, the above cleaning). If it repeats that behavior again, I donno what to try next!
Update (July 2012): It continued to work perfectly from May to July, then the d-key started bouncing badly. Then a few days later the a-key started acting up. Then e and r. I took it apart again and gave it a light cleaning (without the Deoxit). While I had it apart, I decided to get all the low-level part numbers and see if there is an updated version of the daughter card and its micro-controller. The daughter card is mounted inverted on the top, wrapping around the arrow keys, and is socketed. Mine is using v.1.2, dated 2008-04-01, so it’s a pretty early version. The micro-controller is a Holtek HT82K94E. So I went to the Holtek site and got the technical documents. There is no mention of the chip having any key-bounce or filtering capabilities, so if does have some sort of “adaptive algorithm,” is’s in the keyboard manufacturer’s code, as there is no other chip in the keyboard that could provide that capability. More likely, it either has no bounce filtering at all, or what it does have is in the form of passive components on the daughter card. Yet I still have no way to determine (or even imagine) why bounces come and go on various keys, or why it does fine for two months or a year then goes crazy again.
In case you were wondering: No, the micro-controller is not reprogrammable once it’s soldered into a device. Holtek makes programming kits for it but they’re for new, uninstalled chips, in a development or production environment.
After more research, I’ve discovered a few interesting things about this whole line of keyboards:
- The keyboard modules in DAS, Filco, Leopold, Mionix, and Cooler Master are all made by Costar of Taiwan, and all use Cherry MX switches.
- The various brands just package them differently, sometimes with slightly different features.
- The Cooler Master Storm QuickFire Rapid is the same size and layout as my Filco Tenkeyless, but it has (1) a rubberized upper surface; (2) laser-etched keys; (3) multimedia functions (on F5-F12; Fn key replaces AppsKey); (4) 2-year warranty; and (5) a detachable braided cord. Best of all it’s currently $65 on Amazon, which is half what I paid for this buggy Filco. Since I already have this 14-inch wide hole in my desk, I think I’d better order one!
Last Update, July 14, 2012: Note: After reading this page, see how I finally fixed the problem at CM-Storm Keyboard Review (has a nice video review, too). These two pages cover what I’ve learned about DSI Strongman, Filco, and Cooler Master CMStorm mechanical keyboards, as well as Cherry MX blue and black keyboard switches. The video review of the CMStorm also contains a brief review of the Contour Shuttle Express.
Keyboard Bounce Filtering
Keyboard contact bounce filtering should be handled by the micro-controller in the keyboard, but some are buggy, and you’ll occasionally get 2-3 characters when you know for sure your hand didn’t actually bounce on the key, and because this intermittent behavior moves around the keyboard, you know it isn’t just bad switches.
Note that I didn’t have much luck with this idea, but YMMV, so here it is.
Here’s one way to make Windows 7 (and maybe Vista and XP?) do some bounce filtering for you. First, go to:
Control Panel, Ease of Access, Make the keyboard easier to use, (check) Turn on Filter Keys, Set up Filter Keys, Exit.
That will enable the filtering system, but with a stupid and painfully slow minimum auto-repeat rate of 300 milliseconds, so you have to manually edit 3 registry keys:
HKEY_CURRENT_USER\Control Panel\Accessibility\Keyboard Response
AutoRepeatDelay: 500 (1/2 second before auto-repeating starts) AutoRepeatRate: 50 (that's an auto-repeat of 20 CPS) BounceTime: 35 (i.e., don't accept repeats less than this many milliseconds, and it must be less than auto-repeat) DelayBeforeAcceptance: 0
The times are in milliseconds. Set the delay and repeat to what you usually use and set the bounce time a little less. You may have to play with it some to make it eat bounces but not intended double-letters. Do not open the Ease of Access panel and change anything or it’ll overwrite your settings with it’s stupid 300 millisecond defaults and you have to do your regedits over again. Note that after the registry change you’ll need to reboot or log-off/on to put changes into effect.
Now open a text editor and type something like
a a a a a a a a a a a a a a a a a a a a a a a as fast as you can, varying the pressure from light to heavy, and looking for missed or doubled letters.