Переглянути джерело

Merge remote-tracking branch 'origin/master' into develop

Drashna Jael're 3 роки тому
батько
коміт
f92d153532
64 змінених файлів з 2236 додано та 8 видалено
  1. 2 1
      docs/feature_pointing_device.md
  2. 2 0
      drivers/sensors/pmw3360.c
  3. 4 0
      drivers/sensors/pmw3360.h
  4. 5 2
      keyboards/kprepublic/bm60hsrgb/readme.md
  5. 0 0
      keyboards/kprepublic/bm60hsrgb/rev1/keymaps/default/keymap.c
  6. 0 0
      keyboards/kprepublic/bm60hsrgb/rev1/keymaps/default/readme.md
  7. 0 0
      keyboards/kprepublic/bm60hsrgb/rev1/keymaps/jbradforddillon/keymap.c
  8. 0 0
      keyboards/kprepublic/bm60hsrgb/rev1/keymaps/jbradforddillon/readme.md
  9. 0 0
      keyboards/kprepublic/bm60hsrgb/rev1/keymaps/via/keymap.c
  10. 0 0
      keyboards/kprepublic/bm60hsrgb/rev1/keymaps/via/readme.md
  11. 0 0
      keyboards/kprepublic/bm60hsrgb/rev1/keymaps/via/rules.mk
  12. 13 0
      keyboards/kprepublic/bm60hsrgb/rev1/readme.md
  13. 139 0
      keyboards/kprepublic/bm60hsrgb/rev2/config.h
  14. 78 0
      keyboards/kprepublic/bm60hsrgb/rev2/info.json
  15. 34 0
      keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.c
  16. 47 0
      keyboards/kprepublic/bm60hsrgb/rev2/keymaps/via/keymap.c
  17. 2 0
      keyboards/kprepublic/bm60hsrgb/rev2/keymaps/via/rules.mk
  18. 13 0
      keyboards/kprepublic/bm60hsrgb/rev2/readme.md
  19. 200 0
      keyboards/kprepublic/bm60hsrgb/rev2/rev2.c
  20. 32 0
      keyboards/kprepublic/bm60hsrgb/rev2/rev2.h
  21. 27 0
      keyboards/kprepublic/bm60hsrgb/rev2/rules.mk
  22. 143 0
      keyboards/mechwild/waka60/config.h
  23. 25 0
      keyboards/mechwild/waka60/f401/halconf.h
  24. 27 0
      keyboards/mechwild/waka60/f401/mcuconf.h
  25. 5 0
      keyboards/mechwild/waka60/f401/rules.mk
  26. 22 0
      keyboards/mechwild/waka60/f411/halconf.h
  27. 23 0
      keyboards/mechwild/waka60/f411/mcuconf.h
  28. 5 0
      keyboards/mechwild/waka60/f411/rules.mk
  29. 73 0
      keyboards/mechwild/waka60/info.json
  30. 23 0
      keyboards/mechwild/waka60/keymaps/audio/config.h
  31. 57 0
      keyboards/mechwild/waka60/keymaps/audio/keymap.c
  32. 3 0
      keyboards/mechwild/waka60/keymaps/audio/rules.mk
  33. 57 0
      keyboards/mechwild/waka60/keymaps/default/keymap.c
  34. 57 0
      keyboards/mechwild/waka60/keymaps/via/keymap.c
  35. 2 0
      keyboards/mechwild/waka60/keymaps/via/rules.mk
  36. 19 0
      keyboards/mechwild/waka60/readme.md
  37. 17 0
      keyboards/mechwild/waka60/rules.mk
  38. 37 0
      keyboards/mechwild/waka60/waka60.c
  39. 49 0
      keyboards/mechwild/waka60/waka60.h
  40. 41 0
      keyboards/mokey/ginkgo65hot/config.h
  41. 16 0
      keyboards/mokey/ginkgo65hot/ginkgo65hot.c
  42. 47 0
      keyboards/mokey/ginkgo65hot/ginkgo65hot.h
  43. 82 0
      keyboards/mokey/ginkgo65hot/info.json
  44. 49 0
      keyboards/mokey/ginkgo65hot/keymaps/default/keymap.c
  45. 50 0
      keyboards/mokey/ginkgo65hot/keymaps/via/keymap.c
  46. 2 0
      keyboards/mokey/ginkgo65hot/keymaps/via/rules.mk
  47. 20 0
      keyboards/mokey/ginkgo65hot/readme.md
  48. 18 0
      keyboards/mokey/ginkgo65hot/rules.mk
  49. 2 0
      keyboards/ramonimbao/chevron/keymaps/via/keymap.c
  50. 2 2
      keyboards/spacey/config.h
  51. 48 0
      keyboards/spacey/keymaps/via/keymap.c
  52. 2 0
      keyboards/spacey/keymaps/via/rules.mk
  53. 139 0
      keyboards/takashicompany/radialex/config.h
  54. 191 0
      keyboards/takashicompany/radialex/info.json
  55. 64 0
      keyboards/takashicompany/radialex/keymaps/default/keymap.c
  56. 20 0
      keyboards/takashicompany/radialex/keymaps/via/config.h
  57. 89 0
      keyboards/takashicompany/radialex/keymaps/via/keymap.c
  58. 1 0
      keyboards/takashicompany/radialex/keymaps/via/rules.mk
  59. 17 0
      keyboards/takashicompany/radialex/radialex.c
  60. 42 0
      keyboards/takashicompany/radialex/radialex.h
  61. 31 0
      keyboards/takashicompany/radialex/readme.md
  62. 18 0
      keyboards/takashicompany/radialex/rules.mk
  63. 1 1
      keyboards/xelus/pachi/rgb/rev1/config.h
  64. 2 2
      keyboards/xelus/pachi/rgb/rev2/config.h

+ 2 - 1
docs/feature_pointing_device.md

@@ -150,7 +150,8 @@ The PMW 3360 is an SPI driven optical sensor, that uses a built in IR LED for su
 |`PMW3360_SPI_LSBFIRST`       | (Optional) Sets the Least/Most Significant Byte First setting for SPI.                     | `false`       |
 |`PMW3360_SPI_MODE`           | (Optional) Sets the SPI Mode for the sensor.                                               | `3`           |
 |`PMW3360_SPI_DIVISOR`        | (Optional) Sets the SPI Divisor used for SPI communication.                                | _varies_      |
-|`ROTATIONAL_TRANSFORM_ANGLE` | (Optional) Allows for the sensor data to be rotated +/- 127 degrees directly in the sensor. | `0`           |
+|`PMW3360_LIFTOFF_DISTANCE`   | (Optional) Sets the lift off distance at run time                                          | `0x02`        |
+|`ROTATIONAL_TRANSFORM_ANGLE` | (Optional) Allows for the sensor data to be rotated +/- 30 degrees directly in the sensor. | `0`           |
 
 The CPI range is 100-12000, in increments of 100. Defaults to 1600 CPI.
 

+ 2 - 0
drivers/sensors/pmw3360.c

@@ -186,6 +186,8 @@ bool pmw3360_init(void) {
 
     spi_write_adv(REG_Angle_Tune, constrain(ROTATIONAL_TRANSFORM_ANGLE, -127, 127));
 
+    spi_write_adv(REG_Lift_Config, PMW3360_LIFTOFF_DISTANCE);
+
     bool init_success = pmw3360_check_signature();
 
     writePinLow(PMW3360_CS_PIN);

+ 4 - 0
drivers/sensors/pmw3360.h

@@ -46,6 +46,10 @@
 #    endif
 #endif
 
+#ifndef PMW3360_LIFTOFF_DISTANCE
+#    define PMW3360_LIFTOFF_DISTANCE 0x02
+#endif
+
 #ifndef ROTATIONAL_TRANSFORM_ANGLE
 #    define ROTATIONAL_TRANSFORM_ANGLE 0x00
 #endif

+ 5 - 2
keyboards/kprepublic/bm60hsrgb/readme.md

@@ -2,12 +2,15 @@
 
 A 60% hotswap inswitch RGB keyboard from KP Republic. 
 
-* Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin)
 * Hardware Supported: BM60HSRGB
 * Hardware Availability: [KP Republic](https://kprepublic.com/products/bm60-rgb-60-gh60-hot-swappable-pcb-programmed-qmk-firmware-type-c)
 
 Make example for this keyboard (after setting up your build environment):
 
-    make kprepublic/bm60hsrgb/rev1:default
+    for rev1: make kprepublic/bm60hsrgb/rev1:default
+    for rev2: make kprepublic/bm60hsrgb/rev2:default
+
+To see which revision you have, look at the PCB. If it says bm60v2 on it, it's rev2. Otherwise it's rev1
+
 
 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).

+ 0 - 0
keyboards/kprepublic/bm60hsrgb/keymaps/default/keymap.c → keyboards/kprepublic/bm60hsrgb/rev1/keymaps/default/keymap.c


+ 0 - 0
keyboards/kprepublic/bm60hsrgb/keymaps/default/readme.md → keyboards/kprepublic/bm60hsrgb/rev1/keymaps/default/readme.md


+ 0 - 0
keyboards/kprepublic/bm60hsrgb/keymaps/jbradforddillon/keymap.c → keyboards/kprepublic/bm60hsrgb/rev1/keymaps/jbradforddillon/keymap.c


+ 0 - 0
keyboards/kprepublic/bm60hsrgb/keymaps/jbradforddillon/readme.md → keyboards/kprepublic/bm60hsrgb/rev1/keymaps/jbradforddillon/readme.md


