This is a programmable keypad designed in Onshape. The parts are 3d printable and switches and keycaps can be found at many different sites. It uses an Arduino Micro as the controller since it can act as an HID device.
Cherry MX Switch
1 - 20 depending on the keypad size
I used DSA so that they are the same shape all of the keypad.