• Models
  • Contests
  • Slicer
  • Login
  • Start Here
    thingiverse-iconprintables-iconcults3d-iconmakerworld-iconmyminifactory-icon

    3D GO

    3D ModelsContestsCollectionsSaved ModelsOn a mobile device?

3D GO

Privacy Policy
Macropad 3x5 QMK 3D Printer File Image 1
Macropad 3x5 QMK 3D Printer File Image 2
Macropad 3x5 QMK 3D Printer File Image 3
Macropad 3x5 QMK 3D Printer File Image 4
Macropad 3x5 QMK 3D Printer File Image 5
Macropad 3x5 QMK 3D Printer File Image 6
Macropad 3x5 QMK 3D Printer File Image 7
Macropad 3x5 QMK 3D Printer File Thumbnail 1
Macropad 3x5 QMK 3D Printer File Thumbnail 2
Macropad 3x5 QMK 3D Printer File Thumbnail 3
Macropad 3x5 QMK 3D Printer File Thumbnail 4
Macropad 3x5 QMK 3D Printer File Thumbnail 5
Macropad 3x5 QMK 3D Printer File Thumbnail 6
Macropad 3x5 QMK 3D Printer File Thumbnail 7

Macropad 3x5 QMK

Lomax1983 avatarLomax1983

June 5, 2026

printables-icon
DescriptionCommentsTags

Description

A 3x5 macropad on a Pro Micro board with the QMK system. The board is attached with hot glue. The keys are connected via a 1N 4148 diode. A microswitch is located on the board for easy software modification. The housing is assembled with 8mm M3 screws. The housing features heated M3 inserts. I used Black Linear keys. The keycap is MX Relegendable Keycap Shell Protection.

On my keyboard, one of the buttons is a direct link to the Supla program. The link is dotted. Creating multiple button layers is easy on the keyboard. To change the code, use Google Gemini.

I'm attaching my QMK codes:

  • file keymap.c

#include QMK_KEYBOARD_H

enum custom_keycodes {
    M2P_ENTER = SAFE_RANGE,
    SUPLA_CURL
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    LAYOUT(
        // Wiersz 1
        LCTL(KC_C),       LCTL(KC_V),       LCTL(LSFT(KC_L)), SUPLA_CURL,       KC_CALC,
        
        // Wiersz 2
        LCTL(LSFT(KC_C)), LCTL(LSFT(KC_W)), LCTL(LSFT(KC_Q)), LCTL(KC_P),       KC_0,
        
        // Wiersz 3
        LCTL(KC_Z),       M2P_ENTER,        KC_ESC,           KC_ENT,           KC_E
    )
};

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    switch (keycode) {
        case M2P_ENTER:
            if (record->event.pressed) {
                SEND_STRING("m2p");
                register_code(KC_ENT);
                unregister_code(KC_ENT);
            }
            return false;

        case SUPLA_CURL:
            if (record->event.pressed) {
                // Odpowiednik: Keyboard.press(KEY_LEFT_GUI); Keyboard.press('r'); Keyboard.releaseAll();
                register_code(KC_LGUI);
                register_code(KC_R);
                unregister_code(KC_R);
                unregister_code(KC_LGUI);
                
                // Odpowiednik: delay(100);
                wait_ms(100);
                
                // Odpowiednik: Keyboard.print("...");
                // Używamy czystego SEND_STRING bez emulacji schowka (Ctrl+V)
                SEND_STRING("C:\\Windows\\System32\\curl.exe https://...........link............");
                
                // Odpowiednik: delay(100);
                wait_ms(100);
                
                // Odpowiednik: Keyboard.write(KEY_RETURN);
                register_code(KC_ENT);
                unregister_code(KC_ENT);
                
                // Odpowiednik: delay(300);
                wait_ms(300);
            }
            return false;

        default:
            return true;
    }
}
  • file keybord.json

{
    "keyboard_name": "Seba Macropad 15",
    "url": "",
    "maintainer": "qmk",
    "width": 5,
    "height": 3,
    "processor": "atmega32u4",
    "bootloader": "caterina",
    "diode_direction": "COL2ROW",
    "manufacturer": "DIY",
    "usb": {
        "vid": "0xFEED",
        "pid": "0x0003",
        "device_version": "1.0.0"
    },
    "matrix_pins": {
        "cols": ["C6", "D7", "E6", "B4", "B5"],
        "rows": ["D1", "D0", "D4"]
    },
    "layouts": {
        "LAYOUT": {
            "layout": [
                {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, {"matrix": [0, 2], "x": 2, "y": 0}, {"matrix": [0, 3], "x": 3, "y": 0}, {"matrix": [0, 4], "x": 4, "y": 0},
                {"matrix": [1, 0], "x": 0, "y": 1}, {"matrix": [1, 1], "x": 1, "y": 1}, {"matrix": [1, 2], "x": 2, "y": 1}, {"matrix": [1, 3], "x": 3, "y": 1}, {"matrix": [1, 4], "x": 4, "y": 1},
                {"matrix": [2, 0], "x": 0, "y": 2}, {"matrix": [2, 1], "x": 1, "y": 2}, {"matrix": [2, 2], "x": 2, "y": 2}, {"matrix": [2, 3], "x": 3, "y": 2}, {"matrix": [2, 4], "x": 4, "y": 2}
            ]
        }
    }
}
  • rules.mk

MCU = atmega32u4
BOOTLOADER = caterina

BOOTMAGIC_ENABLE = yes
MOUSEKEY_ENABLE = no
EXTRAKEY_ENABLE = yes
CONSOLE_ENABLE = no
COMMAND_ENABLE = no
BACKLIGHT_ENABLE = no
RGBLIGHT_ENABLE = no
NKRO_ENABLE = yes

License:

Creative Commons — Attribution — Noncommercial — Share Alike

Related Models

bakercube preview image

bakercube

iomaa profile image

iomaa

44,388

Book Page Holder V3 preview image

Book Page Holder V3

fifindr profile image

fifindr

3,420

Customizable Spotify Keychain / Tag preview image

Customizable Spotify Keychain / Tag

ewt profile image

ewt

2,834

Bottle Opener and Cap GUN! preview image

Bottle Opener and Cap GUN!

3Deddy profile image

3Deddy

43,909

Funnel Tray preview image

Funnel Tray

fifindr profile image

fifindr

3,474

Aldi Cart keychain preview image

Aldi Cart keychain

Nexus profile image

Nexus

1,044

Mini Tape Gun - Tape Dispenser preview image

Mini Tape Gun - Tape Dispenser

brycelowe profile image

brycelowe

23,733

Mini Whistle preview image

Mini Whistle

fifindr profile image

fifindr

1,880