Ask Slashdot: Low-Latency PS2/USB Gaming Keyboards?
An anonymous reader writes "I've a cheap but low latency mouse (A4Tech) and I noticed my trusty old wired Logitech PS/2 keyboard seems at least 50ms slower (if not more) than the mouse when I test with those reaction time sites. I even increased finger travel distance over my mouse button to make it fairer and the difference still remains. So either the tests are slower with keyboards or my keyboard is high latency. Assuming the latter any suggestions for a good reasonably priced gaming keyboard? Extra function keys might be nice but since my hands aren't big what would be better is being able to output a custom key/combo if you hold down (special?) keys while pressing another key. For example I could configure it so if I hold down "Special Key 1" with pinkie or thumb and press 4 it actually outputs 9, and if I hold down shift as well it outputs shift+9 (and not just 9). Being able to replace the capslock key function and have it behave as another key (or a special modifier) would be a bonus — I've never needed capslock and have probably used it more by mistake than for its normal function, or to test how badly a PC has hung."
There is not a single modern keyboard that has 50ms latency. You (humans) have that sort of latency.
As far as response times, all you need to do is increase the poll time on the USB stack, you should be able to set it to ~1-5ms, most keyboards are in the 5-10ms range. You can also get a custom keyboard which is used for psychophysics, they run about $300 and have a guaranteed sub-ms latency. But there must be some firmwares out there that can achieve the same for cheaper. I've tested Arduino Leonardo to about 1-2ms latency (also for psychophysics experiments).
Custom electronics and digital signage for your business: www.evcircuits.com
At least it's a nice change from the "do my job for me" Ask Slashdots.
Support the EFF and Creative Commons. The war is coming, and they're supporting you...
Mechanical-to-electronic interface is just one. The one you think it's to blame.
Then you have the system interface (the USB and the PS/2).
Then you have the full OS stack with its drivers, event listeners etc.
Then you have the browser technologies (like Javascript stuff) which could react differently to different input classes.
And finally the network latency.
All of them at the same time.
Maybe you are right in blaming the device, but I wouldn't bet a penny on it.
Sent as ripples into the electromagnetic field. No single photon has been harmed in the process.
Normal human reaction time is in the 200ms to 300ms range, however, for specific stuff like gaming where we are reacting to known events, we can possibly react faster (sound for instance is keying us way before this, so we start reacting to the event).
Now the 1 MS reaction time for gaming equipment is for precision, if your mouse doesn't stop moving the place where you wanted it to stop moving, it might be off by one or two pixels, which is a huge deal in gaming.
> The typical human reaction time is between 1/10th and 3/10th (more the later) of a second. That is 100 to 300ms.
now pile another 50-100ms of USB latency on top, and you've just increased the problem by a non-insignificant factor.
It's not a coincidence people gripe about USB. By traditional embedded-electronics standards, USB fsck'ing SUCKS. It's not a coincidence that there are STILL things you could bitbang with a real EPP/ECP parallel port that are flat-out impossible to do via USB. USB forces you to do your bitbanging at the remote end, and use the USB bus SOLELY for polled bit-shoveling after the fact. Serial ports required manual configuration up front, but once you got them configured... they pretty much worked flawlessly unless the wire had a short or a bad solder connection. Ditto for traditional parallel and ps/2 ports.
I NEVER used to have ps/2 mice just stall and hang on me the way USB mice do under Windows. I've had plenty of times over the past few years when the ps/2 trackpoint on my keyboard worked fine, but the mouse pointer acted like it was frozen if I moved the USB mouse, for periods of 2-5 seconds a couple of times per week.
For certain kinds of games, where reaction time is pretty much the be all, end all (like Call of Duty) it does seem like it can make a difference. It isn't that your human reaction time isn't still the biggest thing, but that you make it faster relative to other people and thus gain an advantage. I was, and still am to a degree, skeptical that it matter much but I've tried it and seen results.
So in my case, it was my monitor. I have long used professional screens, at the time it was a NEC 2690WUXi. Nice pro quality IPS screen, fully calibrated for a great image. It runs at 60fps, meaning 16.7ms between images and has about 33.3ms (2 frames) of delay for its image processing time. So basically 50ms from the time the computer sends the data to it, to the beginning of image formation. A few more ms for the image to fully form.
I decided I wanted to see what the 120Hz hype was about, so I bought myself a second monitor, a BenQ XL2420T. It's a cheap TN panel, but very, very fast and has a mode to cut through all processing and lower latency. In 120fps mode you get a frame every 8.3ms, and delay of about 3.4ms until the image start forming, just another 1.5ms until it is complete. So 11.7ms from data to beginning of image formation.
Well I found out two things. One is that you definitely CAN see the difference between 60 and 120 fps. It is actually more noticeable on the desktop, where you have sharp lines and high contrast, but in games too. It is a level of smoothness and fluidity you hadn't seen before.
The other thing is that my performance in Black Ops 2 was quite measurably better playing on the faster monitor. My KDR (kill death ratio, how many times on average you kill another player per time you die) increased by over 0.5, which is a lot. It was just much easier for me to get shots off on people before they could get me.
Now is that all latency? Probably not, the smoother frame rate probably helps too, but it is a difference that is really there. It isn't a case of "Oh you just want you new monitor to be better," or something I have both kinds of monitors and the pro one is what I use 99.9% of the time and for almost all games (I now have a PA301W) because the better colour and image quality is just so worth it. But there is no question for speed sensitive games, the faster display helps me do better.
So how does this apply to mouse and keyboard? I've no idea. I haven't tested it. The keyboard I use is based off of ergonomics, not speed (a Kinesis Freestyle 2, they rock). However perhaps such a thing could help too.
I mean the theory would go like this: Presume you have two people, both with an equal reaction time. Say 500ms if you like. Their computers process and prepare everything for display at the same time. However one guy has a fast screen, and the other a slow screen, like 10ms vs 50ms. Then also one guy has a fast input device, the other guy a slow one, say 1ms vs 10ms. What this means is that the net reaction time, as in the time from the computer saying "This has happened," to the time it receives a response, is 511ms in one case, and 560ms in the other. If you are talking games where a lot of damage is done per shot, that could be enough to make a difference.
I'm not sure that it is worth worry about as much as people do, but I can see how it can make a difference in theory and I was amazed that the fast monitor made as much difference for me as it did. In general though, my recommendation is just stick to games that aren't so twitch based, and use a nicer display.
USB latency is nowhere near 50-100ms, more like 1ms for a low-speed/full-speed device (which most HID devices are). a high speed device could be polled at 8*125us.
You'd probably need the lousiest USB controllers and a horrible CPU to get anywhere near what you're describing.
Disclaimer: I've actually worked on USB Host Controller and Device Controller drivers in embedded environments
Brown is not what you want. They are similar to the "blue" keys but with less noise - I actually own both. There is still a significant distance the key must travel (up then down) to register sequential keystrokes. What you really want are the "red" keys. These keys require only a minimal amount of travel and do not have a noticeable "click" when activated. A pain for typists but it allows gamers to press keys at a very high frequency. The "black" keys are similar but require ~50% more force so they're a bit slower.
But all mechanical keyboards are great at minimizing latency - it is because of the differences between switches and capacitors. The chiclet keyboards work my altering observed capacitance - this requires a controller to continuously scan for key changes and then send the appropriate signals to the host. This takes time and results in the latency the original poster was talking about. Mechanical keyboards are simple switches and are faster to scan. I imagine some mechanical keyboards are even interrupt driven resulting in latency measured in microseconds -- but changes in capacitance can't trigger interrupts.
Why the hatred? This seems a genuinely interesting topic to us nerds, whom this site is ostensibly meant to be for.
As far as Ask Slashdot questions go, this is one of the better ones.
"Nine times out of ten, starting a fire is not the best way to solve the problem." - my wife
You're missing the point. It still adds ON TOP of what would be standard human latency. Given say, a game where milliseconds matter and can make you lose points, this is an issue.
Why OpalCalc is the best Windows calc
Okay, let's say human reaction time 0.3 secs with +-0.1 secs margin of error for simplification. Let's also assume keyboard latency is 0.05 (50 ms). Let's assume the game is a simple reaction test where whoever shoots first after a visual signal is sent is the winner if they get in before their opponent.
A typical round of 5 games of equal skill could go:
Player A,B
0.25, 0.35
0.21, 0.37
0.39, 0.3
0.3, 0.34
0.31, 0.29 Final score: Player 1: 2 points, Player 2: 3 points
That was obviously contrived, and I made up the scores. So let's try the best of 10,000 games with a random number generator:
Player A: 4926
Player B: 5074
On first run, not quite 5000 each, but that's well within expected occurrence. Now let's try with a 50 millisecond penalty for player B:
Player A: 7163
Player B: 2837
Wow! Player A is winning almost 3/4s of the games despite only 0.05 secs being added! Such a small amount makes a far bigger difference than you would think.
For fun, let's try a 10ms penalty for player B:
Player A: 5453
Player B: 4547
Even a measly 10ms makes a significant difference in the long run.
Why OpalCalc is the best Windows calc