+ 0 - 0
keyboards/kprepublic/bm60hsrgb/keymaps/via/keymap.c → keyboards/kprepublic/bm60hsrgb/rev1/keymaps/via/keymap.c


+ 0 - 0
keyboards/kprepublic/bm60hsrgb/keymaps/via/readme.md → keyboards/kprepublic/bm60hsrgb/rev1/keymaps/via/readme.md


+ 0 - 0
keyboards/kprepublic/bm60hsrgb/keymaps/via/rules.mk → keyboards/kprepublic/bm60hsrgb/rev1/keymaps/via/rules.mk


+ 13 - 0
keyboards/kprepublic/bm60hsrgb/rev1/readme.md

@@ -0,0 +1,13 @@
+# BM60HSRGB
+
+A 60% hotswap inswitch RGB keyboard from KP Republic. 
+
+* Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin)
+* Hardware Supported: BM60HSRGB/rev1
+* Hardware Availability: [KP Republic](https://kprepublic.com/products/bm60-rgb-60-gh60-hot-swappable-pcb-programmed-qmk-firmware-type-c)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make kprepublic/bm60hsrgb/rev1: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).

+ 139 - 0
keyboards/kprepublic/bm60hsrgb/rev2/config.h

@@ -0,0 +1,139 @@
+/* Copyright 2021 bdtc123
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID       0x4B50
+#define PRODUCT_ID      0x1121
+#define DEVICE_VER      0x0002
+#define MANUFACTURER    KP Republic
+#define PRODUCT         BM60V2
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 14
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { E6, D2, D3, D5, F6 }
+#define MATRIX_COL_PINS { B2, B3, B7, B0, B1, F7, D4, D6, D7, B4, B5, B6, C6, C7 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION ROW2COL
+#define USB_POLLING_INTERVAL_MS 1
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 3
+
+/* disable these deprecated features by default */
+#define NO_ACTION_MACRO
+#define NO_ACTION_FUNCTION
+//rgb light setting
+#define RGBLIGHT_LIMIT_VAL 150
+#define RGBLED_NUM          6
+#define RGB_DI_PIN          F0
+#define RGBLIGHT_ANIMATIONS
+#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD
+#define RGBLIGHT_HUE_STEP   8
+#define RGBLIGHT_SAT_STEP   8
+#define RGBLIGHT_VAL_STEP   8
+
+#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
+#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
+#define DRIVER_ADDR_1 0b1010000
+
+#define RGB_MATRIX_KEYPRESSES
+// RGB Matrix Animation modes. Explicitly enabled
+// For full list of effects, see:
+// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
+#define ENABLE_RGB_MATRIX_ALPHAS_MODS
+#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
+#define ENABLE_RGB_MATRIX_BREATHING
+#define ENABLE_RGB_MATRIX_BAND_VAL
+#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
+#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
+#define ENABLE_RGB_MATRIX_CYCLE_ALL
+#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
+#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
+#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
+#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
+#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
+#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
+#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
+#define ENABLE_RGB_MATRIX_DUAL_BEACON
+#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
+#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
+#define ENABLE_RGB_MATRIX_HUE_BREATHING
+#define ENABLE_RGB_MATRIX_HUE_PENDULUM
+#define ENABLE_RGB_MATRIX_HUE_WAVE
+#define ENABLE_RGB_MATRIX_PIXEL_RAIN
+#define ENABLE_RGB_MATRIX_PIXEL_FLOW
+#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
+// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
+#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
+#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
+// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
+#define ENABLE_RGB_MATRIX_SPLASH
+#define ENABLE_RGB_MATRIX_MULTISPLASH
+#define ENABLE_RGB_MATRIX_SOLID_SPLASH
+#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
+
+#define DRIVER_COUNT 2
+#define DRIVER_1_LED_TOTAL 63
+//#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL
+
+#if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE)
+    #define RGB_MATRIX_DISABLE_KEYCODES
+#endif
+
+#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120
+
+#define ISSI_LED_TOTAL DRIVER_1_LED_TOTAL
+
+// Underglow LEDs are WS2812, but someone might want to use RGBLIGHT for them;
+// don't use those LEDs in RGB Matrix in that case.
+#ifdef RGBLIGHT_ENABLE
+#    define WS2812_LED_TOTAL 0
+#else
+#    define WS2812_LED_TOTAL 6
+#endif
+
+#define DRIVER_LED_TOTAL (ISSI_LED_TOTAL + WS2812_LED_TOTAL)
+
+#ifdef RGB_MATRIX_ENABLE
+#    define RGB_MATRIX_KEYPRESSES
+#    define RGB_MATRIX_FRAMEBUFFER_EFFECTS
+#endif
+

+ 78 - 0
keyboards/kprepublic/bm60hsrgb/rev2/info.json

@@ -0,0 +1,78 @@
+{
+    "keyboard_name": "bm60v2",
+    "url": "",
+    "maintainer": "kp republic",
+    "layouts": {
+        "LAYOUT": {
+            "layout": [
+                {"x":0, "y":0},
+                {"x":1, "y":0},
+                {"x":2, "y":0},
+                {"x":3, "y":0},
+                {"x":4, "y":0},
+                {"x":5, "y":0},
+                {"x":6, "y":0},
+                {"x":7, "y":0},
+                {"x":8, "y":0},
+                {"x":9, "y":0},
+                {"x":10, "y":0},
+                {"x":11, "y":0},
+                {"x":12, "y":0},
+                {"x":13, "y":0, "w":2},
+
+                {"x":0, "y":1, "w":1.5},
+                {"x":1.5, "y":1},
+                {"x":2.5, "y":1},
+                {"x":3.5, "y":1},
+                {"x":4.5, "y":1},
+                {"x":5.5, "y":1},
+                {"x":6.5, "y":1},
+                {"x":7.5, "y":1},
+                {"x":8.5, "y":1},
+                {"x":9.5, "y":1},
+                {"x":10.5, "y":1},
+                {"x":11.5, "y":1},
+                {"x":12.5, "y":1},
+                {"x":13.5, "y":1, "w":1.5},
+
+                {"x":0, "y":2, "w":1.75},
+                {"x":1.75, "y":2},
+                {"x":2.75, "y":2},
+                {"x":3.75, "y":2},
+                {"x":4.75, "y":2},
+                {"x":5.75, "y":2},
+                {"x":6.75, "y":2},
+                {"x":7.75, "y":2},
+                {"x":8.75, "y":2},
+                {"x":9.75, "y":2},
+                {"x":10.75, "y":2},
+                {"x":11.75, "y":2},
+                {"x":12.75, "y":2, "w":2.25},
+
+                {"x":0, "y":3, "w":2.25},
+                {"x":2.25, "y":3},
+                {"x":3.25, "y":3},
+                {"x":4.25, "y":3},
+                {"x":5.25, "y":3},
+                {"x":6.25, "y":3},
+                {"x":7.25, "y":3},
+                {"x":8.25, "y":3},
+                {"x":9.25, "y":3},
+                {"x":10.25, "y":3},
+                {"x":11.25, "y":3, "w":1.75},
+                {"x":13, "y":3},
+                {"x":14, "y":3},
+
+                {"x":0, "y":4, "w":1.25},
+                {"x":1.25, "y":4, "w":1.25},
+                {"x":2.5, "y":4, "w":1.25},
+                {"x":3.75, "y":4, "w":6.25},
+                {"x":10, "y":4},
+                {"x":11, "y":4},
+                {"x":12, "y":4},
+                {"x":13, "y":4},
+                {"x":14, "y":4}
+            ]
+        }
+    }
+}

+ 34 - 0
keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.c

@@ -0,0 +1,34 @@
+/* Copyright 2021 bdtc123
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+#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_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  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_Z,   KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_RSFT,        KC_UP,   KC_SLSH,
+        KC_LCTL,   KC_LGUI,   KC_LALT,                       KC_SPC,                              KC_RALT, MO(1),   KC_LEFT, KC_DOWN, KC_RGHT
+    ),
+    [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,  RESET,
+        _______,     RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______,
+        _______,            _______, _______,  _______,  _______,  _______,  _______,  _______,  _______, _______, _______, _______, _______,
+        _______,            _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______,        _______, _______,
+        _______,   _______,   _______,                      _______,                              _______, _______, _______, _______, _______
+    )
+
+};

+ 47 - 0
keyboards/kprepublic/bm60hsrgb/rev2/keymaps/via/keymap.c

@@ -0,0 +1,47 @@
+/* Copyright 2021 bdtc123
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+#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_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  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_Z,   KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_RSFT,        KC_UP,   KC_SLSH,
+        KC_LCTL,   KC_LGUI,   KC_LALT,                       KC_SPC,                              KC_RALT, MO(1),   KC_LEFT, KC_DOWN, KC_RGHT
+    ),
+    [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,  RESET,
+        _______,     RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______,
+        _______,       _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______, _______, _______, _______, _______,
+        _______,            _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______,        _______, _______,
+        _______,   _______,   _______,                      _______,                              _______, _______, _______, _______, _______
+    ),
+    [2] = LAYOUT(
+        _______, _______,   _______,   _______,   _______,   _______,   _______,   _______,   _______,   _______,   _______,  _______,  _______,  _______,
+        _______,     _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______,       _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______, _______, _______, _______, _______,
+        _______,            _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,        _______, _______,
+        _______,   _______,   _______,                      _______,                              _______, _______, _______, _______, _______
+    ),
+    [3] = LAYOUT(
+        _______, _______,   _______,   _______,   _______,   _______,   _______,   _______,   _______,   _______,   _______,  _______,  _______,  _______,
+        _______,     _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______,       _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______, _______, _______, _______, _______,
+        _______,            _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,        _______, _______,
+        _______,   _______,   _______,                      _______,                              _______, _______, _______, _______, _______
+    )
+};

+ 2 - 0
keyboards/kprepublic/bm60hsrgb/rev2/keymaps/via/rules.mk

@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes

+ 13 - 0
keyboards/kprepublic/bm60hsrgb/rev2/readme.md

@@ -0,0 +1,13 @@
+# BM60HSRGB
+
+A 60% hotswap inswitch RGB keyboard from KP Republic. 
+
+* Keyboard Maintainer: [bdtc123](https://github.com/bdtc123)
+* Hardware Supported: BM60HSRGB/rev2
+* Hardware Availability: [KP Republic](https://kprepublic.com/products/bm60-rgb-60-gh60-hot-swappable-pcb-programmed-qmk-firmware-type-c)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make kprepublic/bm60hsrgb/rev2: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).

+ 200 - 0
keyboards/kprepublic/bm60hsrgb/rev2/rev2.c

@@ -0,0 +1,200 @@
+/* Copyright 2021 bdtc123
+ * Copyright 2021 sigprof
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+#include "rev2.h"
+
+#ifdef RGB_MATRIX_ENABLE
+
+#    include "i2c_master.h"
+#    include "is31fl3733.h"
+#    include "ws2812.h"
+
+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
+    { 0, B_1, A_1, C_1 },
+    { 0, B_2, A_2, C_2 },
+    { 0, B_3, A_3, C_3 },
+    { 0, B_4, A_4, C_4 },
+    { 0, B_5, A_5, C_5 },
+    { 0, B_6, A_6, C_6 },
+    { 0, B_7, A_7, C_7 },
+    { 0, B_8, A_8, C_8 },
+    { 0, B_9, A_9, C_9 },
+    { 0, B_10, A_10, C_10 },
+    { 0, B_11, A_11, C_11 },
+    { 0, B_12, A_12, C_12 },
+    { 0, B_13, A_13, C_13 },
+    { 0, B_14, A_14, C_14 },
+
+    { 0, E_1,  D_1,  F_1 },
+    { 0, E_2,  D_2,  F_2 },
+    { 0, E_3,  D_3,  F_3 },
+    { 0, E_4,  D_4,  F_4 },
+    { 0, E_5,  D_5,  F_5 },
+    { 0, E_6,  D_6,  F_6 },
+    { 0, E_7,  D_7,  F_7 },
+    { 0, E_8,  D_8,  F_8 },
+    { 0, E_9,  D_9,  F_9 },
+    { 0, E_10, D_10, F_10 },
+    { 0, E_11, D_11, F_11 },
+    { 0, E_12, D_12, F_12 },
+    { 0, E_13, D_13, F_13 },
+    { 0, E_14, D_14, F_14 },
+
+    { 0, H_1,  G_1,  I_1 },
+    { 0, H_2,  G_2,  I_2 },
+    { 0, H_3,  G_3,  I_3 },
+    { 0, H_4,  G_4,  I_4 },
+    { 0, H_5,  G_5,  I_5 },
+    { 0, H_6,  G_6,  I_6 },
+    { 0, H_7,  G_7,  I_7 },
+    { 0, H_8,  G_8,  I_8 },
+    { 0, H_9,  G_9,  I_9 },
+    { 0, H_10, G_10, I_10 },
+    { 0, H_11, G_11, I_11 },
+    { 0, H_12, G_12, I_12 },
+    { 0, H_14, G_14, I_14 },
+
+    { 0, K_1,  J_1,  L_1 },
+    { 0, K_2,  J_2,  L_2 },
+    { 0, K_3,  J_3,  L_3 },
+    { 0, K_4,  J_4,  L_4 },
+    { 0, K_5,  J_5,  L_5 },
+    { 0, K_6,  J_6,  L_6 },
+    { 0, K_7,  J_7,  L_7 },
+    { 0, K_8,  J_8,  L_8 },
+    { 0, K_9,  J_9,  L_9 },
+    { 0, K_10, J_10, L_10 },
+    { 0, K_12, J_12, L_12 },
+    { 0, K_13, J_13, L_13 },
+    { 0, K_14, J_14, L_14 },
+
+    { 0, H_16, G_16, I_16 },
+    { 0, H_15, G_15, I_15 },
+    { 0, H_13, G_13, I_13 },
+    { 0, E_15, D_15, F_15 },
+    { 0, K_15, J_15, L_15 },
+    { 0, K_11, J_11, L_11 },
+    { 0, K_16, J_16, L_16 },
+    { 0, B_16, A_16, C_16 },
+    { 0, E_16, D_16, F_16 }
+};
+
+led_config_t g_led_config = {
+    {
+        { 0,      1,      2,      3,      4,      5,      6,      7,      8,      9,      10,     11,     12,     13 },
+        { 14,     15,     16,     17,     18,     19,     20,     21,     22,     23,     24,     25,     26,     27 },
+        { 28,     29,     30,     31,     32,     33,     34,     35,     36,     37,     38,     39, NO_LED,     40 },
+        { 41,     42,     43,     44,     45,     46,     47,     48,     49,     50, NO_LED,     51,     52,     53 },
+        { 54,     55,     56,     NO_LED, NO_LED, 57, NO_LED,   NO_LED,   NO_LED, 58,     59,     60,     61,     62 }
+    }, {
+    // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
+    {   0,   0 }, {  15,   0 }, {  30,   0 }, {  45,   0 }, {  60,   0 }, {  75,   0 }, {  90,   0 }, { 105,   0 }, { 120,   0 }, { 135,   0 }, { 150,   0 }, { 165,   0 }, { 180,   0 }, { 202,   0 },
+    // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ],  ,
+    {   7,  16 }, {  22,  16 }, {  37,  16 }, {  52,  16 }, {  67,  16 }, {  82,  16 }, {  97,  16 }, { 112,  16 }, { 127,  16 }, { 142,  16 }, { 157,  16 }, { 172,  16 }, { 187,  16 }, { 206,  16 },
+    // Capslock, A, S, D, F, G, H, A, K, L, ;, ', Enter
+    {  11,  32 }, {  26,  32 }, {  41,  32 }, {  56,  32 }, {  71,  32 }, {  86,  32 }, { 101,  32 }, { 116,  32 }, { 131,  32 }, { 146,  32 }, { 161,  32 }, { 176,  32 }, { 198,  32 },
+    // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
+    {  18,  48 }, {  30,  48 }, {  45,  48 }, {  60,  48 }, {  75,  48 }, {  90,  48 }, { 105,  48 }, { 120,  48 }, { 135,  48 }, { 150,  48 }, { 165,  48 }, { 191,  48 }, { 210,  48 },
+    // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
+    {   3,  64 }, {  22,  64 }, {  33,  64 }, { 101,  64 }, { 135,  64 }, { 153,  64 }, { 195,  64 }, { 210,  64 }, { 225,  64 }
+#    if WS2812_LED_TOTAL > 0
+        ,{ 28, 40}, { 62, 40}, { 96, 40}, {130, 40}, {164, 40}, {198, 40}
+#    endif
+}, {
+    // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
+    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+    // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ],
+    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+    // Capslock, A, S, D, F, G, H, A, K, L, ;, ', Enter
+    9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+    // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, ?
+    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4,
+    // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
+    1, 1, 1, 4, 1, 1, 1, 1, 1
+#    if WS2812_LED_TOTAL > 0
+        ,2, 2, 2, 2, 2, 2
+#    endif
+    }
+};
+
+__attribute__ ((weak))
+void rgb_matrix_indicators_user(void) {
+    if (host_keyboard_led_state().caps_lock) {
+        rgb_matrix_set_color(28, 0xFF, 0xFF, 0xFF);
+    }
+}
+
+
+// clang-format on
+
+// ==========================================================================
+// Custom RGB Matrix driver that combines IS31FL3733 and WS2812
+// ==========================================================================
+
+#    if WS2812_LED_TOTAL > 0
+LED_TYPE rgb_matrix_ws2812_array[WS2812_LED_TOTAL];
+#    endif
+
+static void rgb_matrix_driver_init(void) {
+    i2c_init();
+    IS31FL3733_init(DRIVER_ADDR_1, 0);
+    for (uint8_t index = 0; index < ISSI_LED_TOTAL; index++) {
+        bool enabled = true;
+        IS31FL3733_set_led_control_register(index, enabled, enabled, enabled);
+    }
+    IS31FL3733_update_led_control_registers(DRIVER_ADDR_1, 0);
+}
+
+static void rgb_matrix_driver_flush(void) {
+    IS31FL3733_update_pwm_buffers(DRIVER_ADDR_1, 0);
+#    if WS2812_LED_TOTAL > 0
+    ws2812_setleds(rgb_matrix_ws2812_array, WS2812_LED_TOTAL);
+#    endif
+}
+
+static void rgb_matrix_driver_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
+    if (index < ISSI_LED_TOTAL) {
+        IS31FL3733_set_color(index, red, green, blue);
+    } else {
+#    if WS2812_LED_TOTAL > 0
+        rgb_matrix_ws2812_array[index - ISSI_LED_TOTAL].r = red;
+        rgb_matrix_ws2812_array[index - ISSI_LED_TOTAL].g = green;
+        rgb_matrix_ws2812_array[index - ISSI_LED_TOTAL].b = blue;
+#    endif
+    }
+}
+
+static void rgb_matrix_driver_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
+    IS31FL3733_set_color_all(red, green, blue);
+#    if WS2812_LED_TOTAL > 0
+    for (uint8_t i = 0; i < WS2812_LED_TOTAL; i++) {
+        rgb_matrix_ws2812_array[i].r = red;
+        rgb_matrix_ws2812_array[i].g = green;
+        rgb_matrix_ws2812_array[i].b = blue;
+    }
+#    endif
+}
+
+// clang-format off
+const rgb_matrix_driver_t rgb_matrix_driver = {
+    .init          = rgb_matrix_driver_init,
+    .flush         = rgb_matrix_driver_flush,
+    .set_color     = rgb_matrix_driver_set_color,
+    .set_color_all = rgb_matrix_driver_set_color_all,
+};
+// clang-format on
+
+#endif /* RGB_MATRIX_ENABLE */

+ 32 - 0
keyboards/kprepublic/bm60hsrgb/rev2/rev2.h

@@ -0,0 +1,32 @@
+/* Copyright 2021 bdtc123
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT( \
+    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D,        \
+    K10,   K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,      \
+    K20,    K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D,          \
+    K30,       K31, K32, K33, K34, K35, K36, K37, K38, K39, K3B,     K3C, K3D,   \
+    K40,  K41,  K42,              K45,                K49, K4A, K4B, K4C, K4D    \
+) { \
+    { K00,   K01,   K02,   K03,   K04,   K05,   K06,   K07,   K08,   K09,   K0A,   K0B,   K0C,   K0D   }, \
+    { K10,   K11,   K12,   K13,   K14,   K15,   K16,   K17,   K18,   K19,   K1A,   K1B,   K1C,   K1D   }, \
+    { K20,   K21,   K22,   K23,   K24,   K25,   K26,   K27,   K28,   K29,   K2A,   K2B,   KC_NO, K2D   }, \
+    { K30,   K31,   K32,   K33,   K34,   K35,   K36,   K37,   K38,   K39,   KC_NO, K3B,   K3C,   K3D   }, \
+    { K40,   K41,   K42,   KC_NO, KC_NO, K45,   KC_NO, KC_NO, KC_NO, K49,   K4A,   K4B,   K4C,   K4D   }, \
+}

+ 27 - 0
keyboards/kprepublic/bm60hsrgb/rev2/rules.mk

@@ -0,0 +1,27 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+#   change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes       # Mouse keys
+EXTRAKEY_ENABLE = yes       # Audio control and System control
+CONSOLE_ENABLE = no         # Console for debug
+COMMAND_ENABLE = no         # Commands for debug and configuration
+NKRO_ENABLE = yes           # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
+AUDIO_ENABLE = no           # Audio output
+NO_USB_STARTUP_CHECK = no
+LTO_ENABLE = yes
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = custom
+WS2812_DRIVER_REQUIRED = yes
+
+COMMON_VPATH += $(DRIVER_PATH)/led/issi
+SRC += is31fl3733.c
+QUANTUM_LIB_SRC += i2c_master.c

+ 143 - 0
keyboards/mechwild/waka60/config.h

@@ -0,0 +1,143 @@
+/*
+Copyright 2021 Kyle McCreery
+
+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 <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID       0x6D77 // mw = "MechWild"
+#define PRODUCT_ID      0x1709
+#define DEVICE_VER      0x0101
+#define MANUFACTURER    MechWild
+#define PRODUCT         Waka60
+
+/* key matrix size */
+#define MATRIX_ROWS 10
+#define MATRIX_COLS 7
+
+#define EEPROM_I2C_24LC64
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { B8, B4, B3, B9, A15, B12, B13, B14, B15, A8 }
+#define MATRIX_COL_PINS { B10, B1, B0, A7, A6, A5, A4 }
+#define UNUSED_PINS
+
+/* encoder pins */
+#define ENCODERS_PAD_A { A3 }
+#define ENCODERS_PAD_B { A2 }
+
+/* encoder resolution */
+#define ENCODER_RESOLUTION 4
+#define TAP_CODE_DELAY 10
+
+/* COL2ROW, ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* RGB settings, uncomment this define to enable RGB */
+#define RGB_DI_PIN A1
+#ifdef RGB_DI_PIN
+#    define RGBLED_NUM 3
+#    define RGBLIGHT_HUE_STEP 8
+#    define RGBLIGHT_SAT_STEP 8
+#    define RGBLIGHT_VAL_STEP 8
+#    define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+#    define RGBLIGHT_SLEEP  /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+#define RGBLIGHT_EFFECT_BREATHING
+#define RGBLIGHT_EFFECT_RAINBOW_MOOD
+#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+#define RGBLIGHT_EFFECT_SNAKE
+#define RGBLIGHT_EFFECT_KNIGHT
+#define RGBLIGHT_EFFECT_CHRISTMAS
+#define RGBLIGHT_EFFECT_STATIC_GRADIENT
+#define RGBLIGHT_EFFECT_RGB_TEST
+#define RGBLIGHT_EFFECT_ALTERNATING
+#define RGBLIGHT_EFFECT_TWINKLE
+/*== customize breathing effect ==*/
+/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
+//#    define RGBLIGHT_BREATHE_TABLE_SIZE 256      // 256(default) or 128 or 64
+/*==== use exp() and sin() ====*/
+//#    define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85  // 1 to 2.7
+//#    define RGBLIGHT_EFFECT_BREATHE_MAX    255   // 0 to 255
+#endif
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is useful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+//#define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Feature disable options
+ *  These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+
+/* disable these deprecated features by default */
+#define NO_ACTION_MACRO
+#define NO_ACTION_FUNCTION
+
+/* Bootmagic Lite key configuration */
+//#define BOOTMAGIC_LITE_ROW 0
+//#define BOOTMAGIC_LITE_COLUMN 0

+ 25 - 0
keyboards/mechwild/waka60/f401/halconf.h

@@ -0,0 +1,25 @@
+/* Copyright 2021 Kyle McCreery
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#define HAL_USE_I2C TRUE
+#define HAL_USE_PWM TRUE
+#define HAL_USE_PAL TRUE
+#define HAL_USE_GPT TRUE
+
+#include_next <halconf.h>
+

+ 27 - 0
keyboards/mechwild/waka60/f401/mcuconf.h

@@ -0,0 +1,27 @@
+/* Copyright 2021 Kyle McCreery
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include_next <mcuconf.h>
+
+#undef STM32_I2C_USE_I2C1
+#define STM32_I2C_USE_I2C1 TRUE
+
+#undef STM32_PWM_USE_TIM1
+#define STM32_PWM_USE_TIM1                  TRUE
+#undef STM32_GPT_USE_TIM4
+#define STM32_GPT_USE_TIM4                  TRUE

+ 5 - 0
keyboards/mechwild/waka60/f401/rules.mk

@@ -0,0 +1,5 @@
+# MCU name
+MCU = STM32F401
+
+# Bootloader selection
+BOOTLOADER = stm32-dfu

+ 22 - 0
keyboards/mechwild/waka60/f411/halconf.h

@@ -0,0 +1,22 @@
+/* Copyright 2021 Kyle McCreery
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#define HAL_USE_I2C TRUE
+
+#include_next <halconf.h>
+

+ 23 - 0
keyboards/mechwild/waka60/f411/mcuconf.h

@@ -0,0 +1,23 @@
+/* Copyright 2021 Kyle McCreery
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include_next <mcuconf.h>
+
+#undef STM32_I2C_USE_I2C1
+#define STM32_I2C_USE_I2C1 TRUE
+

+ 5 - 0
keyboards/mechwild/waka60/f411/rules.mk

@@ -0,0 +1,5 @@
+# MCU name
+MCU = STM32F411
+
+# Bootloader selection
+BOOTLOADER = stm32-dfu

+ 73 - 0
keyboards/mechwild/waka60/info.json

@@ -0,0 +1,73 @@
+{
+    "keyboard_name": "MechWild Waka60",
+    "url": "mechwild.com",
+    "maintainer": "Kyle McCreery",
+    "layouts": {
+        "LAYOUT": {
+            "layout": [
+                {"label": "k00", "x": 0,  "y": 0}, 
+                {"label": "k01", "x": 1,  "y": 0}, 
+                {"label": "k02", "x": 2,  "y": 0}, 
+                {"label": "k03", "x": 3,  "y": 0}, 
+                {"label": "k04", "x": 4,  "y": 0}, 
+                {"label": "k05", "x": 5,  "y": 0}, 
+                {"label": "k50", "x": 7,  "y": 0}, 
+                {"label": "k51", "x": 8,  "y": 0}, 
+                {"label": "k52", "x": 9,  "y": 0}, 
+                {"label": "k53", "x": 10, "y": 0}, 
+                {"label": "k54", "x": 11, "y": 0}, 
+                {"label": "k55", "x": 12, "y": 0}, 
+				{"label": "k10", "x": 0,  "y": 1}, 
+                {"label": "k11", "x": 1,  "y": 1}, 
+                {"label": "k12", "x": 2,  "y": 1}, 
+                {"label": "k13", "x": 3,  "y": 1}, 
+                {"label": "k14", "x": 4,  "y": 1}, 
+                {"label": "k15", "x": 5,  "y": 1}, 
+                {"label": "k60", "x": 7,  "y": 1}, 
+                {"label": "k61", "x": 8,  "y": 1}, 
+                {"label": "k62", "x": 9,  "y": 1}, 
+                {"label": "k63", "x": 10, "y": 1}, 
+                {"label": "k64", "x": 11, "y": 1}, 
+                {"label": "k65", "x": 12, "y": 1}, 
+				{"label": "k20", "x": 0,  "y": 2}, 
+                {"label": "k21", "x": 1,  "y": 2}, 
+                {"label": "k22", "x": 2,  "y": 2}, 
+                {"label": "k23", "x": 3,  "y": 2}, 
+                {"label": "k24", "x": 4,  "y": 2}, 
+                {"label": "k25", "x": 5,  "y": 2}, 
+                {"label": "k70", "x": 7,  "y": 2}, 
+                {"label": "k71", "x": 8,  "y": 2}, 
+                {"label": "k72", "x": 9,  "y": 2}, 
+                {"label": "k73", "x": 10, "y": 2}, 
+                {"label": "k74", "x": 11, "y": 2}, 
+                {"label": "k75", "x": 12, "y": 2}, 
+				{"label": "k30", "x": 0,  "y": 3}, 
+                {"label": "k31", "x": 1,  "y": 3}, 
+                {"label": "k32", "x": 2,  "y": 3}, 
+                {"label": "k33", "x": 3,  "y": 3}, 
+                {"label": "k34", "x": 4,  "y": 3}, 
+                {"label": "k35", "x": 5,  "y": 3}, 
+				{"label": "k36", "x": 6,  "y": 3},
+                {"label": "k80", "x": 7,  "y": 3}, 
+                {"label": "k81", "x": 8,  "y": 3}, 
+                {"label": "k82", "x": 9,  "y": 3}, 
+                {"label": "k83", "x": 10, "y": 3}, 
+                {"label": "k84", "x": 11, "y": 3}, 
+                {"label": "k85", "x": 12, "y": 3}, 
+				{"label": "k40", "x": 0,  "y": 4}, 
+                {"label": "k41", "x": 1,  "y": 4}, 
+                {"label": "k42", "x": 2,  "y": 4}, 
+                {"label": "k43", "x": 3,  "y": 4}, 
+                {"label": "k44", "x": 4,  "y": 4}, 
+                {"label": "k45", "x": 5,  "y": 4}, 
+				{"label": "k46", "x": 6,  "y": 4},
+                {"label": "k90", "x": 7,  "y": 4}, 
+                {"label": "k91", "x": 8,  "y": 4}, 
+                {"label": "k92", "x": 9,  "y": 4}, 
+                {"label": "k93", "x": 10, "y": 4}, 
+                {"label": "k94", "x": 11, "y": 4}, 
+                {"label": "k95", "x": 12, "y": 4}
+            ]
+        }
+    }
+}

+ 23 - 0
keyboards/mechwild/waka60/keymaps/audio/config.h

@@ -0,0 +1,23 @@
+/*
+Copyright 2021 Kyle McCreery
+
+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 <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#define AUDIO_PIN B5
+#define AUDIO_PWM_DRIVER PWMD1
+#define AUDIO_PWM_CHANNEL 1
+#define AUDIO_STATE_TIMER GPTD4

+ 57 - 0
keyboards/mechwild/waka60/keymaps/audio/keymap.c

@@ -0,0 +1,57 @@
+/* Copyright 2021 Kyle McCreery
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+ 
+ #include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+    _BASE,
+    _FN1,
+	_FN2,
+	_FN3
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    /* Base */
+    [_BASE] = LAYOUT(
+    KC_GESC, KC_1,    KC_2,    KC_3,    KC_4,    KC_5,             KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    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_BSLS,
+    MO(1),   KC_A,    KC_S,    KC_D,    KC_F,    KC_G,             KC_H,    KC_J,    KC_K,    KC_L,    KC_QUOT, KC_ENT,
+    KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,   KC_MUTE,  KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,
+    KC_LCTL, KC_LGUI, KC_LALT, MO(1),   KC_SPC,  KC_SPC, KC_SPC,   KC_SPC,  KC_SPC,  MO(1),   KC_RALT, KC_RGUI, KC_RCTL
+    ),
+    [_FN1] = LAYOUT(                                                                                   
+    KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,            KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_DEL,
+    KC_TRNS, AU_TOG,  RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, MU_TOG,  RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, MU_MOD,  RGB_RMOD, 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
+    ),
+    [_FN2] = 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_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+    ),
+    [_FN3] = 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_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+    )
+};

