
LevelShifter
gusmanb/logicanalyzer
24 channel, 100Msps logic analyzer hardware and software

A 3 by 3 MacroPad featuring Seeeduino XIAO SAMD21 devboard, with DM-OLED096-636 screen and a Rotary Encoder.
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.
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.
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.
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.
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.
Building it is pretty straightforward. I recommend soldering in this order:
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.
HackroPadX runs on CircuitPython with the KMK framework. Here’s how to flash it:
Step 1: Install CircuitPython
Step 2: Add KMK and OLED Library
kmk folder to the CIRCUITPY drive.adafruit_displayio_ssd1306 library for the OLED.Step 3: Upload the Code
HackroPadX Firmware.py file (included in this repo) to the root of the CIRCUITPY drive and rename it to code.py.Once plugged in, it should work as a keyboard and the OLED will light up.
By default the keys do these functions:
Rotary Encoder:
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
HackroPadX Firmware.py)And that's all. I hope this README.md will help at least someone build a macro pad.
| 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 | DM-OLED096-636 | DM-OLED096-636:MODULE_DM-OLED096-636 | U2 |
| 1 | MOUDLE-SEEEDUINO-XIAO | SEEEDUINO_XIAO:XIAO-Generic-Hybrid-14P-2.54-21X17.8MM | U1 |
| 1 | RotaryEncoder | Rotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm | SW10 |
It measures 94 × 65 mm and has 2 copper layers, 1.6 mm thick.
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.
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.
Its repository states no licence, so its author keeps all rights: ask SunritHazra before reusing the design.

gusmanb/logicanalyzer
24 channel, 100Msps logic analyzer hardware and software

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


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

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

Arrow-air/project-quiver
Project Quiver documentation, designs, and project artifacts.

