Adafruit Bluefruit 32u4 Bluetooth LE HID Keyboard report

I've build a bluetooth wireless controller for RetroPie on a Raspberry Pi using Bluefruit 32u4. I found a good reference for code at It works, but my problem is that it seems only one key press can be processed at a time. I'm using the Raspberry Pi cli to troubleshoot.

I need to be be able to press a 5 and 1 at the same time. I can send a 5 and and 1 separately no problem, but when I press then both only the 1 streams across the screen at the cli. Because six key codes can be sent in a HID report, I expect to see both the 5 and 1.

To troubleshoot further, I reconfigured the code to just send a HID report of 00-00-1E-22 which should issue a 1 and 5 at the same time, I only see the 1 streaming at the cli. Where is the limitation on processing just one character?

I need to be be able to press a 5 and 1 at the same time.

What, on a real keyboard, does that accomplish?

I think the OS is just doing auto-repeat on “the last character typed”. I would expect a game to act on raw key events so it can keep track of which keys are down.