Live data from Hacker News

Keyboard Ghosting Explained

microsoft.com

21–30 of 99 posts

Re: Keyboard Ghosting Explained

#21
post #11

> The internal electronics on the SideWinder X4 use a variant of resistive multitouch technology. Each key has a screen printed resistor in series with its switch. This allows the internal electronics to read the state of each key switch independently for very large multiple-key combinations. This is pretty vague. How exactly does this disambiguate which keys are being pressed?

The resistors change the voltage of the resulting signal. So the Microsoft keyboard probably checks whether the circuit is closed and the voltage to determine which keys are actually pressed.

Re: Keyboard Ghosting Explained

#22

I like how they mention keyboard manufacturers using the term up to as a way to deceive customers, and then in the next paragraph mention the same phrase when referring to the Microsoft keyboard. 'Another marketing strategy is to state that the keyboard allows "up to" some large number of key presses.' 'Microsoft's SideWinder X4 features multitouch technology that allows it to detect, and report ANY combination of QW…

It seems to be largely-non-misleading in this case though, since the Sidewinder can apparently do "[a]ny combination of up to 17 Alphanumeric and Navigation keys" http://www.microsoft.com/appliedsciences/content/projects/Si... . The only gotcha is that numpad keys share in that same any-17-keys pool.

Re: Keyboard Ghosting Explained

#23
post #8

Fun Fact: The standard USB keyboard protocol can't handle more than... 6? non-modifier keys being pressed at the same time. IIRC, to get past this, all you need to do is emulate a hub with fifteen or twenty keyboards attached. Then you can press every key at once!

Yup. I'm using a Das Keyboard, and can only get six keys at a time on their applet. One way some people get around this is by using PS/2.

Re: Keyboard Ghosting Explained

#24
I am always amazed that keyboards still do this. We have scanning matrices because back when I was a new engineer pins on a microprocessor were both expensive (larger packages) and they required more gates in the CPU (more expensive CPU) or chip doing the scanning. Today transistors are free and surface mount BGA packages can put down a lot of pads pretty simply[1]. So your typical 104 key keyboard could actually have 104 actual wires that the CPU scanned. And even if you don't want to put down a 144 ball BGA (that is only 12 balls by 12 balls, logic is fast enough that you could connect all of the keys to a bunch of serial shift registers, and scan a complete bitstream of all keys 1000 times a second. Easily matching the reaction times of humans.

So where is that keyboard?

Just to be crisp here, an STM32F429 can have 135 digital I/Os in the 208 quad flat pack. It also has a megabyte of flash and 192K of RAM. It also has a USB Phy built right in so you can just wire it up to a USB connector. Its $8 in 1K quantities in that package. So parts : chip, PC board, 120 or so switches and plastic case and key caps. Sure its more expensive than the $0.75 AVR chip they currently use but we're talking high end keyboards here.

Re: Keyboard Ghosting Explained

#25
post #19
post #12

Earlier quoted context omitted.

Welcome to 1998 :) http://en.wikipedia.org/wiki/File:Apple_USB_Keyboard_B.jpg

And this was continuing the practise of Apple's previous Apple Desktop Bus keyboards (like the beloved M0116 http://deskthority.net/wiki/Apple_Standard_Keyboard ) which had ADB ports on both sides, mainly so that you could daisy-chain the mouse onto the keyboard. It's really dismal that this hasn't become standard on USB keyboards.

The extended AT layout one always seemed to be more beloved: http://deskthority.net/wiki/Apple_Extended_Keyboard

Back then Macintoshes were advertised as "keyboard not included" so Apple got to soak you for a very well-engineered item.

Re: Keyboard Ghosting Explained

#26
post #10
post #2

Microsoft make some of the best keyboards there are. Just did some tests on my Sidewinder keyboard, no issue at all there.

Microsoft used to make some really good keyboards. But about 8 years ago they started making junk. The last MS keyboard I could actually type on was the Wireless Multimedia one (now discontinued). Keyboards in the last few years have had: - Mushy key feel. I can't tell when I've actually done a keystroke. - Keys that are hard to strike (need to press on them just right, or they hang up or don't register). This is par…

If you like laptop style chicklet keys (you may not), Microsoft's new sculpt ergonomic keyboard is pretty nice. I replaced my natural 4000 with it recently and found it much nicer on the mushiness scale. It's pleasantly clicky, but not cherry clicky. It even fits in a bag much better due to the detached numeric keypad. The mouse seems a lot better than the one that came with the 4000, enough for me to overlook the lack of extra buttons compared to my logitech G500. My one gripe is the positioning of the period key seems just a little off, something that has taken a few months to get used to hitting without miskeying.

Edit: incidentally, this keyboard, despite being fairly new, only gets 5 or 6 keys on the rollover test at the top of the article

Re: Keyboard Ghosting Explained

#27
I wrote a shoot 'em up for PyWeek and I got a report from one of the judges of the challenge saying the controls didn't work very well. I didn't know what was going on at first, because looking at the code it was "perfect", but turns out using the arrow keys for direction and space for shooting was a bad idea because a diagonal movement (up and left) when shooting won't work in some keyboards.

Since then I use z for shooting and problem solved :) Avoid three keys combinations in the same area of the keyboard and it will be fine.

Re: Keyboard Ghosting Explained

#28
post #27

I wrote a shoot 'em up for PyWeek and I got a report from one of the judges of the challenge saying the controls didn't work very well. I didn't know what was going on at first, because looking at the code it was "perfect", but turns out using the arrow keys for direction and space for shooting was a bad idea because a diagonal movement (up and left) when shooting won't work in some keyboards. Since then I use z for…

Arrows and space are the same area of the keyboard?

Re: Keyboard Ghosting Explained

#29
post #2

Microsoft make some of the best keyboards there are. Just did some tests on my Sidewinder keyboard, no issue at all there.

My Microsoft Natural Keyboard 4000 has some really annoying ghosting that forced me to remap keys in at least one game because I couldn't move using the arrow keys and shoot at the same time.

Re: Keyboard Ghosting Explained

#30
post #27

I wrote a shoot 'em up for PyWeek and I got a report from one of the judges of the challenge saying the controls didn't work very well. I didn't know what was going on at first, because looking at the code it was "perfect", but turns out using the arrow keys for direction and space for shooting was a bad idea because a diagonal movement (up and left) when shooting won't work in some keyboards. Since then I use z for…

Arrows and space are the same area of the keyboard?

In my keyboard (an ultra compact keyboard; and apparently in that judge's keyboard), they are.

I didn't know about "keyboard ghosting", but with z (or x) and the arrows it doesn't happen, so I assumed it was because the space key is close to the arrows and because some internals of the keyboard it can't register three keys down at the same time in the same area (but the arrow keys and z works just fine).

Post reply on HN