Toetsenbordlatentie: waar de vertraging vandaan komt en hoe die wordt getest
Toetsenbordlatentie is de tijd vanaf het moment dat je vinger een toets begint in te drukken tot het moment dat het toetsenbord die aanslag naar de computer heeft gestuurd. Die tijd ontstaat op vier plekken: de toetsweg, het scannen van de toetsen door het toetsenbord, debounce en USB-polling. Geen enkele website kan die meten, want een browser hoort pas van een aanslag nadat het toetsenbord die heeft verstuurd. Testers gebruiken een solenoïde die de toets indrukt en een USB-analyzer die vastlegt wanneer de aanslag het toetsenbord verlaat. Om de latentie te verlagen gebruik je een korter activatiepunt, de hoogste pollingrate en de laagste debounce-instelling waarbij toetsen niet dubbel typen.
Waar een aanslag op wacht voordat de computer hem krijgt
- Toetswegde toets gaat omlaag tot het punt waarop de schakelaar activeert
- Scannende chip van het toetsenbord controleert het raster van toetsen, rij voor rij
- Debouncehet toetsenbord wacht tot het contact van de schakelaar niet meer stuitert, of negeert het stuiteren
- USB-pollingde aanslag wacht tot de computer het toetsenbord opnieuw om nieuws vraagt
Samen: de toetsenbordlatentie
Pas hier kan een webpagina een klok starten
Computer en scherm de game verwerkt de aanslag, tekent een frame en het scherm toont het: de rest van je input lag
Waar de vertraging vandaan komt
- Toetsweg. Er gebeurt niets tot de toets zijn activatiepunt bereikt. Gefilmd op 240 beelden per seconde had een normale aanslag 4 tot 8 beelden nodig om helemaal omlaag te gaan, en de toetsweg alleen kan makkelijk 10 ms toevoegen. Het snelste toetsenbord in die test had ook verreweg de kortste toetsweg.
- Scannen. De meeste toetsenborden bedraden hun toetsen in een raster en controleren dat rij voor rij. Een toetsenbord dat traag scant, kan je aanslag pas enkele milliseconden na het sluiten van de schakelaar opmerken.
- Debounce. Het contact van een schakelaar stuitert even als het sluit. Het toetsenbord meldt de aanslag meteen en negeert het stuiteren, of wacht tot het contact tot rust is gekomen. In QMK, de opensource-firmware waarop veel custom toetsenborden draaien, is de standaard debounce-tijd 5 ms.
- USB-polling. De computer vraagt het toetsenbord om nieuws zo vaak als de pollingrate aangeeft. Een aanslag die net na een poll komt, wacht op de volgende.
Pollingrate in milliseconden
De tijd tussen twee polls is 1.000 ms gedeeld door de pollingrate. Gemiddeld wacht een aanslag de helft daarvan.
| Pollingrate | Een poll elke | Gemiddelde wachttijd |
|---|---|---|
| 125 Hz | 8 ms | 4 ms |
| 250 Hz | 4 ms | 2 ms |
| 500 Hz | 2 ms | 1 ms |
| 1000 Hz | 1 ms | 0,5 ms |
| 8000 Hz | 0,125 ms | 0,0625 ms |
Van 125 Hz naar 1.000 Hz gaan scheelt gemiddeld 3,5 ms. Gemeten toetsenborden verschillen veel meer dan dat: in 2017 mat Dan Luu 21 toetsenborden op 15 tot 60 ms, en de twee gamingtoetsenborden daartussen waren niet sneller dan de rest.
Hoe toetsenbordlatentie wordt getest
- Een solenoïde en een USB-analyzer. RTINGS en LTT Labs drukken de toets in met een solenoïde, markeren het moment dat die de toets raakt, en leggen met een USB-analyzer vast wanneer de aanslag het toetsenbord verlaat. RTINGS neemt het gemiddelde van 200 aanslagen. Beide zetten het toetsenbord eerst op de snelste instellingen, zoals de laagste debounce en de hoogste pollingrate.
- Elke verbinding apart. LTT Labs meet kabel, 2,4 GHz draadloos en Bluetooth afzonderlijk, omdat de latentie daartussen sterk kan verschillen.
- Een logic analyzer. Dan Luu gebruikte er een om de tijd te meten tussen het begin van een aanslag en het USB-pakket dat die opleverde.
- Thuis: een camera of een lichtsensor. Film de toets en het scherm samen in slow motion (240 beelden per seconde is een beeld elke 4,2 ms), of gebruik een lichtsensor op het scherm, zoals de opensource-tool OSLTT. Beide meten de hele keten van toets tot scherm, niet het toetsenbord alleen.
Waarom geen enkele website toetsenbordlatentie kan testen
Een browser hoort pas van een aanslag nadat het toetsenbord die heeft verstuurd en de computer hem heeft doorgegeven, dus alles wat deze pagina beschrijft, is al gebeurd voordat een webpagina een klok kan starten. Een test die de tijd meet van een signaal tot je aanslag, meet je reactie, en die duurt veel langer dan het toetsenbord. Wat een browser wel kan controleren, is of elke toets registreert en hoeveel er tegelijk werken, met de toetsenbordtest, en of een toets dubbel typt, met de test voor dubbele toetsaanslagen.
Zo verlaag je toetsenbordlatentie
- Stel de hoogste pollingrate in in de app van de fabrikant, als die dat aanbiedt.
- Verlaag de debounce, als de app dat toelaat, maar stop bij de laagste instelling waarbij toetsen niet dubbel typen. Beginnen letters dubbel te komen, lees dan waarom een toetsenbord dubbele letters typt.
- Gebruik een korter activatiepunt. Bij magnetische en analoge toetsenborden stel je in hoe ver een toets omlaag moet voordat hij telt. Rapid Trigger, op toetsenborden zoals die van Wooting, geeft een toets bovendien vrij zodra je hem begint op te tillen, en activeert hem opnieuw zodra je weer omlaag drukt.
- Kies de snelste verbinding voor games. Kan je toetsenbord op meer dan één manier verbinden, gebruik dan de verbinding die in een review het snelst was.
- Kijk daarna naar de rest van de keten. Je framerate en je scherm zorgen meestal voor meer vertraging dan het toetsenbord: zie hoe je input lag verlaagt.
Hoe lineaire, tactiele en clicky switches verschillen, met de cijfers van de maker voor actiepunt en bedieningskracht: toetsenbordswitches.
Bronnen: Dan Luu (Engelstalig), Toetsenbordlatentie; RTINGS (Engelstalig), hun meetmethode voor latentie; LTT Labs (Engelstalig), Hoe Labs toetsenborden test; QMK (Engelstalig), Debounce-algoritme; Wooting (Engelstalig), Rapid Trigger instellen; OSLTT (Engelstalig), Open Source Latency Test Tool.