Qwiic keypad key still-down or up events?

At first glance, the Qwiic keypad (https://www.sparkfun.com/products/14836) seems to only generate an I2C message for a key-down event. I don’t get an event for key-up nor do I get a steady stream of events while the key is held down. Consequently, there is no way to use the keys as “momentary switches”.

Am I missing an option here, or does the keypad really not support such behavior? If not, then is this limitation only occurring at the Qwiic interface, or also at the lower line level? If I circumvented the I2C conversion and went straight to the keypad lines, could I then hope to access key-down-duration (realizing that doing so would obviate having purchased the more expensive version with Qwiic as opposed to the same item without the Qwiic board, which would have been cheaper)?

Am I understanding this correctly, or is there a way to get the data I want off the I2C device?

Thanks.

If I understand you correctly (only one button press is logged when you hold the button down), that is a limitation of the product, by design, in the firmware. This is primarily due to the fact that the pins for the keypad are being multiplexed and there isn’t way to detect a button “hold” with the hardware. Secondly, the FIFO is limited to 15 button presses; without which a single button press would easily flood the FIFO and a button press duration/debounce would need to be set with a specific time limit.

To replicate what you want, you would need to use a microcontroller with 12 interrupt pins and attach 12 buttons. Otherwise, you could add a resistor network to the keypad and tie it to an ADC. As a note, you probably couldn’t detect multiple or simultaneous button presses.