(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.
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).
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).
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:
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).
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:
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.
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.