Hi,
I am using Psychopy3 3.1.5 on Win10. I’ve made a block design paradigm for fMRI in the builder form. There are different photo routines and a fixation task. I have placed a fixation cross on the screen in both routine (it is coming on photos and also on the blank screen). When fixation cross is red, participant must press the button (any button on the button box is okay). I will use this to understand whether the participant follows the screen or not. I use Current Designs button box in our lab. (https://www.psychopy.org/api/hardware/forp.html) It has a response device and also a fiber optic cable to reach the trigger box outside the mri. And there is a usb cable between trigger box and my laptop (i think its a serial port).
I am not a coder, so i added a keyboard component in the routines, and saved the settings as ‘store all keys’. When i run the experiment in my laptop, i can save the data when i press the buttons on my laptop. However, when i tried to have a signal from button box, experiment runs but there is no response in the data. Interestingly, when i discard the fiber optic cable and try the buttons directly, i can have responses. The fiber optic cable is working, i checked it from other experiments. And i have searched in the forums if there is a code for that, but there is no clear explanation to add those functions. (functions are here: https://www.psychopy.org/api/hardware/forp.html)
Thank you,
Yagmur
We really need to know which it is. i.e. is it acting as an emulated keyboard, or as an emulated serial port?
e.g.
- If your laptop has a text editor open and you push buttons on the device, do responses appear in the text document?
- Is there some sort of dongle attached, or is it just a standard USB cable at both ends? usb serial adapter - Google Search
I have a cable between trigger box and my laptop,the laptop side of this cable is a USB end, the other side is an another port i dont know what it is exactly but i took a picture of it:
Also, i have tried to add a keyboard component for devices with USB end as the documentation says but it is not working…When i use the button box without a fiber optic cable, i get responses on the text editor. But there is no response with fiber optic cable (it is like an extension cable between button box and trigger box), i have to use it in the MR room.

Thank you
I am having the same problem. In my case the button box is connected through USB as an emulated keyboard. Button box keys appear in a text editor. Corresponding laptop key presses register correctly in Psychopy. Yet the button box key presses fail to register in Psychopy.
Does anyone have any idea what could be going wrong here? This is a rather confusing and hard-to-debug issue…
Did you ever find a solution for this? I had to upgrade to the newest version of PsychoPy and our Current Designs button box is no longer being recognized in our task.
Our task has the correct allowed keys, and the button box is working with notepad, so I’m at a loss of what to try. I think it is a PsychoPy-wide issue, not just my task, but I am also not a coder, so I really don’t know what I’m doing…
Try the other two Keyboard backends in Experiment Settings.
You could also try an editable textbox and a simple keys = event.getKeys() in Each Frame as alternatives to a keyboard component.
If the Keyboard backend is the answer, you might be able to use the new Button Box component.
I had to update my study’s PsychoPy task to be compatible with the newest version of PsychoPy due to an MRI scanner & control room computer update. We are now using PsychoPy 2024.2.4; however, PsychoPy is no longer recognizing input from our MRI’s Current Designs button box.
-
We are using Windows 13.
-
The button box’s input IS being recognized by the computer (checked with notepad).
-
The task is working with keyboard input.
-
The task has the correct “allowed keys” that correspond to the button box’s buttons.
-
The keyboard input in the experiment settings is set to ioHub.
-
People who are using older versions of PsychoPy on personal computers are not having this issue with the button box – AND, labs who are trying to use this computer are having the same issue, pointing to the likelihood that this is an issue with the PsychoPy version communicating with the button box, not something I can fix with code components in my task.
-
The button box is recognized as an HID input device in the device manager. It connects via USB (not serial port).
-
Current Designs does not list any firmware that needs to be installed, and our fORP interface unit was correctly set.
I’ve been trying to resolve this with the help of ChatGPT, and I’ve run into a wall. I am not a coder, just a project coordinator. I’ve only ever had to actually edit our PsychoPy task in the last month due to these updates, so everything is very new to me - if you have any potential solutions, if you can explain them to me like I’m 5, it would be extremely appreciated.
Thank you very much for your response. I did try the Pyglet keyboard, and it just made our actual keyboard also not work, so I couldn’t even close the program. I hesitated to try the other keyboard backend because of that.
I just posted a longer description of what I’ve tried as its own post, but this is a version-wide issue for our university’s scanner, so I’m trying to figure out if there’s another setting that could be the solution, rather than inputting individual code components in each routine.
I did try the button box component and that also didn’t work for me, though I plan to try it again.
Add a mouse component so you can end the routine even if the keyboard isn’t working.
Please check all three backends and report what happens for each.
Is Windows 13 supported by PsychoPy yet?
Have you tried either:
- Switching the Current Designs into one of the NAR (no autorelease) modes?
- In the keyboard component, switching
Register keypress on...
to ‘release’?
I think the way that PsychoPy’s keyboard.getKeys
sorts keypresses can lead to unexpected results under the autorelease modes (i.e. presses get put into the “pressed and released” bin, and so don’t show up when looking for only presses).
Switching to a NAR mode avoids the issue by avoiding unnatural press-release intervals, and changing the component to “release” would allow catching the rapid “press+release” events.
With ioHub, the keyboard works, button box does not.
With Pyglet, neither the keyboard nor button box work.
With PsychToolbox, the keyboard works, the button box does not, and I received the following warning message:
17.0148 WARNING Stopping key buffers but this could be dangerous if other keyboards rely on the same.
Thanks. Have you tried the two suggestions from @aforren1 ?
What happens if you try my key-check [PsychoPy] online demo?
Please could you try all three methods and report back?
I also had this issue with the Current Designs input and a very similar setup to what was described above by KRhodes00. Changing it to HID NAR 12345 allowed my task to detect and record the inputs properly. However, this is a little inconvenient because other tasks we are using before (using E-Prime) are configured with HID KEY 12345 (I don’t know if NAR would work, they have not been tested).
What I find interesting, is that our MRI sends the keyboard input as the number 5 to trigger the start of the task, and that gets recorded whether it is KEY or NAR being used.
Chances are we will just switch KEY and NAR each time since we need this to be ready asap. If I have time I may try using the new button box option as suggested above.
Yeah, another (potentially) surprising behavior is that the trigger output has a consistent press-release period of 20ms, regardless of the button mode used.
If it’s useful to others, I’ve recently developed this tool to help our users debug their code without necessarily needing to connect to a “real” Current Designs box.
It uses a 50 USD hardware kit from Adafruit (MacroPad RP2040) to emulate the experience of using the Current Designs 932 with a trigger and up to 4 buttons (currently), including the various button modes (see usage for details).