+ 3 - 0
keyboards/mechwild/waka60/keymaps/audio/rules.mk

@@ -0,0 +1,3 @@
+VIA_ENABLE = yes
+AUDIO_ENABLE = yes
+AUDIO_DRIVER = pwm_software

+ 57 - 0
keyboards/mechwild/waka60/keymaps/default/keymap.c

@@ -0,0 +1,57 @@
+/* Copyright 2021 Kyle McCreery
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+ 
+ #include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+    _BASE,
+    _FN1,
+	_FN2,
+	_FN3
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    /* Base */
+    [_BASE] = LAYOUT(
+    KC_GESC, KC_1,    KC_2,    KC_3,    KC_4,    KC_5,             KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    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_BSLS,
+    MO(1),   KC_A,    KC_S,    KC_D,    KC_F,    KC_G,             KC_H,    KC_J,    KC_K,    KC_L,    KC_QUOT, KC_ENT,
+    KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,   KC_MUTE,  KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,
+    KC_LCTL, KC_LGUI, KC_LALT, MO(1),   KC_SPC,  KC_SPC, KC_SPC,   KC_SPC,  KC_SPC,  MO(1),   KC_RALT, KC_RGUI, KC_RCTL
+    ),
+    [_FN1] = LAYOUT(                                                                                   
+    KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,             KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_DEL,
+    KC_TRNS, KC_TRNS, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS,           KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS,           KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS, RGB_RMOD, 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
+    ),
+    [_FN2] = 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_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+    ),
+    [_FN3] = 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_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+    )
+};

