How does n-key rollover work?
🕑 Added 2021-07-26 20:47:40 +0000 UTCNew video! I dissected a keyboard that supports n-key rollover to figure out how it works. It was fun figuring out how to capture the USB signals from this keyboard since it only wanted to talk at 480Mbps, which is way too fast to capture. Fortunately I found a way to do it and it turned out to be pretty simple.
Hope you enjoy. As always let me know if you see any major issues. And thanks as always for your support!
-Ben
Comments
Mike Swanson
Also, the reported maximum packet size is different, seen around 27:48. 6-key mode is 8 vs. n-key is 14.
Tyler Arbogast
Great video. Tell Keysight to get you a scope fast enough to analyze the high speed USB. Any chance you could share the files you created (scope export and breakdown of the protocol)? Some of us would find that of interest.
Shelton
Nice new video!
Shelton
Yes, I noticed that, too. maybe an onscreen correction could help reduce confusion.
Joseph Holley
I noticed a bit of difference in volume between takes, but otherwise, quite solid as-is. I really appreciate when you leave in mistakes (like correcting your key note), keeps things relatable :D Great content!
Madellyn S
A lot of higher end keyboards, including I believe the Das Keyboard line allow remapping the keys at the hardware level and storing those maps on the microcontroller so I think that'll be why it reports having all those fancy keys - it can have them, even if it isn't labelled that way.
Paul Pluzhnikov
At 6:27 it should be 2B 3C
ProgrammerDor
Loved this video. Thankx.
Cooper Harasyn
Really fascinating video! I love watching the dissection of the HID reports. Interesting to see that some keyboards will report a 104-bit bitmap to represent the whole keyboard matrix state. Thanks for this accessible explanation of what's going on with this keyboard!
Ben Eater
Yep, that's a mistake. Thanks for catching it!
Cooper Harasyn
Yep, I think this is definitely the case. He said verbally "putting current into 3..." so I think he just accidentally said and wrote 2C instead of 3C.
I think at 6:22 you meant to say/write 3C. If that's not the case I'm confused