Introduction: Making a Powerful Programmable Keypad for Less Than $30.

Picture of Making a Powerful Programmable Keypad for Less Than $30.

Products like the X-Keys programmable keypads are a great companion for anyone who uses hot-key heavy software like PhotoShop. They allow you to lay out all your hot keys on one small board complete with labels and with a push of a button activate any macro or keystroke programmed into the software.

But those products cost in excess of $100.00 even for the basic model. If you live overseas the cost of importing and the US Dollar exchange rate can balloon the price and make the products far too expensive.

It's possible to create your own custom macro pad with a basic USB number pad for much less cost. You can easily pick these up on ebay for under $10.

Step 1: Create Your Custom Labels

Picture of Create Your Custom Labels

I am creating a pad for PhotoShop.

I created a draft layout of paper to decide what functions I needed and where they should be. You can do this easily in Excel too. Put effort into this part so that you don't have to rip off your labels and do them again because you forgot a function.

Google image search each function you desire. I used terms like "fill bucket icon" and "brush icon", etc. In no time you will have a collection of all your buttons.

If you don't have photoshop this part will be hard for you to create, so I have attached a pre-made sheet sezed for A4 paper at 300dpi suitible for keys up to 13mm high by 12mm wide. Printing full size at native dpi will result in correctly sized labels.

Step 2: Print and Cutout Your Custom Labels

Picture of Print and Cutout Your Custom Labels

Print a test label sheet and cut out one label to make sure that it fits your keys perfectly.

When you're satisfied that the labels have printed correctly, print a new sheet and cover each row of labels with tape.

The tape will provide a durable surface to press and protect the label.

The best tape for this is the invisible kind which is often marketed as being able to be written on, non reflective and invisible. Normal tape (the cheap shiny stuff) is no good because over time it will yellow and peel. Invisible tape doesn't suffer from this problem.

Using your fingernail, rub firmly over the tape to make it stick properly. You'll see the blacks get darker as you do this.

Use a ruler and blade to carefully cut out the labels. Scissors can be used but it's harder to do.


I used a laser printer for my labels; I'm not sure how ink will react to glue. I'm sure it will be fine but if the results are unsatisfactory, take your image file to your local print shop and get them to print it for you. You may also choose to have them laminate the page for you instead of you using sticky tape. Get 2 sheets printed; one to laminate and one not, and experiment.

Step 3: Attach Your Custom Labels

Picture of Attach Your Custom Labels

Use a paintbrush to apply an even layer of PVA glue to one key and carefully place one label that you've cut out on the glue lightly. Position, then press.

Do this one key at a time.

PVA glue sticks to paper very well and will set almost instantly to try to position it perfectly before pressing. Once pressed you may not be able to reposition the label.

The layer of PVA that you apply shouldn't be too thin because the paper will soak it up. The layer should be thin but opaque. If it just makes the key look wet, the layer is too thin.

Your labels should not overlap the keys or they will peel off with use. See images.

PVA glue shrinks and sets clear so it's OK to leave any excess that oozes out. It will disappear when it's dry leaving a shiny film. You may like to seal the edges of your labels by brushing lightly some PVA glue around the edges of each label.

Your keyboard is now complete.

Next: software...

Step 4: Getting Your Keypad Working.

HID Macros is the software we will need to get everything working.

This is the only macro software that comes ready to use with the ability to take commands from ONE specified keyboard while ignoring another.

This means you can command macros with the numbers on your USB number pad without having them activate when you press numbers on your main keyboard.

Other software may be able to accomplish this, but not without much tinkering and reading of forums.

HID Macros was designed especially for this purpose and performs the task perfectly.

Attached to this page is a ready to use installation of it complete with macros for photoshop mapped to the labels shown in these photos. You can use it as a guide.

This software runs without installation. Simply download the ZIP file, unpack it and move the folder to a location of your choosing. Recommended folder to put it in is C:\Program Files. Right-click the program and "send to" "desktop" to make a shortcut.

Step 5: Setting Up HID Macros From the Beginning

Picture of Setting Up HID Macros From the Beginning

Plug in your keypad first, then start HIDmacros.

(Note: If you get an error upon launching the software, please follow the guide later in this instructional.)

For this example, I will program the number 7 key on my pad to send the letter b when it is pressed, which is the keyboard shortcut for Brush in Photoshop.

