Gazepoint Eyetracking Error During Device Creation

Hi everyone, I recently purchased a Gazepoint GP3 HD eye-tracker to monitor when participants are looking at or away from a region of interest.

I believe I set up the eye-tracker correctly since I can see what the eye-tracker sees using the Gazepoint Control app. However, when connecting the eye-tracker with PsychoPy, I encounter a persistent “Error During Device Creation.” I have also gone through some forums but have not been able to find a solution to this error.

I used a few PsychoPy links, such as the two below, to help me with the setup, but I failed to connect the eye-tracker and PsychoPy.

https://psychopy.org/hardware/eyeTracking.html#:~:text=PsychoPy%20supports%20many%20of%20the,plugins%20list%20and%20select%20install

https://psychopy.org/api/iohub/device/eyetracker_interface/GazePoint_Implementation_Notes.html

I have attempted a few things, such as reviewing the IP/port addresses and testing on different PsychoPy versions, but nothing has helped resolve the error. I also tried using the built-in eye-tracking components and writing the code myself, but both have resulted in the same main error regarding errors during device creation. Peculiarly, if I try to copy and use the sample code provided in the Gazepoint PsychoPy website, I get a syntax error with the line “io = launchHubServer(**iohub_config)” despite confirming the variable type to be “dict”.

I have pasted the error message below:

