I hit this problem outside the normal context: We use a PC based computer in a piece of hardware we deliver to US Military. Project has been in produciton for 10 years (over 1000 units). We're testing a new version and went to a new computer and are now
using Windows 7 (from XP). In one system, (of the 6 recently built) we encountered the stuck Cap-locks and/or Control key.
As an Engineer, I suspected electrical fault with the keyboard but did not find anything obvious. Started the web search and came upon this uSoft page. So I would like to inform MicroSoft of what I discovered.
First, it's NOT a fault with worn-out keyboards (or the membrane). I can easily reproduce the problem with multiple external keyboards on ANY PC-based computer running Windows 7. I'm using a Mildef keyboard model KE89B which comes up as a SUPERGATE Keyboard/USB/etc
device (http://www.mildef.co.uk/products/keybord see their IP54 keyboard) . I only have the problem with OLD vintage keyboards, not their newer units (Built beyond 2013). II noticed the newer vintage
keyboards come up identied as CYPRESS devices. The SAME drivers are used for both vintages, however.
I connected 'normal' external USB keyboards to the computer and saw that they worked fine. Using an O-scope, I recognized that the keyboard was a FULL bandwidth keyboard. When I watched the old (bad keyboard) I noticed that it was functioning as a LOW
bandwidth keyboard. Since I have both old and new KE89B keyboards and the old fails while the new passes AND they are both low bandwidth, we can state: Low Bandwidth keyboards
may cause the stuck Caps Lock key depending on the type of device it is identified as. In other words, it would appear as if USB chips in some keyboards, are not fully compient with USB protocol such that they are 'fooling' the uSoft drivers into
thinking that the left Shift and/or Control keys are pressed.
BTW: You can avoid/correct the problem by simply hitting the left shift key each and every time AFTER you press the Caps Lock key. That ensures the case is correct (and matches the Cap Lock LED). The left shift key also unlock the stuck Control key if
that happens.
My advice for MicroSoft is to attach a USB protocol analyzer to the keyboard USB bus and look for timing issues that can confuse the driver. Obviously, a bad keyboard would be most helpful, so I would suggest trying to locate a device like what I used:
SUPERGATE USB, Low bandwidth. BTW:, the drivers that come up for 'bad' keyboard are:
SUPERGATE USB Keyboard w/ PS/2 Mouse Port: 6.1.7601.17514
SUPERGATE Composite USB device: 6.1.7601.18328
SUPERGATE USB Keyboard Mouse: 6.1.7600.16385
I suspect that it's a corner-case bug with the Low Bandwidth protocol in that somehting is being 'dropped' out because of the much slower rep rate (16 msec vs 1msec). Makes me wish I knew more about USB protocol....
Hope this helps the Microsoft Engineers!!
-Mike
PS: Perhaps other folks that have this problem can provide uSoft with what device type their keyboards/Human Interface Devices/USB controllers are being identied as - Maybe their all Supergate!!! LOL