Plan for NKRO in a Model M

User avatar
Muirium
µ

02 Nov 2013, 01:39

I've been elbow deep in Model M insides lately while doing a bolt mod. (I took lots of pictures and made some instructive mistakes along the way, so there should be a decent wiki article out of it. I'm almost done now as this post is coming out of the Model M in question.) Having learned what goes where, and what space there is to play with, I've cooked up an idea.

Anyone know some diodes that could fit in here?
photo 4.JPG
photo 4.JPG (282.12 KiB) Viewed 12857 times
That's all three layers of the membrane in place, lined up on the freshly fitted bolts. All the layers are translucent, so what you're seeing is the column layer above the perforated layer, with the rows underneath.
photo 5.JPG
photo 5.JPG (346.22 KiB) Viewed 12852 times
When the keys are pressed, the springs buckle and their hammers press these layers together, closing the circuit. The trouble is there are no diodes in this matrix, so it's far from NKRO. In fact, I run into rollover limits quite frequently just using routine shortcuts like Shift + Ctrl + Arrow Keys, which means this giant board is 2KRO!

My idea is to put diodes into the matrix. The obvious place (to an electronics neophyte like me) is right in the air gap in the middle of those layers. That needs some kind of thin film diode. Anyone seen any such thing? I know that diodes can be truly microscopic in size (there's a ton of them inside any logic chip) but are they available? It would need to be thin enough to still leave enough of a gap so that the key isn't permanently detected as pressed down, of course!

This is just at the wild idea stage. Other pitfalls include the IBM controller. The membranes could be hooked up to a Teensy instead, to end run any inherent rollover issues in this controller, or allergies to the voltage drop that diodes would bring. (Jabbing a regular diode's legs into the controller's sockets for rows and columns does work. I get characters showing up with it one way around, and nothing when reversed. So I don't expect this to be a problem, but who knows.) I'll also note that I'm not demanding full NKRO across the keyboard (especially if these imaginary diodes wind up being expensive), but putting diodes into choice weakspots on the matrix like the mods and arrow keys.

When you've 120 keys on your board, you kinda wish you could press a few more of them…

User avatar
Kurk

02 Nov 2013, 11:28

That would require very thin diodes indeed, and they would need to have a rather large surface area. They could be made possible by the same techniques as OLEDs. Organic diodes, maybe even printable. Still rather hypothetical for a hobby project like yours. And then there's the reliablility: I doubt that organic diodes would survive 10000 key presses.
It would probably be easier to fit in some SMD diodes in the conducting traces of the mylar sheets. The top sheet would probably work best because the rubber sheet gives you some slack there.
All in all a very daunting project.

SMD sizes:
Image

User avatar
Muirium
µ

02 Nov 2013, 11:40

You're probably right about putting diodes right in the jaws of a switch. Perhaps making a whole new membrane layer to replace the column sheet (closest to the rubber), with diodes included, is doable these days. I'd rather not take my clumsy chances modifying a working one. The board's really quite nice now besides its dodgy decisions in rollover.

"You never know you need NKRO until you do."

User avatar
idollar
i$

11 Nov 2014, 22:30

I have been thinking of your idea of a NKRO Model M. Personally, I do not have interest on this mod. but it challenged me.

With my experience in destroying membranes :-) I have come to the conclusion that it could be possible to create an ad-hoc membrane routing each point in the matrix to an external PCB. If this is done, you could place all the required diodes outside the sandwich. Complex but perhaps it is doable. One should start painting it ...

User avatar
NeoNoeN

13 Nov 2014, 06:31

Maybe you could harvest the stems from a model F with an undesirable layout and print your own PCB?

User avatar
Muirium
µ

13 Nov 2014, 13:52

Interesting ideas…

The M in question is just a 122 key terminal, my least favourite of all IBM layouts, so I wouldn't likely put an F in there unless I had a windfall of parts and fancied chopping the case to make an Unsaver.

iDollar's external diode matrix is… creative. I could see resorting to that if rollover was a showstopper when building a new controller into a Model M, for Bluetooth for instance:

http://deskthority.net/workshop-f7/blue ... ml#p185292

Fortunately, the SSK's matrix is pretty smart and hides its limited rollover well. That 122 key is the only IBM I've had with real, day to day computing, teeth gnashing rollover fail!

User avatar
ماء

13 Nov 2014, 14:34

flexible PCB fibre electrostatic would be great 8-)

