This page describes the status of the DDPI-MK2 system and its integration with Eyeris.

Resources

Ongoing and Future Tasks

This list was updated on July 29, 2021 by Janis.

Instructions for Controlling EyeRIS Machine from Insight Computer

As of March 2022

1. SSH Connection to EyeRIS Machine

Open SSH via MobaXterm. Connect to MK2-X11 via Putty in left Quick access menu. Now you are in the terminal on the EyeRIS Machine. From here, you can activate and deactivate Bitflow, activate the IO driver (aa_start), open NVIDIA settings, etc.

2. Insight

Launch with Eye Icon in task bar or on the desktop. Power on EyeRIS, setup protocols, etc.

3. Stream Camera Eye Video

Run batch script on desktop.

Instructions for remotely building task code

JI: [added Jul 22, 2022] Sometimes remote build doesn't upload the latest files. To guarantee a build of the latest files, delete the experiment from the eyeris plugins folder on the eyeris PC. This can be done through the file explorer in MobaXTerm.

See https://wiki.bcs.rochester.edu/ApLab/Eyeris-New?action=AttachFile&do=view&target=Remote+Buiding+Instructions.pdf

Useful commands for remotely editting files

Eye Tracking Instructions

Turn on Function Generator

(Note that this feature was temporarily disabled in March/April 2022 to improve the physical connections. Updated JI Jun 2022)

FunctionGeneratorMk2.png

This procedure will force the camera to capture images at 1kHz (instead of the usual 1016Hz).

Camera Usage

Adjusting Eye Tracking Parameters

As of March 4, 2021, eye tracking parameters (P4 intensity and radius) can be adjusted through Insight (Experiment->Console menu). Note that this communication is one-way: you can send parameters to eyeris but insight does not necessarily show you the current parameters. Do not update the tracking parameters in the bitflow configuration.

The default normalized tracking parameters for each eye are:

In Insight, these parameters are normalized to their respective ranges. The intensity value ranges from 0-255 and the radius from 0-[half the diameter of the downsampled P4 ROI size, or 4]. By default, Insight shows 0.5 for the parameters. The normalization factor for intensity and radius was chosen so that on-average these defaults should provide good tracking.

There is a lock button next to the "Console" title - press this button to lock the UI in place. Do NOT use the other button which reads "Always send all values."

Monocular and Binocular Modes

Updated on April 26, 2021:

I/O and Photodiode Use to Detect Skipped Frames

IOBox.jpg

Monitor settings

Common setups and differences from default

Default

OLED monitor

EEG

Stereo

Troubleshooting

Troubleshooting: Cameras (Bitflow)

Troubleshooting: Insight and Eyeris

Troubleshooting: Joypads

DDPI-MK2 Instructions for Installing/Re-installing Eyeris

Current repository branches

Updated April 25, 2022 by Janis:

DDPI, BitFlow, and System Change Log

June 29, 2022: updated autocalibration (H2) to change background color from configuration (see system_tasks on bitbucket)

May 30, 2022: Changes to analysis of eyeris data by Soma - were there any changes to eyeris code, branches?

April 25, 2022: Reverted change to sources_ru on Apr 21 because smart-search branch did not have optimization for frame-skipping and bitflow timing were not integrated.

April 21, 2022: sources_ru code was switched from branch bitflow-test to branch smart-search

April 18, 2022: Up-down on the left stage was not working. Several components along this path were replaced. We think the black cable was the problem.

week of April 11, 2022: Soma: updated software. ???

April 6, 2022: MAC: Added I/O hardware for a 2nd photodiode and the breakout box on the EEG. A0 is now the top photodiode, used for EyeRIS frame skip detection. A1 is the 2nd photodiode, positioned in the bottom right. A2 is for the EEG. Please don't unplug or rearrange any of these connections without talking to other users.

March 31, 2022: Soma: run without function generator for now until better connections can be established. Soma set the thread priorities of eyeris's main stream and the bitflow stream to "real-time priority" to prevent delays in the eye stream. To prevent freezing: grub parameter, isolate CPUs tells OS scheduler to isolate cores so that nothing (except eyeris) will be scheduled on those cores. Workspace and Bitflow have assigned cores through affinity, grub parameter prevents Mint from assigning other processes to these cores. Possible issues with frame-skipping are emerging

March 19, 2022: The cameras are forced to acquire data at 1kHz via an external trigger from the function generator. This required a change in software settings and additional setup instructions. (Ruei)

