Obtaining a vertical refresh signal in HDMI
This is a snippet, unsolved problem. This documents where we are in our solution. Suggestions welcome! :-)
A few months ago my lab brought its first HDMI monitor into service. We want to find a good way to identify the frame sync signal for HDMI for diagnostic / recording purposes.
Usually, for our other monitors (VGA), we monitor the vertical refresh signal from the monitor input (using a break-out cable) as well as a software-generated trigger that is generated by the stimulus computer. Our software-generated trigger (from our Linux or old Macs running Snow Leopard 10.6) has a tiny USB-induced lag, and so we have been aligning the vertical refresh signal with the software trigger to determine the "frame onset" time for our visual stimuli with high accuracy.
Now we have an HDMI monitor and I haven't been able to retrieve a sync signal. I'm going to provide a "dump" of what I learned December 2020.
First, it seems not to be trivial. The sync signal is apparently not present nakedly in the HDMI cable; you would have to decode the digital HDMI signal and identify the vertical refresh signal. OK, there are some inexpensive chips for that, such as https://www.analog.com/en/parametricsearch/11352#/p4503=|Pixel%20Bus . ADV7611 and ADV7619 appear to be common chips. But there seems to be a horserace in keeping up with higher and higher data rates, and ADV761* seems to only support HDMI1.4. HDMI2.0 allows much higher bandwidth.
I am about to try this: https://www.adafruit.com/product/2218?gclid=CjwKCAiAxKv_BRBdEiwAyd40N7CVLgjo7Oja2xzbdoVcS0b72J_VH_SxEFQKhDFAahAWat6SN_BXSBoCXpMQAvD_BwE
but I worry it will be too slow for 120 Hz displays.
I also wonder if each HDMI display introduces its own lag depending upon its own decoder, in which case this approach would be futile.