Refer to the screenshot above for details on the following instruction.

Click New and then type a name for your new command. I type the word Brush.

Now click the Scan button in HIDmacros then press the button you want to program on your keypad. The number 7 key.

HIDmacros now knows what button to program and from which particular keyboard.

Now you can specify the action by choosing "Send keyboard sequence" and typing the letter b in the text box.

Click Save Configuration and you can now test the macro.

Any time you press 7 on your number pad, the letter b should be typed by the computer in any application.

Note: HIDmacros is not application specific. An easy workaround is required to make this happen. More on this later in the instructional.

Step 6: Adding and Removing Devices.

Picture of Adding and Removing Devices.

HIDmacros can tell which keyboard you want to you and store different macros for each device.

If you add or remove a keyboard device your macros may end up being moved to another device against your wishes. This is unlikely but it can happen.

No need to worry though, you can easily transfer your macros from one device to another.

See the screenshot above.

The device list tells you how many macros are associated with each device. Click on the device which has the macros then click Move macros and select the device you want to move the macros to.

If you're not sure which device your number pad is, click on the Macros tab and push any key on your pad and the Test Area will tell you which device it is. Don't be alarmed if it says your keyboard is a mouse, it can happen.

Step 7: Notes on HID Macros

If upon launching the software for the first time you're faced with an error message, try right clicking the program and clicking on "Troubleshoot compatibility" and follow Windows' suggestions. I run Windows 8.1 and had issues running for the first time. After following the above instruction everything worked fine.

Modifier keys can be added to your macros to simulate Ctrl+S for example. Please refer to the help file in HID Macros, it features a complete list of commands such as...

+ = Shift

^ = Control

% = Alt

& = Tab

You can even program mouse movements. More info on this page

Step 8: Notes About Your Number Pad.

Picture of Notes About Your Number Pad.

Your number pad (like any) features a number Lock which allows you to change the function of 10 keys. You can take advantage of this to add another 10 macros to your pad.

I use this feature so that I can use the same button functions under another program.

You must strategically place your labels to take advantage of this by putting labels such as Brush on one of these 10 keys. PhotoShop and ArtRage both have Brush tools but use different hot-keys to activate.

So I placed common tools for both programs on the 10 keys so that in Photoshop I have number lock on and Artrage number lock off.

Alternatively, you can keep multiple installations of HIDmacros and program each differently

Make a copy of the HIDmacros program folder and label each for each program and program your macros independently.


Your number pad may feature a "000" key. This key will mimic any macro you have assigned to the 0 key and press it 3 times quickly. I have assigned Undo to key 0 and so pressing the 000 key activates undo 3 times, which can be useful. This si why there is another Undo label with a 3x written on it.


fredfx (author)2015-03-17 more thing. There's some very inexpensive software called USB Overdrive that pretty much lets you map anything to anything else. It's for Mac OS.

payst (author)fredfx2015-10-19

I found a page concerning the wacom data tilt output ..

MaxineM4 (author)2017-11-12

Do you think this will work for the old Ideazon/SteelSeries Fang? Recent "updates" (downgrades) to Win10 and the SteelSeries engines have bricked my keyboard and turned it into a non-programmable.

MarcoM60 (author)2017-10-08

Not sure if anyone will reply due the time this tutorial has been posted, but I'm curious and have some doubts about it and hope someone will help me even after 2 years.

1- will it work for any keypad, USB or wireless?

2- considering hidmacros is no longer in development, will luamacros work the same way, or best to get the last release of hidmacros anyway?

Sine it's possible to use it with scripted commands, I was planning to get a cheap keypad and configure it for gaming purposes, for games that require a sequence of actions and I could therefor program it to press the key sequence instead of pressing all keys by myself (specially useful if that action is done only through game menus instead of a key bind, which is the case I'm needing it for).

Thanks in advance for any help provided.

Sunnypixels (author)2017-07-22

Hi John,

does this work with wireless/bluetooth numberpads?

UgurK25 (author)2017-04-27

Hi johnfoe,

Thanks for your perfect guide. I have a question. I understood how to remap a keyboard key to another device but I want to create some key combinations. For example "alt+tab+enter+left arrow" on keyboard. Or "A+A+down arrow (3 times)+A" on gamepad. But I don't know to write macros. So there is simple and easy way to create this kind of combinations with HIDMacros?

