Connection issue with Riponda Model C in PsychoPy - 'NoneType' object has no attribute 'set_signal_filter'

I am writing to request assistance with a connection issue I’m experiencing with my Riponda Model C response box when trying to use it with PsychoPy.

Device Information:

  • Device Model: Riponda Model C
  • PsychoPy Version: 2024.2.4
  • Operating System: Windows
  • Device appears as: “USB Serial Port (COM4)” in Device Manager

Error Message: When attempting to initialize the device in my experiment, I consistently receive the following error:

TypeError: init() got an unexpected keyword argument ‘portName’
AttributeError: ‘NoneType’ object has no attribute ‘set_signal_filter’
psychopy.hardware.manager.ManagedDeviceError: ‘NoneType’ object has no attribute ‘set_signal_filter’

Steps I’ve taken:

  1. I’ve installed the drivers for the device as per your instructions
  2. The device is recognized by Windows (showing as COM4 in Device Manager)

My experiment script was originally designed for Riponda Model E, but I’m using Model C. I suspect this may be causing compatibility issues with the initialization parameters.

Can you please advise on the correct way to initialize a Riponda Model C device in PsychoPy? Is there anything specific I need to do differently compared to Model E?

I would greatly appreciate your assistance in resolving this issue.

Thank you,
-Elisa-

Hello Elisa, the first troubleshooting step is to download and run our Xidon software. When you run it, can Xidon detect Riponda? do you see keypress information in Xidon when you press a key?

If Xidon “sees” Riponda, this will at least confirm that the USB driver is installed and that Riponda is working correctly.

The next step is to make sure that Xidon is not running and then try PsychoPy with our pyxid2 library. Does it work?

Hello Hisham,

Thank you for your troubleshooting suggestions.

When I run Xidon, it does detect my Riponda device, but with a warning message that says: “A Riponda Model C was detected but was not using the XID protocol. It has been made to comply.” After this message, the application opens successfully.

When I press each key on the response box, I can confirm that:

  • The corresponding button illuminates in the Xidon app
  • Both the input and timestamp are properly recorded

So it seems the USB driver is installed and Riponda is working correctly with Xidon after that initial protocol compliance message.

Regarding your next suggestion about testing with PsychoPy and the pyxid2 library - I’ve tried running the PsychoPy sample code available online here: https://cedrus.com/support/c-pod/psychopy_pyxid_test.py
and everything works well when running this code! The device is properly detected, and I’m able to successfully interact with the Riponda through PsychoPy using the pyxid2 library.

Is there anything else I should test or any other information you need?
Is that warning message about the XID protocol something I should be concerned about?

Thank you for your help, -Elisa-

The warning message is helpful. It looks like some of the switches on the bottom of the response pad are not in their default position. Set them all to the ON position and then unplug/re-plug the USB cable to restart Riponda.

Hi Hisham, with all the switches on the bottom set to the ON position, the warning message in Xidon is no longer there, but when launching the PsychoPy code the error message is the following:

Running: C:\Users\elisa.scerrati\Documents\PsychoPy_projects.moteff_dir\moteff_dir_lastrun_WITH_ADDITION_Cedrus_Italian_EXCEPTION.py

Errore inizializzazione buttonBox_1: ‘NoneType’ object has no attribute ‘open’
pygame 2.1.0 (SDL 2.0.16, Python 3.8.10)
Hello from the pygame community. https://www.pygame.org/contribute.html
41.3364 WARNING Component LuminaButtonBoxBackend does not appear to be a subclass of psychopy.experiment.components._base.BaseComponent. This will be skipped.
Traceback (most recent call last):
41.3364 WARNING Component RBButtonBoxBackend does not appear to be a subclass of psychopy.experiment.components._base.BaseComponent. This will be skipped.
41.3365 WARNING Component RBPhotodiodeValidatorBackend does not appear to be a subclass of psychopy.experiment.components._base.BaseComponent. This will be skipped.
41.3365 WARNING Component RipondaButtonBoxBackend does not appear to be a subclass of psychopy.experiment.components._base.BaseComponent. This will be skipped.
41.3365 WARNING Component RipondaPhotodiodeValidatorBackend does not appear to be a subclass of psychopy.experiment.components._base.BaseComponent. This will be skipped.
41.3366 WARNING Component StimTrackerButtonBoxBackend does not appear to be a subclass of psychopy.experiment.components._base.BaseComponent. This will be skipped.
41.3366 WARNING Component StimTrackerPhotodiodeValidatorBackend does not appear to be a subclass of psychopy.experiment.components._base.BaseComponent. This will be skipped.
File “C:\Program Files\PsychoPy\lib\site-packages\psychopy\hardware\manager.py”, line 250, in addDevice
device = cls(*args, **kwargs)
File “C:\Users\elisa.scerrati\AppData\Roaming\Python\Python38\site-packages\psychopy_cedrus\base.py”, line 59, in init
raise ConnectionError(“No Cedrus device is connected.”)
ConnectionError: No Cedrus device is connected.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “C:\Users\elisa.scerrati\Documents\PsychoPy_projects.moteff_dir\moteff_dir_lastrun_WITH_ADDITION_Cedrus_Italian_EXCEPTION.py”, line 434, in
buttonBox_1 = riponda.RipondaButtonGroup(
File “C:\Users\elisa.scerrati\AppData\Roaming\Python\Python38\site-packages\psychopy_cedrus\base.py”, line 365, in init
self.parent = self.parentCls.resolve(pad)
File “C:\Users\elisa.scerrati\AppData\Roaming\Python\Python38\site-packages\psychopy_cedrus\base.py”, line 103, in resolve
return DeviceManager.addDevice(
File “C:\Program Files\PsychoPy\lib\site-packages\psychopy\hardware\manager.py”, line 253, in addDevice
raise ManagedDeviceError(
psychopy.hardware.manager.ManagedDeviceError: No Cedrus device is connected.
################ Experiment ended with exit code 1 [pid:310532] ################

It seems there’s still an issue with the physical connection or detection of the Riponda device. Any suggestion is more than welcome, thank you!

I see that there are no detection issues with Xidon or one of the pyxid samples, which is good. The errors seem to be coming from PsychoPy classes, which I don’t really know anything about.

The best guess I can make with the information we have would be that the device detection is being run multiple times and the subsequent runs fail to pick them up.