The 3x4 and 4x4 matrix keyboards are commonly used for user input. Usually, the row and column wires are connected to GPIO pins on a microcontroller. A simple approach requires 7 wires for a 3x4 keypad.
This article introduces a new technique wish reduces the number of GPIO pins down to 6, 5 and even 4, using software scanning techniques and diodes.
Even though this reduces GPIO pin requirements in a manner similar to charliplexing, this is a different design.