Recently, I have used psychopy to create several experiments, one of which involves collecting feedback from participants using a gamepad.
In the past, we primarily used keyboards, but there are too many keys on a keyboard, which can be inconvenient for older individuals. Gamepads have fewer buttons and are designed for comfortable grip. For tasks that do not require high time precision, I think a gamepad is a perfect device.
The gamepad I use is a Hori gamepad that I purchased a long time ago. It looks very simple. I now use it for participant feedback (without timing). It is very convenient as it can be connected to the computer via Bluetooth. The gamepad also comes with a data cable, so it can be connected to the computer via a wired connection, which should have less latency than Bluetooth.
I encountered a slight issue when using this gamepad with psychopy: the built-in joystick library in psychopy seems to have better support for Xbox gamepads. Although this gamepad has a more common interface, I gave up on this approach after testing it for a short while without success.
After searching, I downloaded a software called "Keysticks": https://keysticks.net/ In simple terms, this software can map detected gamepad buttons to keyboard keys. Therefore, I only need to add keyboard detection functionality in psychopy to use the gamepad normally.
Another advantage of using this software is that I can map only the necessary keys to the gamepad buttons. Even if the participant accidentally presses unused gamepad buttons, there will be no response, reducing the probability of accidental operations.