Run Eyelink calibration routine in dummy mode

Dear all,

Is it possible to run the Eyelink calibration routine without the eye-tracker being connected (i.e., set to dummy mode)? We want to run the same experiment using multiple eye-trackers and want to use the same calibration routine for each tracker. The code we’re using (from https://github.com/behinger/etcomp) uses an adapted version of the standard ‘EyelinkDoTrackerSetup’ code. Basically, I would like to run that code even if the Eyelink is not connected.
It seems that the calibration routine gets skipped if the Eyelink is set to dummy mode. In principle, I probably don’t need everything from the routine, but at least the presentation of calibration targets is a necessity.

Does anyone have experience with this and knows how to do this? Or will I just have to built a calibration target presentation script that mimics ‘EyelinkDoTrackerSetup’?

Thanks in advance for any help/tips you can give.
Minke

It is my understanding that this calibration is driven by commands given by the eyelink, and these commands are not given when in dummy mode. So indeed, that means you would have to recreate the display yourself.

Since you said multiple eye trackers: i’m pretty sure (its been a while) that the same is true for SMIs. For Tobiis (with the Pro SDK), the computer gives commands to the eye tracker, so in principle one could run the same procedure without sending those commands. However, i am not aware of a tool that still shows the calibration dots when not actually calibrating. My tool, https://github.com/dcnieho/Titta, at least doesn’t.

It seems that the API for each eyetracker is very different to each other (and some are not really accessible from MATLAB) and it would be difficult (though very cool) to have a unified calibration routine?

Hmm, unified in what sense, looks the same? What would be the point of that? Do note that nothing is stopping one now to make a calibration routine for each of these that suits your needs, even if for the eyelink its a little harder as the eyelink toolbox makes it hard to call your own custom function. I have a pull request in motion to add that, but Mario rightfully requested some changes to that i haven’t gotten to yet.

How about getting Titta’s super-fantastic manual calibration mode working with the Eyelink then? :stuck_out_tongue:

Eyelink’s callback method is glitchy and clunky, yes you can “just about” customise it (I also rewrote the code to draw the fixation points, trigger a reward system during calibration/validation etc.), but it is nowhere near as flexible as Tobii’s interface…

I don’t think thats possible as the Eyelink is more rigid in how calibration/validation is done (preselect number of calibration points, calibration computed automatically once that number of points plus 1 is collected, etc)

Indeed; the Eyelink API is by now quite dated and inflexible…

Well, its very good at what it needs to do. One could always record raw P-CR data and calibrate yourself (even online, though i’m not sure that works with the eyelink toolbox, would work with a custom MEX, or in Python), which would allow doing what you want if you have suitable calibration models, etc. Would be a very big job though, so unless you are sure you want to go there, dont :stuck_out_tongue: