PadBench

Help
Open the tester

Measurements and tests

Buttons and chatter

Every control you press lights on the drawing and counts in the Buttons tile. PadBench also times each control's shortest press, and watches for chatter: a switch that bounces, so one press registers twice.

Controls seen

The Buttons tile counts the drawn controls you have pressed so far, such as 3 of 19, and names the next few you haven't. Press each one once and the count should reach the total. A control that never counts may be broken, or be one the browser doesn't pass on, which the stage then says.

The Controller tab has a card for every control, with how many times it was pressed, or a dash until the first. A held control's card is filled and says Pressed. Reset counts starts the counts again.

The shortest press

Under each control's presses is its shortest press, from a press to its release, both seen. It carries no verdict: a turbo button, a board cleaning opposite directions or a short hop make short presses on purpose. From a second up it is in seconds.

A trigger that moves through its travel has none, since its press is only how fast it is pulled; one that only clicks, as a Switch pad's ZL and ZR do, is timed like any button.

Through the browser's Gamepad API, which hands PadBench one reading per screen refresh, a press that starts and ends between two readings is missed, and the others are timed by the browser's clock, which Chrome on Windows sets at its latest reading rather than at the press. WebHID and the Windows app see a pad's presses and releases as its reports arrive.

Chatter

A switch can bounce as it wears: let go and pressed again within 10 ms, faster than any finger, so one press registers twice and a game sees a double press. PadBench counts every such bounce as chatter.

The Buttons tile says No chatter, or names the controls that chattered. Each one's card in the Controller tab is ringed, with its bounces, and the Timing tab lists every bounce, how long the control was let go and when.

A bounce lasts a few milliseconds, so chatter is counted only where PadBench sees every change, or readings closer together than 4 ms: through WebHID and the Windows app. The browser's Gamepad API reads once a frame, so a bounce falls between its readings, and the tile says Chatter not measurable here, with no figure, not even 0.

Every change, or a reading a frame

A source either passes on every change the pad reports, or takes readings of it. WebHID and the keyboard pass on every change, and so does the Windows app for a HID pad, while it reads an Xbox pad every millisecond. The browser's Gamepad API takes a reading once a frame, and never more often than the browser polls the pad, so a press shorter than that can be missed; the Debug tab says how often it reads.

Debounce

Many pads and boards ignore a second change that comes within a few milliseconds of the first, which is called debounce. It hides chatter from games, but a long one also swallows quick presses, and some ways of debouncing add delay. Where a board lets you set it, as GP2040-CE does, chatter PadBench finds means the setting is too short, or a switch is wearing out.

en