psychopy.org | Reference | Downloads | Github

New eyetracking demo not working with tobii

If this template helps then use it. If not then just delete and start from scratch.

OS (e.g. Win10): Win10
PsychoPy version (e.g. 1.84.x): v2021.2.2
Standard Standalone? (y/n) If not then what?: y
What are you trying to achieve?:
I’m trying out the new eyetracking features and started with the builder eyetracking demo. I set up the eyetracking properties with a Tobii Fusion Pro 120 Hz leaving the license file and serial number blank. But when I run it I get the below error. I do not have trouble running the calibration through Tobii Eye Manager.

## Running: C:\Experiments\PsychoPy3 Demos\Feature Demos\eyetracking\eyetracking_lastrun.py ##
876.7344     INFO     Loaded monitor calibration from ['2021_05_26 11:49']
pygame 1.9.6
Hello from the pygame community. https://www.pygame.org/contribute.html
Error creating Tobii Device class
Traceback (most recent call last):
  File "C:\Program Files\PsychoPy\lib\site-packages\psychopy\iohub\devices\eyetracker\hw\tobii\eyetracker.py", line 94, in __init__
    EyeTracker._tobii = TobiiTracker(serial_num, model_name)
  File "C:\Program Files\PsychoPy\lib\site-packages\psychopy\iohub\devices\eyetracker\hw\tobii\tobiiwrapper.py", line 55, in __init__
    raise RuntimeError('Could not connect to Tobii.')
RuntimeError: Could not connect to Tobii.
No Tobii license_file in config. Skipping.
Error during device creation ....
Traceback (most recent call last):
  File "C:\Program Files\PsychoPy\lib\site-packages\psychopy\iohub\server.py", line 667, in createNewMonitoredDevice
    dev_data = self.addDeviceToMonitor(dev_cls_name, dev_conf)
  File "C:\Program Files\PsychoPy\lib\site-packages\psychopy\iohub\server.py", line 833, in addDeviceToMonitor
    dev_instance = DeviceClass(dconfig=dev_conf)
  File "C:\Program Files\PsychoPy\lib\site-packages\psychopy\iohub\devices\eyetracker\hw\tobii\eyetracker.py", line 118, in __init__
    if srate and srate in self._tobii.getAvailableSamplingRates():
AttributeError: 'NoneType' object has no attribute 'getAvailableSamplingRates'
Error during device creation ....
Traceback (most recent call last):
  File "C:\Program Files\PsychoPy\lib\site-packages\psychopy\iohub\server.py", line 667, in createNewMonitoredDevice
    dev_data = self.addDeviceToMonitor(dev_cls_name, dev_conf)
  File "C:\Program Files\PsychoPy\lib\site-packages\psychopy\iohub\server.py", line 833, in addDeviceToMonitor
    dev_instance = DeviceClass(dconfig=dev_conf)
  File "C:\Program Files\PsychoPy\lib\site-packages\psychopy\iohub\devices\eyetracker\hw\tobii\eyetracker.py", line 118, in __init__
    if srate and srate in self._tobii.getAvailableSamplingRates():
AttributeError: 'NoneType' object has no attribute 'getAvailableSamplingRates'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files\PsychoPy\lib\site-packages\psychopy\iohub\server.py", line 601, in _addDevices
    self.createNewMonitoredDevice(dev_cls_name, dev_conf)
  File "C:\Program Files\PsychoPy\lib\site-packages\psychopy\iohub\server.py", line 680, in createNewMonitoredDevice
    raise ioHubError('Error during device creation ....')
psychopy.iohub.errors.ioHubError: ioHubError:
Args: ('Error during device creation ....',)

GET_DEV_INTERFACE_ERROR: _getRPCInterface returned: None
pygame 1.9.6
Hello from the pygame community. https://www.pygame.org/contribute.html
ioHub Server Process Completed With Code:  0
Traceback (most recent call last):
  File "C:\Experiments\PsychoPy3 Demos\Feature Demos\eyetracking\eyetracking_lastrun.py", line 174, in <module>
    calibration.run()
  File "C:\Program Files\PsychoPy\lib\site-packages\psychopy\hardware\eyetracker.py", line 207, in run
    self.last = self.eyetracker.runSetupProcedure(dict(self))
  File "C:\Program Files\PsychoPy\lib\site-packages\psychopy\iohub\client\__init__.py", line 146, in __getattr__
    raise AttributeError(self, name)
AttributeError: (<psychopy.iohub.client.ioHubDeviceView object at 0x000001FC51762B70>, 'runSetupProcedure')
##### Experiment ended. #####

What did you try to make it work?:

What specifically went wrong when you tried that?:
Include pasted full error message if possible. “That didn’t work” is not enough information.

It seems like psychopy (which uses the tobii-research Python package) is not able to connect to your eye tracker. Does this happen when Tobii Eye Manager is running at the same time, or even when the Tobii Eye Manager is not running when you start the experiment?

If neither works, are you able to connect to the tracker directly using one of the Tobii Python examples directly? This would help determine if the issue is specific to the iohub use of tobii_research and your tracker, or a more general issue.

Thank you

Turns out I was putting the name in incorrectly (Tobii Pro Fusion vs Fusion Pro), so the python examples helped me to set it up.

Thanks!