Skip to the content
PCBKitNew board
2 layers100 × 95 mmMacropad, the printed circuit board in 3D

A macropad featuring a custom-built PCB, 3D-printed case, and programmed using CircuitPython.

Size
100 × 95 mm
Copper layers
2
Thickness
1.6 mm
Parts
36
Nets
38
Pads
143
Tracks, vias
139, 0
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
9 Sep 2026
Updated
9 Sep 2026

Overview

Macropad is an open-source printed circuit board by cdalaimo, from the cdalaimo/xiao repository on GitHub. It is a 2-layer board of 100 × 95 mm with 36 parts on 38 nets, routed with 139 tracks and 0 vias.

It is built around the 1N4148W. Its parts include 12 diodes, 4 resistors, 2 capacitors, 1 IC and 1 switch. It belongs with the keyboards and input boards and the RP2040 boards of this library.

Main components

1

README

README.md

XIAO V1 -- Macropad

A custom 3×4 macropad with a rotary encoder, built around an RP2040 (More specifically the Seeeduino XIAO RP2040). Includes full KiCad hardware design and PlatformIO prototyping firmware.

macropad

Overview

  • Layout: 3×4 key matrix (12 keys) + 1 rotary encoder (with push switch)
  • MCU: XIAO RP2040
  • Hardware: Custom PCB designed in KiCad, diode-per-switch matrix
  • Firmware: Tested prototype an Arduino framework via PlatformIO, flashed CircuitPython for full functionality

Status

This project was my first ever attempt at designing a PCB from scratch. After independently teaching myself some of the fundamentals of KiCAD and how to solder electronics, I already began designing a slightly more sophisticated prototype to further develop these skills. (A new repo featuring that project will be uploaded soon!).

Still prototyping a 3D printed case after a couple of iterations with fitment issues.

The firmware currently included in this repo contains the prototyping firmware. key matrix encoder and prints activity over Serial (115200 baud). This is intended to verify the board (solder joints, diode orientation, encoder wiring) before real key-mapping firmware is written.

Repository Structure

text
.
├── firmware/           PlatformIO project (Arduino framework)
│   ├── src/main.cpp    
│   └── platformio.ini 
├── hardware/           KiCad project
│   ├── macropad.kicad_pro / .kicad_sch / .kicad_pcb
│   ├── macropad.dsn    
│   └── gerbers/        
└── docs/               Additional documentation / images
│   └── prototype.png        

Hardware

Designed in KiCad. Key matrix uses one diode per switch (standard anti-ghosting matrix). GPIO Pin mapping:

FunctionGPIO
ROW17
ROW26
ROW329
COL126
COL20
COL328
COL427
ENC_A3
ENC_B4
ENC_SW1

Acknowledgments

These two libraries helped tremendously in the design process:

https://github.com/ebastler/marbastlib

https://github.com/zykrah/kicad-kle-placer

I'd also like to acknowledge these projects with helped inspire my own:

https://github.com/sb-ocr/ocreeb-12

https://github.com/bytesizedengineering/macropad/

Parts

36
QtyValueFootprintReferences
121N4148WDiode_SMD:D_SOD-123D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12
12MX_SW_solderPCM_marbastlib-mx:SW_MX_1uMX1, MX2, MX3, MX4, MX5, MX6, MX7, MX8, MX9, MX10, MX11, MX12
410kResistor_SMD:R_0805_2012MetricR1, R2, R3, R4
20.1uFCapacitor_SMD:C_0805_2012MetricC13, C14
1RotaryEncoder_SwitchRotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmSW1
1Seeeduino Xiao rp2040PCM_marbastlib-xp-promicroish:Xiao_rp2040_ACHU2

The 32 most common of 36 parts.

Questions

How big is the Macropad PCB?

It measures 100 × 95 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Macropad use?

36 parts, built around the 1N4148W. 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 Macropad KiCad files?

From the cdalaimo/xiao repository on GitHub, at the commit this page was made from: the board is hardware/macropad.kicad_pcb and its schematic hardware/macropad.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Macropad design in my own project?

Its repository states no licence, so its author keeps all rights: ask cdalaimo before reusing the design.

Similar boards

  • 4 layers99 × 53.3 mmPSLab, the printed circuit board in 3D

    PSLab

    fossasia/pslab-hardware

    PSLab Hardware Design and Schematics https://pslab.io

    199 parts1.7kApache-2.0
  • 2 layers208.8 × 396.9 mmFerris, the printed circuit board in 3D

    Ferris

    pierrechevalier83/ferris

    A low profile split keyboard designed to satisfy one single use case elegantly

    145 parts1.3k
  • 2 layers285.5 × 95 mmReviung46 ver1 1, the printed circuit board in 3D

    Reviung46 ver1 1

    gtips/reviung

    The REVIUNG41 is 41-key column staggered keyboard.

    119 parts517MIT
  • 4 layers95.6 × 73.6 mmMathpad, the printed circuit board in 3D

    Mathpad

    Summa-Cogni/Mathpad

    A mathematical keypad for students and professionals

    93 parts243
  • 2 layers141.5 × 83 mmRolio, the printed circuit board in 3D

    Rolio

    MickiusMousius/Rolio46Keyboard

    A split wireless keyboard based on the Corne and Sofle

    110 parts236MIT
  • 6 layers160 × 100 mmAdrmu6layer, the printed circuit board in 3D

    Adrmu6layer

    marcoreps/ADRmu

    ADR1000 10V standard

    240 parts149
  • 2 layers99.1 × 90.7 mmBgkeeb, the printed circuit board in 3D

    Bgkeeb

    sadekbaroudi/bgkeeb

    This is a reversible 100mm x 100mm pcb with support for mx or choc switches (no hotswap), per key led, rotary encoders, and exposes the SDA/SCL/GND/VCC lines in the form of the pimoroni trackball pins (meaning you can…

    108 parts108
  • 2 layers229.8 × 102.6 mmBw2, the printed circuit board in 3D

    Bw2

    hazels-garage/bad-wings

    Bad Wings

    107 parts107CC-BY-SA-4.0