Skip to the content
PCBKitNew board
2 layers57 × 78 mmHackpad, the printed circuit board in 3D

A custom 9-key (3x3 matrix) macropad with a rotary encoder and a 1.3" OLED, built for the Hack Club Stardance Hackpad YSWS.

Size
57 × 78 mm
Copper layers
2
Thickness
1.6 mm
Parts
21
Nets
24
Pads
120
Tracks, vias
130, 0
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
7 Jun 2026
Updated
13 Aug 2026

Overview

Hackpad is an open-source printed circuit board by reimunyancat, from the reimunyancat/hackpad repository on GitHub. It is a 2-layer board of 57 × 78 mm with 21 parts on 24 nets, routed with 130 tracks and 0 vias.

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

README

readme.md

Hackpad — 9-Key Macropad

A custom 9-key (3x3 matrix) macropad with a rotary encoder and a 1.3" OLED, built for the Hack Club Stardance Hackpad YSWS.

  • MCU: Seeed XIAO RP2040
  • Layout: 3x3 switch matrix + 1 rotary encoder (EC11) + 1.3" 128x64 OLED (I2C)
  • Firmware: KMK (CircuitPython)
  • Case: Sandwich-style, fully 3D printed

Gallery

Assembled model

Assembled

Schematic

Schematic

PCB layout

PCB layout

Case (3D)

Case

Bill of Materials

ComponentQtyNotes
Seeed XIAO RP20401MCU (kit)
1N4148 diode9matrix anti-ghosting (kit)
MX-style switch9(kit)
Kailh MX hotswap socket9self-sourced
EC11 rotary encoder120mm D-shaft (kit)
1.3" 128x64 SH1106 OLED1I2C, self-sourced
2.54mm 4-pin female header1OLED mount, self-sourced
DSA keycap9(kit)
M3x16 screw6(kit)
M3x5x4 heatset insert6(kit)
Custom PCB1JLCPCB, 2-layer, ~57x79mm
3D printed case1top plate + bottom shell

Repository structure

text
.
├── README.md
├── CAD/
│   └── assembled-model.STEP
├── PCB/
│   ├── hackpad.kicad_pro
│   ├── hackpad.kicad_sch
│   └── hackpad.kicad_pcb
├── Firmware/
│   └── main.py
└── production/
    ├── gerbers.zip
    ├── Top.STEP
    ├── Bottom.STEP
    └── main.py

Firmware

KMK (CircuitPython). Flash CircuitPython to the XIAO, copy the kmk library folder onto the CIRCUITPY drive, then drop Firmware/main.py on it.

Pin mapping (taken from the schematic):

  • Columns: D0, D1, D2
  • Rows: D3, D6, D7
  • Encoder: A = D8, B = D9, SW = D10
  • OLED I2C: SDA = D4, SCL = D5
  • Diode orientation: COL2ROW

Specs

  • PCB: ~57x79mm, 2-layer (limit 100x100mm)
  • Case: fully 3D printed (limit 200x200x100mm)
  • Inputs: 9 keys + 1 encoder = 10 (limit 16)
  • Tolerances: 0.2mm on mating surfaces, M3x5x4 heatset inserts (4.7mm holes), M3x16 screws (3.4mm clearance)

Note: I need a soldering iron — please include the $18 soldering iron grant.

Parts

21
QtyValueFootprintReferences
9DDiode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD1, D2, D3, D4, D5, D6, D7, D8, D9
9SW_Pushkeyswitches:Kailh_socket_MXSW1, SW2, SW3, SW4, SW5, SW6, SW7, SW8, SW9
1Conn_01x04Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ1
1RotaryEncoder_SwitchRotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmSW10
1XIAO-RP2040-DIPSeeed_Studio_XIAO_Series:XIAO-RP2040-DIPU1

Questions

How big is the Hackpad PCB?

It measures 57 × 78 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Hackpad use?

21 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 Hackpad KiCad files?

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

Can I use the Hackpad design in my own project?

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

Similar boards

  • 2 layers28.3 × 39.8 mmLevelShifter, the printed circuit board in 3D

    LevelShifter

    gusmanb/logicanalyzer

    24 channel, 100Msps logic analyzer hardware and software

    21 parts5.1kGPL-3.0
  • 2 layers171.2 × 72.9 mmAmiga gfxcard before pour, the printed circuit board in 3D

    Amiga gfxcard before pour

    mntmn/amiga2000-gfxcard

    MNT VA2000, an Open Source Amiga 2/3/4000 Graphics Card (Zorro II/III), written in Verilog

    21 parts1k
  • 2 layers93.9 × 46 mmRectifier, the printed circuit board in 3D

    Rectifier

    rene-dev/stmbl

    AC Servo Driver for STM32F4

    21 parts990GPL-3.0
  • 2 layers45.5 × 42.9 mmEsphome han reader, the printed circuit board in 3D

    Esphome han reader

    hackclub/OnBoard

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

    21 parts915
  • 2 layers31.8 × 14.5 mmEsp prog, the printed circuit board in 3D

    Esp prog

    drandyhaas/KiCadRoutingTools

    A set of Python/Rust tools to aid routing in KiCad

    21 parts744MIT
  • 2 layers23.5 × 15.8 mmQuiverAttachPCB, the printed circuit board in 3D

    QuiverAttachPCB

    Arrow-air/project-quiver

    Project Quiver documentation, designs, and project artifacts.

    21 parts617CERN-OHL-S-2.0
  • 2 layers69.9 × 41.3 mmHeaterMeterLCD, the printed circuit board in 3D

    HeaterMeterLCD

    CapnBry/HeaterMeter

    HeaterMeter and LinkMeter Arduino BBQ Controller

    21 parts557MIT
  • 2 layers161.3 × 111.8 mmDoj, the printed circuit board in 3D

    Doj

    kelu124/echomods

    Open source ultrasound processing modules and building blocks

    21 parts463