+ 57 - 0
keyboards/mechwild/waka60/keymaps/via/keymap.c

@@ -0,0 +1,57 @@
+/* Copyright 2021 Kyle McCreery
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+ 
+ #include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+    _BASE,
+    _FN1,
+	_FN2,
+	_FN3
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    /* Base */
+    [_BASE] = LAYOUT(
+    KC_GESC, KC_1,    KC_2,    KC_3,    KC_4,    KC_5,             KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    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_BSLS,
+    MO(1),   KC_A,    KC_S,    KC_D,    KC_F,    KC_G,             KC_H,    KC_J,    KC_K,    KC_L,    KC_QUOT, KC_ENT,
+    KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,   KC_MUTE,  KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,
+    KC_LCTL, KC_LGUI, KC_LALT, MO(1),   KC_SPC,  KC_SPC, KC_SPC,   KC_SPC,  KC_SPC,  MO(1),   KC_RALT, KC_RGUI, KC_RCTL
+    ),
+    [_FN1] = LAYOUT(                                                                                   
+    KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,            KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_DEL,
+    KC_TRNS, AU_TOG,  RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, MU_TOG,  RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+    KC_TRNS, MU_MOD,  RGB_RMOD, 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
+    ),
+    [_FN2] = 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_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+    ),
+    [_FN3] = 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_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+    )
+};