User avatar
beltet

14 Nov 2014, 02:03

I heard a spokesperson from mionix that said that the Microsoft sidewinder (x4?) Bypasses this in a smart way.
Will try to find it again.

EDIT: the x4 have a special tracing that allows it for up to 27 key presses. You would need to make a new matrix for this solution, and problaby another controller.

Edit2: http://www.tomsguide.com/us/Microsoft-S ... 508-2.html

User avatar
hasu

14 Nov 2014, 04:32

Meanwhile Skydigital nKey-1 solved the problem with brute force :D

http://en.skyok.co.kr/product.php?code=605
http://patentscope.wipo.int/search/en/WO2009119947
skydigital_nkey.png
skydigital_nkey.png (33.1 KiB) Viewed 12375 times

Arakula

14 Nov 2014, 10:22

I'd be very interested in how this 2009 patent application holds up. Adding a set of diodes to the keyboard matrix to prevent ghosting definitely falls under "prior art".

User avatar
wcass

27 Nov 2014, 06:00

i actually did this and it does work. https://geekhack.org/index.php?topic=40111

I made the bottom "membrane" out of thin PCB and used one 1.5mm square diode array for each column. My biggest problem was with the poor quality of my DIY PCBs. Also, the custom top membrane was a bit expensive. When xwhatsit came out with a capacitive controller, i went that way.

If you want to do this, look at common anode TSV diodes like ...
http://www.digikey.com/product-detail/e ... ND/1680652

User avatar
idollar
i$

27 Nov 2014, 22:53

@wcass

I read the tread that you have pointed. Amazing work.
This was the idea that I proposed, but I never thought that it would be so complicated.

I could not find the picture of the "final product". Would you post one ?

Cheers

i$k

User avatar
wcass

28 Nov 2014, 06:01

From the top, the keyboard looks the same as it did in post 69. It is very primitive, but that thread is about NKRO and custom membranes - the keyboard is really just a proof of concept. The best "parts that work and how to put it together" pictures are in posts 172 and 174.

andrewjoy

28 Nov 2014, 10:51

i wonder if its possible to have a pcbs like xtant but to fit a model m case you could split the model m inner works and use the top of it and then put a new metal plate on the bottom and then hold it together with a boltmod ( model f springs and hammers )

now imagine all of that .......... in an SSK

User avatar
cookie

28 Nov 2014, 10:53

my question is, why is nkro even necessary? To prove that it is possible?

andrewjoy

28 Nov 2014, 10:54

i guess its not but only 2kro is unacceptable

User avatar
cookie

28 Nov 2014, 10:57

That is true!

User avatar
wcass

28 Nov 2014, 15:30

NKRO becomes more needed as the number of chords goes up. Games often introduce new chords (hence that demand), but as keyboards get smaller, there too. Desirable for 60%, more so at 40%, and mandatory for stenograph.

User avatar
vvp

28 Nov 2014, 15:35

If we ignore stenography then gaming is the only thing, I can think of, which would require to detect more keys at once. One hands drives a mouse and second one is on a keyboard. We have five fingers on one hand so 5KRO should do.

User avatar
wcass

28 Nov 2014, 15:50

The circuit design is the same for NKRO and [anything > 2]KRO. 6KRO keyboards are very common - these still have a diode at every switch. If N > 2 then the limitation on value of N is usually in the keyboard protocol.

User avatar
Muirium
µ

28 Nov 2014, 16:33

Exactly. Was 6KRO ever popular before USB came along? PS/2 and AT and XT were all inherently NKRO protocols (without the baggage that makes USB simultaneously NKRO and 6KRO…). I have a 2KRO Acer that's PS/2, and PS/2 Model Ms were rollover limited as well but not as critically. 6KRO is odd because it surely needs an NKRO matrix yet throws the prize away.

User avatar
Panter

