HotKeys Keyboard With Custom Profiles
HotKeys Keyboard With Custom Profiles
HotKeys Keyboard With Custom Profiles
by FabroLabs Technologies
Being an Industrial Designer, I need to access more than 7-8 software which includes Solidworks, Photoshop,
Illustrator, Keyshot, Indesign, etc. on a daily basis and yes few games also. So, I experienced two issues from which
this device comes to its existence.
S ca t t e re d Ke y s - The complete hand travels over the keyboard in search of a key that exists at the
opposite corner like ESC and ENTER key. Similarly, there are more than 15 keys that I use only in
Solidworks and those are scattered all around the keyboard. So, instead of changing my keyboard
preferences, again and again, I looked for a mini keyboard that can be customized according my
needs. After having some research I found plenty of designs and codes which can do this task easily.
But as soon as I jumped on the second issue, I found that none of the design can eliminate that.
D i e re nt Funct io ns - The second issue was when I switch the program, most of the keys swap
their functions like Adobe Photoshop is doing zoom with ALT+Scroll but when I go to Adobe
Acrobat, zooming is done by CTRL+Scroll. Similarly, I don't want most of the keys in Keyshot which I
usually use in Solidworks. And, I never use arrow keys in Solidworks which are extremely required
while gaming.
So, I decided to build a HotKeys keyboard with a Rotary Knob and a cheap LCD to alter between di erent programs
with dedicated key mapping.
The world is ghting with the COVID-19 pandemic and one-third of the population is under lockdown. In India, we
are also isolated in our homes and there is no possibility to order components for this project as most of the
commercial activities are halted. But, I have most of the components embedded in one or the other product.
Complete Project is designed in Solidworks while keeping all the parameters for additive manufacturing, using o
the shelf-components.
Electronic Components:
1x Arduino Micro
20x Cherry MX mechanical switch
1x 1602 LCD Module
1x Rotary Encoder
Hardware Components:
3x M3x8 Bolts
4x M3x5 Bolts
Tools:
3D Printer
M3 Allen Keys
Soldering Station
Glue Gun
Material (PLA)
Layer Height (0.2mm)
Shell Thickness (1.2mm)
Fill Density (20%)
Print Speed (60mm/s)
Nozzle Temp (210°C)
Support Type (Everywhere)
Platform Adhesion Type (None)
You can download all the les that are used in this project -
Download
https://www.instructables.com/ORIG/F11/UC55/K8LSFYWP/F11UC55K8LSFYWP.stl
…
I printed caps which required higher details and smoother surface on DLP 3D Printer
You can download all the les that are used in this project -
Download
https://www.instructables.com/ORIG/F7X/2WCI/K8LSFYWO/F7X2WCIK8LSFYWO.stl
…
Download
https://www.instructables.com/ORIG/FHO/QWYF/K8LSFYWR/FHOQWYFK8LSFYWR.stl
…
As described in the images, snap t all the switches in their respective places. No need of bolts or glue is required as
designing is done with all tolerances and all the components gets t on their own.
As described in the images, install the LCD in the respective place and x it using M3x5 bolts.
As described in the images, install the Rotary Encoder in the respective place.
As described in the images, install the Arduino Micro in the respective place.
Follow the Schematic to wire all the electronics in the following way:
-----------------------------------------------
| Arduino Micro | LCD Module |
-----------------------------------------------
| VCC | VDD |
| GND | VSS |
| D4 | Register Select |
| D3 | Read/Write |
| D2 | Enable |
| A0 | Data 4 |
| A1 | Data 5 |
| A2 | Data 6 |
| A3 | Data 7 |
-----------------------------------------------
-----------------------------------------------
| Arduino Micro | Keypad Matrix |
-----------------------------------------------
| D9 | Column 1 |
| D8 | Column 2 |
| D7 | Column 3 |
| D6 | Column 4 |
| D5 | Column 5 |
| D15 | Row 1 |
| D14 | Row 2 |
| D16 | Row 3 |
| D10 | Row 4 |
-----------------------------------------------
-----------------------------------------------
| Arduino Micro | Rotary Encoder |
-----------------------------------------------
| D0 | Pad_A |
| D1 | Pad_B |
| GND | GND |
-----------------------------------------------
4
1
2
6 7 5 8 9
23 26 27 28 29
22 13 12 11 10
30 31 32 34 33
14 25 17 18 19
35 37 38 39 40
15 24 16 21 20
36 44 43 42 41
1. Arduino Micro
2. Rotary Encoder
3. 16X2 LCD Module
4. LCD Contrast Knob
5. Cherry Key
6. Cherry Key
7. Cherry Key
8. Cherry Key
9. Cherry Key
10. Cherry Key
11. Cherry Key
12. Cherry Key
13. Cherry Key
14. Cherry Key
15. Cherry Key
16. Cherry Key
17. Cherry Key
18. Cherry Key
19. Cherry Key
20. Cherry Key
21. Cherry Key
22. Cherry Key
23. Diode
24. Cherry Key
25. Cherry Key
26. Diode
27. Diode
28. Diode
29. Diode
30. Diode
31. Diode
32. Diode
33. Diode
34. Diode
35. Diode
36. Diode
37. Diode
38. Diode
39. Diode
40. Diode
41. Diode
42. Diode
43. Diode
44. Diode
For communicating with the Laptop/Computer via HID interface we'll be using Arduino Micro's ATmega32U4
microcontroller.
QMK (Quantum Mechanical Keyboard) is an open source community centered around developing computer input
devices. The community encompasses all sorts of input devices, such as keyboards, mice, and MIDI devices.
Instrunctions to follow:
For customizing the keymaps, encoder functions, LCD functionality & pro le management modify the
key5pro/keymaps/default/keymap.c le.
This array contains the di erent layers of a keymap which can be used as di erent pro les. Each pro le or layer can
be set with di erent keycodes, macros or functions. (List of Keycodes)
This function callback will be excuted every time the encoder is triggered, this callback handles the functioning of
the rotary encoder.
These functions are used to operate the 16X2 LCD module which can be used to display the operation speci c
information to the user.
Download
https://www.instructables.com/ORIG/FA3/9WDO/KC93736Q/FA39WDOKC93736Q.rar
…
As described in the images, plug all the caps on switches and the rotary cap on encoder. Then, close the bottom
part and fasten it with M3x8 bolts.
You're nally done! Here's how the nal product should look and work like.
If you like this project, please vote for the "Trash to Treasure" Contest.
Yep found the answer a day after my post. Have completed a couple of these... then fell down the
rabbit hole and have handwired a planck, a dactyl manuform, and so on...
I think you can use 1N4148
Than you have to copy the content of the 'key5pro.rar' to the qmk_firmware Folder
Hey ho,
Close to the Finishline ... Done with the Hardware Side
But I Suspect there is a error in the Wiringdiagram *Image and List isn't the same* not sure which
is the right one :(
I couldn't find this key5pro to compile. Did I miss anything on the tutorial?
Where can I find this custom keyboard?
Download the attached key5pro.rar file, then extract it to the qmk_firmware/keyboard directory,
then compile it.
Very nice concept. How many key sets does this device hold?
Theoretically it can hold tens of thousands depending on how well the code is written. If you're
asking how many that specific one currently holds I can't answer that!
Thanks