Now Shipping! – The EyeLink 3; combined head and eye tracking at up to 1000 Hz.

FAQ: How can I configure the EyeLink Host PC to accept TTL signals from another device?
#1
This article provides a guide on how to set up an EyeLink Host PC to accept TTL (Transistor-Transistor Logic) signals from another device.

Hardware Setup:
  • For Desktop EyeLink Host PCs: No additional hardware is needed.
  • For laptop EyeLink Host PCs:  You will need one of the following devices to receive TTL signals:
    • All laptop models: A LabHackers USB2TTL8 device.
    • Dell M4700 or Dell M4800 only: An ExpressCard IEEE 1284 Parallel Card.
    If using either of these devices, please make sure the device is connected prior to powering on the Host PC to ensure it's recognized by the Host software.

Host PC Configurations:
  • EyeLink 1000 Plus, EyeLink Portable Duo, and EyeLink 3:
    1. Exit the host software by pressing CTL+ALT+Q to get to the file manager.
    2. Enter the configurations page by clicking the gear icon in the top left corner.
    3. Click the Devices Icon (3rd button from the left).
    4. Enable Digital I/O options for the parallel port device:
      • For built in parallel ports on Desktop Host PCs: make sure that the PARALLEL_PORT device has DIGITIAL_IN and DIGITAL_OUT are enabled
      • For Digital I/O ports on the EyeLink Analog Card: make sure the DIGITIAL_IN and DIGITAL_OUT are enabled for the make/model of Analog device (e.g PCI_ANALOG_CARD or AO_1608L_LPE).
      • For LabHackers USB2TTL8: enable DIGITIAL_IN or DIGITAL_OUT (you can only have one mode enabled at a time).
    5. Note the base address (e.g 0x8) for your input device.
    6. Click Save.
    7. Restart the computer for these changes to take effect.
  • EyeLink 1000 and EyeLink II:
    The input and output channels for these devices will be automatically enabled with the base address of the parallel port starting at 0x378.
    • Note: USB input devices are not supported for these models
Input Port Configuration:
Once the hardware is properly configured to register input, you need to add specific commands to the FINAL.INI file on the Host PC to define which register the incoming data will be arriving at (see this post on How parallel port signaling works for more information about how parallel port communication works).

The commands below are an example of the commonly used commands to define the input registers. You will need to modify the base address of for each command based on your target input device.
  • DATA Register
    • EyeLink 1000 Plus & EyeLink Portable Duo Desktop Host PCs:
      Code:
      write_ioport 0xA 0x20
      input_data_ports  = 8
      input_data_masks = 0xFF
      create_button 1 8 0x01 0 
      create_button 2 8 0x02 0
      create_button 3 8 0x04 0 
      create_button 4 8 0x08 0
      create_button 5 8 0x10 0
      create_button 6 8 0x20 0
      create_button 7 8 0x40 0
      create_button 8 8 0x80 0


    • EyeLink II and EyeLink 1000 Host PCs:
      Code:
      write_ioport 0x37A 0x20
      input_data_ports  = 0x378
      input_data_masks = 0xFF
      create_button 1 0x378 0x01 0 
      create_button 2 0x378 0x02 0
      create_button 3 0x378 0x04 0 
      create_button 4 0x378 0x08 0
      create_button 5 0x378 0x10 0
      create_button 6 0x378 0x20 0
      create_button 7 0x378 0x40 0
      create_button 8 0x378 0x80 0

  • STATUS Register
    • EyeLink 1000 Plus & EyeLink Portable Duo Desktop Host PCs:
      Code:
      write_ioport 0xA 0x0
      input_data_ports  = 9
      input_data_masks = 0xFF
      create_button 1 9 0x20 1 
      create_button 2 9 0x40 1
      create_button 3 9 0x08 1 
      create_button 4 9 0x10 1
      create_button 5 9 0x80 0

    • EyeLink II and EyeLink 1000 Host PCs:
      Code:
      write_ioport 0x37A 0x0
      input_data_ports  = 0x379
      input_data_masks = 0xFF
      create_button 1 0x379 0x20 1 
      create_button 2 0x379 0x40 1
      create_button 3 0x379 0x08 1 
      create_button 4 0x379 0x10 1
      create_button 5 0x379 0x80 0
Make sure there is at least one extra blank line at the end of the file, save the file, and restart the Host PC.

To test that the pulses are being received start the EyeLink application and go to the Offline screen (click on the Offline button from the Camera Setup screen). When the pulses are received, the corresponding button numbers will appear at the bottom-right corner of the Host PC monitor.

Note, if the pulses does not need to be associated with button events, then omit the lines that begin with "create_button" in the FINAL.INI file.



*The FINAL.INI file is in the /ELCL/EXE/ folder in the EyeLink partition on the Host PC. The FINAL.INI file can be edited via the file manager software (EyeLink 1000 Plus and EyeLink Portable Duo) or boot the Host PC to Windows (EyeLink II and EyeLink 1000) and edit the file there (the EyeLink partition shows up as another drive when booted to Windows).