Measuring keyboard input lag

Everything about latency. Tips, testing methods, mouse lag, display lag, game engine lag, network lag, whole input lag chain, VSYNC OFF vs VSYNC ON, and more! Input Lag Articles on Blur Busters.
Sparky
Posts: 682
Joined: 15 Jan 2014, 02:29

Re: Measuring keyboard input lag

Post by Sparky » 14 Oct 2015, 08:01

dhaine wrote:there's a few keyboards claiming input lag superiority at the moment :
logitech g910 / g410 (with romer-g switch a logitech/omron association)
CHERRY RealKey with its cherry mx6 keyboard
a4tech bloody lightstrike with many keyboards but hard to find (b640 b740 b700 b720)
steelseries qs1 with steelseries apex m800

i own logitech cherry and a4tech and did the "bump" test that a4tech bloody is using to test which one is faster; you can find software here : http://bloody.com/usa/Download.php

it's a very rude way to do it ^^

i also tried with orings to see if it could change the winner but from my tests the a4tech was slighty faster than logitech, and the cherry mx6 was actually same as any cherry mx red keyboard : about 10ms slower than a4tech and logitech
I haven't had the chance to test the steelseries...

If you could test these keyboards with your method we would have way better results, unfortunately i suck at anything needing wiring stuff, last time i tried i broke a mouse...

i haven't tried if logitech/a4tech would work on ps2 port with an adaptor but i don't think they do

Can you check if the Cherry 6.0 is a low speed or full speed USB device? Windows doesn't follow USB spec on polling frequency for low speed devices.

dhaine
Posts: 49
Joined: 22 Nov 2014, 00:25

Re: Measuring keyboard input lag

Post by dhaine » 14 Oct 2015, 18:33

how can I check that ?

Sparky
Posts: 682
Joined: 15 Jan 2014, 02:29

Re: Measuring keyboard input lag

Post by Sparky » 15 Oct 2015, 15:39

dhaine wrote:how can I check that ?
USB Device Tree Viewer or USBView.

dhaine
Posts: 49
Joined: 22 Nov 2014, 00:25

Re: Measuring keyboard input lag

Post by dhaine » 15 Oct 2015, 19:13

Device Bus Speed : 0x01 (Full-Speed)

for cherry mx6, bloody b640 and logitech g303 (all 3 at full speed)
keyboard and mouse is on same controller, i have another one but it's seems only for the front panel usb

is it true it's better to separate usb and mouse usb hub ?
is it true front panel hub is worse because it's mounted from an auxiliary panel ?

Sparky
Posts: 682
Joined: 15 Jan 2014, 02:29

Re: Measuring keyboard input lag

Post by Sparky » 15 Oct 2015, 21:31

dhaine wrote:Device Bus Speed : 0x01 (Full-Speed)

for cherry mx6, bloody b640 and logitech g303 (all 3 at full speed)
keyboard and mouse is on same controller, i have another one but it's seems only for the front panel usb
Weird, what's the binterval field in the keyboard's interrupt endpoint descriptor?
is it true it's better to separate usb and mouse usb hub ?
is it true front panel hub is worse because it's mounted from an auxiliary panel ?
I haven't been able to tell any difference, but you can't rule out some motherboard using a third party USB chipset with a poorly written driver, or some other confounding issue, like signal degradation or interference on a cheap cable. Best you can do is test whatever you have access to.


Sparky
Posts: 682
Joined: 15 Jan 2014, 02:29

Re: Measuring keyboard input lag

Post by Sparky » 16 Oct 2015, 19:29

So the keyboard has multiple endpoints, some are 0x01 (1ms) and some are 0x0A (10ms). It sounds like it's using the 10ms endpoint, which is also has a small packet size, so you might want to check if NKRO is working in that mode. (I'm guessing it just uses the third endpoint for NKRO, which might make windows think you're using two keyboards simultaneously).

Just looked at the manual, it sounds to me like they couldn't get the keyboard working acceptably with the fast response time, so they hid it behind a "performance" mode. Press the cherry key so the windows key turns red, then try testing latency again. http://www.cherry.de/files/manual/64406 ... ard6-0.pdf

