geekhack Community > Keyboards

Rollover, where keyboard data might go, and ramble

<< < (3/3)

I'll be a closet n-key rollover guy, no one needs to know.  I just need to know I can PWN!

The (mostly likely) reason to want n-key rollover is not so you can press 20 keys at once but that you can be sure you can press any keys at once with no question to that ability.  Any section of the keyboard is different than any other section in physical layout (on a standard 102/3/4 ibm keyboard), so you really want that option, especially for games, to choose which section of the keyboard you're using.

I'm not a WASD guy (regarding FPS)...never was.  I think I started with arrows in Doom 2, although I'm not sure.  At some point (no recollection of when or why), I picked up a hands-crossed-over setup where I use the full numpad (must have done this playing Ice & Fire) and now to this day, Counter-Strike: Source.

I've got a picture of the crossover if you can't imagine why or how someone would do that; it'll go up my solutions page probably with a short blurb about n-key rollover.

You need to understand that a grain of rice is very important to how the keyboard will respond.  On top of the metal plate is the bottom membrane, with the connection circles and paths.  it is separated by a sheet of similar thickness of the membranes, with holes for the contacts, and a top layer.  They lay flat on top of one another.  On top of them is the black sheet, and then the plastic keyboard shell which houses the springs/pedals and on top, the keys.

I guess I did forget that there is some room under the plastic key-holding shell; however, 100 grains of rice in between the membranes will have what I'm guess will be a serious effect on typing feel and possibly performance.  With a bunch of rerouting I'm sure it's very doable.  It's just then going to take a lot of engineering time.  I'd prefer flatter diodes. :p

I wish Dave Dribin would have been clearer on why it is switching diodes (or these! switching diodes) we want.  I guess it sounds 'okay' enough from a limited technical perspective, but did he measure up voltages (will I have the appropriate amount to beat clamping voltage)?  Does the Radio Shack clerk mod keyboards?  If i could slip this stuff in/out without a lot of planning, a few bucks for diodes may not be a big deal.  However...reality...

Cost VS Invasiveness VS Time

I suppose as a test it is really only important I fix up one set of keys that interferes (after proving I can predict what keys interfere).


--- Quote from: Mikecase00;2692 ---I'm not an avid gamer anymore, and I can't speak to your laptop or any other keyboard, but I've got to think that a PS/2 connected model M (with its 16 char buffer) would be more than sufficient.  Plus, can't you re-map keys to work around the 2x2 block issue?

I think I read once that USB spec for keyboards is somehow more limited than PS/2 in the number of keys they can support pressed all at once.  If that's the case, USB keyboards (of which most are these days) are poor choices for gaming because it's the interface that's the limiting factor.  Upgrading the board with additional electronics isn't going to make the USB pipe any better.  If your only connection option for a Model M is USB you'd be out of luck as well.

To have full n-key rollover support you need several things.  Starting with the keyboard, it needs to register multiple key presses independently, not as blocks with other keys.  The board needs an on-board char buffer to temporarily hold key press data until the computer is ready to receive it, not just dump the key presses to the interface as they come in.  The keyboard to computer interface needs to accept and support transmit of multiple key presses simultaneously, and finally the OS software needs to be able to support n-key rollover.  

Before I got out my soldering iron I'd adding things to the keyboard, I'd want to make sure everything downstream of my board can accept the additional key press data.  Otherwise you'll end up with a kick-ass keyboard that performs exactly like the $5 Officemax special.
--- End quote ---

Well, yeah, you can re-map controls, but it can start getting to be a pain in the ass- especially if you're trying to do two directionally-dependent actions (the qwa combination happens when moving forward, firing to the left and steering to the left).  The masking is pretty clearly happening because of the overlay of the matrix mapping, which diodes would eliminate.  (Not that I'm planning on trying anything like this on my notebook- at least not until I've got a really good handle on it)

Yeah, as I understand it, the USB protocol only supports 6 characters at a time- I guess the protocol committee members weren't gamers.

The Model M 16 character buffer is a great thing, and one of the reasons I think that it'd be worth popping diodes in the matrix.  I haven't got a Model M yet, but from what I understand, it does exhibit ghosting and masking of keys in certain combinations- which is exactly what diodes would fix.  Frankly, etching a circuit board wouldn't be all that big a deal- scan the contact sheet from the keyboard, invert the image, print it out on a laser printer, iron the the toner onto the board, dip it in etchant, wash it and buff it, drill the holes.  A few hours work at most.  The only possible problems I see are fitting it in the case, which I don't think should be too hard- at worst, you could pull the metal plate out- and whether the carbon would make a decent contact with copper.  Even if it didn't, drops of conductive ink over each spot should fix that.  Besides, hacks don't need to to make sense- they're done for the fun and the cool factor.  The more obscure and arduous the process required to come up with a slightly improved product the better, at least for the bragging rights . :D

Selling "xRAREx IBM Skeletor(tm) Model M xRAREx"!

Working keyboard, numlock is on :)

It's a ***** to try to get those membrane leads to connect together and get the controller board to mate at the same time.  I used 4 magnets and hoped I lined everything up.  Hopefully I don't accidentally zap anything when the leads get knocked out of alignment!

I don't know if etchant is also a surfactant or something horrible...maybe instead of this PCB bollocks (which seems to me still requires the membrane to be altered or a new one created), why don't I print toner on a transparency sheet (17x11) and etch from there, and then just work with a component test board?  Someone forgot how pcb etching works.  :rolleyes:

I'm not really a believer in death and destruction for the sake of discovery unless the achievement can be proven great and unattainably only with said death and destruction.  I know my Model M is broken, but I am SIMULTANEOUSLY! trying to fix it and learn from it.  :D


--- Quote from: Nonmouse;2696 ---Yeah, as I understand it, the USB protocol only supports 6 characters at a time- I guess the protocol committee members weren't gamers.
--- End quote ---

The 1N4148 diodes are very typical for this application.  The '914 is also acceptable.

There are some keyboards that use their own driver, and hence overcome the 6-key limitation of USB.  You also need to consider that low-speed USB has a report rate of only once every 10ms, whereas a full-speed USB keyboard could be as fast as 1ms (you need to look at the USB descriptors to know).  Sorry I don't know which keyboards fit this bill, but I'm sure those that do advertise it because it's very important -- just like the rollover issue.

You might also want to consider a programmable add-on keypad. makes some.  The ControlPad 683 (and similar) are low speed USB, but you can stack up keys in macro format (if that helps) or map the keys how you like.  In themselves the 683's don't have n-key rollover, but with the macro capability you might not need it.  The MiniTerm family (900 series) is full speed and I think they have a 2ms report rate.  Again they don't support n-key rollover but they have an HID mode that supports limited macros.  Anyway, an add-on keypad from wherever might solve some of your gaming issues.

Thanks for the info grantb3.

And welcome to geekhack!  ;)


[0] Message Index

[*] Previous page

Go to full version