3 ms·
Indeed there are now lots of high-end keyboards with no (or effectively almost no) keyboard-matrix ghosting problems. Actually, many of them still have USB-rela
by leoc 13y ago
Indeed there are now lots of high-end keyboards with no (or effectively almost no) keyboard-matrix ghosting problems. Actually, many of them still have USB-related rollover limitations: it's hard to fathom how someone can design a brand-new USB keyboard with no rollover limitations in the keyboard matrix, price it at $100+, and still not think (or bother?) to implement the obvious multiple-USB-keyboards workaround—looking at you, Razer!—but there you are. Still, you can find ones (like the Sidewinder discussed in the OP) with competent USB, or you can fall back to PS/2 (welcome to the future).
To my mind the interesting problem is how to get NKRO down into every keyboard. I'm sure it's possible with sufficiently clever engineering, but even with an almost-zero cost burden over bog-standard 2KRO this is almost certainly one of those frustrating situations where mass quality is achievable but only if you can get customers and manufacturers to know and care enough.
> Sure its more expensive than the $0.75 AVR chip they currently use but we're talking high end keyboards here.
Would extra PCB layers would be another significant source of increased cost here?
- tehwalrus 13y agonot an expert but: I was amazed when my Das Keyboard came with a USB->PS2 adapter, and said to use the PS2 to get N-key rollover (I think it's limited to 6 on USB.) I am still slightly amazed every time I remember that the older format is higher spec - although I assume it is something to do with bandwidth on a "serial bus" (especially since most keyboards are forced to run at USB1.1 speed, for some reason). Anyone who can explain these mysteries is welcome to reply :)
- leoc 13y agoI'm not an expert either, but afaik it's not a speed issue, just an issue of compatibility with USB's standard driver-spec-thingy for keyboards: its authors decided that six keys (plus modifiers, iirc) should be enough for anybody, right?
- ChuckMcM 13y agoPage 59 of the USB HID Spec [1] is the offender, it states: The following table represents the keyboard input report (8 bytes). Byte Description 0 Modifier keys 1 Reserved 2 Keycode 1 3 Keycode 2 4 Keycode 3 5 Keycode 4 6 Keycode 5 7 Keycode 6 Which is where the 6 key roll over comes from. However this is really the minimum implementation so that BIOS'es can use USB keyboards. If you read the spec carefully there isn't anything that says you can't implement a different reporting structure, as long as your HID driver is expecting it. My guess is rather than ship "special" keyboard drivers they just use the standard one, and they opt to use PS/2 connectors which work in the same way (they are really just a serial port and can send as many keys as they want) for the 'corner' case of full n-key rollover. [1] http://www.usb.org/developers/devclass_docs/HID1_11.pdf http://www.usb.org/developers/devclass_docs/HID1_11.pdf
- tehwalrus 13y agoThank you. So the issue is that Das can't be bothered with coding and maintaining custom drivers for every OS under the sun. I guess that's fair. Also, I've never actually run into a problem using it over USB on a Mac or PC, so I guess it can't be that bad! (I do play games, but this keyboard goes on my work machine in whichever office that is.)
- leoc 13y agoYou don't even need to code custom drivers though, you can just present the keyboard as multiple keyboard devices to the host.
- ChuckMcM 13y agoIn the case of a keyboard you would not need more than 4 layers even for a fairly dense ball grid chip because you have lots and lots of space (the keys require spacing) and that lets you run traces fairly circuitously. But a 4 layer PCB is about 2.5x the cost of a two layer board in the designs I've done, and still the cost of the PCB is quite small. (One design I did a two layer version was 0.85 per PCB (4 x 3.5") and when I pushed it to four layers to get down to under 4 x 2" it was $2/PCB so 2.35x the cost.)
- oakwhiz 13y agoThe method that some manufacturers are using to obtain NKRO is to have the USB keyboard enumerate as several HID keyboard devices at once, and map physical keys to virtual keyboards.