YamPAD - Feature-packed open source macropad

A fully open-source, mechanical, hot-swappable, RGB backlit, QMK powered, OLED screen featuring numpad/macropad.

Similar projects worth following
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.

It features hot-swappable switches, RGB backlighting, QMK firmware support and an OLED screen.

The main goal of this project is to have a cheap, easy-to-build, feature-rich numpad which is completely open source.


Recently I switched to a keyboard that doesn't have the nav cluster, nor the numpad. I discovered that 75 keys are more than enough for my daily job BUT the numpad is the only thing I'm really missing. I tried to use layers and a smart positioning of the numbers but nothing can beat the numpad. My muscle memory is all for it.

Upon searching for a readily-available numpad I found out that none had all the features I wanted, and everyone costed too much. So here we are!


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.


  • Cheap to build
  • Easy to source components
  • Easy to build
  • Hot swappable keys using Kailh PCB sockets
  • Arduino Pro Micro powered
  • QMK compatible (WIP)
  • RGB backlighting support
  • OLED 0.91" screen support
  • Completely open-source
  • 3D-printable case (WIP)

Default layout

KiCAD project files

Zip Archive - 107.89 kB - 06/16/2019 at 14:00


YampadV5 v23.f3d

Fusion-360 case files

fusion - 735.80 kB - 06/02/2019 at 19:06



Pre-built firmware file

x-hex - 65.51 kB - 06/02/2019 at 14:52


Gerber files

Zip Archive - 213.31 kB - 05/18/2019 at 08:55




Adobe Portable Document Format - 75.64 kB - 04/30/2019 at 09:40


  • 1 × Arduino Pro Micro ATMega32U4 based microcontroller
  • 18 × Mechanical switches Cherry MX-style keyboard mechanical switches
  • 5 × M3 screws
  • 18 × SOD-123 1N4148 diodes
  • 9 × WS2812B RGB LEDs

