EyeLink digital I/O plugin for MWorks

Hi Nicole,

Jim forwarded me your question about EyeLink digital I/O. I’m happy to take up development of the plugin; as you point out, it should be useful to multiple labs, either now or in the near future.

The only issue I see is hardware availability. Are you specifically interested in the EyeLink 1000? The DiCarlo lab has older EyeLink devices, but I don’t whether they support digital I/O. If they don’t, then we’ll probably need to acquire an EL 1000 (which Jim says we were considering anyway).

Also, in addition to Jon Hendry’s work, Philipp Schwedhelm from Stefan Treue’s lab has been working on an EyeLink 1000 plugin. They’re specifically interested in its binocular capabilities, so I don’t know how general the plugin is. But in any case, I’ll try to get whatever code Philipp and Jon have and see what more needs to be done to fully support the device.

Chris

Hi Chris,

Great to hear!

We are indeed using the EyeLink 1000 (monocularly); I am also not sure if earlier versions support digital I/O. Please know that I’m happy to run tests on our hardware as needed.

Best,

Nicole

Hi Nicole,

I checked in with Philipp about the status of his EyeLink 1000 plugin. He says it’s pretty stable, and he’s comfortable sharing it with you (though he can’t make any guarantee that it functions properly).

Are you interested in testing Philipp’s plugin in your lab? If so, he can package up a build for you. Note that he’ll most likely compile the plugin against a recent nightly build, so that’s what you’d need to run against.

Chris

Hi Chris,

I’ll be happy to install the nightly and test the plugin. Please have it sent my way. Will it be something that should (in theory) seemlessly integrate with the current eye filter, calibrator and monitor by just replacing the IO syntax for eye_h_channel and eye_v_channel? If that is the case, then I could run a monkey on the standard DiCarlo lab calibration file for both the (normal) analog card input and, on a second run, the digital input for comparison.

Thanks,

Nicole

[I added Philipp to this discussion]

I’ll be happy to install the nightly and test the plugin. Please have it sent my way.

Philipp: Can you please build your EyeLink plugin against the latest MWorks nightly and package it up for Nicole? Probably the easiest approach is to create a ZIP archive of the Eyelink.bundle folder in /Library/Application Support/MWorks/Plugins/Core. You can attach the zip file to this discussion.

Will it be something that should (in theory) seemlessly integrate with the current eye filter, calibrator and monitor by just replacing the IO syntax for eye_h_channel and eye_v_channel?

Like ITC-18 channels, the EyeLink plugin dumps the raw eye coordinates into variables, so it should be fully compatible with the existing filter/calibrator/monitor pipeline. It provides binocular data, so I’m guessing that to replicate your current setup, you’ll want to use the raw x/y data from just one of the eyes (e.g. the eye_rx and eye_ry parameters). However, you definitely should verify that with Philipp.

Chris

Hi Chris and Nicole,

for some reasons, downloading the current nightly build will take another 120 minutes.

Here in Germany it’s already quite late, so I am sorry, but I will do this tomorrow then.

Good night,
Philipp

Hi Chris and Nicole,

I attached the bundle to this post.

To run it, you will need to install the Eyelink Framework, which is also included in the ZIP. To be able to run in 64bit mode, I used the (experimental) beta version of the Eyelink framework. But as I said, I am using this for some time now and everything works just fine.

To install the Framework just copy the eyelink_core.framework folder into /Library/Frameworks/

Then you copy the Eyelink.bundle into /Library/Application Support/MWorks/Plugins/Core and you are ready to go!

You will find a new IO-Device called “EyeLink 1k, Socket Line”. Because I didn’t want to test what happens when you don’t specify all parameters (there are a lot!) I defined the plugin to throw an error when there is something missing. However, all variable names are already assigned to the standard names used in our lab.

The Eyelink system needs to be connected to your MWorks Server computer via network cable. To achieve that, you can use the long, blue, crossed twisted pair cable that was shipped with your system - or just connect it to your local network. The only thing you have to make sure is that both systems, Eyelink and Mworks, are on the same subnet. Most likely, you will need to change the IP of your Eyelink and then tell it to the MWorks plugin. Please refer to the Eyelink manual in order to change the Eyelink’s IP address. Everything is explained there in great detail. In this manual you will also find the definitions of all the output values that the plugin dumps to MWorks.

Happy testing,
Philipp

Hi Nicole,

there is a new version of the plugin that you can download here: GitHub - pschwed/MWorks-Eyelink-1000-Plugin: this plugin has to be compiled against the eyelink framework

I didn’t commit big changes to the core code but changed only the variable names and the types of the z- and eye-distance parameters that you need to specify for the 3D-gaze transformations.

Did you so far manage to get it to work or did you run into problems? How is the comparison between ITC-wired tracking and this solution coming along? I would be really interested in the results because my system doesn’t have the IO output so I had no chance to compare this myself.

Thanks,
Philipp

Hi Nicole and Philipp,

I thought I’d check in and see how things are going with the EyeLink 1000 plugin.

Nicole: Have you been able to use Philipp’s plugin in your lab? Are there any issues you’ve run into?

Philipp: Now that MWorks 0.4.5 is out, it might be helpful if you compiled the plugin against the official release and posted it to GitHub. (You can upload a zip file to your project’s downloads area.) That way, other folks who are interested in trying the plugin won’t have to bug you for it :slight_smile:

Thanks,
Chris

Hi Chris, hi Nicole!

apart from very minor changes to the code, there is nothing new to the Plugin.

We are using it for some time now and it works stable and reliably. There were no issues regarding timing, accuracy etc, so the first experiment to obtain real data is now life.

Still, I would be really interested in results from Nicole, even though I can see zero pull requests for the code so I assume that there are no results for the current version.

The 0.4.5 plugin will be up soon.

Philipp

Hi everybody,

I uploaded a new version for the Eyelink-Plugin. It has some minor bug-fixes and is generally more thread safe.
Also, there is a Eyelink.bundle precompiled for the 0.4.5 release of MWorks.

Greetings,
Philipp

Also, there is a Eyelink.bundle precompiled for the 0.4.5 release of MWorks.

Great, thanks!

Chris