How to update library for nano 33

Hello all!

I'm using a keypad and am trying to read keypresses. The hiccup is that keypad.h doesn't work properly on the Nano 33 iot/ble/etc. It's even documented in their forum that many existing libraries are incompatible. What I'm seeing on the nano 33 is a constant stream of 1's where on the uno my keypresses read properly. No wiring changes.

The issue is with the incompatibility of libraries on the new arm platform apparently. I need to be able to read this keypad and I really need the IOT functionality of this model. So either I need to update the library or I need an alternate method of reading the keypad. Does anyone have a known working library for the new platform, tips on how to update the existing library, or just an alternate method to do this with an example?

Any hints here would be greatly appreciated.

What's the size of Your keyboard? What are Your demands? Writing the code Yourself is one possibility.

It's a simple 3x4 matrix keypad. Nothing fancy. No diodes so this is a one key press at a time. My requirements are pretty simple. The existing example "Hello Keypad" from the keypad.h file meets 90% of my requirements. I just need to be able to read the input and trigger a case statement.

I'm not sure how to write my own library mostly because I'm not sure what the difference is between a standard arduino and the newer chip. If I could get a resource of what to look for I am capable of creating a new version of keypad.h.

The concept is simple enough. All columns high outputs, all rows inputs with pullup resistors. Bring one column low, read all the rows and see if there is a low. You know the column, you know the row, you know the intersection. Next column low, read all rows. Next column low, read all rows. Etc.

Or, wait for a low interrupt from a row pin, then do the scanning.

kaplah: I'm using a keypad and am trying to read keypresses. The hiccup is that keypad.h doesn't work properly on the Nano 33 iot/ble/etc.

Maybe use an extender and change the keypad to i2c...???