Keypad Interface Module Reverse Engineers Pinouts So You Don’t Have To

If you’ve scavenged some random keypads and want to reuse them in a project without the hassle of figuring out the pinouts, then [Cliff Biffle] has an interface module for you. The Keypad Go connects to the mystery keypad via an 8-pin 0.1 inch header, and talks to your own project using I2C and/or serial.

You could categorize the mechanism at work as machine learning of a sort, though it’s stretching definitions a bit, as there is no ChatGPT or GitHub Copilot wizardry going on here. But you must teach the module during an initial calibration sequence, assigning a 7-bit ASCII character to each key as you press it. Once trained, it responds to key presses by sending the pre-assigned character over the interface. Likewise, key releases send the same character but with the 8th bit set.

The heart of the board is either an STM32G030 or STM32C011/31, depending on parts availability we presume. I2C connectivity is over a four-pin STEMMA connector, and logic-level serial UART data is over a four-pin 0.1 inch pin header. [Cliff] plans to release the firmware and schematics as open source soon, after cleaning up the code a bit. The device is also for sale on Tindie, though it looks like they won’t be back in stock until later on in the month.

Longtime readers might recognize [Cliff] from his impressive m4vga project which we covered back in 2015, where he manages to generate 800×600 VGA signals at 60 Hz from an STM32F4-family microcontroller.

6 thoughts on “Keypad Interface Module Reverse Engineers Pinouts So You Don’t Have To

  1. I kinda like the idea as an exercise, but at the same time it sorta feels like a solution looking for a problem. Determining the pinout of a keypad with either a datasheet, software trial and error, or by using a continuity tester doesn’t seem that much of a hassle, does it? You only have to do it only once per keypad type.

    1. Sure, you only have to fit your 100 keys into a 4 by 4 matrix. Maybe you can do that with 4 dimensional charlieplexing.

      I once had to map out an keyboard matrix which had some 30-odd buttons, and it was a lot more work then I would have expected. Especially not knowing which were the rows and which were the columns made it a lot harder. I do like the idea of letting the microcontroller figure that out for itself, but with both such a small matrix and no source code available I quickly loose interest.

Leave a Reply to Wim TonCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.