how does membrane keyboards avoid ghosting?

sandric

31 Aug 2015, 00:32

Hi, I'm new here, so sorry if question may sound dumb.

I read this wiki article http://deskthority.net/wiki/Rollover,_b ... d_ghosting but still can not understand it fully. In article it is saying that ghosting avoiding on non-pcb keyboards with simply ignoring 3-rd pressed button. But how then you press say ctrl+alt+anykey on regular rubber dome keyboards? Is it that modifier keys are ignored in such "3-rd press ignoring" (sorry for tautology), via simply wireing it as separate input and output (not via matrix) pins on controller?

If its the case - how then I'm able to press three keys simulteneusly with my typematrix, which is membrane too, but for which I made an arduino+usb-host-shield reprogrammator for it, so I programmed it for modifier to be regular keys, so I guess the thing is not in the wireing membrane physically)?

I'm asking because I'm creating now "my own" planck keyboard, just without mechanical switches (have no money), so I want to make my own membrane with conductive glue. So, is there some way to avoid such ghosting at some precision? I know that its somehow doable in regular keyboards with modificator keys, but don't understand how, is there any guide online how to make those membranes the best possible way?

thx

User avatar
Muirium
µ

31 Aug 2015, 00:40

Rollover is the *minimum* number of keys that can be reliably detected at once. Any old 2KRO keyboard (the typical number for a membrane) can prioritise its mods and various combos the designers have smartly identified as important. That's what makes IBM's membrane powered Model Ms useable, despite being mere 2KRO! I routinely use multiple mods + arrow keys in my work with no problem. Because of design.

But if I try to press WASD down in sequence, I find the rollover pretty quickly. IBM didn't design with that in mind.

Findecanor

31 Aug 2015, 01:17

The page on Microsoft's site (linked to from the Wiki article) is pretty good at explaining ghosting. A ghost condition happens if you have three simultaneous presses in a rectangle in the matrix. That is: two keys are pressed (A and B), and then a third (C) - and the third (C) that shares row with A and column with B or vice versa -- but the controller can not determine which key C is: is C the key that shares row with A and column with B or the key that shares column with A and row with B ... or are the keys in all four corners pressed?
What the controller then does (should do) is to ignore that key press until keys have been released so that the ghost condition no longer occurs.

Membrane keyboards (and other keyboards without diodes) tend to have sparser matrices with lots of holes in them, and they tend to be optimized for certain key combinations ... at the expense of others.

Microsoft should have on their web site a list of key combos that a Windows keyboard must support. (If only I could find it again, but apparently not....) What I remember is that all reasonable combinations of modifiers and a single alphanumeric key are required to work.

sandric

31 Aug 2015, 01:43

Ok, I think I get it - I will just make all of mine modifier key as one row - so that making two modifier plus a key will not be a problem then, this is all I need. About the keys - ok, I think I get it - the problem was that I can not understand how does arduino could understand such rectangular allowance/disallowance of third key. I think its all much easier - this ignorance logic should be in typematrix circuit itself, and my arduino was getting already filtered data.

Making my own membrane will not give me such present...

Anyone ever saw guides about making your own membrane keyboard? I was thinking to make it with conductive glue also known as conductive ink, but saw at geekhack people say there some bad conductivity issues with long lines membrane...

User avatar
dorkvader

31 Aug 2015, 06:37

The KB on the razer blade laptop has all the keys broken out individually and has 2 epic-size ribbon cables connecting it to the MB. While I haven't tested it for NKRO it would be very easy to do, with that setup.

Making conductive membranes is hard. It would be a lot easier to just make a lower PCB and re-use the upper membrane and separator that the KB already has. Such a setup would be NKRO compatible (depending on the lower PCB design of course) and very reliable.

sandric

31 Aug 2015, 11:06

dorkvader, yeah, I was even thinking maybe to use my mega arduino for 50+ inputs, but then I thought I'll just kill myself during creating such crazy membrane.

As for lower-pcb I think its actually a great idea! The thing is that I'm building my kb on apple pro kb, which metal stand is curved, so there could not be pcb placed... But now I actually think its much more easy to do actually - I'll make all columns design with diodes on lower pcb, and for membrane all is left is just four lines for four rows, which is simple so I can probably have no problem make it from conductive tape instead of glue. Those nkro should be achieved.

P.S. Now when I think about it, I have even crazier idea.. On Apple Pro there's a separate rubber "pimp" for each key. MAybe its possible to make it conductive switch from it somehow? That way I can eliminate even upper membrane layer making it all with one layer solid pcb? I mean to apply conductive glue on rubber itself. Does anyone ever made such thing?

Findecanor

31 Aug 2015, 14:48

Rubber domes with conductive rubber on the bottom over a PCB has been done. That is most common on calculators, keypads, remote controls, gamepads etc.

There are some pictures in the Wiki of the innards of the BTC 51X9 series that work that way.

BTW, where in the world are you located? You can sometimes get old Cherry keyboards on German eBay for very little.
Sometimes you can find some mechanical point-of-sale keyboard for little money, and those often have diodes and orthonormal layouts but are often larger than Plancks.

sandric

31 Aug 2015, 18:45

Findecanor, I'm in Ukraine, so everything is bad)). But if you can provide some links to such keyboards I'll be much appreciated, I'm just pretty noob in finding ones. I tried make some search on ukr. boards, and found some semi-mechanical keyboards, which make little difference for me compared to membrane in terms of manufacturing. Found only one - some Dell with Alps, for about 2000 Grywnya's, which is smth about 90 bucks..

But I'm actually full of enthusiasm to make one with pcb-lower layer. Already bought in local store big piece of Glass fiber to fit the whole bottom with about 30 sm in width and bunch of diodes. I will actually try to make it even conductive way, without upper level matrix if succeed - I bought some conductive glue, will make some experiments tomorrow trying to convert those ordinary apple pro rubber domes to conductive ones.

Post Reply

Return to “Keyboards”