Author Topic: What's this?  (Read 5198 times)

0 Members and 1 Guest are viewing this topic.

Offline dmw

  • Thread Starter
  • Posts: 84
    • http://humblehacker.com
What's this?
« on: Fri, 31 October 2008, 17:57:38 »
A whole message board for keyboard geeks?!  Where have you been all my life? :D

I have had something of an obsession with computer keyboards since my first computer (a Tandy color computer 2).  I envied those that could afford "real" computers with detachable keyboards, so I removed the keyboard from the case, acquired a numeric keypad, and combined the two in a custom case crudely fashioned from cheap pine.  I wish I had kept it.  It would go good in my collection.

I have used and loved many keyboards over the years.  I'm currently typing on a Kinesis Contoured keyboard.  Other notable keyboards I have used:

  • IBM Model M (heavy, loud, serious)
  • Northgate OmniKey (best keyswitches ever)
  • Darwin keyboards Smartboard (now defunct (the company, not the board))
  • Fingerworks Touchstream ST (Gestures! I miss them.)
  • Happy Hacking Keyboard Pro (control key where it oughta be!)
  • TypeMatrix 2030 (Tightly compact.  Good things come in small packages)


I still have them all.  Can't get rid of them. :)

I'm currently in the process of building my own keyboard based on my experiences with most of the above keyboards.

Anyway, just wanted to say hi, and say that I'm glad that I found this place.  It looks like an interesting place to hang!

Offline karlito

  • Posts: 157
    • http://altitudegame.com
What's this?
« Reply #1 on: Fri, 31 October 2008, 20:27:35 »
welcome and nice collection.

Offline D-EJ915

  • Posts: 489
  • Location: USA
What's this?
« Reply #2 on: Fri, 31 October 2008, 21:44:10 »
welcome to the forum!

Offline wellington1869

  • Posts: 2885
What's this?
« Reply #3 on: Fri, 31 October 2008, 21:50:02 »
Quote
A whole message board for keyboard geeks?! Where have you been all my life?

Seriously. ;)
 
Quote
I'm currently in the process of building my own keyboard

Whats it going to have/look like?

"Blah blah blah grade school blah blah blah IBM PS/2s blah blah blah I like Model Ms." -- Kishy

using: ms 7000/Das 3

Offline iMav

  • geekhack creator/founder
  • Location: Valley City, ND
  • "Τα εργαλεία σας είναι σημαντικά."
What's this?
« Reply #4 on: Fri, 31 October 2008, 23:34:17 »
Welcome to geekhack dmw!

We definitely need to see pics of your keyboards.  ;)

Offline dmw

  • Thread Starter
  • Posts: 84
    • http://humblehacker.com
What's this?
« Reply #5 on: Sat, 01 November 2008, 09:12:00 »
Thanks for the warm welcome!  I've never photographed all of my keyboards together, I'll see what I can come up with.  Not sure they'll all fit into one frame! (Maybe I'll have to hang the camera from the ceiling ;))  I'll post the pic over here when I have it.

About the keyboard I'm building:  I'm very excited about it.  I've been working on it for quite some time.  I'm not yet ready to release all the details, but I can say it is a compact keyboard (a hair wider and two rows deeper than an HHK Pro) with full-size keys (blue alps sliders), N-key rollover, and an "interesting" arrangement of keys.  Oh, and it's fully programmable.  I'm working on a website to explain everything, and I'll post the link here when I get there.

Offline Bodibo

  • Posts: 59
  • Location: UK
What's this?
« Reply #6 on: Sat, 01 November 2008, 09:43:29 »
Welcome.

Quote from: dmw;10077
About the keyboard I'm building:  I'm very excited about it.  I've been working on it for quite some time.  I'm not yet ready to release all the details, but I can say it is a compact keyboard (a hair wider and two rows deeper than an HHK Pro) with full-size keys (blue alps sliders), N-key rollover, and an "interesting" arrangement of keys.  Oh, and it's fully programmable.  I'm working on a website to explain everything, and I'll post the link here when I get there.


And, I look forward to it. You do realise that if it is any good we will all be expecting you mass produce....well, at least for us!

Offline CaptCarrot

  • Posts: 87
What's this?
« Reply #7 on: Sat, 01 November 2008, 16:50:42 »
don't forget to fill out the mods section ;)

welcome

Offline pex

  • Posts: 145
What's this?
« Reply #8 on: Sat, 01 November 2008, 18:06:13 »
Would you care to allude through what method you will accomplish n-key rollover implementation (perhaps something that is a bit more technical than the fantasy of a first-year electronics student, a la davedribin?  Yes, I too have first-year electronics student fantasies, so I am curious about engineering.)
Ж®Cherry G80-8113 (someday I hope to have one that reads magstripes, rfid cards, and smartcards), broken \'98 42H1292 Model M, some other Model M from a decade before that, 30 more keyboards in a box, 4 more lying here or there
Destroying Sanctity: my Model M project. Status: Dead.

Offline wellington1869

  • Posts: 2885
What's this?
« Reply #9 on: Sat, 01 November 2008, 18:10:30 »
If I could do my engineering degree over again I'd create my own specializaiton in keyboard electronics just so I could produce my own keyboards ;)

"Blah blah blah grade school blah blah blah IBM PS/2s blah blah blah I like Model Ms." -- Kishy

using: ms 7000/Das 3

Offline elmomax

  • Posts: 42
What's this?
« Reply #10 on: Sat, 01 November 2008, 18:17:52 »
Welcome to the family!

Offline dmw

  • Thread Starter
  • Posts: 84
    • http://humblehacker.com
What's this?
« Reply #11 on: Sat, 01 November 2008, 23:20:31 »
Quote from: pex;10089
Would you care to allude through what method you will accomplish n-key rollover implementation (perhaps something that is a bit more technical than the fantasy of a first-year electronics student, a la davedribin?)


Well, first I should say that I'm no engineer, and I make no claims to being an expert in anything. I'm not even a first-year electronics student, but I read well, and like any good hacker, I'm good at figuring things out.  I'm very interested in what's fantasy in davedribin's n-key rollover description.  It made sense to me, and many old-school keyboards use diodes in the way that he describes.  If I'm missing something, please let me know.

Offline dmw

  • Thread Starter
  • Posts: 84
    • http://humblehacker.com
What's this?
« Reply #12 on: Sat, 01 November 2008, 23:53:39 »
Pex, I just read some of your posts about the n-key rollover situation, and I think I understand where your question was coming from.  

To clear things up, here's what I understand (please forgive if I'm telling you things you already know, and please correct if I'm incorrect in my assumptions):

N-key rollover on a straight HID USB keyboard is a misnomer.  The best you're going to get is six keys + modifiers.  This is part of the HID spec and is what allows you to plug in a keyboard and operate it without having to install drivers (as every modern OS already has them). {side note:  I should try increasing the size of the keyboard input report from 8 bytes to say, 10, and see if it still works and if I can then send 8 keys instead of 6.}

My keyboard will be using diodes on each key to eliminate the ghosting problem common to keyboards that use a key matrix (which is probably all of them?).  Hypothetically, you could do the same by tying every keyswitch to an input on the keyboard's microcontroller, but that would require a lot of ports.  There are other methods, such as using shift registers, but that's currently beyond my abilities.  I would have to do some research to make it work.  Without diodes, you must implement ghost key blocking in the firmware.  This is what causes the keyboard to stop spitting out keys after holding down too many keys.  Adding diodes to a keyboard like this will do no good, unless you are able to replace the firmware to turn off the ghost key blocking.

Now back to the USB thing.  Hardware-wise, by using diodes to eliminate ghosting problems, my keyboard should be capable of n-key rollover, but again is limited to 6 keys by the HID spec.  However, this can be overcome by writing a custom keyboard driver that allows for more than six keys.  That is something I would only undertake after the keyboard is done.  It would be a relatively simple change to the firmware, but writing the driver is an unknown quantity for me at this point.  Plus I would need to learn to write drivers for (at least) three different platforms.

I'm sure there are questions.  Please fire away.  And again, let me know if I'm off on anything here.

Offline alpslover

  • Posts: 321
What's this?
« Reply #13 on: Sun, 02 November 2008, 07:52:45 »
Quote from: dmw;10112

Now back to the USB thing.  Hardware-wise, by using diodes to eliminate ghosting problems, my keyboard should be capable of n-key rollover, but again is limited to 6 keys by the HID spec.  However, this can be overcome by writing a custom keyboard driver that allows for more than six keys.  That is something I would only undertake after the keyboard is done.  It would be a relatively simple change to the firmware, but writing the driver is an unknown quantity for me at this point.  Plus I would need to learn to write drivers for (at least) three different platforms.


the usb limitation can be overcome by the keyboard itself.  the das iii has 12-key rollover, and apparently achieves this by shooting out the keys to the host 6 keys at a time.

see my posts on this thread:
http://geekhack.org/showthread.php?t=272&page=6

Offline dmw

  • Thread Starter
  • Posts: 84
    • http://humblehacker.com
What's this?
« Reply #14 on: Sun, 02 November 2008, 08:13:37 »
That's _very_ interesting.  I'll have to investigate.  With my current understanding, I wouldn't expect that to work.  Unlike the PS/2 protocol, USB keyboards don't send up and down scan codes.  They basically send the entire keyboard state with every report.  The spec shows an eight byte structure, with the first byte being the state of the modifier keys, second reserved, and the last six bytes for six possible key states.  Roughly, the OS knows when a key has been released by comparing the previous state to the current state.  If a key was there in the previous state, but not in the current, it has been released.  Conversely, if a key was not in the previous state, but appears in the current state, it has been pressed.

Now, what you've just described for the Das Keyboard seems to contradict this.  If I had twelve keys to send, and I sent them in two packets, one after the other, the OS, rather than seeing twelve keys down, would see six keys down, then released, then another six keys down.

I admit I don't know everything about this.  Everything I've described comes from my reading of the HID spec, and my experience in writing the keyboard firmware for my keyboard project.  I'm very interested in figuring out how the Das Keyboard III manages 12 key rollover.  Too bad I don't have one to test.

Offline pex

  • Posts: 145
What's this?
« Reply #15 on: Sun, 02 November 2008, 09:05:44 »
The fantasy is that one just adds diodes and everything works.

I read davedribin and thought it made sense, too, but I have never found a website that actually explains the implementation of diodes into the matrix system.  I mean, dribin didn't show us that what he said works, just that he thinks it works, and maybe we think it works too, and we've all heard about diodes on keyboards.  I feel the truth on the matter is that no one gives us a working instrument to show that it works like everyone says it does.

Why is that important?  Because you help us understand the reality of why it is not as easy to say that 'diodes are the theory and that's what works' -- see USB specifications, ghost key blocking in firmware, etc.

Because I have heard anecdotal references to some USB keyboards not being backward compatible to PS/2 ports, are you expecting such compatibility with your keyboard, and would a person be able to prove your keyboard has n-key rollover by using the PS/2 port with an appropriate USB-PS/2 adapter?

I myself am doing noob research on n-key rollover and testing implementations (i.e: first thing's first, post a webpage where we link theory to implementation).  It's very interesting, then, when someone comes along who wants to actually produce a keyboard, especially lacking the formal education (?) in the field.
Ж®Cherry G80-8113 (someday I hope to have one that reads magstripes, rfid cards, and smartcards), broken \'98 42H1292 Model M, some other Model M from a decade before that, 30 more keyboards in a box, 4 more lying here or there
Destroying Sanctity: my Model M project. Status: Dead.

Offline lowpoly

  • Posts: 1749
What's this?
« Reply #16 on: Mon, 03 November 2008, 12:35:32 »
Welcome! :)

Quote
Hypothetically, you could do the same by tying every keyswitch to an input on the keyboard's microcontroller, but that would require a lot of ports.
The current Cherry G80 uses more than the usual 16+8 rows and columns. I only connected the alpha part of the keyboard to a different 16+8 controller and had only one port left when finished.

Quote from: pex;10121
It's very interesting, then, when someone comes along who wants to actually produce a keyboard, especially lacking the formal education (?) in the field.
I think common sense brings you very far when it comes to keyboard hacking. Of course it's different if you want to design your own pcbs. And a degree in electronics won't help you much with designing and mass producing plastic parts. But at that scale you can't do everything alone anyway.

There are many ways to create an actual keyboard and you may be able to match that to your skills. Just look at the Das Keyboard 2, basically a Cherry G80 without print.

Miniguru thread at GH // The Apple M0110 Today

Offline technocrat

  • Posts: 6
What's this?
« Reply #17 on: Thu, 06 November 2008, 23:05:10 »
Good luck finding good keyboard designs. I too recently found this forum, and I am still on a search for the ultimate human-computer interface.

I hope my only thread gives you some ideas:
http://geekhack.org/showthread.php?t=852