+ 2 - 0
keyboards/mechwild/waka60/keymaps/via/rules.mk

@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+

+ 19 - 0
keyboards/mechwild/waka60/readme.md

@@ -0,0 +1,19 @@
+# Waka60
+
+![waka](https://i.imgur.com/ohyE83Sh.png)
+
+An affordable Ortholinear keyboard kit featuring a speaker, top-facing RGB LEDs, a center encoder, spacing between the halves, and powered by the STM32 Blackpill.
+
+* Keyboard Maintainer: [Kyle McCreery](https://github.com/kylemccreery)
+* Hardware Supported: Waka60 v1.1
+* Hardware Availability: [Waka60 on MechWild](https://mechwild.com/product/waka/)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make mechwild/waka60:default
+
+Flashing example for this keyboard:
+
+    make mechwild/waka60: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).

+ 17 - 0
keyboards/mechwild/waka60/rules.mk

@@ -0,0 +1,17 @@
+# Build Options
+#   change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes       # Mouse keys
+EXTRAKEY_ENABLE = yes       # Audio control and System control
+CONSOLE_ENABLE = no         # Console for debug
+COMMAND_ENABLE = no         # Commands for debug and configuration
+NKRO_ENABLE = no            # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes        # Enable keyboard RGB underglow
+AUDIO_ENABLE = no           # Audio output
+ENCODER_ENABLE = yes        # Encoder Enabled
+
+EEPROM_DRIVER = i2c 
+
+DEFAULT_FOLDER = mechwild/waka60/f401

+ 37 - 0
keyboards/mechwild/waka60/waka60.c

@@ -0,0 +1,37 @@
+/* Copyright 2021 Kyle McCreery
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+
+#include "waka60.h"
+void board_init(void) {
+    // B9 is configured as I2C1_SDA in the board file; that function must be
+    // disabled before using B7 as I2C1_SDA.
+    setPinInputHigh(B9);
+}
+#ifdef ENCODER_ENABLE
+bool encoder_update_kb(uint8_t index, bool clockwise) {
+    if (!encoder_update_user(index, clockwise)) { return false; }
+    switch (index) {
+        case 0:
+            if (clockwise) {
+                tap_code(KC_VOLU);
+            } else {
+                tap_code(KC_VOLD);
+            }
+        break;
+    }
+    return true;
+}
+#endif

+ 49 - 0
keyboards/mechwild/waka60/waka60.h

@@ -0,0 +1,49 @@
+/* Copyright 2021 Kyle McCreery
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+#define ___ KC_NO
+
+/* This is a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+ 
+#define LAYOUT( \
+	k00, k01, k02, k03, k04, k05,      k50, k51, k52, k53, k54, k55, \
+	k10, k11, k12, k13, k14, k15,      k60, k61, k62, k63, k64, k65, \
+	k20, k21, k22, k23, k24, k25,      k70, k71, k72, k73, k74, k75, \
+	k30, k31, k32, k33, k34, k35, k36, k80, k81, k82, k83, k84, k85, \
+	k40, k41, k42, k43, k44, k45, k46, k90, k91, k92, k93, k94, k95  \
+) { \
+    { k00, k01, k02, k03, k04, k05, ___}, \
+    { k10, k11, k12, k13, k14, k15, ___}, \
+    { k20, k21, k22, k23, k24, k25, ___}, \
+    { k30, k31, k32, k33, k34, k35, k36}, \
+    { k40, k41, k42, k43, k44, k45, k46}, \
+	{ k50, k51, k52, k53, k54, k55, ___}, \
+	{ k60, k61, k62, k63, k64, k65, ___}, \
+	{ k70, k71, k72, k73, k74, k75, ___}, \
+	{ k80, k81, k82, k83, k84, k85, ___}, \
+	{ k90, k91, k92, k93, k94, k95, ___}  \
+}

+ 41 - 0
keyboards/mokey/ginkgo65hot/config.h

@@ -0,0 +1,41 @@
+/*
+Copyright 2021 Kyle McCreery
+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 <http://www.gnu.org/licenses/>.
+*/
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID       0x6653
+#define PRODUCT_ID      0x3366
+#define DEVICE_VER      0x0001
+#define MANUFACTURER    Mokey
+#define PRODUCT         ginkgo65hot
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 15
+
+#define MATRIX_ROW_PINS { F7, B7, F5, F1, B0 }
+#define MATRIX_COL_PINS { C7, F6, B2, F4, B3, E6, D0, D1, D2, D3, D5, D4, D6, D7, B4 }
+#define UNUSED_PINS
+#define DIODE_DIRECTION COL2ROW
+
+#define BACKLIGHT_PIN B6
+#define BACKLIGHT_LEVELS 6
+#define BACKLIGHT_CAPS_LOCK
+#define BACKLIGHT_BREATHING
+#define BREATHING_PERIOD 5
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5

+ 16 - 0
keyboards/mokey/ginkgo65hot/ginkgo65hot.c

@@ -0,0 +1,16 @@
+/* Copyright 2021 Ocean
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+#include "ginkgo65hot.h"
+

+ 47 - 0
keyboards/mokey/ginkgo65hot/ginkgo65hot.h

@@ -0,0 +1,47 @@
+/* Copyright 2021 Ocean
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#include "quantum.h"
+
+#define XXX KC_NO
+
+/*LAYOUT
+  * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
+  * │k00│k01│k02│k03│k04│k05│k06│k07│k08│k09│k0A│k0B│k0C│  k0D  │k0E│
+  * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
+  * │ k10 │k11│k12│k13│k14│k15│k16│k17│k18│k19│k1A│k1B│k1C│ k1D │k1E│
+  * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
+  * │ k20  │k21│k22│k23│k24│k25│k26│k27│k28│k29│k2A│k2B│  k2D   │k2E│
+  * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
+  * │   k30  │k32│k33│k34│k35│k36│k37│k38│k39│k3A│k3B│  k3C │k3D│k3E│
+  * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
+  * │k40 │k41 │k42 │  k44                   │k49 │k4A │ │k4C│k4D│k4E│
+  * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
+*/
+#define LAYOUT( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B,      k2D, k2E, \
+    k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \
+    k40, k41, k42,      k44,                     k49, k4A,      k4C, k4D, k4E  \
+) { \
+    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
+    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
+    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, XXX, k2D, k2E }, \
+    { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
+    { k40, k41, k42, XXX, k44, XXX, XXX, XXX, XXX, k49, k4A, XXX, k4C, k4D, k4E }, \
+}

+ 82 - 0
keyboards/mokey/ginkgo65hot/info.json

@@ -0,0 +1,82 @@
+{
+    "keyboard_name": "ginkgo65hot",
+    "url": "",
+    "maintainer": "mokey",
+    "layouts": {
+        "LAYOUT": {
+            "layout": [
+                {"label":"k00", "x":0, "y":0},
+                {"label":"k01", "x":1, "y":0},
+                {"label":"k02", "x":2, "y":0},
+                {"label":"k03", "x":3, "y":0},
+                {"label":"k04", "x":4, "y":0},
+                {"label":"k05", "x":5, "y":0},
+                {"label":"k06", "x":6, "y":0},
+                {"label":"k07", "x":7, "y":0},
+                {"label":"k08", "x":8, "y":0},
+                {"label":"k09", "x":9, "y":0},
+                {"label":"k0a", "x":10, "y":0},
+                {"label":"k0b", "x":11, "y":0},
+                {"label":"k0c", "x":12, "y":0},
+                {"label":"k0d", "x":13, "y":0, "w":2},
+                {"label":"k0e", "x":15, "y":0},
+                
+                {"label":"k10", "x":0, "y":1, "w":1.5},
+                {"label":"k11", "x":1.5, "y":1},
+                {"label":"k12", "x":2.5, "y":1},
+                {"label":"k13", "x":3.5, "y":1},
+                {"label":"k14", "x":4.5, "y":1},
+                {"label":"k15", "x":5.5, "y":1},
+                {"label":"k16", "x":6.5, "y":1},
+                {"label":"k17", "x":7.5, "y":1},
+                {"label":"k18", "x":8.5, "y":1},
+                {"label":"k19", "x":9.5, "y":1},
+                {"label":"k1a", "x":10.5, "y":1},
+                {"label":"k1b", "x":11.5, "y":1},
+                {"label":"k1c", "x":12.5, "y":1},
+                {"label":"k1d", "x":13.5, "y":1, "w":1.5},
+                {"label":"k1e", "x":15, "y":1,},
+                
+                {"label":"k20", "x":0, "y":2, "w":1.75},
+                {"label":"k21", "x":1.75, "y":2},
+                {"label":"k22", "x":2.75, "y":2},
+                {"label":"k23", "x":3.75, "y":2},
+                {"label":"k24", "x":4.75, "y":2},
+                {"label":"k25", "x":5.75, "y":2},
+                {"label":"k26", "x":6.75, "y":2},
+                {"label":"k27", "x":7.75, "y":2},
+                {"label":"k28", "x":8.75, "y":2},
+                {"label":"k29", "x":9.75, "y":2},
+                {"label":"k2a", "x":10.75, "y":2},
+                {"label":"k2b", "x":11.75, "y":2},
+                {"label":"k2d", "x":12.75, "y":2, "w":2.25},
+                {"label":"k2e", "x":15, "y":2},
+                
+                {"label":"k30", "x":0, "y":3, "w":2.25},
+                {"label":"k32", "x":2.25, "y":3},
+                {"label":"k33", "x":3.25, "y":3},
+                {"label":"k34", "x":4.25, "y":3},
+                {"label":"k35", "x":5.25, "y":3},
+                {"label":"k36", "x":6.25, "y":3},
+                {"label":"k37", "x":7.25, "y":3},
+                {"label":"k38", "x":8.25, "y":3},
+                {"label":"k39", "x":9.25, "y":3},
+                {"label":"k3a", "x":10.25, "y":3},
+                {"label":"k3b", "x":11.25, "y":3},
+                {"label":"k3c", "x":12.25, "y":3, "w":1.75},
+                {"label":"k3d", "x":14, "y":3},
+                {"label":"k3e", "x":15, "y":3},
+
+                {"label":"k40", "x":0, "y":4, "w":1.25},
+                {"label":"k41", "x":1.25, "y":4, "w":1.25},
+                {"label":"k42", "x":2.5, "y":4, "w":1.25},
+                {"label":"k44", "x":3.75, "y":4, "w":6.25},
+                {"label":"k49", "x":10, "y":4, "w":1.25},
+                {"label":"k4a", "x":11.25, "y":4, "w":1.25},
+                {"label":"k4c", "x":13, "y":4},
+                {"label":"k4d", "x":14, "y":4},
+                {"label":"k4e", "x":15, "y":4}
+            ]
+        }
+    }
+}

+ 49 - 0
keyboards/mokey/ginkgo65hot/keymaps/default/keymap.c

@@ -0,0 +1,49 @@
+/* Copyright 2021 Ocean
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+
+#include QMK_KEYBOARD_H
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+    /*
+     * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
+     * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bspace │Ins│
+     * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
+     * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │  \  │Del│
+     * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
+     * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter  │PgU│
+     * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
+     * │ LShift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │RShift│ ↑ │PgD│
+     * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
+     * │LCtl│LGui│LAlt│         Space          │RAlt│ Fn │ │ ← │ ↓ │ → │
+     * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
+     */
+
+    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_BSPC, KC_INS,
+        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_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_PGUP,
+        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_PGDN,
+        KC_LCTL, KC_LGUI, KC_LALT,          KC_SPC,                                      KC_RALT, MO(1),            KC_LEFT, KC_DOWN, KC_RGHT
+    ),
+    LAYOUT(
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______,
+        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______, _______, _______,          _______,                                     _______, _______,          _______, _______, _______
+    )
+};

