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