Hardware by citrus3000psi
Kicad project can be found here: github.com/citrus3000psi/Time-Sleuth.
Latest Firmware: time-sleuth-firmware.zip
Automatic builds are done with gitlab-ci.
To program the firmware, a USB Blaster programmer is needed, e.g. from ebay
Software to program the FPGA:
Time Sleuth generates a flicker pattern and then measures the time it takes from the start of the first pattern to the moment it shows up on screen using a photo transistor.
The counter measuring the lag starts at the first line of the first field. So if you're using a display, which generates the image from top to bottom (line by line, as LCD/OLED/CRT monitors/TVs will do), the first field will give you the processing lag of the screen, while the second and third field will also include the lag inherent to the line by line drawing of the image.
There are 4 values displayed on the screen:
-
current
Shows the value of the last measurement.
-
min/max
Minimum and maximum value within the last averaging period. These values are reset, when a new averaging period starts.
-
average
Average value of the last 16 measurements. Most LED backlit LCD screens are using pulse width modulation for brightness adjustment and the PWM duty cycle of the backlight is often not 100% even if brightness is. So the current readings are often jumping, so
average
gives you the mean lag.
-
LED
Flashes, when a measurement was performed.
-
Switch
Switches between 1080p (
1
), 720p (2
) and VGA (3
) output.VGA will be changed to 480i in a future firmware revision
-
10pin JTAG connection
JTAG interface for updateing the firmware using an USB Blaster.
-
Crosshair
The crosshair indicates the position of the photo transistor on the bottom of the device and helps aligning over the measurement fields.
-
While the time to display a frame in 60Hz is 16.6 ms the display time for 1080p from the first visible line to the last visible line is only 16 ms and 14.6 ms from the middle of the first field to the middle of the last field.
-
Plasma displays are not displaying the image line by line, so you will see nearly the same amount of lag on all fields.