# EyeLink Commands Reference ## About This Document This reference document is a comprehensive compilation of all EyeLink commands and configuration settings extracted from the INI files found on the EyeLink Host PC. These INI files contain the low-level commands used to configure and control EyeLink eye tracking hardware. ### Source The commands documented here are sourced from configuration files located in the executable directory of the EyeLink Host PC (`exe\` dir). These INI files define the many of command set available for EyeLink tracker configuration and control. ### Implementation Status PyeLink implements a subset of these commands through its Python API, with gradual expansion of coverage over time. Some commands are exposed directly through the [Settings](../src/pyelink/core.py) class, while others can be accessed via the underlying `pylink` library interface. ### Statistics - **Configuration Files**: 21 INI files - **Total Commands**: 390+ commands and settings - **Categories**: Calibration, display configuration, data recording, analog output, parser settings, physical setup, and more ### How to Use This Reference Each command entry includes: - **Syntax**: The command format with parameter placeholders - **Description**: What the command does and parameter meanings - **Example**: Sample usage with typical values For commands not yet wrapped in PyeLink's high-level API, you can use the tracker's underlying `pylink.EyeLink` connection directly via `tracker.tracker` to send raw commands. --- ## Commands and Settings ### `remote_camera_position` **Syntax**: `remote_camera_position = ` **Description**: Sets the position and angles for remote camera mounting (Desktop Remote Recording configuration). : rotation of camera from screen (clockwise from top), i.e. how much the right edge of the camera is closer than left edge of camera. : tilt of camera from screen (top toward screen). : bottom-center of display in cam coords. : bottom-center of display in cam coords. : bottom-center of display in cam coords. **Example**: `remote_camera_position = -10 17 80 60 -90` ### `remote_distance_warn_range` **Syntax**: `remote_distance_warn_range = , ` **Description**: Sets the acceptable distance range for remote tracking. When the participant's distance falls outside this range, a warning is displayed on the Host PC. **Example**: `remote_distance_warn_range = 500, 700` ### `remote_distance_coeffs` **Syntax**: `remote_distance_coeffs ` **Description**: Coefficients for computing eye-to-camera distance from the target sticker marker separation in remote mode. Derived from the camera focal length and known target sticker geometry. **Example**: `remote_distance_coeffs 11.70 0` ### `remote_distance_scaling` **Syntax**: `remote_distance_scaling ` **Description**: Scaling factor and reference distance for remote distance computation. Used to fine-tune the distance estimation algorithm. **Example**: `remote_distance_scaling 1.0 600` ### `remote_edge_warn_pixels` **Syntax**: `remote_edge_warn_pixels = ` **Description**: Number of pixels from the camera image edge at which to warn that the participant is moving out of the trackable area in remote mode. **Example**: `remote_edge_warn_pixels = 100` ### `remote_eye_magnified` **Syntax**: `remote_eye_magnified ` **Description**: Controls whether the eye image is magnified in the zoomed view during remote tracking. Saved in lastrun.ini. **Example**: `remote_eye_magnified ON` ### `remote_target_eye_distance_warn` **Syntax**: `remote_target_eye_distance_warn ` **Description**: Maximum allowed distance in camera pixels between the target sticker and the eye before a warning is issued during remote tracking. **Example**: `remote_target_eye_distance_warn 160` ### `remote_target_search_thresholds` **Syntax**: `remote_target_search_thresholds ` **Description**: Threshold parameters for detecting the target sticker markers in remote mode. Multiple thresholds are provided for different search stages and lighting conditions. **Example**: `remote_target_search_thresholds 155 190 130 210 100 80 60` ### `remote_limit_by_target` **Syntax**: `remote_limit_by_target ` **Description**: Controls whether the eye search region is limited based on the detected target sticker position in remote mode. Separate flags for left and right eyes. **Example**: `remote_limit_by_target 1 1` ### `remote_cr_offset` **Syntax**: `remote_cr_offset ` **Description**: Corneal reflection offset parameters for remote mode. Compensates for the geometric offset between the CR and the illuminator position based on the camera-eye-illuminator geometry. **Example**: `remote_cr_offset 7.8 -130 0` ### `remote_pupil_size_adjust` **Syntax**: `remote_pupil_size_adjust ` **Description**: Enables distance-based pupil size adjustment in remote mode. When enabled, the reported pupil size is corrected for changes in eye-to-camera distance. **Example**: `remote_pupil_size_adjust 1` ### `remote_search_latency` **Syntax**: `remote_search_latency = ` **Description**: Controls the timing of the target sticker search in remote mode. First value is the search duration, second is the settle time after detection, both in milliseconds. **Example**: `remote_search_latency = 1000 500` ### `remote_href_align` **Syntax**: `remote_href_align ` **Description**: Controls whether HREF alignment is performed in remote mode. When enabled, the HREF coordinate system is aligned based on the target sticker markers. **Example**: `remote_href_align NO` ### `remote_target_zoom` **Syntax**: `remote_target_zoom ` **Description**: Zoom factor for the target sticker display in the Camera Setup screen during remote tracking. **Example**: `remote_target_zoom 0.25` ### `remote_binocular_split_offset` **Syntax**: `remote_binocular_split_offset ` **Description**: Offset for the split between left and right eye images in binocular remote mode. Saved in lastrun.ini. **Example**: `remote_binocular_split_offset 0` ### `remote_eye_limit_size` **Syntax**: `remote_eye_limit_size = , ,` **Description**: Size of the eye search region in camera pixels for remote tracking. Separate values for left and right eyes. Saved in lastrun.ini. **Example**: `remote_eye_limit_size = 426,498 498,498` ### `remote_eye_target_offset` **Syntax**: `remote_eye_target_offset = , , , , ` **Description**: Offset from the target sticker to each eye in camera coordinates for remote tracking. Determined during tracking and saved in lastrun.ini. **Example**: `remote_eye_target_offset = -262.7, 160.8, 82.0 220.1, 196.2, 86.2` ### `remote_target_limits_offset` **Syntax**: `remote_target_limits_offset ` **Description**: Offset of the target search limits from the current target position in camera pixels. Saved in lastrun.ini. **Example**: `remote_target_limits_offset -298 240 273 234` ### `remote_target_limits_ref` **Syntax**: `remote_target_limits_ref ` **Description**: Reference position and size for the target sticker search limits in remote mode. Saved in lastrun.ini. **Example**: `remote_target_limits_ref 1050 830 101 1051 830 101` ### `remote_target_limits_size` **Syntax**: `remote_target_limits_size ` **Description**: Size of the target sticker search region in camera pixels for remote tracking. Saved in lastrun.ini. **Example**: `remote_target_limits_size 426 498 498 498` ### `remote_autothreshold_enabled` **Syntax**: `remote_autothreshold_enabled ` **Description**: Enables automatic threshold adjustment during remote (head-free) tracking. When enabled, the tracker automatically adjusts pupil and CR thresholds to compensate for changes in eye-camera distance and illumination. **Example**: `remote_autothreshold_enabled YES` ### `remote_autothreshold_cr_settings` **Syntax**: `remote_autothreshold_cr_settings ` **Description**: Controls the automatic CR threshold adjustment parameters for remote tracking. ``: gain fraction for CR threshold adjustment. ``: weight fraction for CR threshold smoothing. **Example**: `remote_autothreshold_cr_settings 0.05 0.03` ### `remote_autothreshold_default_pupil_bias` **Syntax**: `remote_autothreshold_default_pupil_bias = ` **Description**: Sets the default pupil threshold bias for remote autothreshold. A value of 1.0 means no bias adjustment. **Example**: `remote_autothreshold_default_pupil_bias = 1.0` ### `remote_autothreshold_pupil_area` **Syntax**: `remote_autothreshold_pupil_area = , , ` **Description**: Sets the expected pupil area range and scaling for remote autothreshold adjustment. **Example**: `remote_autothreshold_pupil_area = 3, 50, 4.0` ### `remote_autothreshold_limits` **Syntax**: `remote_autothreshold_limits = , ` **Description**: Sets the minimum and maximum threshold values that the remote autothreshold system is allowed to use. **Example**: `remote_autothreshold_limits = 45, 140` ### `remote_autothreshold_window` **Syntax**: `remote_autothreshold_window = ` **Description**: Controls the temporal window parameters for the remote autothreshold system. Defines how quickly the threshold adapts to changes. **Example**: `remote_autothreshold_window = 10, 2, 7, 1.8` ### `remote_autothreshold_filter` **Syntax**: `remote_autothreshold_filter = ` **Description**: Controls the filtering applied to the remote autothreshold system. The ON/OFF flag enables or disables the filter. **Example**: `remote_autothreshold_filter = 50, 150, ON` ### `remote_autothreshold_pupil_bias` **Syntax**: `remote_autothreshold_pupil_bias ` **Description**: Per-eye pupil threshold bias values for remote autothreshold. Saved in lastrun.ini. These are adjusted automatically during tracking. **Example**: `remote_autothreshold_pupil_bias 0.941 0.887` ### `remote_autothreshold_cr_bias` **Syntax**: `remote_autothreshold_cr_bias ` **Description**: Per-eye CR threshold bias values for remote autothreshold. Saved in lastrun.ini. These are adjusted automatically during tracking. **Example**: `remote_autothreshold_cr_bias 1.200 1.240` ### `screen_phys_coords` **Syntax**: `screen_phys_coords = , , , ` **Description**: Measure the distance of the visible part of the display screen edge relative to the center of the screen (measured in millimetres). , , , : position of display area corners relative to display center. **Example**: `screen_phys_coords = -265, 150, 265, -150` ### `screen_pixel_coords` **Syntax**: `screen_pixel_coords = ` **Description**: Sets the gaze-position coordinate system, which is used for all calibration target locations and drawing commands. Usually set to correspond to the pixel mapping of the subject display. Issue the calibration_type command after changing this to recompute fixation target positions. You should also write a DISPLAY_COORDS message to the start of the EDF file to record the display resolution in EDF file. : X coordinate of left of display area, : Y coordinate of top of display area, : X coordinate of right of display area, : Y coordinate of bottom of display area. **Example**: `screen_pixel_coords = 0, 0, 1023, 767` ### `screen_distance` **Syntax**: `screen_distance = ` or `screen_distance = ` **Description**: Used for visual angle and velocity calculations. Providing parameters will give better estimates than . : distance from display center to subject in millimetres. : distance from display top to subject in millimetres. : distance from display bottom to subject in millimetres. **Example**: `screen_distance = 930 960` ### `analog_strobe_delay` **Syntax**: `analog_strobe_delay = ` **Description**: Sets delay after analog data change before strobe signal. Delay effectively rounds up to multiples of 500 μsec except for durations <50 μsec which are accurate. Suggested value is 400 μsec. **Example**: `analog_strobe_delay = 400` ### `analog_strobe_time` **Syntax**: `analog_strobe_time = ` **Description**: Duration of strobe pulse to indicate new sample data is valid. Set to 0 to toggle for each sample. Suggested <1000 μsec for interrupt driven or hardware acquisition. **Example**: `analog_strobe_time = 1000` ### `analog_strobe_polarity` **Syntax**: `analog_strobe_polarity = ` **Description**: Sets strobe signal polarity. 1 for active-high, 0 for active-low. **Example**: `analog_strobe_polarity = 1` ### `analog_strobe_line` **Syntax**: `analog_strobe_line = ` **Description**: Digital line for strobe signal. Default is D7 (0x80). **Example**: `analog_strobe_line = 0x80` ### `analog_out_data_type` **Syntax**: `analog_out_data_type = ` **Description**: Select type of data for analog output. OFF turns off analog output, PUPIL is raw pupil x,y, HREF is headref-calibrated x,y, GAZE is screen gaze x,y. Overridden by setup menu and lastrun.ini. **Example**: `analog_out_data_type = GAZE` ### `analog_dac_range` **Syntax**: `analog_dac_range = , ` **Description**: Total DAC voltage range (low, high) in volts. Range: -10V to +10V. **Example**: `analog_dac_range = -5, +5` ### `analog_no_pupil_value` **Syntax**: `analog_no_pupil_value = ` **Description**: X, Y output value when pupil is missing, as fraction of DAC range (0.0 = min voltage, 1.0 = max voltage). **Example**: `analog_no_pupil_value = 0.0` ### `analog_x_range` **Syntax**: `analog_x_range = , , , ` **Description**: Sets conversion of data to DAC voltage for X coordinate. Min and max are percentage of total data range that corresponds to DAC range. (0.0, 1.0) uses whole range, (0.1, 0.9) magnifies center 80%, (-0.2, 1.2) allows 20% over/under range. **Example**: ``` analog_x_range = PUPIL, 0.1, 0.9 analog_x_range = HREF, 0.0, 1.0 analog_x_range = GAZE, -0.2, 1.2 ``` ### `analog_y_range` **Syntax**: `analog_y_range = , , , ` **Description**: Sets conversion of data to DAC voltage for Y coordinate. Same range specifications as analog_x_range. **Example**: ``` analog_y_range = PUPIL, 0.1, 0.9 analog_y_range = HREF, 0.0, 1.0 analog_y_range = GAZE, -0.2, 1.2 ``` ### `analog_force_4channel` **Syntax**: `analog_force_4channel = ` **Description**: Forces use of only 3 or 4 outputs when few analog channels can be used or pupil size is not needed. **Example**: `analog_force_4channel = NO` ### `analog_binocular_mapping` **Syntax**: `analog_binocular_mapping = ` **Description**: TYPE: READABLE, WRITABLE, MENU, LASTRUN.INI. Sets whether monocular or binocular analog output configuration is used. **Example**: `analog_binocular_mapping = NO` ### `analog_p_maximum` **Syntax**: `analog_p_maximum = , ` **Description**: Sets range of data to be scaled to pupil size analog output (minimum is 0). Type can be: AREA (default 10000), DIAMETER (default 113), WIDTH (default 160), HEIGHT (default 80). **Example**: `analog_p_maximum = AREA, 10000` ### `button_debounce_time` **Syntax**: `button_debounce_time = ` **Description**: Sets button debounce time. Button responds immediately to first change so delay does not add delay to RT. Any change following this is ignored for number of milliseconds defined. **Example**: `button_debounce_time = 30` ### `create_button` **Syntax**: `create_button ` **Description**: Defines a button to a bit in a hardware port. Values 1-8 are for subject i/o (logged as events), value 0 deletes, 9-31 are available for remote control or functions. Up to 32 buttons may be created. Parameters: button number (1 to 8), address of hardware port, 8-bit mask ANDed with port to test button line, inverted (1 if active-low, 0 if active-high). **Example**: `create_button 1 9 0x20 1` ### `create_key_button` **Syntax**: `create_key_button