View Single Post
  #9  
Old February 13th 17, 10:31 AM posted to alt.comp.hardware
Mike S
external usenet poster
 
Posts: 78
Default hp elite kbd, keys not working

On 2/12/2017 8:24 PM, Paul wrote:
Mike S wrote:
On 2/12/2017 6:46 PM, Paul wrote:
Mike S wrote:
I bought an HP elite v2 kbd because it has such great action, it's the
fastest kbd I've ever used. After about a year the End key stopped
working, today the C, D and E keys stopped working. Does anyone have
any experience with these kbds? Do they die off after a year or so?
I'm going to take it apart and see if there are any easy fixes, any
comments would be interesting to hear.
TIA,
Mike

Keyboards use a scanning matrix.

For example, a chip could have a 7x17 matrix, using 24 pins.
One set of pins are sources, the others detect key closures.

When a "set" of keys die, they're probably sharing one of
those wires. Only if the contacts under a single key fail,
would you lose just one key. When you lose a set of keys,
that's a problem with a scanning wire or scanning wire input.

Keyboards can be N-key rollover, or 2-key lockout.
The N-key rollover, uses a diode per crosspoint
in the scanning matrix. It helps isolate one switch
closure from another, and prevents things such as
"ghosting" if three keys are pressed. Not many keyboards
spend an extra five bucks to do that. (I built my own
keyboard, and included those diodes on each switch position.)

As for the wiring pattern of the "matrix", the letter
assignments don't have to make a lot of sense. I needed
a fair number of feedthru wires on my PCB layout, to allow wiring
connections around one another. My home-made PCB didn't have
plated vias, so when a signal went from one layer to another,
a wire was soldered through a hole, to join the connections
together.

The scanning matrix is generally high impedance. Some of the
scanning wires might have been up around 100K ohms or so.
This means, it might not take a lot of dirt or debris to
upset it. Maybe this was an attempt to reduce emissions
from the keyboard or something.

In addition, the scanning process uses "debounce". When the key
closes a scanning matrix location, the conductor does not immediately
sit flat on the connection point. There tend to be springs in
keyboards, flexible materials, and they cause contact bounce. The
keyboard only declares "closure", after three keyboard matrix
scans in a row, show the same closure pattern. Then the keyboard
knows "it's a sure thing", once it has eliminated the possibility
of bounce. The bounce interval selected, should exceed any possible
spring time constants.

The closest thing to a "bounceless" contact, might be
keys with Hall probes and hysteresis. And that would be
an expensive keyboard. The keys in that case, use magnetism
to indicate their presence. The Hall probe sense a magnet
is pressed against it, or not. No contacts to wear out,
but the keys themselves can eventually mechanically fail.

You can still get 10 million cycles from a membrane keyboard.
That's what some of the manufacturers will claim, and there
are machines you can use to verify lifetime. We used to have
two big machines at work, which used to bash on keyboard-type
devices as part of reliability testing. I only got to see
those on a walking tour, so never got to ask any questions
about why the machines were so big.

Paul


Paul, thanks for the interesting details. Does your kbd have good
'action', for me that means not having to press the keys too far, or
with too much pressure, so a light touch allows faster speed? Did you
post the procedure on lifehacker or anywhere? And what did your cost
if I may ask?


This was a long long time ago, back when I was working on my
TMS9900 project (yes, the ceramic one with gold plated pins).
I actually got this running. Considering the construction
techniques, it's a miracle.

https://en.wikipedia.org/wiki/Texas_Instruments_TMS9900

The keyboard would be considered "totally irrelevant" to todays
computing - no Windows key :-) The basic key matrix was from Jameco.
I did a PCB that was at least 12" wide and 6" deep. Copper tracks
were drawn with India Ink, etched in ferric chloride, and so on.
I didn't even use Photoresist. That was perhaps the largest PCB
I ever made by hand. Transferring the drill pattern to the
PCB was... interesting.

(The layout would be similar to this one... Very basic QUERTY.)

http://www.applefritter.com/sites/de...es/fig2-17.jpg


The really fun part, is you don't insert the keys into the PCB
one at a time. The keys come in a plastic frame, so you have
to manipulate the frame as one monolithic unit. You bring the
PCB up to the base of the keyboard. Well, guess what ? A
hundred-plus springy wires have to be poked into the PCB holes.
I used things like a bicycle spoke, to manipulate the legs on
the keys and guide them into the holes (one... at... a... time...).
It took me around two hours to finally "home" the key matrix,
into the PCB. Then solder it into place, so it could not escape :-)

That keyboard is still around here somewhere. I've lost track
of it.

It's the principles I learned while building it, that stuck
with me. The keyboard itself never saw a lot of usage. The
computer had no software. You hand-assembled code using the
instruction set documents. So there wasn't much chance of
"doing Notepad" with the thing. It was barely a computer.

Also, the concepts have slightly changed since then. Those
keyboard encoders only had "key down" codes. If you typed
the letter "Q", that byte of data was sent across a parallel
ribbon cable, along with a strobe signal. Whereas modern
keyboards send "key_down" and "key_up" codes, as a function
of whether the key is still depressed or not. The basic
functional description remains the same, but some of the
details are different. You have a better ability to keep track
of what is going on, with the modern keyboard.

Paul


That was an ambitious project. Yes being able to detect the keydown or
keyup is useful in programming.