In the past couple years I have been playing with CNC. I have built and modified and rebuilt probably about 4 CNC machines. I started out with a CNC Router made completely out of 3/4" plywood. I was immediately hooked. I eventually redesigned the CNC Router into a full aluminum 80/20 extrusion unit capable of 20"x30". I also have a 3 axis 3W laser CNC capable of about 24"x24". On my first CNC Router, I used a parallel TB6560 3 axis controller with LinuxCNC. I never got around to adding a Pendant before I got the wild hair, to rebuild with an Arduino based controller. On the Parallel board adding a Pendant would have been pretty straight forward, almost plug and play. There are plenty of options out there for it. Not so much for Arduino. There are a few projects out there dealing with it but they all seem to start off strong and never finish. Or at least they never post their finish.
Universal G-Code Sender has, in the options, key mapping for just about every function. My other favorite CNC controller program is LaserWeb4. They are just beginning to map keyboard keys to jog functions but they aren't quite there yet. I came across a program, pretty old, made for the Flight Simulator community. HIDMacros.eu With this program and a USB Keypad or even Keyboard all sorts of macros and shortcuts are available.
I have seen post where they suggest that this could be used for graphics and other programs. Like buttons to quickly choose paint brushes or modes. Pretty much the sky is the limit here.
Step 1: The Pendant
I found on Amazon this wireless keypad. It is pretty basic. They sell them with more or less keys. This one has the standard 10 key with a few extra keys.
Using HIDMacros.eu and the key map feature in Universal GCode Sender. I setup my keys to suit my needs. With the numlock key you can get up to 40 keymaps and macros. I Opted to leave the numlock in the default position and map my keys that way. There are more than enough keys for my purpose. I could have left the general layout for UP, Down, Left, Right, Page Up, Page Down etc. But I prefer the X,Y, Z like you see above. My first labels were just white sticky labels with the icon laserjet printed on it. I did spray clear coat on before applying for extra durability.
Step 3: Fancy
After I got everything the way I liked it. I decided to make it a little fancy. My labels this time I printed with a black background on a color laser printer. I made several copies, 4 sets on one page. The reason I made so many copies is for the next part. So that the white areas stay white and not show through the actual key icons, I turned the page over and lightly at first sprayed with black spray paint. You have to start out really light or the paint bleeds through. Add a couple more light coats until it is fully black. Then, I turned it over and sprayed it with clear coat. Again, really light to start with. It too will discolor the white and bleed through. If you try it you will see why I made so many copies. Then I picked the best looking of the bunch and cut out with a razor knife. If you get white edges where you cut it out you edge it with Sharpie. I just ran the label edge on the Sharpie, instead of trying to draw on it.
To attach, I sprayed (again lightly) with spray adhesive. The solvent in the spray will also mess up the label. Ask me how I know...
This works great for me. I will still look for a hardware solution. I would like to be able to pause my CNC job and adjust position with the keys. That would require a direct parallel passthrough solution. There are a few of those projects out there that look promising. They appear to be abandoned. Maybe I can build on what they started.
12/4/2018 - Update I attached the labels I used. (some stolen from the web) Print it double sided and you will get the black on the back side of the page.