Customizable Keypad Matrix (Use It As Shortcuts for PC)




Introduction: Customizable Keypad Matrix (Use It As Shortcuts for PC)

The of the shelf Keypad Matrix is great but they only come in numeric or alphanumeric types. If you want to make a Keypad Matrix whose keys are designed for your needs then this is the Instructable for you.

In this Instructables, I will make a keypad matrix and then utilize it as a shortcut button for my PC.

Step 1: Supplies

  • Aluminum Foil
  • Arduino Pro Micro
  • USB Cable
  • Double-Sided Tape
  • Wires
  • A4 Sheets
  • Cutter
  • Some Printouts
  • Some 3D Printed Parts (Optional)

Step 2: How a Keypad Matrix Works?

Keypad Matrix const of the row and columns of conductive plates/pads and when you press and button the respective row and column pads get shorted.
The main advantage of the Keypad Matrix is that it helps in reducing the number of GPIOs utilized to read a large set of buttons for example for a 3 X 3 Matrix only 6 GPIOs are needed.

Step 3: Layers in a Keypad Matrix

There will be 5 layers in our Keypad matrix

Bottom Layer: It is the base layer upon which all the upper layers will stack up.

Bottom Conductive Row/Column: Either Row or Column Conductive Layer is Placed Above the Base Layer

Separation Layer: This will separate the Bottom Conductive layer from the Upper Conductive layer.

Upper Conductive Row/Column: Either Row or Column Conductive Layer is Placed Above the Separation Layer.

Top Layer: In this Layer, we will stick the custom Keys/Logos as per our needs.

Step 4: Print and Cut the Top & Bottom Layers

I have attached a PDF/SVG file that contains the marking for the bottom/top and separation layers.
Print the sheet and cut out the squares.
The shaded regions on Top and Bottom Layers are where the double side tape is going to be placed

The shaded region on the Separating Layers is needed to be cut out in order for the top and bottom to make contact when pressed.

Step 5: Add Conductive Layer

First, stick double-sided tape to the shaded region of the bottom layer then peal out the protective layer of the middle sections one by one and lay down wire such that only the strands of wire are on the double-sided tape then stick the tinfoil strips on the tape such that it covers the whole tape otherwise the layer will stick together leading to false button triggers.

Step 6: Separating Layer

If you are using the template for the Separating Layer from the previous file then you need to use it at least 7-8 times in order to create sufficient gaps between the top and bottom layers or otherwise you can also use the STL file to 3D Print the Separating Layer.
The notch on the side is to route out the wires which are connected to the top and the bottom layers.

Step 7: Paste Rest of the Layers

After attaching the separating layer prepare the top layer similar to the bottom layer and then paste it to the separating layer.
Route out the wires from the notch on the separating layer.

Step 8: Attach Headers

Now put 1cm of heat shrink on each wire and solder it with a female header.

Make sure to mark the wires of rows and columns. It will be better to use different color wires for rows and columns.

Step 9: Stand for the Keypad (Optional)

Practically the keypad is complete and usable but you can also 3D Print a stand for the Shortcuts Keypad for better accessibility.
On the left wall, there is a slot for USB output and on the top surface, there is a slot for inserting wires from the keypad matrix.
Insert the wire and stick the keypad matrix on top using double-sided tape.
connect the wire to Arduino Micro and fix the micro such that the USB aligns with the opening on the left.

Close the cover from behind using any board and four screws.

Note: the 3D print should be done such that the top surface is touching the build plate so no supports are needed.

Step 10: Stick You Custom Keys on the Keypad

Now stick the printout of custom keypads you designed for your needs on the keypad matrix.
I have included the SVG file for the one I have designed, you can use it as the template to place the icons of your choice and take the print out the.

You can also put some transparent protective layer on top of the print in order to keep it safe from dirty hands and paper tearing apart from repetitive usage.

Step 11: Let's Code