+ 50 - 0
keyboards/mokey/ginkgo65hot/keymaps/via/keymap.c

@@ -0,0 +1,50 @@
+/* Copyright 2021 Ocean
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+#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_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC, KC_INS,
+        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_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_PGUP,
+        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_PGDN,
+        KC_LCTL, KC_LGUI, KC_LALT,          KC_SPC,                                      KC_RALT, MO(1),            KC_LEFT, KC_DOWN, KC_RGHT
+    ),
+
+    [1] = LAYOUT(
+        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,  _______, _______,
+        BL_TOGG, BL_STEP, BL_DEC,  BL_INC,  RESET,   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______,
+        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______, _______, _______,          _______,                                     _______, _______,          _______, _______, _______
+    ),
+
+    [2] = LAYOUT(
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______,
+        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______, _______, _______,          _______,                                     _______, _______,          _______, _______, _______
+    ),
+
+     [3] = LAYOUT(
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______,
+        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______, _______, _______,          _______,                                     _______, _______,          _______, _______, _______
+    )
+};

+ 2 - 0
keyboards/mokey/ginkgo65hot/keymaps/via/rules.mk

@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes

+ 20 - 0
keyboards/mokey/ginkgo65hot/readme.md

@@ -0,0 +1,20 @@
+# Ginkgo65hot Multi PCB
+
+![Ginkgo65hot](https://i.imgur.com/ty0prrR.png)
+
+Support Atmega32u4 keyboard,With a variety of configurations
+
+* Keyboard Maintainer: [mokey](https://github.com/rhmokey)
+* Hardware Supported: Atmega32u4
+## Bootloader
+* **Physical reset button**: Short press the button on the back of the PCB to enter the Bootloader and flash the firmware
+
+Make example for this keyboard (after setting up your build environment):
+
+    make mokey/ginkgo65hot:default 
+
+Flashing example for this keyboard:
+
+    make mokey/ginkgo65hot: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).

+ 18 - 0
keyboards/mokey/ginkgo65hot/rules.mk

@@ -0,0 +1,18 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+#   change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = no        # Mouse keys
+EXTRAKEY_ENABLE = yes       # Audio control and System control
+CONSOLE_ENABLE = no         # Console for debug
+COMMAND_ENABLE = no         # Commands for debug and configuration
+NKRO_ENABLE = no            # Enable N-Key Rollover
+BACKLIGHT_ENABLE = yes      # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
+AUDIO_ENABLE = no           # Audio output

+ 2 - 0
keyboards/ramonimbao/chevron/keymaps/via/keymap.c

@@ -75,10 +75,12 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
         encoder_cw.pressed = true;
         encoder_cw.time = (timer_read() | 1);
         action_exec(encoder_cw);
+        wait_ms(20);
     } else {
         encoder_ccw.pressed = true;
         encoder_ccw.time = (timer_read() | 1);
         action_exec(encoder_ccw);
+        wait_ms(20);
     }
     return true;
 }

+ 2 - 2
keyboards/spacey/config.h

@@ -20,8 +20,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #include "config_common.h"
 
 /* USB Device descriptor parameter */
