From 7a15cd24824dc625b0752c6d17be2bebc11aaca7 Mon Sep 17 00:00:00 2001 From: Harry Cutts Date: Mon, 6 Jul 2026 21:08:39 +0100 Subject: [PATCH] Add "handwired" TwentyPad macro pad (#26264) * Add "handwired" TwentyPad macro pad TwentyPad is 20-key macro pad I created as a hobby project. Its configuration is based on ez_maker/directpins/teensy_2, with the bootloader and layout changed. * Host the image on Imgur Co-authored-by: Joel Challis --------- Co-authored-by: Joel Challis --- keyboards/handwired/twentypad/keyboard.json | 54 +++++++++++++++++++ .../twentypad/keymaps/default/keymap.json | 14 +++++ keyboards/handwired/twentypad/readme.md | 26 +++++++++ 3 files changed, 94 insertions(+) create mode 100644 keyboards/handwired/twentypad/keyboard.json create mode 100644 keyboards/handwired/twentypad/keymaps/default/keymap.json create mode 100644 keyboards/handwired/twentypad/readme.md diff --git a/keyboards/handwired/twentypad/keyboard.json b/keyboards/handwired/twentypad/keyboard.json new file mode 100644 index 00000000000..0de0ed1cb96 --- /dev/null +++ b/keyboards/handwired/twentypad/keyboard.json @@ -0,0 +1,54 @@ +{ + "manufacturer": "Harry Cutts", + "keyboard_name": "TwentyPad", + "maintainer": "HarryCutts", + "bootloader": "atmel-dfu", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true + }, + "matrix_pins": { + "direct": [ + ["B7", "D5", "B5", "F6"], + ["B3", "D3", "B4", "F7"], + ["B2", "D2", "D7", "C7"], + ["B1", "D1", "D6", "C6"], + ["B0", "D0", "D4", "B6"] + ] + }, + "processor": "atmega32u4", + "url": "https://github.com/HarryCutts/twentypad/", + "usb": { + "device_version": "1.0.0", + "pid": "0x209D", + "vid": "0xFEED" + }, + "community_layouts": ["ortho_5x4"], + "layouts": { + "LAYOUT_ortho_5x4": { + "layout": [ + {"label": "B7", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "D5", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "B5", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "F6", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "B3", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "D3", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "B4", "matrix": [1, 2], "x": 2, "y": 1}, + {"label": "F7", "matrix": [1, 3], "x": 3, "y": 1}, + {"label": "B2", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "D2", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "D7", "matrix": [2, 2], "x": 2, "y": 2}, + {"label": "C7", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "B1", "matrix": [3, 0], "x": 0, "y": 3}, + {"label": "D1", "matrix": [3, 1], "x": 1, "y": 3}, + {"label": "D6", "matrix": [3, 2], "x": 2, "y": 3}, + {"label": "C6", "matrix": [3, 3], "x": 3, "y": 3}, + {"label": "B0", "matrix": [4, 0], "x": 0, "y": 4}, + {"label": "D0", "matrix": [4, 1], "x": 1, "y": 4}, + {"label": "D4", "matrix": [4, 2], "x": 2, "y": 4}, + {"label": "B6", "matrix": [4, 3], "x": 3, "y": 4} + ] + } + } +} diff --git a/keyboards/handwired/twentypad/keymaps/default/keymap.json b/keyboards/handwired/twentypad/keymaps/default/keymap.json new file mode 100644 index 00000000000..ed963a29cd2 --- /dev/null +++ b/keyboards/handwired/twentypad/keymaps/default/keymap.json @@ -0,0 +1,14 @@ +{ + "keyboard": "handwired/twentypad", + "keymap": "default", + "layout": "LAYOUT_ortho_5x4", + "layers": [ + [ + "KC_CALCULATOR", "KC_KP_SLASH", "KC_KP_ASTERISK", "KC_KP_MINUS", + "KC_KP_7", "KC_KP_8", "KC_KP_9", "KC_KP_PLUS", + "KC_KP_4", "KC_KP_5", "KC_KP_6", "KC_LEFT_PAREN", + "KC_KP_1", "KC_KP_2", "KC_KP_3", "KC_RIGHT_PAREN", + "KC_KP_0", "KC_KP_DOT", "KC_KP_EQUAL", "KC_KP_ENTER" + ] + ] +} diff --git a/keyboards/handwired/twentypad/readme.md b/keyboards/handwired/twentypad/readme.md new file mode 100644 index 00000000000..6984c5947c8 --- /dev/null +++ b/keyboards/handwired/twentypad/readme.md @@ -0,0 +1,26 @@ +# TwentyPad + +![TwentyPad](https://i.imgur.com/e1Bsg1M.jpeg) + +A simple twenty-key macro pad, built to learn PCB design. + +* Keyboard Maintainer: [Harry Cutts](https://github.com/HarryCutts) +* Hardware Supported: ATMEGA32U4 on a [custom PCB](https://github.com/HarryCutts/twentypad/) + +Make example for this keyboard (after setting up your build environment): + + qmk compile -kb handwired/twentypad -km default + +Flashing example for this keyboard: + + qmk flash -kb handwired/twentypad -km default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the top left key) and plug in the keyboard +* **Physical reset button**: Press the button marked `SWR1` in the top-left of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available