Sexypad — Process
Here is how I made the Sexypad: a small handwired macropad with two buttons and three encoders.
This is obviously not only a useful tool but also a fun learning experience. So here is a list of things I learned from making this project:
- Setting up your own matrix (I actually used direct pins wiring, there is no point in a matrix for just 5 switches) and encoders in QMK
- Soldering thin wires and, more importantly, knowing where to solder them to
- How to use hot glue — now I feel unstoppable!
My initial setup using Work Louder keyboard modules (Loop Pad and Nano Pad) on a custom handmade stand. It gave me inspiration to create a macropad that would better suit my workflow. I didn't need as many buttons!
My first working encoder! A and B pins are connected to the pins defined in QMK, middle pin is ground. Using the Elite-C as the controller. It was so easy to set up that it gave me motivation to work on this project non-stop for two days straight (yes, it took me roughly a couple of days to create this).
Rough drafts of layout design ideas and the electrical wiring plan that I hastily drew as I realized I can't wire it going by just the pin numbers.
Diagrams in FigJam. The colored rectangles on the MCU represent pins used for different purposes. Pinks is encoders and their buttons, green is for two switches at the top.
Paper prototype to test the workplace fit and ergonomics: make sure encoders are easy to rotate and buttons are not obstructed. I didn't think too much about the layout design (just as the name) and to my surprise it came out very convenient to use!
Cardboard prototype. It helped ensure everything fits correctly but in the end was an unnecessary step.
First holes for the encoders in the plastic. Still using cardboard at the base. I removed it before wiring. PVC sheets are a great material for creating such projects without the need for a 3D printer. It can be easily cut with a knife and you can go as detailed as you like.
First coat of paint done. Paint is regular matte acrylic, painted with a synthetic brush. After installing the components it looks very nice! The sides show a bit of white so I had to give it another coat.
Bottom without feet. It took me a while to design them in such a way that they would hold the microcontroller, but in the end hot glue turned out to be stronger than I anticipated so the feet glued with it hold the controller quite well.
I made some wires a bit too short, fortunately it was barely enough to put the controller where I wanted. So a lesson to my future self: better make wires longer and then cut or wrap them than make them too short.
Added feet, Sexypad complete! 💀
Turns out adding VIA support is more inconvenient than I thought. First I had to design the layout using KLE. That wasn't hard and I already did this before. Second I turned it into a VIA-readable format by looking through the docs which seem very incomplete and don't make much sense and copying an example from the VIA repo. And turns out VIA can't load your layout automatically unless you publish it to their repo. So I have to import it via “Design” tab every time I want to configure the keyboard. Very inconvenient!
I tried figuring out how to set up Vial, but I can't make sense of the docs. While they are much more complete than VIA's, they are confusing. Let me know if there is a simple way to set it up!
QMK fork and Sexypad code: https://github.com/zyumbik/qmk_firmware/tree/master/keyboards/gleb_sexy/sexypad
Follow https://t.me/sexy_keyboards for my keyboard-related findings and process!