EricF138 (author)2017-01-25

Hello, i'm trying to use this method and i've run into a bit of a block. I use Clip Studio, and like with most art programs i need to be able to use buttons like LControl, LShift, LAlt, and Space on their own for navigation. However i can't seem to figure out how to type these out in the send keyboard sequence thing at all. Anyone have an idea on how to type these out?

joaonb (author)2017-01-23

How do I program CONTROL, ALT and SHIFT keys to the new keyboard?

MadisT (author)2016-02-02

Very good guide! Exactly what I needed, altho I made it for AutoCAD. Big thanks!

But I can't seem to get HIDmacros to make '@' sign. I tried several different versions with both predefined and scripted macros. The problem is that with my language keyboard layout (Estonian) @ sign isnt Shift+2, but its Ctrl+Alt+2.

^%2 didnt work, neither did ^(%2) nor ^%(2). Tried with %64 (alt code) and %(64) which also didnt work.

Anyone has any good idea?

johnofe (author)MadisT2016-02-04

I'm not sure. It's possible the keyboard itself of the computers config of the keyboard doesn't translate properly.

Either use another keyboard or you might need to use different software like phrase express which can do the same thing but only globally which will effect all the same keys on all keyboards, but it's easily disabled and enabled with Ctrl+Mouseclick.

Tough situation.

MadisT (author)johnofe2016-02-04

Thanks for the reply!

The reason I need @ key, is to determine another point in AutoCAD that is related to a previous point. I thought that it would be much easier to just push one button, instead of stretching my fingers when trying to push 3 keys at the same time :D

Using another key combination wouldn't make things easier. I think that HIDmacros doesn't accept 2 modifier keys at the same time.

I was thinking of a script to change keyboard layout to english, push Shift+2 and then change back to estonian, but I also think, its too much of a hussle.

Guess, I'll just keep streching my fingers :D

Gév2 (author)MadisT2016-12-14

Just accidentally saw this. Maybe it would work with a slightly changed version of your Estonian keyboard layout with Ukelele?

Shortcut Stickers made it! (author)2016-12-01

Fantastic! We recently released audio icon custom keyboard shortcut stickers for users to customize their own programmable keypad. Skip some of these steps and start making the keyboard of your dreams!

GeorgeG151 (author)2016-10-15

Is there a way to send commands to a program running in background. I am trying to set up a recording program to run secondary to another program. the recording program is able to except global Keyboard commands running in the background. but when I try to send the commands via HDMicros nothing happends.

mattdanbrown (author)GeorgeG1512016-11-21

