I’m using PsychoPy 3.2.3 with an Eyelink 1000 Plus. I’d like to have each trial of my task begin with a fixation cross that the participant must fixate for a set amount of time before the stimulus appears. I haven’t been able to find any instructions for how to do this. Is it possible to do this with just PsychoPy? Does anyone have any advice or example scripts? Thanks!
Yes it is possible.
You can use ShapeStim to draw a cross. To set the amount of time precisely you can draw the shapeStim in a for loop in range of the number of frames - this depends on the refresh rate of your laptop/system. If precise timing isn’t an issue for you you can just use core.wait().
Thanks @roshan_sivakumar for the response. Correct if me if I’m misunderstanding, but what you’ve described will draw a cross for a set amount of time. However, it does not make use of the participant’s actual fixation position to control when the fixation cross will terminate. This last part is what I’m trying to figure out. For example, I’d like the fixation cross to stay on the screen until the participant has fixated the cross for, say, 500ms, at which point the stimulus would appear.
I use drift correction at the beginning of each trial to do this. You can see in the screenshot below that I add the code inside my trials loop. One caveat about using this method is to make sure that you reset the routine timer after the drift correction, otherwise the subsequent trial will be shortened by the duration of the drift correction.
I do not use ioHub, instead I use pygaze. To change the default settings of the drift correction procedure (e.g., how many samples must be collected, max deviation allowed) you can alter the code in the file pygaze._eyetracker.baseeyetracker.BaseEyeTracker
I hope this helps.