-#define VENDOR_ID    0xFEED
-#define PRODUCT_ID   0x0000
+#define VENDOR_ID    0x5641 // "VA"
+#define PRODUCT_ID   0x2045 // "Space E"
 #define DEVICE_VER   0x0001
 #define MANUFACTURER vanilla
 #define PRODUCT      spacey

+ 48 - 0
keyboards/spacey/keymaps/via/keymap.c

@@ -0,0 +1,48 @@
+/* Copyright 2021 vanilla
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    /* Base */
+    [0] = 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_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_CLCK,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_UP,
+        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_LEFT, KC_DOWN,
+        KC_LCTL, KC_LGUI, MO(1), KC_MUTE, KC_LALT, KC_SPC,  KC_NO, KC_BSPC, KC_DEL, KC_NO,  KC_RALT, KC_RGUI, KC_RCTL, KC_RGHT
+    ),
+    [1] = LAYOUT(
+        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_BSPC,
+        KC_TAB, 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_DEL,
+        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_ENT, KC_MS_U,
+        KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_COMM,KC_DOT,KC_SLSH,KC_RSFT, KC_MS_L, KC_MS_D,
+        KC_LCTL, KC_LGUI, KC_NO, KC_ESC, KC_LALT, KC_SPC,  KC_NO,  KC_BSPC,   KC_RALT, KC_NO,     KC_APP, KC_RGUI, KC_RCTL, KC_MS_R
+    ),
+    [2] = LAYOUT(
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+    ),
+    [3] = LAYOUT(
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+    )
+};

+ 2 - 0
keyboards/spacey/keymaps/via/rules.mk

@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes

+ 139 - 0
keyboards/takashicompany/radialex/config.h

@@ -0,0 +1,139 @@
+/*
+Copyright 2021 takashicompany
+
+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 <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID    0x7463 // tc = takashicompany
+#define PRODUCT_ID   0x0019
+#define DEVICE_VER   0x0001
+#define MANUFACTURER takashicompany
+#define PRODUCT      Radialex
+
+/* key matrix size */
+#define MATRIX_ROWS 7
+#define MATRIX_COLS 7
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { B6, D4, C6, D7, E6, B4, B5 }
+#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+//#define LED_NUM_LOCK_PIN B0
+//#define LED_CAPS_LOCK_PIN B1
+//#define LED_SCROLL_LOCK_PIN B2
+//#define LED_COMPOSE_PIN B3
+//#define LED_KANA_PIN B4
+
+//#define BACKLIGHT_PIN B7
+//#define BACKLIGHT_LEVELS 3
+//#define BACKLIGHT_BREATHING
+
+#define RGB_DI_PIN D3
+#ifdef RGB_DI_PIN
+#    define RGBLED_NUM 12
+#    define RGBLIGHT_HUE_STEP 8
+#    define RGBLIGHT_SAT_STEP 8
+#    define RGBLIGHT_VAL_STEP 8
+#    define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+#    define RGBLIGHT_SLEEP  /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+#define RGBLIGHT_EFFECT_BREATHING
+#define RGBLIGHT_EFFECT_RAINBOW_MOOD
+#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+#define RGBLIGHT_EFFECT_SNAKE
+#define RGBLIGHT_EFFECT_KNIGHT
+#define RGBLIGHT_EFFECT_CHRISTMAS
+#define RGBLIGHT_EFFECT_STATIC_GRADIENT
+#define RGBLIGHT_EFFECT_RGB_TEST
+#define RGBLIGHT_EFFECT_ALTERNATING
+#define RGBLIGHT_EFFECT_TWINKLE
+#endif
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is useful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+//#define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Feature disable options
+ *  These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+
+/* disable these deprecated features by default */
+#define NO_ACTION_MACRO
+#define NO_ACTION_FUNCTION
+
+/* Bootmagic Lite key configuration */
+//#define BOOTMAGIC_LITE_ROW 0
+//#define BOOTMAGIC_LITE_COLUMN 0

+ 191 - 0
keyboards/takashicompany/radialex/info.json

@@ -0,0 +1,191 @@
+{
+    "keyboard_name": "Radialex",
+    "url": "https://github.com/takashicompany/radialex",
+    "maintainer": "takashicompany",
+    "layouts": {
+        "LAYOUT": {
+            "layout": [
+                {
+                    "x": 1,
+                    "y": 0
+                },
+                {
+                    "x": 2,
+                    "y": 0
+                },
+                {
+                    "x": 3,
+                    "y": 0
+                },
+                {
+                    "x": 4,
+                    "y": 0
+                },
+                {
+                    "x": 5,
+                    "y": 0
+                },
+                {
+                    "x": 9,
+                    "y": 0
+                },
+                {
+                    "x": 10,
+                    "y": 0
+                },
+                {
+                    "x": 11,
+                    "y": 0
+                },
+                {
+                    "x": 12,
+                    "y": 0
+                },
+                {
+                    "x": 13,
+                    "y": 0
+                },
+                {
+                    "x": 0,
+                    "y": 1
+                },
+                {
+                    "x": 1,
+                    "y": 1
+                },
+                {
+                    "x": 2,
+                    "y": 1
+                },
+                {
+                    "x": 3,
+                    "y": 1
+                },
+                {
+                    "x": 4,
+                    "y": 1
+                },
+                {
+                    "x": 5,
+                    "y": 1
+                },
+                {
+                    "x": 7,
+                    "y": 1
+                },
+                {
+                    "x": 9,
+                    "y": 1
+                },
+                {
+                    "x": 10,
+                    "y": 1
+                },
+                {
+                    "x": 11,
+                    "y": 1
+                },
+                {
+                    "x": 12,
+                    "y": 1
+                },
+                {
+                    "x": 13,
+                    "y": 1
+                },
+                {
+                    "x": 14,
+                    "y": 1
+                },
+                {
+                    "x": 0,
+                    "y": 2
+                },
+                {
+                    "x": 1,
+                    "y": 2
+                },
+                {
+                    "x": 2,
+                    "y": 2
+                },
+                {
+                    "x": 3,
+                    "y": 2
+                },
+                {
+                    "x": 4,
+                    "y": 2
+                },
+                {
+                    "x": 5,
+                    "y": 2
+                },
+                {
+                    "x": 9,
+                    "y": 2
+                },
+                {
+                    "x": 10,
+                    "y": 2
+                },
+                {
+                    "x": 11,
+                    "y": 2
+                },
+                {
+                    "x": 12,
+                    "y": 2
+                },
+                {
+                    "x": 13,
+                    "y": 2
+                },
+                {
+                    "x": 14,
+                    "y": 2
+                },
+                {
+                    "x": 2,
+                    "y": 3
+                },
+                {
+                    "x": 3,
+                    "y": 3
+                },
+                {
+                    "x": 4,
+                    "y": 3
+                },
+                {
+                    "x": 5,
+                    "y": 3
+                },
+                {
+                    "x": 6,
+                    "y": 3
+                },
+                {
+                    "x": 8,
+                    "y": 3
+                },
+                {
+                    "x": 9,
+                    "y": 3
+                },
+                {
+                    "x": 10,
+                    "y": 3
+                },
+                {
+                    "x": 11,
+                    "y": 3
+                },
+                {
+                    "x": 12,
+                    "y": 3
+                }
+            ]
+        }
+    }
+}

