Latency Meter, made from an Arduino, for accurate gaming

Close view of the top left corner of a monitor, with a small Arduino board mounted on the top with a diode protruding down about 1cm below the board, and a white USB cable running from the left side of the board and around the left side of the monitor.

Unlike other measurement devices that use the time between a mouse button input and the monitor’s display of a bullet or shooting event, this one looks at mouse movement and the change in the scene instead. This makes it much more versatile than other methods since it’s independent of specific actions, and can be used in any game without any specific events needed to perform the measurement. A phototransistor is placed on the monitor’s top edge, and the Arduino-based device sends mouse commands to the computer while measuring the time between those commands and the shift in the image on the monitor.

It works differently:

  • Unlike other common HW latency meters, this device doesn’t measure a “click-to-photon” latency, but rather an “aim-to-photon” latency.
  • The device presents itself to the PC as a mouse, and sends a mouse movement (not a click!) message.
  • Once the message is sent, the device measures the time until the image on screen changes.

Advantages over other latency metering devices:

  • You don’t need bullets to measure latency, so you never run out of ammo – you can (quickly) make as many measurements as you wish. As a result, the device can work autonomously to collect unlimited number of measurement samples, reaching a much higher accuracy.
  • The measurement doesn’t rely on the muzzle flash animation, which (depending on developer) may be rendered with a delay, producing incorrect results.
  • You can measure latency in games that don’t shoot guns (e.g. shoot arrows or explore)
  • You don’t need to place the device in the middle of the screen every time. It is unobtrusive enough that you don’t even have to take it off.
  • The device requires only one connected wire for operation.
  • The device can even estimate the effective framerate – something the other devices cannot do.
  • And of course, last but not least – the device is open source, cheap, and easy to make!

See https://hackaday.io/project/192883-arduino-latency-meter