Skip to the content
PCBKitNew board
2 layers94.5 × 94 mmSlackpad, the printed circuit board in 3D

A programmable pad that includes 12 keys used for keyboard shortcuts in apps like Slack and OBS.

Size
94.5 × 94 mm
Copper layers
2
Thickness
1.6 mm
Parts
31
Nets
26
Pads
109
Tracks, vias
179, 0
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
8 Aug 2026
Updated
13 Aug 2026

Overview

Slackpad is an open-source printed circuit board by faded-debug, from the faded-debug/Slackpad repository on GitHub. It is a 2-layer board of 94.5 × 94 mm with 31 parts on 26 nets, routed with 179 tracks and 0 vias.

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

README

README.md

Slackpad

A programmable pad that includes 12 keys used for keyboard shortcuts in apps like Slack and OBS.

Specifications

MicrocontrollerSeeed XIAO RP2040
Keys12 (4x3 switch matrix)
Rotary encoder1x EC11 with push button
SwitchesCherry MX compatible, 1u keycaps
Diodes12x 1N4148 (DO-35, through-hole)
PCB94.5 x 94.0 mm, 2 layers
Mounting4x M3 screws
Case3D printed, tray with a top plate, 99.5 x 99.0 x 14.5 mm
FirmwareKMK (CircuitPython)

Pinout

SignalXIAO pin
COL1D3
COL2D4
COL3D5
COL4D6
ROW1D7
ROW2D8
ROW3D9
Encoder AD0
Encoder BD1
Encoder switchD2

Diode direction is COL2ROW — current flows from the column, through the switch and its diode, into the row.

Note: on the PCB the physical columns run right to left, so COL1 is the rightmost column.

Case

The case is a tray with a lid. The PCB drops into the tray and is surrounded by walls on all four sides; the top plate closes it from above and carries the switches.

Outer dimensions99.5 x 99.0 x 14.5 mm
Wall thickness2 mm
Clearance around the PCB0.5 mm per side
Space under the PCB3 mm, for the through-hole leads
Space between PCB and top plate3.5 mm, the Cherry MX plate mount standard
Top plate1.5 mm, 14 x 14 mm switch cutouts on a 19.05 mm grid

The PCB rests on a 3.5 mm wide ledge that runs around the inside of the tray, and is held by 4x M3 screws that come in from underneath.

Three openings:

  • USB-C — 13 mm wide cutout in the wall next to the XIAO. The connector overhangs the edge of the PCB by 1.2 mm, so the cutout goes through the full thickness of the wall.
  • Rotary encoder — 13.5 x 12.5 mm cutout in the top plate. The EC11 body is 12 x 11.6 mm and taller than the gap under the plate, so the whole body has to pass through it; a round hole would have to be 16.7 mm across to clear the same body, which is why this one is rectangular. The knob covers it.
  • XIAO — window in the top plate, which keeps the BOOT button reachable without opening the case.

Images

Schematic

Schematic

PCB

PCB

Case

From the top, with the top plate in place. The switch cutouts, the encoder cutout and the window over the XIAO all look through onto the PCB, which sits inside the tray:

Case from the top

The whole thing at an angle — the tray, the wall around the PCB and the USB cutout in it:

Case

Bill of materials

PartQtyNotes
Seeed XIAO RP20401main microcontroller
Cherry MX compatible switch12plate mount
1u keycap12
1N4148 diode12DO-35, through-hole
EC11 rotary encoder1with push button
Encoder knob1
M3 screw4
Custom PCB194.5 x 94.0 mm, 2 layers
3D printed top plate11.5 mm
3D printed tray18 mm floor with a 3 mm recess, 2 mm wall around the PCB

Firmware

The firmware is written in KMK, which runs on CircuitPython.

To flash it:

  1. Put the XIAO RP2040 into bootloader mode (hold BOOT while plugging it in).
  2. Drag the CircuitPython .uf2 onto the RPI-RP2 drive that appears.
  3. Copy the kmk folder from the KMK repository onto the CIRCUITPY drive.
  4. Copy Firmware/main.py onto the CIRCUITPY drive.

Editing the keymap only means editing main.py and saving it — no compiling.

Repository layout

FolderContents
CAD/complete case model in STEP format, including the PCB
PCB/KiCad project: schematic, board and footprint library
Firmware/KMK firmware source
Production/everything needed to actually make one: STLs, firmware, gerbers
images/screenshots used in this README

Production files

Production/ holds the files you send to a fab house or a printer:

FileWhat it is
gerbers.zip2 copper layers, both silkscreens, both solder masks, edge cuts, and separate PTH/NPTH Excellon drill files
Bottom plate.stlthe tray, 99.5 x 99.0 x 13 mm
Top plate.stlthe top plate
firmware/CircuitPython .uf2 for the XIAO RP2040, plus the kmk library and main.py that go onto the CIRCUITPY drive

KMK runs on CircuitPython, so there is no binary to compile — the .uf2 is the runtime and the two Python files are the keyboard. Together they are the flashable firmware.

Parts

31
QtyValueFootprintReferences
12DDiode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12
12SW_PushButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW2, SW3, SW4, SW5, SW6, SW7, SW8, SW9, SW10, SW11, SW12, SW13
1LOGOfootprints:flaga3G***
1MOUDLE-SEEEDUINO-XIAOfootprints:XIAO-Generic-Hybrid-14P-2.54-21X17.8MMU1
1RotaryEncoder_SwitchRotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmSW1

The 27 most common of 31 parts.

Questions

How big is the Slackpad PCB?

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

What parts does the Slackpad use?

31 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 Slackpad KiCad files?

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

Can I use the Slackpad design in my own project?

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

Similar boards

  • 2 layers44.5 × 46.9 mmOSO SWAT B1-jig, the printed circuit board in 3D

    OSO SWAT B1-jig

    joeycastillo/Sensor-Watch

    A board replacement for the classic Casio F-91W wristwatch

    31 parts2.1k
  • 2 layers65 × 30 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

    31 parts1kGPL-3.0
  • 2 layers191 × 98.5 mmMacroKeypad, the printed circuit board in 3D

    MacroKeypad

    hackclub/OnBoard

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

    31 parts915
  • 2 layers39 × 45.2 mmCH32V003F4P6-R0-1v1, the printed circuit board in 3D

    CH32V003F4P6-R0-1v1

    openwch/ch32v003

    CH32V003 is an ultra-cheap RISC-V MCU with 2KB SRAM, 16KB flash, and up to 18 GPIOs that sells for under $0.10

    31 parts599
  • 2 layers26.7 × 27.9 mmBreakout board, the printed circuit board in 3D

    Breakout board

    Luos-io/luos_engine

    Open-source and real-time orchestrator for cyber-physical-systems, to easily design, test and deploy embedded applications and digital twins.

    31 parts546MIT
  • 2 layers100 × 50 mmPixelix, the printed circuit board in 3D

    Pixelix

    BlueAndi/Pixelix

    Full RGB LED matrix, based on an ESP32 and WS2812B LEDs or emulated LEDs on TFT.

    31 parts447MIT
  • 2 layers77.2 × 69.8 mmCubesatsim solar, the printed circuit board in 3D

    Cubesatsim solar

    alanbjohnston/CubeSatSim

    CubeSatSim, the AMSAT CubeSat Simulator

    31 parts419GPL-3.0
  • 2 layers103 × 55 mmTd neck-294, the printed circuit board in 3D

    Td neck-294

    tdaede/td-crt

    tubes

    31 parts373