+ 64 - 0
keyboards/takashicompany/radialex/keymaps/default/keymap.c

@@ -0,0 +1,64 @@
+/* Copyright 2021 takashicompany
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+// Defines the keycodes used by our macros in process_record_user
+enum custom_keycodes {
+    RADIALEX = SAFE_RANGE,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+    LAYOUT(
+        LT(2, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
+        KC_ESC, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, RADIALEX, KC_H, KC_J, LT(2, KC_K), KC_L, KC_ENT, KC_DEL,
+        KC_LSFT, SFT_T(KC_Z), GUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, CTL_T(KC_DOT), KC_BSPC, KC_RSFT,
+        KC_LCTL, KC_LGUI, KC_LALT, ALT_T(KC_LANG2), SFT_T(KC_TAB), KC_SPC, LT(1, KC_LANG1), KC_RALT, KC_RGUI, KC_RCTL
+    ),
+    LAYOUT(
+        KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
+        KC_LCTL, CTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_RO, KC_TRNS, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_JYEN, KC_TRNS,
+        KC_TRNS, SFT_T(LSFT(KC_LBRC)), LSFT(KC_LBRC), LSFT(KC_SLSH), LSFT(KC_MINS), LSFT(KC_RO), LSFT(KC_SCLN), LSFT(KC_QUOT), LSFT(KC_RBRC), LSFT(KC_NUHS), LSFT(KC_JYEN), KC_TRNS, 
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+    ),
+
+    LAYOUT(
+        KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO,
+        KC_TRNS, KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_TRNS, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS,
+        KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_TRNS, KC_TRNS, KC_LANG1, KC_NO, MO(3), KC_DEL, KC_TRNS,
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+    ),
+
+    LAYOUT(
+        RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
+        KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, 
+        KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_M_T, KC_F11, KC_F12, KC_CAPS, KC_NO, KC_NO, KC_TRNS, 
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+    ),
+
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+    switch (keycode) {
+        case RADIALEX:
+            if (record->event.pressed) {
+                SEND_STRING("Radialex");
+                rgblight_toggle();
+            }
+            return false;
+    }
+    return true;
+}

+ 20 - 0
keyboards/takashicompany/radialex/keymaps/via/config.h

@@ -0,0 +1,20 @@
+/*
+Copyright 2021 takashicompany
+
+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 <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#define DYNAMIC_KEYMAP_LAYER_COUNT 8

+ 89 - 0
keyboards/takashicompany/radialex/keymaps/via/keymap.c

@@ -0,0 +1,89 @@
+/* Copyright 2021 takashicompany
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+#define RADIALEX USER00
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+    LAYOUT(
+        LT(2, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
+        KC_ESC, KC_A, KC_S, LT(2, KC_D), KC_F, KC_G, RADIALEX, KC_H, KC_J, LT(2, KC_K), KC_L, KC_ENT, KC_DEL,
+        KC_LSFT, SFT_T(KC_Z), GUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, CTL_T(KC_DOT), KC_BSPC, KC_RSFT,
+        KC_LCTL, KC_LGUI, KC_LALT, ALT_T(KC_LANG2), SFT_T(KC_TAB), KC_SPC, LT(1, KC_LANG1), KC_RALT, KC_RGUI, KC_RCTL
+    ),
+    LAYOUT(
+        KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
+        KC_LCTL, CTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_RO, KC_TRNS, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_JYEN, KC_TRNS,
+        KC_TRNS, SFT_T(LSFT(KC_LBRC)), LSFT(KC_LBRC), LSFT(KC_SLSH), LSFT(KC_MINS), LSFT(KC_RO), LSFT(KC_SCLN), LSFT(KC_QUOT), LSFT(KC_RBRC), LSFT(KC_NUHS), LSFT(KC_JYEN), KC_TRNS, 
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+    ),
+
+    LAYOUT(
+        KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO,
+        KC_TRNS, KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_TRNS, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS,
+        KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_TRNS, KC_TRNS, KC_LANG1, KC_NO, MO(3), KC_DEL, KC_TRNS,
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+    ),
+
+    LAYOUT(
+        RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
+        KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, 
+        KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_M_T, KC_F11, KC_F12, KC_CAPS, KC_NO, KC_NO, KC_TRNS, 
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+    ),
+
+    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_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
+    ),
+
+    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_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
+    ),
+
+    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_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
+    ),
+
+    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_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
+    )
+
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+    switch (keycode) {
+        case RADIALEX:
+            if (record->event.pressed) {
+                SEND_STRING("Radialex");
+                rgblight_toggle();
+            }
+            return false;
+    }
+    return true;
+}

+ 1 - 0
keyboards/takashicompany/radialex/keymaps/via/rules.mk

@@ -0,0 +1 @@
+VIA_ENABLE = yes

+ 17 - 0
keyboards/takashicompany/radialex/radialex.c

@@ -0,0 +1,17 @@
+/* Copyright 2021 takashicompany
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+
+#include "radialex.h"

+ 42 - 0
keyboards/takashicompany/radialex/radialex.h

@@ -0,0 +1,42 @@
+/* Copyright 2021 takashicompany
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+/* This is a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+#define LAYOUT( \
+         k01, k02, k03, k04, k05,      k06, k07, k08, k09, k10,      \
+    k41, k11, k12, k13, k14, k15, k45, k16, k17, k18, k19, k20, k43, \
+    k42, k21, k22, k23, k24, k25,      k26, k27, k28, k29, k30, k44, \
+         k31, k32, k33, k34, k35,      k36, k37, k38, k39, k40       \
+) { \
+    { k01, k02, k03, k04, k05, k06, k07 }, \
+    { k08, k09, k10, k11, k12, k13, k14 }, \
+    { k15, k16, k17, k18, k19, k20, k21 }, \
+    { k22, k23, k24, k25, k26, k27, k28 }, \
+    { k29, k30, k31, k32, k33, k34, k35 }, \
+    { k36, k37, k38, k39, k40, k41, k42 }, \
+    { k43, k44, k45, KC_NO, KC_NO, KC_NO, KC_NO } \
+}

+ 31 - 0
keyboards/takashicompany/radialex/readme.md

@@ -0,0 +1,31 @@
+# Radialex
+
+![Radialex](https://github.com/takashicompany/radialex/blob/master/images/qmk.jpg?raw=true)
+
+40% larger keyboard.  
+The radial key layout allows you to place your hand in a natural position and move your fingers the shortest distance to type.  
+Your iconic keys and keycaps can be placed in the center of the keyboard.  
+It is possible to make it shine with LED backlighting.  
+The keyswitches can also be replaced with MX sockets.  
+
+* Keyboard Maintainer: [takashicompany](https://github.com/yourusername)
+* Hardware Supported: PCB, Pro Micro
+* Hardware Availability: https://github.com/takashicompany/radialex
+
+Make example for this keyboard (after setting up your build environment):
+
+    make takashicompany/radialex:default
+
+Flashing example for this keyboard:
+
+    make takashicompany/radialex: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 `RESET` if it is available

+ 18 - 0
keyboards/takashicompany/radialex/rules.mk

@@ -0,0 +1,18 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = caterina
+
+# Build Options
+#   change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes       # Mouse keys
+EXTRAKEY_ENABLE = yes       # Audio control and System control
+CONSOLE_ENABLE = no         # Console for debug
+COMMAND_ENABLE = no         # Commands for debug and configuration
+NKRO_ENABLE = no            # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes           # Enable keyboard RGB underglow
+AUDIO_ENABLE = no           # Audio output

+ 1 - 1
keyboards/xelus/pachi/rgb/rev1/config.h

@@ -21,7 +21,7 @@
 #define PRODUCT_ID      0x5052 // "PR"
 #define DEVICE_VER      0x0001
 #define MANUFACTURER    Xelus
-#define PRODUCT         Xelus Pachi RGB
+#define PRODUCT         Xelus Pachi RGB Rev 1
 
 /* key matrix size */
 #define MATRIX_ROWS 6

+ 2 - 2
keyboards/xelus/pachi/rgb/rev2/config.h

@@ -18,10 +18,10 @@
 
 /* USB Device descriptor parameter */
 #define VENDOR_ID       0x5845 // "XE"
-#define PRODUCT_ID      0x5052 // "PR"
+#define PRODUCT_ID      0x5053 // "PR" + 1
 #define DEVICE_VER      0x0002
 #define MANUFACTURER    Xelus
-#define PRODUCT         Xelus Pachi RGB
+#define PRODUCT         Xelus Pachi RGB Rev 2
 
 /* key matrix size */
 #define MATRIX_ROWS 12