We are going to utilize the Keypad Matrix library from Adafruit so, if you don't have it then first install it from Menu->Sketch->Include Library->Manage Library.

First, we initialize the Keypad object with the number of rows and columns, pins associated with the rows and columns as well as a character value for each of the positions which will be used when the button is pressed.
Also for the shortcuts, we will be utilizing the Keyboard library for Arduino Pro Micro.
The code is well commented.
Here we initialize the Keyboard library by just .begin() function and then we can utilize .press() functional to press any key and .release() function to release any pressed key or .releaseAll() to release all the pressed keys at once.
A list of all special function keys like Ctrl, Alt, Escape, return, etc. can be found on this link.

Change the shortcuts in the switch case as per your own shortcuts.

Step 12: Add Shortcuts to Desktop

To add a shortcut for any application/folder/ webpage just right click and go to properties of the application and you will find a shortcut field, click here and enter your desired key for the shortcut.

Do note that you only need to press the key of your choice, Ctrl + Alt is by default present in the shortcut.

To add a shortcut to any webpage just right click and go to New -> Shortcut and paste the hyperlink to the desired webpage.

Step 13: Done

There you go, now you can enjoy your customized shortcut keypad matrix for easily accessing your favorite apps with just a button press.

If you have any queries regarding any part of the project please comment below, so I can try to resolve it.

Tinfoil Speed Challenge

Second Prize in the
Tinfoil Speed Challenge

Be the First to Share


    • Microcontroller Contest

      Microcontroller Contest
    • Automation Contest

      Automation Contest
    • Make it Glow Contest

      Make it Glow Contest



    4 days ago

    Ahh! My gf and I were talking about wanting a customizable keypad where you have a set of hotkey options for different programs. I wonder how durable a flexible screen would be for the top of this, then the keys and graphics for them could change for each program.


    Reply 4 days ago

    It is a great idea but I think flexible screens aren't flexible enough for this purpose, rather we can simply use TFT touch screen with graphical keys for different program.


    Reply 4 days ago

    Yeah, when I was thinking about it, I thought it wouldn't be durable enough, so I thought...maybe a capacitive touch later over the screen...oh so just a touchscreen then 😆
    I think my ideal would be mechanical keys where the tops are screens that can change. I like the tactile aspect of mechanical keys vs a screen.


    4 days ago

    Very nice project! The music is stuck in my head though.
    Thanks for sharing,
    Bob D


    Reply 4 days ago

    I am glad you liked it.

    NR Korsakov
    NR Korsakov

    Question 6 days ago on Step 13

    Hi! I'm new to this. Can I ask how it works? How does your finger trigger it through all of these layers and the label sheet all above the foil? Thanks!


    Answer 6 days ago

    Hi NR Korsakov
    When we press the upper sheet, due to the cavity between the layers, the upper sheet suppress into the cavity and the aluminium foils touch each other, thereby creating path for signal to go and trigger the event. When we release our finger due to tension in the layers it comes back. The tension in the upper layers is there because it is stuck with the separating layer.
    I hope this helps you in understanding the working principle.


    7 days ago

    Love this! What a great concept! I saw a similar concept on another instructable that uses a digikey digispark board. There are some comments there on using Windows Autohotkey to take the key presses and automate opening whatever program or doing whatever sequence of actions:

    Maria Evenstar
    Maria Evenstar

    8 days ago

    Congratulations!!! You're in the finals!!!! :) I love your instructibles! :)


    Tip 9 days ago

    fbVzzfbestgdsfvxzfxfgfdbzbzdfsbgfbdgzgdzhtbdghxjvcncgjgckcgmDdfdfcrstesFAgteaCAdm JFkgsfzvfgzfFBDxyfndgmhjmgcdgjmmify,hci,mxgugmxj vmhfmzhznfyahrtathrsrthvCgmh fhg nfxxfngfhxthdxtfxhgdzfgfdbzgzdffgdzgdzf