Lasercut Fidget Macropad
i made a fidget macropad because i am always fidgeting with something. Macropads are especially satisfying but aren't handy because you will type or do stuff on your computer while fidgeting.
Thats why i made this design, you can easily turn it on and off and it even has 3 modes for a total of 33 programmable actions!
Just plug it into the micro usb hole and turn it on. flip the middle switch to switch between the modes.
I used 3 different kind of cherry mx style switches to make it extra satisfying!
Supplies
Machines:
- Lasercutter
- 3D printer (optional)
- soldering iron
Materials:
- Arduino (pro micro)
- 3mm birch plywood
- wires for connecting everything to the arduino
- buttons
- cherry mx style keycaps 6x
Buttons I used:
- 2x blue cherry switch
- 3x red cherry switch
- 3x brown cherry switch
- rotary encoder
- on / off switch
- flick switch (mts-103)
Lasercutting the Box
Start by downloading the box plans and edit the top piece to hold whatever buttons you want.
If you have the same buttons as i used you can just laser cut the file in 3mm material.
Wiring the Arduino
put the components in the top plate of the box then solder the components to the arduino as shown in the schematic
Make sure you leave enough wire length to easily fit in the arduino before putting the top on.
Put It Together
Put all the wooden parts (except the top) together with some wood glue and let it dry.
after it is dry put some hot glue on the edges from the inside to secure it and put a little blob of hot glue in de place the arduino will go en press the arduino micro usb into the hole and let it dry in place.
After that you can secure the top panel with some hot glue.
Now type away!
Coding
Download and open the sample code provided here.
If you want to test the fidget macropad you can upload the code to the arduino and test all the buttons.
Now you can add your own code to make it to whatever you want
some examples:
to type "Hello world!" try this code:
if(digitalRead(Buttons[1])==LOW){ Keyboard.print("Hello world!"); delay(400); }
to type the letter A try this:
to type "Hello world!" try this code:
if(digitalRead(Buttons[1])==LOW){ Keyboard.write("Y"); delay(400); }
and to use a keyboard shortvut try this:
if(digitalRead(Buttons[1])==LOW){ Keyboard.press(KEY_LEFT_CTRL); Keyboard.press('c'); Keyboard.releaseAll(); delay(100); }
(Be sure to change the button to the correct button number)
for some more info on the HID-Project.h library chere here: https://github.com/NicoHood/HID/wiki
Downloads
Finished Product
some more photo's of the finished fidget macropad.