Are you using a macOS, windows, or Linux?
If you're on a Mac, I'm almost positive that the easiest, and best way to accomplish that would be using AppleScript.
I just started revisiting my personal custom keypad project, and I can let you know if I figure anything out.
If you're on Linux, that's a little more difficult (for me at least) but, again, I'd be shocked if there isn't a fairly decent solution.
If you're on Windows, then I'm probably not much help. But I can still look into it and ask one of my PC friends about it. (In windows, my guess would be a C++ or Qt executable/script, or maybe a Java applet (I think that's what you'd call it). The last option would require the most coding. AppleScript would require the least (almost none, actually, if you used Automator).

Anyway, hope that's helpful. I'll let you know if I find anything, and if you find a solution, I'd like to hear it.

anfil89 (author)2016-10-26

This is awesome, but infortunatelly it didn't work for me :(

For exemple, I mapped the 6 key to output "a". If I try it in a text file it works, but in the program I want to use it doesn't... it sends the 6 like it normally would. So we can assume it doesn't work for every programs right?

AlanoxDesigns (author)2016-08-10

Can I use media controls? For example, can I assign the key 9 to Play/Pause?

fsm123 (author)2016-04-11

Sadly the software is no longer supported, and appears to have a basic functionality problem (having a delay between key-strokes does not work). Looking for another option.

WayOfCoockie made it! (author)2016-04-11

I realy like this this method to use old keyboards. thanks

mitdfm (author)2016-03-06

Trying to figure out how to script 3 key sequences (i.e. Control Alt Delete). Also trying to figure out how to get it to send the current date. Any help appreciated.

jmolloy1234 (author)2015-08-05

I just installed HID Macros, but it is not working as expected. The expected output is generated when I use applications such as Notepad, WordPad, and Command Prompt, but not for applications not included with Windows OS (Word, Blender, Firefox, etc.). Does anyone have any suggestions to help resolve this issue?

Neurogami (author)jmolloy12342016-02-27

How are you trying to invoke these other applications? Have you tried including the full path to the executable?

cookienesse (author)2016-02-14

In April last year, it looks like HID macros has stopped development, and moved to LuaMacros. Has anyone tried using the new beta? or is HID still good for win10?

HugoM38 (author)2016-01-23

I love this idea and really want to make it but I downloaded the software and there is no "Save and Configure" button as there is with the tutorial. Obviously not allowing me to save and configure :(

Any help appreciated :)

johnofe (author)HugoM382016-01-23

Try running as Administrator and try running in "compatibility mode for Windows XP" too (google it if you don't know how please). I'm not sure why this could be happening.

HugoM38 (author)johnofe2016-01-24

Thanx for the reply John. Tried that and still didn't work. Really hoping to get this to work! Looked on google and can't find anything, the forum isn't allowing me to post to it either.

HugoM38 (author)HugoM382016-01-24

After downloading multiple different versions and following your steps for all of them, I finally got it to work :) delighted. I wish the program was developed further though, I actually would not mind paying for it! Credit for the great tutorial!

PuriA1 (author)2015-11-27

This is very useful, it took me a while to figure out how to input multiple keys lol, but now it's working wonderfully. Very nice tip, thank you!

MichaelP9 (author)2015-03-31


Just like to say this is an absolutely great solution for those not willing to pay a silly price for a shortcut pad. I tried to do this a year ago with a mouse but had no luck.
Thank you for showing me the way to make it work!

Only question I have though about Hid macro.
I would like to program the command shift page up. But for the life of me I cant work out the page up command. I know shift is "+" but what is page up?
Any ideas?


Thomas Finnis (author)MichaelP92015-11-17

Try the g600 mouse from Logitech, which is basically a nifty and ergonomic shortcut pad attached to a mouse - sounds possibly over the top but it's been a revolution for my work. Takes a *little getting used to, but well worth it.

Thomas Finnis (author)MichaelP92015-11-17

Try the g600 mouse from Logitech, which is basically a nifty and ergonomic shortcut pad attached to a mouse - sounds possibly over the top but it's been a revolution for my work. Takes a *little getting used to, but well worth it.

johnofe (author)MichaelP92015-03-31

Shift page up will be +{PGUP}

The help page within the HIDmacros program has a list of all the those functions that can be done with { brackets.

Glad it's worked out for you.

Peasandcarrots made it! (author)2015-10-04

Thanks for posting this! I made this and it works! I did it a little different because I needed more hotkeys, so I mapped all the navigation, zoom, and the undo function to a trackball mouse. Then I mapped the most important tools to the keypad with Autohotkey. The application also made it possible to apply the shortcuts only while running Photoshop. Because Autohotkey could not easily interpret the holding down of a key, I used Sharpkeys to map the space (+) and shift (zero) keys to the keypad. Cnrl was not mapped because it was included in each hotkey if needed. I left the navigation keys so menus could be navigated through the keypad.

One thing is not all keypads are created equal. The first one was a generic cheapie and some keys were not recognized by photoshop. I settled on a Kenesis Freestyle 2 keypad because it has built in cut/copy/paste functions and 3 extra keys to remap. I spent $17 on ebay for the keypad. All in all, 30 hotkeys are mapped and there's room for 2 more. The only problem is that the "tab" key when used to turn toolbars on and off is error prone, but I believe that is because I am using Photoshop CS2 in windows 8.1.

The beauty of your project is that with all the major functions are available without having to move your hands. Because they are on an easy to learn set of keys, depending on what you are using Photoshop for, you don't have to look down at the keyboard or move either of your hands. I did not put decals on the keys because I am training myself not to look at the keypad. It significantly speeds up editing. The actual keyboard is only used for naming files and writing text. If anyone wants the Autohotkey script I am glad to post it. Thanks again for the great tutorial!

PD6 (author)Peasandcarrots2015-10-27

~Peasandcarrots -- I also use AutoHotKey but haven't quite figured out how to make application-specific scripts -- chiefly for Firefox. Can you provide any insight or the script you used? Many thanks! Looking forward to trying this out! :)

johnofe (author)PD62015-10-27

The program is not application specific. You need to either work around that with adding keyboards dedicated to each program or running different config files when using each program. No good for multitasking.

BenP26 (author)2015-10-26

Can I just use elmers glue?

ShaneW19 (author)2015-10-18

Hey, great instructable. I have a few questions.

1.) Can HID Macros be setup so that a key will open a program? I had a keyboard I used for a while with a calculator key, it was awesome, I miss it. Could I do that with like 10 different programs?

2.) I am using a highpowered laptop. If I want this set up at a base station on a USB hub, would I have any issues connecting and reconnecting? Would I have to reprogram or reset anything when moving around?

