Skip to the content
PCBKitNew board
2 layers94 × 65 mmHackroPadX PCBA, the printed circuit board in 3D

A 3 by 3 MacroPad featuring Seeeduino XIAO SAMD21 devboard, with DM-OLED096-636 screen and a Rotary Encoder.

Size
94 × 65 mm
Copper layers
2
Thickness
1.6 mm
Parts
21
Nets
22
Pads
92
Tracks, vias
180, 81
Pours
2
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
24 Mar 2026
Updated
26 Mar 2026

Overview

HackroPadX PCBA is an open-source printed circuit board by SunritHazra, from the SunritHazra/HackroPadX repository on GitHub. It is a 2-layer board of 94 × 65 mm with 21 parts on 22 nets, routed with 180 tracks and 81 vias.

Its parts include 10 switches, 9 diodes and 2 ICs. It belongs with the keyboards and input and microcontroller boards boards of this library.

README

README.md

HackroPadX

HackroPadX is my custom 3x3 mechanical macropad built around the Seeed Studio XIAO RP2040. It has 9 programmable mechanical keys in a clean grid, a rotary encoder with push button, and a 0.96 inch OLED screen that shows useful info.

Isn’t the name cool? I "smartly" mixed up "Marcro" and "Hack" to come up with a clever name, as I kind of struggling to find a name. And the "X" is just chilling there.

I made it because I wanted a compact, nice-looking macropad for quick shortcuts, media control, volume adjustment, and custom macros without taking up too much space. It works great for video editing, coding, streaming, or just controlling your music and system functions. Since it’s fully open source, you can change anything to fit your workflow. And also becuause everyone builds a Macro Pad for Blueprint.

HackroPadX Blueprint — Banner

Fusion Render & Snapshot

HackroPadX Fusion Teams Render

HackroPadX Fusion Workspace Snapshot


PCB and Schematic

HackroPadX Schematic

HackroPadX PCB


PCBA Renders & 3D Views

HackropadX PCBA Fusion Teams Render HackropadX PCBA Fusion Workspace Snapshot

HackroPadX PCBA 3D Model


Bill of Materials

Here’s everything needed to build one. I’ve included direct links for convinience:

Note that the BOM has components listed as "Kit" as I am expecting to receive a kit with those parts from Blueprint.


Assembly Instructions

Assembling the board is pretty straightforward. There are no screws, no fasteners, no magnets, only pure faith on gravity and friction. So, don't you use your HackPadX in space or in a hypothetical scenario where there is no friction. There are 4 circular extrusions projecting out down from the Case Top, and they line up with the holes in the PCB and the Case Bottom. I hope the images can help you better understand.

image image image

I guess the friction is enough to not cause any assembly disturbances. But why did I do like that? Because I didn't want to get into the mess of using screws for such a small project, and I am pretty sure this would be stationary. And I can absolutely not use glue.


Soldering

Building it is pretty straightforward. I recommend soldering in this order:

  • Solder the 9 diodes first — make sure the black band matches the marking on the PCB.
  • Solder the rotary encoder on the right side.
  • Solder the OLED module, carefully aligning the pins (VCC, GND, SCL, SDA).
  • Solder the XIAO RP2040 — do both the castellated edges and through-holes for a solid connection.
  • Finally, insert and solder the 9 mechanical switches. Push them all the way down so they sit flat.

After soldering, clean the board. If you’re using a 3D printed case, mount the PCB with standoffs, add rubber feet underneath, snap on the keycaps, and push the knob onto the encoder.

Note: All components (including the OLED and encoder) solder directly to the PCB — there are no loose wires, so no separate wiring diagram is needed. Everything is shown clearly in the schematic and 3D renders above. And of course every component is properly named on the PCB.


Firmware Flashing Instructions

HackroPadX runs on CircuitPython with the KMK framework. Here’s how to flash it:

Step 1: Install CircuitPython

  • Download the latest CircuitPython UF2 for Seeed XIAO RP2040 from circuitpython.org.
  • Hold the BOOT button while plugging in USB-C. The board will show up as RPI-RP2.
  • Copy the UF2 file to that drive. It will restart and appear as CIRCUITPY.

Step 2: Add KMK and OLED Library

  • Download KMK from github.com/KMKfw/kmk_firmware and copy the entire kmk folder to the CIRCUITPY drive.
  • Add the adafruit_displayio_ssd1306 library for the OLED.

Step 3: Upload the Code

  • Copy the HackroPadX Firmware.py file (included in this repo) to the root of the CIRCUITPY drive and rename it to code.py.
  • Safely eject the drive.

Once plugged in, it should work as a keyboard and the OLED will light up.


How to Use It

By default the keys do these functions:

  • Top row: Volume Up – Mute – Volume Down
  • Middle row: Previous Track – Play/Pause – Next Track
  • Bottom row: Copy – Paste – Cut

Rotary Encoder:

  • Turn left → Volume Down
  • Turn right → Volume Up
  • Press → Mute

The 0.96" OLED screen shows “HackroPadX” and the current layer.

You can customize everything easily — just edit the HackroPadX Firmware.py file (rename it to code.py first) on the CIRCUITPY drive to change key functions, add layers, modify the encoder, or update the OLED text.


Files included in this repo

  • Full KiCad project (.kicad_pro, .kicad_sch, .kicad_pcb) + Gerbers
  • Fusion 360 CAD model (.f3d) + STEP export
  • Complete BOM with purchase links
  • Full firmware (HackroPadX Firmware.py)
  • All the renders and photos you see above

And that's all. I hope this README.md will help at least someone build a macro pad.

Parts

21
QtyValueFootprintReferences
91N4148Diode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD1, D2, D3, D4, D5, D6, D7, D8, D9
9SW_PushButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW1, SW2, SW3, SW4, SW5, SW6, SW7, SW8, SW9
1DM-OLED096-636DM-OLED096-636:MODULE_DM-OLED096-636U2
1MOUDLE-SEEEDUINO-XIAOSEEEDUINO_XIAO:XIAO-Generic-Hybrid-14P-2.54-21X17.8MMU1
1RotaryEncoderRotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmSW10

Questions

How big is the HackroPadX PCBA PCB?

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

What parts does the HackroPadX PCBA 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 HackroPadX PCBA KiCad files?

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

Can I use the HackroPadX PCBA design in my own project?

Its repository states no licence, so its author keeps all rights: ask SunritHazra 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