OS: Win10 PsychoPy version: 2024.2.4 (just updated today) Standard Standalone Installation? yes Eyetracker: Eyelink Portable Duo
I’m working on an eyetracking study for young children and would like to use an animated calibration target. I tried:
(a) the built in calibration routine, which has an “Animation” tab. Updating elements in other tabs changed calibration performance (e.g., border and fill colors, three vs nine point calibration), but there was no animation nor did changing several settings in that tab change behavior in any noticeable way.
(b) the custom_calib demo. I copied it over into my existing study and inserted it at the beginning of my experiment. I started the study in “run” mode. After the frame rate screen, I got a solid pink screen with no calibration point. The display on the host computer is as expected for calibration: it shifts from the camera setup screen to the calibration display that shows the participant’s current fixation and marks the calibrated locations. Validation likewise displays a pink screen, but looks as it should on the host computer.
(c) the custom_calib demo by itself. That gives me a solid green screen instead of a pink one, and the host computer appears to remain in camera setup mode.
None of these generates any errors or warning messages except “monitor specification not found”. I suspect this is an unrelated warning, though I’m not sure why it’s still showing up, since I do have monitor setting saved and the correct monitor selected in Experiment Settings. I have not done gamma calibration.
It sounds similar to what people were reporting here:
It’s also something that we dealt with a long while back in my lab, but the student who sorted it out then has graduated and I’m not sure what the solution was. The code they set up (which was essentially custom_calib with a few tweaks) also generates the pink screen problem in the current version of PsychoPy (I believe it worked in a 2021 version of PsychoPy, but broke when we finally updated to a 2024 version)
Continued working on troubleshooting today using the eyetracking_custom_cal demo to keep things as clean and simple as possible.
(a) Neither MouseGaze nor SR Research Eyelink 1000 Remote eyetracker settings lead to a functional calibration. MouseGaze gives me a blank green screen, Eyelink gives me a blank pink screen. If I cheat my way through the Eyelink calibration and validation, the rest of the demo works fine. Both MouseGaze and Eyelink settings result in the same output in the Runner window (see below).
(b) I was wrong about there not being any errors or warnings. There aren’t any that cause the study to crash, but there are a few relevant errors and messages. I’m including the full text below.
> Generating PsychoPy script...
>
> ## Running: C:\Users\Display\Desktop\psychopydemos\Hardware\eyetracking_custom_cal\eyetracking_custom_cal_lastrun.py ##
> 7283.8222 INFO Loaded monitor calibration from ['2021_04_12 13:19']
> 7283.8388 INFO Loaded monitor calibration from ['2021_04_12 13:19']
> Traceback (most recent call last):
> File "C:\Program Files\PsychoPy\lib\site-packages\psychopy\iohub\util\__init__.py", line 509, in createCustomCalibrationStim
> return TargetClass(**targ_kwargs)
> File "C:\Program Files\PsychoPy\lib\site-packages\psychopy\contrib\lazy_import.py", line 118, in __call__
> return obj(*args, **kwargs)
> TypeError: MovieStim3() takes no arguments
> Error creating custom iohub calibration graphics. Using default FixationTarget.
> 2.9656 WARNING Monitor specification not found. Creating a temporary one...
> Calibration returned: {'RESULT': 'CALIBRATION_ABORTED'}
> ioHub Server Process Completed With Code: 0
> ################ Experiment ended with exit code 0 [pid:13456] #################
(c) I think I’ve narrowed the issue down to the following line in the generated code: result = eyetracker.runSetupProcedure(calib_config)
As far as I can tell, this line is referencing material that’s imported from psychopy and not directly represented in the lastrun script, so I haven’t able to track it any further at this point.
I haven’t ironed out all the issues yet (see this sr-support thread for my current questions), but I’m a lot closer. The SR Research plugin also provides a ‘spiral’ calibration option that may work well enough, even if supplying an actual video file that includes audio won’t.