I use a Genovation keypad. Its got 24 keys, can be programed to send any keystroke. The caps are removeable so youp rint a legend sheet, cut it up, and put a piece under each cap. That makes the labels very permanent. I got one off ebay for about $50, new they are under $100.
There is also one called Xkeys, about the same price, but it uses a special driver that remaps the keystrokes. I bought one, by mistake, I intended to get another genovation, but it works ok for me.
I use one on a router and one on a mill. I like them a lot
ron