

Macro Pad
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.mdMacro — 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.
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
| Path | Purpose |
|---|---|
PCB/ | Editable KiCad schematic and PCB sources |
CAD/case.stl | Printable enclosure mesh |
Production/gerbers.zip | PCB manufacturing outputs |
macro_firmware/ | QMK keyboard definition and keymap |
docs/BOM.csv | Bill of materials |
docs/DESIGN.md | Requirements, architecture, and engineering decisions |
docs/BUILD_GUIDE.md | Fabrication, assembly, flashing, and bring-up |
tools/design_audit.py | PCB/firmware consistency checks |
Quick validation
python3 tools/design_audit.pyThe 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
- Install the QMK CLI.
- Copy
macro_firmwareinto a keyboard folder in a QMK checkout. - Compile the default keymap for the RP2040 target.
- 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| Qty | Value | Footprint | References |
|---|---|---|---|
| 9 | D | Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal | D1, D2, D3, D4, D5, D6, D7, D8, D9 |
| 8 | SW_Push_45deg | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW2, SW3, SW4, SW5, SW6, SW7, SW8, SW9 |
| 1 | OLED_DISPLAY | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J1 |
| 1 | RotaryEncoder_Switch | Rotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm | SW1 |
| 1 | Seeed Studio XIAO RP2040 | footprints:XIAO-Generic-Hybrid-14P-2.54-21X17.8MM | U1 |
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 mm

- 2 layers86.4 × 64.8 mm

- 2 layers36.2 × 26.8 mm

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 mm

Sweep compact ble
davidphilipbarr/Sweep
Sweep - a small promicro based keyboard inspired by the Ferris.
20 parts2.1k - 2 layers26 × 15.9 mm

TPS54340 Buck Regulator
rusefi/rusefi
rusefi - GPL internal combustion engine control unit
20 parts1.2k - 2 layers67.6 × 30.5 mm

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 mm

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 mm

FreeDeck TH 2020-02
FreeYourStream/freedeck-hardware
all the stuff you need to build your own FreeDeck
20 parts772