Error during device creation …
addDeviceView: Error adding class.
Traceback (most recent call last):
File “C:\Program Files\PsychoPy\lib\site-packages\psychopy\iohub\server.py”, line 723, in createNewMonitoredDevice
dev_data = self.addDeviceToMonitor(dev_cls_name, dev_conf)
File “C:\Program Files\PsychoPy\lib\site-packages\psychopy\iohub\server.py”, line 898, in addDeviceToMonitor
DeviceClass, dev_cls_name, evt_classes = import_device(dev_mod_pth,
File "C:\Program Files\PsychoPy\lib\site-packages\psychopy\iohub\devices_init
.py", line 944, in import_device
event_class = getattr(event_module, event_class_name)
AttributeError: module ‘psychopy.iohub.devices.eyetracker.hw.gazepoint.gp3’ has no attribute ‘GazepointSampleEvent’
Error during device creation …
Traceback (most recent call last):
File “C:\Program Files\PsychoPy\lib\site-packages\psychopy\iohub\server.py”, line 723, in createNewMonitoredDevice
dev_data = self.addDeviceToMonitor(dev_cls_name, dev_conf)
File “C:\Program Files\PsychoPy\lib\site-packages\psychopy\iohub\server.py”, line 898, in addDeviceToMonitor
DeviceClass, dev_cls_name, evt_classes = import_device(dev_mod_pth,
File “C:\Program Files\PsychoPy\lib\site-packages\psychopy\iohub\devices_init_.py”, line 944, in import_device
event_class = getattr(event_module, event_class_name)
AttributeError: module ‘psychopy.iohub.devices.eyetracker.hw.gazepoint.gp3’ has no attribute ‘GazepointSampleEvent’

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 657, in _addDevices
self.createNewMonitoredDevice(dev_cls_name, dev_conf)
File “C:\Program Files\PsychoPy\lib\site-packages\psychopy\iohub\server.py”, line 736, in createNewMonitoredDevice
raise ioHubError(‘Error during device creation …’)
psychopy.iohub.errors.ioHubError: ioHubError:
Args: (‘Error during device creation …’,)

13.6183 WARNING User requested fullscreen with size [1280 720], but screen is actually [1920, 1080]. Using actual size
14.0077 EXP Created window1 = Window(allowGUI=True, allowStencil=False, autoLog=True, backendConf=UNKNOWN, backgroundFit=<method-wrapper ‘getattribute’ of attributeSetter object at 0x000001E9857E1370>, backgroundImage=<method-wrapper ‘getattribute’ of attributeSetter object at 0x000001E9857E1310>, bitsMode=UNKNOWN, blendMode=‘avg’, bpc=(8, 8, 8), color=array([0, 0, 0]), colorSpace=‘rgb’, depthBits=8, fullscr=<method-wrapper ‘getattribute’ of attributeSetter object at 0x000001E9857E1130>, gamma=None, gammaErrorPolicy=‘raise’, infoMsg=UNKNOWN, lms=UNKNOWN, monitor=<psychopy.monitors.calibTools.Monitor object at 0x000001E985BF5250>, multiSample=False, name=‘window1’, numSamples=2, pos=[0.0, 0.0], screen=0, size=array([1920, 1080]), stencilBits=0, stereo=False, title=‘PsychoPy’, units=‘height’, useFBO=True, useRetina=False, viewOri=0.0, viewPos=None, viewScale=None, waitBlanking=True, winType=‘pyglet’)
14.0078 EXP window1: backgroundImage = ‘’
14.0078 EXP window1: backgroundFit = ‘none’
14.0082 EXP window1: mouseVisible = <method-wrapper ‘getattribute’ of attributeSetter object at 0x000001E9857E1490>
14.0085 EXP window1: mouseVisible = <method-wrapper ‘getattribute’ of attributeSetter object at 0x000001E9857E1490>
14.0126 EXP window1: mouseVisible = <method-wrapper ‘getattribute’ of attributeSetter object at 0x000001E9857E1490>
14.0143 EXP window1: mouseVisible = <method-wrapper ‘getattribute’ of attributeSetter object at 0x000001E9857E1490>
14.0973 EXP window1: mouseVisible = <method-wrapper ‘getattribute’ of attributeSetter object at 0x000001E9857E1490>
14.0977 EXP window1: mouseVisible = <method-wrapper ‘getattribute’ of attributeSetter object at 0x000001E9857E1490>
14.0995 EXP window1: mouseVisible = <method-wrapper ‘getattribute’ of attributeSetter object at 0x000001E9857E1490>
14.1010 EXP window1: mouseVisible = <method-wrapper ‘getattribute’ of attributeSetter object at 0x000001E9857E1490>
14.1243 EXP window1: Attempting to measure frame rate of screen (0) …
14.1244 EXP window1: recordFrameIntervals = False
14.4391 EXP window1: recordFrameIntervals = True
14.6226 EXP Screen (0) actual frame rate measured at 60.04Hz
14.6227 EXP window1: recordFrameIntervals = False
14.6230 EXP window1: mouseVisible = False
20.3818 EXP eyeTrackerTrial: status = STARTED
20.5050 EXP window1: mouseVisible = True
3.7811 WARNING Monitor specification not found. Creating a temporary one…

ioHub Server Process Completed With Code: 0

Traceback (most recent call last):
File “C:\Program Files\PsychoPy\lib\site-packages\psychopy\iohub\client_init_.py”, line 1089, in addDeviceView
dev_import_result = import_device(dev_mod_pth, dev_cls_name)
File "C:\Program Files\PsychoPy\lib\site-packages\psychopy\iohub\devices_init
.py", line 944, in import_device
event_class = getattr(event_module, event_class_name)
AttributeError: module ‘psychopy.iohub.devices.eyetracker.hw.gazepoint.gp3’ has no attribute ‘GazepointSampleEvent’
Traceback (most recent call last):
File “”, line 795, in
run(
File “”, line 368, in run
etRecord = hardware.eyetracker.EyetrackerControl(
File “C:\Program Files\PsychoPy\lib\site-packages\psychopy\hardware\eyetracker.py”, line 18, in init
self._status = tracker.isRecordingEnabled()
AttributeError: ‘NoneType’ object has no attribute ‘isRecordingEnabled’
################ Experiment ended with exit code 1 [pid:13272] #################

I omitted some file names above for anonymity purposes, but they just list where the file is located. I am still relatively new to PsychoPy so I am unsure if there is something basic I am missing. Please let me know anything else I may try to debug this error. Any help would be greatly appreciated! Thank you!

Dear Sai,

I think we have the same problem. Check here: https://discourse.psychopy.org/t/gazepoint-and-psychopy-2024-1-5/40495.

Crucially, the core of our problems, of the error message at least, is the nonexisting ‘GazepointSampleEvent’ attribute.

I think that, possibly, this might be a problem with one of the accessory files (the yaml files) but I’m also not sure. I wrote the developer of the psychopy-gazepoint interface directly but did not get a reply.

What I did just now (and tested, at least the calibration procedure for starters) is to roll back PsychoPy to a version that apparently works. I do not know if it’s the most recent version that would be compatible with gazepoint, but for me that was 2022.2.5 - available on github: https://github.com/psychopy/psychopy/releases/tag/2022.2.5 . I made sure to release the more recent versions of PsychoPy before installing this one, to avoid conflicts. I do not know how much I’m missing of newer features or bug fixes, but maybe this also works for you. I tested the calibration in both builder and coder, and the same source code as you mention in coder. tracker.getEvents() seems to work, just not sure about tracker.getPosition().

I think this requires further testing, but I hope it helps to get started.

Hello

We’re making fixes to the plugin system and eyetracker libraries. They should be available in the next release

1 Like