Doing drift correct before each trial with Eyelink

Hi @sol,

Thanks for your reply :blush:

I tried to set the 3rd arg from ‘1’ to ‘0’, but it still showed nothing on the display PC.

I also tried to set the 3rd and 4th args to ‘0’ or ‘1’ respectively, but neither of them work. The target point on the drift correct / check preview window was correctly displayed, I just couldn’t get anything show on my display PC.

I found this was because I controlled two computers at the same time, and Eyelink won’t accept any mouse click or keyboard input when the pupil missing. If I keep my eye fix on the display screen, I can successfully perform the drift correct by pressing the spacebar or clicking the ‘Accept Fixation’ button.

But if I press the spacebar or ‘ENTER’ key again, the host PC will go to the ‘Setup’ screen while the display PC run into the next routine and show the article, but the eyetracker seems not recording the eye movement before I click the ‘Record’ button on the ‘Setup’ screen.

When I used to learn how to operate the Eyelink system, I used a program written by another professor in Matlab. In that program, drift correct will appear before the start of each trial. If the drift value is acceptable, I can press the ‘G’ key to enter the trial and show my stimuli immediately, or just pressed ‘ENTER’ key to go back to the setup mode.

I think these operate steps was set by the teacher himself and control them by his program, not the original Eyelink default setting. Now I don’t know how to do the drift correct properly with Psychopy.

If the operation steps of the drift correct phase is same as the validation phase, I should go back to the setup screen after I pressed ‘ENTER’ key, and then press the ‘O’ key to start the trial. But now when I click the ‘ENTER’ key or spacebar, the trial will start immediately on the display PC while the host PC still in the setup mode.

I’m not sure what I did wrong and how to fix it. :worried:

I found that I just want to use the drift correct function to determine whether it is necessary to re-calibrate, so what I really want to do should be the ‘drift checking’ rather than the ‘drift correct’. Since I can’t use the drift correct function provided by Eyelink completely successfully, I want to try another way to check the drift value.

I use the method provided in the ‘branchedExperiment’ and ‘eyetracking’ to create a ‘checking phase’, the first routine in this phase will show a cross mark as a gaze target and a circle representing the current gaze position of the eye. The second routine is the calibration component, and the last routine only contains a 0.5 sec text component which will show ‘drift pass’ on the screen.

If the distance between cross and circle isn’t ideal, I can press the ‘y’ key to enter the calibration routine, or press the ‘n’ key to skip the calibration routine and proceed to the reading routine.

This idea is work successfully with the ‘MouseGaze’ mode now, but I’m worried it will fail with the Eyelink.

As mention in this discussion, The keyboard input and the etRecord components can’t work properly together, but the way I use to show the current gaze position circle is to add a etRecord component and set the position of the circle as $etRecord.getPos().

I delete the following code in the script to prevent the eyetracker recording status to be finished in the end of the drift routine:

        if etRecord.status != FINISHED:
            etRecord.status = FINISHED

But without the Eyelink, I’m not sure whether this script will work or not. Is there anything I should modify?

As a novice user of Psychopy, Thank you very much for your patience with me and a lots of assistance these days. :sob:

Alice