It's also a bit concerning that it's possible to update firmware on the board, as that's a potential security vulnerability (difficult attack to pull off, but it lets malware reinstall it's self after a complete format and reinstall).

Q83Ia7ta
Posts: 761
Joined: 18 Dec 2013, 09:29

Re: Measuring keyboard input lag

Post by Q83Ia7ta » 17 Oct 2015, 06:51

May be someone interested how Logitech G910 shows at usbview:
http://i.imgur.com/Gk03t3X.png or

Code: Select all

Device Descriptor:
bcdUSB:             0x0200
bDeviceClass:         0x00
bDeviceSubClass:      0x00
bDeviceProtocol:      0x00
bMaxPacketSize0:      0x40 (64)
idVendor:           0x046D (Logitech Inc.)
idProduct:          0xC32B
bcdDevice:          0x9201
iManufacturer:        0x01
0x0409: "Logitech"
iProduct:             0x02
0x0409: "Gaming Keyboard G910"
iSerialNumber:        0x03
0x0409: "176334523736"
bNumConfigurations:   0x01

ConnectionStatus: DeviceConnected
Current Config Value: 0x01
Device Bus Speed:     Full
Device Address:       0x02
Open Pipes:              2

Endpoint Descriptor:
bEndpointAddress:     0x81  IN
Transfer Type:   Interrupt
wMaxPacketSize:     0x0008 (8)
bInterval:            0x01

Endpoint Descriptor:
bEndpointAddress:     0x82  IN
Transfer Type:   Interrupt
wMaxPacketSize:     0x0040 (64)
bInterval:            0x01

Configuration Descriptor:
wTotalLength:       0x003B
bNumInterfaces:       0x02
bConfigurationValue:  0x01
iConfiguration:       0x04
0x0409: "U92.01_B0012"
bmAttributes:         0xA0 (Bus Powered Remote Wakeup)
MaxPower:             0xFA (500 Ma)

Interface Descriptor:
bInterfaceNumber:     0x00
bAlternateSetting:    0x00
bNumEndpoints:        0x01
bInterfaceClass:      0x03 (HID)
bInterfaceSubClass:   0x01
bInterfaceProtocol:   0x01
iInterface:           0x00

HID Descriptor:
bcdHID:             0x0111
bCountryCode:         0x00
bNumDescriptors:      0x01
bDescriptorType:      0x22
wDescriptorLength:  0x0041

Endpoint Descriptor:
bEndpointAddress:     0x81  IN
Transfer Type:   Interrupt
wMaxPacketSize:     0x0008 (8)
bInterval:            0x01

Interface Descriptor:
bInterfaceNumber:     0x01
bAlternateSetting:    0x00
bNumEndpoints:        0x01
bInterfaceClass:      0x03 (HID)
bInterfaceSubClass:   0x00
bInterfaceProtocol:   0x00
iInterface:           0x00

HID Descriptor:
bcdHID:             0x0111
bCountryCode:         0x00
bNumDescriptors:      0x01
bDescriptorType:      0x22
wDescriptorLength:  0x0077

Endpoint Descriptor:
bEndpointAddress:     0x82  IN
Transfer Type:   Interrupt
wMaxPacketSize:     0x0040 (64)
bInterval:            0x01

dhaine
Posts: 49
Joined: 22 Nov 2014, 00:25

Re: Measuring keyboard input lag

Post by dhaine » 17 Oct 2015, 10:24

you are right having the cherry set to red lower input lag, bringing it very close to the g910, I still think the g910 is faster by a very few ms but it can be just a feeling and human error
they are both great keyboards (too bad the g910 can't have its palm removed...)

Sparky
Posts: 682
Joined: 15 Jan 2014, 02:29

Re: Measuring keyboard input lag

Post by Sparky » 17 Oct 2015, 14:08

dhaine wrote:you are right having the cherry set to red lower input lag, bringing it very close to the g910, I still think the g910 is faster by a very few ms but it can be just a feeling and human error
they are both great keyboards (too bad the g910 can't have its palm removed...)
Could you do some flick tests to see if debouncing is still acceptable in the performance mode?

Post Reply