Skip to the content
PCBKitNew board
2 layers100 × 100 mmHackPad, the printed circuit board in 3D

Feature-packed macro board with a 0.91" OLED, two rotary encoders, and hardware anti-ghosting. 14-pin connector for expansion. KiCad design files and gerbers included.

Size
100 × 100 mm
Copper layers
2
Thickness
1.6 mm
Parts
42
Nets
50
Pads
183
Tracks, vias
305, 17
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
21 May 2026
Updated
12 Jun 2026

Overview

HackPad is an open-source printed circuit board by yahyaGoblin, from the yahyaGoblin/HackPad-v2 repository on GitHub, published under the MIT licence. It is a 2-layer board of 100 × 100 mm with 42 parts on 50 nets, routed with 305 tracks and 17 vias.

Its parts include 16 diodes, 16 switches, 2 ICs, 1 capacitor and 1 connector.

README

README.md

16-Key Keyboard Macro Board

The natural successor to Project 1: same 16-key staggered matrix, but now with an IO expander for cleaner pin management, per-key diodes to eliminate ghosting, and a 0.91" OLED display over I2C showing layer info or animations. The key layout is generated via a Python script running in KiCad's scripting console, placing all 16 keys in a proper staggered grid in seconds.

The original Hackpad felt unfinished — no diodes meant ghosting was possible, no screen meant wasted potential, and manually placing keys once was enough to know a script needed to do it next time. This project was about fixing every corner that got cut the first time around.

Schematic Preview

image

PCB Preview

image

3D Model

image image

Features

  • 16 mechanical key switches
  • 0.91" OLED display, 128×32 (I2C, SSD1306)
  • 2 rotary encoders with push-click
  • 1N4148 diodes on every switch for full anti-ghosting / n-key rollover
  • 14-pin connector for external expansion or chaining

Bill of Materials

RefComponentPartQtyUnit Price (AUD)SupplierNotes
C1Decoupling Capacitor100nF, C_0805_2012Metric1~$0.10LCSC C49678Hand solder pad
D1–D16Diodes1N4148, SOD-12316~$0.03 eaLCSC C2128One per key; buy a strip of 20
ENC1, ENC2Rotary EncodersEC11 Encoder with Switch – Half Shaft 15mm2$4.00KEEBD5-pin THT, push-click
—Encoder KnobsAluminum Alloy Encoder Knob2$4.50KEEBDMatch shaft type (Half D or Plum)
H1–H4Mounting HolesM3 brass standoff + screw4~$0.20 eaGenericM3×5mm standoffs
J1Connector1×04 2.54mm pin header1~$0.20Generic
SW1–SW16SwitchesGateron Blue, PCB Mount 5-pin16$4.00 / 10pkKEEBDClicky, 50g, 2mm pre-travel; order 2 packs
U1MicrocontrollerSeeed XIAO RP20401$12.00KEEBDDual-core RP2040, 264KB SRAM, 2MB Flash, USB-C
U2IO ExpanderMCP23017-E/SP, DIP-281~$3.50LCSC C128374I2C, 16 GPIO
DISP1OLED Display0.91″ OLED Module 128×321$6.00KEEBDSSD1306 driver, 3.3–5V, I2C
—KeycapsMX-compatible, 1u16variesGenericDSA or XDA profile recommended
—PCBCustom (this repo)1~$20JLCPCB / PCBWayMust fit within 100×100mm; 5-pack min order
—USB CableUSB-C1variesGenericFor flashing and power

Estimated build cost (KEEBD sourced items): ~AUD $35.00
Estimated total (all parts, excl. keycaps & shipping): ~AUD $69.00
A machine-readable BOM.csv is included in the root of this repo.


Fabrication

Gerber files are in the /gerbers folder, ready to send to JLCPCB, PCBWay, or your preferred fab.

Firmware

Compatible with KMK (CircuitPython) or QMK. OLED support via SSD1306 is built into both frameworks. For KMK, the busio I2C interface maps directly to the XIAO RP2040's SDA/SCL pins.

License

Open source hardware — feel free to modify and build your own.

Parts

42
QtyValueFootprintReferences
16D_SmallDiode_SMD:D_SOD-123D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14, D15, D16
16SW_PushButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW1, SW2, SW3, SW4, SW5, SW6, SW7, SW8, SW9, SW10, SW11, SW12, SW13, SW14, SW15, SW16
4MountingHoleMountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
2RotaryEncoder_SwitchRotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm_MountingHolesENC1, ENC2
1100 nFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1
1Conn_01x04Connector:FanPinHeader_1x04_P2.54mm_VerticalJ1
1MCP23017x-x-SPPackage_DIP:DIP-28_W7.62mmU2
1MOUDLE-SEEEDUINO-XIAOXiao:XIAO-Generic-Hybrid-14P-2.54-21X17.8MMU1

Questions

How big is the HackPad PCB?

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

What parts does the HackPad use?

42 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 yahyaGoblin/HackPad-v2 repository on GitHub, at the commit this page was made from: the board is HackPad/HackPad.kicad_pcb and its schematic HackPad/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 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 layers30 × 50 mmModuleV400, the printed circuit board in 3D

    ModuleV400

    stuartpittaway/diyBMSv4

    Version 4 of the diyBMS

    42 parts1.1k
  • 2 layers139.7 × 64.8 mmSprig console, the printed circuit board in 3D

    Sprig console

    hackclub/sprig

    🍃 Learn to code by making games in a JavaScript web-based game editor.

    42 parts1.1kMIT
  • 2 layers90.5 × 50 mmMain control board, the printed circuit board in 3D

    Main control board

    jamro/tiny-engineer

    A small desktop robot that brings an AI coding assistant to life, physically acting out when it reads files, thinks, writes code, and finishes work.

    42 parts1.1k
  • 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

    42 parts1kGPL-3.0
  • 2 layers190 × 80 mmPcb shield, the printed circuit board in 3D

    Pcb shield

    hackclub/OnBoard

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

    42 parts915
  • 2 layers98 × 80 mmMai io, the printed circuit board in 3D

    Mai io

    whowechina/mai_pico

    Pico controller for Maimai

    42 parts475
  • 2 layers50.8 × 90.4 mmOBOGS PANEL, the printed circuit board in 3D

    OBOGS PANEL

    jrsteensen/OpenHornet

    OpenHornet 1:1 F/A-18C Simulator Repository

    42 parts431