Introduction: Arduino Hot-Key Button Panel
At first I was just going to make a single Hot-key button so I could control my laptop without having to roll my chair over to it. Then I remembered I had a bunch of these "arcade" style buttons so I figured, why not make a panel of buttons? These are great for programming all sorts of commands for quick access. This project uses the Adafruit Trinket M0 to act like a keyboard and trick your computer by mimicking key presses. The video goes into detail on how the program works as well as two different methods to build the body. This instructable covers both ways to build it!
Step 1: Watch the Video!
Step 2: Get the Parts and Tools.
You can choose between two different ways to build it depending on the tools at hand. They both require the same tools, except one requires the use of a 3D printer.
I also use longer different buttons in the video, but I will link suggested shorter ones which will be easier to solder and install. If I was to rebuild this I would go with the ones I have listed. They are also available at Adafruit so you can get them when you get the trinket.
Materials:
- 1/8" Acrylic
- Acrylic Bonding Liquid
- 5 x Arcade Buttons from Adafruit
- Adafruit Trinket M0
- Stick on Rubber Feet
- Jumpers
- Pin Headers
- CA Glue(If using 3D printer)
Tools
- Miter Saw
- 3D printer(optional)
- Soldering Iron
- Drill or Drill Press
- Forstner Bit
If you have a 3D printer and would like to 3D print the file, skip to Step 6.
Step 3: Cut the Acrylic
If you don't want to use a 3D printer, start here.
I have provided a template you can download if you would like to just print, cut out, and paste the template onto the acrylic and cut on the lines. There are also dimensions if you would just like do the measuring yourself. Some of them are a little arbitrary, so just go to the nearest mm(its because the acrylic is 6.35mm thick and I used CAD software).
Cut out all of the pieces on the miter saw to get nice straight cuts.
If you have a laser cutter, I have also provided a DXF file.
Step 4: Drill the Holes!
The buttons are 28mm in diameter where the threads are. I used a forstner bit on a drill press to get a very clean cut. The forstner bit makes a huge mess, but it works really well. Use the template to punch where the hole center is, it really helps.
Drill out all 5 holes.
Step 5: Glue Your Cut Pieces
I used an acrylic solvent to weld the pieces of acrylic together. This is by far the best method to glue the plastics together. CA glue can work too, but it will likely break down the road.
Assembled in the steps shown above.
Make sure its square!
The next few steps are for the 3D printed version, so skip ahead to install the Buttons.(Step 10)
Step 6: 3D Print the Body
If you are going the 3D printer route(and skipped the other steps) it is a good idea to start the 3D print early as it will take a while. Download the STL from Thingiverse Here: https://www.thingiverse.com/thing:2765302
Step 7: Cut the Acrylic Front Panel
The 3D printed part requires the front piece to be cut out of acrylic for a better look. Use the template above and print at 100% - I cut it out using a miter saw. Any way you can get straight cuts will work, acrylic is pretty forgiving.
Attachments
Step 8: Drill the Button Holes
The front panel requires you to drill holes where the buttons go. The diameter of the button where the threads are is 28mm. I used a forstner bit in a drill press to get clean straight holes. It makes a mess but works well. Take your time and use a centering punch to mark the holes before you drill. The template makes it simple.
Step 9: Glue in Front Panel
I used a thick CA glue to hold in the front panel. Place a good amount on the ledge that holds the panel and glue it down. Wait for the glue to set before installing the buttons.
Step 10: Install the Buttons
Disassemble the buttons and install them in the holes you drilled. Tighten down the jam nut on the back. Really couldn't get a good angle on the camera for this, but its straight forward.
Step 11: Solder on Pin Headers
I used jumpers instead of the correct spade connectors. Because of this, I soldered on Pin headers to each of the buttons. On one side of the button you can solder on 2 pins so you can join the grounds together and they can all share a common ground.
I used different buttons, so yours will look different than what it in the video. They will be easier than what I had to deal with.
Also, don't forget to solder on the pin headers to the Trinket. Install them upside down so you can use double sided tape to stick the trinket in the case.
Step 12: Make the Connections
One side of the buttons will all go to ground on the trinket. The other side of each button will go on pins, 0,1,2,3,4 on the Trinket. They will each have their own IO so that you can program which button is being pressed.
Stick the Trinket somewhere inside of the body allowing access to the USB port. I made a small 3D printable mount for it, but not everyone has a 3D printer.
Images in Schematic obtained via Adafruit.com
Attachments
Step 13: Program the Firmware
This step expects that you know how to program a Microcontroller. If not, Adafruit has a good tutorial on how to get the Trinket M0 working on your computer. Find it here: https://learn.adafruit.com/adafruit-trinket-m0-circuitpython-arduino/arduino-ide-setup
Load up the Arduino IDE and download the program from the GitHub: https://github.com/IdleHandsProject/diy_hotkey_panel
The video explains in detail how the program works, and I suggest you watch it so that you can easily see where you have to modify the code for your own Hot-Keys.
Step 14: Enjoy Your Hot-Key Panel!
Use the time you save to sit back and enjoy the Hot-Key panel you just made. You rock!
Step 15: Support These Projects!
I appreciate you following along with my project and watching my video. Hopefully this Hot-Key panel will improve your own productivity and you can make even more with the time you save.
If you think I have earned it, consider subscribing to my YouTube. I will have plenty of new projects coming out.
and if you really think this project is amazing, and want to support future projects, consider becoming a Patron. I occasionally send my patrons circuit boards and cool projects I have available.

Second Prize in the
Remote Control Contest 2017

Participated in the
Epilog Challenge 9

Participated in the
Arduino Contest 2017
12 Comments
4 years ago
what if we want to store the clicks of button in database. how it will work on backend
5 years ago
This is my first arduino project, sorry if this is a noob question. Everything works perfectly for me, except the buttons attached to pins 1&2 and 3&4 result in the same thing. 1&2 hit the same case block and 3&4 hit the same case block. I'm 100% sure I wired as per the drawing and I'm 100% sure i don't have any shorts/bridged solders. Do I have a defective trinket?
Reply 5 years ago
You probably don't have a defective trinket, never seen one. Try some troubleshooting, if you disconnect pin 1 and hit those buttons, what comes up? Try the same for all of them. Just have one pin connected, then press the buttons, only one button should trigger each pin. If more than one button triggers a single pin, then there is something wrong with your wiring. Make sure only the grounds are connected together.
Reply 5 years ago
These were my exact ideas troubleshooting. Already tested all scenarios. Going to try the project with a Feather to see what happens.
5 years ago
Would an Adafruit Pro Trinket work for this? I would like to take this up a notch, utilizing lighted buttons and an LCD to display the command sent, which will require the extra pins to drive the LEDs in the buttons and the display.
Reply 5 years ago
No, the Pro Trinket doesn't have the ability to use the USB library. If you want more IO you could go for the feather: https://www.adafruit.com/product/2772
Reply 5 years ago
Good to know,.. will check out the Feather for use for when I need USB support. Appreciate the info, thanks!
5 years ago
Can I also use an arduino instead of the trinket?
Reply 5 years ago
just use a 2 dollar pro micro leonardo from banggood. i have the link to some awesome ones
Reply 5 years ago
You can but the Arduino needs to have built in USB to utilize the Keyboard library. Otherwise it won't be recognized as a HID device. An UNO or any atmega328 won't work for this. 32U4, or any SAMD board will work.
Reply 5 years ago
Ah, I see, thank you. Very nice project btw, definitely going to make this!
5 years ago
Suddle, but sexy.