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

Hi there,

Linking this relevant thread for people using GazePoint