Digital EyeLink calibration problems

Hi Rishi and Arash,

I’m still trying to figure out why you’re having trouble calibrating the digital EyeLink inputs. When we spoke earlier today, Rishi suggested that the (old) analog signal might be sending pupil positions, whereas the (new) digital signal was not. After looking through the EyeLink 1000 manual (which I’ve attached for your reference), I’m thinking he may be on to something.

Currently, your experiment is using the eye_lx and eye_ly digital outputs from the EyeLink. These are screen gaze coordinates, described in the manual as follows:

Gaze position data reports the actual (x, y) coordinates of the subject’s gaze on the display, compensating for distance from the display. The units are in actual display coordinates (usually pixels) which can be set in the EyeLink 1000 configuration file PHYSICAL.INI. The default EyeLink coordinates are those of a 1024 by 768 VGA display, with (0, 0) at the top left.

You also have the option to use the pupil_lx and pupil_ly outputs. These are pupil coordinates. From the manual:

Pupil position data is raw (x, y) coordinate pairs from the camera. It has not been converted to eye angles or to gaze position. There may be a non-linear relationship between this data and true gaze position. Pupil position is reported in integer values, with 200 to 400 units per visual degree.

When a calibration has not been performed, the EyeLink system cannot convert pupil data to the more useful data types. Raw pupil position is useful when auto-sequencing calibrations, or when the application wishes to perform its own calibration. Most users will not need this data type.

My understanding is that pupil coordinates are the “rawest” position data, from which the others (including gaze position) are derived. Furthermore, the second paragraph above makes it sound like non-pupil data is only valid if you’ve performed a calibration on the EyeLink. This makes me think that you probably should be using the pupil data.

According to the manual, the analog outputs can be configured to output gaze or pupil data (the latter is called “raw” in this context). You can check the current settings on the EyeLink computer. If the current setting is raw/pupil, then, again, it seems like you want pupil_lx and pupil_ly from the digital interface.

I don’t know if making this switch will solve your problems, but it seems worth a try.

For reference, the position data options are described in section 4.4 of the user manual, and the analog output settings are discussed in section 7.1.

Chris

Attachment: EyeLink1000_UserManual.pdf (3.8 MB)

Thanks Chris,

We will try and report.

Have a nice weekend,
Arash

Hi Rishi and Arash,

Ko (cc’d) recently ran into an issue that may be relevant to your EyeLink calibration problems.

Are you (a) using MWorks 0.6 or a recent nightly build and (b) gauging the success of your calibration based on the location of the red cross that appears in MWClient’s eye window whenever you take a calibration sample? It turns out that, due to a longstanding bug in the eye window that was unmasked by another bug fix included in MWorks 0.6, the location of the red cross isn’t particularly meaningful in 0.6 and later. (See the linked discussion for details.)

A fix for the eye window issue will be in the nightly build starting tonight. If you’ve been depending on the eye window to gauge your calibration’s success, then I recommend downloading the nightly and re-testing. (I still think you should use pupil coordinates, as we discussed previously.)

Cheers,
Chris