March 18, 2022 Soma separated Insight and EyeRIS. Now, there is a stand-alone computer, i.e. Insight Machine, where the experimenter launches Insight and communicates with the EyeRIS Machine in the DDPI MK2 room.

March 9, 2022: RW applied a patch to prevent "freezes"/"spikes" in the eye sample timestamps. sources_ru now on bitflow-test branch

Feb 25, 2022: Monitors switched to 360Hz monitors (SM has shown that 360hz monitor response is about 8ms). Eyeris and nvidia defaults have been changed to 360Hz. 240Hz monitor is still an option for ongoing experiments. (Where is the luminance linearization information for the new monitor?)

Feb 24, 2022: SM fixed a bug in bitflow class that was incompatible with affinity changes. Changes on the sources_ru / left-eye branch? Affinity changes have been re-implemented

Feb 16, 2022: experimenters begin reporting problems with autocalibrations, tracking quality low (this was a problem with 0-insertions into the eye data when affinity was set in eyeris. temporarily reverted affinity changes)

Feb 11, 2022: (need to confirm with SM 2/18) changed affinity for timing reasons. Anything else?

Jan ~17, 2022: bitflow sources_ru switched to left_eye branch

early Jan 2022: (see paper log for exact date) SM applied patch to insight so that database page loads faster and downloads data faster

Jan 6, 2022: Changed eyeris_launch default to a refresh rate of 240Hz

Jan 4, 2022: Updated standard auto and manual calibrations to more stable branches, Eyeris running consistently on volatile_source branch

Nov 30, 2021: Updated system tasks so that autocalibration_h2 has default reaction_delay of 250 samples (see ddpi_mk2 branch of system_tasks). Note that this change has not yet been applied to binocular and stereo autocalibrations (_b2 or stereoscopic autocalibration)

Sept 22, 2021: Eyeris configuration now includes analog and digital stream source for I/O box (insight_configuration_mk2.png) - tests with csmap experiment and eye tracking began on Oct 13

July 28, 2021: Eyeris is now connected to long-term database (IP address ...179 instead of ...252). Instructions to access previous database to save data before it is taken down.

June 28 AM - June 30 3pm, 2021: Remote mongoDB server was temporarily down so eyeris had to run through CLion in dev mode (i.e. probably not real-time)

June 20/21, 2021: JI updated the default joypad axes threshold to 0.1 to minimize false alarms on button presses. Changes exist on the ddpi_mk2 branch of the sources project.

June 16, 2021: LCD is now mounted on sliding rail. Distance to display is about the same as before. RW updated the stage control joypad so that the left eye stage is now controlled by the left side and the right eye stage is controlled by the right side.

June 9, 2021: PJ linked mk2 insight to a temporary remote MongoDB server (and it seems to work!). Link to Janis's notes on how to switch between local and remote database server.

May 15/16, 2021: Back to 1kHz binocular tracking. When tested on May 18 tracking was fine, but the image from the left camera had a much lower gain.

May 11, 2021: Replacement framegrabber has arrived and the two cameras run on different boards - still at 550Hz.

Apri 27, 2021: Switched eyeris to branch ji/stereo_caibrations to include a change to calibration_parameters.hpp file. See changes on bitbucket.

mid-April, 2021: A patch was applied to fix the graphics offset error. Changes are on bitbucket.

April 9, 2021: A BitFlow board broke so both left and right eye trackers are running at 550Hz on a single board. Spectra of data collected April 4, 2021 look the same as before (2021-04-12_JI_PSD-550Hz.png)

February 17, 2021: Ruei has reversed the how tracking is defined by EyeRIS (1 = tracking, 0 = no tracking). Before, it was 0 = tracking, 1 = no tracking.

