The FOVE 0 has a 119Hz eye tracker. This means the eye tracking cameras are taking new images every 1s / 119 = 8.4ms.

The images are then sent to the PC over USB, where the Windows UVC driver reads them and passes them to FoveService.exe for processing. The timestamp is taken on the host PC as soon as the image arrives.

FOVE 0 Timestamp Explanation.svg

Why Frame Rates Vary

πŸŒ€ Grouped Frame Intervals on Windows

For unknown reasons, the Windows UVC driver often processes frames in batches, causing timestamps to appear with an alternating rhythm, such as: 14ms – 2ms – 14ms – 2ms …

Within any 1-second span, there will still be 119 frames, but the inter-frame intervals (time between consecutive timestamps) will vary.

This behavior does not affect the timing of the camera itself, which continues capturing images at 119Hz. You can safely assume uniform 8.4ms intervals for analytical purposes unless frames are missed.

On Linux, the β€œgrouped” timestamp behavior does not occur. However, there is still variability in inter-frame timing due to USB transfer speed fluctuations.

⚠️ Missed Frames

To detect missed frames: