Blueprint

Optimized Macropad

An optimized 17 key macropad with RGB

9 views

0 followers

CAN CAN ⚡🚀 approved Optimized Macropad ago

Tier approved: 4

Grant approved: $25.00

Lol

Person20020 (Koji) Person20020 (Koji) 🚀 submitted Optimized Macropad for review ago

Person20020 (Koji) Person20020 (Koji) 🚀 added to the journal ago

Added BOM

I didn't have a BOM yet so I spent a bit trying to find good parts. I have all of the parts other than the MCU and PCB but it tried to find good prices on everything else anyway.

image

Person20020 (Koji) Person20020 (Koji) 🚀 added to the journal ago

Modified PCB

I modified the PCB to have a sub board that holds the Xiao and hangs below the main PCB using 2x6 header pins.

image

image

At first I was going to try to add it to the main PCB and the add a v score to break it off after but I couldn't find any good way to keep it within the 100x100mm, and having 2 <100x100mm PCBs is cheaper than 1 >100x100mm PCB (I'm pretty sure) so I decided to just keep it separate.

Person20020 (Koji) Person20020 (Koji) 🚀 added to the journal ago

Designed the Case

Now that the main part of the PCB was designed I started with the case. I made a standard case with the PCB floating and hanging off of the switches.

image

I was going to try to make a render with the RGB using Blender but after half an hour of messing with stuff the lights barely managed to show and it looked really strange so I decided to just use the Fusion render.

While designing the case I thought more about how to mount the MCU and decided it would be easiest to make a small sub board PCB with a 2x6 header pin in the middle so that it could easily fit between the keys and the Xiao could hang below.

I generally like to have the boot/reset buttons easily accessible so that I can change the firmware later if I want so I made some flexible tabs on the bottom of the case (like the ones used on Prusa printers for the reset button) that should allow me to press them without disassembling anything.

PXL_20251126_041304961
PXL_20251126_041320275

I also learned during my rendering that by using the random textured plastic material in fusion and turning the scale down a bunch it gives a slightly matte appearance and also stops black things from having either zero shadow and contrast or being super reflective.

Person20020 (Koji) Person20020 (Koji) 🚀 added to the journal ago

Wrote firmware

I wrote the firmware for it today and I used QMK and also added Vial support because IMO macro pads should be very easy to bind the keys on because I often have different keybinds that I will use a lot at once.

Everything was pretty simple now that I know most of how QMK works but the most painful part was creating the layout for vial. I recently saw this keyboard layout tool in the ScottoKeebs discord and it is way better than https://www.keyboard-layout-editor.com/. It allows you to bind the rotation point of keys directly to the center or corners (as opposed to KLE which you need to manually place the point using a number input box) and generally is much easier to use. Also it has dark mode! It was still really annoying to align all of the keys because of the odd positioning and rotation.

image

Person20020 (Koji) Person20020 (Koji) 🚀 added to the journal ago

Routed PCB

I routed the PCB and with the direct soldered MX footprint the extra routing for the LEDs wasn't that hard. In order to keep it compact I will need to mount the MCU somewhere under the PCB but there isn't much space. I haven't routed the MCU yet.

image

Person20020 (Koji) Person20020 (Koji) 🚀 added to the journal ago

Designed key layout

I made my schematic and the layout for the keys based on the optimal packing of 17 squares in a larger square. I designed the layout first in Fusion 360 so that I could export a drawing of it and then import it into Kicad to position the keys.
image
image

At first I was going to use a plated hotswap MX footprints so that I could use either hotswap or direct soldered but after deciding to add RGB I switched to a regular MX footprint to save space for the extra traces.

alexren alexren ⚡🚀 requested changes for Optimized Macropad ago

You're only allowed one hackpad!!! go back and journal

Person20020 (Koji) Person20020 (Koji) 🚀 submitted Optimized Macropad for review ago

Person20020 (Koji) Person20020 (Koji) 🚀 started Optimized Macropad ago

11/25/2025 5:50 PM - Designed key layout

I made my schematic and the layout for the keys based on the optimal packing of 17 squares in a larger square. I designed the layout first in Fusion 360 so that I could export a drawing of it and then import it into Kicad to position the keys.
image
image

At first I was going to use a plated hotswap MX footprints so that I could use either hotswap or direct soldered but after deciding to add RGB I switched to a regular MX footprint to save space for the extra traces.

11/25/2025 5:54 PM - Routed PCB

I routed the PCB and with the direct soldered MX footprint the extra routing for the LEDs wasn't that hard. In order to keep it compact I will need to mount the MCU somewhere under the PCB but there isn't much space. I haven't routed the MCU yet.

image

11/25/2025 6:03 PM - Wrote firmware

I wrote the firmware for it today and I used QMK and also added Vial support because IMO macro pads should be very easy to bind the keys on because I often have different keybinds that I will use a lot at once.

Everything was pretty simple now that I know most of how QMK works but the most painful part was creating the layout for vial. I recently saw this keyboard layout tool in the ScottoKeebs discord and it is way better than https://www.keyboard-layout-editor.com/. It allows you to bind the rotation point of keys directly to the center or corners (as opposed to KLE which you need to manually place the point using a number input box) and generally is much easier to use. Also it has dark mode! It was still really annoying to align all of the keys because of the odd positioning and rotation.

image

11/25/2025 6:23 PM - Designed the Case

Now that the main part of the PCB was designed I started with the case. I made a standard case with the PCB floating and hanging off of the switches.

image

I was going to try to make a render with the RGB using Blender but after half an hour of messing with stuff the lights barely managed to show and it looked really strange so I decided to just use the Fusion render.

While designing the case I thought more about how to mount the MCU and decided it would be easiest to make a small sub board PCB with a 2x6 header pin in the middle so that it could easily fit between the keys and the Xiao could hang below.

I generally like to have the boot/reset buttons easily accessible so that I can change the firmware later if I want so I made some flexible tabs on the bottom of the case (like the ones used on Prusa printers for the reset button) that should allow me to press them without disassembling anything.

PXL_20251126_041304961
PXL_20251126_041320275

I also learned during my rendering that by using the random textured plastic material in fusion and turning the scale down a bunch it gives a slightly matte appearance and also stops black things from having either zero shadow and contrast or being super reflective.

11/25/2025 6:52 PM - Modified PCB

I modified the PCB to have a sub board that holds the Xiao and hangs below the main PCB using 2x6 header pins.

image

image

At first I was going to try to add it to the main PCB and the add a v score to break it off after but I couldn't find any good way to keep it within the 100x100mm, and having 2 <100x100mm PCBs is cheaper than 1 >100x100mm PCB (I'm pretty sure) so I decided to just keep it separate.

12/1/2025 - Added BOM

I didn't have a BOM yet so I spent a bit trying to find good parts. I have all of the parts other than the MCU and PCB but it tried to find good prices on everything else anyway.

image