From 66d0d53dc1041ce148612ccde9da7ec78668ce7a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 28 Nov 2024 19:45:59 +0000 Subject: [PATCH 01/29] Bump JamesIves/github-pages-deploy-action from 4.6.9 to 4.7.1 (#24654) Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.9 to 4.7.1. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.9...v4.7.1) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index e04bcd080b10..95a2cfa3af21 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -56,7 +56,7 @@ jobs: - name: Deploy if: ${{ github.event_name == 'push' && github.repository == 'qmk/qmk_firmware' }} - uses: JamesIves/github-pages-deploy-action@v4.6.9 + uses: JamesIves/github-pages-deploy-action@v4.7.1 with: token: ${{ secrets.GITHUB_TOKEN }} branch: gh-pages From 97547ac762a48b343b4b49de4f144f127da3c131 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 30 Nov 2024 16:30:05 +1100 Subject: [PATCH 02/29] Update leftover RGB keycodes (#24653) --- docs/configurator_default_keymaps.md | 4 ++-- keyboards/era/sirind/tomak79h/keymaps/default/keymap.c | 4 ++-- keyboards/keebfront/vanguard65/keymaps/default/keymap.c | 4 ++-- keyboards/keebio/iris_lm/keymaps/default/keymap.c | 8 ++++---- keyboards/xdboards/recon/keymaps/default/keymap.c | 4 ++-- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/configurator_default_keymaps.md b/docs/configurator_default_keymaps.md index 40304dc57b78..0dfc41ea21de 100644 --- a/docs/configurator_default_keymaps.md +++ b/docs/configurator_default_keymaps.md @@ -54,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [1] = LAYOUT_all( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, BL_TOGG, BL_DOWN, BL_UP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_TOGG, UG_NEXT, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, UG_VALD, UG_VALU, BL_TOGG, BL_DOWN, BL_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -82,7 +82,7 @@ The default keymap uses the `LAYOUT_all` macro, so that will be the value of the "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "MO(1)", "KC_RGUI", "KC_RCTL", "KC_LEFT", "KC_DOWN", "KC_RGHT" ], [ - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_TOG", "RGB_MOD", "RGB_HUD", "RGB_HUI", "RGB_SAD", "RGB_SAI", "RGB_VAD", "RGB_VAI", "BL_TOGG", "BL_DOWN", "BL_UP", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "UG_TOGG", "UG_NEXT", "UG_HUED", "UG_HUEU", "UG_SATD", "UG_SATU", "UG_VALD", "UG_VALU", "BL_TOGG", "BL_DOWN", "BL_UP", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_VOLU", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "QK_BOOT", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPLY", "KC_MNXT", "KC_VOLD", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", diff --git a/keyboards/era/sirind/tomak79h/keymaps/default/keymap.c b/keyboards/era/sirind/tomak79h/keymaps/default/keymap.c index 7b8a5b8a139f..d1434f8cd002 100644 --- a/keyboards/era/sirind/tomak79h/keymaps/default/keymap.c +++ b/keyboards/era/sirind/tomak79h/keymaps/default/keymap.c @@ -17,8 +17,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_MOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_TOGG, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_NEXT, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; \ No newline at end of file diff --git a/keyboards/keebfront/vanguard65/keymaps/default/keymap.c b/keyboards/keebfront/vanguard65/keymaps/default/keymap.c index 3768ba89cc93..225873183e23 100644 --- a/keyboards/keebfront/vanguard65/keymaps/default/keymap.c +++ b/keyboards/keebfront/vanguard65/keymaps/default/keymap.c @@ -34,8 +34,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAYER1] = LAYOUT_all( _______, QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_END, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, _______, - _______, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, _______, + _______, UG_SPDU, UG_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ) diff --git a/keyboards/keebio/iris_lm/keymaps/default/keymap.c b/keyboards/keebio/iris_lm/keymaps/default/keymap.c index d5021d647d4b..7a0625a36a10 100644 --- a/keyboards/keebio/iris_lm/keymaps/default/keymap.c +++ b/keyboards/keebio/iris_lm/keymaps/default/keymap.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_LBRC, KC_RBRC, KC_P4, KC_P5, KC_P6, KC_PLUS, KC_PIPE, //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - RGB_MOD, EE_CLR, _______, _______, _______, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_P1, KC_P2, KC_P3, KC_MINS, _______, + RM_NEXT, EE_CLR, _______, _______, _______, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_P1, KC_P2, KC_P3, KC_MINS, _______, //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ _______, _______, KC_DEL, KC_DEL, _______, KC_P0 // └────────┴────────┴────────┘ └────────┴────────┴────────┘ @@ -43,11 +43,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - RGB_TOG, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, QK_BOOT, + RM_TOGG, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, QK_BOOT, //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - RGB_MOD, KC_MPRV, KC_MNXT, KC_VOLU, KC_PGUP, KC_UNDS, KC_EQL, KC_HOME, RGB_HUI, RGB_SAI, RGB_VAI, KC_BSLS, + RM_NEXT, KC_MPRV, KC_MNXT, KC_VOLU, KC_PGUP, KC_UNDS, KC_EQL, KC_HOME, RM_HUEU, RM_SATU, RM_VALU, KC_BSLS, //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - KC_MUTE, KC_MSTP, KC_MPLY, KC_VOLD, KC_PGDN, KC_MINS, KC_LPRN, _______, KC_PLUS, KC_END, RGB_HUD, RGB_SAD, RGB_VAD, EE_CLR, + KC_MUTE, KC_MSTP, KC_MPLY, KC_VOLD, KC_PGDN, KC_MINS, KC_LPRN, _______, KC_PLUS, KC_END, RM_HUED, RM_SATD, RM_VALD, EE_CLR, //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ _______, _______, _______, _______, _______, _______ // └────────┴────────┴────────┘ └────────┴────────┴────────┘ diff --git a/keyboards/xdboards/recon/keymaps/default/keymap.c b/keyboards/xdboards/recon/keymaps/default/keymap.c index 30d96e09bada..841f8b0b6a77 100644 --- a/keyboards/xdboards/recon/keymaps/default/keymap.c +++ b/keyboards/xdboards/recon/keymaps/default/keymap.c @@ -145,8 +145,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_RGB] = LAYOUT( KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - RGB_TOG, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + RM_TOGG, RM_PREV, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO , KC_NO, KC_NO, KC_NO, KC_NO , KC_NO, KC_NO, KC_NO, KC_NO , KC_NO, KC_NO, KC_NO, KC_NO , KC_NO, KC_NO, KC_NO From 1da8aa8259fe624e30f0f2c09a814798caebb9f6 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 30 Nov 2024 16:30:45 +1100 Subject: [PATCH 03/29] Improve "feature/encoder config both specified" warnings (#24641) --- lib/python/qmk/info.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index 5dae353538ad..74a62721a3d9 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -292,7 +292,7 @@ def _extract_features(info_data, rules): info_data['features'] = {} if key in info_data['features']: - _log_warning(info_data, 'Feature %s is specified in both info.json and rules.mk, the rules.mk value wins.' % (key,)) + _log_warning(info_data, 'Feature %s is specified in both info.json (%s) and rules.mk (%s). The rules.mk value wins.' % (key, info_data['features'], value)) info_data['features'][key] = value info_data['config_h_features'][key] = value @@ -415,7 +415,7 @@ def _extract_encoders(info_data, config_c): info_data['encoder'] = {} if 'rotary' in info_data['encoder']: - _log_warning(info_data, 'Encoder config is specified in both config.h and info.json (encoder.rotary) (Value: %s), the config.h value wins.' % info_data['encoder']['rotary']) + _log_warning(info_data, 'Encoder config is specified in both config.h (%s) and info.json (%s). The config.h value wins.' % (encoders, info_data['encoder']['rotary'])) info_data['encoder']['rotary'] = encoders From 5eb53be671b4103626d0c0bb7828474d8be03ec7 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 1 Dec 2024 19:24:44 +0000 Subject: [PATCH 04/29] Avoid loading keymap rules.mk twice (#24665) --- builddefs/build_keyboard.mk | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk index afad67a76da7..7d58c29462ac 100644 --- a/builddefs/build_keyboard.mk +++ b/builddefs/build_keyboard.mk @@ -197,8 +197,10 @@ ifneq ("$(wildcard $(KEYMAP_JSON))", "") KEYMAP_C := $(INTERMEDIATE_OUTPUT)/src/keymap.c KEYMAP_H := $(INTERMEDIATE_OUTPUT)/src/config.h - # Load the keymap-level rules.mk if exists - -include $(KEYMAP_PATH)/rules.mk + ifeq ($(OTHER_KEYMAP_C),) + # Load the keymap-level rules.mk if exists (and we havent already loaded it for keymap.c) + -include $(KEYMAP_PATH)/rules.mk + endif # Load any rules.mk content from keymap.json INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --output $(INTERMEDIATE_OUTPUT)/src/rules.mk $(KEYMAP_JSON)) From b022d3bc6b9c6c1816272bcc6ad5d0f03c2d96a5 Mon Sep 17 00:00:00 2001 From: Less/Rikki <86894501+lesshonor@users.noreply.github.com> Date: Sun, 1 Dec 2024 23:01:05 -0500 Subject: [PATCH 05/29] [Keyboard] Add fistbnmp (#24595) --- keyboards/rpiguy9907/fistbnmp/keyboard.json | 178 ++++++++++++++++++ .../fistbnmp/keymaps/default/keymap.json | 14 ++ keyboards/rpiguy9907/fistbnmp/readme.md | 27 +++ 3 files changed, 219 insertions(+) create mode 100644 keyboards/rpiguy9907/fistbnmp/keyboard.json create mode 100644 keyboards/rpiguy9907/fistbnmp/keymaps/default/keymap.json create mode 100644 keyboards/rpiguy9907/fistbnmp/readme.md diff --git a/keyboards/rpiguy9907/fistbnmp/keyboard.json b/keyboards/rpiguy9907/fistbnmp/keyboard.json new file mode 100644 index 000000000000..b4e76341e006 --- /dev/null +++ b/keyboards/rpiguy9907/fistbnmp/keyboard.json @@ -0,0 +1,178 @@ +{ + "manufacturer": "rpiguy9907", + "keyboard_name": "fistbnmp", + "maintainer": "lesshonor", + "bootloader": "atmel-dfu", + "bootloader_instructions": "Press the button labeled SW1 on the back of the PCB.", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["C6", "C7", "B4", "F7", "D0", "D6", "D3", "D4", "D5"], + "rows": ["F0", "B6", "D7", "B5"] + }, + "processor": "atmega32u4", + "url": "https://github.com/rpiguy9907", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT_3u": { + "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": [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": [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": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 4], "x": 3, "y": 3, "w": 3}, + {"matrix": [3, 6], "x": 6, "y": 3}, + {"matrix": [3, 7], "x": 7, "y": 3}, + {"matrix": [3, 8], "x": 8, "y": 3} + ] + }, + "LAYOUT_7u": { + "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": [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": [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": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 4], "x": 1, "y": 3, "w": 7}, + {"matrix": [3, 8], "x": 8, "y": 3} + ] + }, + "LAYOUT_all": { + "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": [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": [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": [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}, + {"matrix": [3, 5], "x": 5, "y": 3}, + {"matrix": [3, 6], "x": 6, "y": 3}, + {"matrix": [3, 7], "x": 7, "y": 3}, + {"matrix": [3, 8], "x": 8, "y": 3} + ] + }, + "LAYOUT_split_space": { + "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": [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": [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": [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, "w": 1.5}, + {"matrix": [3, 5], "x": 4.5, "y": 3, "w": 1.5}, + {"matrix": [3, 6], "x": 6, "y": 3}, + {"matrix": [3, 7], "x": 7, "y": 3}, + {"matrix": [3, 8], "x": 8, "y": 3} + ] + } + } +} diff --git a/keyboards/rpiguy9907/fistbnmp/keymaps/default/keymap.json b/keyboards/rpiguy9907/fistbnmp/keymaps/default/keymap.json new file mode 100644 index 000000000000..4cc23703e2ba --- /dev/null +++ b/keyboards/rpiguy9907/fistbnmp/keymaps/default/keymap.json @@ -0,0 +1,14 @@ +{ + "keyboard": "rpiguy9907/fistbnmp", + "keymap": "default", + "version": 1, + "layout": "LAYOUT_all", + "layers": [ + [ + "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", + "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", + "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_P", "KC_DOT", + "KC_LCTL", "KC_LALT", "KC_LGUI", "KC_SPC", "KC_SPC", "KC_RIGHT", "KC_LEFT", "KC_DOWN", "KC_UP" + ] + ] +} diff --git a/keyboards/rpiguy9907/fistbnmp/readme.md b/keyboards/rpiguy9907/fistbnmp/readme.md new file mode 100644 index 000000000000..2b6721f92622 --- /dev/null +++ b/keyboards/rpiguy9907/fistbnmp/readme.md @@ -0,0 +1,27 @@ +# FistBNMP + +![FistBNMP assembled proto and bare PCB](https://i.redd.it/uv34770qmc371.jpg) + +A compact 9u layout with support for standard Cherry MX and Low Profile MX switches. + +* Keyboard Maintainer: [rpiguy9907](https://github.com/rpiguy9907), [lesshonor](https://github.com/lesshonor) +* Hardware Supported: FistBNMP PCB (atmega32u4, atmel-dfu) +* Hardware Availability: Files available on request; ask in the 40% Discord + +Make example for this keyboard (after setting up your build environment): + + make rpiguy9907/fistbnmp:default + +Flashing example for this keyboard: + + make rpiguy9907/fistbnmp: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 top left key and plug in the keyboard. This will also clear EEPROM, so it is a good first step if the keyboard is misbehaving. +* **Physical reset button**: Briefly press the button labeled `SW1` on the back of the PCB. +* **Keycode in layout**: There is no key mapped to `QK_BOOT` in the pre-created keymaps, but you may assign this key in any keymaps you create. From 39c40f55cb3a7c808ff322177435042cb40153bb Mon Sep 17 00:00:00 2001 From: "Christian C. Berclaz" Date: Mon, 2 Dec 2024 05:05:29 +0100 Subject: [PATCH 06/29] Add Xlant XL keyboard (#24608) Co-authored-by: jack --- keyboards/zlant_xl/keyboard.json | 89 +++++++++++++++++++++ keyboards/zlant_xl/keymaps/default/keymap.c | 42 ++++++++++ keyboards/zlant_xl/readme.md | 26 ++++++ 3 files changed, 157 insertions(+) create mode 100644 keyboards/zlant_xl/keyboard.json create mode 100644 keyboards/zlant_xl/keymaps/default/keymap.c create mode 100644 keyboards/zlant_xl/readme.md diff --git a/keyboards/zlant_xl/keyboard.json b/keyboards/zlant_xl/keyboard.json new file mode 100644 index 000000000000..540f1e75069d --- /dev/null +++ b/keyboards/zlant_xl/keyboard.json @@ -0,0 +1,89 @@ +{ + "manufacturer": "Ziptyze", + "keyboard_name": "ZlantXL", + "maintainer": "chrisgve", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["D6", "D5", "C7", "C5", "D3", "D4"], + "rows": ["C4", "C6", "B1", "B0", "B3", "B2", "B5", "B4", "B7", "B6"] + }, + "processor": "atmega32u2", + "usb": { + "device_version": "0.0.1", + "pid": "0x6800", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [1, 0], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "3", "matrix": [1, 1], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 2], "x": 4, "y": 0}, + {"label": "5", "matrix": [1, 2], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 3], "x": 6, "y": 0}, + {"label": "7", "matrix": [1, 3], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 4], "x": 8, "y": 0}, + {"label": "9", "matrix": [1, 4], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 5], "x": 10, "y": 0}, + {"label": "Del", "matrix": [1, 5], "x": 11, "y": 0}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 1}, + {"label": "Q", "matrix": [3, 0], "x": 1, "y": 1}, + {"label": "W", "matrix": [2, 1], "x": 2, "y": 1}, + {"label": "E", "matrix": [3, 1], "x": 3, "y": 1}, + {"label": "R", "matrix": [2, 2], "x": 4, "y": 1}, + {"label": "T", "matrix": [3, 2], "x": 5, "y": 1}, + {"label": "Y", "matrix": [2, 3], "x": 6, "y": 1}, + {"label": "U", "matrix": [3, 3], "x": 7, "y": 1}, + {"label": "I", "matrix": [2, 4], "x": 8, "y": 1}, + {"label": "O", "matrix": [3, 4], "x": 9, "y": 1}, + {"label": "P", "matrix": [2, 5], "x": 10, "y": 1}, + {"label": "Backspace", "matrix": [3, 5], "x": 11, "y": 1}, + {"label": "Keycaps", "matrix": [4, 0], "x": 0, "y": 2}, + {"label": "A", "matrix": [5, 0], "x": 1, "y": 2}, + {"label": "S", "matrix": [4, 1], "x": 2, "y": 2}, + {"label": "D", "matrix": [5, 1], "x": 3, "y": 2}, + {"label": "F", "matrix": [4, 2], "x": 4, "y": 2}, + {"label": "G", "matrix": [5, 2], "x": 5, "y": 2}, + {"label": "H", "matrix": [4, 3], "x": 6, "y": 2}, + {"label": "J", "matrix": [5, 3], "x": 7, "y": 2}, + {"label": "K", "matrix": [4, 4], "x": 8, "y": 2}, + {"label": "L", "matrix": [5, 4], "x": 9, "y": 2}, + {"label": ";", "matrix": [4, 5], "x": 10, "y": 2}, + {"label": "'", "matrix": [5, 5], "x": 11, "y": 2}, + {"label": "Shift", "matrix": [6, 0], "x": 0, "y": 3}, + {"label": "Z", "matrix": [7, 0], "x": 1, "y": 3}, + {"label": "X", "matrix": [6, 1], "x": 2, "y": 3}, + {"label": "C", "matrix": [7, 1], "x": 3, "y": 3}, + {"label": "V", "matrix": [6, 2], "x": 4, "y": 3}, + {"label": "B", "matrix": [7, 2], "x": 5, "y": 3}, + {"label": "N", "matrix": [6, 3], "x": 6, "y": 3}, + {"label": "M", "matrix": [7, 3], "x": 7, "y": 3}, + {"label": ",", "matrix": [6, 4], "x": 8, "y": 3}, + {"label": ".", "matrix": [7, 4], "x": 9, "y": 3}, + {"label": "/", "matrix": [6, 5], "x": 10, "y": 3}, + {"label": "Enter", "matrix": [7, 5], "x": 11, "y": 3}, + {"label": "", "matrix": [8, 0], "x": 0, "y": 4}, + {"label": "Ctrl", "matrix": [9, 0], "x": 1, "y": 4}, + {"label": "Alt", "matrix": [8, 1], "x": 2, "y": 4}, + {"label": "GUI", "matrix": [9, 1], "x": 3, "y": 4}, + {"label": "MO(2)", "matrix": [8, 2], "x": 4, "y": 4}, + {"label": " ", "matrix": [9, 2], "x": 5, "y": 4}, + {"label": " ", "matrix": [8, 3], "x": 6, "y": 4}, + {"label": "MO(1)", "matrix": [9, 3], "x": 7, "y": 4}, + {"label": "Left", "matrix": [8, 4], "x": 8, "y": 4}, + {"label": "Down", "matrix": [9, 4], "x": 9, "y": 4}, + {"label": "Up", "matrix": [8, 5], "x": 10, "y": 4}, + {"label": "Right", "matrix": [9, 5], "x": 11, "y": 4} + ] + } + } +} diff --git a/keyboards/zlant_xl/keymaps/default/keymap.c b/keyboards/zlant_xl/keymaps/default/keymap.c new file mode 100644 index 000000000000..c92960048f65 --- /dev/null +++ b/keyboards/zlant_xl/keymaps/default/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2024 Christian C. Berclaz + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers { + BASE, + FN +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [BASE] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + _______, KC_LCTL, KC_LALT, KC_LGUI, KC_LSFT, KC_SPC, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + [FN] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ) +}; +// clang-format on diff --git a/keyboards/zlant_xl/readme.md b/keyboards/zlant_xl/readme.md new file mode 100644 index 000000000000..aab5746096f2 --- /dev/null +++ b/keyboards/zlant_xl/readme.md @@ -0,0 +1,26 @@ +# ZLANT XL + +![ZLANT XL](https://imgur.com/Vcmjwro.jpg) +_A unique 50% mechanical keyboard that uses a slanted ortholinear layout_ + +- Keyboard Maintainer: [chrisgve](https://github.com/chrisgve) +- Hardware Supported: Zlant XL w/Ziptyze's atmega32u2 powered controller [The Rune](https://1upkeyboards.com/shop/controllers/the-rune-by-ziptyze/) +- Hardware Availability: [1UP Keyboards](https://1upkeyboards.com/shop/keyboard-kits/diy-40-kits/zlantxl-50-mechanical-keyboard-kit/) + +Make example for this keyboard (after setting up your build environment): + + make zlant_xl:default + +Flashing example for this keyboard: + + make zlant_xl: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 board (button on The Rune) +- **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From be7786bfc6f8e14a796cf13991428d1ef8135f26 Mon Sep 17 00:00:00 2001 From: Stephen Onnen Date: Mon, 2 Dec 2024 08:57:34 -0600 Subject: [PATCH 07/29] Addition of Hotdog Pad (#24650) * Add Hotdog Pad * remove encoder_map feature * Add rules.mk * move rules.mk into keymap * Update keyboards/onnenon/hotdog_pad/keyboard.json Co-authored-by: Joel Challis * Update keyboards/onnenon/hotdog_pad/keyboard.json Co-authored-by: Joel Challis * Update keyboards/onnenon/hotdog_pad/keymaps/default/keymap.c Co-authored-by: Joel Challis * Update keyboards/onnenon/hotdog_pad/keymaps/default/keymap.c Co-authored-by: Joel Challis * add hotdog_pad.c * fix reversed encoder pins * Update keyboards/onnenon/hotdog_pad/hotdog_pad.c Co-authored-by: Joel Challis --------- Co-authored-by: Joel Challis --- keyboards/onnenon/hotdog_pad/hotdog_pad.c | 12 +++++ keyboards/onnenon/hotdog_pad/keyboard.json | 53 +++++++++++++++++++ .../hotdog_pad/keymaps/default/keymap.c | 14 +++++ .../hotdog_pad/keymaps/default/rules.mk | 1 + keyboards/onnenon/hotdog_pad/readme.md | 24 +++++++++ 5 files changed, 104 insertions(+) create mode 100644 keyboards/onnenon/hotdog_pad/hotdog_pad.c create mode 100644 keyboards/onnenon/hotdog_pad/keyboard.json create mode 100644 keyboards/onnenon/hotdog_pad/keymaps/default/keymap.c create mode 100644 keyboards/onnenon/hotdog_pad/keymaps/default/rules.mk create mode 100644 keyboards/onnenon/hotdog_pad/readme.md diff --git a/keyboards/onnenon/hotdog_pad/hotdog_pad.c b/keyboards/onnenon/hotdog_pad/hotdog_pad.c new file mode 100644 index 000000000000..c48274fb5548 --- /dev/null +++ b/keyboards/onnenon/hotdog_pad/hotdog_pad.c @@ -0,0 +1,12 @@ +// Copyright 2024 Stephen Onnen (@onnenon) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +void keyboard_pre_init_kb(void) { + // Enable the power pin for the Xiao Seeed rp2040 onboard NeoPixel + gpio_set_pin_output(GP11); + gpio_write_pin_high(GP11); + + keyboard_pre_init_user(); +} diff --git a/keyboards/onnenon/hotdog_pad/keyboard.json b/keyboards/onnenon/hotdog_pad/keyboard.json new file mode 100644 index 000000000000..3831e7afedc9 --- /dev/null +++ b/keyboards/onnenon/hotdog_pad/keyboard.json @@ -0,0 +1,53 @@ +{ + "manufacturer": "onnenon", + "keyboard_name": "Hotdog Pad", + "maintainer": "onnenon", + "processor": "RP2040", + "bootloader": "rp2040", + "matrix_pins": { + "direct": [["GP1", "GP2", "GP4", "GP6", "GP0"]] + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x0001", + "vid": "0x4F4E" + }, + "features": { + "encoder": true, + "rgblight": true, + "extrakey": true, + "mousekey": true + }, + "encoder": { + "rotary": [{ "pin_a": "GP29", "pin_b": "GP28" }] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "x": 0, "y": 0, "matrix": [0, 0] }, + { "x": 1, "y": 0, "matrix": [0, 1] }, + { "x": 2, "y": 0, "matrix": [0, 2] }, + { "x": 3, "y": 0, "matrix": [0, 3] }, + { "x": 4, "y": 0, "matrix": [0, 4] } + ] + } + }, + "ws2812": { + "pin": "GP12", + "driver": "vendor" + }, + "rgblight": { + "led_count": 1, + "max_brightness": 185, + "animations": { + "breathing": true, + "rainbow_mood": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + } +} diff --git a/keyboards/onnenon/hotdog_pad/keymaps/default/keymap.c b/keyboards/onnenon/hotdog_pad/keymaps/default/keymap.c new file mode 100644 index 000000000000..93702490981c --- /dev/null +++ b/keyboards/onnenon/hotdog_pad/keymaps/default/keymap.c @@ -0,0 +1,14 @@ +// Copyright 2024 Stephen Onnen (@onnenon) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT(KC_A, KC_B, KC_C, KC_D, KC_MUTE) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, +}; +#endif diff --git a/keyboards/onnenon/hotdog_pad/keymaps/default/rules.mk b/keyboards/onnenon/hotdog_pad/keymaps/default/rules.mk new file mode 100644 index 000000000000..ee325681483f --- /dev/null +++ b/keyboards/onnenon/hotdog_pad/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/onnenon/hotdog_pad/readme.md b/keyboards/onnenon/hotdog_pad/readme.md new file mode 100644 index 000000000000..c3b0699c21da --- /dev/null +++ b/keyboards/onnenon/hotdog_pad/readme.md @@ -0,0 +1,24 @@ +# Hotdog Pad + +* Keyboard Maintainer: [Stephen Onnen](https://github.com/onnenon) +* Hardware Supported: Seeed Studio XIAO RP2040 +* Hardware Availability: https://github.com/onnenon/hotdog_pad + +Make example for this keyboard (after setting up your build environment): + + make onnenon/hotdog_pad:default + +Flashing example for this keyboard: + + make onnenon/hotdog_pad: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 + From e592a7da0017a57a476debee2355f8dbb5d81349 Mon Sep 17 00:00:00 2001 From: Nibell Date: Mon, 2 Dec 2024 16:00:29 +0100 Subject: [PATCH 08/29] [Keyboard] Added nibell micropad4x4 (#24662) * feat: added nibell micropad4x4 * chore: updated readme * chore: updated keymap * feat: added layers * chore: added bootloader doc * Added layers * changed RSHIFT and RCTRL * Update keyboards/nibell/micropad4x4/keyboard.json Co-authored-by: Duncan Sutherland * Update keyboards/nibell/micropad4x4/readme.md --------- Co-authored-by: Duncan Sutherland Co-authored-by: jack --- keyboards/nibell/micropad4x4/keyboard.json | 50 +++++++++++ .../micropad4x4/keymaps/default/keymap.c | 90 +++++++++++++++++++ keyboards/nibell/micropad4x4/readme.md | 26 ++++++ 3 files changed, 166 insertions(+) create mode 100644 keyboards/nibell/micropad4x4/keyboard.json create mode 100644 keyboards/nibell/micropad4x4/keymaps/default/keymap.c create mode 100644 keyboards/nibell/micropad4x4/readme.md diff --git a/keyboards/nibell/micropad4x4/keyboard.json b/keyboards/nibell/micropad4x4/keyboard.json new file mode 100644 index 000000000000..b992f501cf55 --- /dev/null +++ b/keyboards/nibell/micropad4x4/keyboard.json @@ -0,0 +1,50 @@ +{ + "manufacturer": "nibell", + "keyboard_name": "nibell/micropad4x4", + "maintainer": "Linus Nibell", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP2", "GP3", "GP4", "GP5"], + "rows": ["GP10", "GP11", "GP12", "GP13"] + }, + "processor": "RP2040", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0xFEED", + "vid": "0x4C4E" + }, + "community_layouts": ["ortho_4x4"], + "layouts": { + "LAYOUT_ortho_4x4": { + "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": [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} + ] + } + } +} diff --git a/keyboards/nibell/micropad4x4/keymaps/default/keymap.c b/keyboards/nibell/micropad4x4/keymaps/default/keymap.c new file mode 100644 index 000000000000..1da79514edc1 --- /dev/null +++ b/keyboards/nibell/micropad4x4/keymaps/default/keymap.c @@ -0,0 +1,90 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base + * ┌──────┬─────┬──────┬───────┐ + * │NUMLK │ │ │QK_BOOT│ + * ├──────┼─────├──────┼───────┤ + * │NUMPAD│MINI │ FN │ │ + * ├──────┼─────┼──────┼───────┤ + * │ 1 │ 2 │ 3 │ 4 │ + * ├──────┼─────┼──────┼───────┤ + * │ │ │RSHIFT│ RCTRL │ + * └──────┴─────┴──────┴───────┘ + */ + [0] = LAYOUT_ortho_4x4( + KC_NUM, KC_NO, KC_NO, QK_BOOT, + TO(1), TO(2), TO(3), KC_NO, + KC_1, KC_2, KC_3, KC_4, + KC_NO, KC_NO, KC_RSFT, KC_RCTL + ), + + /* Numpad + * ┌─────┬─────┬─────┬─────┐ + * │ 7 │ 8 │ 9 │ * │ + * ├─────┼─────├─────┼─────┤ + * │ 4 │ 5 │ 6 │ - │ + * ├─────┼─────┼─────┼─────┤ + * │ 1 │ 2 │ 3 │ + │ + * ├─────┼─────┼─────┼─────┤ + * │ 0 │ . │ / │ = │ + * └─────┴─────┴─────┴─────┘ + */ + [1] = LAYOUT_ortho_4x4( + KC_P7, KC_P8, KC_P9, KC_PAST, + KC_P4, KC_P5, KC_P6, KC_PMNS, + KC_P1, KC_P2, KC_P3, KC_PPLS, + KC_P0, KC_PDOT, KC_PSLS, LT(3, KC_PENT) + ), + + /* Mini KeyBoard + * ┌─────┬─────┬─────┬─────┐ + * │ ESC │ 1 │ 2 │ 3 │ + * ├─────┼─────┼─────┼─────┤ + * │ TAB │ Q │ W │ E │ + * ├─────┼─────┼─────┼─────┤ + * │SHIFT│ A │ S │ D │ + * ├─────┼─────┼─────┼─────┤ + * │CTRL │ C │ R │SPACE│ + * └─────┴─────┴─────┴─────┘ + */ + [2] = LAYOUT_ortho_4x4( + LT(3, KC_ESC), KC_1, KC_2, KC_3, + KC_TAB, KC_Q, KC_W, KC_E, + KC_LSFT, KC_A, KC_S, KC_D, + KC_LCTL, KC_C, KC_R, KC_SPC + ), + + /* FN Keyboard + * ┌─────┬─────┬─────┬─────┐ + * │ F1 │ F2 │ F3 │ F4 │ + * ├─────┼─────┼─────┼─────┤ + * │ F5 │ F6 │ F7 │ F8 │ + * ├─────┼─────┼─────┼─────┤ + * │ F9 │ F10 │ F11 │ F12 │ + * ├─────┼─────┼─────┼─────┤ + * │BASE │ │ │ │ + * └─────┴─────┴─────┴─────┘ + */ + [3] = LAYOUT_ortho_4x4( + KC_F1, KC_F2, KC_F3, KC_F4, + KC_F5, KC_F6, KC_F7, KC_F8, + KC_F9, KC_F10, KC_F11, KC_F12, + TO(0), KC_NO, KC_NO, KC_NO + ), +}; diff --git a/keyboards/nibell/micropad4x4/readme.md b/keyboards/nibell/micropad4x4/readme.md new file mode 100644 index 000000000000..6fec293b6507 --- /dev/null +++ b/keyboards/nibell/micropad4x4/readme.md @@ -0,0 +1,26 @@ +# Micropad 4x4 + +![Micropad 4x4](https://imgur.com/ugfJLXJ.jpg) + +A budget-friendly 4x4 Macropad + +* Keyboard Maintainer: [nibell](https://github.com/Nibell) +* Hardware Supported: Raspberry Pi Pico +* Hardware Availability: [GitHub](https://github.com/Nibell/Keyboards/tree/main/micropad4x4) + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Physical reset button**: Hold the button down on the raspberry pi pico while plugging it in. There is no reset button on the pcb. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available + +Make example for this keyboard (after setting up your build environment): + + make nibell/micropad4x4:default + +Flashing example for this keyboard: + + make nibell/macropad4x4: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). From fa3be8a3fb6bc45ed60674b6a7c7bc80d8d00594 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=E1=BA=AFn?= <59417802+MaiTheSan@users.noreply.github.com> Date: Mon, 2 Dec 2024 07:02:29 -0800 Subject: [PATCH 09/29] sawnsprojects/bunnygirl65: Fix typo in name (#24668) --- keyboards/sawnsprojects/bunnygirl65/keyboard.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/sawnsprojects/bunnygirl65/keyboard.json b/keyboards/sawnsprojects/bunnygirl65/keyboard.json index 810d481b5dcb..92dca8693d6e 100644 --- a/keyboards/sawnsprojects/bunnygirl65/keyboard.json +++ b/keyboards/sawnsprojects/bunnygirl65/keyboard.json @@ -1,5 +1,5 @@ { - "manufacturer": "auaera", + "manufacturer": "auaena", "keyboard_name": "Bunnygirl65", "maintainer": "MaiTheSan", "bootloader": "stm32-dfu", From 0ad3ffdfbce15406acf318d8db335c4bf612bc7a Mon Sep 17 00:00:00 2001 From: Thanh Son Tran <62438883+trnthsn@users.noreply.github.com> Date: Mon, 2 Dec 2024 22:20:48 +0700 Subject: [PATCH 10/29] [Keyboard] Add support E8ghty (#24632) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update support S6xty5 * Delete chconf.h * Update manufacturer, community layout for hhkb * Update layout * fix row index * Update tyson60s * Update community layout and layout name * Update remove rgb test mode * Update capslock led * Apply suggestions from code review Co-authored-by: Duncan Sutherland * Remove deprecated s6xty5 * Update support for E8ghty * remove rgb test mode * Update community layout * Update fix pipeline build ci * Apply suggestions from code review Co-authored-by: Duncan Sutherland --------- Co-authored-by: Trần Thanh Sơn Co-authored-by: Duncan Sutherland --- keyboards/trnthsn/e8ghty/config.h | 23 + keyboards/trnthsn/e8ghty/halconf.h | 21 + keyboards/trnthsn/e8ghty/info.json | 577 ++++++++++++++++++ .../trnthsn/e8ghty/keymaps/default/keymap.c | 39 ++ keyboards/trnthsn/e8ghty/mcuconf.h | 22 + keyboards/trnthsn/e8ghty/readme.md | 27 + keyboards/trnthsn/e8ghty/rules.mk | 1 + .../trnthsn/e8ghty/stm32f072/keyboard.json | 4 + .../trnthsn/e8ghty/stm32f103/keyboard.json | 4 + 9 files changed, 718 insertions(+) create mode 100644 keyboards/trnthsn/e8ghty/config.h create mode 100644 keyboards/trnthsn/e8ghty/halconf.h create mode 100644 keyboards/trnthsn/e8ghty/info.json create mode 100644 keyboards/trnthsn/e8ghty/keymaps/default/keymap.c create mode 100644 keyboards/trnthsn/e8ghty/mcuconf.h create mode 100644 keyboards/trnthsn/e8ghty/readme.md create mode 100644 keyboards/trnthsn/e8ghty/rules.mk create mode 100644 keyboards/trnthsn/e8ghty/stm32f072/keyboard.json create mode 100644 keyboards/trnthsn/e8ghty/stm32f103/keyboard.json diff --git a/keyboards/trnthsn/e8ghty/config.h b/keyboards/trnthsn/e8ghty/config.h new file mode 100644 index 000000000000..ae9f251eb6ed --- /dev/null +++ b/keyboards/trnthsn/e8ghty/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2024 ThanhSon.Mech + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define WS2812_SPI_DRIVER SPID2 +#define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/trnthsn/e8ghty/halconf.h b/keyboards/trnthsn/e8ghty/halconf.h new file mode 100644 index 000000000000..b8f0a217c4b7 --- /dev/null +++ b/keyboards/trnthsn/e8ghty/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2024 ThanhSon.Mech + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_SPI TRUE + +#include_next diff --git a/keyboards/trnthsn/e8ghty/info.json b/keyboards/trnthsn/e8ghty/info.json new file mode 100644 index 000000000000..ec4e724878e2 --- /dev/null +++ b/keyboards/trnthsn/e8ghty/info.json @@ -0,0 +1,577 @@ +{ + "manufacturer": "ThanhSon.Mech", + "keyboard_name": "E8ghty", + "maintainer": "trnthsn", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["A8", "B14", "B12", "B11", "B10", "B1", "B0", "A7", "A6", "A5", "A3", "A2", "A1", "A0", "C14", "C13", "B5"], + "rows": ["A15", "A10", "A9", "A4", "C15", "B9"] + }, + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "led_count": 26, + "sleep": true + }, + "ws2812": { + "pin": "B15", + "driver": "spi" + }, + "indicators": { + "caps_lock": "B4" + }, + "url": "", + "usb": { + "vid": "0x5453", + "pid": "0x3830", + "device_version": "0.0.1" + }, + "community_layouts": ["tkl_ansi_tsangan", "tkl_ansi_tsangan_split_bs_rshift", "tkl_f13_ansi_tsangan", "tkl_f13_ansi_tsangan_split_bs_rshift"], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, + + {"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0}, + + {"label": "Play/Pause", "matrix": [0, 13], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [3, 12], "x": 13, "y": 1.25}, + {"label": "Backspace", "matrix": [1, 13], "x": 14, "y": 1.25}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"label": "Shift", "matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 4.25}, + + {"label": "Up", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "Left", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "Down", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "Right", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, + + {"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0}, + + {"label": "Play/Pause", "matrix": [0, 13], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "PgUp", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"label": "Up", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "Left", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "Down", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "Right", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, + + {"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0}, + + {"label": "Play/Pause", "matrix": [0, 13], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [3, 12], "x": 13, "y": 1.25}, + {"label": "Backspace", "matrix": [1, 13], "x": 14, "y": 1.25}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 4.25}, + + {"label": "Up", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "Left", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "Down", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "Right", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "Fn", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [3, 12], "x": 13, "y": 1.25}, + {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 1.25}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "Shift", "matrix": [4, 13], "x": 14, "y": 4.25}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "Fn", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/trnthsn/e8ghty/keymaps/default/keymap.c b/keyboards/trnthsn/e8ghty/keymaps/default/keymap.c new file mode 100644 index 000000000000..f16b0d5eb4f4 --- /dev/null +++ b/keyboards/trnthsn/e8ghty/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ + // │Esc││F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12││F13│ │Prs│Srk│Ps │ + // └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ + // ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ + // │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ ` │Bsp│ │Ins│Hm │PgU│ + // ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ + // │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ + // ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤ └───┴───┴───┘ + // │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Ent │ + // ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ ┌───┐ + // │Sft │ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │Fn │ │ ↑ │ + // ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + // │Ctrl │Win│Alt │ │Alt │Win│Ctrl │ │ ← │ ↓ │ → │ + // └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPLY, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, UG_TOGG, _______, _______, _______, _______, UG_NEXT, UG_VALD, UG_VALU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_VOLD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/trnthsn/e8ghty/mcuconf.h b/keyboards/trnthsn/e8ghty/mcuconf.h new file mode 100644 index 000000000000..3bf940e0bec1 --- /dev/null +++ b/keyboards/trnthsn/e8ghty/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2024 ThanhSon.Mech + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/trnthsn/e8ghty/readme.md b/keyboards/trnthsn/e8ghty/readme.md new file mode 100644 index 000000000000..7a46bf2c4c94 --- /dev/null +++ b/keyboards/trnthsn/e8ghty/readme.md @@ -0,0 +1,27 @@ +# E8ghty + +![trnthsn/e8ghty](https://imgur.com/M4Oudco.png) + +A TKL keyboard PCB compatible with various keyboard cases. Supports both right USB Type-C connector and bottom USB Type-C connector, 1 FPC header, and 3 JST SH positions for a daughter board. + +* Keyboard Maintainer: [ThanhSon.Mech](https://github.com/trnthsn) +* Hardware Supported: STM32F103/STM32F072, Geon F1 xx, TKD Cycle 8, Keycult, ... +* Hardware Availability: [ThanhSon.Mech](https://www.facebook.com/ThanhSon.mech) + +Make example for this keyboard (after setting up your build environment): + + make trnthsn/e8ghty:default + +Flashing example for this keyboard: + + make trnthsn/e8ghty: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/trnthsn/e8ghty/rules.mk b/keyboards/trnthsn/e8ghty/rules.mk new file mode 100644 index 000000000000..e06e8fe182d0 --- /dev/null +++ b/keyboards/trnthsn/e8ghty/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = trnthsn/e8ghty/stm32f103 diff --git a/keyboards/trnthsn/e8ghty/stm32f072/keyboard.json b/keyboards/trnthsn/e8ghty/stm32f072/keyboard.json new file mode 100644 index 000000000000..b5d728b1cdf1 --- /dev/null +++ b/keyboards/trnthsn/e8ghty/stm32f072/keyboard.json @@ -0,0 +1,4 @@ +{ + "processor": "STM32F072", + "bootloader": "stm32-dfu", +} diff --git a/keyboards/trnthsn/e8ghty/stm32f103/keyboard.json b/keyboards/trnthsn/e8ghty/stm32f103/keyboard.json new file mode 100644 index 000000000000..5b2b6bc7d930 --- /dev/null +++ b/keyboards/trnthsn/e8ghty/stm32f103/keyboard.json @@ -0,0 +1,4 @@ +{ + "processor": "STM32F103", + "bootloader": "uf2boot", +} From cd286e4b9db186b3a42b918ff043986ab9504ca3 Mon Sep 17 00:00:00 2001 From: suikagiken <115451678+suikagiken@users.noreply.github.com> Date: Tue, 3 Dec 2024 00:30:02 +0900 Subject: [PATCH 11/29] [Keyboard] Add suika27melo (#24616) * add keyboard suika27melo * Update keyboards/suikagiken/suika27melo/keyboard.json Co-authored-by: jack * Update keyboards/suikagiken/suika27melo/keyboard.json Co-authored-by: jack * Update keyboards/suikagiken/suika27melo/readme.md Co-authored-by: jack * Update keyboards/suikagiken/suika27melo/readme.md Co-authored-by: jack * change to imgur link --------- Co-authored-by: jack --- keyboards/suikagiken/suika27melo/config.h | 5 ++ .../suikagiken/suika27melo/keyboard.json | 64 +++++++++++++++++++ .../suika27melo/keymaps/default/keymap.json | 12 ++++ .../suika27melo/keymaps/midi/keymap.json | 12 ++++ keyboards/suikagiken/suika27melo/readme.md | 44 +++++++++++++ 5 files changed, 137 insertions(+) create mode 100644 keyboards/suikagiken/suika27melo/config.h create mode 100644 keyboards/suikagiken/suika27melo/keyboard.json create mode 100644 keyboards/suikagiken/suika27melo/keymaps/default/keymap.json create mode 100644 keyboards/suikagiken/suika27melo/keymaps/midi/keymap.json create mode 100644 keyboards/suikagiken/suika27melo/readme.md diff --git a/keyboards/suikagiken/suika27melo/config.h b/keyboards/suikagiken/suika27melo/config.h new file mode 100644 index 000000000000..7d35e3c43699 --- /dev/null +++ b/keyboards/suikagiken/suika27melo/config.h @@ -0,0 +1,5 @@ +// Copyright 2025 @suikagiken +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once +#define MIDI_ADVANCED diff --git a/keyboards/suikagiken/suika27melo/keyboard.json b/keyboards/suikagiken/suika27melo/keyboard.json new file mode 100644 index 000000000000..cba256112968 --- /dev/null +++ b/keyboards/suikagiken/suika27melo/keyboard.json @@ -0,0 +1,64 @@ +{ + "manufacturer": "suikagiken", + "keyboard_name": "suika27melo", + "maintainer": "suikagiken", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "midi": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["F0", "B4", "B5", "D7", "B6", "D6", "C6", "C7", "D0"], + "rows": ["F1", "F4", "D1", "D2"] + }, + "url": "https://github.com/suikagiken/suika27melo", + "usb": { + "device_version": "1.1.0", + "vid": "0x4B48", + "pid": "0x0201" + }, + "build": { + "debounce_type": "sym_eager_pk" + }, + "debounce": 50, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix":[0, 0], "x":0, "y":0}, + {"matrix":[0, 1], "x":2, "y":0}, + {"matrix":[0, 2], "x":3, "y":0}, + {"matrix":[0, 4], "x":5, "y":0}, + {"matrix":[0, 5], "x":6, "y":0}, + {"matrix":[0, 6], "x":7, "y":0}, + {"matrix":[2, 1], "x":9, "y":0}, + {"matrix":[2, 2], "x":10, "y":0}, + {"matrix":[2, 4], "x":12, "y":0}, + {"matrix":[2, 5], "x":13, "y":0}, + {"matrix":[2, 6], "x":14, "y":0}, + {"matrix":[1, 0], "x":0, "y":1}, + {"matrix":[1, 1], "x":1.5, "y":1}, + {"matrix":[1, 2], "x":2.5, "y":1}, + {"matrix":[1, 3], "x":3.5, "y":1}, + {"matrix":[1, 4], "x":4.5, "y":1}, + {"matrix":[1, 5], "x":5.5, "y":1}, + {"matrix":[1, 6], "x":6.5, "y":1}, + {"matrix":[1, 7], "x":7.5, "y":1}, + {"matrix":[3, 1], "x":8.5, "y":1}, + {"matrix":[3, 2], "x":9.5, "y":1}, + {"matrix":[3, 3], "x":10.5, "y":1}, + {"matrix":[3, 4], "x":11.5, "y":1}, + {"matrix":[3, 5], "x":12.5, "y":1}, + {"matrix":[3, 6], "x":13.5, "y":1}, + {"matrix":[3, 7], "x":14.5, "y":1}, + {"matrix":[3, 8], "x":15.5, "y":1} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/suikagiken/suika27melo/keymaps/default/keymap.json b/keyboards/suikagiken/suika27melo/keymaps/default/keymap.json new file mode 100644 index 000000000000..dadd846e48ea --- /dev/null +++ b/keyboards/suikagiken/suika27melo/keymaps/default/keymap.json @@ -0,0 +1,12 @@ +{ + "author": "@suikagiken", + "keyboard": "suikagiken/suika85ergo", + "keymap": "default", + "layout": "LAYOUT", + "layers": [ + [ + "KC_A", "KC_D", "KC_F", "KC_I", "KC_K", "KC_M", "KC_P", "KC_R", "KC_U", "KC_W", "KC_Y", + "KC_B", "KC_C", "KC_E", "KC_G", "KC_H", "KC_J", "KC_L", "KC_N", "KC_O", "KC_Q", "KC_S", "KC_T", "KC_V", "KC_X", "KC_Z", "KC_SPC" + ] + ] +} diff --git a/keyboards/suikagiken/suika27melo/keymaps/midi/keymap.json b/keyboards/suikagiken/suika27melo/keymaps/midi/keymap.json new file mode 100644 index 000000000000..189665ddbfac --- /dev/null +++ b/keyboards/suikagiken/suika27melo/keymaps/midi/keymap.json @@ -0,0 +1,12 @@ +{ + "author": "@suikagiken", + "keyboard": "suikagiken/suika85ergo", + "keymap": "midi", + "layout": "LAYOUT", + "layers": [ + [ + "MI_OCTU", "MI_Cs1", "MI_Ds1", "MI_Fs1", "MI_Gs1", "MI_As1", "MI_Cs2", "MI_Ds2", "MI_Fs2", "MI_Gs2", "MI_As2", + "MI_OCTD", "MI_C1", "MI_D1", "MI_E1", "MI_F1", "MI_G1", "MI_A1", "MI_B1", "MI_C2", "MI_D2", "MI_E2", "MI_F2", "MI_G2", "MI_A2", "MI_B2", "MI_C2" + ] + ] +} diff --git a/keyboards/suikagiken/suika27melo/readme.md b/keyboards/suikagiken/suika27melo/readme.md new file mode 100644 index 000000000000..1aa46565f003 --- /dev/null +++ b/keyboards/suikagiken/suika27melo/readme.md @@ -0,0 +1,44 @@ +# suika27melo +(English Follows Japanese) + +## 概要 +![suika27melo1](https://i.imgur.com/iFz3c1U.jpg) +![suika27melo2](https://i.imgur.com/xR7KpVR.jpg) + +suika27meloは2オクターブのピアノ鍵盤型マクロキーパッドです。 +通常のマクロキーパッドとしても使えるほか、MIDIキーボードとしてDAWソフトの入力や演奏に使用できます。 + +* 制作 : すいか技研 (Website: https://suikagiken.net GitHub: [suikagiken](https://github.com/suikagiken) ) +* 販売 : すいか技研の[booth](https://suikagiken.booth.pm/)にて販売予定です + +## ビルドガイド + +[こちら](https://github.com/suikagiken/suika27melo/blob/main/buildguide_1.1.md)からご覧下さい。 + +--- + +## Overview + +suika27melo is a 2-octave piano shaped macro keypad. +You can use it as a normal macro keypad, or use it as a MIDI keyboard for DAW software input and musical performance. + +* Keyboard Maintainer: [suikagiken](https://github.com/suikagiken) +* Hardware Availability: Available at [booth](https://suikagiken.booth.pm/) soon. + +Make example for this keyboard (after setting up your build environment): + + make suikagiken/suika27melo:default + +Flashing example for this keyboard: + + make suikagiken/suika27melo: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 (the top left key) 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 From 28320f0cb5e42a9178c0f0b71da057b87060b358 Mon Sep 17 00:00:00 2001 From: Thanh Son Tran <62438883+trnthsn@users.noreply.github.com> Date: Mon, 2 Dec 2024 22:37:02 +0700 Subject: [PATCH 12/29] [Keyboard] Add support S6xty5Neo Rev.2 (#24631) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update support S6xty5 * Delete chconf.h * Update manufacturer, community layout for hhkb * Update layout * fix row index * Update tyson60s * Update community layout and layout name * Update remove rgb test mode * Update capslock led * Apply suggestions from code review Co-authored-by: Duncan Sutherland * Add support for S6xty5Neo Rev.2 * Remove deprecated s6xty5 * Update layout * Apply suggestions from code review Co-authored-by: Duncan Sutherland * Move mcuconf and config to outer folder --------- Co-authored-by: Trần Thanh Sơn Co-authored-by: Duncan Sutherland --- keyboards/trnthsn/s6xty5neor2/config.h | 23 ++ keyboards/trnthsn/s6xty5neor2/halconf.h | 22 ++ keyboards/trnthsn/s6xty5neor2/info.json | 255 ++++++++++++++++++ .../s6xty5neor2/keymaps/default/keymap.c | 41 +++ keyboards/trnthsn/s6xty5neor2/mcuconf.h | 22 ++ keyboards/trnthsn/s6xty5neor2/readme.md | 27 ++ keyboards/trnthsn/s6xty5neor2/rules.mk | 1 + .../s6xty5neor2/stm32f072/keyboard.json | 4 + .../s6xty5neor2/stm32f103/keyboard.json | 4 + 9 files changed, 399 insertions(+) create mode 100644 keyboards/trnthsn/s6xty5neor2/config.h create mode 100644 keyboards/trnthsn/s6xty5neor2/halconf.h create mode 100644 keyboards/trnthsn/s6xty5neor2/info.json create mode 100644 keyboards/trnthsn/s6xty5neor2/keymaps/default/keymap.c create mode 100644 keyboards/trnthsn/s6xty5neor2/mcuconf.h create mode 100644 keyboards/trnthsn/s6xty5neor2/readme.md create mode 100644 keyboards/trnthsn/s6xty5neor2/rules.mk create mode 100644 keyboards/trnthsn/s6xty5neor2/stm32f072/keyboard.json create mode 100644 keyboards/trnthsn/s6xty5neor2/stm32f103/keyboard.json diff --git a/keyboards/trnthsn/s6xty5neor2/config.h b/keyboards/trnthsn/s6xty5neor2/config.h new file mode 100644 index 000000000000..ae9f251eb6ed --- /dev/null +++ b/keyboards/trnthsn/s6xty5neor2/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2024 ThanhSon.Mech + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define WS2812_SPI_DRIVER SPID2 +#define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/trnthsn/s6xty5neor2/halconf.h b/keyboards/trnthsn/s6xty5neor2/halconf.h new file mode 100644 index 000000000000..337ed5da182d --- /dev/null +++ b/keyboards/trnthsn/s6xty5neor2/halconf.h @@ -0,0 +1,22 @@ +/* Copyright 2024 ThanhSon.Mech + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD +#include_next diff --git a/keyboards/trnthsn/s6xty5neor2/info.json b/keyboards/trnthsn/s6xty5neor2/info.json new file mode 100644 index 000000000000..ba20dbc2ba93 --- /dev/null +++ b/keyboards/trnthsn/s6xty5neor2/info.json @@ -0,0 +1,255 @@ +{ + "manufacturer": "ThanhSon.Mech", + "keyboard_name": "S6xty5Neo Rev.2", + "maintainer": "trnthsn", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["A4", "A3", "A2", "A1", "A0", "A5", "A8", "B14", "B12", "B11", "B10", "B1", "B0", "A7", "A6"], + "rows": ["B4", "A10", "A9", "B7", "B9"] + }, + "indicators": { + "caps_lock": "C13" + }, + "url": "", + "usb": { + "vid": "0x5453", + "pid": "0x4E45", + "device_version": "0.0.1" + }, + "community_layouts": ["65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs"], + "layouts": { + "LAYOUT_all": { + "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": [2, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan": { + "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, "w": 2}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan_split_bs": { + "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": [2, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/trnthsn/s6xty5neor2/keymaps/default/keymap.c b/keyboards/trnthsn/s6xty5neor2/keymaps/default/keymap.c new file mode 100644 index 000000000000..bc6c2e32715f --- /dev/null +++ b/keyboards/trnthsn/s6xty5neor2/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + // │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│Del│ + // ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ + // │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │PgU│ + // ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + // │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgD│ + // ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + // │Shf │Shf│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│ + // ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ + // │Ctrl │GUI│ Alt │ │ Fn │ │ ← │ ↓ │ → │ + // └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ + + + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + MO(2) , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/trnthsn/s6xty5neor2/mcuconf.h b/keyboards/trnthsn/s6xty5neor2/mcuconf.h new file mode 100644 index 000000000000..3bf940e0bec1 --- /dev/null +++ b/keyboards/trnthsn/s6xty5neor2/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2024 ThanhSon.Mech + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/trnthsn/s6xty5neor2/readme.md b/keyboards/trnthsn/s6xty5neor2/readme.md new file mode 100644 index 000000000000..6c7e595abefd --- /dev/null +++ b/keyboards/trnthsn/s6xty5neor2/readme.md @@ -0,0 +1,27 @@ +# S6xty5Neo Rev.2 + +![S6xty5Neo Rev.2](https://imgur.com/C6X3fCI.png) + +A 65% keyboard PCB compatible with Neo65. Supports Neo65 keyboard like an out-of-the-box PCB without any modification. + +* Keyboard Maintainer: [Trnthsn](https://github.com/trnthsn) +* Hardware Supported: STM32, S6xty5Neo Rev.2, Neo65 +* Hardware Availability: [ThanhSon.Mech](https://www.facebook.com/ThanhSon.mech) + +Make example for this keyboard (after setting up your build environment): + + make trnthsn/s6xty5neor2:default + +Flashing example for this keyboard: + + make trnthsn/s6xty5neor2: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/trnthsn/s6xty5neor2/rules.mk b/keyboards/trnthsn/s6xty5neor2/rules.mk new file mode 100644 index 000000000000..1fc77fba7289 --- /dev/null +++ b/keyboards/trnthsn/s6xty5neor2/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = trnthsn/s6xty5neor2/stm32f103 diff --git a/keyboards/trnthsn/s6xty5neor2/stm32f072/keyboard.json b/keyboards/trnthsn/s6xty5neor2/stm32f072/keyboard.json new file mode 100644 index 000000000000..b5d728b1cdf1 --- /dev/null +++ b/keyboards/trnthsn/s6xty5neor2/stm32f072/keyboard.json @@ -0,0 +1,4 @@ +{ + "processor": "STM32F072", + "bootloader": "stm32-dfu", +} diff --git a/keyboards/trnthsn/s6xty5neor2/stm32f103/keyboard.json b/keyboards/trnthsn/s6xty5neor2/stm32f103/keyboard.json new file mode 100644 index 000000000000..5b2b6bc7d930 --- /dev/null +++ b/keyboards/trnthsn/s6xty5neor2/stm32f103/keyboard.json @@ -0,0 +1,4 @@ +{ + "processor": "STM32F103", + "bootloader": "uf2boot", +} From e4e66c61ad9278124699dd452c7f7e5518e772a3 Mon Sep 17 00:00:00 2001 From: Thomas Queste Date: Mon, 2 Dec 2024 17:48:26 +0100 Subject: [PATCH 13/29] [murcielago] Enable split watchdog (#24463) --- keyboards/murcielago/rev1/config.h | 1 + .../murcielago/rev1/keymaps/default/keymap.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/keyboards/murcielago/rev1/config.h b/keyboards/murcielago/rev1/config.h index 17f316d6af8b..0d61c034de65 100644 --- a/keyboards/murcielago/rev1/config.h +++ b/keyboards/murcielago/rev1/config.h @@ -20,6 +20,7 @@ along with this program. If not, see . /* split options, use EEPROM for side detection */ #define EE_HANDS #define SPLIT_USB_DETECT +#define SPLIT_WATCHDOG_ENABLE /* * Feature disable options diff --git a/keyboards/murcielago/rev1/keymaps/default/keymap.c b/keyboards/murcielago/rev1/keymaps/default/keymap.c index 63fbb04f7bf5..8dc5e2107485 100644 --- a/keyboards/murcielago/rev1/keymaps/default/keymap.c +++ b/keyboards/murcielago/rev1/keymaps/default/keymap.c @@ -1,3 +1,19 @@ +/* +Copyright 2020 elagil + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ #include QMK_KEYBOARD_H enum layers { From 09dfbf8efe5655947b92361a6bdbf8aa2adc0b88 Mon Sep 17 00:00:00 2001 From: Josh Hinnebusch Date: Mon, 2 Dec 2024 11:49:11 -0500 Subject: [PATCH 14/29] [Keyboard] Add h88 gen2 (#24454) * initial commit * small updates * matrix fix * fix rgb lighting * updates * fix rgb pin * pin fixes * readme update * json formatting * Update keyboards/hineybush/h88_g2/config.h Co-authored-by: Drashna Jaelre --------- Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Drashna Jaelre --- keyboards/hineybush/h88_g2/config.h | 19 + keyboards/hineybush/h88_g2/halconf.h | 20 + keyboards/hineybush/h88_g2/keyboard.json | 1174 +++++++++++++++++ .../hineybush/h88_g2/keymaps/default/keymap.c | 42 + keyboards/hineybush/h88_g2/mcuconf.h | 21 + keyboards/hineybush/h88_g2/readme.md | 27 + 6 files changed, 1303 insertions(+) create mode 100644 keyboards/hineybush/h88_g2/config.h create mode 100644 keyboards/hineybush/h88_g2/halconf.h create mode 100644 keyboards/hineybush/h88_g2/keyboard.json create mode 100644 keyboards/hineybush/h88_g2/keymaps/default/keymap.c create mode 100644 keyboards/hineybush/h88_g2/mcuconf.h create mode 100644 keyboards/hineybush/h88_g2/readme.md diff --git a/keyboards/hineybush/h88_g2/config.h b/keyboards/hineybush/h88_g2/config.h new file mode 100644 index 000000000000..ccde4ac624ea --- /dev/null +++ b/keyboards/hineybush/h88_g2/config.h @@ -0,0 +1,19 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL 1 +#define BACKLIGHT_PAL_MODE 1 diff --git a/keyboards/hineybush/h88_g2/halconf.h b/keyboards/hineybush/h88_g2/halconf.h new file mode 100644 index 000000000000..976d17d8919f --- /dev/null +++ b/keyboards/hineybush/h88_g2/halconf.h @@ -0,0 +1,20 @@ +/* Copyright 2024 Josh Hinnebusch + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/hineybush/h88_g2/keyboard.json b/keyboards/hineybush/h88_g2/keyboard.json new file mode 100644 index 000000000000..983cbcc1f587 --- /dev/null +++ b/keyboards/hineybush/h88_g2/keyboard.json @@ -0,0 +1,1174 @@ +{ + "manufacturer": "Hiney LLC", + "keyboard_name": "h88_g2", + "maintainer": "hineybush", + "backlight": { + "pin": "A6" + }, + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "backlight": true, + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "indicators": { + "caps_lock": "B12", + "scroll_lock": "B14" + }, + "matrix_pins": { + "cols": ["B11", "B10", "B2", "B1", "B0", "A7", "A5", "A4", "A3", "F1", "C15", "C14", "F0", "C13", "B9", "B8", "B5"], + "rows": ["A15", "B3", "B4", "A0", "B6", "B7"] + }, + "processor": "STM32F072", + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "brightness_steps": 8, + "default": { + "val": 128 + }, + "led_count": 24, + "max_brightness": 200, + "saturation_steps": 8, + "sleep": true + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0002", + "vid": "0x4069" + }, + "ws2812": { + "pin": "B15" + }, + "community_layouts": ["tkl_f13_ansi", "tkl_f13_ansi_split_bs_rshift", "tkl_f13_ansi_tsangan", "tkl_f13_ansi_tsangan_split_bs_rshift", "tkl_f13_iso", "tkl_f13_iso_split_bs_rshift", "tkl_f13_iso_tsangan", "tkl_f13_iso_tsangan_split_bs_rshift", "tkl_f13_iso_wkl", "tkl_f13_iso_wkl_split_bs_rshift"], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 11], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 11], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_wkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 11], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 11], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso_wkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso_wkl_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/hineybush/h88_g2/keymaps/default/keymap.c b/keyboards/hineybush/h88_g2/keymaps/default/keymap.c new file mode 100644 index 000000000000..d9dbaf08e706 --- /dev/null +++ b/keyboards/hineybush/h88_g2/keymaps/default/keymap.c @@ -0,0 +1,42 @@ +// Copyright 2023 Josh Hinnebusch +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴───────┼───┴┬────┬────┤ ┌───┼───┼───┐ + * │Ctrl│GUI │Alt │ │ Fn │ GUI│Ctrl│ │ ← │ ↓ │ → │ + * └────┴────┴────┴─────────────────────────────┴────┴────┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_0, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_TOGG, UG_NEXT, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, UG_VALD, UG_VALU, KC_TRNS, BL_TOGG, BL_DOWN, BL_UP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + +}; diff --git a/keyboards/hineybush/h88_g2/mcuconf.h b/keyboards/hineybush/h88_g2/mcuconf.h new file mode 100644 index 000000000000..7e226e43711d --- /dev/null +++ b/keyboards/hineybush/h88_g2/mcuconf.h @@ -0,0 +1,21 @@ +/* Copyright 2024 Josh Hinnebusch + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/hineybush/h88_g2/readme.md b/keyboards/hineybush/h88_g2/readme.md new file mode 100644 index 000000000000..e5cd60b432dc --- /dev/null +++ b/keyboards/hineybush/h88_g2/readme.md @@ -0,0 +1,27 @@ +# h88_g2 + +[h88_g2](https://i.imgur.com/t7chDf8h.png) + +New generation of the h88 keyboard PCB platform with an STM32 microcontroller. + +* Keyboard Maintainer: [Josh Hinnebusch](https://github.com/hineybush) +* Hardware Supported: H88 G2 PCB w/ STM32F072 MCU +* Hardware Availability: [hineybush.com](https://hineybush.com) + +Make example for this keyboard (after setting up your build environment): + + make hineybush/h88_g2:default + +Flashing example for this keyboard: + + make hineybush/h88_g2: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 Escape and plug in the keyboard. +* **Physical reset button**: Press the button on the back of the PCB for a minumum of 3 seconds, then release. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. From 50966934b2d7fd30514068cf262caf2213630159 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Tue, 3 Dec 2024 02:10:01 +0900 Subject: [PATCH 15/29] Add new keyboard "Jourkey" (#24409) * jourkey * rotary encoder * fix keymap * jourkey * format json * Update keyboards/takashicompany/jourkey/readme.md Co-authored-by: Joel Challis * fix layout * Update readme.md --------- Co-authored-by: Joel Challis --- .../takashicompany/jourkey/keyboard.json | 51 +++++++++++++++++++ .../jourkey/keymaps/default/keymap.c | 18 +++++++ .../jourkey/keymaps/default/rules.mk | 1 + keyboards/takashicompany/jourkey/readme.md | 41 +++++++++++++++ 4 files changed, 111 insertions(+) create mode 100644 keyboards/takashicompany/jourkey/keyboard.json create mode 100644 keyboards/takashicompany/jourkey/keymaps/default/keymap.c create mode 100644 keyboards/takashicompany/jourkey/keymaps/default/rules.mk create mode 100644 keyboards/takashicompany/jourkey/readme.md diff --git a/keyboards/takashicompany/jourkey/keyboard.json b/keyboards/takashicompany/jourkey/keyboard.json new file mode 100644 index 000000000000..01847cfa53c5 --- /dev/null +++ b/keyboards/takashicompany/jourkey/keyboard.json @@ -0,0 +1,51 @@ +{ + "manufacturer": "takashicompany", + "keyboard_name": "Jourkey", + "maintainer": "takashicompany", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "D1", "pin_b": "D0"} + ] + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "direct": [ + ["D4", "C6", "D7", "E6", "B4", "F5", "F6", "F7", "B5", "B1", "B3", "B2", "B6"] + ] + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0062", + "vid": "0x7463" + }, + "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": [0, 5], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [0, 6], "x": 1.5, "y": 1}, + {"matrix": [0, 7], "x": 2.5, "y": 1}, + {"matrix": [0, 8], "x": 3.5, "y": 1, "w": 1.5}, + {"matrix": [0, 9], "x": 0, "y": 2, "w":1.75}, + {"matrix": [0, 10], "x": 1.75, "y": 2}, + {"matrix": [0, 11], "x": 2.75, "y": 2}, + {"matrix": [0, 12], "x": 3.75, "y": 2, "w":1.25} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/takashicompany/jourkey/keymaps/default/keymap.c b/keyboards/takashicompany/jourkey/keymaps/default/keymap.c new file mode 100644 index 000000000000..fa642bc6e2e2 --- /dev/null +++ b/keyboards/takashicompany/jourkey/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( + KC_ESC, KC_1, KC_2, KC_3, KC_4, + KC_TAB, KC_Q, KC_W, KC_ENT, + KC_LCTL, KC_A, KC_S, KC_RSFT + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN) } +}; +#endif diff --git a/keyboards/takashicompany/jourkey/keymaps/default/rules.mk b/keyboards/takashicompany/jourkey/keymaps/default/rules.mk new file mode 100644 index 000000000000..a40474b4d5c7 --- /dev/null +++ b/keyboards/takashicompany/jourkey/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/takashicompany/jourkey/readme.md b/keyboards/takashicompany/jourkey/readme.md new file mode 100644 index 000000000000..b76dd7cbb8cd --- /dev/null +++ b/keyboards/takashicompany/jourkey/readme.md @@ -0,0 +1,41 @@ +# Joukey + +![takashicompany/jourkey](https://i.imgur.com/pCrTbKn.jpeg) + +Jourkey was designed as “a keyboard for taking pictures with scenery while traveling. + +The layout is like a smaller version of a traditional keyboard. +Decorate it with your favorite keycaps and case to make it your travel companion. + +Of course, it can also be used as a macro pad. + +--- + +Jourkeyは「旅先で景色と写真を撮るためのキーボード」としてデザインされました。 + +従来のキーボードを小さくしたようなレイアウトです。 +お気に入りのキーキャップやケースでデコレーションして貴方の旅のお供になります。 + +もちろん、マクロパッドとして使用することも可能です。 + +* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany) +* Hardware Supported: Jourkey PCB, Pro Micro +* Hardware Availability: https://github.com/takashicompany/jourkey + +Make example for this keyboard (after setting up your build environment): + + make takashicompany/jourkey:default + +Flashing example for this keyboard: + + make takashicompany/jourkey: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 From c8fe565ee6528942cfc71187e32237b39ab7320a Mon Sep 17 00:00:00 2001 From: VeyPatch <126267034+VeyPatch@users.noreply.github.com> Date: Mon, 2 Dec 2024 22:26:10 +0100 Subject: [PATCH 16/29] [Keyboard] Add splitkb.com's Halcyon Kyria rev4 (#24512) * Add Halcyon Kyria Rev4 * Remove bootmagic and unused features * Fix encoderindex * Update readme.md * Remove rgblight * Implement requested changes * Add encoder update user * Remove rules.mk and add VIK configuration * Move options to config.h * Update RGB keycodes (qmk#24484) * implement changes --------- Co-authored-by: harvey-splitkb <126267034+harvey-splitkb@users.noreply.github.com> --- keyboards/splitkb/halcyon/kyria/info.json | 68 +++++ .../halcyon/kyria/keymaps/default/keymap.c | 206 +++++++++++++++ .../halcyon/kyria/keymaps/default/readme.md | 242 ++++++++++++++++++ keyboards/splitkb/halcyon/kyria/readme.md | 31 +++ keyboards/splitkb/halcyon/kyria/rev4/config.h | 32 +++ .../splitkb/halcyon/kyria/rev4/halconf.h | 14 + .../splitkb/halcyon/kyria/rev4/keyboard.json | 168 ++++++++++++ .../splitkb/halcyon/kyria/rev4/mcuconf.h | 14 + keyboards/splitkb/halcyon/kyria/rev4/rev4.c | 28 ++ 9 files changed, 803 insertions(+) create mode 100755 keyboards/splitkb/halcyon/kyria/info.json create mode 100755 keyboards/splitkb/halcyon/kyria/keymaps/default/keymap.c create mode 100755 keyboards/splitkb/halcyon/kyria/keymaps/default/readme.md create mode 100755 keyboards/splitkb/halcyon/kyria/readme.md create mode 100755 keyboards/splitkb/halcyon/kyria/rev4/config.h create mode 100644 keyboards/splitkb/halcyon/kyria/rev4/halconf.h create mode 100755 keyboards/splitkb/halcyon/kyria/rev4/keyboard.json create mode 100644 keyboards/splitkb/halcyon/kyria/rev4/mcuconf.h create mode 100644 keyboards/splitkb/halcyon/kyria/rev4/rev4.c diff --git a/keyboards/splitkb/halcyon/kyria/info.json b/keyboards/splitkb/halcyon/kyria/info.json new file mode 100755 index 000000000000..8e49bb12f3bf --- /dev/null +++ b/keyboards/splitkb/halcyon/kyria/info.json @@ -0,0 +1,68 @@ +{ + "manufacturer": "splitkb.com", + "maintainer": "splitkb.com", + "url": "https://splitkb.com", + "usb": { + "device_version": "1.0.0", + "vid": "0x8D1D" + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_split_3x6_5" + }, + "layouts": { + "LAYOUT_split_3x6_5": { + "layout": [ + {"label": "L06", "matrix": [0, 6], "x": 0, "y": 0.75}, + {"label": "L05", "matrix": [0, 5], "x": 1, "y": 0.75}, + {"label": "L04", "matrix": [0, 4], "x": 2, "y": 0.25}, + {"label": "L03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "L02", "matrix": [0, 2], "x": 4, "y": 0.25}, + {"label": "L01", "matrix": [0, 1], "x": 5, "y": 0.5}, + {"label": "R01", "matrix": [4, 1], "x": 10.5, "y": 0.5}, + {"label": "R02", "matrix": [4, 2], "x": 11.5, "y": 0.25}, + {"label": "R03", "matrix": [4, 3], "x": 12.5, "y": 0}, + {"label": "R04", "matrix": [4, 4], "x": 13.5, "y": 0.25}, + {"label": "R05", "matrix": [4, 5], "x": 14.5, "y": 0.75}, + {"label": "R06", "matrix": [4, 6], "x": 15.5, "y": 0.75}, + {"label": "L12", "matrix": [1, 6], "x": 0, "y": 1.75}, + {"label": "L11", "matrix": [1, 5], "x": 1, "y": 1.75}, + {"label": "L10", "matrix": [1, 4], "x": 2, "y": 1.25}, + {"label": "L09", "matrix": [1, 3], "x": 3, "y": 1}, + {"label": "L08", "matrix": [1, 2], "x": 4, "y": 1.25}, + {"label": "L07", "matrix": [1, 1], "x": 5, "y": 1.5}, + {"label": "R07", "matrix": [5, 1], "x": 10.5, "y": 1.5}, + {"label": "R08", "matrix": [5, 2], "x": 11.5, "y": 1.25}, + {"label": "R09", "matrix": [5, 3], "x": 12.5, "y": 1}, + {"label": "R10", "matrix": [5, 4], "x": 13.5, "y": 1.25}, + {"label": "R11", "matrix": [5, 5], "x": 14.5, "y": 1.75}, + {"label": "R12", "matrix": [5, 6], "x": 15.5, "y": 1.75}, + {"label": "L20", "matrix": [2, 6], "x": 0, "y": 2.75}, + {"label": "L19", "matrix": [2, 5], "x": 1, "y": 2.75}, + {"label": "L18", "matrix": [2, 4], "x": 2, "y": 2.25}, + {"label": "L17", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "L16", "matrix": [2, 2], "x": 4, "y": 2.25}, + {"label": "L15", "matrix": [2, 1], "x": 5, "y": 2.5}, + {"label": "L14", "matrix": [3, 3], "x": 6, "y": 3}, + {"label": "L13", "matrix": [2, 0], "x": 7, "y": 3.25}, + {"label": "R13", "matrix": [6, 0], "x": 8.5, "y": 3.25}, + {"label": "R14", "matrix": [7, 3], "x": 9.5, "y": 3}, + {"label": "R15", "matrix": [6, 1], "x": 10.5, "y": 2.5}, + {"label": "R16", "matrix": [6, 2], "x": 11.5, "y": 2.25}, + {"label": "R17", "matrix": [6, 3], "x": 12.5, "y": 2}, + {"label": "R18", "matrix": [6, 4], "x": 13.5, "y": 2.25}, + {"label": "R19", "matrix": [6, 5], "x": 14.5, "y": 2.75}, + {"label": "R20", "matrix": [6, 6], "x": 15.5, "y": 2.75}, + {"label": "L25", "matrix": [3, 4], "x": 2.5, "y": 3.25}, + {"label": "L24", "matrix": [3, 2], "x": 3.5, "y": 3.25}, + {"label": "L23", "matrix": [3, 1], "x": 4.5, "y": 3.5}, + {"label": "L22", "matrix": [3, 5], "x": 5.5, "y": 4}, + {"label": "L21", "matrix": [3, 0], "x": 6.5, "y": 4.25}, + {"label": "R21", "matrix": [7, 0], "x": 9, "y": 4.25}, + {"label": "R22", "matrix": [7, 5], "x": 10, "y": 4}, + {"label": "R23", "matrix": [7, 1], "x": 11, "y": 3.5}, + {"label": "R24", "matrix": [7, 2], "x": 12, "y": 3.25}, + {"label": "R25", "matrix": [7, 4], "x": 13, "y": 3.25} + ] + } + } +} diff --git a/keyboards/splitkb/halcyon/kyria/keymaps/default/keymap.c b/keyboards/splitkb/halcyon/kyria/keymaps/default/keymap.c new file mode 100755 index 000000000000..78fd8d4fab0a --- /dev/null +++ b/keyboards/splitkb/halcyon/kyria/keymaps/default/keymap.c @@ -0,0 +1,206 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY = 0, + _DVORAK, + _COLEMAK_DH, + _NAV, + _SYM, + _FUNCTION, + _ADJUST, +}; + + +// Aliases for readability +#define QWERTY DF(_QWERTY) +#define COLEMAK DF(_COLEMAK_DH) +#define DVORAK DF(_DVORAK) + +#define SYM MO(_SYM) +#define NAV MO(_NAV) +#define FKEYS MO(_FUNCTION) +#define ADJUST MO(_ADJUST) + +#define CTL_ESC MT(MOD_LCTL, KC_ESC) +#define CTL_QUOT MT(MOD_RCTL, KC_QUOTE) +#define CTL_MINS MT(MOD_RCTL, KC_MINUS) +#define ALT_ENT MT(MOD_LALT, KC_ENT) + +// Note: LAlt/Enter (ALT_ENT) is not the same thing as the keyboard shortcut Alt+Enter. +// The notation `mod/tap` denotes a key that activates the modifier `mod` when held down, and +// produces the key `tap` when tapped (i.e. pressed and released). + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * Base Layer: QWERTY + * + * ,-------------------------------------------. ,-------------------------------------------. + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * |Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "| + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + * | | | Enter| | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_QWERTY] = LAYOUT( + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , KC_BSPC, + CTL_ESC , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H, KC_J , KC_K , KC_L ,KC_SCLN,CTL_QUOT, + KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_N, KC_M ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, + ADJUST , KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP + ), + +/* + * Base Layer: Dvorak + * + * ,-------------------------------------------. ,-------------------------------------------. + * | Tab | ' " | , < | . > | P | Y | | F | G | C | R | L | Bksp | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * |Ctrl/Esc| A | O | E | U | I | | D | H | T | N | S |Ctrl/- _| + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | LShift | ; : | Q | J | K | X | [ { |CapsLk| |F-keys| ] } | B | M | W | V | Z | RShift | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + * | | | Enter| | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_DVORAK] = LAYOUT( + KC_TAB ,KC_QUOTE,KC_COMM, KC_DOT, KC_P , KC_Y , KC_F, KC_G , KC_C , KC_R , KC_L , KC_BSPC, + CTL_ESC , KC_A , KC_O , KC_E , KC_U , KC_I , KC_D, KC_H , KC_T , KC_N , KC_S , CTL_MINS, + KC_LSFT ,KC_SCLN, KC_Q , KC_J , KC_K , KC_X , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_B, KC_M , KC_W , KC_V , KC_Z , KC_RSFT, + ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP + ), + +/* + * Base Layer: Colemak DH + * + * ,-------------------------------------------. ,-------------------------------------------. + * | Tab | Q | W | F | P | B | | J | L | U | Y | ; : | Bksp | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * |Ctrl/Esc| A | R | S | T | G | | M | N | E | I | O |Ctrl/' "| + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | LShift | Z | X | C | D | V | [ { |CapsLk| |F-keys| ] } | K | H | , < | . > | / ? | RShift | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + * | | | Enter| | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_COLEMAK_DH] = LAYOUT( + KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_B , KC_J, KC_L , KC_U , KC_Y ,KC_SCLN, KC_BSPC, + CTL_ESC , KC_A , KC_R , KC_S , KC_T , KC_G , KC_M, KC_N , KC_E , KC_I , KC_O , CTL_QUOT, + KC_LSFT , KC_Z , KC_X , KC_C , KC_D , KC_V , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_K, KC_H ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, + ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP + ), + +/* + * Nav Layer: Media, navigation + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | | | | | | | PgUp | Home | ↑ | End | VolUp| Delete | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | GUI | Alt | Ctrl | Shift| | | PgDn | ← | ↓ | → | VolDn| Insert | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | | | | | |ScLck | | | | Pause|M Prev|M Play|M Next|VolMut| PrtSc | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_NAV] = LAYOUT( + _______, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_VOLU, KC_DEL, + _______, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, KC_INS, + _______, _______, _______, _______, _______, _______, _______, KC_SCRL, _______, _______,KC_PAUSE, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_PSCR, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + * Sym Layer: Numbers and symbols + * + * ,-------------------------------------------. ,-------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | = | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | \ | : | ; | - | [ | { | | | | } | ] | _ | , | . | / | ? | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_SYM] = LAYOUT( + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_EQL , + KC_TILD , KC_EXLM, KC_AT , KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS, + KC_PIPE , KC_BSLS, KC_COLN, KC_SCLN, KC_MINS, KC_LBRC, KC_LCBR, _______, _______, KC_RCBR, KC_RBRC, KC_UNDS, KC_COMM, KC_DOT, KC_SLSH, KC_QUES, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + * Function Layer: Function keys + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | F9 | F10 | F11 | F12 | | | | | | | | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | F5 | F6 | F7 | F8 | | | | Shift| Ctrl | Alt | GUI | | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | F1 | F2 | F3 | F4 | | | | | | | | | | | | | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_FUNCTION] = LAYOUT( + _______, KC_F9 , KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , _______, _______, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, _______, + _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + * Adjust Layer: Default layer settings, RGB + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | | |QWERTY| | | | | | | | | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | | |Dvorak| | | | TOG | SAI | HUI | VAI | MOD | | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | |Colmak| | | | | | | | | SAD | HUD | VAD | RMOD | | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_ADJUST] = LAYOUT( + _______, _______, _______, QWERTY , _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, DVORAK , _______, _______, RM_TOGG, RM_SATU, RM_HUEU, RM_VALU, RM_NEXT, _______, + _______, _______, _______, COLEMAK, _______, _______,_______, _______, _______, _______, _______, RM_SATD, RM_HUED, RM_VALD, RM_PREV, _______, + _______, _______, _______,_______, _______, _______, _______, _______, _______, _______ + ), + +// /* +// * Layer template +// * +// * ,-------------------------------------------. ,-------------------------------------------. +// * | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------| |------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | | | | | +// * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' +// * | | | | | | | | | | | | +// * | | | | | | | | | | | | +// * `----------------------------------' `----------------------------------' +// */ +// [_LAYERINDEX] = LAYOUT( +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +// ), +// +}; \ No newline at end of file diff --git a/keyboards/splitkb/halcyon/kyria/keymaps/default/readme.md b/keyboards/splitkb/halcyon/kyria/keymaps/default/readme.md new file mode 100755 index 000000000000..e56bbbb773cc --- /dev/null +++ b/keyboards/splitkb/halcyon/kyria/keymaps/default/readme.md @@ -0,0 +1,242 @@ +# Halcyon Kyria's Default Keymap + +![KLE render of the default Halcyon Kyria keymap with QWERTY as the base layer. Layers are shown in sublegends.](https://i.ibb.co/RQZx2dY/default-kyria2.jpg) + + +The default keymap contains 5 layers which allows it to include all keys found on an ANSI layout TKL keyboard plus media keys. + +The five different layers are the following: +1. Base layer (QWERTY, Colemak-DH or Dvorak) +2. Navigation layer +3. Symbols/Numbers layer +4. Function layer +5. Adjust layer + +## Base layer(s) +``` +Base Layer: - + +,-------------------------------------------. ,-------------------------------------------. +| Tab | - | - | - | - | - | | - | - | - | - | - | Bksp | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +|Ctrl/Esc| - | - | - | - | - | | - | - | - | - | - |Ctrl/ - | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| LShift | - | - | - | - | - | [ { |CapsLk| |F-Keys| ] } | - | - | - | - | - | RShift | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + | | | Enter| | | | | | | | | + `----------------------------------' `----------------------------------' +``` +Three different well-known keyboard layouts are provided to fill in the placeholder `-` keys: QWERTY, Colemak-DH, and Dvorak. The default layer can be changed at runtime, more info on that in the section on the [adjust layer](#adjust-layer). + +For the rest of this write-up, the base layer will be assumed to be QWERTY and will be used as a reference to describe physical keys, e.g. “B key” vs, the much more verbose, “lower inner index key”. + +``` +Base Layer: QWERTY + +,-------------------------------------------. ,-------------------------------------------. +| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "| +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + | | | Enter| | | | | | | | | + `----------------------------------' `----------------------------------' +``` + +Aside from variations in the alpha cluster, the rest of the base keys remain the same and are designed to feel familiar. + +![Step-by-step animation of the transformation of an ortholinear TKL to a Kyria](https://i.imgur.com/uVDCOek.gif) + +
+After making transformations to the classic ANSI US QWERTY TKL 60% to arrive to the layout of the Kyria, as illustrated in the animation above, the result looks like this: + +``` +,-------------------------------------------. ,-------------------------------------------. +| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +| Cap Lk | A | S | D | F | G | | H | J | K | L | ; : | ' " | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | | | | | | N | M | , < | . > | / ? | RShift | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + | LCtrl| LGUI | LAlt | Space| | | | Space| AltGr| RGUI | Menu | + | | | | | | | | | | | | + `----------------------------------' '----------------------------------' +``` + +First thing to notice is the presence of blank keys. To fill in the blank keys above the Space keys, we can take inspiration from other split keyboards featuring an extra inner index column on each half. A common mapping for those kind of keys are the bracket keys that got removed in the fourth step of the animated transformation. The thumb keys besides Spaces is prime real estate for dedicated layer-switching keys. It doesn't matter on which side is assigned the sym-layer-switch key but it helps to keep the nav-layer-switch on the left in order to keep the arrow keys on the right side like on a classic keyboard, so we'll put nav on the left and sym on the right. We'll address the remaining blank thumb keys later. + +The base layer is starting to form but there remains some flaws. One glaring issue is the position of Control. Control is a very commonly used function but the key on which it sits right now is way too tucked in under the hand to be able to press it comfortably with either the thumb or the pinky from resting position. In fact, installing a rotary encoder there is a common move among Kyria users and I guarantee you that activating Control by holding down a rotary encoder does not spark joy. Instead, let's employ a popular trick that involves remapping the current Caps Lock key, which is positioned at a comfortable position on the keyboard, to Control. + +We can go further though; a variant of this trick makes the Control key produce Escape when tapped. This is called a “modtap”. There is no use to tapping Control by itself without chording it with another key and there is no use to holding down the Esc key so why not combine the two into a single key? + +All of this leaves us with three blank keys. + +``` +,-------------------------------------------. ,-------------------------------------------. +| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : | ' " | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | [ { | | | | ] } | N | M | , < | . > | / ? | RShift | +`--------+-------------+--------------------+------+------| |------+------+--------------------+------+---------------' + | | LGUI | LAlt | Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + | | | | | | | | | | | | + `----------------------------------' '----------------------------------' +``` + +These keys are not easily reachable while touch typing (that is, not reachable without picking up your hand) and should thus be associated with functions that you are not likely to be typed within a stream of text. The idea is that if you have to pick up your hand to hit a key, you want it to be at a time when you are likely to be pausing your interaction with the machine, rather than in the midst of a flurry of typing. They're thus well suited for accessing the adjust layer and the function layer. We can also toss in Caps Lock even though it is an editing-type function that gets used within a stream of text because shouting in ALL-CAPS should be a deliberate action. + +``` +,-------------------------------------------. ,-------------------------------------------. +| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : | ' " | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + |Adjust| LGUI | LAlt | Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' +``` + +The next glaring issue is the absence of an Enter key on the current base layer this far. Enter is a very frequently used key so it deserves to be placed at a good spot in the keymap. The best way to insert it in the keymap with minimal changes to the current layout is to use modtaps. A tempting solution is to turn the RShift key into a RShift/Enter modtap but that can result in chat messages sent too frustratingly early when you're not used to it. Using GUI is also sub-optimal because tapping the GUI modifier actually has a use as opposed to taps of the Control or the Shift key. Pressing and releasing the GUI key by itself opens the App menu in many desktop environments. The natural choice is thus LAlt/Enter. That way, Enter is 1u away from resting thumb position and is unlikely to get accidentally activated because Alt is very rarely used in the midst of prose. + +Finally, we're one Quality-Of-Life update away from the actual base layer. Ctrl/' " not only preserves symmetry in the keymap with Ctrl/Esc but also helps balance the load between your pinkies and invites you to use both hands instead of contortions. Perhaps more importantly, it also frees you from the necessity of picking up your hand, breaking touch typing position and pressing a pinky key with your ring finger in order to execute Ctrl+A or Ctrl+Z. That becomes even more important on a board with such an aggressive pinky columnar stagger like the Kyria. + + +``` +,-------------------------------------------. ,-------------------------------------------. +| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "| +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + | | | Enter| | | | | | | | | + `----------------------------------' `----------------------------------' +``` + +
+ +## Navigation layer + +``` +Nav Layer: Media, navigation + +,-------------------------------------------. ,-------------------------------------------. +| | | | | | | | PgUp | Home | ↑ | End | VolUp| Delete | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +| | GUI | Alt | Ctrl | Shift| | | PgDn | ← | ↓ | → | VolDn| Insert | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| | | | | | | |ScLck | | | | Pause|M Prev|M Play|M Next|VolMut| PrtSc | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + | | | | | | | | | | | | + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' +``` + +This is where you'll find all the keys that are generally between the main block of a classic keyboard and the numpad in addition to media controls and modifiers on easy access on the home row for fast and comfortable chording with navigation keys. + +Useful mnemonics: +- “GACS” to remember the order of the modifiers on the left-hand home row +- Scroll Lock is on the same key as Caps Lock because they're both locks +- Delete is on the same key as Backspace because they both erase characters +- Home is the leftmost position on the current line so it is above . Same logic applies for End. +- Media Previous = ⏮, Media Next = ⏭ +- Page Up, Page Down and Volume Up, Volume Down are positioned like the main Up and Down keys. + +## Sym layer +``` +Sym Layer: Numbers, symbols + +,-------------------------------------------. ,-------------------------------------------. +| ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | = | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +| ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| | | \ | : | ; | - | [ | { | | | | } | ] | _ | , | . | / | ? | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + | | | | | | | | | | | | + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' +``` +The top row is the unshifted num row, the home row of the layer is the shifted num row and the bottom row contains the hyphen `-` and the underscore `_` on the best lower row spot because of how frequent they are as well as redundant symbols that are already present on the base layer but are reproduced here to avoid juggling back and forth between base, shift, and sym when typing a string of symbols. + +The layout of the first two rows needs no introduction, you're already used to them but it's worth looking into the structure of the bottom row. + +The two halves are mirrored in a sense. On the right, you can find , . / at their usual spots with the addition of Shift+/=? to the right of the / key to remove the need to press simultaneously Sym and a Shift key to access `?`. + +Now, if you look at the left side, you'll notice that the mirror of , is ;, the mirror of . is : and the mirror of / is \\. The same logic used for Shift+/=? also applies to Shift+\\=|. + +In case you wish to combine Shift with a symbol key anyways, you can hold down Shift on the base layer with your pinky, activate Sym with your right thumb and while still holding down the Shift key, tap your desired symbol key. Same thing if you need Ctrl+Digit. + +## Function layer +``` +Function Layer: Function keys + +,-------------------------------------------. ,-------------------------------------------. +| | F9 | F10 | F11 | F12 | | | | | | | | | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +| | F5 | F6 | F7 | F8 | | | | Shift| Ctrl | Alt | GUI | | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| | F1 | F2 | F3 | F4 | | | | | | | | | | | | | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + | | | | | | | | | | | | + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' +``` +In a similar fashion to the nav layer, pressing down `FKEYS` with the right thumb enables a numpad of function keys on the opposite hand and modifiers on the right-hand home row. Once again, mirror symmetry is leveraged in this keymap for the order of the right-hand modifiers. + +The Alt modifier, despite being situated on the right half of the keyboard is *not* `KC_RALT`, it is `KC_LALT`. `KC_RALT` is actually the AltGr key which generally acts very differently to the left Alt key. Keyboard shortcuts involving AltGr+F# are rare and infrequent as opposed to the much more common Alt+F# shortcuts. Consequently, `KC_LALT` was chosen for the function layer. + +Since there are more than 10 function keys, the cluster of F-keys does not follow the usual 3×3+1 numpad arrangement. + + +## Adjust layer +``` +Adjust Layer: Default layer settings, RGB + +,-------------------------------------------. ,-------------------------------------------. +| | | |QWERTY| | | | | | | | | | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +| | | |Dvorak| | | | TOG | SAI | HUI | VAI | MOD | | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| | | |Colmak| | | | | | | | | SAD | HUD | VAD | RMOD | | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + | | | | | | | | | | | | + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' +``` + +Default layer settings on the left and various RGB underglow controls on the right. + +The default layer settings are lined up on the middle finger column because the home middle finger key is D on QWERTY (like the “D” in “Dvorak”) and the lower middle finger key is C on QWERTY (like the “C” in “Colemak”). I can hear you say that “QWERTY” doesn't start with “E” but Dvorak and Colemak were already aligned in a column so the QWERTY may as well join the formation. + +NOTE: The default layer settings set by those keys are *NOT* stored in EEPROM and thus do not persist through boots. If you wish to change the default layer in a non-volatile manner, either change the order of the layers in the firmware, for example like so if you want to set Dvorak as the new default: +```c +enum layers { + _DVORAK = 0, + _QWERTY, + _COLEMAK_DH, + _NAV, + _SYM, + _FUNCTION, + _ADJUST +}; +``` +or re-define the `QWERTY`, `COLEMAK` and `DVORAK` keys to point to custom keycodes starting on `SAFE_RANGE` and calling the `set_single_persistent_default_layer` function inside of `process_record_user`. + +## Hardware Features + +### Rotary Encoder +The left rotary encoder is programmed to control the volume whereas the right encoder sends PgUp or PgDn on every turn. + +## Going further… + +This default keymap can be used as is, unchanged, as a daily driver for your Kyria but you're invited to treat your keymap like a bonsai. At the beginning, it's just like the default keymap but from time to time, you can tweak it a little. Cut a little key here, let another combo grow there. Slowly but surely it will be a unique keymap that will fit you like a glove. + +Check out the #keymap-ideas channel on the official SplitKB Discord server for inspiration. diff --git a/keyboards/splitkb/halcyon/kyria/readme.md b/keyboards/splitkb/halcyon/kyria/readme.md new file mode 100755 index 000000000000..62689d35b055 --- /dev/null +++ b/keyboards/splitkb/halcyon/kyria/readme.md @@ -0,0 +1,31 @@ +# Halcyon Kyria + +![splitkb/halcyon/kyria](https://i.imgur.com/n7WuUs9.jpg) + +The Halcyon Kyria rev4 is the fourth Kyria revision and the first keyboard in our Halcyon range. Similar to Aurora, all keyboards in the series share the same feature set. The key highlights: + +- Halcyon keyboards come preassembled! You won't need a soldering iron. +- You'll be able to install [VIK](https://github.com/sadekbaroudi/vik) modules. +- It'll come fully documented, which includes the unboxing, assembly (with only a screwdriver), first installation and some advanced use cases. +- Both the connection to the host device as well as the interconnect between the keyboard halves use USB C. +- The controller has full ESD protection on all USB C ports, as well as all switch matrix GPIO! +- The controller is interchangable. If part of your keyboard ever breaks, we can replace just the bits that need replacing. + +* Keyboard Maintainer: [splitkb.com](https://github.com/splitkb.com) +* Hardware Availability: [splitkb.com](https://splitkb.com). + +Make example for this keyboard (after setting up your build environment): + + make splitkb/halcyon/kyria/rev4:default + +The keyboard can be flashed by copying the resulting `.uf2` file onto the `RPI-RP2` flash drive. + +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: + +* **Reset button**: Double-tap the reset button at the top of the controller, right above the USB-C port. +* **Bootloader reset**: Hold down the "Boot" button and plug in the keyboard. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/splitkb/halcyon/kyria/rev4/config.h b/keyboards/splitkb/halcyon/kyria/rev4/config.h new file mode 100755 index 000000000000..c09744f9238b --- /dev/null +++ b/keyboards/splitkb/halcyon/kyria/rev4/config.h @@ -0,0 +1,32 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Make it easier to enter the bootloader +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U + +// UART1, communication between the two halves +#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode. +#define SERIAL_USART_TX_PIN GP28 // USART TX pin +#define SERIAL_USART_RX_PIN GP29 // USART RX pin +#define SERIAL_PIO_USE_PIO1 // Use PIO1 as PIO0 is used for WS2812 driver + +// VBUS detection +#define USB_VBUS_PIN GP1 + +//// VIK + +// GPIO1 = GP27 +// GPIO2 = GP26 +// CS = GP13 + +#define I2C_DRIVER I2C0 +#define I2C1_SDA_PIN GP16 +#define I2C1_SCL_PIN GP17 + +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN GP14 +#define SPI_MOSI_PIN GP15 +#define SPI_MISO_PIN GP12 \ No newline at end of file diff --git a/keyboards/splitkb/halcyon/kyria/rev4/halconf.h b/keyboards/splitkb/halcyon/kyria/rev4/halconf.h new file mode 100644 index 000000000000..1050ebf3130e --- /dev/null +++ b/keyboards/splitkb/halcyon/kyria/rev4/halconf.h @@ -0,0 +1,14 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +//// VIK + +#define HAL_USE_I2C TRUE + +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next \ No newline at end of file diff --git a/keyboards/splitkb/halcyon/kyria/rev4/keyboard.json b/keyboards/splitkb/halcyon/kyria/rev4/keyboard.json new file mode 100755 index 000000000000..c9e891964b15 --- /dev/null +++ b/keyboards/splitkb/halcyon/kyria/rev4/keyboard.json @@ -0,0 +1,168 @@ +{ + "keyboard_name": "Halcyon Kyria rev4", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "GP23", "pin_b": "GP22", "resolution": 2} + ] + }, + "features": { + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP19", "GP20", "GP25", "GP4", "GP9", "GP10", "GP5"], + "rows": ["GP8", "GP11", "GP7", "GP6"] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "solid_color": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "default": { + "animation": "cycle_left_right" + }, + "driver": "ws2812", + "layout": [ + {"x": 75, "y": 2, "flags": 2}, + {"x": 50, "y": 1, "flags": 2}, + {"x": 14, "y": 4, "flags": 2}, + {"x": 25, "y": 45, "flags": 2}, + {"x": 58, "y": 49, "flags": 2}, + {"x": 94, "y": 53, "flags": 2}, + {"matrix": [3, 0], "x": 94, "y": 64, "flags": 4}, + {"matrix": [3, 5], "x": 79, "y": 60, "flags": 4}, + {"matrix": [3, 1], "x": 65, "y": 53, "flags": 4}, + {"matrix": [3, 2], "x": 51, "y": 49, "flags": 4}, + {"matrix": [3, 4], "x": 36, "y": 49, "flags": 4}, + {"matrix": [2, 0], "x": 101, "y": 49, "flags": 4}, + {"matrix": [3, 3], "x": 87, "y": 45, "flags": 4}, + {"matrix": [2, 1], "x": 72, "y": 38, "flags": 4}, + {"matrix": [2, 2], "x": 58, "y": 34, "flags": 4}, + {"matrix": [2, 3], "x": 43, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 29, "y": 34, "flags": 4}, + {"matrix": [2, 5], "x": 14, "y": 41, "flags": 4}, + {"matrix": [2, 6], "x": 0, "y": 41, "flags": 4}, + {"matrix": [1, 1], "x": 72, "y": 23, "flags": 4}, + {"matrix": [1, 2], "x": 58, "y": 19, "flags": 4}, + {"matrix": [1, 3], "x": 43, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 29, "y": 19, "flags": 4}, + {"matrix": [1, 5], "x": 14, "y": 26, "flags": 4}, + {"matrix": [1, 6], "x": 0, "y": 26, "flags": 4}, + {"matrix": [0, 1], "x": 72, "y": 8, "flags": 4}, + {"matrix": [0, 2], "x": 58, "y": 4, "flags": 4}, + {"matrix": [0, 3], "x": 43, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 29, "y": 4, "flags": 4}, + {"matrix": [0, 5], "x": 14, "y": 11, "flags": 4}, + {"matrix": [0, 6], "x": 0, "y": 11, "flags": 4}, + {"x": 149, "y": 2, "flags": 2}, + {"x": 174, "y": 1, "flags": 2}, + {"x": 210, "y": 4, "flags": 2}, + {"x": 199, "y": 45, "flags": 2}, + {"x": 166, "y": 49, "flags": 2}, + {"x": 130, "y": 53, "flags": 2}, + {"matrix": [7, 0], "x": 130, "y": 64, "flags": 4}, + {"matrix": [7, 5], "x": 145, "y": 60, "flags": 4}, + {"matrix": [7, 1], "x": 159, "y": 53, "flags": 4}, + {"matrix": [7, 2], "x": 173, "y": 49, "flags": 4}, + {"matrix": [7, 4], "x": 188, "y": 49, "flags": 4}, + {"matrix": [6, 0], "x": 123, "y": 49, "flags": 4}, + {"matrix": [7, 3], "x": 137, "y": 45, "flags": 4}, + {"matrix": [6, 1], "x": 152, "y": 38, "flags": 4}, + {"matrix": [6, 2], "x": 166, "y": 34, "flags": 4}, + {"matrix": [6, 3], "x": 181, "y": 30, "flags": 4}, + {"matrix": [6, 4], "x": 195, "y": 34, "flags": 4}, + {"matrix": [6, 5], "x": 210, "y": 41, "flags": 4}, + {"matrix": [6, 6], "x": 224, "y": 41, "flags": 4}, + {"matrix": [5, 1], "x": 152, "y": 23, "flags": 4}, + {"matrix": [5, 2], "x": 166, "y": 19, "flags": 4}, + {"matrix": [5, 3], "x": 181, "y": 15, "flags": 4}, + {"matrix": [5, 4], "x": 195, "y": 19, "flags": 4}, + {"matrix": [5, 5], "x": 210, "y": 26, "flags": 4}, + {"matrix": [5, 6], "x": 224, "y": 26, "flags": 4}, + {"matrix": [4, 1], "x": 152, "y": 8, "flags": 4}, + {"matrix": [4, 2], "x": 166, "y": 4, "flags": 4}, + {"matrix": [4, 3], "x": 181, "y": 0, "flags": 4}, + {"matrix": [4, 4], "x": 195, "y": 4, "flags": 4}, + {"matrix": [4, 5], "x": 210, "y": 11, "flags": 4}, + {"matrix": [4, 6], "x": 224, "y": 11, "flags": 4} + ], + "max_brightness": 128, + "sleep": true, + "split_count": [31, 31] + }, + "split": { + "enabled": true, + "handedness": { + "pin": "GP24" + }, + "matrix_pins": { + "right": { + "cols": ["GP5", "GP10", "GP9", "GP4", "GP25", "GP20", "GP19"], + "rows": ["GP8", "GP11", "GP7", "GP6"] + } + }, + "serial": { + "driver": "vendor" + }, + "transport": { + "sync": { + "matrix_state": true + } + } + }, + "usb": { + "pid": "0x7FCE" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP3" + } +} diff --git a/keyboards/splitkb/halcyon/kyria/rev4/mcuconf.h b/keyboards/splitkb/halcyon/kyria/rev4/mcuconf.h new file mode 100644 index 000000000000..6792b923f10d --- /dev/null +++ b/keyboards/splitkb/halcyon/kyria/rev4/mcuconf.h @@ -0,0 +1,14 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +//// VIK + +#undef RP_I2C_USE_I2C0 +#define RP_I2C_USE_I2C0 TRUE + +#undef RP_SPI_USE_SPI1 +#define RP_SPI_USE_SPI1 TRUE \ No newline at end of file diff --git a/keyboards/splitkb/halcyon/kyria/rev4/rev4.c b/keyboards/splitkb/halcyon/kyria/rev4/rev4.c new file mode 100644 index 000000000000..27671b9d7ce9 --- /dev/null +++ b/keyboards/splitkb/halcyon/kyria/rev4/rev4.c @@ -0,0 +1,28 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { + return false; + } + if (index == 0) { + // Volume control + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == 1) { + // Page up/Page down + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } + return false; +} +#endif From 191172aa4e03081ec36cc918a6ac7ffe289162d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=E1=BA=AFn?= <59417802+MaiTheSan@users.noreply.github.com> Date: Mon, 2 Dec 2024 23:35:24 -0800 Subject: [PATCH 17/29] [Keyboard] Add NCR80 ALPS SKFL/FR (#24625) * ADD NCR80 ALPS SKFL/FR * fix * Update config.h * Update config.h * Update keyboards/salane/ncr80alpsskfl/keyboard.json Co-authored-by: Duncan Sutherland * Update keyboards/salane/ncr80alpsskfl/keymaps/default/keymap.c Co-authored-by: Duncan Sutherland * Update keyboards/salane/ncr80alpsskfl/keymaps/default/keymap.c Co-authored-by: Duncan Sutherland * Update keyboards/salane/ncr80alpsskfl/keyboard.json Co-authored-by: jack * Update keyboards/salane/ncr80alpsskfl/readme.md Co-authored-by: jack --------- Co-authored-by: Duncan Sutherland Co-authored-by: jack --- keyboards/salane/ncr80alpsskfl/config.h | 17 +++ keyboards/salane/ncr80alpsskfl/keyboard.json | 124 ++++++++++++++++++ .../ncr80alpsskfl/keymaps/default/keymap.c | 28 ++++ keyboards/salane/ncr80alpsskfl/readme.md | 29 ++++ 4 files changed, 198 insertions(+) create mode 100644 keyboards/salane/ncr80alpsskfl/config.h create mode 100644 keyboards/salane/ncr80alpsskfl/keyboard.json create mode 100644 keyboards/salane/ncr80alpsskfl/keymaps/default/keymap.c create mode 100644 keyboards/salane/ncr80alpsskfl/readme.md diff --git a/keyboards/salane/ncr80alpsskfl/config.h b/keyboards/salane/ncr80alpsskfl/config.h new file mode 100644 index 000000000000..cc6fb298f419 --- /dev/null +++ b/keyboards/salane/ncr80alpsskfl/config.h @@ -0,0 +1,17 @@ +/* +Copyright 2024 Salane +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define RP2040_FLASH_GENERIC_03H diff --git a/keyboards/salane/ncr80alpsskfl/keyboard.json b/keyboards/salane/ncr80alpsskfl/keyboard.json new file mode 100644 index 000000000000..512593d351e1 --- /dev/null +++ b/keyboards/salane/ncr80alpsskfl/keyboard.json @@ -0,0 +1,124 @@ +{ + "keyboard_name": "NCR80 ALPS SKFL", + "manufacturer": "Salane", + "url": "", + "maintainer": "Mai The San", + "processor": "RP2040", + "bootloader": "rp2040", + "usb": { + "vid": "0x534C", + "pid": "0x087A", + "device_version": "0.0.1" + }, + "matrix_pins": { + "rows": ["GP24", "GP9", "GP10", "GP13", "GP12", "GP11"], + "cols": ["GP16", "GP17", "GP18", "GP19", "GP20", "GP21", "GP22", "GP23", "GP25", "GP26", "GP27", "GP28", "GP29", "GP6", "GP5", "GP4", "GP3"] + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true + }, + "indicators": { + "num_lock": "GP0", + "caps_lock": "GP1", + "scroll_lock": "GP2" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K01", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 5, "y": 0}, + {"label": "K05", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 9.5, "y": 0}, + {"label": "K09", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label": "K10", "matrix": [1, 0], "x": 0, "y": 2}, + {"label": "K11", "matrix": [1, 1], "x": 1, "y": 2}, + {"label": "K12", "matrix": [1, 2], "x": 2, "y": 2}, + {"label": "K13", "matrix": [1, 3], "x": 3, "y": 2}, + {"label": "K14", "matrix": [1, 4], "x": 4, "y": 2}, + {"label": "K15", "matrix": [1, 5], "x": 5, "y": 2}, + {"label": "K16", "matrix": [1, 6], "x": 6, "y": 2}, + {"label": "K17", "matrix": [1, 7], "x": 7, "y": 2}, + {"label": "K18", "matrix": [1, 8], "x": 8, "y": 2}, + {"label": "K19", "matrix": [1, 9], "x": 9, "y": 2}, + {"label": "K1A", "matrix": [1, 10], "x": 10, "y": 2}, + {"label": "K1B", "matrix": [1, 11], "x": 11, "y": 2}, + {"label": "K1C", "matrix": [1, 12], "x": 12, "y": 2}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 2}, + {"label": "K1D", "matrix": [1, 13], "x": 14, "y": 2}, + {"label": "K1E", "matrix": [1, 14], "x": 15.25, "y": 2}, + {"label": "K1F", "matrix": [1, 15], "x": 16.25, "y": 2}, + {"label": "K1G", "matrix": [1, 16], "x": 17.25, "y": 2}, + + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.5}, + {"label": "K21", "matrix": [2, 1], "x": 1.5, "y": 3}, + {"label": "K22", "matrix": [2, 2], "x": 2.5, "y": 3}, + {"label": "K23", "matrix": [2, 3], "x": 3.5, "y": 3}, + {"label": "K24", "matrix": [2, 4], "x": 4.5, "y": 3}, + {"label": "K25", "matrix": [2, 5], "x": 5.5, "y": 3}, + {"label": "K26", "matrix": [2, 6], "x": 6.5, "y": 3}, + {"label": "K27", "matrix": [2, 7], "x": 7.5, "y": 3}, + {"label": "K28", "matrix": [2, 8], "x": 8.5, "y": 3}, + {"label": "K29", "matrix": [2, 9], "x": 9.5, "y": 3}, + {"label": "K2A", "matrix": [2, 10], "x": 10.5, "y": 3}, + {"label": "K2B", "matrix": [2, 11], "x": 11.5, "y": 3}, + {"label": "K2C", "matrix": [2, 12], "x": 12.5, "y": 3}, + {"label": "K2D", "matrix": [2, 13], "x": 13.5, "y": 3, "w": 1.5}, + {"label": "K2E", "matrix": [2, 14], "x": 15.25, "y": 3}, + {"label": "K2F", "matrix": [2, 15], "x": 16.25, "y": 3}, + {"label": "K2G", "matrix": [2, 16], "x": 17.25, "y": 3}, + + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.75}, + {"label": "K31", "matrix": [3, 1], "x": 1.75, "y": 4}, + {"label": "K32", "matrix": [3, 2], "x": 2.75, "y": 4}, + {"label": "K33", "matrix": [3, 3], "x": 3.75, "y": 4}, + {"label": "K34", "matrix": [3, 4], "x": 4.75, "y": 4}, + {"label": "K35", "matrix": [3, 5], "x": 5.75, "y": 4}, + {"label": "K36", "matrix": [3, 6], "x": 6.75, "y": 4}, + {"label": "K37", "matrix": [3, 7], "x": 7.75, "y": 4}, + {"label": "K38", "matrix": [3, 8], "x": 8.75, "y": 4}, + {"label": "K39", "matrix": [3, 9], "x": 9.75, "y": 4}, + {"label": "K3A", "matrix": [3, 10], "x": 10.75, "y": 4}, + {"label": "K3B", "matrix": [3, 11], "x": 11.75, "y": 4}, + {"label": "K3D", "matrix": [3, 13], "x": 12.75, "y": 4, "w": 2.25}, + + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 5, "w": 2.25}, + {"label": "K42", "matrix": [4, 2], "x": 2.25, "y": 5}, + {"label": "K43", "matrix": [4, 3], "x": 3.25, "y": 5}, + {"label": "K44", "matrix": [4, 4], "x": 4.25, "y": 5}, + {"label": "K45", "matrix": [4, 5], "x": 5.25, "y": 5}, + {"label": "K46", "matrix": [4, 6], "x": 6.25, "y": 5}, + {"label": "K47", "matrix": [4, 7], "x": 7.25, "y": 5}, + {"label": "K48", "matrix": [4, 8], "x": 8.25, "y": 5}, + {"label": "K49", "matrix": [4, 9], "x": 9.25, "y": 5}, + {"label": "K4A", "matrix": [4, 10], "x": 10.25, "y": 5}, + {"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 5}, + {"label": "K4C", "matrix": [4, 12], "x": 12.25, "y": 5, "w": 1.75}, + {"label": "K4D", "matrix": [4, 13], "x": 14, "y": 5}, + {"label": "K4F", "matrix": [4, 15], "x": 16.25, "y": 5}, + + {"label": "K50", "matrix": [5, 0], "x": 0, "y": 6, "w": 1.5}, + {"label": "K51", "matrix": [5, 1], "x": 1.5, "y": 6}, + {"label": "K52", "matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.5}, + {"label": "K57", "matrix": [5, 7], "x": 4, "y": 6, "w": 7}, + {"label": "K5B", "matrix": [5, 11], "x": 11, "y": 6, "w": 1.5}, + {"label": "K5C", "matrix": [5, 12], "x": 12.5, "y": 6}, + {"label": "K5D", "matrix": [5, 13], "x": 13.5, "y": 6, "w": 1.5}, + {"label": "K5E", "matrix": [5, 14], "x": 15.25, "y": 6}, + {"label": "K5F", "matrix": [5, 15], "x": 16.25, "y": 6}, + {"label": "K5G", "matrix": [5, 16], "x": 17.25, "y": 6} + ] + } + } +} diff --git a/keyboards/salane/ncr80alpsskfl/keymaps/default/keymap.c b/keyboards/salane/ncr80alpsskfl/keymaps/default/keymap.c new file mode 100644 index 000000000000..e0db92634171 --- /dev/null +++ b/keyboards/salane/ncr80alpsskfl/keymaps/default/keymap.c @@ -0,0 +1,28 @@ +/* Copyright 2023 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_SLSH, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/salane/ncr80alpsskfl/readme.md b/keyboards/salane/ncr80alpsskfl/readme.md new file mode 100644 index 000000000000..a8e0c0725ac8 --- /dev/null +++ b/keyboards/salane/ncr80alpsskfl/readme.md @@ -0,0 +1,29 @@ +# NCR80 ALPS SKFL + +![NCR80 ALPS SKFL](https://i.imgur.com/X964J2P.jpeg) + + PCB Replace for NCR80 with ALPS SKFL switch. + + **Firmware files are SPECIFIC to each board. Firmware files from one, will not work on the other.** Please use the `.hex` or `.bin` appropriate for your board. + +* Keyboard Maintainer: [Mai The San](https://github.com/MaiTheSan) +* Hardware Supported: NCR80 +* Hardware Availability: [Github](https://github.com/MaiTheSan/NCR80-ALPS-SKFL) + +Make examples for this keyboard (after setting up your build environment): + + make salane/ncr80alpsskfl:default + +Flashing example for this keyboard: + + make salane/ncr80alpsskfl:default:flash + +## 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**: short 2 pin in the back of pcb and plug the usb in +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available + +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). \ No newline at end of file From c5eeac9686b9ff163c91546adc569eb6d433359b Mon Sep 17 00:00:00 2001 From: gtips <51393966+gtips@users.noreply.github.com> Date: Tue, 3 Dec 2024 16:46:37 +0900 Subject: [PATCH 18/29] [Keyboard] Add keyboard reviung46 (#24245) * add keyboard reviung46 * modified keyboards/reviung/reviung46/readme.md * modified keyboards/reviung/reviung46/keyboard.json * modified keyboards/reviung/reviung46/readme.md * fix keyboards/reviung/reviung46/keyboard.json * fix keyboards/reviung/reviung46/keymaps/default/keymap.c fix keyboards/reviung/reviung46/keymaps/via/keymap.c * fix keyboards/reviung/reviung46/keymaps/via/keymap.c * fix keyboards/reviung/reviung46/keyboard.json * fix keyboards/reviung/reviung46/keyboard.json * modified reviung/reviung46/readme.md * fixed keyboards/reviung/reviung46/keyboard.json * fixed keyboards/reviung/reviung46/keymaps/default/keymap.c deleted keyboards/reviung/reviung46/keymaps/via/keymap.c deleted keyboards/reviung/reviung46/keymaps/via/rules.mk * fix keyboards/reviung/reviung46/keyboard.json and keyboards/reviung/reviung46/keymaps/default/keymap.c * Update keyboards/reviung/reviung46/readme.md --------- Co-authored-by: jack --- keyboards/reviung/reviung46/keyboard.json | 463 ++++++++++++++++++ .../reviung46/keymaps/default/keymap.c | 47 ++ keyboards/reviung/reviung46/readme.md | 27 + 3 files changed, 537 insertions(+) create mode 100644 keyboards/reviung/reviung46/keyboard.json create mode 100644 keyboards/reviung/reviung46/keymaps/default/keymap.c create mode 100644 keyboards/reviung/reviung46/readme.md diff --git a/keyboards/reviung/reviung46/keyboard.json b/keyboards/reviung/reviung46/keyboard.json new file mode 100644 index 000000000000..cdf9a24e177a --- /dev/null +++ b/keyboards/reviung/reviung46/keyboard.json @@ -0,0 +1,463 @@ +{ + "keyboard_name": "reviung46", + "manufacturer": "gtips", + "url": "https://github.com/gtips/reviung/tree/master/reviung46/", + "maintainer": "gtips", + "usb": { + "vid": "0x4E95", + "pid": "0x4E19", + "device_version": "0.0.1" + }, + "rgblight": { + "hue_steps": 16, + "saturation_steps": 16, + "brightness_steps": 16, + "led_count": 10, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "alternating": true, + "twinkle": true + } + }, + "ws2812": { + "pin": "D3" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "matrix_pins": { + "cols": ["B5", "C6", "D4", "D0", "D1", "D2"], + "rows": ["B6", "B2", "B3", "B1", "F7", "F6", "F5", "F4"] + }, + "diode_direction": "COL2ROW", + "development_board": "promicro", + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [0, 3], "x": 5.5, "y": 0}, + {"matrix": [0, 4], "x": 6.5, "y": 0}, + {"matrix": [0, 5], "x": 7.5, "y": 0}, + {"matrix": [4, 0], "x": 8.5, "y": 0}, + {"matrix": [4, 1], "x": 9.5, "y": 0}, + {"matrix": [4, 2], "x": 10.5, "y": 0}, + {"matrix": [4, 3], "x": 11.5, "y": 0}, + {"matrix": [4, 4], "x": 12.5, "y": 0}, + {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 3.75, "y": 1}, + {"matrix": [1, 2], "x": 4.75, "y": 1}, + {"matrix": [1, 3], "x": 5.75, "y": 1}, + {"matrix": [1, 4], "x": 6.75, "y": 1}, + {"matrix": [1, 5], "x": 7.75, "y": 1}, + {"matrix": [5, 0], "x": 8.75, "y": 1}, + {"matrix": [5, 1], "x": 9.75, "y": 1}, + {"matrix": [5, 2], "x": 10.75, "y": 1}, + {"matrix": [5, 3], "x": 11.75, "y": 1}, + {"matrix": [5, 4], "x": 12.75, "y": 1}, + {"matrix": [5, 5], "x": 13.75, "y": 1, "w": 1.25}, + + {"matrix": [2, 0], "x": 1, "y": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, + {"matrix": [2, 2], "x": 4.25, "y": 2}, + {"matrix": [2, 3], "x": 5.25, "y": 2}, + {"matrix": [2, 4], "x": 6.25, "y": 2}, + {"matrix": [2, 5], "x": 7.25, "y": 2}, + {"matrix": [6, 0], "x": 8.25, "y": 2}, + {"matrix": [6, 1], "x": 9.25, "y": 2}, + {"matrix": [6, 2], "x": 10.25, "y": 2}, + {"matrix": [6, 3], "x": 11.25, "y": 2}, + {"matrix": [6, 4], "x": 12.25, "y": 2}, + {"matrix": [6, 5], "x": 13.25, "y": 2, "w": 1.75}, + + {"matrix": [3, 0], "x": 0, "y": 3.25}, + {"matrix": [3, 1], "x": 1, "y": 3.25}, + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3, "w": 1.25}, + {"matrix": [3, 5], "x": 6, "y": 3, "w": 2.25}, + {"matrix": [7, 0], "x": 8.25, "y": 3, "w": 2.75}, + {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, + {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, + {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_225u_enter": { + "layout": [ + {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [0, 3], "x": 5.5, "y": 0}, + {"matrix": [0, 4], "x": 6.5, "y": 0}, + {"matrix": [0, 5], "x": 7.5, "y": 0}, + {"matrix": [4, 0], "x": 8.5, "y": 0}, + {"matrix": [4, 1], "x": 9.5, "y": 0}, + {"matrix": [4, 2], "x": 10.5, "y": 0}, + {"matrix": [4, 3], "x": 11.5, "y": 0}, + {"matrix": [4, 4], "x": 12.5, "y": 0}, + {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 3.75, "y": 1}, + {"matrix": [1, 2], "x": 4.75, "y": 1}, + {"matrix": [1, 3], "x": 5.75, "y": 1}, + {"matrix": [1, 4], "x": 6.75, "y": 1}, + {"matrix": [1, 5], "x": 7.75, "y": 1}, + {"matrix": [5, 0], "x": 8.75, "y": 1}, + {"matrix": [5, 1], "x": 9.75, "y": 1}, + {"matrix": [5, 2], "x": 10.75, "y": 1}, + {"matrix": [5, 3], "x": 11.75, "y": 1}, + {"matrix": [5, 5], "x": 12.75, "y": 1, "w": 2.25}, + + {"matrix": [2, 0], "x": 1, "y": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, + {"matrix": [2, 2], "x": 4.25, "y": 2}, + {"matrix": [2, 3], "x": 5.25, "y": 2}, + {"matrix": [2, 4], "x": 6.25, "y": 2}, + {"matrix": [2, 5], "x": 7.25, "y": 2}, + {"matrix": [6, 0], "x": 8.25, "y": 2}, + {"matrix": [6, 1], "x": 9.25, "y": 2}, + {"matrix": [6, 2], "x": 10.25, "y": 2}, + {"matrix": [6, 3], "x": 11.25, "y": 2}, + {"matrix": [6, 4], "x": 12.25, "y": 2}, + {"matrix": [6, 5], "x": 13.25, "y": 2, "w": 1.75}, + + {"matrix": [3, 0], "x": 0, "y": 3.25}, + {"matrix": [3, 1], "x": 1, "y": 3.25}, + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3, "w": 1.25}, + {"matrix": [3, 5], "x": 6, "y": 3, "w": 2.25}, + {"matrix": [7, 0], "x": 8.25, "y": 3, "w": 2.75}, + {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, + {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, + {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_275u_r_shift": { + "layout": [ + {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [0, 3], "x": 5.5, "y": 0}, + {"matrix": [0, 4], "x": 6.5, "y": 0}, + {"matrix": [0, 5], "x": 7.5, "y": 0}, + {"matrix": [4, 0], "x": 8.5, "y": 0}, + {"matrix": [4, 1], "x": 9.5, "y": 0}, + {"matrix": [4, 2], "x": 10.5, "y": 0}, + {"matrix": [4, 3], "x": 11.5, "y": 0}, + {"matrix": [4, 4], "x": 12.5, "y": 0}, + {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 3.75, "y": 1}, + {"matrix": [1, 2], "x": 4.75, "y": 1}, + {"matrix": [1, 3], "x": 5.75, "y": 1}, + {"matrix": [1, 4], "x": 6.75, "y": 1}, + {"matrix": [1, 5], "x": 7.75, "y": 1}, + {"matrix": [5, 0], "x": 8.75, "y": 1}, + {"matrix": [5, 1], "x": 9.75, "y": 1}, + {"matrix": [5, 2], "x": 10.75, "y": 1}, + {"matrix": [5, 3], "x": 11.75, "y": 1}, + {"matrix": [5, 4], "x": 12.75, "y": 1}, + {"matrix": [5, 5], "x": 13.75, "y": 1, "w": 1.25}, + + {"matrix": [2, 0], "x": 1, "y": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, + {"matrix": [2, 2], "x": 4.25, "y": 2}, + {"matrix": [2, 3], "x": 5.25, "y": 2}, + {"matrix": [2, 4], "x": 6.25, "y": 2}, + {"matrix": [2, 5], "x": 7.25, "y": 2}, + {"matrix": [6, 0], "x": 8.25, "y": 2}, + {"matrix": [6, 1], "x": 9.25, "y": 2}, + {"matrix": [6, 2], "x": 10.25, "y": 2}, + {"matrix": [6, 3], "x": 11.25, "y": 2}, + {"matrix": [6, 5], "x": 12.25, "y": 2, "w": 2.75}, + + {"matrix": [3, 0], "x": 0, "y": 3.25}, + {"matrix": [3, 1], "x": 1, "y": 3.25}, + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3, "w": 1.25}, + {"matrix": [3, 5], "x": 6, "y": 3, "w": 2.25}, + {"matrix": [7, 0], "x": 8.25, "y": 3, "w": 2.75}, + {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, + {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, + {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_625u_space": { + "layout": [ + {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [0, 3], "x": 5.5, "y": 0}, + {"matrix": [0, 4], "x": 6.5, "y": 0}, + {"matrix": [0, 5], "x": 7.5, "y": 0}, + {"matrix": [4, 0], "x": 8.5, "y": 0}, + {"matrix": [4, 1], "x": 9.5, "y": 0}, + {"matrix": [4, 2], "x": 10.5, "y": 0}, + {"matrix": [4, 3], "x": 11.5, "y": 0}, + {"matrix": [4, 4], "x": 12.5, "y": 0}, + {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 3.75, "y": 1}, + {"matrix": [1, 2], "x": 4.75, "y": 1}, + {"matrix": [1, 3], "x": 5.75, "y": 1}, + {"matrix": [1, 4], "x": 6.75, "y": 1}, + {"matrix": [1, 5], "x": 7.75, "y": 1}, + {"matrix": [5, 0], "x": 8.75, "y": 1}, + {"matrix": [5, 1], "x": 9.75, "y": 1}, + {"matrix": [5, 2], "x": 10.75, "y": 1}, + {"matrix": [5, 3], "x": 11.75, "y": 1}, + {"matrix": [5, 4], "x": 12.75, "y": 1}, + {"matrix": [5, 5], "x": 13.75, "y": 1, "w": 1.25}, + + {"matrix": [2, 0], "x": 1, "y": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, + {"matrix": [2, 2], "x": 4.25, "y": 2}, + {"matrix": [2, 3], "x": 5.25, "y": 2}, + {"matrix": [2, 4], "x": 6.25, "y": 2}, + {"matrix": [2, 5], "x": 7.25, "y": 2}, + {"matrix": [6, 0], "x": 8.25, "y": 2}, + {"matrix": [6, 1], "x": 9.25, "y": 2}, + {"matrix": [6, 2], "x": 10.25, "y": 2}, + {"matrix": [6, 3], "x": 11.25, "y": 2}, + {"matrix": [6, 4], "x": 12.25, "y": 2}, + {"matrix": [6, 5], "x": 13.25, "y": 2, "w": 1.75}, + + {"matrix": [3, 0], "x": 0, "y": 3.25}, + {"matrix": [3, 1], "x": 1, "y": 3.25}, + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, + {"matrix": [3, 5], "x": 4.75, "y": 3, "w": 6.25}, + {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, + {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, + {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_225u_enter_275u_r_shift": { + "layout": [ + {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [0, 3], "x": 5.5, "y": 0}, + {"matrix": [0, 4], "x": 6.5, "y": 0}, + {"matrix": [0, 5], "x": 7.5, "y": 0}, + {"matrix": [4, 0], "x": 8.5, "y": 0}, + {"matrix": [4, 1], "x": 9.5, "y": 0}, + {"matrix": [4, 2], "x": 10.5, "y": 0}, + {"matrix": [4, 3], "x": 11.5, "y": 0}, + {"matrix": [4, 4], "x": 12.5, "y": 0}, + {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 3.75, "y": 1}, + {"matrix": [1, 2], "x": 4.75, "y": 1}, + {"matrix": [1, 3], "x": 5.75, "y": 1}, + {"matrix": [1, 4], "x": 6.75, "y": 1}, + {"matrix": [1, 5], "x": 7.75, "y": 1}, + {"matrix": [5, 0], "x": 8.75, "y": 1}, + {"matrix": [5, 1], "x": 9.75, "y": 1}, + {"matrix": [5, 2], "x": 10.75, "y": 1}, + {"matrix": [5, 3], "x": 11.75, "y": 1}, + {"matrix": [5, 5], "x": 12.75, "y": 1, "w": 2.25}, + + {"matrix": [2, 0], "x": 1, "y": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, + {"matrix": [2, 2], "x": 4.25, "y": 2}, + {"matrix": [2, 3], "x": 5.25, "y": 2}, + {"matrix": [2, 4], "x": 6.25, "y": 2}, + {"matrix": [2, 5], "x": 7.25, "y": 2}, + {"matrix": [6, 0], "x": 8.25, "y": 2}, + {"matrix": [6, 1], "x": 9.25, "y": 2}, + {"matrix": [6, 2], "x": 10.25, "y": 2}, + {"matrix": [6, 3], "x": 11.25, "y": 2}, + {"matrix": [6, 5], "x": 12.25, "y": 2, "w": 2.75}, + + {"matrix": [3, 0], "x": 0, "y": 3.25}, + {"matrix": [3, 1], "x": 1, "y": 3.25}, + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3, "w": 1.25}, + {"matrix": [3, 5], "x": 6, "y": 3, "w": 2.25}, + {"matrix": [7, 0], "x": 8.25, "y": 3, "w": 2.75}, + {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, + {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, + {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_225u_enter_625u_space": { + "layout": [ + {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [0, 3], "x": 5.5, "y": 0}, + {"matrix": [0, 4], "x": 6.5, "y": 0}, + {"matrix": [0, 5], "x": 7.5, "y": 0}, + {"matrix": [4, 0], "x": 8.5, "y": 0}, + {"matrix": [4, 1], "x": 9.5, "y": 0}, + {"matrix": [4, 2], "x": 10.5, "y": 0}, + {"matrix": [4, 3], "x": 11.5, "y": 0}, + {"matrix": [4, 4], "x": 12.5, "y": 0}, + {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 3.75, "y": 1}, + {"matrix": [1, 2], "x": 4.75, "y": 1}, + {"matrix": [1, 3], "x": 5.75, "y": 1}, + {"matrix": [1, 4], "x": 6.75, "y": 1}, + {"matrix": [1, 5], "x": 7.75, "y": 1}, + {"matrix": [5, 0], "x": 8.75, "y": 1}, + {"matrix": [5, 1], "x": 9.75, "y": 1}, + {"matrix": [5, 2], "x": 10.75, "y": 1}, + {"matrix": [5, 3], "x": 11.75, "y": 1}, + {"matrix": [5, 5], "x": 12.75, "y": 1, "w": 2.25}, + + {"matrix": [2, 0], "x": 1, "y": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, + {"matrix": [2, 2], "x": 4.25, "y": 2}, + {"matrix": [2, 3], "x": 5.25, "y": 2}, + {"matrix": [2, 4], "x": 6.25, "y": 2}, + {"matrix": [2, 5], "x": 7.25, "y": 2}, + {"matrix": [6, 0], "x": 8.25, "y": 2}, + {"matrix": [6, 1], "x": 9.25, "y": 2}, + {"matrix": [6, 2], "x": 10.25, "y": 2}, + {"matrix": [6, 3], "x": 11.25, "y": 2}, + {"matrix": [6, 4], "x": 12.25, "y": 2}, + {"matrix": [6, 5], "x": 13.25, "y": 2, "w": 1.75}, + + {"matrix": [3, 0], "x": 0, "y": 3.25}, + {"matrix": [3, 1], "x": 1, "y": 3.25}, + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, + {"matrix": [3, 5], "x": 4.75, "y": 3, "w": 6.25}, + {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, + {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, + {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_275u_r_shift_625u_space": { + "layout": [ + {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [0, 3], "x": 5.5, "y": 0}, + {"matrix": [0, 4], "x": 6.5, "y": 0}, + {"matrix": [0, 5], "x": 7.5, "y": 0}, + {"matrix": [4, 0], "x": 8.5, "y": 0}, + {"matrix": [4, 1], "x": 9.5, "y": 0}, + {"matrix": [4, 2], "x": 10.5, "y": 0}, + {"matrix": [4, 3], "x": 11.5, "y": 0}, + {"matrix": [4, 4], "x": 12.5, "y": 0}, + {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 3.75, "y": 1}, + {"matrix": [1, 2], "x": 4.75, "y": 1}, + {"matrix": [1, 3], "x": 5.75, "y": 1}, + {"matrix": [1, 4], "x": 6.75, "y": 1}, + {"matrix": [1, 5], "x": 7.75, "y": 1}, + {"matrix": [5, 0], "x": 8.75, "y": 1}, + {"matrix": [5, 1], "x": 9.75, "y": 1}, + {"matrix": [5, 2], "x": 10.75, "y": 1}, + {"matrix": [5, 3], "x": 11.75, "y": 1}, + {"matrix": [5, 4], "x": 12.75, "y": 1}, + {"matrix": [5, 5], "x": 13.75, "y": 1, "w": 1.25}, + + {"matrix": [2, 0], "x": 1, "y": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, + {"matrix": [2, 2], "x": 4.25, "y": 2}, + {"matrix": [2, 3], "x": 5.25, "y": 2}, + {"matrix": [2, 4], "x": 6.25, "y": 2}, + {"matrix": [2, 5], "x": 7.25, "y": 2}, + {"matrix": [6, 0], "x": 8.25, "y": 2}, + {"matrix": [6, 1], "x": 9.25, "y": 2}, + {"matrix": [6, 2], "x": 10.25, "y": 2}, + {"matrix": [6, 3], "x": 11.25, "y": 2}, + {"matrix": [6, 5], "x": 12.25, "y": 2, "w": 2.75}, + + {"matrix": [3, 0], "x": 0, "y": 3.25}, + {"matrix": [3, 1], "x": 1, "y": 3.25}, + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, + {"matrix": [3, 5], "x": 4.75, "y": 3, "w": 6.25}, + {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, + {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, + {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_225u_enter_275u_r_shift_625u_space": { + "layout": [ + {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [0, 3], "x": 5.5, "y": 0}, + {"matrix": [0, 4], "x": 6.5, "y": 0}, + {"matrix": [0, 5], "x": 7.5, "y": 0}, + {"matrix": [4, 0], "x": 8.5, "y": 0}, + {"matrix": [4, 1], "x": 9.5, "y": 0}, + {"matrix": [4, 2], "x": 10.5, "y": 0}, + {"matrix": [4, 3], "x": 11.5, "y": 0}, + {"matrix": [4, 4], "x": 12.5, "y": 0}, + {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 3.75, "y": 1}, + {"matrix": [1, 2], "x": 4.75, "y": 1}, + {"matrix": [1, 3], "x": 5.75, "y": 1}, + {"matrix": [1, 4], "x": 6.75, "y": 1}, + {"matrix": [1, 5], "x": 7.75, "y": 1}, + {"matrix": [5, 0], "x": 8.75, "y": 1}, + {"matrix": [5, 1], "x": 9.75, "y": 1}, + {"matrix": [5, 2], "x": 10.75, "y": 1}, + {"matrix": [5, 3], "x": 11.75, "y": 1}, + {"matrix": [5, 5], "x": 12.75, "y": 1, "w": 2.25}, + + {"matrix": [2, 0], "x": 1, "y": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, + {"matrix": [2, 2], "x": 4.25, "y": 2}, + {"matrix": [2, 3], "x": 5.25, "y": 2}, + {"matrix": [2, 4], "x": 6.25, "y": 2}, + {"matrix": [2, 5], "x": 7.25, "y": 2}, + {"matrix": [6, 0], "x": 8.25, "y": 2}, + {"matrix": [6, 1], "x": 9.25, "y": 2}, + {"matrix": [6, 2], "x": 10.25, "y": 2}, + {"matrix": [6, 3], "x": 11.25, "y": 2}, + {"matrix": [6, 5], "x": 12.25, "y": 2, "w": 2.75}, + + {"matrix": [3, 0], "x": 0, "y": 3.25}, + {"matrix": [3, 1], "x": 1, "y": 3.25}, + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, + {"matrix": [3, 5], "x": 4.75, "y": 3, "w": 6.25}, + {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, + {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, + {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/reviung/reviung46/keymaps/default/keymap.c b/keyboards/reviung/reviung46/keymaps/default/keymap.c new file mode 100644 index 000000000000..60f1d32a7092 --- /dev/null +++ b/keyboards/reviung/reviung46/keymaps/default/keymap.c @@ -0,0 +1,47 @@ +// Copyright 2024 gtips (@gtips) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _LOWER, + _RAISE, + _ADJUST, +}; + +#define SF_SS RSFT_T(KC_SLSH) +#define SP_LO LT(_LOWER, KC_SPC) +#define SP_RA LT(_RAISE, KC_SPC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SF_SS, + KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LALT, SP_LO, SP_RA, KC_LALT, KC_RGUI, KC_RCTL + ), + [_LOWER] = LAYOUT( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, KC_QUOT, + _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLSH, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_RAISE] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, KC_END, KC_PGUP, KC_PGDN, XXXXXXX, KC_DQUO, + _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, KC_QUES, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_ADJUST] = LAYOUT( + UG_VALU, UG_SATU, UG_HUEU, UG_NEXT, XXXXXXX, UG_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + UG_VALD, UG_SATD, UG_HUED, UG_PREV, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_MUTE, KC_VOLD, KC_MPLY, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX + ), +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} diff --git a/keyboards/reviung/reviung46/readme.md b/keyboards/reviung/reviung46/readme.md new file mode 100644 index 000000000000..0914155d1432 --- /dev/null +++ b/keyboards/reviung/reviung46/readme.md @@ -0,0 +1,27 @@ +# reviung46 + +![reviung46](https://i.imgur.com/hAanqOQ.jpeg) + +The REVIUNG46 is 42-46 key keyboard. + +* Keyboard Maintainer: [gtips](https://github.com/gtips) +* Hardware Supported: REVIUNG46 PCB. +* Hardware Availability: [PCB & Case Data](https://github.com/gtips/reviung/tree/master/reviung46) + +Make example for this keyboard (after setting up your build environment): + + make reviung46:default + +Flashing example for this keyboard: + + make reviung46: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 From 93765bb0ef9206517ef4c1d98d5b00ccec7bde28 Mon Sep 17 00:00:00 2001 From: russell-myers1 <124931768+russell-myers1@users.noreply.github.com> Date: Tue, 3 Dec 2024 10:35:39 -0800 Subject: [PATCH 19/29] Update hardware_keyboard_guidelines.md to Fix Typos (#24671) Corrected a typo in the phrase "iOS device need lessthan 100" to "iOS devices need less than 100." This was to improve clarity and professionalism of the doc. --- docs/hardware_keyboard_guidelines.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/hardware_keyboard_guidelines.md b/docs/hardware_keyboard_guidelines.md index de67fa3bc399..7f17c46748d6 100644 --- a/docs/hardware_keyboard_guidelines.md +++ b/docs/hardware_keyboard_guidelines.md @@ -111,7 +111,7 @@ The `post_config.h` file can be used for additional post-processing, depending o #define USB_MAX_POWER_CONSUMPTION 400 #else // fix iPhone and iPad power adapter issue - // iOS device need lessthan 100 + // iOS devices need less than 100 #define USB_MAX_POWER_CONSUMPTION 100 #endif From f0eb2460d9e5b6e71ff76da3f341795ac53e1ec2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 19:31:16 +0000 Subject: [PATCH 20/29] Bump JamesIves/github-pages-deploy-action from 4.7.1 to 4.7.2 (#24672) Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.7.1 to 4.7.2. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.7.1...v4.7.2) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 95a2cfa3af21..edce1a6e5c8d 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -56,7 +56,7 @@ jobs: - name: Deploy if: ${{ github.event_name == 'push' && github.repository == 'qmk/qmk_firmware' }} - uses: JamesIves/github-pages-deploy-action@v4.7.1 + uses: JamesIves/github-pages-deploy-action@v4.7.2 with: token: ${{ secrets.GITHUB_TOKEN }} branch: gh-pages From e7f138831727aa0aecb0eb3b5959bfdd3a714567 Mon Sep 17 00:00:00 2001 From: Vaarai Date: Tue, 3 Dec 2024 23:40:07 +0100 Subject: [PATCH 21/29] Add cornia keyboard (#24442) * Add cornia keyboard * Update Fire keymap * [Cornia/Doc] Host image on imgur * [Cornia/config] Remove unnecessary defines * [Cornia] Move I2C stuff to keyboard level * [Cornia/config] Remove unnecessary defines & move all callbacks to keymap.c * [Cornia] Use tri-layer in default keymap * [Cornia/makefiles] remove license headers & root makefile * [Cornia] Put common configuration to top keyboard level * [Cornia] Remove unecessary custom keycodes * [Cornia] Fix readme * [Cornia] Fix RGB keycodes * [Cornia] Fix config files * [Cornia] Fix readme * [Cornia] Fix mcuconf.h license --- keyboards/cornia/config.h | 30 +++ keyboards/cornia/cornia.c | 44 ++++ keyboards/cornia/cornia.h | 21 ++ keyboards/cornia/info.json | 139 +++++++++++++ keyboards/cornia/keymaps/default/keymap.c | 75 +++++++ keyboards/cornia/keymaps/default/rules.mk | 1 + keyboards/cornia/keymaps/fire/config.h | 33 +++ keyboards/cornia/keymaps/fire/keymap.c | 226 +++++++++++++++++++++ keyboards/cornia/keymaps/fire/keymap.h | 55 +++++ keyboards/cornia/keymaps/fire/rules.mk | 8 + keyboards/cornia/keymaps/fire/tap_dances.c | 154 ++++++++++++++ keyboards/cornia/keymaps/fire/tap_dances.h | 47 +++++ keyboards/cornia/mcuconf.h | 25 +++ keyboards/cornia/readme.md | 46 +++++ keyboards/cornia/v0_6/keyboard.json | 12 ++ keyboards/cornia/v1/keyboard.json | 21 ++ 16 files changed, 937 insertions(+) create mode 100644 keyboards/cornia/config.h create mode 100644 keyboards/cornia/cornia.c create mode 100644 keyboards/cornia/cornia.h create mode 100644 keyboards/cornia/info.json create mode 100644 keyboards/cornia/keymaps/default/keymap.c create mode 100644 keyboards/cornia/keymaps/default/rules.mk create mode 100644 keyboards/cornia/keymaps/fire/config.h create mode 100644 keyboards/cornia/keymaps/fire/keymap.c create mode 100644 keyboards/cornia/keymaps/fire/keymap.h create mode 100644 keyboards/cornia/keymaps/fire/rules.mk create mode 100644 keyboards/cornia/keymaps/fire/tap_dances.c create mode 100644 keyboards/cornia/keymaps/fire/tap_dances.h create mode 100644 keyboards/cornia/mcuconf.h create mode 100644 keyboards/cornia/readme.md create mode 100644 keyboards/cornia/v0_6/keyboard.json create mode 100644 keyboards/cornia/v1/keyboard.json diff --git a/keyboards/cornia/config.h b/keyboards/cornia/config.h new file mode 100644 index 000000000000..dbf7031b6232 --- /dev/null +++ b/keyboards/cornia/config.h @@ -0,0 +1,30 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Select hand configuration */ +// #define MASTER_LEFT +#define MASTER_RIGHT +// #define EE_HANDS + +/* I²C config */ +#define I2C_DRIVER I2CD1 +#define I2C1_SDA_PIN GP10 +#define I2C1_SCL_PIN GP11 + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // Timeout window in ms in which the double tap can occur. \ No newline at end of file diff --git a/keyboards/cornia/cornia.c b/keyboards/cornia/cornia.c new file mode 100644 index 000000000000..9a0904733315 --- /dev/null +++ b/keyboards/cornia/cornia.c @@ -0,0 +1,44 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "cornia.h" + +// 'Cornia', 32x32px +#define OLED_LOGO_CORNIA {\ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, \ + 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xe0, 0x00, \ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xfd, 0xe1, \ + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, \ + 0x00, 0x00, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0x3f, 0x07, 0x00, 0x00, 0x00, 0x07, 0x3f, 0xff, 0xff, \ + 0xff, 0xf8, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ + 0x00, 0x1e, 0x1f, 0x1f, 0x1f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, \ + 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x0e, 0x00 \ + } + +void cornia_render_logo(void) { +#ifdef OLED_ENABLE + static const char PROGMEM logo[] = OLED_LOGO_CORNIA; + oled_write_raw_P(logo, sizeof(logo)); +#endif +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + cornia_render_logo(); + return true; +} diff --git a/keyboards/cornia/cornia.h b/keyboards/cornia/cornia.h new file mode 100644 index 000000000000..2cee8d4a685f --- /dev/null +++ b/keyboards/cornia/cornia.h @@ -0,0 +1,21 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +void cornia_render_logo(void); diff --git a/keyboards/cornia/info.json b/keyboards/cornia/info.json new file mode 100644 index 000000000000..7c0b5aabf2c2 --- /dev/null +++ b/keyboards/cornia/info.json @@ -0,0 +1,139 @@ +{ + "manufacturer": "Vaarai", + "maintainer": "Vaarai", + "url": "https://github.com/Vaarai/Cornia", + "usb": { + "vid": "0xFEED" + }, + "processor": "RP2040", + "bootloader": "rp2040", + "split": { + "enabled": true, + "serial": { + "driver": "vendor", + "pin": "GP1" + }, + "transport": { + "sync": { + "matrix_state": true + } + } + }, + "features": { + "extrakey": true, + "mousekey": true, + "bootmagic": true, + "nkro": true, + "oled": true, + "rgb_matrix": true + }, + "community_layouts": [ "split_3x6_3" ], + "layout_aliases": { + "LAYOUT": "LAYOUT_split_3x6_3" + }, + "layouts": { + "LAYOUT_split_3x6_3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.3}, + {"matrix": [0, 1], "x": 1, "y": 0.3}, + {"matrix": [0, 2], "x": 2, "y": 0.1}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.1}, + {"matrix": [0, 5], "x": 5, "y": 0.2}, + {"matrix": [4, 5], "x": 9, "y": 0.2}, + {"matrix": [4, 4], "x": 10, "y": 0.1}, + {"matrix": [4, 3], "x": 11, "y": 0}, + {"matrix": [4, 2], "x": 12, "y": 0.1}, + {"matrix": [4, 1], "x": 13, "y": 0.3}, + {"matrix": [4, 0], "x": 14, "y": 0.3}, + {"matrix": [1, 0], "x": 0, "y": 1.3}, + {"matrix": [1, 1], "x": 1, "y": 1.3}, + {"matrix": [1, 2], "x": 2, "y": 1.1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.1}, + {"matrix": [1, 5], "x": 5, "y": 1.2}, + {"matrix": [5, 5], "x": 9, "y": 1.2}, + {"matrix": [5, 4], "x": 10, "y": 1.1}, + {"matrix": [5, 3], "x": 11, "y": 1}, + {"matrix": [5, 2], "x": 12, "y": 1.1}, + {"matrix": [5, 1], "x": 13, "y": 1.3}, + {"matrix": [5, 0], "x": 14, "y": 1.3}, + {"matrix": [2, 0], "x": 0, "y": 2.3}, + {"matrix": [2, 1], "x": 1, "y": 2.3}, + {"matrix": [2, 2], "x": 2, "y": 2.1}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.1}, + {"matrix": [2, 5], "x": 5, "y": 2.2}, + {"matrix": [6, 5], "x": 9, "y": 2.2}, + {"matrix": [6, 4], "x": 10, "y": 2.1}, + {"matrix": [6, 3], "x": 11, "y": 2}, + {"matrix": [6, 2], "x": 12, "y": 2.1}, + {"matrix": [6, 1], "x": 13, "y": 2.3}, + {"matrix": [6, 0], "x": 14, "y": 2.3}, + {"matrix": [3, 3], "x": 4, "y": 3.7}, + {"matrix": [3, 4], "x": 5, "y": 3.7}, + {"matrix": [3, 5], "x": 6, "y": 3.2}, + {"matrix": [7, 5], "x": 8, "y": 3.2}, + {"matrix": [7, 4], "x": 9, "y": 3.7}, + {"matrix": [7, 3], "x": 10, "y": 3.7} + ] + } + }, + "ws2812": { + "driver": "vendor", + "pin": "GP0" + }, + "rgb_matrix": { + "driver": "ws2812", + "sleep": true, + "split_count": [21, 21], + "animations": { + "static_gradient": true, + "breathing": true + }, + "layout": [ + {"matrix": [3, 5], "x": 95, "y": 63, "flags": 1}, + {"matrix": [2, 5], "x": 85, "y": 39, "flags": 4}, + {"matrix": [1, 5], "x": 85, "y": 21, "flags": 4}, + {"matrix": [0, 5], "x": 85, "y": 4, "flags": 4}, + {"matrix": [0, 4], "x": 68, "y": 2, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 19, "flags": 4}, + {"matrix": [2, 4], "x": 68, "y": 37, "flags": 4}, + {"matrix": [3, 4], "x": 80, "y": 58, "flags": 1}, + {"matrix": [3, 3], "x": 60, "y": 55, "flags": 1}, + {"matrix": [2, 3], "x": 50, "y": 35, "flags": 4}, + {"matrix": [1, 3], "x": 50, "y": 13, "flags": 4}, + {"matrix": [0, 3], "x": 50, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 33, "y": 3, "flags": 4}, + {"matrix": [1, 2], "x": 33, "y": 20, "flags": 4}, + {"matrix": [2, 2], "x": 33, "y": 37, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 42, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 24, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 7, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 7, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 24, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 41, "flags": 1}, + {"matrix": [7, 5], "x": 129, "y": 63, "flags": 1}, + {"matrix": [6, 5], "x": 139, "y": 39, "flags": 4}, + {"matrix": [5, 5], "x": 139, "y": 21, "flags": 4}, + {"matrix": [4, 5], "x": 139, "y": 4, "flags": 4}, + {"matrix": [4, 4], "x": 156, "y": 2, "flags": 4}, + {"matrix": [5, 4], "x": 156, "y": 19, "flags": 4}, + {"matrix": [6, 4], "x": 156, "y": 37, "flags": 4}, + {"matrix": [7, 4], "x": 144, "y": 58, "flags": 1}, + {"matrix": [7, 3], "x": 164, "y": 55, "flags": 1}, + {"matrix": [6, 3], "x": 174, "y": 35, "flags": 4}, + {"matrix": [5, 3], "x": 174, "y": 13, "flags": 4}, + {"matrix": [4, 3], "x": 174, "y": 0, "flags": 4}, + {"matrix": [4, 2], "x": 191, "y": 3, "flags": 4}, + {"matrix": [5, 2], "x": 191, "y": 20, "flags": 4}, + {"matrix": [6, 2], "x": 191, "y": 37, "flags": 4}, + {"matrix": [6, 1], "x": 208, "y": 42, "flags": 4}, + {"matrix": [5, 1], "x": 208, "y": 24, "flags": 4}, + {"matrix": [4, 1], "x": 208, "y": 7, "flags": 4}, + {"matrix": [4, 0], "x": 224, "y": 7, "flags": 1}, + {"matrix": [5, 0], "x": 224, "y": 24, "flags": 1}, + {"matrix": [6, 0], "x": 224, "y": 41, "flags": 1} + ] + } +} \ No newline at end of file diff --git a/keyboards/cornia/keymaps/default/keymap.c b/keyboards/cornia/keymaps/default/keymap.c new file mode 100644 index 000000000000..1aa48d471ff8 --- /dev/null +++ b/keyboards/cornia/keymaps/default/keymap.c @@ -0,0 +1,75 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +/* Layers definitions */ +enum layers { + _ALPHA, + _LOWER, + _UPPER, + _ADJUST, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_ALPHA] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTL, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LSFT, TL_LOWR, KC_SPC, KC_ENT, TL_UPPR, KC_RSFT + //`--------------------------' `--------------------------' + ), + + [_LOWER] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LALT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_RALT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, _______, _______, _______, _______ + //`--------------------------' `--------------------------' + ), + + [_UPPER] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, KC_SLSH, KC_LCBR, KC_LPRN, KC_LBRC, KC_MINS, KC_UNDS, KC_RBRC, KC_RPRN, KC_RCBR, KC_BSLS, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, XXXXXXX, KC_GRV, KC_QUES, KC_EQL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, KC_RGUI + //`--------------------------' `--------------------------' + ), + + [_ADJUST] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, RM_TOGG, RM_HUEU, RM_VALU, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + //|--------+--------+--------+--------+--------|--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, RM_NEXT, RM_HUED, RM_VALD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______ + //`--------------------------' `--------------------------' + ), +}; \ No newline at end of file diff --git a/keyboards/cornia/keymaps/default/rules.mk b/keyboards/cornia/keymaps/default/rules.mk new file mode 100644 index 000000000000..7c9bf212a6f5 --- /dev/null +++ b/keyboards/cornia/keymaps/default/rules.mk @@ -0,0 +1 @@ +TRI_LAYER_ENABLE = yes diff --git a/keyboards/cornia/keymaps/fire/config.h b/keyboards/cornia/keymaps/fire/config.h new file mode 100644 index 000000000000..a40a881bf5be --- /dev/null +++ b/keyboards/cornia/keymaps/fire/config.h @@ -0,0 +1,33 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Split */ +#define SPLIT_ACTIVITY_ENABLE +#define SPLIT_LAYER_STATE_ENABLE +#define SPLIT_LED_STATE_ENABLE +#define SPLIT_MODS_ENABLE + +/* Trackpad */ +#define SPLIT_POINTING_ENABLE +#define POINTING_DEVICE_RIGHT +#define POINTING_DEVICE_ROTATION_90 +#define CIRQUE_PINNACLE_DIAMETER_MM 40 +#define CIRQUE_PINNACLE_TAP_ENABLE +#define CIRQUE_PINNACLE_CURVED_OVERLAY +#define CIRQUE_PINNACLE_POSITION_MODE CIRQUE_PINNACLE_RELATIVE_MODE +#define CIRQUE_PINNACLE_ATTENUATION EXTREG__TRACK_ADCCONFIG__ADC_ATTENUATE_2X diff --git a/keyboards/cornia/keymaps/fire/keymap.c b/keyboards/cornia/keymaps/fire/keymap.c new file mode 100644 index 000000000000..9215c61f9cab --- /dev/null +++ b/keyboards/cornia/keymaps/fire/keymap.c @@ -0,0 +1,226 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +#include "./keymap.h" +#include "./tap_dances.h" + +/* Flag to enable/disable trackpad scroll */ +bool set_scrolling = false; + +/* Variables to store accumulated scroll values */ +float scroll_accumulated_h = 0; +float scroll_accumulated_v = 0; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_ALPHA] = LAYOUT_split_3x6_3( /* Fire (Oxey) : https://bit.ly/layout-doc-v2 */ + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_ESC, KC_P, KC_L, KC_D, KC_G, KC_V, KC_Q, KC_F, KC_O, KC_U, KC_COMM, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TAB, KC_N, KC_R, KC_T, KC_S, KC_Y, KC_J, KC_H, KC_A, KC_E, KC_I, KC_LALT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_X, KC_K, KC_C, KC_W, KC_Z, KC_B, KC_M, KC_QUOT, KC_SCLN, KC_DOT, KC_RCTL, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + TD(TD_SFT_CAPSW), TD(TD_NAV_ACCENT), KC_SPC, KC_ENT, TD(TD_NUM_ACCENT), TD(TD_SFT_CAPSW) + //`--------------------------' `--------------------------' + ), + + [_NAV] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, G(KC_L), XXXXXXX, CK_SCRL, C(KC_A), XXXXXXX, KC_BTN1, KC_BTN2, KC_BTN3, XXXXXXX, XXXXXXX, KC_DEL, + //|--------+--------+ GUI V +--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, C(KC_X), G(KC_V), C(KC_V), C(KC_C), C(KC_Z), KC_WH_U, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, _______, + //|ALT LEFT+--------+ ALT SFT+scrnshot+--------+--------| |--------+--------+--------+--------+--------+--------| + A(KC_LEFT),C(KC_S),S(KC_LALT), CK_SSHT,C(KC_F), C(KC_Y), KC_WH_D, KC_HOME, CK_SELL, CK_SELR, KC_END, _______, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, _______, _______,MO(_ADJUST),_______ + //`--------------------------' `--------------------------' + ), + + [_NUM] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + //|--------+-- / ---+-- { ---+-- ( ---+-- [ ---+-- - ---| |--- _ --+--- ] --+-- ) ---+-- } ---+-- \ ---+--------| + _______, KC_SLSH, KC_LCBR, KC_LPRN, KC_LBRC, KC_MINS, KC_UNDS, KC_RBRC, KC_RPRN, KC_RCBR, KC_BSLS, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, XXXXXXX, KC_GRV, KC_QUES, KC_EQL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + _______,MO(_ADJUST),_______, _______, _______, KC_RGUI + //`--------------------------' `--------------------------' + ), + + [_ADJUST] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, RM_TOGG, RM_HUEU, RM_VALU, CK_DPII, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + //|--------+--------+--------+--------+--------|--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, RM_NEXT, RM_HUED, RM_VALD, CK_DPID, XXXXXXX, TO(_G0), TO(_G1), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______ + //`--------------------------' `--------------------------' + ), + + /* Generic game */ + [_G0] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_ESC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, KC_LSFT, KC_A, KC_S, KC_D, KC_F, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LGUI, KC_LCTL, KC_Z, KC_X, KC_C, KC_V, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_SPC, KC_SPC, XXXXXXX, XXXXXXX, TG(_G0), XXXXXXX + //`--------------------------' `--------------------------' + ), + + /* Warframe */ + [_G1] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TAB, KC_ESC, KC_Q, KC_W, KC_1, KC_2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_F, KC_LSFT, KC_A, KC_S, KC_D, KC_3, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LGUI, KC_LCTL, KC_M, KC_Y, KC_X, KC_4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_SPC,CK_RKJMP, KC_5, XXXXXXX, TG(_G1), XXXXXXX + //`--------------------------' `--------------------------' + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case CK_RKJMP: /* Warframe rocket jump */ + if (record->event.pressed) { + SEND_STRING(SS_DOWN(X_C)); + } else { + SEND_STRING(SS_DOWN(X_SPC) SS_DELAY(50) SS_UP(X_C) SS_DELAY(50) SS_UP(X_SPC)); + } + return false; + case CK_DPII: /* Increase trackpad DPI */ + if (record->event.pressed) { + pointing_device_set_cpi(pointing_device_get_cpi()+100); + } + return false; + case CK_DPID: /* Decrease trackpad DPI */ + if (record->event.pressed) { + pointing_device_set_cpi(pointing_device_get_cpi()-100); + } + return false; + case CK_SCRL: /* Toggle set_scrolling when CK_SCRL key is pressed or released */ + set_scrolling = record->event.pressed; + return false; + } + /* Accented letters */ + if (accent_state != ACCENT_NONE && record->event.pressed) + { + switch (keycode) { + case KC_A: + SEND_STRING(SS_ACCENT_A_GRAVE); + break; + case KC_C: + SEND_STRING(SS_ACCENT_C_CEDIL); + break; + case KC_E: + switch (accent_state) { + case ACCENT_LEFT: + SEND_STRING(SS_ACCENT_E_ACUTE); break; + case ACCENT_RIGHT: + SEND_STRING(SS_ACCENT_E_GRAVE); break; + case ACCENT_NONE: + break; + } + break; + case KC_O: + SEND_STRING(SS_ACCENT_O_CIRCU); + break; + case KC_U: + SEND_STRING(SS_ACCENT_U_GRAVE); + break; + } + accent_state = ACCENT_NONE; + return false; + } + return true; +} + +bool shutdown_user(bool jump_to_bootloader) { + oled_clear(); + oled_set_cursor(0, 2); + if (jump_to_bootloader) { + oled_write_P(PSTR("FLASH"), false); + } else { + oled_write_P(PSTR("RESET"), false); + } + oled_render_dirty(true); + return false; +} + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_270; +} + +bool oled_task_user(void) { + /* Print cornia logo */ + cornia_render_logo(); + + /* Print layer status */ + oled_set_cursor(0, 7); + switch (get_highest_layer(layer_state)) { + case _ALPHA: + oled_write_ln("ALPHA", 0); + break; + case _NAV: + oled_write_ln("NAV", 0); + break; + case _NUM: + oled_write_ln("NUM", 0); + break; + case _ADJUST: + oled_write_ln("ADJUS", 0); + break; + case _G0: + oled_write_ln("GAME0", 0); + break; + case _G1: + oled_write_ln("GAME1", 0); + break; + } + return false; +} + +report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) { + /* Check if drag scrolling is active */ + if (set_scrolling) { + /* Calculate and accumulate scroll values based on mouse movement and divisors */ + scroll_accumulated_h += (float)mouse_report.x / SCROLL_DIVISOR_H; + scroll_accumulated_v += (float)mouse_report.y / SCROLL_DIVISOR_V; + + /* Assign integer parts of accumulated scroll values to the mouse report */ + mouse_report.h = (int8_t)scroll_accumulated_h; + mouse_report.v = (int8_t)scroll_accumulated_v; + + /* Update accumulated scroll values by subtracting the integer parts */ + scroll_accumulated_h -= (int8_t)scroll_accumulated_h; + scroll_accumulated_v -= (int8_t)scroll_accumulated_v; + + /* Clear the X and Y values of the mouse report */ + mouse_report.x = 0; + mouse_report.y = 0; + } + return mouse_report; +} \ No newline at end of file diff --git a/keyboards/cornia/keymaps/fire/keymap.h b/keyboards/cornia/keymaps/fire/keymap.h new file mode 100644 index 000000000000..719c2b97a85a --- /dev/null +++ b/keyboards/cornia/keymaps/fire/keymap.h @@ -0,0 +1,55 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include QMK_KEYBOARD_H + +/* Trackpad srolling speed adjustment */ +#define SCROLL_DIVISOR_H 8.0 +#define SCROLL_DIVISOR_V 8.0 + +/* Trackpad srolling enablement flag */ +extern bool set_scrolling; + +/* Layers definitions */ +enum layers { + _ALPHA, + _NAV, + _NUM, + _ADJUST, + _G0, + _G1 +}; + +/* Custom Keycodes (CK_xxx) */ +#define CK_SSHT LSG(KC_S) +#define CK_SELL LSFT(LCTL(KC_LEFT)) +#define CK_SELR LSFT(LCTL(KC_RIGHT)) + +typedef enum { + CK_RKJMP = SAFE_RANGE, /* Warframe rocket/bullet jump */ + CK_DPII, + CK_DPID, + CK_SCRL, +} cornia_custom_keycodes_t; + +#define SS_ACCENT_A_GRAVE SS_DOWN(X_LALT) SS_TAP(X_P1) SS_TAP(X_P3) SS_TAP(X_P3) SS_UP(X_LALT) /* à */ +#define SS_ACCENT_C_CEDIL SS_DOWN(X_LALT) SS_TAP(X_P1) SS_TAP(X_P3) SS_TAP(X_P5) SS_UP(X_LALT) /* ç */ +#define SS_ACCENT_E_ACUTE SS_DOWN(X_LALT) SS_TAP(X_P1) SS_TAP(X_P3) SS_TAP(X_P0) SS_UP(X_LALT) /* é */ +#define SS_ACCENT_E_GRAVE SS_DOWN(X_LALT) SS_TAP(X_P1) SS_TAP(X_P3) SS_TAP(X_P8) SS_UP(X_LALT) /* è */ +#define SS_ACCENT_O_CIRCU SS_DOWN(X_LALT) SS_TAP(X_P1) SS_TAP(X_P4) SS_TAP(X_P7) SS_UP(X_LALT) /* ô */ +#define SS_ACCENT_U_GRAVE SS_DOWN(X_LALT) SS_TAP(X_P0) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P9) SS_UP(X_LALT) /* ù */ diff --git a/keyboards/cornia/keymaps/fire/rules.mk b/keyboards/cornia/keymaps/fire/rules.mk new file mode 100644 index 000000000000..221d810975eb --- /dev/null +++ b/keyboards/cornia/keymaps/fire/rules.mk @@ -0,0 +1,8 @@ +SRC += tap_dances.c + +CAPS_WORD_ENABLE = yes +TAP_DANCE_ENABLE = yes + +# Cirque Trackpad I²C configuration +POINTING_DEVICE_ENABLE = yes +POINTING_DEVICE_DRIVER = cirque_pinnacle_i2c diff --git a/keyboards/cornia/keymaps/fire/tap_dances.c b/keyboards/cornia/keymaps/fire/tap_dances.c new file mode 100644 index 000000000000..63f991154978 --- /dev/null +++ b/keyboards/cornia/keymaps/fire/tap_dances.c @@ -0,0 +1,154 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +#include "./tap_dances.h" +#include "./keymap.h" + +/* define a type containing as many tapdance states as you need */ +typedef enum { + SINGLE_TAP, + SINGLE_HOLD, + DOUBLE_TAP, + DOUBLE_HOLD, + OTHER_TAP +} td_state_t; + +/* Create a global instance of the tapdance state type */ +static td_state_t td_state; +accent_state_t accent_state = ACCENT_NONE; + +tap_dance_action_t tap_dance_actions[TAP_DANCE_ACTIONS_COUNT] = { + [TD_SFT_CAPSW] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_shift_capsword_finished, dance_shift_capsword_reset), + [TD_NAV_ACCENT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_nav_accent_finished, dance_nav_accent_reset), + [TD_NUM_ACCENT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_num_accent_finished, dance_num_accent_reset) +}; + +int cur_dance (tap_dance_state_t *state) { + if (state->count == 1) { + if (state->interrupted || !state->pressed) + { + return SINGLE_TAP; + } else { + return SINGLE_HOLD; + } + } + if (state->count == 2) + { + if (state->interrupted || !state->pressed) + { + return DOUBLE_TAP; + } else { + return DOUBLE_HOLD; + } + } else { + return OTHER_TAP; + } +} + +void dance_shift_capsword_finished (tap_dance_state_t *state, void *user_data) +{ + td_state = cur_dance(state); + switch (td_state) { + case SINGLE_TAP: + case SINGLE_HOLD: + register_code(KC_LSFT); + break; + case DOUBLE_TAP: + case DOUBLE_HOLD: + caps_word_on(); + break; + case OTHER_TAP: + break; + } +} + +void dance_shift_capsword_reset (tap_dance_state_t *state, void *user_data) +{ + switch (td_state) { + case SINGLE_TAP: + case SINGLE_HOLD: + unregister_code(KC_LSFT); + break; + case DOUBLE_TAP: + case DOUBLE_HOLD: + case OTHER_TAP: + break; + } +} + +void dance_nav_accent_finished (tap_dance_state_t *state, void *user_data) +{ + td_state = cur_dance(state); + switch (td_state) { + case SINGLE_TAP: + case SINGLE_HOLD: + layer_on(_NAV); + break; + case DOUBLE_TAP: + case DOUBLE_HOLD: + accent_state = ACCENT_LEFT; + break; + case OTHER_TAP: + break; + } +} + +void dance_nav_accent_reset (tap_dance_state_t *state, void *user_data) +{ + switch (td_state) { + case SINGLE_TAP: + case SINGLE_HOLD: + layer_off(_NAV); + break; + case DOUBLE_TAP: + case DOUBLE_HOLD: + case OTHER_TAP: + break; + } +} + +void dance_num_accent_finished (tap_dance_state_t *state, void *user_data) +{ + td_state = cur_dance(state); + switch (td_state) { + case SINGLE_TAP: + case SINGLE_HOLD: + layer_on(_NUM); + break; + case DOUBLE_TAP: + case DOUBLE_HOLD: + accent_state = ACCENT_RIGHT; + break; + case OTHER_TAP: + break; + } +} + +void dance_num_accent_reset (tap_dance_state_t *state, void *user_data) +{ + switch (td_state) { + case SINGLE_TAP: + case SINGLE_HOLD: + layer_off(_NUM); + break; + case DOUBLE_TAP: + case DOUBLE_HOLD: + case OTHER_TAP: + break; + } +} \ No newline at end of file diff --git a/keyboards/cornia/keymaps/fire/tap_dances.h b/keyboards/cornia/keymaps/fire/tap_dances.h new file mode 100644 index 000000000000..082e81f3ce04 --- /dev/null +++ b/keyboards/cornia/keymaps/fire/tap_dances.h @@ -0,0 +1,47 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include QMK_KEYBOARD_H + +/* Tap dances definitions */ +enum tap_dances { + TD_SFT_CAPSW, + TD_NAV_ACCENT, + TD_NUM_ACCENT, + TAP_DANCE_ACTIONS_COUNT /* Utility to get TD_xxx count */ +}; + +/* Accented letters */ +typedef enum { + ACCENT_NONE, + ACCENT_LEFT, + ACCENT_RIGHT +} accent_state_t; + +extern accent_state_t accent_state; + +extern tap_dance_action_t tap_dance_actions[TAP_DANCE_ACTIONS_COUNT]; + +void dance_shift_capsword_finished (tap_dance_state_t *state, void *user_data); +void dance_shift_capsword_reset (tap_dance_state_t *state, void *user_data); + +void dance_nav_accent_finished (tap_dance_state_t *state, void *user_data); +void dance_nav_accent_reset (tap_dance_state_t *state, void *user_data); + +void dance_num_accent_finished (tap_dance_state_t *state, void *user_data); +void dance_num_accent_reset (tap_dance_state_t *state, void *user_data); diff --git a/keyboards/cornia/mcuconf.h b/keyboards/cornia/mcuconf.h new file mode 100644 index 000000000000..9c018283f8db --- /dev/null +++ b/keyboards/cornia/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef RP_I2C_USE_I2C0 +#define RP_I2C_USE_I2C0 FALSE + +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C1 TRUE \ No newline at end of file diff --git a/keyboards/cornia/readme.md b/keyboards/cornia/readme.md new file mode 100644 index 000000000000..3051d010a9ff --- /dev/null +++ b/keyboards/cornia/readme.md @@ -0,0 +1,46 @@ +# Cornia Keyboard + +![Cornia v1](https://i.imgur.com/3vRlvi3.jpeg) + +A split keyboard with 3x6 column strongly staggered keys and 3 thumb keys + +* Keyboard Maintainer: [Vaarai](https://github.com/Vaarai) +* Hardware Supported: Cornia PCB, RP2040 / 0xCB-Helios +* Hardware Availability: [PCB Data](https://github.com/Vaarai/Cornia) + +Make example for this keyboard (after setting up your build environment): + + make cornia/v1:default + +Flashing example for this keyboard: + + make cornia/v1: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 + +The Cornia PCBs have a reset button on the bottom side near to the TRRS jack. + +To enter in to the bootloader you can either: +- Hold reset when plugging in that half of the keyboard. +- Double press reset if firmware was already flashed and if RP2040 is used +- Press NAV+NUM+ESC if firmware was already flashed no matter what controller is used + +## Keymaps + +Two keymaps are available for now, below are their [KLE](https://www.keyboard-layout-editor.com/) views: +- [Default QWERTY layout for Cornia keyboard](https://www.keyboard-layout-editor.com/#/gists/5af136790cefe4b35cdf02ca52c1fccc) +- [Fire layout for Cornia keyboard](https://www.keyboard-layout-editor.com/#/gists/a40345c92e1f3f326426ef890ebf4d1c) (Based on [Fire (Oxey)](https://docs.google.com/document/d/1Ic-h8UxGe5-Q0bPuYNgE3NoWiI8ekeadvSQ5YysrwII) layout) + +## OLED Display & Cirque Trackpad + +The Cornia Keyboard also support OLED Display and Cirque Trackpad through I²C, an implementation is available in `fire` keymap. + +To use it please make with the following command: + + make cornia/v1:fire + +And flash with: + + make cornia/v1:fire:flash \ No newline at end of file diff --git a/keyboards/cornia/v0_6/keyboard.json b/keyboards/cornia/v0_6/keyboard.json new file mode 100644 index 000000000000..5e4b96da21cf --- /dev/null +++ b/keyboards/cornia/v0_6/keyboard.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Cornia v0.6", + "usb": { + "pid": "0x0600", + "device_version": "0.6.0" + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": [ "GP29", "GP28", "GP27", "GP26", "GP22", "GP20" ], + "rows": [ "GP4", "GP5", "GP6", "GP7" ] + } +} diff --git a/keyboards/cornia/v1/keyboard.json b/keyboards/cornia/v1/keyboard.json new file mode 100644 index 000000000000..90a54f288eb8 --- /dev/null +++ b/keyboards/cornia/v1/keyboard.json @@ -0,0 +1,21 @@ +{ + "keyboard_name": "Cornia v1", + "usb": { + "pid": "0x1000", + "device_version": "1.0.0" + }, + "split": { + + "handedness": { + "pin": "GP25" + } + }, + "matrix_pins": { + "direct":[ + ["GP27", "GP4", "GP28", "GP3", "GP29", "GP2"], + ["GP5", "GP26", "GP6", "GP22", "GP7", "GP20"], + ["GP8", "GP15", "GP9", "GP14", "GP12", "GP13"], + [ null, null, null, "GP16", "GP23", "GP21"] + ] + } +} From 85222dfd8caaec4c914e74720718f4288f530b0f Mon Sep 17 00:00:00 2001 From: Stephen Edwards Date: Tue, 3 Dec 2024 16:43:14 -0600 Subject: [PATCH 22/29] Add a keyboard entry for yacobo model m replacement control boards (#23827) * add the keyboard * Update keyboards/ibm/model_m/yacobo/keyboard.json Co-authored-by: jack <0x6a73@protonmail.com> * remove dead file * PR Comments * standardize comments * PR Comments --------- Co-authored-by: Stephen Edwards Co-authored-by: jack --- keyboards/ibm/model_m/yacobo/config.h | 22 ++ keyboards/ibm/model_m/yacobo/keyboard.json | 285 ++++++++++++++++++ .../model_m/yacobo/keymaps/default/keymap.c | 30 ++ keyboards/ibm/model_m/yacobo/readme.md | 28 ++ keyboards/ibm/model_m/yacobo/yacobo.c | 26 ++ 5 files changed, 391 insertions(+) create mode 100644 keyboards/ibm/model_m/yacobo/config.h create mode 100644 keyboards/ibm/model_m/yacobo/keyboard.json create mode 100644 keyboards/ibm/model_m/yacobo/keymaps/default/keymap.c create mode 100644 keyboards/ibm/model_m/yacobo/readme.md create mode 100644 keyboards/ibm/model_m/yacobo/yacobo.c diff --git a/keyboards/ibm/model_m/yacobo/config.h b/keyboards/ibm/model_m/yacobo/config.h new file mode 100644 index 000000000000..f8e96c8d6e28 --- /dev/null +++ b/keyboards/ibm/model_m/yacobo/config.h @@ -0,0 +1,22 @@ +/* Copyright 2024 Stephen Edwards + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * Adapted from the Model H Project by Jonathan Hawthorn. + */ + +#pragma once + +/* The status LED on the Blue Pill. */ +#define BLUE_PILL_STATUS_LED C13 diff --git a/keyboards/ibm/model_m/yacobo/keyboard.json b/keyboards/ibm/model_m/yacobo/keyboard.json new file mode 100644 index 000000000000..7ea9c6a621c7 --- /dev/null +++ b/keyboards/ibm/model_m/yacobo/keyboard.json @@ -0,0 +1,285 @@ +{ + "manufacturer": "IBM", + "keyboard_name": "Model M (Yacobo)", + "maintainer": "sje-mse", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true + }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "indicators": { + "num_lock": "B11", + "caps_lock": "B10", + "scroll_lock": "B1", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "A10", "A9", "A8", "B15", "B14", "B13", "B12", "A0"], + "rows": ["A1", "A2", "A3", "A4", "A5", "A6", "A7","B0"], + "ghost": true + }, + "development_board": "bluepill", + "url": "https://github.com/sje-mse/yacobo", + "usb": { + "device_version": "1.0.0", + "max_power": 100, + "pid": "0xB155", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT_fullsize_ansi_wkl": { + "layout": [ + {"label": "Esc", "matrix": [0, 2], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [2, 3], "x": 2, "y": 0}, + {"label": "F2", "matrix": [2, 4], "x": 3, "y": 0}, + {"label": "F3", "matrix": [1, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 8], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [1, 9], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [2, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [2, 6], "x": 11, "y": 0}, + {"label": "F10", "matrix": [3, 6], "x": 12, "y": 0}, + {"label": "F11", "matrix": [3, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [3, 12], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [3, 15], "x": 15.5, "y": 0}, + {"label": "Scroll Lock", "matrix": [4, 15], "x": 16.5, "y": 0}, + {"label": "Pause", "matrix": [6, 14], "x": 17.5, "y": 0}, + + {"label": "`", "matrix": [2, 2], "x": 0, "y": 1.5}, + {"label": "1", "matrix": [3, 2], "x": 1, "y": 1.5}, + {"label": "2", "matrix": [3, 3], "x": 2, "y": 1.5}, + {"label": "3", "matrix": [3, 4], "x": 3, "y": 1.5}, + {"label": "4", "matrix": [3, 5], "x": 4, "y": 1.5}, + {"label": "5", "matrix": [2, 5], "x": 5, "y": 1.5}, + {"label": "6", "matrix": [2, 7], "x": 6, "y": 1.5}, + {"label": "7", "matrix": [3, 7], "x": 7, "y": 1.5}, + {"label": "8", "matrix": [3, 8], "x": 8, "y": 1.5}, + {"label": "9", "matrix": [3, 9], "x": 9, "y": 1.5}, + {"label": "0", "matrix": [3, 10], "x": 10, "y": 1.5}, + {"label": "-", "matrix": [2, 10], "x": 11, "y": 1.5}, + {"label": "=", "matrix": [2, 8], "x": 12, "y": 1.5}, + {"label": "Backspace", "matrix": [1, 6], "x": 13, "y": 1.5, "w": 2}, + + {"label": "Insert", "matrix": [2, 12], "x": 15.5, "y": 1.5}, + {"label": "Home", "matrix": [2, 14], "x": 16.5, "y": 1.5}, + {"label": "Page Up", "matrix": [2, 13], "x": 17.5, "y": 1.5}, + + {"label": "Num Lock", "matrix": [6, 11], "x": 19, "y": 1.5}, + {"label": "/", "matrix": [6, 12], "x": 20, "y": 1.5}, + {"label": "*", "matrix": [6, 13], "x": 21, "y": 1.5}, + {"label": "-", "matrix": [7, 13], "x": 22, "y": 1.5}, + + {"label": "Tab", "matrix": [1, 2], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [4, 2], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [4, 3], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [4, 4], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [4, 5], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [4, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [4, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [4, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [4, 10], "x": 10.5, "y": 2.5}, + {"label": "[", "matrix": [1, 10], "x": 11.5, "y": 2.5}, + {"label": "]", "matrix": [1, 8], "x": 12.5, "y": 2.5}, + {"label": "\\", "matrix": [5, 6], "x": 13.5, "y": 2.5, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 11], "x": 15.5, "y": 2.5}, + {"label": "End", "matrix": [3, 14], "x": 16.5, "y": 2.5}, + {"label": "Page Down", "matrix": [3, 13], "x": 17.5, "y": 2.5}, + + {"label": "7", "matrix": [4, 11], "x": 19, "y": 2.5}, + {"label": "8", "matrix": [4, 12], "x": 20, "y": 2.5}, + {"label": "9", "matrix": [4, 13], "x": 21, "y": 2.5}, + {"label": "+", "matrix": [4, 14], "x": 22, "y": 2.5, "h": 2}, + + {"label": "Caps Lock", "matrix": [1, 3], "x": 0, "y": 3.5, "w": 1.25}, + {"label": "A", "matrix": [5, 2], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [5, 3], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [5, 4], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [5, 5], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [0, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [0, 7], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [5, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [5, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [5, 9], "x": 9.75, "y": 3.5}, + {"label": ";", "matrix": [5, 10], "x": 10.75, "y": 3.5}, + {"label": "'", "matrix": [0, 10], "x": 11.75, "y": 3.5}, + {"label": "Enter", "matrix": [6, 6], "x": 12.75, "y": 3.5, "w": 2.25}, + + {"label": "4", "matrix": [1, 11], "x": 19, "y": 3.5}, + {"label": "5", "matrix": [1, 12], "x": 20, "y": 3.5}, + {"label": "6", "matrix": [1, 13], "x": 21, "y": 3.5}, + + {"label": "Shift", "matrix": [1, 1], "x": 0, "y": 4.5, "w": 2.25}, + {"label": "Z", "matrix": [6, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [6, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [6, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [6, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [7, 5], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [7, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [6, 7], "x": 8.25, "y": 4.5}, + {"label": ",", "matrix": [6, 8], "x": 9.25, "y": 4.5}, + {"label": ".", "matrix": [6, 9], "x": 10.25, "y": 4.5}, + {"label": "/", "matrix": [7, 10], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [6, 1], "x": 12.25, "y": 4.5, "w": 2.75}, + + {"label": "\u2191", "matrix": [0, 14], "x": 16.5, "y": 4.5}, + + {"label": "1", "matrix": [5, 11], "x": 19, "y": 4.5}, + {"label": "2", "matrix": [5, 12], "x": 20, "y": 4.5}, + {"label": "3", "matrix": [5, 13], "x": 21, "y": 4.5}, + {"label": "Enter", "matrix": [5, 14], "x": 22, "y": 4.5, "h": 2}, + + {"label": "Ctrl", "matrix": [2, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Alt", "matrix": [0, 15], "x": 2.5, "y": 5.5, "w": 1.5}, + {"label": "Space", "matrix": [7, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "Alt Gr", "matrix": [7, 15], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Ctrl", "matrix": [6, 0], "x": 13.5, "y": 5.5, "w": 1.5}, + + {"label": "\u2190", "matrix": [7, 14], "x": 15.5, "y": 5.5}, + {"label": "\u2193", "matrix": [7, 11], "x": 16.5, "y": 5.5}, + {"label": "\u2192", "matrix": [7, 12], "x": 17.5, "y": 5.5}, + + {"label": "0", "matrix": [0, 11], "x": 19, "y": 5.5, "w": 2}, + {"label": ".", "matrix": [0, 13], "x": 21, "y": 5.5} + ] + }, + "LAYOUT_fullsize_iso_wkl": { + "layout": [ + {"label": "Esc", "matrix": [0, 2], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [2, 3], "x": 2, "y": 0}, + {"label": "F2", "matrix": [2, 4], "x": 3, "y": 0}, + {"label": "F3", "matrix": [1, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 8], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [1, 9], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [2, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [2, 6], "x": 11, "y": 0}, + {"label": "F10", "matrix": [3, 6], "x": 12, "y": 0}, + {"label": "F11", "matrix": [3, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [3, 12], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [3, 15], "x": 15.5, "y": 0}, + {"label": "Scroll Lock", "matrix": [4, 15], "x": 16.5, "y": 0}, + {"label": "Pause", "matrix": [6, 14], "x": 17.5, "y": 0}, + + {"label": "`", "matrix": [2, 2], "x": 0, "y": 1.5}, + {"label": "1", "matrix": [3, 2], "x": 1, "y": 1.5}, + {"label": "2", "matrix": [3, 3], "x": 2, "y": 1.5}, + {"label": "3", "matrix": [3, 4], "x": 3, "y": 1.5}, + {"label": "4", "matrix": [3, 5], "x": 4, "y": 1.5}, + {"label": "5", "matrix": [2, 5], "x": 5, "y": 1.5}, + {"label": "6", "matrix": [2, 7], "x": 6, "y": 1.5}, + {"label": "7", "matrix": [3, 7], "x": 7, "y": 1.5}, + {"label": "8", "matrix": [3, 8], "x": 8, "y": 1.5}, + {"label": "9", "matrix": [3, 9], "x": 9, "y": 1.5}, + {"label": "0", "matrix": [3, 10], "x": 10, "y": 1.5}, + {"label": "-", "matrix": [2, 10], "x": 11, "y": 1.5}, + {"label": "=", "matrix": [2, 8], "x": 12, "y": 1.5}, + {"label": "Backspace", "matrix": [1, 6], "x": 13, "y": 1.5, "w": 2}, + + {"label": "Insert", "matrix": [2, 12], "x": 15.5, "y": 1.5}, + {"label": "Home", "matrix": [2, 14], "x": 16.5, "y": 1.5}, + {"label": "Page Up", "matrix": [2, 13], "x": 17.5, "y": 1.5}, + + {"label": "Num Lock", "matrix": [6, 11], "x": 19, "y": 1.5}, + {"label": "/", "matrix": [6, 12], "x": 20, "y": 1.5}, + {"label": "*", "matrix": [6, 13], "x": 21, "y": 1.5}, + {"label": "-", "matrix": [7, 13], "x": 22, "y": 1.5}, + + {"label": "Tab", "matrix": [1, 2], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [4, 2], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [4, 3], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [4, 4], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [4, 5], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [4, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [4, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [4, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [4, 10], "x": 10.5, "y": 2.5}, + {"label": "[", "matrix": [1, 10], "x": 11.5, "y": 2.5}, + {"label": "]", "matrix": [1, 8], "x": 12.5, "y": 2.5}, + + {"label": "Delete", "matrix": [2, 11], "x": 15.5, "y": 2.5}, + {"label": "End", "matrix": [3, 14], "x": 16.5, "y": 2.5}, + {"label": "Page Down", "matrix": [3, 13], "x": 17.5, "y": 2.5}, + + {"label": "7", "matrix": [4, 11], "x": 19, "y": 2.5}, + {"label": "8", "matrix": [4, 12], "x": 20, "y": 2.5}, + {"label": "9", "matrix": [4, 13], "x": 21, "y": 2.5}, + {"label": "+", "matrix": [4, 14], "x": 22, "y": 2.5, "h": 2}, + + {"label": "Caps Lock", "matrix": [1, 3], "x": 0, "y": 3.5, "w": 1.25}, + {"label": "A", "matrix": [5, 2], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [5, 3], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [5, 4], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [5, 5], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [0, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [0, 7], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [5, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [5, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [5, 9], "x": 9.75, "y": 3.5}, + {"label": ";", "matrix": [5, 10], "x": 10.75, "y": 3.5}, + {"label": "'", "matrix": [0, 10], "x": 11.75, "y": 3.5}, + {"label": "#", "matrix": [6, 10], "x": 12.75, "y": 3.5}, + {"label": "Enter", "matrix": [6, 6], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + + {"label": "4", "matrix": [1, 11], "x": 19, "y": 3.5}, + {"label": "5", "matrix": [1, 12], "x": 20, "y": 3.5}, + {"label": "6", "matrix": [1, 13], "x": 21, "y": 3.5}, + + {"label": "Shift", "matrix": [1, 1], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "\\", "matrix": [0, 3], "x": 1.25, "y": 4.5}, + {"label": "Z", "matrix": [6, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [6, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [6, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [6, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [7, 5], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [7, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [6, 7], "x": 8.25, "y": 4.5}, + {"label": ",", "matrix": [6, 8], "x": 9.25, "y": 4.5}, + {"label": ".", "matrix": [6, 9], "x": 10.25, "y": 4.5}, + {"label": "/", "matrix": [7, 10], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [6, 1], "x": 12.25, "y": 4.5, "w": 2.75}, + + {"label": "\u2191", "matrix": [0, 14], "x": 16.5, "y": 4.5}, + + {"label": "1", "matrix": [5, 11], "x": 19, "y": 4.5}, + {"label": "2", "matrix": [5, 12], "x": 20, "y": 4.5}, + {"label": "3", "matrix": [5, 13], "x": 21, "y": 4.5}, + {"label": "Enter", "matrix": [5, 14], "x": 22, "y": 4.5, "h": 2}, + + {"label": "Ctrl", "matrix": [2, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Alt", "matrix": [0, 15], "x": 2.5, "y": 5.5, "w": 1.5}, + {"label": "Space", "matrix": [7, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "Alt Gr", "matrix": [7, 15], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Ctrl", "matrix": [6, 0], "x": 13.5, "y": 5.5, "w": 1.5}, + + {"label": "\u2190", "matrix": [7, 14], "x": 15.5, "y": 5.5}, + {"label": "\u2193", "matrix": [7, 11], "x": 16.5, "y": 5.5}, + {"label": "\u2192", "matrix": [7, 12], "x": 17.5, "y": 5.5}, + + {"label": "0", "matrix": [0, 11], "x": 19, "y": 5.5, "w": 2}, + {"label": ".", "matrix": [0, 13], "x": 21, "y": 5.5} + ] + } + } +} diff --git a/keyboards/ibm/model_m/yacobo/keymaps/default/keymap.c b/keyboards/ibm/model_m/yacobo/keymaps/default/keymap.c new file mode 100644 index 000000000000..27647d4ed3c5 --- /dev/null +++ b/keyboards/ibm/model_m/yacobo/keymaps/default/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2021 Stephen Edwards + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * Adapted from the Model H Project by Jonathan Hawthorn. + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_fullsize_ansi_wkl( /* Base layer */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), +}; diff --git a/keyboards/ibm/model_m/yacobo/readme.md b/keyboards/ibm/model_m/yacobo/readme.md new file mode 100644 index 000000000000..d0cafa1d4444 --- /dev/null +++ b/keyboards/ibm/model_m/yacobo/readme.md @@ -0,0 +1,28 @@ +# yacobo + +![yacobo](https://i.imgur.com/1nfuWoa.jpeg) + +*A replacement qmk-compatible control board for the 101-key Model M keyboards. +Inspired by and based on the ModelH by jhawthorn, in comparison this design uses 100% through-hole components, including the widely available STM32F103C8T6 "Blue Pill" development board, for ease of assembly.* + +* Keyboard Maintainer: [Stephen Edwards](https://github.com/sje-mse) +* Hardware Supported: IBM 101-key Model M with Yacobo replacement control boards. +* Hardware Availability: [Yacobo PCB](https://github.com/sje-mse/yacobo). + +Make example for this keyboard (after setting up your build environment): + + make yacobo:default + +Flashing example for this keyboard: + + make yacobo: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**: Press the "Reset" button on the Blue Pill daughterboard. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/ibm/model_m/yacobo/yacobo.c b/keyboards/ibm/model_m/yacobo/yacobo.c new file mode 100644 index 000000000000..7664facacc7e --- /dev/null +++ b/keyboards/ibm/model_m/yacobo/yacobo.c @@ -0,0 +1,26 @@ +/* Copyright 2024 Stephen Edwards + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * Adapted from the Model H Project by Jonathan Hawthorn. + */ + +#include "quantum.h" + + +void keyboard_pre_init_kb(void) { + gpio_set_pin_output(BLUE_PILL_STATUS_LED); + gpio_write_pin(BLUE_PILL_STATUS_LED, 0); + keyboard_pre_init_user(); +} From a794ceeb5168cf82bdbe6d10690596b9cda6fcc3 Mon Sep 17 00:00:00 2001 From: GustawXYZ <129527844+GustawXYZ@users.noreply.github.com> Date: Wed, 4 Dec 2024 00:09:24 +0100 Subject: [PATCH 23/29] [Keyboard] Add dactyl_manuform_pi_pico (#23891) Adds new keyboard under handwired/dactyl_manuform_pi_pico It is a dactyl_manuform(5x6) running on Pi Pico micro controller --- .../dactyl_manuform_pi_pico/config.h | 9 ++ .../dactyl_manuform_pi_pico/keyboard.json | 123 ++++++++++++++++++ .../keymaps/default/keymap.c | 65 +++++++++ .../dactyl_manuform_pi_pico/readme.md | 32 +++++ 4 files changed, 229 insertions(+) create mode 100644 keyboards/handwired/dactyl_manuform_pi_pico/config.h create mode 100644 keyboards/handwired/dactyl_manuform_pi_pico/keyboard.json create mode 100644 keyboards/handwired/dactyl_manuform_pi_pico/keymaps/default/keymap.c create mode 100644 keyboards/handwired/dactyl_manuform_pi_pico/readme.md diff --git a/keyboards/handwired/dactyl_manuform_pi_pico/config.h b/keyboards/handwired/dactyl_manuform_pi_pico/config.h new file mode 100644 index 000000000000..c622149a4a91 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform_pi_pico/config.h @@ -0,0 +1,9 @@ +// Copyright 2023 Gustaw.xyz (@Gustaw.xyz) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_TX_PIN GP9 +#define SERIAL_USART_RX_PIN GP8 diff --git a/keyboards/handwired/dactyl_manuform_pi_pico/keyboard.json b/keyboards/handwired/dactyl_manuform_pi_pico/keyboard.json new file mode 100644 index 000000000000..57202c802a73 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform_pi_pico/keyboard.json @@ -0,0 +1,123 @@ +{ + "manufacturer": "GustawXYZ", + "keyboard_name": "dactyl_manuform_pi_pico", + "maintainer": "GustawXYZ", + "bootloader": "rp2040", + "processor": "RP2040", + "url": "https://github.com/GustawXYZ/dactyl_manuform_pi_pico", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "split": { + "enabled": true, + "handedness": { + "pin": "GP22" + }, + "serial": { + "driver": "vendor" + }, + "transport": { + "watchdog": true + } + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["GP10", "GP11", "GP12", "GP13", "GP14", "GP15"], + "rows": ["GP21", "GP20", "GP19", "GP18", "GP17", "GP16"] + }, + "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": [0, 5], "x": 5, "y": 0}, + + {"matrix": [6, 0], "x": 11, "y": 0}, + {"matrix": [6, 1], "x": 12, "y": 0}, + {"matrix": [6, 2], "x": 13, "y": 0}, + {"matrix": [6, 3], "x": 14, "y": 0}, + {"matrix": [6, 4], "x": 15, "y": 0}, + {"matrix": [6, 5], "x": 16, "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": [7, 0], "x": 11, "y": 1}, + {"matrix": [7, 1], "x": 12, "y": 1}, + {"matrix": [7, 2], "x": 13, "y": 1}, + {"matrix": [7, 3], "x": 14, "y": 1}, + {"matrix": [7, 4], "x": 15, "y": 1}, + {"matrix": [7, 5], "x": 16, "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": [8, 0], "x": 11, "y": 2}, + {"matrix": [8, 1], "x": 12, "y": 2}, + {"matrix": [8, 2], "x": 13, "y": 2}, + {"matrix": [8, 3], "x": 14, "y": 2}, + {"matrix": [8, 4], "x": 15, "y": 2}, + {"matrix": [8, 5], "x": 16, "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}, + {"matrix": [3, 5], "x": 5, "y": 3}, + + {"matrix": [9, 0], "x": 11, "y": 3}, + {"matrix": [9, 1], "x": 12, "y": 3}, + {"matrix": [9, 2], "x": 13, "y": 3}, + {"matrix": [9, 3], "x": 14, "y": 3}, + {"matrix": [9, 4], "x": 15, "y": 3}, + {"matrix": [9, 5], "x": 16, "y": 3}, + + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 4}, + + {"matrix": [10, 2], "x": 13, "y": 4}, + {"matrix": [10, 3], "x": 14, "y": 4}, + + {"matrix": [4, 4], "x": 4, "y": 5}, + {"matrix": [4, 5], "x": 5, "y": 5}, + + {"matrix": [10, 0], "x": 11, "y": 5}, + {"matrix": [10, 1], "x": 12, "y": 5}, + + {"matrix": [5, 4], "x": 6, "y": 6}, + {"matrix": [5, 5], "x": 7, "y": 6}, + + {"matrix": [11, 0], "x": 9, "y": 6}, + {"matrix": [11, 1], "x": 10, "y": 6}, + + {"matrix": [5, 2], "x": 6, "y": 7}, + {"matrix": [5, 3], "x": 7, "y": 7}, + + {"matrix": [11, 2], "x": 9, "y": 7}, + {"matrix": [11, 3], "x": 10, "y": 7} + ] + } + } +} diff --git a/keyboards/handwired/dactyl_manuform_pi_pico/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform_pi_pico/keymaps/default/keymap.c new file mode 100644 index 000000000000..cd78aef7a97e --- /dev/null +++ b/keyboards/handwired/dactyl_manuform_pi_pico/keymaps/default/keymap.c @@ -0,0 +1,65 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY, + _SYMBOLS, + _GAMING, + _ARROWS, + _WINMGR, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + LALT(KC_LSFT), LALT(KC_SPC), LALT(KC_SPC), LGUI(KC_LALT), + KC_SPC, TT(_SYMBOLS), TT(_ARROWS), LALT(KC_ENTER), + KC_LCTL, KC_LGUI, KC_LGUI, KC_RCTL, + KC_LALT, TT(_WINMGR), TT(_GAMING), KC_LALT), + + [_SYMBOLS] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_CAPS_LOCK, LSFT(KC_BSLS), KC_BSLS, LSFT(KC_LBRC), LSFT(KC_RBRC), KC_TRNS, KC_TRNS, LSFT(KC_7), LSFT(KC_8), LSFT(KC_9), LCTL(KC_EQUAL), LGUI(KC_EQUAL), + TO(_QWERTY), LSFT(KC_EQUAL), KC_MINUS, LSFT(KC_9), LSFT(KC_0), KC_GRAVE, KC_BSLS, LSFT(KC_4), LSFT(KC_5), LSFT(KC_6), LCTL(KC_MINUS), LGUI(KC_MINUS), + KC_TRNS, KC_EQUAL, LSFT(KC_MINUS), KC_LBRC, KC_RBRC, LSFT(KC_GRAVE), LSFT(KC_BSLS), LSFT(KC_1), LSFT(KC_2), LSFT(KC_3), KC_COMMA, KC_CALC, + KC_TRNS, KC_TRNS, LSFT(KC_0), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, LSFT(KC_0), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + QK_RBT, KC_TRNS, KC_TRNS, KC_TRNS), + + [_GAMING] = LAYOUT( + KC_6, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_7, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_ESC, KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, + KC_8, KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_9, KC_0, KC_TRNS, KC_TRNS, + KC_SPC, MO(_ARROWS), KC_TRNS, KC_ENTER, + KC_G, KC_M, KC_TRNS, KC_TRNS, + KC_LALT, TO(_QWERTY), TO(_QWERTY), KC_TRNS), + + [_ARROWS] = LAYOUT( + KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_NUM, KC_KP_SLASH, KC_P7, KC_P8, KC_P9, KC_MINUS, LCTL(KC_LEFT), LCTL(KC_DOWN), LCTL(KC_UP), LCTL(KC_RGHT), KC_TRNS, KC_DELETE, + TO(_QWERTY), KC_KP_PLUS, KC_P4, KC_P5, KC_P6, KC_DOT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_END, KC_PSCR, + KC_UNDS, KC_KP_MINUS, KC_P1, KC_P2, KC_P3, KC_COMMA, KC_HOME, KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE, KC_INS, + KC_KP_DOT, KC_P0, KC_VOLD, KC_VOLU, + KC_P0, TO(_WINMGR), KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, QK_RBT), + + [_WINMGR] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_F1, LGUI(KC_7), LGUI(KC_8), LGUI(KC_9), KC_F4, KC_F7, SGUI(KC_7), SGUI(KC_8), SGUI(KC_9), KC_F10, KC_TRNS, + TO(_QWERTY), KC_F2, LGUI(KC_4), LGUI(KC_5), LGUI(KC_6), KC_F5, KC_F8, SGUI(KC_4), SGUI(KC_5), SGUI(KC_6), KC_F11, KC_TRNS, + KC_TRNS, KC_F3, LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), KC_F6, KC_F9, SGUI(KC_1), SGUI(KC_2), SGUI(KC_3), KC_F12, KC_TRNS, + KC_TRNS, LGUI(KC_0), SGUI(KC_0), KC_TRNS, + LGUI(KC_0), KC_TRNS, KC_TRNS, SGUI(KC_0), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + LCTL(LGUI(KC_Q)), KC_TRNS, KC_TRNS, KC_TRNS) +}; + diff --git a/keyboards/handwired/dactyl_manuform_pi_pico/readme.md b/keyboards/handwired/dactyl_manuform_pi_pico/readme.md new file mode 100644 index 000000000000..808f030fb0ae --- /dev/null +++ b/keyboards/handwired/dactyl_manuform_pi_pico/readme.md @@ -0,0 +1,32 @@ +# dactyl_manuform_pi_pico + +![dactyl_manuform_pi_pico](https://i.imgur.com/T9b74bI.jpg) + +This is a dactyl_manuform 5x6 running Rasrberry Pi Pico. +It's based on alcor_dactyl but with more reasonable GPIO layout for Pi Pico +and clasic dactyl_manuform layout (pinkies have only 4 rows). + +Build instructions: https://github.com/GustawXYZ/dactyl_manuform_pi_pico/ + +* Keyboard Maintainer: [Gustaw.xyz](https://github.com/Gustaw.xyz) +* Hardware Supported: Raspberry Pi Pico and other RP2040 +* Hardware Availability: https://www.raspberrypi.com/products/raspberry-pi-pico/ +* 3D Print model: https://github.com/abstracthat/dactyl-manuform + +Make example for this keyboard (after setting up your build environment): + + make handwired/dactyl_manuform_pi_pico:default + +Flashing example for this keyboard: + + make handwired/dactyl_manuform_pi_pico: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 From c2bc6e2b3c4edd20587b881b480232734f966212 Mon Sep 17 00:00:00 2001 From: Can Baytok Date: Wed, 4 Dec 2024 17:37:02 +0100 Subject: [PATCH 24/29] [Keyboard] Add cans12erv2 (#24628) Co-authored-by: jack Co-authored-by: Duncan Sutherland Co-authored-by: Drashna Jaelre Co-authored-by: Can Baytok --- keyboards/handwired/cans12erv2/keyboard.json | 49 +++++++++++++++++++ .../cans12erv2/keymaps/default/keymap.c | 17 +++++++ .../cans12erv2/keymaps/default/rules.mk | 1 + keyboards/handwired/cans12erv2/readme.md | 27 ++++++++++ 4 files changed, 94 insertions(+) create mode 100644 keyboards/handwired/cans12erv2/keyboard.json create mode 100644 keyboards/handwired/cans12erv2/keymaps/default/keymap.c create mode 100644 keyboards/handwired/cans12erv2/keymaps/default/rules.mk create mode 100644 keyboards/handwired/cans12erv2/readme.md diff --git a/keyboards/handwired/cans12erv2/keyboard.json b/keyboards/handwired/cans12erv2/keyboard.json new file mode 100644 index 000000000000..ed0e78cd94ee --- /dev/null +++ b/keyboards/handwired/cans12erv2/keyboard.json @@ -0,0 +1,49 @@ +{ + "manufacturer": "Can Baytok", + "keyboard_name": "Cans12erV2", + "maintainer": "canbaytok", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "GP14", "pin_b": "GP15"} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP9", "GP10", "GP11", "GP12"], + "rows": ["GP13", "GP7", "GP8"] + }, + "host_language": "german", + "processor": "RP2040", + "url": "https://github.com/canbaytok/Cans12erV2", + "usb": { + "device_version": "1.0.0", + "pid": "0xABC0", + "vid": "0x4342" + }, + "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, "encoder": 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} + ] + } + } +} diff --git a/keyboards/handwired/cans12erv2/keymaps/default/keymap.c b/keyboards/handwired/cans12erv2/keymaps/default/keymap.c new file mode 100644 index 000000000000..0619369bb27d --- /dev/null +++ b/keyboards/handwired/cans12erv2/keymaps/default/keymap.c @@ -0,0 +1,17 @@ +// Copyright 2024 Can Baytok (https://github.com/canbaytok) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_A, KC_B, KC_C, KC_D, + KC_E, KC_F, KC_G, KC_H, + KC_I, KC_J, KC_K, KC_L + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } +}; +#endif diff --git a/keyboards/handwired/cans12erv2/keymaps/default/rules.mk b/keyboards/handwired/cans12erv2/keymaps/default/rules.mk new file mode 100644 index 000000000000..ee325681483f --- /dev/null +++ b/keyboards/handwired/cans12erv2/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/handwired/cans12erv2/readme.md b/keyboards/handwired/cans12erv2/readme.md new file mode 100644 index 000000000000..fa08efacc770 --- /dev/null +++ b/keyboards/handwired/cans12erv2/readme.md @@ -0,0 +1,27 @@ +# Cans12erV2 +![Cans12erV2](https://i.imgur.com/3fkbydJ.png) + +New version of my 12-key orthogonal macro keypad with hot swappable keyswitch support and an encoder knob. + +* Keyboard Maintainer: [Can Baytok](https://github.com/canbaytok) +* Build Instructions: [Github](https://github.com/canbaytok/Cans12erV2) +* Hardware Supported: RP2040 Zero +* Hardware Availability: amazon, aliexpress (RP2040 Zero clones work too) + +Make example for this keyboard (after setting up your build environment): + + make handwired/cans12erv2:default + +Flashing example for this keyboard: + + make handwired/cans12erv2: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**: Quickly double press the reset button on the PCB to make the RP2040 boot into its uf2 mode +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file From 88d4462e528a64a50942b718e9b7705b4d6dd3dd Mon Sep 17 00:00:00 2001 From: Marco Pelegrini Date: Wed, 4 Dec 2024 08:51:40 -0800 Subject: [PATCH 25/29] [Keyboard] Add Marcopad (#24636) * Marcopad debut * Applying core review suggestions * Optional layout with backlit * Line feeds and replacing dev board configs * Function to toggle backlight * Move to RGB Matrix * Fixing capitalization * Review comments --------- Co-authored-by: Marco Pelegrini --- keyboards/marcopad/keyboard.json | 80 +++++++++++++++++++++ keyboards/marcopad/keymaps/backlit/keymap.c | 44 ++++++++++++ keyboards/marcopad/keymaps/backlit/rules.mk | 4 ++ keyboards/marcopad/keymaps/default/keymap.c | 21 ++++++ keyboards/marcopad/readme.md | 27 +++++++ 5 files changed, 176 insertions(+) create mode 100644 keyboards/marcopad/keyboard.json create mode 100644 keyboards/marcopad/keymaps/backlit/keymap.c create mode 100644 keyboards/marcopad/keymaps/backlit/rules.mk create mode 100644 keyboards/marcopad/keymaps/default/keymap.c create mode 100644 keyboards/marcopad/readme.md diff --git a/keyboards/marcopad/keyboard.json b/keyboards/marcopad/keyboard.json new file mode 100644 index 000000000000..c0a8ca37c049 --- /dev/null +++ b/keyboards/marcopad/keyboard.json @@ -0,0 +1,80 @@ +{ + "manufacturer": "pelegrini.ca", + "keyboard_name": "MarcoPad", + "maintainer": "Marco Pelegrini", + "bootloader": "rp2040", + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP4", "GP26", "GP27"], + "rows": ["GP15", "GP14", "GP29"] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "dual_beacon": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "solid_reactive": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "splash": true, + "typing_heatmap": true + }, + "default": { + "animation": "splash", + "hue": 132, + "sat": 102, + "speed": 80, + "val": 255 + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 0, "y": 32, "flags": 4}, + {"matrix": [0, 2], "x": 0, "y": 64, "flags": 4}, + {"matrix": [1, 0], "x": 112, "y": 0, "flags": 4}, + {"matrix": [1, 1], "x": 112, "y": 32, "flags": 4}, + {"matrix": [1, 2], "x": 112, "y": 64, "flags": 4}, + {"matrix": [2, 0], "x": 224, "y": 0, "flags": 4}, + {"matrix": [2, 1], "x": 224, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 224, "y": 64, "flags": 4} + ], + "sleep": true + }, + "url": "https://pelegrini.ca/marcopad", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP28" + }, + "community_layouts": ["ortho_3x3"], + "layouts": { + "LAYOUT_ortho_3x3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 0, "y": 1}, + {"matrix": [0, 2], "x": 0, "y": 2}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 1, "y": 2}, + {"matrix": [2, 0], "x": 2, "y": 0}, + {"matrix": [2, 1], "x": 2, "y": 1}, + {"matrix": [2, 2], "x": 2, "y": 2} + ] + } + } +} diff --git a/keyboards/marcopad/keymaps/backlit/keymap.c b/keyboards/marcopad/keymaps/backlit/keymap.c new file mode 100644 index 000000000000..d70df8e6f75b --- /dev/null +++ b/keyboards/marcopad/keymaps/backlit/keymap.c @@ -0,0 +1,44 @@ +// Copyright (c) 2022 Marco Pelegrini +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┐ + * │ 7 │ 8 │ 9 │ + * ├───┼───┼───┤ + * │ 4 │ 5 │ 6 │ + * ├───┼───┼───┤ + * │ 1 │ 2 │ 3 │ + * └───┴───┴───┘ + */ + [0] = LAYOUT_ortho_3x3( + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, + KC_P1, KC_P2, KC_P3 + ) +}; + +const uint16_t PROGMEM backlight_next[] = {KC_P7, KC_P8, COMBO_END}; +const uint16_t PROGMEM backlight_toggle[] = {KC_P7, KC_P9, COMBO_END}; +const uint16_t PROGMEM hue_up[] = {KC_P7, KC_P4, COMBO_END}; +const uint16_t PROGMEM hue_down[] = {KC_P7, KC_P1, COMBO_END}; +const uint16_t PROGMEM sat_up[] = {KC_P7, KC_P5, COMBO_END}; +const uint16_t PROGMEM sat_down[] = {KC_P7, KC_P2, COMBO_END}; +const uint16_t PROGMEM value_up[] = {KC_P7, KC_P6, COMBO_END}; +const uint16_t PROGMEM value_down[] = {KC_P7, KC_P3, COMBO_END}; +const uint16_t PROGMEM speed_up[] = {KC_P8, KC_P4, COMBO_END}; +const uint16_t PROGMEM speed_down[] = {KC_P8, KC_P1, COMBO_END}; +combo_t key_combos[] = { + COMBO(backlight_next, RGB_MODE_FORWARD), + COMBO(backlight_toggle, RGB_TOG), + COMBO(hue_up, RGB_HUI), + COMBO(hue_down, RGB_HUD), + COMBO(sat_up, RGB_SAI), + COMBO(sat_down, RGB_SAD), + COMBO(value_up, RGB_VAI), + COMBO(value_down, RGB_VAD), + COMBO(speed_up, RGB_SPI), + COMBO(speed_down, RGB_SPD) +}; diff --git a/keyboards/marcopad/keymaps/backlit/rules.mk b/keyboards/marcopad/keymaps/backlit/rules.mk new file mode 100644 index 000000000000..c358f5460504 --- /dev/null +++ b/keyboards/marcopad/keymaps/backlit/rules.mk @@ -0,0 +1,4 @@ +# Copyright (c) 2022 Marco Pelegrini +# SPDX-License-Identifier: GPL-2.0-or-later + +COMBO_ENABLE = yes diff --git a/keyboards/marcopad/keymaps/default/keymap.c b/keyboards/marcopad/keymaps/default/keymap.c new file mode 100644 index 000000000000..b892c0e80c81 --- /dev/null +++ b/keyboards/marcopad/keymaps/default/keymap.c @@ -0,0 +1,21 @@ +// Copyright (c) 2022 Marco Pelegrini +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┐ + * │ 7 │ 8 │ 9 │ + * ├───┼───┼───┤ + * │ 4 │ 5 │ 6 │ + * ├───┼───┼───┤ + * │ 1 │ 2 │ 3 │ + * └───┴───┴───┘ + */ + [0] = LAYOUT_ortho_3x3( + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, + KC_P1, KC_P2, KC_P3 + ) +}; diff --git a/keyboards/marcopad/readme.md b/keyboards/marcopad/readme.md new file mode 100644 index 000000000000..6bc1733f30cc --- /dev/null +++ b/keyboards/marcopad/readme.md @@ -0,0 +1,27 @@ +# MarcoPad + +![marcopad](https://i.imgur.com/AnC9SeW.png) + +*A compact 3x3 keys macropad built with RP-2040 Zero* + +* Keyboard Maintainer: [pelegrini.ca](https://pelegrini.ca/marcopad) +* Hardware Supported: [MarcoPad](https://pelegrini.ca/marcopad) +* Hardware Availability: [MarcoPad](https://pelegrini.ca/marcopad) + +Make example for this keyboard (after setting up your build environment): + + make marcopad:default + +Flashing example for this keyboard: + + make marcopad: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 (top left key) and plug in the keyboard +* **Physical reset button**: Using 2 paperclips, press and hold the BOOT button, then short press the RESET button on the back of the MarcoPad +* **Physical reset button + plug in**: Using a paperclip, press and hold the BOOT button, then plug in the MarcoPad From 8094a1d182a64f1188ff9d952d71c8f6c267d823 Mon Sep 17 00:00:00 2001 From: Cipulot <40441626+Cipulot@users.noreply.github.com> Date: Wed, 4 Dec 2024 17:55:08 +0100 Subject: [PATCH 26/29] Addition of EC Constellation (#24644) * Addition of EC Constellation * Fix layout macro name --- keyboards/cipulot/ec_constellation/config.h | 63 ++++++ keyboards/cipulot/ec_constellation/halconf.h | 21 ++ .../cipulot/ec_constellation/keyboard.json | 185 ++++++++++++++++++ .../keymaps/65_ansi_rwkl/keymap.c | 43 ++++ .../ec_constellation/keymaps/default/keymap.c | 43 ++++ keyboards/cipulot/ec_constellation/mcuconf.h | 22 +++ .../cipulot/ec_constellation/post_rules.mk | 1 + keyboards/cipulot/ec_constellation/readme.md | 26 +++ keyboards/cipulot/ec_constellation/rules.mk | 1 + 9 files changed, 405 insertions(+) create mode 100644 keyboards/cipulot/ec_constellation/config.h create mode 100644 keyboards/cipulot/ec_constellation/halconf.h create mode 100644 keyboards/cipulot/ec_constellation/keyboard.json create mode 100644 keyboards/cipulot/ec_constellation/keymaps/65_ansi_rwkl/keymap.c create mode 100644 keyboards/cipulot/ec_constellation/keymaps/default/keymap.c create mode 100644 keyboards/cipulot/ec_constellation/mcuconf.h create mode 100644 keyboards/cipulot/ec_constellation/post_rules.mk create mode 100644 keyboards/cipulot/ec_constellation/readme.md create mode 100644 keyboards/cipulot/ec_constellation/rules.mk diff --git a/keyboards/cipulot/ec_constellation/config.h b/keyboards/cipulot/ec_constellation/config.h new file mode 100644 index 000000000000..1a2ecf54a0b6 --- /dev/null +++ b/keyboards/cipulot/ec_constellation/config.h @@ -0,0 +1,63 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +#define UNUSED_POSITIONS_LIST { {3, 1}, {4, 3}, {4, 4}, {4, 5}, {4, 7}, {4, 8}, {4, 9} } + +#define MATRIX_ROW_PINS \ + { A8, A15, B12, B8, B9 } + +#define AMUX_COUNT 1 +#define AMUX_MAX_COLS_COUNT 15 + +#define AMUX_EN_PINS \ + { B5 } + +#define AMUX_SEL_PINS \ + { B6, B7, B4, B3 } + +#define AMUX_COL_CHANNELS_SIZES \ + { 15 } + +#define AMUX_0_COL_CHANNELS \ + { 7, 6, 5, 4, 3, 2, 1, 0, 9, 15, 14, 13, 10, 11, 12} + +#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS + +#define DISCHARGE_PIN A2 +#define ANALOG_PORT A3 + +#define DEFAULT_ACTUATION_MODE 0 +#define DEFAULT_MODE_0_ACTUATION_LEVEL 550 +#define DEFAULT_MODE_0_RELEASE_LEVEL 500 +#define DEFAULT_MODE_1_INITIAL_DEADZONE_OFFSET DEFAULT_MODE_0_ACTUATION_LEVEL +#define DEFAULT_MODE_1_ACTUATION_OFFSET 70 +#define DEFAULT_MODE_1_RELEASE_OFFSET 70 +#define DEFAULT_EXTREMUM 1023 +#define EXPECTED_NOISE_FLOOR 0 +#define NOISE_FLOOR_THRESHOLD 50 +#define BOTTOMING_CALIBRATION_THRESHOLD 50 +#define DEFAULT_NOISE_FLOOR_SAMPLING_COUNT 30 +#define DEFAULT_BOTTOMING_READING 1023 +#define DEFAULT_CALIBRATION_STARTER true + +#define DISCHARGE_TIME 10 + +#define EECONFIG_KB_DATA_SIZE 159 diff --git a/keyboards/cipulot/ec_constellation/halconf.h b/keyboards/cipulot/ec_constellation/halconf.h new file mode 100644 index 000000000000..6b63cb5af98e --- /dev/null +++ b/keyboards/cipulot/ec_constellation/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_ADC TRUE + +#include_next diff --git a/keyboards/cipulot/ec_constellation/keyboard.json b/keyboards/cipulot/ec_constellation/keyboard.json new file mode 100644 index 000000000000..15187c472f21 --- /dev/null +++ b/keyboards/cipulot/ec_constellation/keyboard.json @@ -0,0 +1,185 @@ +{ + "manufacturer": "Cipulot", + "keyboard_name": "Constellation EC", + "maintainer": "Cipulot", + "bootloader": "stm32-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "eeprom": { + "wear_leveling": { + "backing_size": 4096 + } + }, + "features": { + "bootmagic": false, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "processor": "STM32F411", + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x6BC9", + "shared_endpoint": { + "keyboard": true + }, + "vid": "0x6369" + }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT_65_ansi_rwkl_split_bs" + }, + "layouts": { + "LAYOUT_65_ansi_rwkl": { + "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, "w": 2}, + {"matrix": [1, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 13], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 11.75, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_rwkl_split_bs": { + "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": [0, 14], "x": 14, "y": 0}, + {"matrix": [1, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 13], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 11.75, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/cipulot/ec_constellation/keymaps/65_ansi_rwkl/keymap.c b/keyboards/cipulot/ec_constellation/keymaps/65_ansi_rwkl/keymap.c new file mode 100644 index 000000000000..acc4c91e4c3f --- /dev/null +++ b/keyboards/cipulot/ec_constellation/keymaps/65_ansi_rwkl/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_65_ansi_rwkl( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_ansi_rwkl( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, + _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_65_ansi_rwkl( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_constellation/keymaps/default/keymap.c b/keyboards/cipulot/ec_constellation/keymaps/default/keymap.c new file mode 100644 index 000000000000..18d1418be214 --- /dev/null +++ b/keyboards/cipulot/ec_constellation/keymaps/default/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_65_ansi_rwkl_split_bs( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_ansi_rwkl_split_bs( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, _______, + _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_65_ansi_rwkl_split_bs( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_constellation/mcuconf.h b/keyboards/cipulot/ec_constellation/mcuconf.h new file mode 100644 index 000000000000..1679d3fbc04c --- /dev/null +++ b/keyboards/cipulot/ec_constellation/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE diff --git a/keyboards/cipulot/ec_constellation/post_rules.mk b/keyboards/cipulot/ec_constellation/post_rules.mk new file mode 100644 index 000000000000..5dba48cc5fd6 --- /dev/null +++ b/keyboards/cipulot/ec_constellation/post_rules.mk @@ -0,0 +1 @@ +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec_constellation/readme.md b/keyboards/cipulot/ec_constellation/readme.md new file mode 100644 index 000000000000..16bbdcdf6f8b --- /dev/null +++ b/keyboards/cipulot/ec_constellation/readme.md @@ -0,0 +1,26 @@ +# Constellation EC + +![Constellation EC](https://i.imgur.com/ndgUV63.jpeg) + +EC version of the Constellation keyboard. + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) +* Hardware Supported: Constellation EC PCB +* Hardware Availability: [Keyboard Treehouse](https://keyboardtreehouse.com/collections/constellation) + +Make example for this keyboard (after setting up your build environment): + + make cipulot/ec_constellation:default + +Flashing example for this keyboard: + + make cipulot/ec_constellation: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**: Long short the exposed pins on the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cipulot/ec_constellation/rules.mk b/keyboards/cipulot/ec_constellation/rules.mk new file mode 100644 index 000000000000..1716098b3e10 --- /dev/null +++ b/keyboards/cipulot/ec_constellation/rules.mk @@ -0,0 +1 @@ +OPT = 3 From 5dc92edf11946dca663c6723d8039e734126ccb0 Mon Sep 17 00:00:00 2001 From: Cipulot <40441626+Cipulot@users.noreply.github.com> Date: Wed, 4 Dec 2024 17:57:16 +0100 Subject: [PATCH 27/29] Addition of EC1-AT (#24645) --- keyboards/cipulot/ec1_at/config.h | 61 ++++++++ keyboards/cipulot/ec1_at/halconf.h | 21 +++ keyboards/cipulot/ec1_at/keyboard.json | 142 ++++++++++++++++++ .../cipulot/ec1_at/keymaps/default/keymap.c | 42 ++++++ keyboards/cipulot/ec1_at/mcuconf.h | 22 +++ keyboards/cipulot/ec1_at/post_rules.mk | 1 + keyboards/cipulot/ec1_at/readme.md | 26 ++++ keyboards/cipulot/ec1_at/rules.mk | 1 + 8 files changed, 316 insertions(+) create mode 100644 keyboards/cipulot/ec1_at/config.h create mode 100644 keyboards/cipulot/ec1_at/halconf.h create mode 100644 keyboards/cipulot/ec1_at/keyboard.json create mode 100644 keyboards/cipulot/ec1_at/keymaps/default/keymap.c create mode 100644 keyboards/cipulot/ec1_at/mcuconf.h create mode 100644 keyboards/cipulot/ec1_at/post_rules.mk create mode 100644 keyboards/cipulot/ec1_at/readme.md create mode 100644 keyboards/cipulot/ec1_at/rules.mk diff --git a/keyboards/cipulot/ec1_at/config.h b/keyboards/cipulot/ec1_at/config.h new file mode 100644 index 000000000000..5e7af3fac570 --- /dev/null +++ b/keyboards/cipulot/ec1_at/config.h @@ -0,0 +1,61 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define MATRIX_ROWS 5 +#define MATRIX_COLS 21 + +#define UNUSED_POSITIONS_LIST { {2, 16}, {4, 5}, {4, 7}, {4, 9}, {4, 12}, {4, 16} } + +#define MATRIX_ROW_PINS {A8, B15, B14, B12, B13} + +#define AMUX_COUNT 2 +#define AMUX_MAX_COLS_COUNT 16 + +#define AMUX_EN_PINS {B5, A15} + +#define AMUX_SEL_PINS {B6, B7, B4, B3} + +#define AMUX_COL_CHANNELS_SIZES {16, 5} + +#define AMUX_0_COL_CHANNELS {5, 6, 7, 4, 3, 2, 1, 0, 8, 15, 14, 13, 12, 10, 9, 11} + +#define AMUX_1_COL_CHANNELS {4, 2, 1, 0, 3} + +#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS, AMUX_1_COL_CHANNELS + +#define DISCHARGE_PIN A2 +#define ANALOG_PORT A3 + +#define DEFAULT_ACTUATION_MODE 0 +#define DEFAULT_MODE_0_ACTUATION_LEVEL 550 +#define DEFAULT_MODE_0_RELEASE_LEVEL 500 +#define DEFAULT_MODE_1_INITIAL_DEADZONE_OFFSET DEFAULT_MODE_0_ACTUATION_LEVEL +#define DEFAULT_MODE_1_ACTUATION_OFFSET 70 +#define DEFAULT_MODE_1_RELEASE_OFFSET 70 +#define DEFAULT_EXTREMUM 1023 +#define EXPECTED_NOISE_FLOOR 0 +#define NOISE_FLOOR_THRESHOLD 50 +#define BOTTOMING_CALIBRATION_THRESHOLD 50 +#define DEFAULT_NOISE_FLOOR_SAMPLING_COUNT 30 +#define DEFAULT_BOTTOMING_READING 1023 +#define DEFAULT_CALIBRATION_STARTER true + +#define DISCHARGE_TIME 10 + +#define EECONFIG_KB_DATA_SIZE 219 +#define DYNAMIC_KEYMAP_MACRO_COUNT 30 diff --git a/keyboards/cipulot/ec1_at/halconf.h b/keyboards/cipulot/ec1_at/halconf.h new file mode 100644 index 000000000000..6b63cb5af98e --- /dev/null +++ b/keyboards/cipulot/ec1_at/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_ADC TRUE + +#include_next diff --git a/keyboards/cipulot/ec1_at/keyboard.json b/keyboards/cipulot/ec1_at/keyboard.json new file mode 100644 index 000000000000..9a7a0ae04e78 --- /dev/null +++ b/keyboards/cipulot/ec1_at/keyboard.json @@ -0,0 +1,142 @@ +{ + "manufacturer": "Cipulot", + "keyboard_name": "EC1-AT", + "maintainer": "Cipulot", + "bootloader": "stm32-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "eeprom": { + "wear_leveling": { + "backing_size": 16384 + } + }, + "features": { + "bootmagic": false, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "processor": "STM32F411", + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x6BCE", + "shared_endpoint": { + "keyboard": true + }, + "vid": "0x6369" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.25, "y": 0}, + {"matrix": [0, 6], "x": 6.25, "y": 0}, + {"matrix": [0, 7], "x": 7.25, "y": 0}, + {"matrix": [0, 8], "x": 8.25, "y": 0}, + {"matrix": [0, 9], "x": 9.25, "y": 0}, + {"matrix": [0, 10], "x": 10.25, "y": 0}, + {"matrix": [0, 11], "x": 11.25, "y": 0}, + {"matrix": [0, 12], "x": 12.25, "y": 0}, + {"matrix": [0, 13], "x": 13.25, "y": 0}, + {"matrix": [0, 14], "x": 14.25, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.5, "y": 0}, + {"matrix": [0, 18], "x": 18.5, "y": 0}, + {"matrix": [0, 19], "x": 19.5, "y": 0}, + {"matrix": [0, 20], "x": 20.5, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5}, + {"matrix": [1, 3], "x": 3.75, "y": 1}, + {"matrix": [1, 4], "x": 4.75, "y": 1}, + {"matrix": [1, 5], "x": 5.75, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + {"matrix": [1, 7], "x": 7.75, "y": 1}, + {"matrix": [1, 8], "x": 8.75, "y": 1}, + {"matrix": [1, 9], "x": 9.75, "y": 1}, + {"matrix": [1, 10], "x": 10.75, "y": 1}, + {"matrix": [1, 11], "x": 11.75, "y": 1}, + {"matrix": [1, 12], "x": 12.75, "y": 1}, + {"matrix": [1, 13], "x": 13.75, "y": 1}, + {"matrix": [1, 14], "x": 14.75, "y": 1}, + {"matrix": [1, 15], "x": 15.75, "y": 1, "w": 0.75}, + {"matrix": [1, 16], "x": 16.5, "y": 1, "w": 0.75}, + {"matrix": [1, 17], "x": 17.5, "y": 1}, + {"matrix": [1, 18], "x": 18.5, "y": 1}, + {"matrix": [1, 19], "x": 19.5, "y": 1}, + {"matrix": [1, 20], "x": 20.5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.75}, + {"matrix": [2, 3], "x": 4, "y": 2}, + {"matrix": [2, 4], "x": 5, "y": 2}, + {"matrix": [2, 5], "x": 6, "y": 2}, + {"matrix": [2, 6], "x": 7, "y": 2}, + {"matrix": [2, 7], "x": 8, "y": 2}, + {"matrix": [2, 8], "x": 9, "y": 2}, + {"matrix": [2, 9], "x": 10, "y": 2}, + {"matrix": [2, 10], "x": 11, "y": 2}, + {"matrix": [2, 11], "x": 12, "y": 2}, + {"matrix": [2, 12], "x": 13, "y": 2}, + {"matrix": [2, 13], "x": 14, "y": 2}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [2, 15], "x": 16, "y": 2, "w": 1.25}, + {"matrix": [2, 17], "x": 17.5, "y": 2}, + {"matrix": [2, 18], "x": 18.5, "y": 2}, + {"matrix": [2, 19], "x": 19.5, "y": 2}, + {"matrix": [2, 20], "x": 20.5, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25}, + {"matrix": [3, 3], "x": 3.5, "y": 3}, + {"matrix": [3, 4], "x": 4.5, "y": 3}, + {"matrix": [3, 5], "x": 5.5, "y": 3}, + {"matrix": [3, 6], "x": 6.5, "y": 3}, + {"matrix": [3, 7], "x": 7.5, "y": 3}, + {"matrix": [3, 8], "x": 8.5, "y": 3}, + {"matrix": [3, 9], "x": 9.5, "y": 3}, + {"matrix": [3, 10], "x": 10.5, "y": 3}, + {"matrix": [3, 11], "x": 11.5, "y": 3}, + {"matrix": [3, 12], "x": 12.5, "y": 3}, + {"matrix": [3, 13], "x": 13.5, "y": 3}, + {"matrix": [3, 14], "x": 14.5, "y": 3}, + {"matrix": [3, 15], "x": 15.5, "y": 3, "w": 0.75}, + {"matrix": [3, 16], "x": 16.25, "y": 3}, + {"matrix": [3, 17], "x": 17.5, "y": 3}, + {"matrix": [3, 18], "x": 18.5, "y": 3}, + {"matrix": [3, 19], "x": 19.5, "y": 3}, + {"matrix": [3, 20], "x": 20.5, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, + {"matrix": [4, 3], "x": 3.75, "y": 4}, + {"matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4, "w": 1.5}, + {"matrix": [4, 8], "x": 7.75, "y": 4, "w": 2.5}, + {"matrix": [4, 10], "x": 10.25, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 11.75, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.25, "y": 4, "w": 1.5}, + {"matrix": [4, 14], "x": 14.75, "y": 4}, + {"matrix": [4, 15], "x": 15.75, "y": 4, "w": 1.5}, + {"matrix": [4, 17], "x": 17.5, "y": 4}, + {"matrix": [4, 18], "x": 18.5, "y": 4}, + {"matrix": [4, 19], "x": 19.5, "y": 4}, + {"matrix": [4, 20], "x": 20.5, "y": 4} + ] + } + } +} diff --git a/keyboards/cipulot/ec1_at/keymaps/default/keymap.c b/keyboards/cipulot/ec1_at/keymaps/default/keymap.c new file mode 100644 index 000000000000..b0e5e3aac35d --- /dev/null +++ b/keyboards/cipulot/ec1_at/keymaps/default/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT( + _______, _______, QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + _______, _______, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_ENTER, KC_P7, KC_P8, KC_P9, KC_PMNS, + _______, _______, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENTER, KC_P4, KC_P5, KC_P6, KC_PPLS, + _______, _______, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, MO(1), KC_P1, KC_P2, KC_P3, KC_PENT, + _______, _______, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RALT, MO(1), KC_RCTL, KC_P0, KC_P0, KC_PDOT, KC_PENT), + + [1] = LAYOUT( + _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______), + + [2] = LAYOUT( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec1_at/mcuconf.h b/keyboards/cipulot/ec1_at/mcuconf.h new file mode 100644 index 000000000000..1679d3fbc04c --- /dev/null +++ b/keyboards/cipulot/ec1_at/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE diff --git a/keyboards/cipulot/ec1_at/post_rules.mk b/keyboards/cipulot/ec1_at/post_rules.mk new file mode 100644 index 000000000000..5dba48cc5fd6 --- /dev/null +++ b/keyboards/cipulot/ec1_at/post_rules.mk @@ -0,0 +1 @@ +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec1_at/readme.md b/keyboards/cipulot/ec1_at/readme.md new file mode 100644 index 000000000000..8e2081dae74c --- /dev/null +++ b/keyboards/cipulot/ec1_at/readme.md @@ -0,0 +1,26 @@ +# EC1-AT + +![EC1-AT](https://i.imgur.com/69OrQsh.png) + +EC version of the W1-AT keyboard. + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) +* Hardware Supported: EC1-AT +* Hardware Availability: TBD + +Make example for this keyboard (after setting up your build environment): + + make cipulot/ec1_at:default + +Flashing example for this keyboard: + + make cipulot/ec1_at: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**: Long press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cipulot/ec1_at/rules.mk b/keyboards/cipulot/ec1_at/rules.mk new file mode 100644 index 000000000000..1716098b3e10 --- /dev/null +++ b/keyboards/cipulot/ec1_at/rules.mk @@ -0,0 +1 @@ +OPT = 3 From d01303c060a9c9d33fa79ba0372ea7403ae18a3c Mon Sep 17 00:00:00 2001 From: kbd0 <108237598+kbd0@users.noreply.github.com> Date: Wed, 4 Dec 2024 12:07:26 -0500 Subject: [PATCH 28/29] [Keyboard] add kbd0 Curve0 60 ANSI (#24609) * add kbd0/curve0/60_ansi keyboard * Apply suggestions from code review Co-authored-by: jack * Apply suggestions from code review Co-authored-by: Duncan Sutherland --------- Co-authored-by: unknown Co-authored-by: jack Co-authored-by: Duncan Sutherland --- keyboards/kbd0/curve0/60_ansi/keyboard.json | 228 ++++++++++++++++++ .../60_ansi/keymaps/default/keymap.json | 22 ++ keyboards/kbd0/curve0/60_ansi/readme.md | 27 +++ 3 files changed, 277 insertions(+) create mode 100644 keyboards/kbd0/curve0/60_ansi/keyboard.json create mode 100644 keyboards/kbd0/curve0/60_ansi/keymaps/default/keymap.json create mode 100644 keyboards/kbd0/curve0/60_ansi/readme.md diff --git a/keyboards/kbd0/curve0/60_ansi/keyboard.json b/keyboards/kbd0/curve0/60_ansi/keyboard.json new file mode 100644 index 000000000000..64c39cd24efd --- /dev/null +++ b/keyboards/kbd0/curve0/60_ansi/keyboard.json @@ -0,0 +1,228 @@ +{ + "manufacturer": "kbd0", + "keyboard_name": "kbd0/curve0/60_ansi", + "maintainer": "kbd0", + "bootloader": "rp2040", + "bootloader_instructions": "Hold the top left key of the keyboard while plugging in the keyboard", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP6", "GP5", "GP4", "GP7", "GP10", "GP9", "GP11", "GP12", "GP13", "GP14", "GP25", "GP20", "GP19", "GP18", "GP16"], + "rows": ["GP23", "GP22", "GP21", "GP24", "GP17"] + }, + "processor": "RP2040", + "url": "https://kbd0.com/item/curve0", + "usb": { + "device_version": "1.0.0", + "pid": "0xC000", + "vid": "0xCBD0" + }, + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift"], + "layouts": { + "LAYOUT_all": { + "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": [0, 14], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi": { + "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, 14], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "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": [0, 14], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + } + } +} diff --git a/keyboards/kbd0/curve0/60_ansi/keymaps/default/keymap.json b/keyboards/kbd0/curve0/60_ansi/keymaps/default/keymap.json new file mode 100644 index 000000000000..d84bfd2bf476 --- /dev/null +++ b/keyboards/kbd0/curve0/60_ansi/keymaps/default/keymap.json @@ -0,0 +1,22 @@ +{ + "author": "kbd0", + "keyboard": "kbd0/curve0/60_ansi", + "keymap": "default", + "layout": "LAYOUT_all", + "layers": [ + [ + "KC_ESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_MINS", "KC_EQL", "KC_BSLS", "KC_BSPC", + "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_LBRC", "KC_RBRC", "KC_BSLS", + "KC_CAPS", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_ENT", + "KC_LSFT", "KC_NUBS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", "MO(1)", + "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "KC_RGUI", "KC_APP", "KC_RCTL" + ], + [ + "KC_GRV", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "_______", "KC_DEL", + "_______", "_______", "KC_UP", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "KC_LEFT", "KC_DOWN", "KC_RGHT", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" + ] + ] +} diff --git a/keyboards/kbd0/curve0/60_ansi/readme.md b/keyboards/kbd0/curve0/60_ansi/readme.md new file mode 100644 index 000000000000..f97ec6731293 --- /dev/null +++ b/keyboards/kbd0/curve0/60_ansi/readme.md @@ -0,0 +1,27 @@ +# kbd0/curve0/60_ansi + +![Curve0](https://i.imgur.com/y5ZIbWI.jpeg) + +Curve0 - Curved stainless steel keyboard by kbd0 + +* Keyboard Maintainer: [kbd0](https://github.com/kbd0) +* Hardware Supported: Curve0 PCB +* Hardware Availability: [kbd0.com](https://kbd0.com/item/curve0) + +Make example for this keyboard (after setting up your build environment): + + make kbd0/curve0/60_ansi:default + +Flashing example for this keyboard: + + make kbd0/curve0/60_ansi: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 the top left key of the keyboard while plugging in the keyboard +* **Physical reset button**: Hold the button on the main PCB (inside the keyboard) while plugging in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 3c324cb5e6989713c050a959ef7854427d8bca0f Mon Sep 17 00:00:00 2001 From: Vino Rodrigues <366673+vinorodrigues@users.noreply.github.com> Date: Thu, 5 Dec 2024 04:10:11 +1100 Subject: [PATCH 29/29] [Keyboard] Add Binepad BNK8 keyboard (#24598) * Add Binepad BNK8 keyboard * Moved keymap.c to keymap.json * Fix product page URL * RGB_ -> RM_ keycodes after this round of breaking changes Co-authored-by: Ryan --------- Co-authored-by: Ryan --- keyboards/binepad/bnk8/config.h | 7 ++ keyboards/binepad/bnk8/keyboard.json | 88 +++++++++++++++++++ .../binepad/bnk8/keymaps/default/keymap.json | 40 +++++++++ keyboards/binepad/bnk8/readme.md | 26 ++++++ 4 files changed, 161 insertions(+) create mode 100644 keyboards/binepad/bnk8/config.h create mode 100755 keyboards/binepad/bnk8/keyboard.json create mode 100644 keyboards/binepad/bnk8/keymaps/default/keymap.json create mode 100755 keyboards/binepad/bnk8/readme.md diff --git a/keyboards/binepad/bnk8/config.h b/keyboards/binepad/bnk8/config.h new file mode 100644 index 000000000000..40eea2db812c --- /dev/null +++ b/keyboards/binepad/bnk8/config.h @@ -0,0 +1,7 @@ +// Copyright 2024 binepad (@binepad) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Timing for SK6812 +#define WS2812_T1H 650 diff --git a/keyboards/binepad/bnk8/keyboard.json b/keyboards/binepad/bnk8/keyboard.json new file mode 100755 index 000000000000..550aa7796172 --- /dev/null +++ b/keyboards/binepad/bnk8/keyboard.json @@ -0,0 +1,88 @@ +{ + "manufacturer": "binepad", + "keyboard_name": "BNK8", + "maintainer": "binepad", + "bootloader": "stm32duino", + "bootloader_instructions": "Hold down the key at (0x0) in the matrix (the top left key) and plug in the keyboard.", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "A7", "pin_b": "A0", "resolution": 2} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["B3", "B4", "C13"], + "rows": ["C14", "B13", "B12"] + }, + "processor": "STM32F103", + "rgb_matrix": { + "animations": { + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_pinwheel": true, + "cycle_up_down": true, + "jellybean_raindrops": true, + "riverflow": true, + "solid_reactive": true, + "solid_reactive_simple": true, + "solid_splash": true, + "splash": true, + "starlight": true, + "starlight_dual_hue": true, + "starlight_dual_sat": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 80, "y": 32, "flags": 4}, + {"matrix": [1, 1], "x": 112, "y": 32, "flags": 4}, + {"matrix": [1, 2], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 80, "y": 64, "flags": 4}, + {"matrix": [2, 1], "x": 112, "y": 64, "flags": 4}, + {"matrix": [2, 2], "x": 144, "y": 64, "flags": 4} + ], + "led_process_limit": 9, + "max_brightness": 180, + "sleep": true + }, + "url": "https://www.binepad.com/product-page/bnk8", + "usb": { + "device_version": "1.0.0", + "vid": "0x4249", + "pid": "0x4E41" + }, + "eeprom": { + "wear_leveling": { + "backing_size": 1024 + } + }, + "ws2812": { + "pin": "C15" + }, + "community_layouts": ["ortho_3x3"], + "layouts": { + "LAYOUT_ortho_3x3": { + "layout": [ + {"label": "1", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "2", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "Knob", "matrix": [0, 2], "x": 2, "y": 0, "encoder": 0}, + {"label": "3", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "4", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "5", "matrix": [1, 2], "x": 2, "y": 1}, + {"label": "6", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "7", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "8", "matrix": [2, 2], "x": 2, "y": 2} + ] + } + } +} diff --git a/keyboards/binepad/bnk8/keymaps/default/keymap.json b/keyboards/binepad/bnk8/keymaps/default/keymap.json new file mode 100644 index 000000000000..51b5e0661974 --- /dev/null +++ b/keyboards/binepad/bnk8/keymaps/default/keymap.json @@ -0,0 +1,40 @@ +{ + "keyboard": "binepad/bnk8", + "version": 1, + "author": "binepad", + "notes": "Copyright 2024 Binepad (@binepad) \n SPDX-License-Identifier: GPL-2.0-or-later \n This file is a keymap.json file for binepad/bnk8", + "keymap": "default", + "layout": "LAYOUT_ortho_3x3", + "layers": [ + [ + "KC_P1", "KC_P2", "KC_MUTE", + "KC_P3", "KC_P4", "KC_P5", + "KC_P6", "KC_P7", "LT(1, KC_P8)" + ], + [ + "RM_HUEU", "RM_SATU", "RM_SPDU", + "RM_HUED", "RM_SATD", "RM_SPDD", + "RM_TOGG", "RM_NEXT", "_______" + + ] + ], + "config": { + "features": { + "encoder_map": true + } + }, + "encoders": [ + [ + { + "ccw": "KC_VOLD", + "cw": "KC_VOLU" + } + ], + [ + { + "ccw": "RM_VALD", + "cw": "RM_VALU" + } + ] + ] +} diff --git a/keyboards/binepad/bnk8/readme.md b/keyboards/binepad/bnk8/readme.md new file mode 100755 index 000000000000..89ceb863a1d9 --- /dev/null +++ b/keyboards/binepad/bnk8/readme.md @@ -0,0 +1,26 @@ +# BINEPAD BNK8 + +![BINEPAD BNK8](https://i.imgur.com/HFIZg48h.jpeg) + +A compact 8-key 3x3 macropad with a rotary encoder at the top right. + +* Keyboard Maintainer: [binepad](https://github.com/binepad) +* Hardware Supported: BINPAD BNK8 +* Hardware Availability: [binepad.com](https://binepad.com/products/bnk8) + +Make example for this keyboard (after setting up your build environment): + + make binepad/bnk8:default + +Flashing example for this keyboard: + + make binepad/bnk8: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: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key) and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available