3.) If I had 3 different number pads for different programs (ARCgis, Google Sketchup, etc) when I plug in the hub would they all stay recognized as the one that it is set as?

ShaneW19 (author)ShaneW192015-10-21

I went ahead, bought a keypad and started the project, and answered most of my own questions. The issue I am running into is that everytime I unplug and replug the device it names it a new keyboard, so I constantly have to switch the macros. Is there any way to fix that? Could it have something to do with it being a 4 numpad?

Also, I can't seem to find how to put the function key in the macro. My volume down key on this computer is fn+f11, I can't figure out how to do that.

johnofe (author)ShaneW192015-10-24

Typically it changes name when pluggen into a different USB port. If using a hub it's just the same. Remember which computer port and which hub port every time and it won't change.

FN buttons don't work. So no media keys.

payst (author)2015-10-19

I have a track ball and would like to try and use HID to deliver pen tilt / stylus wheel / pen pressure .. those kinds of things .. how / if possible , would this be done ?

SpencerM8 (author)2015-10-17

This thing is amazing!

However I have one problem I'm not able to fix. It seems the macros don't work in some programs, Excel and Chrome are the two ones I've encountered, the numberpad keystrokes are supposed to trigger a macro in excel, but instead, I just get the numberpad entry. If anyone can help with that, I'd love to hear how to fix this!

spaceraver (author)2015-06-18

Now, if only this software worked in Windows 10. This is actually very good for sim pit builders..

ubergeekseven (author)spaceraver2015-10-14

Running as administrator on win 10 worked for me.

johnofe (author)spaceraver2015-06-18

Try running compatibility trouble shooter and run as administrator.

JordanH14 (author)2015-08-04

If you own Windows, check out this application called Metro Studio from Syncfusion. It's free and it has just about every type of icon that you'd need and they're all colorless. It can export the icons in different formats, such as PNG, JPEG, SVG, GIF, and a couple more. It uses vector graphics so you can export in any size and you don't have to worry about loss of quality or anything. Then if you need to, you can bring it into Photoshop or whatever you use to do what you need to.

I just thought I'd mention this because it has all the icons you need, and it's a great piece of software to have if you ever need icons. I use it a lot because I'm a programmer and I find myself needing icons (like cut, paste, edit, etc.) for things like buttons or toolbar buttons. It has like over 4000 icons and they're separated in different categories so it's easy to find things. By the way, thanks for this guide. I just bought a new keyboard and I didn't want to buy one with macro keys. I would like to have one on the side for common tasks though so this is great. I'll definitely have to try this.

JeromeB3 (author)2015-07-12

Can somebody show a full script for windows for a keypad?


Irfan Primus (author)2015-07-01

amazing work .
Very useful
thnx a lot

victorg6546 (author)2015-05-09

Great instruct able. I had a question though, can we program a single key to do multiple actions? Kind of like a preset action in photoshop/lightroom

johnofe (author)victorg65462015-05-09

Yes, you can program multiple actions in a script. There is the "predefined" tab and "scripted" tab under the actions sector. Use scripted instead.

When finished entering your script, click "compile" then save configuration.


HIDMacros.SendKeys "%s"

HIDMacros.Sleep 200

HIDMacros.SendKeys "m"

HIDMacros.Sleep 200

HIDMacros.SendKeys "e"

This will do ALT+S then M then E. I do this to bring up a deep menu in photoshop. Use the sleep function as I have so steps don't get missed.

victorg6546 (author)johnofe2015-05-09

Awesome! Thank you so much. So if I wanted to have the shift key held down and hit the right arrow multiple times, how would I code that?

About This Instructable




More by johnofe:Making a powerful programmable keypad for less than $30.
Add instructable to: