geekhack
geekhack Community => Keyboards => Topic started by: moon00dragon on Sun, 03 June 2012, 23:27:19
-
Hello everybody,
Ok, as you can probably tell, I'm new to the forum, etc. etc.
This is probably an exceedingly nooby question (sadly), but in my defense, just got into the keyboards (have a Das Pro :D)
About the Das pro/any USB keyboard that can do NKRO by attaching an adapter, why can't people create software on the computer itself that allows NKRO, (like an adapter back but on the computer, probs driver software)?
Is it possible? I know some keyboards have the function, but specifically for the keyboards that are capable of NKRO but not over USB?
Sorry if that was an incredibly stupid question >.>,
Sauyon
Also, I did do a some searches for NKRO over USB, etc. but I couldn't find any related posts :/.
-
CM Quickfire Pro supports NKRO through USB
-
Yeah, I understand that there are keyboards that support NKRO through USB, but what I'm talking about are the keyboards that have NKRO over PS/2 but not USB, just wondering why there's no driver for those keyboards that allows NKRO.
-
Any nkro keyboard that is ps/2 compatible (using a passive usb to ps/2 adapter (http://geekhack.org/showwiki.php?title=PS2-to-USB+adapters) or ps/2 native) can achieve nkro over usb using Soarer's converter (http://geekhack.org/showwiki.php?title=Island:17458).
It's basically a super to usb adapter.
-
Yeah, I saw that too :P.
My real question is tho: what does it do?
Isn't there a simple way to emulate that on the computer itself?
-
Isn't there a simple way to emulate that on the computer itself?
Not really, its a simple matter of the standard USB keyboard protocol not allowing NKRO. When a keyboard is connected through PS/2 it uses a very low level serial connection which simply allows more flexibility for dumb stuff like keyboards, when you connect that same keyboard via USB (if it supports that) it will automagically swap to the more sucky USB 'slang' for communication. No mater what you do on the user-end software-wise, as long as the keyboard knows its on USB it will only use the keyboard USB protocol.
Keyboards that do have NKRO over USB mostly cheat in simply not using the established USB keyboard protocol but falling back to something proprietary, this will give problems with quite some systems (like OSX) as this will require odd drivers unlike the standard ones every computer knows.
-
Yeah, I saw that too :P.
My real question is tho: what does it do?
Isn't there a simple way to emulate that on the computer itself?
I wouldn't say simple, but it might be possible.
Not really, its a simple matter of the standard USB keyboard protocol not allowing NKRO. When a keyboard is connected through PS/2 it uses a very low level serial connection which simply allows more flexibility for dumb stuff like keyboards, when you connect that same keyboard via USB (if it supports that) it will automagically swap to the more sucky USB 'slang' for communication. No mater what you do on the user-end software-wise, as long as the keyboard knows its on USB it will only use the keyboard USB protocol.
Keyboards that do have NKRO over USB mostly cheat in simply not using the established USB keyboard protocol but falling back to something proprietary, this will give problems with quite some systems (like OSX) as this will require odd drivers unlike the standard ones every computer knows.
Yes, due to USB 1.1 limitations, NKRO over USB is achieved with some really interesting workarounds. Doesn't the noppoo register as multiple keyboards? I think one pretends it's a bunch of buttons on a mouse.
But, wouldn't it be possible to hack a custom USB driver to make it work? I imagine this would bring up all sorts of fun and exciting challenges (such as only working on a certain model laptop or motherboard, or blocking USB functionality for everything else) but I think it may be possible.
This is why I need to learn more about computer engineering.
-
Not possible. You can't tell the keyboard to send different data!
Generally, low-speed USB means workarounds to get NKRO, full-speed USB can do it cleanly. But whatever the method, it has to be implemented on the keyboard.
-
How funny that even USB is plagued by legacy support.
-
NKRO under USB cost too much.
My new released keyboard can do 21 KRO under usb without adding cost, I think that's enough. Although we find out how to manager NKRO but the side affect is, for example Noppoo, sometimes end up with register problem in some OS.
-
Do you mean "full-speed USB costs too much"?
-
Not possible. You can't tell the keyboard to send different data!
Generally, low-speed USB means workarounds to get NKRO, full-speed USB can do it cleanly. But whatever the method, it has to be implemented on the keyboard.
Then how do passive USB to PS2 adapters work? My thought was to bit-bash the USB port and make the device pretend it's sending data over PS2.
Also: Full speed USB is the best.
-
Passive USB to PS2 is no different than a serial cable gender bender, it's a pin-wise reassignment. The keyboard controller needs to be able to recognize which connection type it's on and talk the right protocol.
-
Then how do passive USB to PS2 adapters work?
Passive USB to PS2 is no different than a serial cable gender bender, it's a pin-wise reassignment. The keyboard controller needs to be able to recognize which connection type it's on and talk the right protocol.
Exactly, a keyboard either sees that its connected via a serial port (and send serial data allowing NKRO where hardware permits) or the board senses USB (and talks the limited USB slang). Faking a board into thinking its connected via ps2 while its actually connected through USB will break stuff. Hacking a USB driver could work if you also flash the corresponding keyboard with new firmware (if the keyboards hardware permits all this which it probably will not or else the maker of the board would probably have done so already).
For any board to work over both protocols it ALWAYS NEEDS ACTIVE COMPONENTS be it either in the board like a Steelseries 6Gv2 (allowing the choice between the two via a dumb gender change plug) or in/on the cable like for example the blue-cube behind a Model M. This is simply because the serial protocol and the one used for USB are completely different beasts! Even if you paint you car like a ferrari it wont actually trick it in also performing like one.
I do love the idea of a board installing itself as multiple devices tho, that's pretty smart! Even stupid apple computers should be able to work with something like that.
-
Even stupid apple computers should be able to work with something like that.
Except they don't. There's a few threads on the Noppoo that does this trick and doesn't work w/ Mac.
-
Really!? Youd think that if the computer cannot understand two keyboards it would at least install just one of em (losing the >KRO for more compatibility).
I'm so lucky i don't have any apple computers, only MP3 players (and none of them run their original apple software anymore cuz i hate that LOL)
-
Exactly, a keyboard either sees that its connected via a serial port (and send serial data allowing NKRO where hardware permits) or the board senses USB (and talks the limited USB slang). Faking a board into thinking its connected via ps2 while its actually connected through USB will break stuff. Hacking a USB driver could work if you also flash the corresponding keyboard with new firmware (if the keyboards hardware permits all this which it probably will not or else the maker of the board would probably have done so already).
Couldn't you write a driver for the keyboard that basically tells the board it's on PS/2 and accepts that input?
-
Pretty much all has been said here I believe. But if someone has any info on the USB/keyboard protocole, ill take any link.
-
Couldn't you write a driver for the keyboard that basically tells the board it's on PS/2 and accepts that input?
No.
-
No.
oh :( so you'd have to flash firmware and there are no other options?
-
oh :( so you'd have to flash firmware and there are no other options?
Like said before, in theory it COULD be possible with a crapload of trouble and only when a load of conditions are met (whats probably not gonna happen). Even flashing the firmware and rewriting the drivers and everything will be no guarantee that it will work in a single instance let alone on different systems.
Given the knowledge and experience you've shown in this thread i would suggest you abandon this idea. Its really sad for you that your DAS will not give you the NKRO you want over USB but you could have know this beforehand. Either hook the board up via PS/2 or just live with the 6KRO the board has over USB (which is plenty unlike what marketing people or 12yo 'gaming experts' will tell you).
-
Passive USB to PS2 is no different than a serial cable gender bender, it's a pin-wise reassignment. The keyboard controller needs to be able to recognize which connection type it's on and talk the right protocol.
Exactly, a keyboard either sees that its connected via a serial port (and send serial data allowing NKRO where hardware permits) or the board senses USB (and talks the limited USB slang). Faking a board into thinking its connected via ps2 while its actually connected through USB will break stuff. Hacking a USB driver could work if you also flash the corresponding keyboard with new firmware (if the keyboards hardware permits all this which it probably will not or else the maker of the board would probably have done so already).
For any board to work over both protocols it ALWAYS NEEDS ACTIVE COMPONENTS be it either in the board like a Steelseries 6Gv2 (allowing the choice between the two via a dumb gender change plug) or in/on the cable like for example the blue-cube behind a Model M. This is simply because the serial protocol and the one used for USB are completely different beasts! Even if you paint you car like a ferrari it wont actually trick it in also performing like one.
I do love the idea of a board installing itself as multiple devices tho, that's pretty smart! Even stupid apple computers should be able to work with something like that.
Thanks to both of you for explaining things to me.
Looks like the best option is to use a Soarer adapter. I believe it uses full speed USB to get pretty good key rollover.
That said, I am pretty happy with the 6KRO I can get over USB.
-
Thanks to both of you for explaining things to me.
Looks like the best option is to use a Soarer adapter. I believe it uses full speed USB to get pretty good key rollover.
That said, I am pretty happy with the 6KRO I can get over USB.
^that :)
I know that NKRO probably won't be all that useful but it would be nice to have, for those one-in-a-million cases :P
So, thank you all for taking the time to explain this to me.