I'm working on a project to be able to test the performance of computer monitors. I will be looking at pixel response time and input lag. Response time is a measure of how fast the pixels switch between two colors. Input lag is a measure of how long it takes from when a computer receives an input to when that is displayed on the screen.

My plan to measure these is to use a high-speed photodiode connected to an analog input of a Teensy 3.6. This will allow me to measure the light values and detect when the screen brightness changes. To measure the input lag, I will have the Teensy issue a keyboard command over USB which will switch the screen between black and white. A timer will start once this command is issued and the code will detect when the light levels change. The timer will be stopped once the monitor changes to the new color.

To measure response time, I will switch between colors and measure how long the display output is in transition before it settles to the new value. This will be either the rising or falling edge depending on whether the screen is going to a lighter or darker color.

What I need help with is making sure the ADC on the Teensy is fast enough to be able to detect light level changes on the order of 10-100 microseconds. The photodiode I am looking at has a rising edge of 7ns so that should be plenty fast. How fast is the sample rate for the ADC on the Teensy 3.6? Hopefully it can be tuned to 100-500Ksps or ideally, even 1Msps.

My next question is whether or not I will need some sort of amplification for the photodiode signal. I'm planning to just use some resistor in series and then connect to the ADC at the junction. Any issues with this going into the board?

Since this needs to be very fast and accurate, timing is very important. How accurate are the internal timers on the 3.6? Can I accurately measure with microsecond accuracy?

Where should I store the samples? I can either offload them directly to the computer over USB or I can store them on the SD card or in internal memory. I shouldn't need more than a few seconds worth of samples for each measurement. What would be the best and fastest option?

Finally, what is the latency for issuing commands over the USB interface? This will be important to calibrate my results.