Zero To Custom MacroPad In 37 Easy Steps

[Jeremy Weatherford] clearly has a knack for explaining projects well enough for easy reproduction but goes way further than most and has created a four-part YouTube series detailing every step from project inception to the final assembly, covering all aspects of 3D modelling and PCB design for a custom MacroPad design. Many tools are introduced along the way, all of which help reduce complexity and, by extension, the scope for errors. As every beginner hacker knows, early successes breed confidence and make for better and more ambitious projects.

Part 1 covers the project motivation and scope and introduces a keyboard layout editor tool. This tool allows one to take a layout idea and generate a JSON file, which is then used to drive keyboard tools. XYZ to produce a usable KiCAD project. The tool only generates a PCB project and an associated netlist file. No schematic is created; you don’t need one for a simple layout.

A very basic keyboard layout

Part 2 is a walkthrough of the design process in KiCAD, culminating in ordering the PCB from JLCPCB and assembling the surface-mount parts. This particular design uses a controller based on the Sea-Picro RP2040 module, but there are many options if you have other preferences. [Jeremy] shows what’s possible with the selected suppliers, but you need not follow this step precisely if you have other ideas or want to use someone local.

Part 3 covers exporting the mechanical aspects of the PCB out of KiCAD and into a 3D CAD program, specifically OnShape. [Jeremy] covers some crucial details, such as how to read the mechanical drawing of the keys to work out where to place the top plate. It’s very easy to plough straight in at this stage and make a design which cannot be assembled! The plan is to use a simple laser-cut box with a bottom plate with mounting holes lining up with those on the PCB. A Top plate is created by taking the outline of the PCB and adding a little margin. An array of rectangular cutouts are designed for the keys to protrude, lining up perfectly with where the keys would be when mounted on the PCB below.  The sides of the case are formed from laser-cut sections that lock into each other and the laser-cut base—using the laser joint feature-script addon tool from the OnShape community channel. A second feature script addon is used to auto-layout the laser-cut components onto a single sheet. A CAM application called Kiri Moto is used to export for laser cutting and is available on the OnShape store.

Part 4 concerns the firmware. The QMK WSL build is compiled on Windows using WSL, minimizing the barrier to entry for intrepid hackers who are likely to start out with Windows-based hardware. The QMK layout is configured as an ortho_4x4, but [Jeremy] calmly and clearly explains how the other layouts are used and how they align with the earlier design choices. Finally, the VIAL keyboard layout editor is shown to be used for testing the finished macropad, and how it is used for programming those delicious macros we want to emit into the world.

Macropads are very individual things, and you really need to be pushing the limits of productivity to need one, let alone build a custom device. Here’s one for those who get stuck in MS Teams calls a lot. If you’re into video editing, that’s a valid use case. Video editing macropads have existed for decades, but have they been made out of wood?

 

5 thoughts on “Zero To Custom MacroPad In 37 Easy Steps

  1. Neat. As things usually go I could have used this a few months ago when I built my own macropad lol. Might still be able to get something however. Been working on a 60% keyboard project.

    I run kmkfw which is basically qmk in python. Don’t think its descended from qmk but it shares alot of the features. I’ve found it more approachable being a noob who is only fluent in python.

    Also yes you don’t need to have a schematic for something simple. However the moment you start thinking what if I had this extra or what if.
    Make a schematic. You will get lost the moment you leave for a day or two.

  2. I built my own macropad with 12 buttons ~2 years ago with a pi pico

    I wanted to use it for kicad and freecad but I have never used it because the keyboard is just a lot more convenient. If your macropad has even a single button less than the application you need it for, you will instead use the keyboard.

    I wanted to use it but I still had to go use the keyboard to use an infrequently used hotkey every once in a while, which made it a subset of the keyboard functionality wise

    I can however say the entire process has taught me a lot about actual usability and user experience (mine specifically :D )

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.