03 Apr 2016, 11:09

A lot of time has gone by since this topic was active, but I believe there still isn't a solution to this problem. I do believe 5KRO or 6KRO would be good enough for most users, but the 2KRO must be keeping some people from using their Model M's completely irritation free.

Hak Foo

03 Apr 2016, 18:02

Photoshop used to, maybe still does, bind shift-control-alt-S to "Save for Web". That's the sort of key layout-- four in a square-- you'd expect to lock out on a naive matrix design. It's a corner case for sure, but I could see it failing on a common 2KRO design easily.

User avatar
idollar
i$

03 Apr 2016, 19:37

Panter wrote: A lot of time has gone by since this topic was active, but I believe there still isn't a solution to this problem. I do believe 5KRO or 6KRO would be good enough for most users, but the 2KRO must be keeping some people from using their Model M's completely irritation free.
The solution is the FSSK (working) and FEXT under prototyping phase:

workshop-f7/f-ssk-t10744.html

xwhatsit controller.

User avatar
Panter

03 Apr 2016, 22:00

idollar wrote:
Panter wrote: A lot of time has gone by since this topic was active, but I believe there still isn't a solution to this problem. I do believe 5KRO or 6KRO would be good enough for most users, but the 2KRO must be keeping some people from using their Model M's completely irritation free.
The solution is the FSSK (working) and FEXT under prototyping phase:

workshop-f7/f-ssk-t10744.html

xwhatsit controller.
Thanks! I didn't know about the FEXT, and sort of forgot about the FSSK, probably because I prefer to have a numpad :P

User avatar
idollar
i$

03 Apr 2016, 22:37

Panter wrote: Thanks! I didn't know about the FEXT, and sort of forgot about the FSSK, probably because I prefer to have a numpad :P
Well, I will order some FEXT prototypes together with the FSSK. They even have a pad between the ALT and the CONTROL, right and left side. Lets see if it works as good as the FSSK does.

User avatar
Panter

03 Apr 2016, 22:45

idollar wrote: Well, I will order some FEXT prototypes together with the FSSK. They even have a pad between the ALT and the CONTROL, right and left side. Lets see if it works as good as the FSSK does.
I'm going to spend the next few hours reading up on everything there is to know about the FSSK and FEXT, and I assume all of that will be on the forum?

User avatar
idollar
i$

03 Apr 2016, 22:59

Panter wrote:
idollar wrote: Well, I will order some FEXT prototypes together with the FSSK. They even have a pad between the ALT and the CONTROL, right and left side. Lets see if it works as good as the FSSK does.
I'm going to spend the next few hours reading up on everything there is to know about the FSSK and FEXT, and I assume all of that will be on the forum?
Read the first post here: workshop-f7/f-ssk-t10744.html#p231963
And follow the links. I have sumarised the 22 pages in the first post

Ask me if you have any question after this reading

User avatar
Panter

04 Apr 2016, 15:45

idollar wrote:
Panter wrote:
idollar wrote: Well, I will order some FEXT prototypes together with the FSSK. They even have a pad between the ALT and the CONTROL, right and left side. Lets see if it works as good as the FSSK does.
I'm going to spend the next few hours reading up on everything there is to know about the FSSK and FEXT, and I assume all of that will be on the forum?
Read the first post here: workshop-f7/f-ssk-t10744.html#p231963
And follow the links. I have sumarised the 22 pages in the first post

Ask me if you have any question after this reading
Although I love a good summary, I couldn't help myself but read all 22 pages:P
The only question I have is whether there is a possibility to still connect this keyboard to an old ps/2 port? I have two computers, one old and one new, and really want to use one keyboard for both the computers.

User avatar
idollar
i$

04 Apr 2016, 17:40

Panter wrote: Although I love a good summary, I couldn't help myself but read all 22 pages:P
The only question I have is whether there is a possibility to still connect this keyboard to an old ps/2 port? I have two computers, one old and one new, and really want to use one keyboard for both the computers.
No, you cannot without a converter. The xwhatsit controller is USB only. You would need a USB to PS2 converter. I do not know if they exist

Post Reply

Return to “Workshop”