The Yampad project repository
The Yampad project is an open-source, QMK (Quantum Mechanical Keyboard Firmware) powered, hot-swappable, RGB-backlighted, OLED featured, mechanical numpad. This repository will be used to share information about the project and instruction on how to use and assemble the Yampad.
Designer's bio: Mattia Dal Ben (aka u/TiaMaT102) obtained a master's degree in Electrical Engineering with a specialization in Computer Science at the University of Udine. Currently works as a Software Engineer in R&D department for a big IoT and Embedded Computers company.
Table of contents
Rationale
The Yampad is a Macropad/Numpad which uses Cherry MX style mechanical switches laid out in the usual numeric pad layout. The only difference comes from the bottom row, which uses a 4 keys configuration, thus enabling the use of the macropad as a nav cluster.
The name comes from the acronym: Yet Another Mechanical numPAD, referring to the disruptive and innovative nature of the project.
The main goal of this project is to have a cheap, easy-to-build, feature-rich numpad which is completely open source.
Features:
- Cheap to build: the PCB can be manufactured for less than 1$ per piece.
- Easy to source components.
- Easy to build.
- Hot swappable keys using Kailh PCB sockets.
- Arduino Pro Micro powered.
- QMK compatible.
- RGB backlighting support (optional).
- OLED 0.91" screen (optional).
- Completely open-source.
Useful links
Default Layout
Bill of materials
Qty | Item | Notes |
---|---|---|
1 | Arduino Pro Micro (ATmega32u4) | a.k.a. SparkFun Pro Micro |
18 | Cherry MX compatible swtiches | |
18 | SOD-123 1N4148/1N4148W diodes | |
18 | Kailh PCB sockets CPG151101S11 | |
9 | WS2812B RGB LEDs | |
9 | SMD 0805 100nF capacitors | |
1 | I2C 0.91" 128*32 OLED Display Module | The ones using SSD1306 driver IC over I2C |
1 | 6mm*6mm button switch | |
1 | YamPAD PCB | Order from PCBWay |
5 | M3 screws |
Assembly guide
There's no wrong order for the YamPAD assembly with the exception of the Arduino/OLED/ResetButton. Here I will suggest an order because I found more comfortable to solder the components this way.
- Start with soldering the WS2812 LEDs. Start by applying solder to a pad, then heat it up while adding the component, finally solder the remaining pads.
- Now add the 0805 100nF caps. Use the same technique as before.
- Add the 1N4148 diodes.
- Add the CPG151101S11 Kailh PCB sockets.
- Add the reset 6mm button switch.
- Add some electrical tape just to be sure.
- Add the Arduino Pro Micro bottom side up.
- Add the OLED screen
- Move to the firmware section and you should be set!
Assembly details
Step 1: WS2812 assembly
The LEDs have a direction, this is indicated by a small cut out corner showing a triangle on the LED itself that must align with a corner indicated on the PCB as a visible corner angle. Top left on images below.
Step 2: Capacitors assembly
Step 3: Diodes assembly
The diodes have a direction, the side indicated by the line on the diode must align to the closed side of the shape on the PCB. Left on the three images below.
Step 4: Kailh PCB sockets assembly
Step 5: Reset switch
Step 6: Electrical tape
Step 7: Arduino assembly
Firmware
The firmware is available through QMK firmware repository. Make example for this keyboard (after setting up your build environment):
make yampad:default
Example of flashing this keyboard:
make yampad:default:flash
See the build environment setup and the make instructions for more information. Brand new to QMK? Start with our Complete Newbs Guide.
Pre-built
I also added a pre-built .HEX file in the 'firmware/' folder here to test the electronics.
Via Support
I also added a porting to via .HEX file in the 'firmware/via_support' folder here to load use .json file in via apps.
Stacked Acrylic Case
Acrylic case image gallery here.
Donations
If you've read this far and found something useful, please consider donating to help me maintain and further develop this project.