From dad5e774a75532e6bbb5e2b6193368c5050886f0 Mon Sep 17 00:00:00 2001 From: David Allemang Date: Wed, 21 Feb 2024 12:05:04 -0500 Subject: [PATCH] update versor layout --- keyboards/versor/config.h | 20 +++++ keyboards/versor/info.json | 89 +++++++++++++++++++++ keyboards/versor/keymaps/allemangd/config.h | 10 +++ keyboards/versor/keymaps/allemangd/keymap.c | 57 +++++++++++++ keyboards/versor/keymaps/default/keymap.c | 18 +++++ keyboards/versor/readme.md | 27 +++++++ keyboards/versor/rules.mk | 1 + 7 files changed, 222 insertions(+) create mode 100644 keyboards/versor/config.h create mode 100644 keyboards/versor/info.json create mode 100644 keyboards/versor/keymaps/allemangd/config.h create mode 100644 keyboards/versor/keymaps/allemangd/keymap.c create mode 100644 keyboards/versor/keymaps/default/keymap.c create mode 100644 keyboards/versor/readme.md create mode 100644 keyboards/versor/rules.mk diff --git a/keyboards/versor/config.h b/keyboards/versor/config.h new file mode 100644 index 00000000000..11965d7d9ba --- /dev/null +++ b/keyboards/versor/config.h @@ -0,0 +1,20 @@ +// Copyright 2024 allemangD (@allemangD) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT diff --git a/keyboards/versor/info.json b/keyboards/versor/info.json new file mode 100644 index 00000000000..cc922198c33 --- /dev/null +++ b/keyboards/versor/info.json @@ -0,0 +1,89 @@ +{ + "manufacturer": "allemangd", + "keyboard_name": "versor", + "maintainer": "allemangd", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B7", "B6", "B5", "B4", "B3", "B2", "B1", "B0", "A4", "A5", "A6", "A7", "A8", "A15"], + "rows": ["B10", "B11", "B12", "A14"] + }, + "processor": "STM32F303", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x8912", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT_ortho_4x14_2u": { + "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": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "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": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 13], "x": 13, "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}, + {"matrix": [2, 5], "x": 5, "y": 2}, + {"matrix": [2, 6], "x": 6, "y": 2}, + {"matrix": [2, 7], "x": 7, "y": 2}, + {"matrix": [2, 8], "x": 8, "y": 2}, + {"matrix": [2, 9], "x": 9, "y": 2}, + {"matrix": [2, 10], "x": 10, "y": 2}, + {"matrix": [2, 11], "x": 11, "y": 2}, + {"matrix": [2, 12], "x": 12, "y": 2}, + {"matrix": [2, 13], "x": 13, "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": [3, 4], "x": 4, "y": 3, "w": 2}, + {"matrix": [3, 6], "x": 6, "y": 3}, + {"matrix": [3, 7], "x": 7, "y": 3}, + {"matrix": [3, 9], "x": 8, "y": 3, "w": 2}, + {"matrix": [3, 10], "x": 10, "y": 3}, + {"matrix": [3, 11], "x": 11, "y": 3}, + {"matrix": [3, 12], "x": 12, "y": 3}, + {"matrix": [3, 13], "x": 13, "y": 3} + ] + } + } +} diff --git a/keyboards/versor/keymaps/allemangd/config.h b/keyboards/versor/keymaps/allemangd/config.h new file mode 100644 index 00000000000..f515d274606 --- /dev/null +++ b/keyboards/versor/keymaps/allemangd/config.h @@ -0,0 +1,10 @@ +#pragma once + +#define ENABLE_COMPILE_KEYCODE + +#define FORCE_NKRO +#define USB_POLLING_INTERVAL_MS 1 +#define QMK_KEYS_PER_SCAN 4 + +#define PERMISSIVE_HOLD +#define TAPPING_TERM 160 diff --git a/keyboards/versor/keymaps/allemangd/keymap.c b/keyboards/versor/keymaps/allemangd/keymap.c new file mode 100644 index 00000000000..ab95e4946f1 --- /dev/null +++ b/keyboards/versor/keymaps/allemangd/keymap.c @@ -0,0 +1,57 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +#include "allemangd.h" + +#define UNWRAP_LAYOUT(...) LAYOUT_ortho_4x14_2u(__VA_ARGS__) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_DVORAK] = UNWRAP_LAYOUT( +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────╥────────┬────────┬────────┬────────┬────────┬────────┬────────┐ + KC_TAB, __DVORAK_L1________________________________, _______, _______, __DVORAK_R1________________________________, KC_BSPC, +// ├────────┼────────┼────────┼────────┼────────┼────────┼────────╫────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + KC_ESC, __DVORAK_L2________________________________, _______, KC_APP, __DVORAK_R2________________________________, KC_MINS, +// ├────────┼────────┼────────┼────────┼────────┼────────┼────────╫────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + KC_LSFT, __DVORAK_L3________________________________, _______, _______, __DVORAK_R3________________________________, KC_RSFT, +// ├────────┼────────┼────────┼────────┼────────┴────────┼────────╫────────┼────────┴────────┼────────┼────────┼────────┼────────┤ + KC_LCTL, _______, _______, KC_LALT, ET_LWER, DL_LALT, IN_RALT, SP_RAIS, AP_RCTL, _______, _______, KC_RCTL +// └────────┴────────┴────────┴────────┴─────────────────┴────────╨────────┴─────────────────┴────────┴────────┴────────┴────────┘ +), +[_LOWER] = UNWRAP_LAYOUT( +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────╥────────┬────────┬────────┬────────┬────────┬────────┬────────┐ + _______, __LOWER_L1_________________________________, _______, _______, __LOWER_R1_________________________________, _______, +// ├────────┼────────┼────────┼────────┼────────┼────────┼────────╫────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, __LOWER_L2_________________________________, _______, _______, __LOWER_R2_________________________________, _______, +// ├────────┼────────┼────────┼────────┼────────┼────────┼────────╫────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, __LOWER_L3_________________________________, _______, _______, __LOWER_R3_________________________________, _______, +// ├────────┼────────┼────────┼────────┼────────┴────────┼────────╫────────┼────────┴────────┼────────┼────────┼────────┼────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +// └────────┴────────┴────────┴────────┴─────────────────┴────────╨────────┴─────────────────┴────────┴────────┴────────┴────────┘ +), +[_RAISE] = UNWRAP_LAYOUT( +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────╥────────┬────────┬────────┬────────┬────────┬────────┬────────┐ + KC_GRV, __RAISE_L1_________________________________, _______, _______, __RAISE_R1_________________________________, _______, +// ├────────┼────────┼────────┼────────┼────────┼────────┼────────╫────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, __RAISE_L2_________________________________, _______, _______, __RAISE_R2_________________________________, _______, +// ├────────┼────────┼────────┼────────┼────────┼────────┼────────╫────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, __RAISE_L3_________________________________, _______, _______, __RAISE_R3_________________________________, _______, +// ├────────┼────────┼────────┼────────┼────────┴────────┼────────╫────────┼────────┴────────┼────────┼────────┼────────┼────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +// └────────┴────────┴────────┴────────┴─────────────────┴────────╨────────┴─────────────────┴────────┴────────┴────────┴────────┘ +), +[_ADJUST] = UNWRAP_LAYOUT( +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────╥────────┬────────┬────────┬────────┬────────┬────────┬────────┐ + QK_MAKE, __ADJUST_L1________________________________, _______, _______, __ADJUST_R1________________________________, QK_BOOT, +// ├────────┼────────┼────────┼────────┼────────┼────────┼────────╫────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + KC_VRSN, __ADJUST_L2________________________________, _______, _______, __ADJUST_R2________________________________, KC_PSCR, +// ├────────┼────────┼────────┼────────┼────────┼────────┼────────╫────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + _______, __ADJUST_L3________________________________, _______, _______, __ADJUST_R3________________________________, _______, +// ├────────┼────────┼────────┼────────┼────────┴────────┼────────╫────────┼────────┴────────┼────────┼────────┼────────┼────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +// └────────┴────────┴────────┴────────┴─────────────────┴────────╨────────┴─────────────────┴────────┴────────┴────────┴────────┘ +), +}; +// clang-format on diff --git a/keyboards/versor/keymaps/default/keymap.c b/keyboards/versor/keymaps/default/keymap.c new file mode 100644 index 00000000000..afea7e06dab --- /dev/null +++ b/keyboards/versor/keymaps/default/keymap.c @@ -0,0 +1,18 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_4x14_2u( +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────╥────────┬────────┬────────┬────────┬────────┬────────┬────────┐ + KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, +// ├────────┼────────┼────────┼────────┼────────┼────────┼────────╫────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, +// ├────────┼────────┼────────┼────────┼────────┼────────┼────────╫────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, +// ├────────┼────────┼────────┼────────┼────────┴────────┼────────╫────────┼────────┴────────┼────────┼────────┼────────┼────────┤ + KC_A, KC_B, KC_C, KC_D, KC_E, KC_G, KC_H, KC_I, KC_K, KC_L, KC_M, KC_N +// └────────┴────────┴────────┴────────┴─────────────────┴────────╨────────┴─────────────────┴────────┴────────┴────────┴────────┘ + ) +}; diff --git a/keyboards/versor/readme.md b/keyboards/versor/readme.md new file mode 100644 index 00000000000..17342760fe3 --- /dev/null +++ b/keyboards/versor/readme.md @@ -0,0 +1,27 @@ +# versor + +![versor](imgur.com image replace me!) + +*A short description of the keyboard/project* + +* Keyboard Maintainer: [allemangD](https://github.com/allemangD) +* Hardware Supported: *The PCBs, controllers supported* +* Hardware Availability: *Links to where you can find this hardware* + +Make example for this keyboard (after setting up your build environment): + + make versor:default + +Flashing example for this keyboard: + + make versor: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 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back 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/versor/rules.mk b/keyboards/versor/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/versor/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank