Blueprint

Focuspad

A 4x4 Windows productivity macropad with two knobs

Created by phyroxyn phyroxyn

Hackpad

33 views

0 followers

phyroxyn phyroxyn added to the journal ago

Just realizedI couldn't use low profile switches 😭

Makropad_v1_2026-Jan-03_02-43-52PM-000_CustomizedView12801590204

What happened

Got an email from HCB/Blueprint saying the standard parts are being shipped to me. That means my recent MX → Choc v2 redesign was all for nothing 😭.
(This was de redesigned PCB:
image

So now i need to switched back to the last stable MX version, thankfully I had saved everything on GitHub, so I can restore the original files quickly.

Next steps:

  • Find a good pcb serivce, because in germany jlc-pcb has high import fees
  • Buy the pcb and start 3d printing the parts (when my new hotend arrives)

phyroxyn phyroxyn added to the journal ago

Retroactive project overview

Focuspad — first journal entry (retroactive)

I started this Blueprint Hackpad-clone project a few weeks ago, but I didn’t realize I had to keep a journal. This entry is retroactive, based on my notes and memory. In total, I estimate I’ve spent around 16–20 hours on the Focuspad so far.


Project overview

The Focuspad is my custom macropad.

The design is inspired by Work Louder x Framer Collab , and the Lofree Flow — clean, minimal, and desk-setup friendly.

Originally the board was designed around MX-style switches, but today I updated the whole design so I can use Kailh Choc v2 low-profile switches instead. I want the Focuspad to match a future low-profile full-size keyboard project, so both projects share the same “thin” aesthetic.
Makropad_v1_2025-Dec-28_03-27-13PM-000_CustomizedView38785409704 (1)


Time breakdown (approx. 16–20 hours total)

Schematic (RP2040 + matrix + encoders) — ~2–3 h

  • Designed the matrix for 12 keys (a 4×4 grid with the corners empty for aesthetic reasons) + 2 rotary encoders with push buttons.
  • Used the Seeed Studio XIAO RP2040 as the main MCU.
  • This part went smoothly: mostly careful planning of rows/columns and checking wiring.

PCB & routing in KiCad — ~6–8 h

Most of the time went here.

  • Spent a lot of time dealing with library issues:
    • My KiCad libraries were set up incorrectly, so footprints and 3D models were missing or mismatched.
    • Because of that, I had to assign footprints and 3D models manually, and in some cases I had to do that multiple times after redesigns.
    • For a few parts I also searched online for compatible 3D models and imported them.
  • The Motherboard didn't have enough ports for a 4x4 matrix + 2 rotary enocders, so the left rotary encoder just works as a push button (wired in the 4x4 matrix) and the left one is just rotatable
  • Re-routed the PCB multiple times to keep the footprint compact and thin.
  • The USB‑C port is on the board edge. Right now it points in a less-than-ideal direction for cable management, but it’s an acceptable trade-off to keep the PCB small.

kicad_A9PGFMvIrA

3D design (case system) — ~3–4 h

  • I designed an intentionally modular case system with multiple interlocking parts (visible in an older render from about a week ago).
  • The base connects the PCB and the PCB cover.
  • The outer “shell” slides over a chamfer and has no structural role, so it can be swapped later (for example: different materials like aluminum or wood).
  • Everything sits on an angled base (similar to the Work Louder × Framer collaboration style) to create a more ergonomic viewing angle.
  • After today’s redesign, the functional part of the macropad is around 16 mm thin (without the base).

Fusion360_LV9G0HuPIC

Firmware / coding — ~2–3 h

  • Firmware work went relatively smoothly, with only a few setup issues.
  • Used QMK and iterated using VS Code.
  • I attempted to make it work nicely with an iPad (auto-switching OS behavior / different modifier mapping like Windows vs Command), but I couldn’t get that working yet.

Today’s redesign: MX → Choc v2 — ~1–2 h

Today I did a big update:

  • Swapped all MX switch footprints to Choc v2 low-profile footprints and rerouted all the cables .
  • Adjusted spacing so low-profile keycaps fit and align with the case design.
  • Updated the Case and imported Choc v2 switch models for KiCad so the renders match reality.

Makropad_v1_2026-Jan-02_10-18-21PM-000_CustomizedView11686331428


Fun facts & parts

  • Controller: Seeed Studio XIAO RP2040 (through-hole)
  • Switches: Kailh Choc v2 low profile (replacing the original MX browns)
  • Target thickness: ~17 mm total height including keycaps
  • Layout: 4×4 grid with missing corners + 2 rotary encoders (with push buttons) + a logo in the left corner

Problems & how I solved them

Library & footprint chaos

My KiCad setup was broken, so footprints and 3D models didn’t automatically match. I solved it the brute-force way:

  • Manually assigned each footprint.
  • Looked up and imported 3D models from the internet where needed.

This was slow, but it forced me to understand every part on the PCB.

USB‑C orientation vs. small footprint

I wanted the PCB as small as possible, which led to a compromise:

  • The USB‑C port faces a slightly awkward direction for cable routing.
  • For now I’m accepting it; I might do a V2 later with a rotated connector.

Next steps

  • Update the BOM to reflect the switch change from MX to Choc v2 (and add direct purchase links).
  • Clean up the KiCad libraries so footprints/3D models are easier to manage in future revisions.
  • Continue firmware work (encoder behavior + iPad modifier mapping).
  • Post updated renders and final case screenshots once the Choc v2 version is f

CAN CAN ⚡🚀 approved Focuspad ago

Nice hackpad

phyroxyn phyroxyn submitted Focuspad for ship review ago

zsharpminor zsharpminor ⚡ requested changes for Focuspad ago

This is probably the most creative hackpad design I've seen so far (good luck printing that case!!) Only comment I have is that unfortunately your 3d files must be in .step or .stp format.

phyroxyn phyroxyn submitted Focuspad for ship review ago

phyroxyn phyroxyn started Focuspad ago

1/3/2026 3:14 PM - Retroactive project overview

Focuspad — first journal entry (retroactive)

I started this Blueprint Hackpad-clone project a few weeks ago, but I didn’t realize I had to keep a journal. This entry is retroactive, based on my notes and memory. In total, I estimate I’ve spent around 16–20 hours on the Focuspad so far.


Project overview

The Focuspad is my custom macropad.

The design is inspired by Work Louder x Framer Collab , and the Lofree Flow — clean, minimal, and desk-setup friendly.

Originally the board was designed around MX-style switches, but today I updated the whole design so I can use Kailh Choc v2 low-profile switches instead. I want the Focuspad to match a future low-profile full-size keyboard project, so both projects share the same “thin” aesthetic.
Makropad_v1_2025-Dec-28_03-27-13PM-000_CustomizedView38785409704 (1)


Time breakdown (approx. 16–20 hours total)

Schematic (RP2040 + matrix + encoders) — ~2–3 h

  • Designed the matrix for 12 keys (a 4×4 grid with the corners empty for aesthetic reasons) + 2 rotary encoders with push buttons.
  • Used the Seeed Studio XIAO RP2040 as the main MCU.
  • This part went smoothly: mostly careful planning of rows/columns and checking wiring.

PCB & routing in KiCad — ~6–8 h

Most of the time went here.

  • Spent a lot of time dealing with library issues:
    • My KiCad libraries were set up incorrectly, so footprints and 3D models were missing or mismatched.
    • Because of that, I had to assign footprints and 3D models manually, and in some cases I had to do that multiple times after redesigns.
    • For a few parts I also searched online for compatible 3D models and imported them.
  • The Motherboard didn't have enough ports for a 4x4 matrix + 2 rotary enocders, so the left rotary encoder just works as a push button (wired in the 4x4 matrix) and the left one is just rotatable
  • Re-routed the PCB multiple times to keep the footprint compact and thin.
  • The USB‑C port is on the board edge. Right now it points in a less-than-ideal direction for cable management, but it’s an acceptable trade-off to keep the PCB small.

kicad_A9PGFMvIrA

3D design (case system) — ~3–4 h

  • I designed an intentionally modular case system with multiple interlocking parts (visible in an older render from about a week ago).
  • The base connects the PCB and the PCB cover.
  • The outer “shell” slides over a chamfer and has no structural role, so it can be swapped later (for example: different materials like aluminum or wood).
  • Everything sits on an angled base (similar to the Work Louder × Framer collaboration style) to create a more ergonomic viewing angle.
  • After today’s redesign, the functional part of the macropad is around 16 mm thin (without the base).

Fusion360_LV9G0HuPIC

Firmware / coding — ~2–3 h

  • Firmware work went relatively smoothly, with only a few setup issues.
  • Used QMK and iterated using VS Code.
  • I attempted to make it work nicely with an iPad (auto-switching OS behavior / different modifier mapping like Windows vs Command), but I couldn’t get that working yet.

Today’s redesign: MX → Choc v2 — ~1–2 h

Today I did a big update:

  • Swapped all MX switch footprints to Choc v2 low-profile footprints and rerouted all the cables .
  • Adjusted spacing so low-profile keycaps fit and align with the case design.
  • Updated the Case and imported Choc v2 switch models for KiCad so the renders match reality.

Makropad_v1_2026-Jan-02_10-18-21PM-000_CustomizedView11686331428


Fun facts & parts

  • Controller: Seeed Studio XIAO RP2040 (through-hole)
  • Switches: Kailh Choc v2 low profile (replacing the original MX browns)
  • Target thickness: ~17 mm total height including keycaps
  • Layout: 4×4 grid with missing corners + 2 rotary encoders (with push buttons) + a logo in the left corner

Problems & how I solved them

Library & footprint chaos

My KiCad setup was broken, so footprints and 3D models didn’t automatically match. I solved it the brute-force way:

  • Manually assigned each footprint.
  • Looked up and imported 3D models from the internet where needed.

This was slow, but it forced me to understand every part on the PCB.

USB‑C orientation vs. small footprint

I wanted the PCB as small as possible, which led to a compromise:

  • The USB‑C port faces a slightly awkward direction for cable routing.
  • For now I’m accepting it; I might do a V2 later with a rotated connector.

Next steps

  • Update the BOM to reflect the switch change from MX to Choc v2 (and add direct purchase links).
  • Clean up the KiCad libraries so footprints/3D models are easier to manage in future revisions.
  • Continue firmware work (encoder behavior + iPad modifier mapping).
  • Post updated renders and final case screenshots once the Choc v2 version is f

1/3/2026 3:26 PM - Just realizedI couldn't use low profile switches 😭

Makropad_v1_2026-Jan-03_02-43-52PM-000_CustomizedView12801590204

What happened

Got an email from HCB/Blueprint saying the standard parts are being shipped to me. That means my recent MX → Choc v2 redesign was all for nothing 😭.
(This was de redesigned PCB:
image

So now i need to switched back to the last stable MX version, thankfully I had saved everything on GitHub, so I can restore the original files quickly.

Next steps:

  • Find a good pcb serivce, because in germany jlc-pcb has high import fees
  • Buy the pcb and start 3d printing the parts (when my new hotend arrives)