I am testing timing accuracy for display and EEG trigger via parallel port.
I thought that this will be an easy thing because the EEG trigger can be bound to / or send immediately after the win.flip() command, and sending the trigger should occurr in practically no time.
It turned out, however, that i was wrong.
- Couriosly, the parallel port signal arrives at the EEG recording maschine actually earlier than the signal for the visual image, which was measured via photoelectrode (using a device calles StimTrack, developed by Brain Products).
- The delay between the visual signal and the trigger signal is huge amounting to 18-28 ms (i.e., there is an offset plus some variability). With a CRT Monitor refresh rate of 85 Hz you would probably expect a delay of around 6-8 ms for a stimulus that is presented at screen center, but this is much lower than the observed delay. Furthermore, there should be almost no variability).
The same results can be reproduced using a Matlab script, such that it is probably not the presentation software that is causing the problem
We use a very good computer on which we replaced the onboard graphics with an NVIDIA Quadro K620 (this was a convenience choice, a gaming card might be better). The machine is new and almost unused before. Windows 10 is installed.
I suspect that the StimTrack is introducing both part of the delay and part of the variance, but I am not sure. The support guy suggested a graphics card issue. Any other Ideas?
The code I used is this
from psychopy import core
from psychopy import parallel
from psychopy import visual
win = visual.Window()
rect=visual.Rect(win, width=200, height=200, fillColor='white', units='pix')
for i in range (10):