NKRO and 6-Key Rollover on USB Test
- Hypersphere
- Location: USA
- Main keyboard: Silenced & Lubed HHKB (Black)
- Main mouse: Logitech G403
- Favorite switch: Topre 45/55g Silenced; Various Alps; IBM Model F
- DT Pro Member: 0038
Today I responded to an inquiry about 6-key rollover on the RF 87ub 55g from someone who did not have the keyboard and could not find 6KRO on USB data on it. He referred me to the Microsoft testing site:
http://www.microsoft.com/appliedscience ... gDemo.aspx
Using this site, I verified that the RF 87ub 55g consistently registered 6 keys over USB.
I got the same result with my IBM XT with Soarer's Converter.
However, when I tested a Kul ES-87 mx red and a WASD V2 87 mx brown, I got only 5 keys to register at the same time over USB.
I would be interested in hearing about results others have obtained with various keyboards using the MS testing site.
http://www.microsoft.com/appliedscience ... gDemo.aspx
Using this site, I verified that the RF 87ub 55g consistently registered 6 keys over USB.
I got the same result with my IBM XT with Soarer's Converter.
However, when I tested a Kul ES-87 mx red and a WASD V2 87 mx brown, I got only 5 keys to register at the same time over USB.
I would be interested in hearing about results others have obtained with various keyboards using the MS testing site.
- chzel
- Location: Athens, Greece
- Main keyboard: Phantom
- Main mouse: Mionix Avior 7000
- Favorite switch: Beamspring, BS, Vintage Blacks.
- DT Pro Member: 0086
USB natively supports max. 6KRO, keyboards with NKRO over USB use trickery to achieve it!Parak wrote: ↑XT with Soarer's should be giving you NKRO.
Hyper, did you get any combination to register 6KRO on the Kul and Wasd? Maybe for some reason certain combinations fail.
- Hypersphere
- Location: USA
- Main keyboard: Silenced & Lubed HHKB (Black)
- Main mouse: Logitech G403
- Favorite switch: Topre 45/55g Silenced; Various Alps; IBM Model F
- DT Pro Member: 0038
I was not systematic with key combinations, but all the combinations I tried with the Kul and WASD gave 5KRO instead of 6KRO. In contrast, with the XT and RF 87u, I got 6KRO consistently.
-
- DT Pro Member: -
Um.. no. There's no such restriction on the USB protocol. I'll defer any "trickery" discussions to someone that has actually coded NKRO support into a controller, however as far as Soarer's goes, I'm using it right now with an F122:
At least as far as how much I could press while still taking a screenshot at the same time. Plus documentation on Soarer's mentions this as a feature. As such, any supported capsense type keyboard using Soarer's should be fully NKRO.
-
- Location: Europe
- DT Pro Member: -
Could someone chime in and give some low-level details about how xKRO works over USB?
Soarer on GH started explaining how NKRO over USB can work, but stopped after just few hints.
- Muirium
- µ
- Location: Edinburgh, Scotland
- Main keyboard: HHKB Type-S with Bluetooth by Hasu
- Main mouse: Apple Magic Mouse
- Favorite switch: Gotta Try 'Em All
- DT Pro Member: µ
Try piecing it together from all the bits and pieces around here too:
http://deskthority.net/search.php?keywo ... mit=Search
Very briefly: USB is *****not***** limited to 6KRO by any inherent flaw. But many old PC BIOSes are, and things get extra sticky when Windows is involved. So Soarer, Hasu and Xwhatsit send multiple "reports" of the keyboard state, including NKRO, 6KRO and a separate one for media keys (Windows again…). I believe that a single NKRO report would work perfectly at all times on the Mac and potentially Linux, with a modern EFI. But all I know is hearsay from reading these guys who've actually implemented controllers.
http://deskthority.net/search.php?keywo ... mit=Search
Very briefly: USB is *****not***** limited to 6KRO by any inherent flaw. But many old PC BIOSes are, and things get extra sticky when Windows is involved. So Soarer, Hasu and Xwhatsit send multiple "reports" of the keyboard state, including NKRO, 6KRO and a separate one for media keys (Windows again…). I believe that a single NKRO report would work perfectly at all times on the Mac and potentially Linux, with a modern EFI. But all I know is hearsay from reading these guys who've actually implemented controllers.
- Hypersphere
- Location: USA
- Main keyboard: Silenced & Lubed HHKB (Black)
- Main mouse: Logitech G403
- Favorite switch: Topre 45/55g Silenced; Various Alps; IBM Model F
- DT Pro Member: 0038
My XT keyboard has a Teensy and Soarer's Converter. I am connecting via USB to a USB hub and from there to my Mac computer. According to the System Report, my Mac "sees" the XT keyboard and it certainly works. However, according to the MS web site test, I am getting 6KRO rather than NKRO.
Using the same setup, the Kul and WASD keyboards are getting only 5KRO.
To conduct the test, should I connect the keyboard directly to the computer rather than using a hub? Would I expect to get different results under Windows or Linux?
Using the same setup, the Kul and WASD keyboards are getting only 5KRO.
To conduct the test, should I connect the keyboard directly to the computer rather than using a hub? Would I expect to get different results under Windows or Linux?
- Muirium
- µ
- Location: Edinburgh, Scotland
- Main keyboard: HHKB Type-S with Bluetooth by Hasu
- Main mouse: Apple Magic Mouse
- Favorite switch: Gotta Try 'Em All
- DT Pro Member: µ
Hypersphere wrote: ↑To conduct the test, should I connect the keyboard directly to the computer rather than using a hub?
Probably not. But some hubs are real bad news, so perhaps.
Unfortunately, yes! Expect Windows to come out bottom of the heap. A lot of the complexity in controllers is there just to work around that one OS's legendary foibles.Hypersphere wrote: ↑Would I expect to get different results under Windows or Linux?
- Khers
- ⧓
- Location: Sweden
- Main keyboard: LZ CLSh
- Main mouse: Logitech MX Ergo
- Favorite switch: Buckling Springs | Topre | Nixdorf Black
- DT Pro Member: 0087
IIRC there are issues with some NKRO keyboards on the Mac, e.g the Noppoo Choc Mini has been reported as not working on a Mac, something that has been reported as being due to the NKRO-implementation or something like that. Don't know if that is specific to that keyboard or true for others as well.
- Muirium
- µ
- Location: Edinburgh, Scotland
- Main keyboard: HHKB Type-S with Bluetooth by Hasu
- Main mouse: Apple Magic Mouse
- Favorite switch: Gotta Try 'Em All
- DT Pro Member: µ
Yup. Noppoo chose to do a hack where the keyboard is "split" into several separate USB keyboards, which appear in parallel to the OS, so that all the 6KROs add up. This only works on Windows, which merges all connected keyboards together into one logical keyboard; while every other OS treats them as separate, independent, input devices. So on Mac and Linux, that trick results in mods firing on "different" keyboards than the alphas they're modifying, so even basic capitalisation gets broke!
One NKRO hack gives all NKRO a bad name, unfortunately. Thanks again Windows! This simple stuff really shouldn't be hard, but to work with Microsoft, it has to be…
One NKRO hack gives all NKRO a bad name, unfortunately. Thanks again Windows! This simple stuff really shouldn't be hard, but to work with Microsoft, it has to be…
- chzel
- Location: Athens, Greece
- Main keyboard: Phantom
- Main mouse: Mionix Avior 7000
- Favorite switch: Beamspring, BS, Vintage Blacks.
- DT Pro Member: 0086
According to http://www.usb.org/developers/hidpage/HID1_11.pdf, Appendix C, states that
So if the board uses another descriptor to overcome this, OS permitting ofc, it might not work on boot.
Hence my reference to "trickery".
Mind you, I am not a programmer, so I might be wildly mistaken!
and as far as I understand App. B is the standard descriptor required for Boot compatibility of the keyboard.The limit is six non-modifier keys when using the keyboard descriptor
in Appendix B. Additionally, a keyboard may report the phantom condition
when an invalid or unrecognizable combination of keys is pressed.
So if the board uses another descriptor to overcome this, OS permitting ofc, it might not work on boot.
Hence my reference to "trickery".
Mind you, I am not a programmer, so I might be wildly mistaken!
- Hypersphere
- Location: USA
- Main keyboard: Silenced & Lubed HHKB (Black)
- Main mouse: Logitech G403
- Favorite switch: Topre 45/55g Silenced; Various Alps; IBM Model F
- DT Pro Member: 0038
This is all quite interesting.
I just unboxed my Novatouch to give it a try on the MS site. I consistently get 6KRO. Same with my XT (with Soarer's) and RF 87ub 55.
However, with my two Cherry mx boards (WASD V2 87 and Kul ES-87), I get 5KRO.
Not that I mind. I am not a gamer, and I can't think of situations where I would need more than 2KRO, but now I am curious about the apparent discrepancies I am seeing with the MS test site and some keyboards.
(BTW, off-topic, while doing these tests, I noticed that the stabilizers on my WASD V2 87 are completely quiet, whereas I can hear a bit of stabilizer rattle in my Novatouch).
I just unboxed my Novatouch to give it a try on the MS site. I consistently get 6KRO. Same with my XT (with Soarer's) and RF 87ub 55.
However, with my two Cherry mx boards (WASD V2 87 and Kul ES-87), I get 5KRO.
Not that I mind. I am not a gamer, and I can't think of situations where I would need more than 2KRO, but now I am curious about the apparent discrepancies I am seeing with the MS test site and some keyboards.
(BTW, off-topic, while doing these tests, I noticed that the stabilizers on my WASD V2 87 are completely quiet, whereas I can hear a bit of stabilizer rattle in my Novatouch).
- Hypersphere
- Location: USA
- Main keyboard: Silenced & Lubed HHKB (Black)
- Main mouse: Logitech G403
- Favorite switch: Topre 45/55g Silenced; Various Alps; IBM Model F
- DT Pro Member: 0038
I've tried this, and I still get a maximum of only 6 non-modifier keys registering.ماء wrote: ↑i've read to test NKRO press both shift+press letter
- Muirium
- µ
- Location: Edinburgh, Scotland
- Main keyboard: HHKB Type-S with Bluetooth by Hasu
- Main mouse: Apple Magic Mouse
- Favorite switch: Gotta Try 'Em All
- DT Pro Member: µ
Well, my lying eyes must deceive me because I see NKRO all the way with Soarer's Converter and a naturally NKRO board like my XT. Try OS X's Keyboard Viewer to confirm this yourself. You can mash as many keys as you like.
The NovaTouch seems 6KRO. While my IBM 122 key Model M really is 2KRO and gets in my way when I've tried to work on it. I really do need three simultaneous mods quite routinely. It will often fail at two!
The NovaTouch seems 6KRO. While my IBM 122 key Model M really is 2KRO and gets in my way when I've tried to work on it. I really do need three simultaneous mods quite routinely. It will often fail at two!
- Hypersphere
- Location: USA
- Main keyboard: Silenced & Lubed HHKB (Black)
- Main mouse: Logitech G403
- Favorite switch: Topre 45/55g Silenced; Various Alps; IBM Model F
- DT Pro Member: 0038
Are you basing your findings on the MS web site test or on observing the number of keys that register on the Mac keyboard viewer?Muirium wrote: ↑Well, my lying eyes must deceive me because I see NKRO all the way with Soarer's Converter and a naturally NKRO board like my XT. Try OS X's Keyboard Viewer to confirm this yourself. You can mash as many keys as you like.
The NovaTouch seems 6KRO. While my IBM 122 key Model M really is 2KRO and gets in my way when I've tried to work on it. I really do need three simultaneous mods quite routinely. It will often fail at two!
- Hypersphere
- Location: USA
- Main keyboard: Silenced & Lubed HHKB (Black)
- Main mouse: Logitech G403
- Favorite switch: Topre 45/55g Silenced; Various Alps; IBM Model F
- DT Pro Member: 0038
I wonder what is going on with my setup? My XT with Teensy and Soarer's Converter is giving me 6KRO. This is more than enough for me, but if it should be NKRO, it disturbs me not to understand why this is not so in my case.
- Muirium
- µ
- Location: Edinburgh, Scotland
- Main keyboard: HHKB Type-S with Bluetooth by Hasu
- Main mouse: Apple Magic Mouse
- Favorite switch: Gotta Try 'Em All
- DT Pro Member: µ
No problem in Chrome either. (I usually use Safari.) For what it's worth, I hook my Soarer's straight into a USB port. There's some chance that's your weak link.
What rollover do you get from the XT with your Hagstrom?
What rollover do you get from the XT with your Hagstrom?
- Khers
- ⧓
- Location: Sweden
- Main keyboard: LZ CLSh
- Main mouse: Logitech MX Ergo
- Favorite switch: Buckling Springs | Topre | Nixdorf Black
- DT Pro Member: 0087
I've tested my HHKB with both the MS web test and keyboard viewer on my mac and with the MS web test on a win PC. I get 6KRO on all. Don't quite get why you would need more than that though, I'm completely happy with the ~2KRO I get on my model M's. Also, it's difficult enough to press 6 keys simultaneously. Then again, I'm not a gamer...
- Muirium
- µ
- Location: Edinburgh, Scotland
- Main keyboard: HHKB Type-S with Bluetooth by Hasu
- Main mouse: Apple Magic Mouse
- Favorite switch: Gotta Try 'Em All
- DT Pro Member: µ
Nope! Even USB 1.1 is enough for NKRO. My old PowerBook gets NKRO with Soarer and a Model F.
The HHKB is 6KRO, from what I've heard, so that's accurate. I think Realforces are all 6KRO on USB as well. Haven't heard about the PS/2 ones.
6KRO is fine for me in all normal circumstances (besides bragging). The one time I go beyond that is when playing a virtual piano keyboard (in GarageBand and other music apps) but I should really just get a real MIDI keyboard, I know!
2KRO, however, is a nightmare. I use Shift + Option + Arrows very frequently indeed when working with text. (Try the same yourself, it's Alt instead of Option I think on Windows and Linux.) Consumer Model Ms, including my SSK, are good with multiple mods so rollover isn't generally an issue there. But my 122 key Model M is horrendous! Rollover is so much worse when the matrix isn't optimised well to hide it.
I dare say even most gamers would never notice 6KRO. But even on a good Model M, WASD ghost badly with other keys. IBM never knew those would be hijacked for navigation!
The HHKB is 6KRO, from what I've heard, so that's accurate. I think Realforces are all 6KRO on USB as well. Haven't heard about the PS/2 ones.
6KRO is fine for me in all normal circumstances (besides bragging). The one time I go beyond that is when playing a virtual piano keyboard (in GarageBand and other music apps) but I should really just get a real MIDI keyboard, I know!
2KRO, however, is a nightmare. I use Shift + Option + Arrows very frequently indeed when working with text. (Try the same yourself, it's Alt instead of Option I think on Windows and Linux.) Consumer Model Ms, including my SSK, are good with multiple mods so rollover isn't generally an issue there. But my 122 key Model M is horrendous! Rollover is so much worse when the matrix isn't optimised well to hide it.
I dare say even most gamers would never notice 6KRO. But even on a good Model M, WASD ghost badly with other keys. IBM never knew those would be hijacked for navigation!
- Hypersphere
- Location: USA
- Main keyboard: Silenced & Lubed HHKB (Black)
- Main mouse: Logitech G403
- Favorite switch: Topre 45/55g Silenced; Various Alps; IBM Model F
- DT Pro Member: 0038
I thought that mods didn't count in the rollover number. Is this a misconception?
-
- Location: Stockholm, Sweden
- DT Pro Member: 0011
- Halvar
- Location: Baden, DE
- Main keyboard: IBM Model M SSK / Filco MT 2
- Favorite switch: Beam & buckling spring, Monterey, MX Brown
- DT Pro Member: 0051
On most keyboards that don't have NKRO, modifiers sit on sparsely populated rows or columns in the matrix, which means that you generally get a higher number of discernible keys for combinations that include modifiers than between simple alphanumeric keys. So the rollover number n is not actually constant for a keyboard, and for most modifiers you will get a higher n than for combinations of other keys. So in that sense you are right, the rollover number is normally meant for combinations between arbitrary keys, not combinations with modifiers.Hypersphere wrote: ↑I thought that mods didn't count in the rollover number. Is this a misconception?
-
- Location: Stockholm, Sweden
- DT Pro Member: 0011
That is true for USB's 6KRO protocol (the "Boot Protocol"), but only because it has eight special bits for the left and right modifiers: Shift, Control, Alt and GUI (GUI = Windows, Command, Meta or Super depending on your OS and configuration).Hypersphere wrote: ↑I thought that mods didn't count in the rollover number.
Then there are six bytes that each can contain a codes for the other keys - and that is where the number in 6KRO comes from.
Some other protocol might be done differently.
The rollover number counts the smallest number of arbitrarily chosen keys that you can register at the same time.
When a keyboard has xKRO then that means that there is some combination of x+1 keys that does not work.
- chzel
- Location: Athens, Greece
- Main keyboard: Phantom
- Main mouse: Mionix Avior 7000
- Favorite switch: Beamspring, BS, Vintage Blacks.
- DT Pro Member: 0086
So, if I understand correctly, for the keyboard to adhere to the standard, it must declare what report format it will use, and if requested switch to "Boot protocol" for use in BIOS.
If one where to implement an NKRO report format, Windows/Linux/MacOS should be able understand it but do not? Is that the reason for workarounds (what I called trickery)?
- Muirium
- µ
- Location: Edinburgh, Scotland
- Main keyboard: HHKB Type-S with Bluetooth by Hasu
- Main mouse: Apple Magic Mouse
- Favorite switch: Gotta Try 'Em All
- DT Pro Member: µ
The trickery is just done by nincompoops without technical chops as refined as Hasu, Soarer and Xwhatsit. Noppoo's notorious "split up into a whole bunch of keyboards" hack is worse than dirty, it is entirely needless.
-
- Location: Stockholm, Sweden
- DT Pro Member: 0011
I don't think that Noppoo's protocol is that simple. They must have done something more unusual. I would love to see its "Report Descriptor"...Muirium wrote: ↑Yup. Noppoo chose to do a hack where the keyboard is "split" into several separate USB keyboards, which appear in parallel to the OS, so that all the 6KROs add up.
I am typing this reply using four keyboards connected all at once to my Linux box. My HHKB Lite has a hub with a Cherry G80-3000 and a Topre Realforce. Then my Dolch (Cherry G80-1800) is connected through a USB-to-PS/2 converter that also accepts a mouse.
This works fine: even key combinations of Shift, Ctrl or Alt. However ... the Dolch does not work through the converter when connected via the HHKB's hub - it must be connected via its own USB port.
From what I have heard HHKB, Realforce and G80-3000 all use the 6KRO protocol, and I suspect that the protocol converter provides a combined keyboard/mouse protocol.
A couple of years ago, I did test two Apple keyboards (a modified 6KRO protocol) on a single Mac and that worked fine. I don't own a Mac any more.
Last edited by Findecanor on 25 Nov 2014, 17:25, edited 1 time in total.