

Smolpad
SmolPad is an open-source, custom 3x3 mechanical macropad powered by the Seeed Studio XIAO RP2040 microcontroller.
- Size
- 95.3 × 88.4 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 26
- Nets
- 23
- Pads
- 92
- Tracks, vias
- 219, 18
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 23 Sep 2026
- Updated
- 29 Oct 2026
Overview
Smolpad is an open-source printed circuit board by Momentum122, from the Momentum122/Hackpad repository on GitHub. It is a 2-layer board of 95.3 × 88.4 mm with 26 parts on 23 nets, routed with 219 tracks and 18 vias.
Its parts include 10 switches, 9 diodes and 2 ICs. It belongs with the lEDs and displays boards of this library.
README
README.mdSmolPad
SmolPad is an open-source, custom 3x3 mechanical macropad powered by the Seeed Studio XIAO RP2040 microcontroller. It features a 3x3 diode key matrix, an EC11 rotary encoder for volume control, and a 0.91" I2C OLED display for a plain text output (for now) , all housed in a custom 3D-printed case running KMK Firmware .

Features
3x3 Key Matrix: Direct-soldered MX mechanical switches with 1N4148 diodes .
EC11 Rotary Encoder: Smooth volume adjustment and press-to-mute functionality.
0.91" I2C OLED Display: 128x32 resolution driven by the SSD1306 display controller displaying status information.
Compact Case Design: Custom 2-piece case secured with M3 heat-set brass inserts.
Easy Customization: Powered by KMK / CircuitPython—edit shortcuts on the fly by modifying main.py like a USB drive file.

Keymap Row 0 i) Media play/pause ii) Brightness Increase iii) Brighness Decrease Row 1 i) Super/Windows key ( i know this one is weird but the one on my keyboard doesnt work so i will use this for the timebeing). ii) Audio Mute iii) Copy ( Ctrl + C) Row 2 i) Cut (ctrl + x) ii) Paste (ctrl + v) iii) undo (ctrl + z)
Rotary Encoder i) Clockwise Turn - Volume Up ii) Counter-Clockwise - Volume Down iii) Push Switch Press - Mute Toggle ( will be later used to switch layers)
OLED Display i) currently Displays only a single static text i.e. Smolpad active
All the Above can and will be most likely changed later on .

Project Structure
HackPad CAD Top.step Top.stl Bottom.step Bottom.stl Hack Club Knurled Knob.step PCB smolpad.kicad_pcb smolpad.kicad_pro smolpad.kicad_sch smolpad.step gerbers(final).zip firmwarefiles boot.py kb.py main.py lib kmk Imagaes Case Bottom.png Combined.png Top.png PCB 3d model.png Schematic.pdf BOM.csv README.md
NOTE :- PLEASE CHECK THE BOM.csv FOR THE MATERIALS
Assembly instructions
PCB Fabrication: Upload production/gerbers/gerbers.zip to a PCB manufacturer (such as JLCPCB) with standard 1.6mm thickness and default settings.
3D Printing: Print the enclosure parts (smolpad_case_top.step and smolpad_case_bottom.step) .
Component Soldering: Solder the 1N4148 diodes onto the back of the pcb , ensuring correct polarity . Solder the mechanical MX-style switches and the EC11 encoder Solder the Seeed Studio XIAO RP2040 microcontroller and the 0.91-inch OLED display Enclosure Assembly: Mount the assembled PCB into the 3D-printed case using M3 screws.
Firmware Flashing & Setup
The SmolPad runs on CircuitPython with KMK firmware using the Seeed Studio XIAO RP2040. Enter Bootloader Mode: Connect the XIAO RP2040 to your computer via USB and double-tap the reset button. A drive named RPI-RP2 will appear.
Install CircuitPython Runtime: Drag and drop the official CircuitPython UF2 bootloader runtime onto the RPI-RP2 drive. The board will reboot and mount a new drive named CIRCUITPY.
Upload Firmware Files: Copy your firmware script files (main.py, kb.py, and the kmk/ library folder) directly into the root directory of the CIRCUITPY drive.
Test: The board will automatically execute main.py and initialize your keymap, rotary encoder, and OLED display.
Acknowledgements :- i) Usage of Ai for understanding features of Kicad/Onshape , Usage of ai for guidance in few areas like firmware , Usage of ai for identifying errors and resolving them
ii) All resources are not owned by me (except case and Pcb however you are free to use them if you want to).
iii) Created with the guidance of https://hackpad.hackclub.com/guide , https://youtu.be/8WXpGTIbxlQ?si=IzrQN_IX_nW7LFwR .
iv) Built with support from the Hack Club grants and resoureces —massive thanks to them for funding the hardware and making this project a reality.
v) Built for Stardance hackclub
CONTACT INFO :- mandeepswami2010@gmail.com
Suggestions / Issues / Complaint(s) are accepted and appreciated for the betterment of the macropad.
Parts
26| Qty | Value | Footprint | References |
|---|---|---|---|
| 9 | 1N4148 | Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal | D1, D2, D3, D4, D5, D6, D7, D8, D9 |
| 9 | SW_Push | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW1, SW2, SW3, SW4, SW5, SW6, SW7, SW8, SW9 |
| 1 | ER_OLEDM0.91_1x-I2C | Display:ER_OLEDM0.91_1x-I2C | U2 |
| 1 | LOGO | Downloads:54 | G*** |
| 1 | MOUDLE-SEEEDUINO-XIAO | footprints:XIAO-Generic-Hybrid-14P-2.54-21X17.8MM | U1 |
| 1 | RotaryEncoder_Switch_MP | Rotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm | SW10 |
The 22 most common of 26 parts.
Questions
How big is the Smolpad PCB?
It measures 95.3 × 88.4 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Smolpad use?
26 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 Smolpad KiCad files?
From the Momentum122/Hackpad repository on GitHub, at the commit this page was made from: the board is PCB/smolpad.kicad_pcb and its schematic PCB/smolpad.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Smolpad design in my own project?
Its repository states no licence, so its author keeps all rights: ask Momentum122 before reusing the design.
Similar boards
- 2 layers57.3 × 19 mm

- 2 layers98 × 59.5 mm

MCP23017 PCB
hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!
26 parts915 - 2 layers142.9 × 98.5 mm

- 2 layers86.1 × 86.1 mm

- 2 layers103.8 × 50 mm

Galagino pcb set
harbaum/galagino
A Galaga, Pac-Man and Donkey Kong arcade emulator for the ESP32
26 parts558 - 2 layers20.3 × 34.8 mm

L0 ESP32
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.
26 parts546MIT - 2 layers40.6 × 50.8 mm

WALTsm
google/walt
A device for measuring latency of physical sensors and outputs on phones and computers
26 parts474Apache-2.0 - 2 layers158.5 × 75 mm
