Skip to the content
PCBKitNew board
2 layersMacro Pad, the printed circuit board in 3D

This is for my hack club project for the macro pad which will help me with my everyday tasks

Copper layers
2
Thickness
1.6 mm
Parts
20
Nets
23
Pads
83
Tracks, vias
164, 0
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
25 Feb 2026
Updated
25 Aug 2026

Overview

Macro Pad is an open-source printed circuit board by Mahinpatelin, from the Mahinpatelin/Macro repository on GitHub, published under the MIT licence. It is a 2-layer board with 20 parts on 23 nets, routed with 164 tracks and 0 vias.

Its parts include 9 diodes, 9 switches, 1 IC and 1 connector. It belongs with the keyboards and input boards and the RP2040 boards of this library.

README

README.md

Macro — Custom RP2040 Macropad

An end-to-end mechatronics build combining PCB design, embedded firmware, human-machine-interface design, and a 3D-printed enclosure. The device uses eight mechanical keys, an EC11 rotary encoder with push switch, an OLED header, and a Seeed Studio XIAO RP2040.

Status: design package complete; fabrication outputs are included. Hardware behavior must be verified on the physical assembly before the design is treated as production-ready.

System architecture

Engineering highlights

  • Designed a custom 2 × 5 electrical key matrix in KiCad with one intentionally unpopulated matrix position.
  • Added per-switch diodes to prevent ghosting during multi-key input.
  • Integrated an RP2040 microcontroller, incremental encoder, encoder push switch, and I²C OLED connector.
  • Implemented QMK firmware for key scanning, volume control, mute, and OLED status.
  • Packaged Gerber fabrication files and an STL enclosure for reproducible manufacturing.
  • Added an automated design audit that cross-checks PCB population against the QMK layout.

Repository map

PathPurpose
PCB/Editable KiCad schematic and PCB sources
CAD/case.stlPrintable enclosure mesh
Production/gerbers.zipPCB manufacturing outputs
macro_firmware/QMK keyboard definition and keymap
docs/BOM.csvBill of materials
docs/DESIGN.mdRequirements, architecture, and engineering decisions
docs/BUILD_GUIDE.mdFabrication, assembly, flashing, and bring-up
tools/design_audit.pyPCB/firmware consistency checks

Quick validation

bash
python3 tools/design_audit.py

The audit checks the eight Cherry MX footprints, encoder switch, nine diodes, matrix dimensions, and nine populated QMK positions. It does not replace electrical-rule checking, design-rule checking, or physical bring-up.

Firmware build

  1. Install the QMK CLI.
  2. Copy macro_firmware into a keyboard folder in a QMK checkout.
  3. Compile the default keymap for the RP2040 target.
  4. Enter the XIAO RP2040 bootloader and copy the generated UF2 file to the board.

Exact commands depend on the folder name chosen inside the QMK tree. See the build guide before connecting hardware.

Design correction documented in this version

The PCB contains eight Cherry MX switches plus the encoder push switch: nine physical buttons total. The original firmware layout declared all ten positions of the 2 × 5 matrix and assigned a key to the unpopulated position. This version models only the nine populated positions while retaining the 2 × 5 electrical matrix.

Skills demonstrated

PCB design · embedded C · QMK · RP2040 · matrix scanning · design for manufacture · CAD-to-print workflow · engineering validation

Safety and limitations

  • Confirm polarity, continuity, and supply rails with a multimeter before inserting the microcontroller.
  • Verify the OLED module voltage and pin order; common modules do not all share the same header order.
  • Gerbers should be re-generated after any PCB source change.
  • The included STL should be checked against the chosen printer, switch plate, fasteners, and tolerances.

License

Original firmware, documentation, and project-specific design files are released under the MIT License. Third-party footprints, libraries, and tools retain their respective licenses.

Parts

20
QtyValueFootprintReferences
9DDiode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD1, D2, D3, D4, D5, D6, D7, D8, D9
8SW_Push_45degButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW2, SW3, SW4, SW5, SW6, SW7, SW8, SW9
1OLED_DISPLAYConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ1
1RotaryEncoder_SwitchRotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmSW1
1Seeed Studio XIAO RP2040footprints:XIAO-Generic-Hybrid-14P-2.54-21X17.8MMU1

Questions

What parts does the Macro Pad use?

20 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Macro Pad KiCad files?

From the Mahinpatelin/Macro repository on GitHub, at the commit this page was made from: the board is PCB/Macro Pad.kicad_pcb and its schematic PCB/Macro Pad.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Macro Pad design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers66.9 × 74.5 mmDeskHop Rev1, the printed circuit board in 3D

    DeskHop Rev1

    hrvach/deskhop

    Fast Desktop Switching Device

    20 parts7.9kGPL-3.0
  • 2 layers86.4 × 64.8 mmSlot machine, the printed circuit board in 3D

    Slot machine

    google/google-ctf

    Google CTF

    20 parts5.1kApache-2.0
  • 2 layers36.2 × 26.8 mmEsp32 minimal, the printed circuit board in 3D

    Esp32 minimal

    atopile/atopile

    Design circuit boards with code! ✨ Get software-like design reuse 🚀, validation, version control and collaboration in hardware; starting with electronics ⚡️

    20 parts4kMIT
  • 2 layers108.1 × 393.8 mmSweep compact ble, the printed circuit board in 3D

    Sweep compact ble

    davidphilipbarr/Sweep

    Sweep - a small promicro based keyboard inspired by the Ferris.

    20 parts2.1k
  • 2 layers26 × 15.9 mmTPS54340 Buck Regulator, the printed circuit board in 3D

    TPS54340 Buck Regulator

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    20 parts1.2k
  • 2 layers67.6 × 30.5 mmRgb to hdmi, the printed circuit board in 3D

    Rgb to hdmi

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    20 parts1kGPL-3.0
  • 2 layers44.3 × 28.7 mmLin bus adapter esp32, the printed circuit board in 3D

    Lin bus adapter esp32

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    20 parts915
  • 2 layers89.5 × 61.6 mmFreeDeck TH 2020-02, the printed circuit board in 3D

    FreeDeck TH 2020-02

    FreeYourStream/freedeck-hardware

    all the stuff you need to build your own FreeDeck

    20 parts772