From 9b1afcc568ad810a41e8879085cef8c0ca960fa4 Mon Sep 17 00:00:00 2001 From: ThePurox <28731015+ThePurox@users.noreply.github.com> Date: Tue, 4 Jul 2023 19:21:10 +0200 Subject: [PATCH] [Keyboard] Add hackpad (#20402) Co-authored-by: Sergey Vlasov Co-authored-by: Joel Challis Co-authored-by: Ryan Co-authored-by: Nico Stuhlmueller Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/hackpad/info.json | 78 ++++++++++++++++++++++ keyboards/hackpad/keymaps/default/keymap.c | 30 +++++++++ keyboards/hackpad/readme.md | 31 +++++++++ keyboards/hackpad/rules.mk | 1 + 4 files changed, 140 insertions(+) create mode 100644 keyboards/hackpad/info.json create mode 100644 keyboards/hackpad/keymaps/default/keymap.c create mode 100644 keyboards/hackpad/readme.md create mode 100644 keyboards/hackpad/rules.mk diff --git a/keyboards/hackpad/info.json b/keyboards/hackpad/info.json new file mode 100644 index 000000000000..0a77c9320c5f --- /dev/null +++ b/keyboards/hackpad/info.json @@ -0,0 +1,78 @@ +{ + "manufacturer": "Nico Stuhlmueller", + "keyboard_name": "hackpad", + "maintainer": "ThePurox", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true, + "encoder": true + }, + "matrix_pins": { + "cols": ["B1", "B3", "B2", "B6"], + "rows": ["C6", "D7", "E6", "B4", "B5"] + }, + "encoder": { + "rotary": [ + {"pin_a": "F5", "pin_b": "F4"} + ] + }, + "url": "https://git.imaginaerraum.de/Purox/Hackpad", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "ws2812": { + "pin": "D4" + }, + "rgblight": { + "led_count": 16, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 3], "x": 3, "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": [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": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 4} + ] + } + } +} diff --git a/keyboards/hackpad/keymaps/default/keymap.c b/keyboards/hackpad/keymaps/default/keymap.c new file mode 100644 index 000000000000..43489484ae4d --- /dev/null +++ b/keyboards/hackpad/keymaps/default/keymap.c @@ -0,0 +1,30 @@ +// Copyright 2023 Nico Stuhlmueller (@ThePurox) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +#include "keymap_german.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* ┌───┐ + * │MUT│ + * ┌───┬───┬───┼───┤ + * │ 7 │ 8 │ 9 │ + │ + * ├───┼───┼───┼───┤ + * │ 4 │ 5 │ 6 │ - │ + * ├───┼───┼───┼───┤ + * │ 1 │ 2 │ 3 │ * │ + * ├───┼───┼───┼───┤ + * │ 0 │ . │Ent│ / │ + * └───┴───┴───┴───┘ + */ + [0] = LAYOUT( LT(1, KC_MUTE), + KC_7, KC_8, KC_9, DE_PLUS, + KC_4, KC_5, KC_6, DE_MINS, + KC_1, KC_2, KC_3, DE_ASTR, + KC_0, KC_DOT, KC_ENT, DE_SLSH), + + [1] = LAYOUT( _______, + RGB_M_P, RGB_M_B, RGB_M_R, RGB_HUI, + RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_HUD, + RGB_M_X, RGB_M_G, RGB_M_TW, RGB_VAI, + RGB_TOG, RGB_SAI, RGB_SAD, RGB_VAD)}; diff --git a/keyboards/hackpad/readme.md b/keyboards/hackpad/readme.md new file mode 100644 index 000000000000..f992e55b39cc --- /dev/null +++ b/keyboards/hackpad/readme.md @@ -0,0 +1,31 @@ +# hackpad + +![hackpad](https://git.imaginaerraum.de/Purox/Hackpad/raw/branch/main/assets/pic.jpg) + + +The `Hackpad` is a 4x4 numpad/macropad designed for the Arduino Day 2023 in Bayreuth in cooperation with the hackspace [Imaginärraum e.V.](imaginaerraum.de) and [Fablab-Bayreuth e.V.](fablab-bayreuth.de). +It supports 16 MX-style switches, an EC-11 rotary encoder, and per key RGB LEDs based on SK6812. + +In v0.2 all necessary components are through hole components (except for an optional reset switch and RGB-LEDs), but the ProMicro protrudes out of the case. +In v0.3 this is fixed by moving some diodes to the bottom side. The bottom diodes however are SMD only. + +* Keyboard Maintainer: [Nico Stuhlmueller](https://github.com/ThePurox) +* Hardware Supported: ProMicro is supported in v0.2 and v0.3 of the PCBs +* Hardware Availability: PCBs can be found [here](https://git.imaginaerraum.de/Purox/Hackpad) + +Make example for this keyboard (after setting up your build environment): + + make hackpad:default + +Flashing example for this keyboard: + + make hackpad:default:flash + +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 2 ways: + +* **Physical reset button**: Briefly press the button on the top of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/hackpad/rules.mk b/keyboards/hackpad/rules.mk new file mode 100644 index 000000000000..7114cc329583 --- /dev/null +++ b/keyboards/hackpad/rules.mk @@ -0,0 +1 @@ +# this file is intentionally left blank