I’ve been trying to track down an issue for a while and can use some help. I’ve got a Picade Controller PCB (firmware v2.3) hooked up to a Raspberry Pi running RetroPie 4.5.1. I’ve been doing some testing with SDL2 and have found that when in Keyboard mode, the Picade PCB will output both a keyboard and gamepad event. When in gamepad mode, the Picade PCB will output both a gamepad and mouse event (and additionally send a double event for the first event).
Upon looking at the Picade firmware Arduino sketch, I’ve found that it seems to do something with the HID library. If I comment that library out, then Keyboard mode works as expected. Unfortunately, then the Gamepad mode doesn’t seem to work. I’m talking specifically about these lines in
HID().SendReport(JOYSTICK_REPORT_ID, data, JOYSTICK_STATE_SIZE);
Alternatively, if I comment out the
Keyboard.release(key); lines in
Picade.ino, the Gamepad mode will send gamepad and mouse events, while keyboard mode will send no events.
I’ve read that the device automatically registers itself as a keyboard HID device and that the HID library is limited. Is there anyway for the device to register multiple HID devices and send events appropriately? Meaning, only send keyboard events for keyboard actions and gamepad events for gamepad actions?
Thank you very much.