View all 11 components

  • YamPAD project log 12

    Mattia Dal Ben5 days ago 0 comments

    First case prototype completed.

    So, today I finally cut my last piece for the case of the Yampad. I tried using expanded PVC for the case but didn't really like how it was looking so added the final layer to the MDF case.

    I think the final layer addresses a few of the design flaws I have mentioned in my previous logs but I think I'll do a new version of the case anyways.

    Here's some pics of the final product.

  • YamPAD project log 11

    Mattia Dal Ben06/09/2019 at 16:52 0 comments

    Design review

    I've started reviewing my case design decisions. I have a PVC sheet on the way to start machining it, I'm super excited about it.

    Design wise I had an idea this morning that covers a few flaws I discussed in my previous log.

    I've added a final layer for the sandwich case that covers the USB cable hole and wraps the screws a little. I think it's much better this way since it also covers the switches and the OLED screen.

    I already cut it on my CNC but, unfortunately, when I started sanding it broke. That was also my last piece of 3 mm MDF so I'll wait for the PVC to arrive to start building a new case.

  • YamPAD project log 10

    Mattia Dal Ben06/02/2019 at 19:02 0 comments

    First prototype completed!

    Finally I had enough time to assemble the first prototype...
    Here are the completed and painted pieces. I added the window in the bottom since I had the acrylic piece left over from the middle layer cut. I thought that it could be a nice addition to the final desing.

    And now some glamour shots.

    And with keycaps on...

    I think I'll design a new version of the case since I'm not entirely happy with how it turned out:

    - I forgot to add a hole to access the reset switch of the Arduino Pro Micro (it can be triggered via software though)

    - I don't like the finish of the paint

    - There's no solid mechanical connection between the PCB and the case

    - The assembly screws are not well hidden (I mean, they are not hidden at all...)

    - It was hard to mount the switches inside the case because I didn't take into account the paint

    All in all it looks nice but I want to make it look better. It will be an excuse to keep improving my CNC skills :D

  • YamPAD project log 9

    Mattia Dal Ben06/01/2019 at 18:54 0 comments

    Almost there...

    Today I CNC'd some more parts for the YamPAD. I had to fight a little with acrylic but it turned out good in the end.

    I started with the MDF parts. I choose MDF because I'm still a noob with my CNC and MDF is a forgiving material. It also turn out really good after painting.

    Here's some footage of my CNC in action:

    I then moved to the acrylic parts. It didn't turn out that good...

    The acrylic melted around the bit and wrought havoc on my piece. After two more failed attempts changing various parameters, I changed bit to a newer one. Success finally...

    So many failed attempts...

    At this point I started priming the MDF parts.

    And then some black paint... For MDF I always use solvent based paint, as it seems to bring the best results.

    Turned out super nice! Tomorrow I'll add a final layer of transparent finish and I can finally move to the final assembly.

  • YamPAD project log 8

    Mattia Dal Ben05/26/2019 at 11:54 2 comments

    Some case design...

    Finally, after a few iterations, I came up with a design I like. The main problem is the screw holes, I'm worried about the acrylic structural integrity after removing that much material from the corners. We'll see...

    Here's some renderings...

    Let's see how it turns out...

  • YamPAD project log 7

    Mattia Dal Ben05/19/2019 at 18:25 0 comments

    Some more pics and firmware....

    I finally got around to write some code. Here you can find it. In short it can be used as a standard numpad, pressing the key where you usually find the NumLock toggles the Navigation layer which enables the nav cluster.
    I also added a layer that controls the RGB backlight.

    The OLED screen display information about the layer status, the NumLock, ScrollLock and CapsLock status and RGB settings... But I want to add something more in the future.

    All of this obviously was made possibile by the awesome work of the QMK community.

    While I was at it I also took some more pics, enjoy...

  • YamPAD project log 6

    Mattia Dal Ben05/18/2019 at 08:46 0 comments

    It works!

    I finally tested the numpad.

    Unfortunately the Pro Micros I ordered didn't arrive in time for the weekend so I had to take extreme measures: I ripped it from another project.

    I added the reset button and some insulating tape for good measure.

    Added the Pro Micro.

    Added the OLED screen.

    Added the switches.
    Some glamorous shots.
    I'm getting repetitive, am I?
    RGB lighting test result: PASS.
    OLED screen test result: PASS.

    Oh yeah, it also types number BTW.

    It's time to write some proper code now...

  • YamPAD project log 5

    Mattia Dal Ben05/12/2019 at 17:20 0 comments

    First case attempt.

    Today I was in the mood (actually rained all day sooooo...) and I designed a case prototype for the YamPAD. Unfortunately it didn't turn out that good....

    I started by importing the Edge Cut layer of the PCB in Fusion by exporting it in .svg. Once I realized I was looking at a 5 feet long keyboard I switched to the .dxf format. Then I exported the switches and Pro Micro positions to make the holes for them.
    I'm still a noob with my CNC but I try to use it as much as I can. Unfortunately I forgot to film it while it was working... Next time I'll post some CNC action I promise!
    Turns out the switches don't fit, the screws don't fit, the Pro Micro didn't fit until I opened the top but hey, everything else fits like a glove :D

    I need to do some minor adjustment to the design and get the tolerances right.

    I'm also thinking about changing the width of the case... It looks too bulky and I don't think the proportions are right. We'll see...

  • YamPAD project log 4

    Mattia Dal Ben05/11/2019 at 09:47 0 comments

    Partial assembly.

    I finally had some time to go on with the PCB assembly. Turns out the most difficult part (caps) was a breeze, the WS2812B leds... not so much.

    Getting ready for the assembly.

    Let's start with the hard stuff... RGB leds.

    I used the usual SMD hand soldering technique: start by applying solder to a pad, then heat it up while adding the component, finally solder the rest. Turned out pretty good IMO.
    Assembled LEDs
    Now it's the caps turn.
    And diodes...

    Now it's the Kailh PCB sockets turn. I was worried I couldn't apply the same technique as before, since I never used them. Turns out they're quite easy to solder.

    Unfortunately my Arduino Pro Micro is not here yet (the one in the first pic have the header pins soldered in the wrong orientation and I don't trust much my desoldering skills) so I can't finish the build.

    I hope they'll arrive soon, I need to know if everything works!

  • YamPAD project log 3

    Mattia Dal Ben05/06/2019 at 19:52 0 comments

    They're already here!

    They turned out so nice. Now I only need to wait for the Pro Micro to arrive and I can assemble the board.

View all 12 project logs

  • 1
    YamPAD rev.2.0 assembly instructions

    The assembly instructions are available here.

View all instructions

Enjoy this project?



Ben Wishoshavich wrote 5 days ago point

Great looking numpad! Would it be possible to post the original kicad files? I'd love to modify the baord slightly and use it in a couple of my projects. Thanks!

  Are you sure? yes | no

Mattia Dal Ben wrote 4 days ago point

Added! ;)

  Are you sure? yes | no

fabian wrote 06/02/2019 at 19:14 point

Tell me how many cost this keyboard with 2 rotors and arduino as a firmware?

  Are you sure? yes | no

sunny wrote 05/19/2019 at 14:40 point

Thank you for your upload,I have ordered Pcbs from JLC。

  Are you sure? yes | no

Mattia Dal Ben wrote 05/19/2019 at 16:31 point

Awesome! :)

  Are you sure? yes | no

sunny wrote 05/23/2019 at 12:44 point

I have a problem with burning software. I have burned HEX files. But you have provided C files and H files... I don't know how to burn them.

  Are you sure? yes | no

Mattia Dal Ben wrote 05/23/2019 at 17:06 point

I didn't provide any HEX files. Are you sure you're looking at the right repository?

The software instructions are here:


- You should clone my QMK fork (

- Resolve QMK dependencies as instructed here

- Checkout the Yampad branch

- Use the command "make yampad:default:avrdude" for compiling and burning the firmware

This is for a Linux environment. 

EDIT: I updated my repository with a pre-built firmware file here:, hope this helps.

  Are you sure? yes | no

sunny wrote 05/25/2019 at 15:15 point

Thank you for your hex file,I am fight with msys2.

  Are you sure? yes | no

Mike Donaghy wrote 05/13/2019 at 19:13 point

Very cool, I'd love to build this. Will you post the board and/or gerbers for it? Thanks!

  Are you sure? yes | no

Mattia Dal Ben wrote 05/13/2019 at 19:24 point

Thanks! Of course. I will upload everything as soon as I make sure everything work correctly ;)

  Are you sure? yes | no

sunny wrote 05/14/2019 at 13:11 point

Looking forward to your release

  Are you sure? yes | no

Mattia Dal Ben wrote 05/18/2019 at 11:39 point

As promised I uploaded the Gerber files :)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates