Can't find Cedrus Button Box component on macOS 14.0 with Standalone v2024.1.3

(macOS 14.0)
(PsychoPy Standalone v2024.1.3)
(Cedrus Button Box: Riponda Model C, Firmware version 2.2.8)

Hello, thanks for the great software and for all the support!

I want to use a Cedrus Button Box (Riponda Model C) to record reaction time in a self-paced reading task.

I see that there is a Cedrus Button Box component listed in the PsychoPy manual, but I can’t find it in my Builder view under Components → Responses. There is a generic ‘Button Box’ component (circled in image below), but it uses my Mac keyboard as the input instead of the Cedrus box. If I navigate to buttonBox Properties → Device → Device backend, the only option is ‘Keyboard’.

Does anyone know how to find the specific Cedrus button box component? With my version of macOS and the Standalone version of PsychoPy, I don’t believe I need to install any drivers / download packages for it, so I’m not sure what I’m missing.

I believe the button box is working properly, because I ran the Cedrus Xidon software which detected the response pad with no issues, and I also followed the instructions from Cedrus on Troubleshooting MacOS PsychoPy Installation with no issues.

1 Like

Partial solution: This update to psychopy_cedrus 0.0.4 allows me to select the Cedrus box from the ‘device backend’ in buttonBox properties. However, I run into the following errors:

AttributeError: 'NoneType' object has no attribute 'reset_timer'
psychopy.hardware.manager.ManagedDeviceError: 'NoneType' object has no attribute 'reset_timer'

I tried updating the pyxid2 package to v1.0.6. This caused a Cedrus Button Box component to appear under ‘Responses’ in Builder view. When I tried this component, I received this error:

AttributeError: 'NoneType' object has no attribute 'duration'

Current workaround is to use an older version of Standalone PsychoPy (v2023.1.2) and install the D2xx ARM driver for macOS Tiger 10.4 or later. With this version I can use the Cedrus Button Box component well enough, although some features are limited (e.g. can’t specify ‘allowed keys’ because this causes none of the buttons to work).

2 Likes

Having the same issue here. Can you provide a little more detail as far as what you did to fix or do you have any update? Thanks!

Hello :slight_smile:

Here are the troubleshooting steps I’ve followed (with lots of help from @djmannion!). Step 3 fixes the duration error issue. Note that it’s currently not possible to specify allowed keys in buttonBox properties; if you try to specify keys the button box won’t work (there might be a solution but I haven’t found one yet).

  1. Are your pyxid2 and psychopy-cedrus packages updated?

You should have pyxid2 1.0.6 and psychopy-cedrus 0.0.5.
To check/update, navigate to Tools → Plugin/packages manager → packages → open PIP terminal and run:

pip install --upgrade pyxid2
pip install --upgrade psychopy-cedrus
  1. Have you installed the D2XX Cedrus USB driver?

(More info on the Installing USB Driver for Mac OS X page from Cedrus)
I installed the macOS ARM driver by scrolling down to “Mac OS X
10.4 Tiger or later” on this D2XX page.

Once downloaded, you will need to follow the instructions in the readme.rtf. Make sure you allow Apple security for libftd2xx.1.4.30.dylib (this simply involves opening the .dylib file by right clicking and pressing “open” instead of double clicking).

  1. Have you added a custom code component to resolve the ‘NoneType’ duration error?

In every routine that involves the button box, add a custom code component. Set the code type to Py, the timing to Begin experiment and add this code:

buttonBox.duration=1

See screenshot:

From what I understand, PsychoPy wants to assign the button box component a duration value, in the same way that an image might have a duration of time it appears on screen. The button box doesn’t really have a duration in that sense, so you end up with an error. This custom code sets the duration to the arbitrary value of 1. I’ve checked (because I’m measuring reaction time) and this doesn’t seem to affect the RT data.

  1. Fixing “can’t find Cedrus device” error

Finally, if you get an error along the lines of “can’t find Cedrus device”, just unplug and replug the button box.

Hope that helps!

4 Likes

Hi,

I just want to say that it helped my duration error. So thank you so much for that!

1 Like

Thanks for this detail!!!