9-Key keypad/macropad, based on the USB C Arduino Pro Micro
5
8
0
103
updated March 16, 2025

Description

PDF

Simple 9 key keypad using Cherry MX compatible switches.

 

Materials:

9x Any Cherry MX compatible switches (I used gateron yellows)

9x Keycaps, I just printed some (Thanks Joe Scotto for the design!)

9x Diodes (most should work, I'm using 1N4148) *

4x 3mm M3 metallic inserts

4x 6mm M3 countersunk screw

1x USB-C Arduino Pro Micro

Hot glue

 

*The diodes are optional

You can use the diodes and wire the switches in a matrix, only using 6 pins of the micro controller

 

If you don't want to use the diodes, connect one side of each switch to ground and the other one to a pin of the micro controller, using 9 pins in total.

 

I'm using QMK to configure this; you can follow this guide on how to set up your environment and this one on adding a new keyboard to configure it. Keep in mind the Arduino uses the Caterina bootloader when it's time to flash the firmware.

Example for keyboard.json with the matrix

{
    "manufacturer": "<Your name>",
    "keyboard_name": "<Your name>",
    "maintainer": "<Your name>",
    "development_board": "promicro",
    "diode_direction": "COL2ROW",
    "features": {
        "bootmagic": true,
        "command": false,
        "console": false,
        "extrakey": true,
        "mousekey": true,
        "nkro": true
    },
    "matrix_pins": {
        "cols": ["D1", "D0", "D4"],
        "rows": ["C6", "D7", "E6"]
    },
    "url": "",
    "usb": {
        "device_version": "1.0.0",
        "pid": "0x0000",
        "vid": "0xFEED"
    },
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "layouts": {
        "LAYOUT_ortho_3x3": {
            "layout": [
                {"matrix": [0, 0], "x": 0, "y": 0},
                {"matrix": [0, 1], "x": 1, "y": 0},
                {"matrix": [0, 2], "x": 2, "y": 0},
                {"matrix": [1, 0], "x": 0, "y": 1},
                {"matrix": [1, 1], "x": 1, "y": 1},
                {"matrix": [1, 2], "x": 2, "y": 1},
                {"matrix": [2, 0], "x": 0, "y": 2},
                {"matrix": [2, 1], "x": 1, "y": 2},
                {"matrix": [2, 2], "x": 2, "y": 2}
            ]
        }
    }
}

Using pins 2, 3, 4, 5, 6 and 7, for Columns 1, 2 and 3 (left to right) and Rows 1, 2 and 3 (top to bottom) when looking from the top with the USB on the back. 

 

Tags



Model origin

The author marked this model as their own original creation.

License