AV:Testing Controller Latency

Below is the process used by Porkchop Express and Lemonici for measuring controller latency using a MiSTer. This process and their posted results can be found on this site.

Required Materials

 * An Arduino Uno/Leonardo/Pro Micro (others will probably also work).
 * The NES Lag Tester core.
 * The Arduino lag test code by @jorge_ and @lemonici].
 * PuTTY (or other telnet client).
 * A USB 2.0 cable to be cut.
 * IO Board OR DE-10 Nano Latency Testing PCB hat

Setup

 * 1) Upload the Arduino lag test code to the Arduino.
 * 2) Enable 1ms polling on MiSTer by running fast_polling_on.sh
 * 3) Configure the controller you wish to test in the NES Lag Tester core, ensuring that the button you will wire up for testing is mapped.
 * 4) Solder a wire from a button on the controller to digital pin 5 of the Arduino, also solder a wire for GND between the controller and Arduino.
 * 5) Connect digital pin 2 of the Arduino to the User IO TX (D+) line on the IO board or PCB hat. You can do this using a USB 2.0 cable that you cut off. The green wire is D+.
 * 6) Connect GND between the Arduino and USER IO (black wire of the USB cable).

Testing Latency

 * 1) Plug the controller into a free USB port on the MiSTer.
 * 2) Power on the MiSTer and start the NES core. Close the OSD. Press a button or an axis on the controller.
 * 3) Plug the Arduino to a USB port on your computer and start Putty. Start a serial connection to the COM port of the Arduino at speed 115200. The COM port of the Arduino can be found in device manager (on Windows).
 * 4) If the connection was successful, you should now see test data in the Putty console.