February 12, 2021: Virtual channel numbers changed for debug data. See history on bitbucket (https://bitbucket.santinidesigns.com/projects/EYER/repos/sources_ru/browse/frame_grabber/bitflow/src/bitflow.cpp).

Before December 2020 - Before EyeRIS Version 18.12 there was no time stamp in eye data.

Data Reading Code to Keep Track of The Changes Above

By MAC -- https://gitlab.com/aplabUR/ddpiJumpSpikes/-/blob/standard_report/Standard_Report/eis_read_ddpi_data.m -- very much so in development

NVIDIA driver information

video database and early testing

Ruei collected 10s ddpi videos of Janis's eyes during these tasks on Sept 23-24, 2020:

As of September 28, 2020, Bin is analyzing the Smooth Pursuit videos.

Resources

Raw ddpi video files are available on the ddpi-mk2 machine. Lossless-compression versions are stored on opus: \dDPI\ddpiVideos\1k\

Processed eye traces and scripts: https://rochester.box.com/s/e9pwy7sd9luug1ri7ui9d8zncoq4v7yr

smooth pursuit

pursuit5_deg.png pursuit5_deg_residual.png

smooth pursuit: PSD analysis

Fixation

fixation_1-psd.png

Pursuit at 5 deg/s

pursuit5_1-psd_1.png

Pursuit at 10 deg/s

pursuit10_1-psd_1.png

Comparison between fixation and pursuit

VelStatics-fixVSpur5VSpur10-Janis-1000Hz.png

smooth pursuit: P4 video

https://youtu.be/pvL1-Mm9zNw

Ruei: "This is the ROI of p4 during tracking. The red dot is the estimated center by radial symmetry center. The ROI did jump because of low-resolution detection. But the center (red dot) follows the Purkinje image well. If the radial symmetry center algorithm fails, the center will remain at the center of ROI (If the background noise dominates, the symmetrical center is at the center of ROI) which will lead to jumping with the ROI. I believe the 1k camera solves this issue. "

DDPI+Eyeris integration: early testing

(September 18-21, 2020)

Ruei and Janis collected better eye tracking data through Eyeris on a Free View task designed by Janis.

Note that in this version of eyeris, the eye tags (blink and no-track) and eye information (P1, P4) are not saved. The only information available are the raw and calibrated eye traces.

Data and scripts: https://rochester.box.com/s/dhoyxjoyhsi1un51w5cpzzvdtgxvcvyp

Eye trace during Free Viewing

FreeView_Testing_2020-09-21-trial0.png

Spectrum of Drift

There is an 85Hz oscillation in the eye traces. Ruei says this is tremor.

power_spectrum_trial0_drifttraces.png power_spectrum_trial0.png

Ruei and Janis managed to record eye traces through Eyeris on a Free View task designed by Janis with Autocalibration only. Tracking quality was low but the full pipeline worked.

Data: https://rochester.box.com/s/g1u6g1au0sczkkbjaa0rf0if4gwjehui

Stabilization Error Distribution

Excerpt from contrast sensitivity mapping report on December 11, 2020:

stabilizationErrorHistogramsCompare.png

Hardware

Testing

Stereoscope

When setting up artificial eyes to match subject's IPD, you find the position of the outer edge of each carrier via (IPD + 25) / 2 +/- 150.

IPD (mm)

Right Carrier Outer Edge (mm)

Left Carrier Outer Edge (mm)

55.0

190.0

110.0

60.0

192.5

107.5

65.0

195.0

105.0

70.0

197.5

102.5

Instructions for setting up the stereoscope (reference the picture below):

StereoscopeSetup.jpg

1. Bring the stages as close together as possible.

2. Place the prism mirrors and outer mirrors at the locations shown in the image. The prisms mirrors are labeled "SR" and "SL" for your convenience, which refers to subject right and subject left, respectively. Note: for the outer mirrors, you want to arrange them such that the subject cannot see the black circular pieces of the holder.

3. The prism mirrors are the part of the stereoscope that is most susceptible to misalignment. Use a stool to get a birds-eye view of the prisms, and make sure that the inner edges of the prisms are parallel with the stages (the green lines in the photo above).

4. Place a septum in between the dichroic mirrors, as well as cardboard flankers behind the prism mirrors.

5. Display dichoptic stimuli to the subject. Allow them to align the stereoscope until they can fuse the stimuli into one image. The subjects can reach over and rotate the outer mirrors to do this. They may notice that there is a vertical offset to the image. To adjust this, instruct the subject to rotate the knobs located underneath either prism mirror.

6. To ensure that the subject can only see the correct stimulus, have them hold one eye open at a time and ask if they can see the entire corresponding half of the monitor. If any portion of the monitor is obstructed, ask the subject to rotate the outer mirror(s) until they can get the entire half of the monitor into view. Due to the current constraints of the stereoscope, it's possible that a portion of the monitor will be cut off. Determining whether or not this is problematic depends on your experimental design.

7. Then, with the subject holding one eye open at a time still, ask them to look to the opposite half of the monitor and ask them if they can see anything. They should respond no if the septum is correctly placed as it will obstruct the line of the sight between the two eyes.

Stereoscope Procedure Instructions

Detailed description of stereo procedure

Equipment-DDPI-MK2 (last edited 2022-07-22 16:26:28 by JaniceIntoy)

MoinMoin Appliance - Powered by TurnKey Linux