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

YampadV6 v29.f3d

Fusion 360 wood and aluminium case files

fusion - 731.32 kB - 07/14/2019 at 19:01


KiCAD project files

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


YampadV5 v23.f3d

Fusion 360 MDF and acrylic 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


View all 6 files

  • 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 18

    Mattia Dal Ben07/14/2019 at 19:13 1 comment

    Almost there...

    Today I finally cut the wooden case. Unfortunately I didn't take any pic during the cut. I used some fir wood because it's the cheapest and the only I could find nearby. It's super soft which is good for machining but not so good for the finishing. More on that later.

    Here it is just out of the CNC. The cut went super smooth. All the parts fit toghether nicely. As you might notice I got rid of the fillet around the upper edge because it was too feminine and real men want straight edges for their macropads... (Actually I couldn't figure out how to machine them in Fusion 360, if you know how and have some tips please help me!)

    I added some threaded inserts inside to have something to grip into. They work great!

    Everything fits so nicely!

    Some nice shots to have a better feeling of how it turned out.

    Now I only need to find a way to give a nice finish to the wood and find the right length of M2 screws to seal it all toghether. Guess I'll need to wait till next week...

  • YamPAD project log 17

    Mattia Dal Ben07/07/2019 at 17:39 0 comments

    Success at last...

    Everything went smooth. I knew the CNC was capable of cutting aluminium, it was only a matter of debris. All dimensions seems to be ok.

     Now I can finally move on with the rest of the case... 

  • YamPAD project log 16

    Mattia Dal Ben07/07/2019 at 10:22 0 comments

    Another failure...

    This morning I changed slightly the cutting parameters of the final cut hoping that this will help. I also gave up on using WD-40 hoping that this will avoid jamming the wheels of the Y carriage. I was wrong...

    The Y axis keeps jamming. The aluminium chips gets stuck on the linear rails and the wheels adding some unneeded friction in the Y movements.

    But hey, I'm a hacker. Let's hack this little beast and see what happens.

    Some double-sided tape and cardboard later, here's some nice debris shields for the linear rails. These don't need to be sturdy so cardboard is an excellent choice.

    .. and here's the machine ready for another attempt.

    Wish me luck!

  • YamPAD project log 15

    Mattia Dal Ben06/30/2019 at 18:20 0 comments


    After the first success in cutting the aluminium I started fine tuning my parameters. Turns out I bought some baaaad aluminium (1050A) because I'm cheap. Thanfully a hero on the internet found the best parameters for the 1050 aluminium and I adopted them:
    • 800 mm/min feed rate
    • 0.2 mm depth of cut
    • 76.2 mm/min plunge rate

    I cut my machining time from >2hr to 30min thanks to these. I'm super happy with them.

    Problem is: I failed to cut the plate anyway :(

    The aftermath...

    The most likely suspects.

    In the final cut (it's alwasy the final operation...) I started losing steps during a Y straight cut. I think the aluminium chips and WD-40 mixture started jamming the wheels of the mill. Pics related.

    Anyway, it's too late for another attempt for today. I'll give it a try next week, hoping in the mercy of the machining gods.

  • YamPAD project log 14

    Mattia Dal Ben06/30/2019 at 07:55 0 comments

    First aluminium cut test was a success... slow as hell but hey, a cut is a cut.

    I had a few problem with the Z axis flexing too much on the first attempt due to some loose screws, but the second attempt was great.

    I used double sided tape and some clamps to secure the material but I noticed that when the bit was cutting through the tape glue started grabbing onto the bit. The cut was successfull but for the real deal I'll try the masking-tape-and-super-glue technique to be on the safe side.

    I'm really super excited by this result. We'll see how this turns out!

  • YamPAD project log 13

    Mattia Dal Ben06/29/2019 at 12:47 0 comments

    Case take two...

    The more I look at the current case, the less I like it. The finish is poor, the design is boring, the materials are meh... I can't stand it. I've decided to start from scratch for a new design, using some nicer materials.

    I decided to use aluminium for the plate, and wood for the case. The design is much simpler this time, and apart from some minor details I'm liking it a lot. I'll take this opportunity to test the capabilities of my CNC in handling aluminium, which is something I never tried before.

    Here's some pics from Fusion 360.

    And finally a couple of renderings...

    As you might notice there are some features of the design that are a little too thin... I'll try to make them thicker but the overall idea is all here.

    Let's hope the CNCs and machining gods will smile upon me. 

  • YamPAD project log 12

    Mattia Dal Ben06/15/2019 at 16:41 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.

View all 18 project logs

  • 1
    YamPAD rev.2.0 assembly instructions

    The assembly instructions are available here.

View all instructions

Enjoy this project?



owen.ormerod wrote 07/04/2019 at 02:35 point

This is amazing. I will attempt making this from your design. Thanks. How did you cut out the timber frame? 

  Are you sure? yes | no

Mattia Dal Ben wrote 07/04/2019 at 05:02 point

I'm still working on the wooden case, the one you see is a rendering. I plan to carve it with my Shapeoko :)

  Are you sure? yes | no

Rupert Hirst wrote 07/02/2019 at 20:50 point

Looks great :)

  Are you sure? yes | no

Ben Wishoshavich wrote 06/15/2019 at 20:46 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 06/16/2019 at 14:01 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