Game Controller Latency


The XBox game controllers used in the CES lab for the LSE have their events registered by Windows in a manner similar to that of a mouse, keyboard or other standard HCI. This means that precision is simply not very good. Nevertheless, its latency was measured.

Experimental Procedure

In order to measure the latency of button clicks on the XBox game controller with any semblance of accuracy, it is necessary to slightly hack the hardware. In this experiment, the controller was opened and wire leads were affixed to either side of a button pad. These leads were then connected to two terminals of a switch. The same switch was connected in series with a 9V battery and a potentiometer. In this configuration, the wiper of the potentiometer is a signal that goes high when the switch is thrown one way (the exact value depends on the position of the wiper -- it's a voltage divider) and low (0) when the switch is thrown the other way. The same switching action effectively presses and releases the button on the game controller.

Separate LSL streams were used to gather these signals which were analyzed with this code.

Shown here is a close up of the data. The block line is the signal from the simple voltage divider circuit. This signal was measured through a BioSemi amplifier and a known latency of 7.72ms was subtracted from its time stamp data. The vertical red line indicates when the switch is thrown, the green line is the time at which the button event is seen by LSL.


As suspected, the button presses/releases are rather noisy. Interestingly, the button releases have almost 13ms less latency than do the button presses.

Shown here are the latencies of button down and button up events (presses and releases). The presses have a mean latency of 28.95ms and the releases have a mean of 16.13ms. Both have significant spread and a few outliers.

The data for this experiment was taken on 11/05/2014.