summaryrefslogtreecommitdiff
path: root/keyboards/mechlovin
diff options
context:
space:
mode:
authorInigoGutierrez <inigogf.95@gmail.com>2022-09-25 16:02:54 +0200
committerInigoGutierrez <inigogf.95@gmail.com>2022-09-25 16:02:54 +0200
commit6afdd9d74da250e47ac64d6690bd19d037045e99 (patch)
tree661f6cfb244c02bcd1fbfe8fb9b2bd9242a91394 /keyboards/mechlovin
parent93a55e61b59d20f7cd842cce02e5b18a63a23612 (diff)
parent1bdf4cdc22ae57d111efb2f7d71e405e5c7b3f11 (diff)
downloadqmk_firmware-6afdd9d74da250e47ac64d6690bd19d037045e99.tar.gz
qmk_firmware-6afdd9d74da250e47ac64d6690bd19d037045e99.zip
Merge branch 'master' into taamas
Diffstat (limited to 'keyboards/mechlovin')
-rw-r--r--keyboards/mechlovin/adelais/config.h5
-rw-r--r--keyboards/mechlovin/adelais/info.json6
-rw-r--r--keyboards/mechlovin/adelais/keymaps/brandonschlack/keymap.c2
-rw-r--r--keyboards/mechlovin/adelais/keymaps/default/keymap.c68
-rw-r--r--keyboards/mechlovin/adelais/keymaps/via/keymap.c74
-rw-r--r--keyboards/mechlovin/adelais/rgb_led/rev1/config.h4
-rw-r--r--keyboards/mechlovin/adelais/rgb_led/rev1/info.json6
-rw-r--r--keyboards/mechlovin/adelais/rgb_led/rev2/config.h3
-rw-r--r--keyboards/mechlovin/adelais/rgb_led/rev2/info.json6
-rw-r--r--keyboards/mechlovin/adelais/rgb_led/rev3/config.h20
-rw-r--r--keyboards/mechlovin/adelais/rgb_led/rev3/halconf.h4
-rw-r--r--keyboards/mechlovin/adelais/rgb_led/rev3/info.json6
-rw-r--r--keyboards/mechlovin/adelais/rgb_led/rev3/mcuconf.h14
-rw-r--r--keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c48
-rw-r--r--keyboards/mechlovin/adelais/rgb_led/rev3/rules.mk14
-rw-r--r--keyboards/mechlovin/adelais/standard_led/arm/config.h3
-rw-r--r--keyboards/mechlovin/adelais/standard_led/arm/info.json3
-rw-r--r--keyboards/mechlovin/adelais/standard_led/arm/rev2/config.h3
-rw-r--r--keyboards/mechlovin/adelais/standard_led/arm/rev2/info.json5
-rw-r--r--keyboards/mechlovin/adelais/standard_led/arm/rev3/config.h2
-rw-r--r--keyboards/mechlovin/adelais/standard_led/arm/rev3/info.json5
-rw-r--r--keyboards/mechlovin/adelais/standard_led/arm/rev4/config.h2
-rw-r--r--keyboards/mechlovin/adelais/standard_led/arm/rev4/info.json5
-rw-r--r--keyboards/mechlovin/adelais/standard_led/avr/rev1/config.h3
-rw-r--r--keyboards/mechlovin/adelais/standard_led/avr/rev1/info.json6
-rw-r--r--keyboards/mechlovin/delphine/config.h5
-rw-r--r--keyboards/mechlovin/delphine/info.json4
-rw-r--r--keyboards/mechlovin/delphine/mono_led/config.h4
-rw-r--r--keyboards/mechlovin/delphine/mono_led/info.json6
-rw-r--r--keyboards/mechlovin/delphine/rgb_led/config.h3
-rw-r--r--keyboards/mechlovin/delphine/rgb_led/info.json6
-rw-r--r--keyboards/mechlovin/foundation/config.h80
-rw-r--r--keyboards/mechlovin/foundation/foundation.c17
-rw-r--r--keyboards/mechlovin/foundation/foundation.h60
-rw-r--r--keyboards/mechlovin/foundation/info.json23
-rw-r--r--keyboards/mechlovin/foundation/keymaps/default/keymap.c40
-rw-r--r--keyboards/mechlovin/foundation/keymaps/default/readme.md1
-rw-r--r--keyboards/mechlovin/foundation/keymaps/default/rules.mk1
-rw-r--r--keyboards/mechlovin/foundation/keymaps/via/keymap.c59
-rw-r--r--keyboards/mechlovin/foundation/keymaps/via/rules.mk2
-rw-r--r--keyboards/mechlovin/foundation/readme.md26
-rw-r--r--keyboards/mechlovin/foundation/rules.mk20
-rw-r--r--keyboards/mechlovin/hannah60rgb/config.h4
-rw-r--r--keyboards/mechlovin/hannah60rgb/rev1/config.h4
-rw-r--r--keyboards/mechlovin/hannah60rgb/rev1/info.json8
-rw-r--r--keyboards/mechlovin/hannah60rgb/rev2/config.h4
-rw-r--r--keyboards/mechlovin/hannah60rgb/rev2/info.json8
-rw-r--r--keyboards/mechlovin/hannah65/config.h4
-rw-r--r--keyboards/mechlovin/hannah65/rev1/haus/info.json (renamed from keyboards/mechlovin/hannah65/rev1/info.json)8
-rw-r--r--keyboards/mechlovin/hannah910/config.h6
-rw-r--r--keyboards/mechlovin/hannah910/hannah910.c6
-rw-r--r--keyboards/mechlovin/hannah910/rev1/config.h3
-rw-r--r--keyboards/mechlovin/hannah910/rev1/info.json6
-rw-r--r--keyboards/mechlovin/hannah910/rev2/config.h3
-rw-r--r--keyboards/mechlovin/hannah910/rev2/info.json8
-rw-r--r--keyboards/mechlovin/hannah910/rev3/config.h3
-rw-r--r--keyboards/mechlovin/hannah910/rev3/info.json8
-rw-r--r--keyboards/mechlovin/hex4b/config.h5
-rw-r--r--keyboards/mechlovin/hex4b/info.json6
-rw-r--r--keyboards/mechlovin/hex4b/keymaps/nazzer/keymap.c28
-rw-r--r--keyboards/mechlovin/hex4b/rev1/config.h5
-rw-r--r--keyboards/mechlovin/hex4b/rev1/info.json6
-rw-r--r--keyboards/mechlovin/hex4b/rev2/config.h7
-rw-r--r--keyboards/mechlovin/hex4b/rev2/info.json6
-rw-r--r--keyboards/mechlovin/hex4b/rev2/readme.md2
-rw-r--r--keyboards/mechlovin/hex6c/config.h8
-rw-r--r--keyboards/mechlovin/hex6c/info.json8
-rw-r--r--keyboards/mechlovin/infinity87/config.h5
-rw-r--r--keyboards/mechlovin/infinity87/infinity87.h16
-rw-r--r--keyboards/mechlovin/infinity87/rev1/rev1.h8
-rw-r--r--keyboards/mechlovin/infinity87/rev1/rogue87/info.json193
-rw-r--r--keyboards/mechlovin/infinity87/rev1/rogue87/rogue87.h34
-rw-r--r--keyboards/mechlovin/infinity87/rev1/rouge87/info.json197
-rw-r--r--keyboards/mechlovin/infinity87/rev1/rouge87/rouge87.h35
-rw-r--r--keyboards/mechlovin/infinity87/rev1/standard/config.h4
-rw-r--r--keyboards/mechlovin/infinity87/rev1/standard/info.json203
-rw-r--r--keyboards/mechlovin/infinity87/rev2/config.h5
-rw-r--r--keyboards/mechlovin/infinity87/rev2/info.json203
-rw-r--r--keyboards/mechlovin/infinity87/rgb_rev1/config.h4
-rw-r--r--keyboards/mechlovin/infinity87/rgb_rev1/info.json203
-rw-r--r--keyboards/mechlovin/infinity875/config.h6
-rw-r--r--keyboards/mechlovin/infinity875/info.json6
-rw-r--r--keyboards/mechlovin/infinity875/readme.md2
-rw-r--r--keyboards/mechlovin/infinity88/config.h7
-rw-r--r--keyboards/mechlovin/infinity88/info.json8
-rw-r--r--keyboards/mechlovin/infinityce/config.h6
-rw-r--r--keyboards/mechlovin/infinityce/info.json6
-rw-r--r--keyboards/mechlovin/jay60/config.h8
-rw-r--r--keyboards/mechlovin/jay60/info.json6
-rw-r--r--keyboards/mechlovin/jay60/readme.md2
-rw-r--r--keyboards/mechlovin/kanu/config.h8
-rw-r--r--keyboards/mechlovin/kanu/info.json6
-rw-r--r--keyboards/mechlovin/kay60/config.h9
-rw-r--r--keyboards/mechlovin/kay60/info.json8
-rw-r--r--keyboards/mechlovin/kay60/keymaps/default/keymap.c4
-rw-r--r--keyboards/mechlovin/kay60/keymaps/via/keymap.c4
-rw-r--r--keyboards/mechlovin/kay60/readme.md2
-rw-r--r--keyboards/mechlovin/kay65/config.h7
-rw-r--r--keyboards/mechlovin/kay65/info.json8
-rw-r--r--keyboards/mechlovin/kay65/readme.md2
-rw-r--r--keyboards/mechlovin/mechlovin9/config.h4
-rw-r--r--keyboards/mechlovin/mechlovin9/info.json5
-rw-r--r--keyboards/mechlovin/mechlovin9/rev1/config.h4
-rw-r--r--keyboards/mechlovin/mechlovin9/rev1/info.json7
-rw-r--r--keyboards/mechlovin/mechlovin9/rev2/config.h4
-rw-r--r--keyboards/mechlovin/mechlovin9/rev2/info.json7
-rw-r--r--keyboards/mechlovin/olly/bb/config.h8
-rw-r--r--keyboards/mechlovin/olly/bb/info.json8
-rw-r--r--keyboards/mechlovin/olly/bb/readme.md2
-rw-r--r--keyboards/mechlovin/olly/jf/config.h8
-rw-r--r--keyboards/mechlovin/olly/jf/info.json8
-rw-r--r--keyboards/mechlovin/olly/jf/readme.md2
-rw-r--r--keyboards/mechlovin/pisces/config.h7
-rw-r--r--keyboards/mechlovin/pisces/info.json8
-rw-r--r--keyboards/mechlovin/serratus/config.h6
-rw-r--r--keyboards/mechlovin/serratus/info.json8
-rw-r--r--keyboards/mechlovin/th1800/config.h8
-rw-r--r--keyboards/mechlovin/th1800/info.json6
-rw-r--r--keyboards/mechlovin/tmkl/config.h7
-rw-r--r--keyboards/mechlovin/tmkl/info.json8
-rw-r--r--keyboards/mechlovin/zed60/config.h78
-rw-r--r--keyboards/mechlovin/zed60/halconf.h (renamed from keyboards/mechlovin/infinity87/rev1/rogue87/config.h)9
-rw-r--r--keyboards/mechlovin/zed60/info.json156
-rw-r--r--keyboards/mechlovin/zed60/keymaps/default/keymap.c36
-rw-r--r--keyboards/mechlovin/zed60/keymaps/default/readme.md1
-rw-r--r--keyboards/mechlovin/zed60/keymaps/via/keymap.c50
-rw-r--r--keyboards/mechlovin/zed60/keymaps/via/readme.md1
-rw-r--r--keyboards/mechlovin/zed60/keymaps/via/rules.mk1
-rw-r--r--keyboards/mechlovin/zed60/mcuconf.h (renamed from keyboards/mechlovin/infinity87/rev1/rouge87/config.h)10
-rw-r--r--keyboards/mechlovin/zed60/readme.md27
-rw-r--r--keyboards/mechlovin/zed60/rules.mk20
-rw-r--r--keyboards/mechlovin/zed60/zed60.c17
-rw-r--r--keyboards/mechlovin/zed60/zed60.h66
-rw-r--r--keyboards/mechlovin/zed65/config.h108
-rw-r--r--keyboards/mechlovin/zed65/readme.md25
-rw-r--r--keyboards/mechlovin/zed65/retro66/config.h33
-rw-r--r--keyboards/mechlovin/zed65/retro66/info.json19
-rw-r--r--keyboards/mechlovin/zed65/retro66/keymaps/default/keymap.c35
-rw-r--r--keyboards/mechlovin/zed65/retro66/keymaps/default/readme.md1
-rw-r--r--keyboards/mechlovin/zed65/retro66/keymaps/default/rules.mk1
-rw-r--r--keyboards/mechlovin/zed65/retro66/keymaps/via/keymap.c61
-rw-r--r--keyboards/mechlovin/zed65/retro66/keymaps/via/readme.md1
-rw-r--r--keyboards/mechlovin/zed65/retro66/keymaps/via/rules.mk3
-rw-r--r--keyboards/mechlovin/zed65/retro66/readme.md27
-rw-r--r--keyboards/mechlovin/zed65/retro66/retro66.c (renamed from keyboards/mechlovin/hannah65/rev1/haus/config.h)7
-rw-r--r--keyboards/mechlovin/zed65/retro66/retro66.h48
-rw-r--r--keyboards/mechlovin/zed65/retro66/rules.mk1
-rw-r--r--keyboards/mechlovin/zed65/rules.mk21
-rw-r--r--keyboards/mechlovin/zed65/wearhaus66/config.h57
-rw-r--r--keyboards/mechlovin/zed65/wearhaus66/halconf.h22
-rw-r--r--keyboards/mechlovin/zed65/wearhaus66/info.json91
-rw-r--r--keyboards/mechlovin/zed65/wearhaus66/keymaps/default/keymap.c45
-rw-r--r--keyboards/mechlovin/zed65/wearhaus66/keymaps/default/readme.md1
-rw-r--r--keyboards/mechlovin/zed65/wearhaus66/keymaps/default/rules.mk2
-rw-r--r--keyboards/mechlovin/zed65/wearhaus66/keymaps/via/keymap.c70
-rw-r--r--keyboards/mechlovin/zed65/wearhaus66/keymaps/via/readme.md1
-rw-r--r--keyboards/mechlovin/zed65/wearhaus66/keymaps/via/rules.mk2
-rw-r--r--keyboards/mechlovin/zed65/wearhaus66/readme.md27
-rw-r--r--keyboards/mechlovin/zed65/wearhaus66/rules.mk2
-rw-r--r--keyboards/mechlovin/zed65/wearhaus66/wearhaus66.c24
-rw-r--r--keyboards/mechlovin/zed65/wearhaus66/wearhaus66.h62
-rw-r--r--keyboards/mechlovin/zed65/zed65.c18
-rw-r--r--keyboards/mechlovin/zed65/zed65.h26
163 files changed, 2594 insertions, 907 deletions
diff --git a/keyboards/mechlovin/adelais/config.h b/keyboards/mechlovin/adelais/config.h
index 035ffa8032..08df109685 100644
--- a/keyboards/mechlovin/adelais/config.h
+++ b/keyboards/mechlovin/adelais/config.h
@@ -19,11 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4D4C // "ML"
-#define DEVICE_VER 0x0001
-#define MANUFACTURER Team.Mechlovin
-
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 15 \ No newline at end of file
diff --git a/keyboards/mechlovin/adelais/info.json b/keyboards/mechlovin/adelais/info.json
index 7a858277e7..a583373c13 100644
--- a/keyboards/mechlovin/adelais/info.json
+++ b/keyboards/mechlovin/adelais/info.json
@@ -1,7 +1,11 @@
{
- "keyboard_name": "Adelais",
+ "manufacturer": "Team.Mechlovin",
"url": "",
"maintainer": "mechlovin",
+ "usb": {
+ "vid": "0x4D4C",
+ "device_version": "0.0.1"
+ },
"layout_aliases": {
"LAYOUT_all": "LAYOUT_alice_split_bs"
},
diff --git a/keyboards/mechlovin/adelais/keymaps/brandonschlack/keymap.c b/keyboards/mechlovin/adelais/keymaps/brandonschlack/keymap.c
index fb2d43ca96..7c2b259063 100644
--- a/keyboards/mechlovin/adelais/keymaps/brandonschlack/keymap.c
+++ b/keyboards/mechlovin/adelais/keymaps/brandonschlack/keymap.c
@@ -197,7 +197,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
TG_BASE, QM_MAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
TG_REDR, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
TG_MAIL, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, \
- _______, RGB_LYR, RGB_THM, _______, EEP_RST, RESET, RESET, _______, _______, _______, _______, _______, _______, _______, \
+ _______, RGB_LYR, RGB_THM, _______, EEP_RST, QK_BOOT, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______ \
)
diff --git a/keyboards/mechlovin/adelais/keymaps/default/keymap.c b/keyboards/mechlovin/adelais/keymaps/default/keymap.c
index 2a38663ed2..bb514bf15b 100644
--- a/keyboards/mechlovin/adelais/keymaps/default/keymap.c
+++ b/keyboards/mechlovin/adelais/keymaps/default/keymap.c
@@ -22,7 +22,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_SPC, 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_BSLS, MO(1), KC_RSFT, KC_UP,
KC_LCTL, KC_LALT, KC_SPC, MO(2), KC_SPC, KC_RALT, KC_RCTL ),
- [0] = LAYOUT_all(
+ [1] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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] = LAYOUT_all(
+ QK_BOOT, KC_TRNS, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PAST, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_P0, KC_PDOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
+ [3] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@@ -35,19 +47,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
bool encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) {
if (clockwise) {
- tap_code(KC_VOLU);
- } else {
tap_code(KC_VOLD);
+ } else {
+ tap_code(KC_VOLU);
}
- }
- else if (index == 1) {
+ } else if (index == 1) {
if (clockwise) {
tap_code(KC_LEFT);
} else {
tap_code(KC_RGHT);
}
- }
- else if (index == 2) {
+ } else if (index == 2) {
if (clockwise) {
tap_code(KC_UP);
} else {
@@ -57,4 +67,46 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
return true;
}
- #endif
+#endif
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ if (record->event.pressed) {
+ switch (keycode) {
+#ifdef RGB_MATRIX_ENABLE
+ case KC_F13: // toggle rgb matrix
+ rgb_matrix_toggle();
+ return false;
+ case KC_F14:
+ rgb_matrix_step();
+ return false;
+ case KC_F15:
+ rgb_matrix_increase_speed();
+ return false;
+ case KC_F16:
+ rgb_matrix_decrease_speed();
+ return false;
+ case KC_F17:
+ rgb_matrix_increase_hue();
+ return false;
+ case KC_F18:
+ rgb_matrix_decrease_hue();
+ return false;
+ case KC_F19:
+ rgb_matrix_increase_sat();
+ return false;
+ case KC_F20:
+ rgb_matrix_decrease_sat();
+ return false;
+ case KC_F21:
+ rgb_matrix_increase_val();
+ return false;
+ case KC_F22:
+ rgb_matrix_decrease_val();
+ return false;
+#endif
+ default:
+ break;
+ }
+ }
+ return true;
+}
diff --git a/keyboards/mechlovin/adelais/keymaps/via/keymap.c b/keyboards/mechlovin/adelais/keymaps/via/keymap.c
index 6ab566e1c3..c83d398f64 100644
--- a/keyboards/mechlovin/adelais/keymaps/via/keymap.c
+++ b/keyboards/mechlovin/adelais/keymaps/via/keymap.c
@@ -15,6 +15,20 @@
*/
#include QMK_KEYBOARD_H
+enum my_keycodes {
+ BL_TOG = USER00,
+ BL_EFFECT = USER01,
+ BL_ISPD = USER02,
+ BL_DSPD = USER03,
+ BL_IHUE = USER04,
+ BL_DHUE = USER05,
+ BL_ISAT = USER06,
+ BL_DSAT = USER07,
+ BL_IVAL = USER08,
+ BL_DVAL = USER09
+};
+
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
KC_SPC, 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_DEL,
@@ -29,11 +43,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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] = LAYOUT_all(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
+ QK_BOOT, KC_TRNS, BL_TOG, BL_EFFECT, BL_ISPD, BL_DSPD, BL_IHUE, BL_DHUE, BL_ISAT, BL_DSAT, BL_IVAL, BL_DVAL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PAST, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_P0, KC_PDOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
[3] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@@ -51,15 +65,13 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
} else {
tap_code(KC_VOLU);
}
- }
- else if (index == 1) {
+ } else if (index == 1) {
if (clockwise) {
tap_code(KC_LEFT);
} else {
tap_code(KC_RGHT);
}
- }
- else if (index == 2) {
+ } else if (index == 2) {
if (clockwise) {
tap_code(KC_UP);
} else {
@@ -69,4 +81,46 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
return true;
}
- #endif
+#endif
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ if (record->event.pressed) {
+ switch (keycode) {
+#ifdef RGB_MATRIX_ENABLE
+ case BL_TOG: // toggle rgb matrix
+ rgb_matrix_toggle();
+ return false;
+ case BL_EFFECT:
+ rgb_matrix_step();
+ return false;
+ case BL_ISPD:
+ rgb_matrix_increase_speed();
+ return false;
+ case BL_DSPD:
+ rgb_matrix_decrease_speed();
+ return false;
+ case BL_IHUE:
+ rgb_matrix_increase_hue();
+ return false;
+ case BL_DHUE:
+ rgb_matrix_decrease_hue();
+ return false;
+ case BL_ISAT:
+ rgb_matrix_increase_sat();
+ return false;
+ case BL_DSAT:
+ rgb_matrix_decrease_sat();
+ return false;
+ case BL_IVAL:
+ rgb_matrix_increase_val();
+ return false;
+ case BL_DVAL:
+ rgb_matrix_decrease_val();
+ return false;
+#endif
+ default:
+ break;
+ }
+ }
+ return true;
+}
diff --git a/keyboards/mechlovin/adelais/rgb_led/rev1/config.h b/keyboards/mechlovin/adelais/rgb_led/rev1/config.h
index c0cae1600b..7f151ae09a 100644
--- a/keyboards/mechlovin/adelais/rgb_led/rev1/config.h
+++ b/keyboards/mechlovin/adelais/rgb_led/rev1/config.h
@@ -1,11 +1,7 @@
#pragma once
-#define PRODUCT_ID 0xAEC1
-#define PRODUCT Adelais En Ciel
-
#define MATRIX_ROW_PINS { B1, A0, C13, A1, A2}
#define MATRIX_COL_PINS { A10, A9, A8, B15, B14, B13, B12, B11, B10, B8, B4, B5, B3, C14, A15 }
-#define UNUSED_PINS
#define RGB_DI_PIN A7
#define DRIVER_LED_TOTAL 91
diff --git a/keyboards/mechlovin/adelais/rgb_led/rev1/info.json b/keyboards/mechlovin/adelais/rgb_led/rev1/info.json
new file mode 100644
index 0000000000..92ee67be74
--- /dev/null
+++ b/keyboards/mechlovin/adelais/rgb_led/rev1/info.json
@@ -0,0 +1,6 @@
+{
+ "keyboard_name": "Adelais En Ciel",
+ "usb": {
+ "pid": "0xAEC1"
+ }
+}
diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/config.h b/keyboards/mechlovin/adelais/rgb_led/rev2/config.h
index cd290cdcd1..dbeb73cda2 100644
--- a/keyboards/mechlovin/adelais/rgb_led/rev2/config.h
+++ b/keyboards/mechlovin/adelais/rgb_led/rev2/config.h
@@ -1,8 +1,5 @@
#pragma once
-#define PRODUCT_ID 0xAEC2
-#define PRODUCT Adelais En Ciel Rev2
-
#define MATRIX_ROW_PINS { B1, A0, C13, A1, A2}
#define MATRIX_COL_PINS { A10, A9, A8, B15, B14, B13, B12, B11, B10, B8, B4, B5, B3, C14, A7 }
diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/info.json b/keyboards/mechlovin/adelais/rgb_led/rev2/info.json
new file mode 100644
index 0000000000..8af90a2c55
--- /dev/null
+++ b/keyboards/mechlovin/adelais/rgb_led/rev2/info.json
@@ -0,0 +1,6 @@
+{
+ "keyboard_name": "Adelais En Ciel Rev2",
+ "usb": {
+ "pid": "0xAEC2"
+ }
+}
diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/config.h b/keyboards/mechlovin/adelais/rgb_led/rev3/config.h
index c0817d6062..e16d5f2ce5 100644
--- a/keyboards/mechlovin/adelais/rgb_led/rev3/config.h
+++ b/keyboards/mechlovin/adelais/rgb_led/rev3/config.h
@@ -17,12 +17,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define PRODUCT_ID 0xAEC3
-#define PRODUCT Adelais En Ciel Rev3
-
#define MATRIX_ROW_PINS { A4, A3, C13, A1, A2}
-#define MATRIX_COL_PINS { B10, B11, B2, B1, B0, A6, A5, A14, A13, A15, B3, B4, B5, B8, B9 }
+#define MATRIX_COL_PINS { B10, B11, B2, B1, B0, A6, A5, A10, A9, A15, B3, B4, B5, B8, B9 }
+#ifdef RGBLIGHT_ENABLE
#define RGB_DI_PIN A7
#define WS2812_SPI SPID1 // default: SPID1
#define WS2812_SPI_MOSI_PAL_MODE 5 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5
@@ -40,7 +38,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
+#endif
+#ifdef RGB_MATRIX_ENABLE
//rgb matrix setting
// This is a 7-bit address, that gets left-shifted and bit 0
// set to 0 for write, 1 for read (as per I2C protocol)
@@ -52,13 +52,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DRIVER_ADDR_1 0b0110010
#define DRIVER_COUNT 1
#define DRIVER_LED_TOTAL 66
+
#define RGB_MATRIX_KEYPRESSES // reacts to keypresses
#define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
-#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
#define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
+#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_PINWHEEL // Sets the default mode, if none has been set
#define ENABLE_RGB_MATRIX_ALPHAS_MODS
@@ -108,12 +109,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGB_MATRIX_DISABLE_KEYCODES
+#define I2C1_CLOCK_SPEED 400000
+#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2
+
+#endif
+
+#ifdef ENCODER_ENABLE
#define ENCODERS_PAD_A { B12 }
#define ENCODERS_PAD_B { B13 }
#define ENCODER_RESOLUTION 4
-
#define TAP_CODE_DELAY 10
-
+#endif
#define LED_NUM_LOCK_PIN A0
#define LED_CAPS_LOCK_PIN C14
diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/halconf.h b/keyboards/mechlovin/adelais/rgb_led/rev3/halconf.h
index d001829d03..a97c4bbc21 100644
--- a/keyboards/mechlovin/adelais/rgb_led/rev3/halconf.h
+++ b/keyboards/mechlovin/adelais/rgb_led/rev3/halconf.h
@@ -18,9 +18,7 @@
#define HAL_USE_I2C TRUE
-#define PAL_USE_CALLBACKS FALSE
-
-#define PAL_USE_WAIT FALSE
+#define HAL_USE_SPI TRUE
#include_next <halconf.h>
diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/info.json b/keyboards/mechlovin/adelais/rgb_led/rev3/info.json
new file mode 100644
index 0000000000..2f963ec895
--- /dev/null
+++ b/keyboards/mechlovin/adelais/rgb_led/rev3/info.json
@@ -0,0 +1,6 @@
+{
+ "keyboard_name": "Adelais En Ciel Rev3",
+ "usb": {
+ "pid": "0xAEC3"
+ }
+}
diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/mcuconf.h b/keyboards/mechlovin/adelais/rgb_led/rev3/mcuconf.h
index 20d2a82c27..aa5ea7335b 100644
--- a/keyboards/mechlovin/adelais/rgb_led/rev3/mcuconf.h
+++ b/keyboards/mechlovin/adelais/rgb_led/rev3/mcuconf.h
@@ -18,18 +18,8 @@
#include_next <mcuconf.h>
-#undef STM32_GPT_USE_TIM15
-#define STM32_GPT_USE_TIM15 FALSE
-
-#undef STM32_I2C_USE_I2C1
-#define STM32_I2C_USE_I2C1 TRUE
-
-#undef STM32_PWM_USE_TIM3
-#define STM32_PWM_USE_TIM3 FALSE
-
#undef STM32_SPI_USE_SPI1
#define STM32_SPI_USE_SPI1 TRUE
-#undef STM32_SPI_USE_SPI2
-#define STM32_SPI_USE_SPI2 FALSE
-
+#undef STM32_I2C_USE_I2C1
+#define STM32_I2C_USE_I2C1 TRUE \ No newline at end of file
diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c b/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c
index b20f897720..d9ea7993cf 100644
--- a/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c
+++ b/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c
@@ -94,8 +94,8 @@ led_config_t g_led_config = {
{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
{17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, NO_LED},
{32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, NO_LED, 44, NO_LED},
- {45, NO_LED, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58},
- {59, NO_LED, 60, NO_LED, 61, NO_LED, 62, NO_LED, 63, NO_LED, 64, NO_LED, NO_LED, NO_LED, 65},
+ {45, 0, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58},
+ {59, 16, 60, 31, 61, NO_LED, 62, NO_LED, 63, NO_LED, 64, NO_LED, NO_LED, NO_LED, 65},
}, {
//LED Index to Physical Positon
{0,0}, { 17, 0}, { 34, 0 }, { 51, 0 }, { 69, 0}, { 86, 0}, {100, 0}, {103, 0}, { 120, 0}, { 138, 0}, { 155, 0}, { 172, 0}, { 189, 0}, {207, 0}, {215, 0}, {224, 0},
@@ -120,47 +120,3 @@ __attribute__((weak)) void rgb_matrix_indicators_user(void) {
#endif
-
-bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
- switch(keycode) {
- #ifdef RGBLIGHT_ENABLE
- #ifdef RGB_MATRIX_ENABLE
- case KC_F13: // toggle rgb matrix
- rgb_matrix_toggle();
- return false;
- case KC_F14:
- rgb_matrix_step();
- return false;
- case KC_F15:
- rgb_matrix_increase_speed();
- return false;
- case KC_F16:
- rgb_matrix_decrease_speed();
- return false;
- case KC_F17:
- rgb_matrix_increase_hue();
- return false;
- case KC_F18:
- rgb_matrix_decrease_hue();
- return false;
- case KC_F19:
- rgb_matrix_increase_sat();
- return false;
- case KC_F20:
- rgb_matrix_decrease_sat();
- return false;
- case KC_F21:
- rgb_matrix_increase_val();
- return false;
- case KC_F22:
- rgb_matrix_decrease_val();
- return false;
- #endif
- #endif
- default:
- break;
- }
- }
- return true;
-} \ No newline at end of file
diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/rules.mk b/keyboards/mechlovin/adelais/rgb_led/rev3/rules.mk
index 904d20877b..3407a7b780 100644
--- a/keyboards/mechlovin/adelais/rgb_led/rev3/rules.mk
+++ b/keyboards/mechlovin/adelais/rgb_led/rev3/rules.mk
@@ -1,5 +1,19 @@
+# MCU name
+MCU = STM32F103
+
+# Bootloader selection
+BOOTLOADER = stm32duino
+
+# Build Options
+# change yes to no to disable
+#
RGB_MATRIX_ENABLE = yes
RGB_MATRIX_DRIVER = IS31FL3741
RGBLIGHT_ENABLE = yes
ENCODER_ENABLE = yes
WS2812_DRIVER = spi
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE \ No newline at end of file
diff --git a/keyboards/mechlovin/adelais/standard_led/arm/config.h b/keyboards/mechlovin/adelais/standard_led/arm/config.h
index 4377405fc6..72386fdc59 100644
--- a/keyboards/mechlovin/adelais/standard_led/arm/config.h
+++ b/keyboards/mechlovin/adelais/standard_led/arm/config.h
@@ -17,11 +17,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define PRODUCT Adelais
-
#define MATRIX_ROW_PINS { B1, A0, C13, A1, A2}
#define MATRIX_COL_PINS { A10, A9, A8, B15, B14, B13, B12, B11, B10, B8, B4, B5, B3, C14, A15 }
-#define UNUSED_PINS
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
diff --git a/keyboards/mechlovin/adelais/standard_led/arm/info.json b/keyboards/mechlovin/adelais/standard_led/arm/info.json
new file mode 100644
index 0000000000..68e7b3d144
--- /dev/null
+++ b/keyboards/mechlovin/adelais/standard_led/arm/info.json
@@ -0,0 +1,3 @@
+{
+ "keyboard_name": "Adelais"
+}
diff --git a/keyboards/mechlovin/adelais/standard_led/arm/rev2/config.h b/keyboards/mechlovin/adelais/standard_led/arm/rev2/config.h
deleted file mode 100644
index 7c2c63ea21..0000000000
--- a/keyboards/mechlovin/adelais/standard_led/arm/rev2/config.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-
-#define PRODUCT_ID 0xAD01 \ No newline at end of file
diff --git a/keyboards/mechlovin/adelais/standard_led/arm/rev2/info.json b/keyboards/mechlovin/adelais/standard_led/arm/rev2/info.json
new file mode 100644
index 0000000000..ce04dbb068
--- /dev/null
+++ b/keyboards/mechlovin/adelais/standard_led/arm/rev2/info.json
@@ -0,0 +1,5 @@
+{
+ "usb": {
+ "pid": "0xAD01"
+ }
+}
diff --git a/keyboards/mechlovin/adelais/standard_led/arm/rev3/config.h b/keyboards/mechlovin/adelais/standard_led/arm/rev3/config.h
index 4d56fedf05..69af2941a6 100644
--- a/keyboards/mechlovin/adelais/standard_led/arm/rev3/config.h
+++ b/keyboards/mechlovin/adelais/standard_led/arm/rev3/config.h
@@ -1,7 +1,5 @@
#pragma once
-#define PRODUCT_ID 0xAD02
-
#define ENCODERS_PAD_A { A6, A4, B7 }
#define ENCODERS_PAD_B { A5, A3, B6 }
#define ENCODER_RESOLUTION 4
diff --git a/keyboards/mechlovin/adelais/standard_led/arm/rev3/info.json b/keyboards/mechlovin/adelais/standard_led/arm/rev3/info.json
new file mode 100644
index 0000000000..f3b66e9eb2
--- /dev/null
+++ b/keyboards/mechlovin/adelais/standard_led/arm/rev3/info.json
@@ -0,0 +1,5 @@
+{
+ "usb": {
+ "pid": "0xAD02"
+ }
+}
diff --git a/keyboards/mechlovin/adelais/standard_led/arm/rev4/config.h b/keyboards/mechlovin/adelais/standard_led/arm/rev4/config.h
index ca793f1fec..70fa00220b 100644
--- a/keyboards/mechlovin/adelais/standard_led/arm/rev4/config.h
+++ b/keyboards/mechlovin/adelais/standard_led/arm/rev4/config.h
@@ -16,8 +16,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
-#define PRODUCT_ID 0xAD03
-
#define ENCODERS_PAD_A { A6, A4, B7 }
#define ENCODERS_PAD_B { A5, A3, B6 }
#define ENCODER_RESOLUTION 4
diff --git a/keyboards/mechlovin/adelais/standard_led/arm/rev4/info.json b/keyboards/mechlovin/adelais/standard_led/arm/rev4/info.json
new file mode 100644
index 0000000000..f4c096143b
--- /dev/null
+++ b/keyboards/mechlovin/adelais/standard_led/arm/rev4/info.json
@@ -0,0 +1,5 @@
+{
+ "usb": {
+ "pid": "0xAD03"
+ }
+}
diff --git a/keyboards/mechlovin/adelais/standard_led/avr/rev1/config.h b/keyboards/mechlovin/adelais/standard_led/avr/rev1/config.h
index 9093d262e4..31acc74b90 100644
--- a/keyboards/mechlovin/adelais/standard_led/avr/rev1/config.h
+++ b/keyboards/mechlovin/adelais/standard_led/avr/rev1/config.h
@@ -16,8 +16,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
-#define PRODUCT_ID 0xAD04
-#define PRODUCT Adelais AVR
/*
* Keyboard Matrix Assignments
*
@@ -29,7 +27,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4 }
-#define UNUSED_PINS
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION ROW2COL
diff --git a/keyboards/mechlovin/adelais/standard_led/avr/rev1/info.json b/keyboards/mechlovin/adelais/standard_led/avr/rev1/info.json
new file mode 100644
index 0000000000..d827607b81
--- /dev/null
+++ b/keyboards/mechlovin/adelais/standard_led/avr/rev1/info.json
@@ -0,0 +1,6 @@
+{
+ "keyboard_name": "Adelais AVR",
+ "usb": {
+ "pid": "0xAD04"
+ }
+}
diff --git a/keyboards/mechlovin/delphine/config.h b/keyboards/mechlovin/delphine/config.h
index a642f37f9b..7d50bb4615 100644
--- a/keyboards/mechlovin/delphine/config.h
+++ b/keyboards/mechlovin/delphine/config.h
@@ -19,11 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4D4C
-#define MANUFACTURER Mechlovin
-#define PRODUCT Mechlovin Delphine
-
/* key matrix size */
#define MATRIX_ROWS 6
#define MATRIX_COLS 4
diff --git a/keyboards/mechlovin/delphine/info.json b/keyboards/mechlovin/delphine/info.json
index 38ae0a3beb..a3fe9fb200 100644
--- a/keyboards/mechlovin/delphine/info.json
+++ b/keyboards/mechlovin/delphine/info.json
@@ -1,7 +1,11 @@
{
"keyboard_name": "Delphine",
+ "manufacturer": "Mechlovin",
"url": "",
"maintainer": "mechlovin",
+ "usb": {
+ "vid": "0x4D4C"
+ },
"layouts": {
"LAYOUT_ortho_6x4": {
"layout": [
diff --git a/keyboards/mechlovin/delphine/mono_led/config.h b/keyboards/mechlovin/delphine/mono_led/config.h
index ead627937c..36923bb968 100644
--- a/keyboards/mechlovin/delphine/mono_led/config.h
+++ b/keyboards/mechlovin/delphine/mono_led/config.h
@@ -1,10 +1,6 @@
#pragma once
-#define PRODUCT_ID 0xDEF1
-#define DEVICE_VER 0x0001
-
-
#ifdef BACKLIGHT_ENABLE
#define BACKLIGHT_PIN B6
// #define BACKLIGHT_BREATHING
diff --git a/keyboards/mechlovin/delphine/mono_led/info.json b/keyboards/mechlovin/delphine/mono_led/info.json
new file mode 100644
index 0000000000..2665906b80
--- /dev/null
+++ b/keyboards/mechlovin/delphine/mono_led/info.json
@@ -0,0 +1,6 @@
+{
+ "usb": {
+ "pid": "0xDEF1",
+ "device_version": "0.0.1"
+ }
+}
diff --git a/keyboards/mechlovin/delphine/rgb_led/config.h b/keyboards/mechlovin/delphine/rgb_led/config.h
index 0ed8721d23..0d5bfb57f9 100644
--- a/keyboards/mechlovin/delphine/rgb_led/config.h
+++ b/keyboards/mechlovin/delphine/rgb_led/config.h
@@ -1,8 +1,5 @@
#pragma once
-#define PRODUCT_ID 0xDEF2
-#define DEVICE_VER 0x0001
-
#ifdef RGBLIGHT_ENABLE
#define RGB_DI_PIN E2
#define RGBLED_NUM 13
diff --git a/keyboards/mechlovin/delphine/rgb_led/info.json b/keyboards/mechlovin/delphine/rgb_led/info.json
new file mode 100644
index 0000000000..0a8f1ab220
--- /dev/null
+++ b/keyboards/mechlovin/delphine/rgb_led/info.json
@@ -0,0 +1,6 @@
+{
+ "usb": {
+ "pid": "0xDEF2",
+ "device_version": "0.0.1"
+ }
+}
diff --git a/keyboards/mechlovin/foundation/config.h b/keyboards/mechlovin/foundation/config.h
new file mode 100644
index 0000000000..35145c440b
--- /dev/null
+++ b/keyboards/mechlovin/foundation/config.h
@@ -0,0 +1,80 @@
+/*
+Copyright 2022 Mechlovin' Studio
+
+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"
+
+#define MATRIX_ROW_PINS { B12, B13, B14, A8, A2 }
+#define MATRIX_COL_PINS { B11, B10, B2, B1, B0, A7, A6, A5, A4, A3, A15, B9, B8, B7, B6, B5, B4, B3}
+#define UNUSED_PINS
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 18
+
+/*
+ * 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)
+ *
+ */
+
+/* COL2ROW, ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+#define LED_PIN_ON_STATE 0
+#define LED_CAPS_LOCK_PIN A1
+//#define LED_COMPOSE_PIN B3
+//#define LED_KANA_PIN B4
+
+#define RGB_DI_PIN B15
+#ifdef RGB_DI_PIN
+# define RGBLED_NUM 22
+# 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
+
+// Encoder pins
+#define ENCODERS_PAD_A { C13 }
+#define ENCODERS_PAD_B { C14 }
+
+#define ENCODER_RESOLUTION 4
+#define TAP_CODE_DELAY 10 \ No newline at end of file
diff --git a/keyboards/mechlovin/foundation/foundation.c b/keyboards/mechlovin/foundation/foundation.c
new file mode 100644
index 0000000000..12d3e848d7
--- /dev/null
+++ b/keyboards/mechlovin/foundation/foundation.c
@@ -0,0 +1,17 @@
+/* Copyright 2022 Mechlovin' Studio
+ *
+ * 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 "foundation.h"
diff --git a/keyboards/mechlovin/foundation/foundation.h b/keyboards/mechlovin/foundation/foundation.h
new file mode 100644
index 0000000000..d9d317deb7
--- /dev/null
+++ b/keyboards/mechlovin/foundation/foundation.h
@@ -0,0 +1,60 @@
+/* Copyright 2022 Mechlovin' Studio
+ *
+ * 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_all( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K2F, K0F, K0G, K0H, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3G, \
+ K40, K41, K42, K43, K47, K4B, K4C, K4D, K4E, K4F, K4G, K4H \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, KC_NO, KC_NO }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, K3G, KC_NO }, \
+ { K40, K41, K42, K43, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, KC_NO, K4B, K4C, K4D, K4E, K4F, K4G, K4H }, \
+}
+
+#define LAYOUT_tkl_nofrow_ansi( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \
+ K30, K31, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3G, \
+ K40, K41, K42, K43, K47, K4B, K4C, K4D, K4E, K4F, K4G, K4H \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E, KC_NO, KC_NO, KC_NO }, \
+ { K30, K31, KC_NO, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, K3G, KC_NO }, \
+ { K40, K41, K42, K43, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, KC_NO, K4B, K4C, K4D, K4E, K4F, K4G, K4H }, \
+}
+
+#define LAYOUT_tkl_nofrow_iso( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, K1G, K1H, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3G, \
+ K40, K41, K42, K43, K47, K4B, K4C, K4D, K4E, K4F, K4G, K4H \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, K1F, K1G, K1H }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, KC_NO, KC_NO, KC_NO }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, K3G, KC_NO }, \
+ { K40, K41, K42, K43, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, KC_NO, K4B, K4C, K4D, K4E, K4F, K4G, K4H }, \
+}
diff --git a/keyboards/mechlovin/foundation/info.json b/keyboards/mechlovin/foundation/info.json
new file mode 100644
index 0000000000..aa4148a40a
--- /dev/null
+++ b/keyboards/mechlovin/foundation/info.json
@@ -0,0 +1,23 @@
+{
+ "keyboard_name": "Foundation FRL",
+ "manufacturer": "Mechlovin Studio",
+ "url": "",
+ "maintainer": "Protozoa",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0x0180",
+ "device_version": "0.0.2"
+ },
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [{"label":"0,0", "x":0.5, "y":0}, {"label":"0,1", "x":2.25, "y":0}, {"label":"0,2", "x":3.25, "y":0}, {"label":"0,3", "x":4.25, "y":0}, {"label":"0,4", "x":5.25, "y":0}, {"label":"0,5", "x":6.25, "y":0}, {"label":"0,6", "x":7.25, "y":0}, {"label":"0,7", "x":8.25, "y":0}, {"label":"0,8", "x":9.25, "y":0}, {"label":"0,9", "x":10.25, "y":0}, {"label":"0,10", "x":11.25, "y":0}, {"label":"0,11", "x":12.25, "y":0}, {"label":"0,12", "x":13.25, "y":0}, {"label":"0,13", "x":14.25, "y":0}, {"label":"0,14", "x":15.25, "y":0}, {"label":"2,15", "x":16.25, "y":0}, {"label":"0,15", "x":17.5, "y":0}, {"label":"0,16", "x":18.5, "y":0}, {"label":"0,17", "x":19.5, "y":0}, {"label":"1,0", "x":0.5, "y":1}, {"label":"1,1", "x":2.25, "y":1, "w":1.5}, {"label":"1,2", "x":3.75, "y":1}, {"label":"1,3", "x":4.75, "y":1}, {"label":"1,4", "x":5.75, "y":1}, {"label":"1,5", "x":6.75, "y":1}, {"label":"1,6", "x":7.75, "y":1}, {"label":"1,7", "x":8.75, "y":1}, {"label":"1,8", "x":9.75, "y":1}, {"label":"1,9", "x":10.75, "y":1}, {"label":"1,10", "x":11.75, "y":1}, {"label":"1,11", "x":12.75, "y":1}, {"label":"1,12", "x":13.75, "y":1}, {"label":"1,13", "x":14.75, "y":1}, {"label":"1,14", "x":15.75, "y":1, "w":1.5}, {"label":"1,15", "x":17.5, "y":1}, {"label":"1,16", "x":18.5, "y":1}, {"label":"1,17", "x":19.5, "y":1}, {"label":"2,0", "x":0.5, "y":2}, {"label":"2,1", "x":2.25, "y":2, "w":1.75}, {"label":"2,2", "x":4, "y":2}, {"label":"2,3", "x":5, "y":2}, {"label":"2,4", "x":6, "y":2}, {"label":"2,5", "x":7, "y":2}, {"label":"2,6", "x":8, "y":2}, {"label":"2,7", "x":9, "y":2}, {"label":"2,8", "x":10, "y":2}, {"label":"2,9", "x":11, "y":2}, {"label":"2,10", "x":12, "y":2}, {"label":"2,11", "x":13, "y":2}, {"label":"2,12", "x":14, "y":2}, {"label":"2,13", "x":15, "y":2}, {"label":"2,14", "x":16, "y":2, "w":1.25}, {"label":"3,0", "x":0.5, "y":3}, {"label":"3,1", "x":2.25, "y":3, "w":1.25}, {"label":"3,2", "x":3.5, "y":3}, {"label":"3,3", "x":4.5, "y":3}, {"label":"3,4", "x":5.5, "y":3}, {"label":"3,5", "x":6.5, "y":3}, {"label":"3,6", "x":7.5, "y":3}, {"label":"3,7", "x":8.5, "y":3}, {"label":"3,8", "x":9.5, "y":3}, {"label":"3,9", "x":10.5, "y":3}, {"label":"3,10", "x":11.5, "y":3}, {"label":"3,11", "x":12.5, "y":3}, {"label":"3,12", "x":13.5, "y":3}, {"label":"3,13", "x":14.5, "y":3, "w":1.75}, {"label":"3,14", "x":16.25, "y":3}, {"label":"3,16", "x":18.5, "y":3}, {"label":"4,0", "x":0.5, "y":4}, {"label":"4,1", "x":2.25, "y":4, "w":1.25}, {"label":"4,2", "x":3.5, "y":4, "w":1.25}, {"label":"4,3", "x":4.75, "y":4, "w":1.25}, {"label":"4,7", "x":6, "y":4, "w":6.25}, {"label":"4,11", "x":12.25, "y":4, "w":1.25}, {"label":"4,12", "x":13.5, "y":4, "w":1.25}, {"label":"4,13", "x":14.75, "y":4, "w":1.25}, {"label":"4,14", "x":16, "y":4, "w":1.25}, {"label":"4,15", "x":17.5, "y":4}, {"label":"4,16", "x":18.5, "y":4}, {"label":"4,17", "x":19.5, "y":4}]
+ },
+ "LAYOUT_tkl_nofrow_ansi": {
+ "layout": [{"label":"0,0", "x":0.5, "y":0}, {"label":"0,1", "x":2.25, "y":0}, {"label":"0,2", "x":3.25, "y":0}, {"label":"0,3", "x":4.25, "y":0}, {"label":"0,4", "x":5.25, "y":0}, {"label":"0,5", "x":6.25, "y":0}, {"label":"0,6", "x":7.25, "y":0}, {"label":"0,7", "x":8.25, "y":0}, {"label":"0,8", "x":9.25, "y":0}, {"label":"0,9", "x":10.25, "y":0}, {"label":"0,10", "x":11.25, "y":0}, {"label":"0,11", "x":12.25, "y":0}, {"label":"0,12", "x":13.25, "y":0}, {"label":"0,13", "x":14.25, "y":0}, {"label":"0,14", "x":15.25, "y":0, "w":2}, {"label":"0,15", "x":17.5, "y":0}, {"label":"0,16", "x":18.5, "y":0}, {"label":"0,17", "x":19.5, "y":0}, {"label":"1,0", "x":0.5, "y":1}, {"label":"1,1", "x":2.25, "y":1, "w":1.5}, {"label":"1,2", "x":3.75, "y":1}, {"label":"1,3", "x":4.75, "y":1}, {"label":"1,4", "x":5.75, "y":1}, {"label":"1,5", "x":6.75, "y":1}, {"label":"1,6", "x":7.75, "y":1}, {"label":"1,7", "x":8.75, "y":1}, {"label":"1,8", "x":9.75, "y":1}, {"label":"1,9", "x":10.75, "y":1}, {"label":"1,10", "x":11.75, "y":1}, {"label":"1,11", "x":12.75, "y":1}, {"label":"1,12", "x":13.75, "y":1}, {"label":"1,13", "x":14.75, "y":1}, {"label":"1,14", "x":15.75, "y":1, "w":1.5}, {"label":"1,15", "x":17.5, "y":1}, {"label":"1,16", "x":18.5, "y":1}, {"label":"1,17", "x":19.5, "y":1}, {"label":"2,0", "x":0.5, "y":2}, {"label":"2,1", "x":2.25, "y":2, "w":1.75}, {"label":"2,2", "x":4, "y":2}, {"label":"2,3", "x":5, "y":2}, {"label":"2,4", "x":6, "y":2}, {"label":"2,5", "x":7, "y":2}, {"label":"2,6", "x":8, "y":2}, {"label":"2,7", "x":9, "y":2}, {"label":"2,8", "x":10, "y":2}, {"label":"2,9", "x":11, "y":2}, {"label":"2,10", "x":12, "y":2}, {"label":"2,11", "x":13, "y":2}, {"label":"2,12", "x":14, "y":2}, {"label":"2,14", "x":15, "y":2, "w":2.25}, {"label":"3,0", "x":0.5, "y":3}, {"label":"3,1", "x":2.25, "y":3, "w":2.25}, {"label":"3,3", "x":4.5, "y":3}, {"label":"3,4", "x":5.5, "y":3}, {"label":"3,5", "x":6.5, "y":3}, {"label":"3,6", "x":7.5, "y":3}, {"label":"3,7", "x":8.5, "y":3}, {"label":"3,8", "x":9.5, "y":3}, {"label":"3,9", "x":10.5, "y":3}, {"label":"3,10", "x":11.5, "y":3}, {"label":"3,11", "x":12.5, "y":3}, {"label":"3,12", "x":13.5, "y":3}, {"label":"3,13", "x":14.5, "y":3, "w":2.75}, {"label":"3,16", "x":18.5, "y":3}, {"label":"4,0", "x":0.5, "y":4}, {"label":"4,1", "x":2.25, "y":4, "w":1.25}, {"label":"4,2", "x":3.5, "y":4, "w":1.25}, {"label":"4,3", "x":4.75, "y":4, "w":1.25}, {"label":"4,7", "x":6, "y":4, "w":6.25}, {"label":"4,11", "x":12.25, "y":4, "w":1.25}, {"label":"4,12", "x":13.5, "y":4, "w":1.25}, {"label":"4,13", "x":14.75, "y":4, "w":1.25}, {"label":"4,14", "x":16, "y":4, "w":1.25}, {"label":"4,15", "x":17.5, "y":4}, {"label":"4,16", "x":18.5, "y":4}, {"label":"4,17", "x":19.5, "y":4}]
+ },
+ "LAYOUT_tkl_nofrow_iso": {
+ "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1.75, "y":0}, {"label":"0,2", "x":2.75, "y":0}, {"label":"0,3", "x":3.75, "y":0}, {"label":"0,4", "x":4.75, "y":0}, {"label":"0,5", "x":5.75, "y":0}, {"label":"0,6", "x":6.75, "y":0}, {"label":"0,7", "x":7.75, "y":0}, {"label":"0,8", "x":8.75, "y":0}, {"label":"0,9", "x":9.75, "y":0}, {"label":"0,10", "x":10.75, "y":0}, {"label":"0,11", "x":11.75, "y":0}, {"label":"0,12", "x":12.75, "y":0}, {"label":"0,13", "x":13.75, "y":0}, {"label":"0,14", "x":14.75, "y":0, "w":2}, {"label":"0,15", "x":17, "y":0}, {"label":"0,16", "x":18, "y":0}, {"label":"0,17", "x":19, "y":0}, {"label":"1,0", "x":0, "y":1}, {"label":"1,1", "x":1.75, "y":1, "w":1.5}, {"label":"1,2", "x":3.25, "y":1}, {"label":"1,3", "x":4.25, "y":1}, {"label":"1,4", "x":5.25, "y":1}, {"label":"1,5", "x":6.25, "y":1}, {"label":"1,6", "x":7.25, "y":1}, {"label":"1,7", "x":8.25, "y":1}, {"label":"1,8", "x":9.25, "y":1}, {"label":"1,9", "x":10.25, "y":1}, {"label":"1,10", "x":11.25, "y":1}, {"label":"1,11", "x":12.25, "y":1}, {"label":"1,12", "x":13.25, "y":1}, {"label":"1,13", "x":14.25, "y":1}, {"label":"2,14", "x":15.5, "y":1, "w":1.25, "h":2}, {"label":"1,15", "x":17, "y":1}, {"label":"1,16", "x":18, "y":1}, {"label":"1,17", "x":19, "y":1}, {"label":"2,0", "x":0, "y":2}, {"label":"2,1", "x":1.75, "y":2, "w":1.75}, {"label":"2,2", "x":3.5, "y":2}, {"label":"2,3", "x":4.5, "y":2}, {"label":"2,4", "x":5.5, "y":2}, {"label":"2,5", "x":6.5, "y":2}, {"label":"2,6", "x":7.5, "y":2}, {"label":"2,7", "x":8.5, "y":2}, {"label":"2,8", "x":9.5, "y":2}, {"label":"2,9", "x":10.5, "y":2}, {"label":"2,10", "x":11.5, "y":2}, {"label":"2,11", "x":12.5, "y":2}, {"label":"2,12", "x":13.5, "y":2}, {"label":"2,13", "x":14.5, "y":2}, {"label":"3,0", "x":0, "y":3}, {"label":"3,1", "x":1.75, "y":3, "w":1.25}, {"label":"3,2", "x":3, "y":3}, {"label":"3,3", "x":4, "y":3}, {"label":"3,4", "x":5, "y":3}, {"label":"3,5", "x":6, "y":3}, {"label":"3,6", "x":7, "y":3}, {"label":"3,7", "x":8, "y":3}, {"label":"3,8", "x":9, "y":3}, {"label":"3,9", "x":10, "y":3}, {"label":"3,10", "x":11, "y":3}, {"label":"3,11", "x":12, "y":3}, {"label":"3,12", "x":13, "y":3}, {"label":"3,13", "x":14, "y":3, "w":2.75}, {"label":"3,16", "x":18, "y":3}, {"label":"4,0", "x":0, "y":4}, {"label":"4,1", "x":1.75, "y":4, "w":1.25}, {"label":"4,2", "x":3, "y":4, "w":1.25}, {"label":"4,3", "x":4.25, "y":4, "w":1.25}, {"label":"4,7", "x":5.5, "y":4, "w":6.25}, {"label":"4,11", "x":11.75, "y":4, "w":1.25}, {"label":"4,12", "x":13, "y":4, "w":1.25}, {"label":"4,13", "x":14.25, "y":4, "w":1.25}, {"label":"4,14", "x":15.5, "y":4, "w":1.25}, {"label":"4,15", "x":17, "y":4}, {"label":"4,16", "x":18, "y":4}, {"label":"4,17", "x":19, "y":4}]
+ },
+
+ }
+} \ No newline at end of file
diff --git a/keyboards/mechlovin/foundation/keymaps/default/keymap.c b/keyboards/mechlovin/foundation/keymaps/default/keymap.c
new file mode 100644
index 0000000000..4cabf521d2
--- /dev/null
+++ b/keyboards/mechlovin/foundation/keymaps/default/keymap.c
@@ -0,0 +1,40 @@
+/* Copyright 2022 Mechlovin' Studio
+ *
+ * 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_tkl_nofrow_ansi(
+ KC_F1, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
+ KC_F2, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
+ KC_F3, 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_F4, 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_F5, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_tkl_nofrow_ansi(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+};
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+ [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
+ [1] = {ENCODER_CCW_CW(RGB_MOD, RGB_RMOD)}
+};
+#endif
diff --git a/keyboards/mechlovin/foundation/keymaps/default/readme.md b/keyboards/mechlovin/foundation/keymaps/default/readme.md
new file mode 100644
index 0000000000..32bfee434d
--- /dev/null
+++ b/keyboards/mechlovin/foundation/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for Foundation \ No newline at end of file
diff --git a/keyboards/mechlovin/foundation/keymaps/default/rules.mk b/keyboards/mechlovin/foundation/keymaps/default/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/mechlovin/foundation/keymaps/default/rules.mk
@@ -0,0 +1 @@
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/mechlovin/foundation/keymaps/via/keymap.c b/keyboards/mechlovin/foundation/keymaps/via/keymap.c
new file mode 100644
index 0000000000..b052937fd4
--- /dev/null
+++ b/keyboards/mechlovin/foundation/keymaps/via/keymap.c
@@ -0,0 +1,59 @@
+/* Copyright 2022 Mechlovin' Studio
+ *
+ * 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_all(
+ KC_F17, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_INS, KC_HOME, KC_PGUP,
+ KC_F18, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
+ KC_F19, 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_HASH, KC_ENT,
+ KC_F20, KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP,
+ KC_F21, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ 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] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ 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] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+};
+
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+ [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
+ [1] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
+ [2] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
+ [3] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}
+};
+#endif
+
+
diff --git a/keyboards/mechlovin/foundation/keymaps/via/rules.mk b/keyboards/mechlovin/foundation/keymaps/via/rules.mk
new file mode 100644
index 0000000000..f1adcab005
--- /dev/null
+++ b/keyboards/mechlovin/foundation/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/mechlovin/foundation/readme.md b/keyboards/mechlovin/foundation/readme.md
new file mode 100644
index 0000000000..61dacd55bd
--- /dev/null
+++ b/keyboards/mechlovin/foundation/readme.md
@@ -0,0 +1,26 @@
+# Foundation
+
+![Foundation](https://i.imgur.com/6VaQ8zml.jpeg)
+
+A PCB for Foundation FRL keyboard.
+
+* Keyboard Maintainer: [Mechlovin' Studio](https://github.com/mechlovin)
+* Hardware Supported: Foundation, APM32F103
+* Hardware Availability: [Protozoa Studio](https://protozoa.studio/)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make mechlovin/foundation:default
+
+Flashing example for this keyboard:
+
+ make mechlovin/foundation: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).
+
+Enter the bootloader in 4 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
+* **Bootloader reset**: Hold down the key at (0,13) in the matrix (Backspace) and plug in the keyboard
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
+* **Hardware reset**: Press reset button (located on the bottom side of the PCB) \ No newline at end of file
diff --git a/keyboards/mechlovin/foundation/rules.mk b/keyboards/mechlovin/foundation/rules.mk
new file mode 100644
index 0000000000..5a0af7c463
--- /dev/null
+++ b/keyboards/mechlovin/foundation/rules.mk
@@ -0,0 +1,20 @@
+# MCU name
+MCU = STM32F103
+BOARD = STM32_F103_STM32DUINO
+
+# Bootloader selection
+BOOTLOADER = stm32duino
+
+# 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 = yes # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+ENCODER_ENABLE = yes
+AUDIO_ENABLE = no # Audio output
diff --git a/keyboards/mechlovin/hannah60rgb/config.h b/keyboards/mechlovin/hannah60rgb/config.h
index 6acfa5d401..3a0aaa0eb9 100644
--- a/keyboards/mechlovin/hannah60rgb/config.h
+++ b/keyboards/mechlovin/hannah60rgb/config.h
@@ -19,10 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4D4C // ML-Mechlovin
-#define MANUFACTURER Team.Mechlovin
-
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 14
diff --git a/keyboards/mechlovin/hannah60rgb/rev1/config.h b/keyboards/mechlovin/hannah60rgb/rev1/config.h
index 0f0c923fd0..9a84e78588 100644
--- a/keyboards/mechlovin/hannah60rgb/rev1/config.h
+++ b/keyboards/mechlovin/hannah60rgb/rev1/config.h
@@ -1,9 +1,5 @@
#pragma once
-#define PRODUCT_ID 0x6001
-#define DEVICE_VER 0x0001
-#define PRODUCT Hannah60 RGB
-
#define RGB_DI_PIN A15
#ifdef RGB_MATRIX_ENABLE
# define DRIVER_LED_TOTAL 72
diff --git a/keyboards/mechlovin/hannah60rgb/rev1/info.json b/keyboards/mechlovin/hannah60rgb/rev1/info.json
index 48c878edb1..1e30b49c01 100644
--- a/keyboards/mechlovin/hannah60rgb/rev1/info.json
+++ b/keyboards/mechlovin/hannah60rgb/rev1/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "hannah60rgb rev1",
+ "keyboard_name": "Hannah60 RGB",
+ "manufacturer": "Team.Mechlovin",
"url": "",
"maintainer": "mechlovin",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0x6001",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/mechlovin/hannah60rgb/rev2/config.h b/keyboards/mechlovin/hannah60rgb/rev2/config.h
index e96ca0002a..3a25680a20 100644
--- a/keyboards/mechlovin/hannah60rgb/rev2/config.h
+++ b/keyboards/mechlovin/hannah60rgb/rev2/config.h
@@ -1,9 +1,5 @@
#pragma once
-#define PRODUCT_ID 0x6002
-#define DEVICE_VER 0x0001
-#define PRODUCT Hannah60 RGB Rev.2
-
#ifdef RGBLIGHT_ENABLE
# define RGB_DI_PIN A15
# define RGBLED_NUM 18
diff --git a/keyboards/mechlovin/hannah60rgb/rev2/info.json b/keyboards/mechlovin/hannah60rgb/rev2/info.json
index 74490e03e3..4047982477 100644
--- a/keyboards/mechlovin/hannah60rgb/rev2/info.json
+++ b/keyboards/mechlovin/hannah60rgb/rev2/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "hannah60rgb rev2",
+ "keyboard_name": "Hannah60 RGB Rev.2",
+ "manufacturer": "Team.Mechlovin",
"url": "",
"maintainer": "mechlovin",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0x6002",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/mechlovin/hannah65/config.h b/keyboards/mechlovin/hannah65/config.h
index f0aa801396..c43d228cf4 100644
--- a/keyboards/mechlovin/hannah65/config.h
+++ b/keyboards/mechlovin/hannah65/config.h
@@ -19,10 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4D4C
-#define MANUFACTURER Team Mechlovin
-
#define MATRIX_ROWS 5
#define MATRIX_COLS 15
diff --git a/keyboards/mechlovin/hannah65/rev1/info.json b/keyboards/mechlovin/hannah65/rev1/haus/info.json
index 329c4040c8..55ddde0a58 100644
--- a/keyboards/mechlovin/hannah65/rev1/info.json
+++ b/keyboards/mechlovin/hannah65/rev1/haus/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "hannah65-rev1",
+ "keyboard_name": "Haus Rev. 1",
+ "manufacturer": "Team Mechlovin",
"url": "",
"maintainer": "Team Mechlovin",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0x6500",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/mechlovin/hannah910/config.h b/keyboards/mechlovin/hannah910/config.h
index cc2ac81bc5..3a222e8d87 100644
--- a/keyboards/mechlovin/hannah910/config.h
+++ b/keyboards/mechlovin/hannah910/config.h
@@ -19,11 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4D4C // ML-MechLovin'
-#define MANUFACTURER Mechlovin
-#define PRODUCT Mechlovin Hannah910
-
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 15
@@ -40,7 +35,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#define MATRIX_ROW_PINS { B5, B6, D3, C6, C7 }
#define MATRIX_COL_PINS { E6, B1, B3, F0, F1, F4, F5, F6, F7, D5, D4, B4, D6, D7, B0 }
-#define UNUSED_PINS
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
diff --git a/keyboards/mechlovin/hannah910/hannah910.c b/keyboards/mechlovin/hannah910/hannah910.c
index 3237636be2..70c1a7b8e3 100644
--- a/keyboards/mechlovin/hannah910/hannah910.c
+++ b/keyboards/mechlovin/hannah910/hannah910.c
@@ -34,20 +34,20 @@ void led_set_kb(uint8_t usb_led) {
layer_state_t layer_state_set_user(layer_state_t state)
{
// if on layer 1, turn on D2 LED, otherwise off.
- if (biton32(state) == 1) {
+ if (get_highest_layer(state) == 1) {
writePinHigh(D2);
} else {
writePinLow(D2);
}
// if on layer 2, turn on D1 LED, otherwise off.
- if (biton32(state) == 2) {
+ if (get_highest_layer(state) == 2) {
writePinHigh(D1);
} else {
writePinLow(D1);
}
// if on layer 3, turn on D0 LED, otherwise off.
- if (biton32(state) == 3) {
+ if (get_highest_layer(state) == 3) {
writePinHigh(D0);
} else {
writePinLow(D0);
diff --git a/keyboards/mechlovin/hannah910/rev1/config.h b/keyboards/mechlovin/hannah910/rev1/config.h
index 906e0c8846..7b793c75b9 100644
--- a/keyboards/mechlovin/hannah910/rev1/config.h
+++ b/keyboards/mechlovin/hannah910/rev1/config.h
@@ -1,6 +1,3 @@
#pragma once
-#define PRODUCT_ID 0x9101
-#define DEVICE_VER 0x0001
-
#define RGBLED_NUM 9 \ No newline at end of file
diff --git a/keyboards/mechlovin/hannah910/rev1/info.json b/keyboards/mechlovin/hannah910/rev1/info.json
index 1f130c6992..bbfdddf1ad 100644
--- a/keyboards/mechlovin/hannah910/rev1/info.json
+++ b/keyboards/mechlovin/hannah910/rev1/info.json
@@ -1,7 +1,13 @@
{
"keyboard_name": "Hannah910",
+ "manufacturer": "Mechlovin",
"url": "",
"maintainer": "Mechlovin'",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0x9101",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Back", "x":13, "y":0}, {"label":"Delete", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"INS", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"HOME", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"Shift", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Up", "x":14, "y":3}, {"label":"END", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"Space", "x":3.75, "y":4, "w":2.75}, {"label":"Space", "x":6.5, "y":4, "w":1.25}, {"label":"Space", "x":7.75, "y":4, "w":2.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Left", "x":13, "y":4}, {"label":"Down", "x":14, "y":4}, {"label":"Right", "x":15, "y":4}]
diff --git a/keyboards/mechlovin/hannah910/rev2/config.h b/keyboards/mechlovin/hannah910/rev2/config.h
index 3ae3cb65bc..c37c581ae6 100644
--- a/keyboards/mechlovin/hannah910/rev2/config.h
+++ b/keyboards/mechlovin/hannah910/rev2/config.h
@@ -1,6 +1,3 @@
#pragma once
-#define PRODUCT_ID 0x9102
-#define DEVICE_VER 0x0002
-
#define RGBLED_NUM 28 \ No newline at end of file
diff --git a/keyboards/mechlovin/hannah910/rev2/info.json b/keyboards/mechlovin/hannah910/rev2/info.json
index c2e5dd1a3e..d0eb8b208f 100644
--- a/keyboards/mechlovin/hannah910/rev2/info.json
+++ b/keyboards/mechlovin/hannah910/rev2/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "Hannah910 Rev.2",
+ "keyboard_name": "Hannah910",
+ "manufacturer": "Mechlovin",
"url": "",
"maintainer": "Team Mechlovin'",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0x9102",
+ "device_version": "0.0.2"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/mechlovin/hannah910/rev3/config.h b/keyboards/mechlovin/hannah910/rev3/config.h
index 5e377f4d79..fbb878ab6a 100644
--- a/keyboards/mechlovin/hannah910/rev3/config.h
+++ b/keyboards/mechlovin/hannah910/rev3/config.h
@@ -1,6 +1,3 @@
#pragma once
-#define PRODUCT_ID 0x9103
-#define DEVICE_VER 0x0002
-
#define RGBLED_NUM 28
diff --git a/keyboards/mechlovin/hannah910/rev3/info.json b/keyboards/mechlovin/hannah910/rev3/info.json
index bb762dd589..44c797323b 100644
--- a/keyboards/mechlovin/hannah910/rev3/info.json
+++ b/keyboards/mechlovin/hannah910/rev3/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "hannah910-rev3",
+ "keyboard_name": "Hannah910",
+ "manufacturer": "Mechlovin",
"url": "",
"maintainer": "Team Mechlovin'",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0x9103",
+ "device_version": "0.0.2"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/mechlovin/hex4b/config.h b/keyboards/mechlovin/hex4b/config.h
index c8176d76b5..4126b720b7 100644
--- a/keyboards/mechlovin/hex4b/config.h
+++ b/keyboards/mechlovin/hex4b/config.h
@@ -19,11 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4D4C
-#define PRODUCT_ID 0x0675 //Hex-75
-#define MANUFACTURER Mechlovin Studio
-
/* key matrix size */
#define MATRIX_ROWS 6
#define MATRIX_COLS 15
diff --git a/keyboards/mechlovin/hex4b/info.json b/keyboards/mechlovin/hex4b/info.json
index 686d79cc0e..2edd39b3e2 100644
--- a/keyboards/mechlovin/hex4b/info.json
+++ b/keyboards/mechlovin/hex4b/info.json
@@ -1,7 +1,11 @@
{
- "keyboard_name": "Hex4B",
+ "manufacturer": "Mechlovin Studio",
"url": "",
"maintainer": "Hex-Keyboard&Mechlovin",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0x0675"
+ },
"layout_aliases": {
"LAYOUT": "LAYOUT_split_bs",
"LAYOUT_all": "LAYOUT_split_bs"
diff --git a/keyboards/mechlovin/hex4b/keymaps/nazzer/keymap.c b/keyboards/mechlovin/hex4b/keymaps/nazzer/keymap.c
index 437233be52..e0634d85dc 100644
--- a/keyboards/mechlovin/hex4b/keymaps/nazzer/keymap.c
+++ b/keyboards/mechlovin/hex4b/keymaps/nazzer/keymap.c
@@ -53,9 +53,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
bool led_update_user(led_t led_state) {
-
+
// Toggle CAPS_LOCK LED normally
-
+
# if LED_PIN_ON_STATE == 0
// invert the whole thing to avoid having to conditionally !led_state.x later
led_state.raw = ~led_state.raw;
@@ -69,30 +69,30 @@ bool led_update_user(led_t led_state) {
}
layer_state_t layer_state_set_user(layer_state_t state) {
-
- uint8_t layer = biton32(state);
-
+
+ uint8_t layer = get_highest_layer(state);
+
#if defined(LED_NUM_LOCK_PIN) && defined(LED_SCROLL_LOCK_PIN)
switch (layer) {
case 0:
- writePin(LED_SCROLL_LOCK_PIN, !LED_PIN_ON_STATE);
- writePin(LED_NUM_LOCK_PIN, !LED_PIN_ON_STATE);
+ writePin(LED_SCROLL_LOCK_PIN, !LED_PIN_ON_STATE);
+ writePin(LED_NUM_LOCK_PIN, !LED_PIN_ON_STATE);
break;
case 1:
- writePin(LED_SCROLL_LOCK_PIN, LED_PIN_ON_STATE);
- writePin(LED_NUM_LOCK_PIN, !LED_PIN_ON_STATE);
+ writePin(LED_SCROLL_LOCK_PIN, LED_PIN_ON_STATE);
+ writePin(LED_NUM_LOCK_PIN, !LED_PIN_ON_STATE);
break;
case 2:
- writePin(LED_SCROLL_LOCK_PIN, !LED_PIN_ON_STATE);
- writePin(LED_NUM_LOCK_PIN, LED_PIN_ON_STATE);
+ writePin(LED_SCROLL_LOCK_PIN, !LED_PIN_ON_STATE);
+ writePin(LED_NUM_LOCK_PIN, LED_PIN_ON_STATE);
break;
case 3:
- writePin(LED_SCROLL_LOCK_PIN, LED_PIN_ON_STATE);
- writePin(LED_NUM_LOCK_PIN, LED_PIN_ON_STATE);
+ writePin(LED_SCROLL_LOCK_PIN, LED_PIN_ON_STATE);
+ writePin(LED_NUM_LOCK_PIN, LED_PIN_ON_STATE);
break;
}
#endif
- return state;
+ return state;
}
diff --git a/keyboards/mechlovin/hex4b/rev1/config.h b/keyboards/mechlovin/hex4b/rev1/config.h
index 014209cefd..8afeeaf593 100644
--- a/keyboards/mechlovin/hex4b/rev1/config.h
+++ b/keyboards/mechlovin/hex4b/rev1/config.h
@@ -19,10 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define DEVICE_VER 0x0001
-#define PRODUCT Hex-4B Rev.1
-
/*
* Keyboard Matrix Assignments
*
@@ -36,7 +32,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { B7, A2, A1, A3, A4, A5 }
#define MATRIX_COL_PINS { B6, B5, B3, B2, B1, B0, A0, A6, A7, C7, C6, C5, C4, D1, D0 }
-#define UNUSED_PINS
#define LED_NUM_LOCK_PIN D6
#define LED_CAPS_LOCK_PIN D7
diff --git a/keyboards/mechlovin/hex4b/rev1/info.json b/keyboards/mechlovin/hex4b/rev1/info.json
new file mode 100644
index 0000000000..b2dfdec696
--- /dev/null
+++ b/keyboards/mechlovin/hex4b/rev1/info.json
@@ -0,0 +1,6 @@
+{
+ "keyboard_name": "Hex-4B Rev.1",
+ "usb": {
+ "device_version": "0.0.1"
+ }
+}
diff --git a/keyboards/mechlovin/hex4b/rev2/config.h b/keyboards/mechlovin/hex4b/rev2/config.h
index af956f3ec0..9eb4e03feb 100644
--- a/keyboards/mechlovin/hex4b/rev2/config.h
+++ b/keyboards/mechlovin/hex4b/rev2/config.h
@@ -19,12 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define DEVICE_VER 0x0002
-#define PRODUCT Hex-4B Rev.2
-
-
-
/*
* Keyboard Matrix Assignments
*
@@ -38,7 +32,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { A4, B12, B13, B14, B15, A1 }
#define MATRIX_COL_PINS { B11, B10, B2, B1, B0, A7, A6, A5, A3, C13, B7, B6, B5, B4, B3 }
-#define UNUSED_PINS
#define LED_NUM_LOCK_PIN C15
#define LED_CAPS_LOCK_PIN B9
diff --git a/keyboards/mechlovin/hex4b/rev2/info.json b/keyboards/mechlovin/hex4b/rev2/info.json
new file mode 100644
index 0000000000..da18a2ce4b
--- /dev/null
+++ b/keyboards/mechlovin/hex4b/rev2/info.json
@@ -0,0 +1,6 @@
+{
+ "keyboard_name": "Hex-4B Rev.2",
+ "usb": {
+ "device_version": "0.0.2"
+ }
+}
diff --git a/keyboards/mechlovin/hex4b/rev2/readme.md b/keyboards/mechlovin/hex4b/rev2/readme.md
index 328c869704..01ae8ea724 100644
--- a/keyboards/mechlovin/hex4b/rev2/readme.md
+++ b/keyboards/mechlovin/hex4b/rev2/readme.md
@@ -24,5 +24,5 @@ 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
* **Bootloader reset**: Hold down the key at (0,13) in the matrix (Backspace) and plug in the keyboard
-* **Keycode in layout**: Press the key mapped to `RESET` if it is available
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
* **Hardware reset**: Press reset button (located on the top side of the PCB) \ No newline at end of file
diff --git a/keyboards/mechlovin/hex6c/config.h b/keyboards/mechlovin/hex6c/config.h
index b79b5211c2..c3125f217f 100644
--- a/keyboards/mechlovin/hex6c/config.h
+++ b/keyboards/mechlovin/hex6c/config.h
@@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4D4C
-#define PRODUCT_ID 0x6C01
-#define DEVICE_VER 0x0001
-#define MANUFACTURER Mechlovin Studio and Hex Keyboard
-#define PRODUCT Hex6C
-
/* key matrix size */
#define MATRIX_ROWS 6
#define MATRIX_COLS 21
@@ -42,7 +35,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#define MATRIX_ROW_PINS { A10, B13, B12, B11, C14, C15 }
#define MATRIX_COL_PINS { A13, A14, A1, A0, C13, B9, B4, B7, B8, B5, B6, A9, A5, A6, A7, B1, B2, B10, B3, B14, B15 }
-#define UNUSED_PINS
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
diff --git a/keyboards/mechlovin/hex6c/info.json b/keyboards/mechlovin/hex6c/info.json
index 0d8a6529db..5c01225cd7 100644
--- a/keyboards/mechlovin/hex6c/info.json
+++ b/keyboards/mechlovin/hex6c/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "hex-6C",
+ "keyboard_name": "Hex6C",
+ "manufacturer": "Mechlovin Studio and Hex Keyboard",
"url": "",
"maintainer": "Mechlovin' Studio",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0x6C01",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/mechlovin/infinity87/config.h b/keyboards/mechlovin/infinity87/config.h
index a344c98b8f..6692b78292 100644
--- a/keyboards/mechlovin/infinity87/config.h
+++ b/keyboards/mechlovin/infinity87/config.h
@@ -18,11 +18,6 @@
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4D4C // ML
-
-#define MANUFACTURER Mechlovin.Studio
-
/* key matrix size */
#define MATRIX_ROWS 6
#define MATRIX_COLS 17
diff --git a/keyboards/mechlovin/infinity87/infinity87.h b/keyboards/mechlovin/infinity87/infinity87.h
index f56d960e92..b7b00bef40 100644
--- a/keyboards/mechlovin/infinity87/infinity87.h
+++ b/keyboards/mechlovin/infinity87/infinity87.h
@@ -16,19 +16,3 @@
#pragma once
#include "quantum.h"
-
-#define LAYOUT_all( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, K0G, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K0D, K1E, K1F, K1G, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \
- K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
- K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \
- K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \
-) { \
- { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \
- { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \
- { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO }, \
- { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO, K4F, KC_NO }, \
- { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \
-}
diff --git a/keyboards/mechlovin/infinity87/rev1/rev1.h b/keyboards/mechlovin/infinity87/rev1/rev1.h
index de623a1cdd..167ed6940a 100644
--- a/keyboards/mechlovin/infinity87/rev1/rev1.h
+++ b/keyboards/mechlovin/infinity87/rev1/rev1.h
@@ -17,11 +17,3 @@
#pragma once
#include "quantum.h"
-
-#ifdef KEYBOARD_mechlovin_infinity87_rev1_rogue87
- #include "rogue87.h"
-#elif KEYBOARD_mechlovin_infinity87_rev1_rouge87
- #include "rouge87.h"
-#elif KEYBOARD_mechlovin_infinity87_rev1_standard
- #include "infinity87.h"
-#endif
diff --git a/keyboards/mechlovin/infinity87/rev1/rogue87/info.json b/keyboards/mechlovin/infinity87/rev1/rogue87/info.json
index 3ffa181666..25fa20a9c7 100644
--- a/keyboards/mechlovin/infinity87/rev1/rogue87/info.json
+++ b/keyboards/mechlovin/infinity87/rev1/rogue87/info.json
@@ -1,96 +1,115 @@
{
- "keyboard_name": "Rogue87",
+ "keyboard_name": "Rogue87 Rev.1",
+ "manufacturer": "Mechlovin.Studio",
"url": "",
"maintainer": "Mechlovin' Studio",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0x8704",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
- {"label":"K00", "x":0, "y":0},
- {"label":"K01", "x":2, "y":0},
- {"label":"K02", "x":3, "y":0},
- {"label":"K03", "x":4, "y":0},
- {"label":"K04", "x":5, "y":0},
- {"label":"K05", "x":6.5, "y":0},
- {"label":"K06", "x":7.5, "y":0},
- {"label":"K07", "x":8.5, "y":0},
- {"label":"K08", "x":9.5, "y":0},
- {"label":"K09", "x":11, "y":0},
- {"label":"K0A", "x":12, "y":0},
- {"label":"K0B", "x":13, "y":0},
- {"label":"K0C", "x":14, "y":0},
- {"label":"K0E", "x":15.25, "y":0},
- {"label":"K0F", "x":16.25, "y":0},
- {"label":"K0G", "x":17.25, "y":0},
- {"label":"K10", "x":0, "y":1.25},
- {"label":"K11", "x":1, "y":1.25},
- {"label":"K12", "x":2, "y":1.25},
- {"label":"K13", "x":3, "y":1.25},
- {"label":"K14", "x":4, "y":1.25},
- {"label":"K15", "x":5, "y":1.25},
- {"label":"K16", "x":6, "y":1.25},
- {"label":"K17", "x":7, "y":1.25},
- {"label":"K18", "x":8, "y":1.25},
- {"label":"K19", "x":9, "y":1.25},
- {"label":"K1A", "x":10, "y":1.25},
- {"label":"K1B", "x":11, "y":1.25},
- {"label":"K1C", "x":12, "y":1.25},
- {"label":"K1D", "x":13, "y":1.25, "w":2},
- {"label":"K1E", "x":15.25, "y":1.25},
- {"label":"K1F", "x":16.25, "y":1.25},
- {"label":"K1G", "x":17.25, "y":1.25},
- {"label":"K20", "x":0, "y":2.25, "w":1.5},
- {"label":"K21", "x":1.5, "y":2.25},
- {"label":"K22", "x":2.5, "y":2.25},
- {"label":"K23", "x":3.5, "y":2.25},
- {"label":"K24", "x":4.5, "y":2.25},
- {"label":"K25", "x":5.5, "y":2.25},
- {"label":"K26", "x":6.5, "y":2.25},
- {"label":"K27", "x":7.5, "y":2.25},
- {"label":"K28", "x":8.5, "y":2.25},
- {"label":"K29", "x":9.5, "y":2.25},
- {"label":"K2A", "x":10.5, "y":2.25},
- {"label":"K2B", "x":11.5, "y":2.25},
- {"label":"K2C", "x":12.5, "y":2.25},
- {"label":"K2D", "x":13.5, "y":2.25, "w":1.5},
- {"label":"K2E", "x":15.25, "y":2.25},
- {"label":"K2F", "x":16.25, "y":2.25},
- {"label":"K2G", "x":17.25, "y":2.25},
- {"label":"K30", "x":0, "y":3.25, "w":1.75},
- {"label":"K31", "x":1.75, "y":3.25},
- {"label":"K32", "x":2.75, "y":3.25},
- {"label":"K33", "x":3.75, "y":3.25},
- {"label":"K34", "x":4.75, "y":3.25},
- {"label":"K35", "x":5.75, "y":3.25},
- {"label":"K36", "x":6.75, "y":3.25},
- {"label":"K37", "x":7.75, "y":3.25},
- {"label":"K38", "x":8.75, "y":3.25},
- {"label":"K39", "x":9.75, "y":3.25},
- {"label":"K3A", "x":10.75, "y":3.25},
- {"label":"K3B", "x":11.75, "y":3.25},
- {"label":"K3C", "x":12.75, "y":3.25},
- {"label":"K3D", "x":13.75, "y":3.25, "w":1.25},
- {"label":"K40", "x":0, "y":4.25, "w":1.25},
- {"label":"K41", "x":1.25, "y":4.25},
- {"label":"K42", "x":2.25, "y":4.25},
- {"label":"K43", "x":3.25, "y":4.25},
- {"label":"K44", "x":4.25, "y":4.25},
- {"label":"K45", "x":5.25, "y":4.25},
- {"label":"K46", "x":6.25, "y":4.25},
- {"label":"K47", "x":7.25, "y":4.25},
- {"label":"K48", "x":8.25, "y":4.25},
- {"label":"K49", "x":9.25, "y":4.25},
- {"label":"K4A", "x":10.25, "y":4.25},
- {"label":"K4B", "x":11.25, "y":4.25},
- {"label":"K4D", "x":12.25, "y":4.25, "w":2.75},
- {"label":"K4F", "x":16.25, "y":4.25},
- {"label":"K50", "x":0, "y":5.25, "w":1.5},
- {"label":"K52", "x":2.5, "y":5.25, "w":1.5},
- {"label":"K56", "x":4, "y":5.25, "w":7},
- {"label":"K5B", "x":11, "y":5.25, "w":1.5},
- {"label":"K5D", "x":13.5, "y":5.25, "w":1.5},
- {"label":"K5E", "x":15.25, "y":5.25},
- {"label":"K5F", "x":16.25, "y":5.25},
- {"label":"K5G", "x":17.25, "y":5.25}
+ {"label":"K00", "x":0, "y":0, "matrix": [0, 0]},
+
+ {"label":"K01", "x":2, "y":0, "matrix": [0, 1]},
+ {"label":"K02", "x":3, "y":0, "matrix": [0, 2]},
+ {"label":"K03", "x":4, "y":0, "matrix": [0, 3]},
+ {"label":"K04", "x":5, "y":0, "matrix": [0, 4]},
+
+ {"label":"K05", "x":6.5, "y":0, "matrix": [0, 5]},
+ {"label":"K06", "x":7.5, "y":0, "matrix": [0, 6]},
+ {"label":"K07", "x":8.5, "y":0, "matrix": [0, 7]},
+ {"label":"K08", "x":9.5, "y":0, "matrix": [0, 8]},
+
+ {"label":"K09", "x":11, "y":0, "matrix": [0, 9]},
+ {"label":"K0A", "x":12, "y":0, "matrix": [0, 10]},
+ {"label":"K0B", "x":13, "y":0, "matrix": [0, 11]},
+ {"label":"K0C", "x":14, "y":0, "matrix": [0, 12]},
+
+ {"label":"K0E", "x":15.25, "y":0, "matrix": [0, 14]},
+ {"label":"K0F", "x":16.25, "y":0, "matrix": [0, 15]},
+ {"label":"K0G", "x":17.25, "y":0, "matrix": [0, 16]},
+
+ {"label":"K10", "x":0, "y":1.25, "matrix": [1, 0]},
+ {"label":"K11", "x":1, "y":1.25, "matrix": [1, 1]},
+ {"label":"K12", "x":2, "y":1.25, "matrix": [1, 2]},
+ {"label":"K13", "x":3, "y":1.25, "matrix": [1, 3]},
+ {"label":"K14", "x":4, "y":1.25, "matrix": [1, 4]},
+ {"label":"K15", "x":5, "y":1.25, "matrix": [1, 5]},
+ {"label":"K16", "x":6, "y":1.25, "matrix": [1, 6]},
+ {"label":"K17", "x":7, "y":1.25, "matrix": [1, 7]},
+ {"label":"K18", "x":8, "y":1.25, "matrix": [1, 8]},
+ {"label":"K19", "x":9, "y":1.25, "matrix": [1, 9]},
+ {"label":"K1A", "x":10, "y":1.25, "matrix": [1, 10]},
+ {"label":"K1B", "x":11, "y":1.25, "matrix": [1, 11]},
+ {"label":"K1C", "x":12, "y":1.25, "matrix": [1, 12]},
+ {"label":"K1D", "x":13, "y":1.25, "w":2, "matrix": [1, 13]},
+
+ {"label":"K1E", "x":15.25, "y":1.25, "matrix": [1, 14]},
+ {"label":"K1F", "x":16.25, "y":1.25, "matrix": [1, 15]},
+ {"label":"K1G", "x":17.25, "y":1.25, "matrix": [1, 16]},
+
+ {"label":"K20", "x":0, "y":2.25, "w":1.5, "matrix": [2, 0]},
+ {"label":"K21", "x":1.5, "y":2.25, "matrix": [2, 1]},
+ {"label":"K22", "x":2.5, "y":2.25, "matrix": [2, 2]},
+ {"label":"K23", "x":3.5, "y":2.25, "matrix": [2, 3]},
+ {"label":"K24", "x":4.5, "y":2.25, "matrix": [2, 4]},
+ {"label":"K25", "x":5.5, "y":2.25, "matrix": [2, 5]},
+ {"label":"K26", "x":6.5, "y":2.25, "matrix": [2, 6]},
+ {"label":"K27", "x":7.5, "y":2.25, "matrix": [2, 7]},
+ {"label":"K28", "x":8.5, "y":2.25, "matrix": [2, 8]},
+ {"label":"K29", "x":9.5, "y":2.25, "matrix": [2, 9]},
+ {"label":"K2A", "x":10.5, "y":2.25, "matrix": [2, 10]},
+ {"label":"K2B", "x":11.5, "y":2.25, "matrix": [2, 11]},
+ {"label":"K2C", "x":12.5, "y":2.25, "matrix": [2, 12]},
+ {"label":"K2D", "x":13.5, "y":2.25, "w":1.5, "matrix": [2, 13]},
+
+ {"label":"K2E", "x":15.25, "y":2.25, "matrix": [2, 14]},
+ {"label":"K2F", "x":16.25, "y":2.25, "matrix": [2, 15]},
+ {"label":"K2G", "x":17.25, "y":2.25, "matrix": [2, 16]},
+
+ {"label":"K30", "x":0, "y":3.25, "w":1.75, "matrix": [3, 0]},
+ {"label":"K31", "x":1.75, "y":3.25, "matrix": [3, 1]},
+ {"label":"K32", "x":2.75, "y":3.25, "matrix": [3, 2]},
+ {"label":"K33", "x":3.75, "y":3.25, "matrix": [3, 3]},
+ {"label":"K34", "x":4.75, "y":3.25, "matrix": [3, 4]},
+ {"label":"K35", "x":5.75, "y":3.25, "matrix": [3, 5]},
+ {"label":"K36", "x":6.75, "y":3.25, "matrix": [3, 6]},
+ {"label":"K37", "x":7.75, "y":3.25, "matrix": [3, 7]},
+ {"label":"K38", "x":8.75, "y":3.25, "matrix": [3, 8]},
+ {"label":"K39", "x":9.75, "y":3.25, "matrix": [3, 9]},
+ {"label":"K3A", "x":10.75, "y":3.25, "matrix": [3, 10]},
+ {"label":"K3B", "x":11.75, "y":3.25, "matrix": [3, 11]},
+ {"label":"K3C", "x":12.75, "y":3.25, "matrix": [3, 12]},
+ {"label":"K3D", "x":13.75, "y":3.25, "w":1.25, "matrix": [3, 13]},
+
+ {"label":"K40", "x":0, "y":4.25, "w":1.25, "matrix": [4, 0]},
+ {"label":"K41", "x":1.25, "y":4.25, "matrix": [4, 1]},
+ {"label":"K42", "x":2.25, "y":4.25, "matrix": [4, 2]},
+ {"label":"K43", "x":3.25, "y":4.25, "matrix": [4, 3]},
+ {"label":"K44", "x":4.25, "y":4.25, "matrix": [4, 4]},
+ {"label":"K45", "x":5.25, "y":4.25, "matrix": [4, 5]},
+ {"label":"K46", "x":6.25, "y":4.25, "matrix": [4, 6]},
+ {"label":"K47", "x":7.25, "y":4.25, "matrix": [4, 7]},
+ {"label":"K48", "x":8.25, "y":4.25, "matrix": [4, 8]},
+ {"label":"K49", "x":9.25, "y":4.25, "matrix": [4, 9]},
+ {"label":"K4A", "x":10.25, "y":4.25, "matrix": [4, 10]},
+ {"label":"K4B", "x":11.25, "y":4.25, "matrix": [4, 11]},
+ {"label":"K4D", "x":12.25, "y":4.25, "w":2.75, "matrix": [4, 13]},
+
+ {"label":"K4F", "x":16.25, "y":4.25, "matrix": [4, 15]},
+
+ {"label":"K50", "x":0, "y":5.25, "w":1.5, "matrix": [5, 0]},
+ {"label":"K52", "x":2.5, "y":5.25, "w":1.5, "matrix": [5, 2]},
+ {"label":"K56", "x":4, "y":5.25, "w":7, "matrix": [5, 6]},
+ {"label":"K5B", "x":11, "y":5.25, "w":1.5, "matrix": [5, 11]},
+ {"label":"K5D", "x":13.5, "y":5.25, "w":1.5, "matrix": [5, 13]},
+
+ {"label":"K5E", "x":15.25, "y":5.25, "matrix": [5, 14]},
+ {"label":"K5F", "x":16.25, "y":5.25, "matrix": [5, 15]},
+ {"label":"K5G", "x":17.25, "y":5.25, "matrix": [5, 16]}
]
}
}
diff --git a/keyboards/mechlovin/infinity87/rev1/rogue87/rogue87.h b/keyboards/mechlovin/infinity87/rev1/rogue87/rogue87.h
deleted file mode 100644
index 70a50b9620..0000000000
--- a/keyboards/mechlovin/infinity87/rev1/rogue87/rogue87.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright 2020 Team Mechlovin'
- *
- * 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_all( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, K0G, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \
- K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
- K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \
- K50, K52, K56, K5B, K5D, K5E, K5F, K5G \
-) { \
- { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E, K0F, K0G }, \
- { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \
- { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO}, \
- { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, KC_NO, K4D, KC_NO, K4F, KC_NO}, \
- { K50, KC_NO, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, KC_NO, K5B, KC_NO, K5D, K5E, K5F, K5G }, \
-}
diff --git a/keyboards/mechlovin/infinity87/rev1/rouge87/info.json b/keyboards/mechlovin/infinity87/rev1/rouge87/info.json
index 8faaa83fd1..983d20fdbf 100644
--- a/keyboards/mechlovin/infinity87/rev1/rouge87/info.json
+++ b/keyboards/mechlovin/infinity87/rev1/rouge87/info.json
@@ -1,98 +1,117 @@
{
- "keyboard_name": "Rouge87",
+ "keyboard_name": "Rouge87 Rev.1",
+ "manufacturer": "Mechlovin.Studio",
"url": "",
"maintainer": "Mechlovin' Studio",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0x8703",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
- {"label":"K00", "x":0, "y":0},
- {"label":"K01", "x":2, "y":0},
- {"label":"K02", "x":3, "y":0},
- {"label":"K03", "x":4, "y":0},
- {"label":"K04", "x":5, "y":0},
- {"label":"K05", "x":6.5, "y":0},
- {"label":"K06", "x":7.5, "y":0},
- {"label":"K07", "x":8.5, "y":0},
- {"label":"K08", "x":9.5, "y":0},
- {"label":"K09", "x":11, "y":0},
- {"label":"K0A", "x":12, "y":0},
- {"label":"K0B", "x":13, "y":0},
- {"label":"K0C", "x":14, "y":0},
- {"label":"K0E", "x":15.25, "y":0},
- {"label":"K0F", "x":16.25, "y":0},
- {"label":"K0G", "x":17.25, "y":0},
- {"label":"K10", "x":0, "y":1.25},
- {"label":"K11", "x":1, "y":1.25},
- {"label":"K12", "x":2, "y":1.25},
- {"label":"K13", "x":3, "y":1.25},
- {"label":"K14", "x":4, "y":1.25},
- {"label":"K15", "x":5, "y":1.25},
- {"label":"K16", "x":6, "y":1.25},
- {"label":"K17", "x":7, "y":1.25},
- {"label":"K18", "x":8, "y":1.25},
- {"label":"K19", "x":9, "y":1.25},
- {"label":"K1A", "x":10, "y":1.25},
- {"label":"K1B", "x":11, "y":1.25},
- {"label":"K1C", "x":12, "y":1.25},
- {"label":"K1D", "x":13, "y":1.25, "w":2},
- {"label":"K1E", "x":15.25, "y":1.25},
- {"label":"K1F", "x":16.25, "y":1.25},
- {"label":"K1G", "x":17.25, "y":1.25},
- {"label":"K20", "x":0, "y":2.25, "w":1.5},
- {"label":"K21", "x":1.5, "y":2.25},
- {"label":"K22", "x":2.5, "y":2.25},
- {"label":"K23", "x":3.5, "y":2.25},
- {"label":"K24", "x":4.5, "y":2.25},
- {"label":"K25", "x":5.5, "y":2.25},
- {"label":"K26", "x":6.5, "y":2.25},
- {"label":"K27", "x":7.5, "y":2.25},
- {"label":"K28", "x":8.5, "y":2.25},
- {"label":"K29", "x":9.5, "y":2.25},
- {"label":"K2A", "x":10.5, "y":2.25},
- {"label":"K2B", "x":11.5, "y":2.25},
- {"label":"K2C", "x":12.5, "y":2.25},
- {"label":"K2D", "x":13.5, "y":2.25, "w":1.5},
- {"label":"K2E", "x":15.25, "y":2.25},
- {"label":"K2F", "x":16.25, "y":2.25},
- {"label":"K2G", "x":17.25, "y":2.25},
- {"label":"K30", "x":0, "y":3.25, "w":1.75},
- {"label":"K31", "x":1.75, "y":3.25},
- {"label":"K32", "x":2.75, "y":3.25},
- {"label":"K33", "x":3.75, "y":3.25},
- {"label":"K34", "x":4.75, "y":3.25},
- {"label":"K35", "x":5.75, "y":3.25},
- {"label":"K36", "x":6.75, "y":3.25},
- {"label":"K37", "x":7.75, "y":3.25},
- {"label":"K38", "x":8.75, "y":3.25},
- {"label":"K39", "x":9.75, "y":3.25},
- {"label":"K3A", "x":10.75, "y":3.25},
- {"label":"K3B", "x":11.75, "y":3.25},
- {"label":"K3C", "x":12.75, "y":3.25},
- {"label":"K3D", "x":13.75, "y":3.25, "w":1.25},
- {"label":"K40", "x":0, "y":4.25, "w":1.25},
- {"label":"K41", "x":1.25, "y":4.25},
- {"label":"K42", "x":2.25, "y":4.25},
- {"label":"K43", "x":3.25, "y":4.25},
- {"label":"K44", "x":4.25, "y":4.25},
- {"label":"K45", "x":5.25, "y":4.25},
- {"label":"K46", "x":6.25, "y":4.25},
- {"label":"K47", "x":7.25, "y":4.25},
- {"label":"K48", "x":8.25, "y":4.25},
- {"label":"K49", "x":9.25, "y":4.25},
- {"label":"K4A", "x":10.25, "y":4.25},
- {"label":"K4B", "x":11.25, "y":4.25},
- {"label":"K4D", "x":12.25, "y":4.25, "w":2.75},
- {"label":"K4F", "x":16.25, "y":4.25},
- {"label":"K50", "x":0, "y":5.25, "w":1.5},
- {"label":"K51", "x":1.5, "y":5.25},
- {"label":"K52", "x":2.5, "y":5.25, "w":1.5},
- {"label":"K56", "x":4, "y":5.25, "w":7},
- {"label":"K5B", "x":11, "y":5.25, "w":1.5},
- {"label":"K5C", "x":12.5, "y":5.25},
- {"label":"K5D", "x":13.5, "y":5.25, "w":1.5},
- {"label":"K5E", "x":15.25, "y":5.25},
- {"label":"K5F", "x":16.25, "y":5.25},
- {"label":"K5G", "x":17.25, "y":5.25}
+ {"label":"K00", "x":0, "y":0, "matrix": [0, 0]},
+
+ {"label":"K01", "x":2, "y":0, "matrix": [0, 1]},
+ {"label":"K02", "x":3, "y":0, "matrix": [0, 2]},
+ {"label":"K03", "x":4, "y":0, "matrix": [0, 3]},
+ {"label":"K04", "x":5, "y":0, "matrix": [0, 4]},
+
+ {"label":"K05", "x":6.5, "y":0, "matrix": [0, 5]},
+ {"label":"K06", "x":7.5, "y":0, "matrix": [0, 6]},
+ {"label":"K07", "x":8.5, "y":0, "matrix": [0, 7]},
+ {"label":"K08", "x":9.5, "y":0, "matrix": [0, 8]},
+
+ {"label":"K09", "x":11, "y":0, "matrix": [0, 9]},
+ {"label":"K0A", "x":12, "y":0, "matrix": [0, 10]},
+ {"label":"K0B", "x":13, "y":0, "matrix": [0, 11]},
+ {"label":"K0C", "x":14, "y":0, "matrix": [0, 12]},
+
+ {"label":"K0E", "x":15.25, "y":0, "matrix": [0, 14]},
+ {"label":"K0F", "x":16.25, "y":0, "matrix": [0, 15]},
+ {"label":"K0G", "x":17.25, "y":0, "matrix": [0, 16]},
+
+ {"label":"K10", "x":0, "y":1.25, "matrix": [1, 0]},
+ {"label":"K11", "x":1, "y":1.25, "matrix": [1, 1]},
+ {"label":"K12", "x":2, "y":1.25, "matrix": [1, 2]},
+ {"label":"K13", "x":3, "y":1.25, "matrix": [1, 3]},
+ {"label":"K14", "x":4, "y":1.25, "matrix": [1, 4]},
+ {"label":"K15", "x":5, "y":1.25, "matrix": [1, 5]},
+ {"label":"K16", "x":6, "y":1.25, "matrix": [1, 6]},
+ {"label":"K17", "x":7, "y":1.25, "matrix": [1, 7]},
+ {"label":"K18", "x":8, "y":1.25, "matrix": [1, 8]},
+ {"label":"K19", "x":9, "y":1.25, "matrix": [1, 9]},
+ {"label":"K1A", "x":10, "y":1.25, "matrix": [1, 10]},
+ {"label":"K1B", "x":11, "y":1.25, "matrix": [1, 11]},
+ {"label":"K1C", "x":12, "y":1.25, "matrix": [1, 12]},
+ {"label":"K1D", "x":13, "y":1.25, "w":2, "matrix": [1, 13]},
+
+ {"label":"K1E", "x":15.25, "y":1.25, "matrix": [1, 14]},
+ {"label":"K1F", "x":16.25, "y":1.25, "matrix": [1, 15]},
+ {"label":"K1G", "x":17.25, "y":1.25, "matrix": [1, 16]},
+
+ {"label":"K20", "x":0, "y":2.25, "w":1.5, "matrix": [2, 0]},
+ {"label":"K21", "x":1.5, "y":2.25, "matrix": [2, 1]},
+ {"label":"K22", "x":2.5, "y":2.25, "matrix": [2, 2]},
+ {"label":"K23", "x":3.5, "y":2.25, "matrix": [2, 3]},
+ {"label":"K24", "x":4.5, "y":2.25, "matrix": [2, 4]},
+ {"label":"K25", "x":5.5, "y":2.25, "matrix": [2, 5]},
+ {"label":"K26", "x":6.5, "y":2.25, "matrix": [2, 6]},
+ {"label":"K27", "x":7.5, "y":2.25, "matrix": [2, 7]},
+ {"label":"K28", "x":8.5, "y":2.25, "matrix": [2, 8]},
+ {"label":"K29", "x":9.5, "y":2.25, "matrix": [2, 9]},
+ {"label":"K2A", "x":10.5, "y":2.25, "matrix": [2, 10]},
+ {"label":"K2B", "x":11.5, "y":2.25, "matrix": [2, 11]},
+ {"label":"K2C", "x":12.5, "y":2.25, "matrix": [2, 12]},
+ {"label":"K2D", "x":13.5, "y":2.25, "w":1.5, "matrix": [2, 13]},
+
+ {"label":"K2E", "x":15.25, "y":2.25, "matrix": [2, 14]},
+ {"label":"K2F", "x":16.25, "y":2.25, "matrix": [2, 15]},
+ {"label":"K2G", "x":17.25, "y":2.25, "matrix": [2, 16]},
+
+ {"label":"K30", "x":0, "y":3.25, "w":1.75, "matrix": [3, 0]},
+ {"label":"K31", "x":1.75, "y":3.25, "matrix": [3, 1]},
+ {"label":"K32", "x":2.75, "y":3.25, "matrix": [3, 2]},
+ {"label":"K33", "x":3.75, "y":3.25, "matrix": [3, 3]},
+ {"label":"K34", "x":4.75, "y":3.25, "matrix": [3, 4]},
+ {"label":"K35", "x":5.75, "y":3.25, "matrix": [3, 5]},
+ {"label":"K36", "x":6.75, "y":3.25, "matrix": [3, 6]},
+ {"label":"K37", "x":7.75, "y":3.25, "matrix": [3, 7]},
+ {"label":"K38", "x":8.75, "y":3.25, "matrix": [3, 8]},
+ {"label":"K39", "x":9.75, "y":3.25, "matrix": [3, 9]},
+ {"label":"K3A", "x":10.75, "y":3.25, "matrix": [3, 10]},
+ {"label":"K3B", "x":11.75, "y":3.25, "matrix": [3, 11]},
+ {"label":"K3C", "x":12.75, "y":3.25, "matrix": [3, 12]},
+ {"label":"K3D", "x":13.75, "y":3.25, "w":1.25, "matrix": [3, 13]},
+
+ {"label":"K40", "x":0, "y":4.25, "w":1.25, "matrix": [4, 0]},
+ {"label":"K41", "x":1.25, "y":4.25, "matrix": [4, 1]},
+ {"label":"K42", "x":2.25, "y":4.25, "matrix": [4, 2]},
+ {"label":"K43", "x":3.25, "y":4.25, "matrix": [4, 3]},
+ {"label":"K44", "x":4.25, "y":4.25, "matrix": [4, 4]},
+ {"label":"K45", "x":5.25, "y":4.25, "matrix": [4, 5]},
+ {"label":"K46", "x":6.25, "y":4.25, "matrix": [4, 6]},
+ {"label":"K47", "x":7.25, "y":4.25, "matrix": [4, 7]},
+ {"label":"K48", "x":8.25, "y":4.25, "matrix": [4, 8]},
+ {"label":"K49", "x":9.25, "y":4.25, "matrix": [4, 9]},
+ {"label":"K4A", "x":10.25, "y":4.25, "matrix": [4, 10]},
+ {"label":"K4B", "x":11.25, "y":4.25, "matrix": [4, 11]},
+ {"label":"K4D", "x":12.25, "y":4.25, "w":2.75, "matrix": [4, 13]},
+
+ {"label":"K4F", "x":16.25, "y":4.25, "matrix": [4, 15]},
+
+ {"label":"K50", "x":0, "y":5.25, "w":1.5, "matrix": [5, 0]},
+ {"label":"K51", "x":1.5, "y":5.25, "matrix": [5, 1]},
+ {"label":"K52", "x":2.5, "y":5.25, "w":1.5, "matrix": [5, 2]},
+ {"label":"K56", "x":4, "y":5.25, "w":7, "matrix": [5, 6]},
+ {"label":"K5B", "x":11, "y":5.25, "w":1.5, "matrix": [5, 11]},
+ {"label":"K5C", "x":12.5, "y":5.25, "matrix": [5, 12]},
+ {"label":"K5D", "x":13.5, "y":5.25, "w":1.5, "matrix": [5, 13]},
+
+ {"label":"K5E", "x":15.25, "y":5.25, "matrix": [5, 14]},
+ {"label":"K5F", "x":16.25, "y":5.25, "matrix": [5, 15]},
+ {"label":"K5G", "x":17.25, "y":5.25, "matrix": [5, 16]}
]
}
}
diff --git a/keyboards/mechlovin/infinity87/rev1/rouge87/rouge87.h b/keyboards/mechlovin/infinity87/rev1/rouge87/rouge87.h
deleted file mode 100644
index 67dcefde26..0000000000
--- a/keyboards/mechlovin/infinity87/rev1/rouge87/rouge87.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright 2020 Team Mechlovin'
- *
- * 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_all( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, K0G, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \
- K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
- K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \
- K50, K51, K52, K56, K5B, K5C, K5D, K5E, K5F, K5G \
-) { \
- { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E, K0F, K0G }, \
- { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \
- { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO}, \
- { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, KC_NO, K4D, KC_NO, K4F, KC_NO}, \
- { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, KC_NO, K5B, K5C, K5D, K5E, K5F, K5G }, \
-}
-
diff --git a/keyboards/mechlovin/infinity87/rev1/standard/config.h b/keyboards/mechlovin/infinity87/rev1/standard/config.h
index b3ae5a7717..c7e4f601e1 100644
--- a/keyboards/mechlovin/infinity87/rev1/standard/config.h
+++ b/keyboards/mechlovin/infinity87/rev1/standard/config.h
@@ -16,10 +16,6 @@
#pragma once
-#define PRODUCT_ID 0x8701
-#define DEVICE_VER 0x0001
-#define PRODUCT Infinity 87 rev1
-
#define RGB_DI_PIN A15
#define RGBLED_NUM 26
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
diff --git a/keyboards/mechlovin/infinity87/rev1/standard/info.json b/keyboards/mechlovin/infinity87/rev1/standard/info.json
index da67c40c39..29597cce3f 100644
--- a/keyboards/mechlovin/infinity87/rev1/standard/info.json
+++ b/keyboards/mechlovin/infinity87/rev1/standard/info.json
@@ -1,101 +1,120 @@
{
- "keyboard_name": "infinity87",
+ "keyboard_name": "infinity87 Rev.1",
+ "manufacturer": "Mechlovin.Studio",
"url": "",
"maintainer": "Team Mechlovin'",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0x8701",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
- {"label":"K00 (B0,B6)", "x":0, "y":0},
- {"label":"K01 (B0,F4)", "x":2, "y":0},
- {"label":"K02 (B0,C0)", "x":3, "y":0},
- {"label":"K03 (B0,C1)", "x":4, "y":0},
- {"label":"K04 (B0,C2)", "x":5, "y":0},
- {"label":"K05 (B0,C3)", "x":6.5, "y":0},
- {"label":"K06 (B0,C4)", "x":7.5, "y":0},
- {"label":"K07 (B0,C5)", "x":8.5, "y":0},
- {"label":"K08 (B0,C6)", "x":9.5, "y":0},
- {"label":"K09 (B0,C7)", "x":11, "y":0},
- {"label":"K0A (B0,D0)", "x":12, "y":0},
- {"label":"K0B (B0,D1)", "x":13, "y":0},
- {"label":"K0C (B0,D2)", "x":14, "y":0},
- {"label":"K0E (B0,D4)", "x":15.25, "y":0},
- {"label":"K0F (B0,D5)", "x":16.25, "y":0},
- {"label":"K0G (B0,D6)", "x":17.25, "y":0},
- {"label":"K10 (B1,B6)", "x":0, "y":1.25},
- {"label":"K11 (B1,F4)", "x":1, "y":1.25},
- {"label":"K12 (B1,C0)", "x":2, "y":1.25},
- {"label":"K13 (B1,C1)", "x":3, "y":1.25},
- {"label":"K14 (B1,C2)", "x":4, "y":1.25},
- {"label":"K15 (B1,C3)", "x":5, "y":1.25},
- {"label":"K16 (B1,C4)", "x":6, "y":1.25},
- {"label":"K17 (B1,C5)", "x":7, "y":1.25},
- {"label":"K18 (B1,C6)", "x":8, "y":1.25},
- {"label":"K19 (B1,C7)", "x":9, "y":1.25},
- {"label":"K1A (B1,D0)", "x":10, "y":1.25},
- {"label":"K1B (B1,D1)", "x":11, "y":1.25},
- {"label":"K1C (B1,D2)", "x":12, "y":1.25},
- {"label":"K1D (B1,D3)", "x":13, "y":1.25},
- {"label":"K0D (B0,D3)", "x":14, "y":1.25},
- {"label":"K1E (B1,D4)", "x":15.25, "y":1.25},
- {"label":"K1F (B1,D5)", "x":16.25, "y":1.25},
- {"label":"K1G (B1,D6)", "x":17.25, "y":1.25},
- {"label":"K20 (B2,B6)", "x":0, "y":2.25, "w":1.5},
- {"label":"K21 (B2,F4)", "x":1.5, "y":2.25},
- {"label":"K22 (B2,C0)", "x":2.5, "y":2.25},
- {"label":"K23 (B2,C1)", "x":3.5, "y":2.25},
- {"label":"K24 (B2,C2)", "x":4.5, "y":2.25},
- {"label":"K25 (B2,C3)", "x":5.5, "y":2.25},
- {"label":"K26 (B2,C4)", "x":6.5, "y":2.25},
- {"label":"K27 (B2,C5)", "x":7.5, "y":2.25},
- {"label":"K28 (B2,C6)", "x":8.5, "y":2.25},
- {"label":"K29 (B2,C7)", "x":9.5, "y":2.25},
- {"label":"K2A (B2,D0)", "x":10.5, "y":2.25},
- {"label":"K2B (B2,D1)", "x":11.5, "y":2.25},
- {"label":"K2C (B2,D2)", "x":12.5, "y":2.25},
- {"label":"K2D (B2,D3)", "x":13.5, "y":2.25, "w":1.5},
- {"label":"K2E (B2,D4)", "x":15.25, "y":2.25},
- {"label":"K2F (B2,D5)", "x":16.25, "y":2.25},
- {"label":"K2G (B2,D6)", "x":17.25, "y":2.25},
- {"label":"K30 (B3,B6)", "x":0, "y":3.25, "w":1.75},
- {"label":"K31 (B3,F4)", "x":1.75, "y":3.25},
- {"label":"K32 (B3,C0)", "x":2.75, "y":3.25},
- {"label":"K33 (B3,C1)", "x":3.75, "y":3.25},
- {"label":"K34 (B3,C2)", "x":4.75, "y":3.25},
- {"label":"K35 (B3,C3)", "x":5.75, "y":3.25},
- {"label":"K36 (B3,C4)", "x":6.75, "y":3.25},
- {"label":"K37 (B3,C5)", "x":7.75, "y":3.25},
- {"label":"K38 (B3,C6)", "x":8.75, "y":3.25},
- {"label":"K39 (B3,C7)", "x":9.75, "y":3.25},
- {"label":"K3A (B3,D0)", "x":10.75, "y":3.25},
- {"label":"K3B (B3,D1)", "x":11.75, "y":3.25},
- {"label":"K3C (B3,D2)", "x":12.75, "y":3.25},
- {"label":"K3D (B3,D3)", "x":13.75, "y":3.25, "w":1.25},
- {"label":"K40 (B4,B6)", "x":0, "y":4.25, "w":1.25},
- {"label":"K41 (B4,F4)", "x":1.25, "y":4.25},
- {"label":"K42 (B4,C0)", "x":2.25, "y":4.25},
- {"label":"K43 (B4,C1)", "x":3.25, "y":4.25},
- {"label":"K44 (B4,C2)", "x":4.25, "y":4.25},
- {"label":"K45 (B4,C3)", "x":5.25, "y":4.25},
- {"label":"K46 (B4,C4)", "x":6.25, "y":4.25},
- {"label":"K47 (B4,C5)", "x":7.25, "y":4.25},
- {"label":"K48 (B4,C6)", "x":8.25, "y":4.25},
- {"label":"K49 (B4,C7)", "x":9.25, "y":4.25},
- {"label":"K4A (B4,D0)", "x":10.25, "y":4.25},
- {"label":"K4B (B4,D1)", "x":11.25, "y":4.25},
- {"label":"K4C (B4,D2)", "x":12.25, "y":4.25, "w":1.75},
- {"label":"K4D (B4,D3)", "x":14, "y":4.25},
- {"label":"K4F (B4,D5)", "x":16.25, "y":4.25},
- {"label":"K50 (B5,B6)", "x":0, "y":5.25, "w":1.25},
- {"label":"K51 (B5,F4)", "x":1.25, "y":5.25, "w":1.25},
- {"label":"K52 (B5,C0)", "x":2.5, "y":5.25, "w":1.25},
- {"label":"K56 (B5,C4)", "x":3.75, "y":5.25, "w":6.25},
- {"label":"K5A (B5,D0)", "x":10, "y":5.25, "w":1.25},
- {"label":"K5B (B5,D1)", "x":11.25, "y":5.25, "w":1.25},
- {"label":"K5C (B5,D2)", "x":12.5, "y":5.25, "w":1.25},
- {"label":"K5D (B5,D3)", "x":13.75, "y":5.25, "w":1.25},
- {"label":"K5E (B5,D4)", "x":15.25, "y":5.25},
- {"label":"K5F (B5,D5)", "x":16.25, "y":5.25},
- {"label":"K5G (B5,D6)", "x":17.25, "y":5.25}
+ {"label":"K00 (B0,B6)", "x":0, "y":0, "matrix": [0, 0]},
+
+ {"label":"K01 (B0,F4)", "x":2, "y":0, "matrix": [0, 1]},
+ {"label":"K02 (B0,C0)", "x":3, "y":0, "matrix": [0, 2]},
+ {"label":"K03 (B0,C1)", "x":4, "y":0, "matrix": [0, 3]},
+ {"label":"K04 (B0,C2)", "x":5, "y":0, "matrix": [0, 4]},
+
+ {"label":"K05 (B0,C3)", "x":6.5, "y":0, "matrix": [0, 5]},
+ {"label":"K06 (B0,C4)", "x":7.5, "y":0, "matrix": [0, 6]},
+ {"label":"K07 (B0,C5)", "x":8.5, "y":0, "matrix": [0, 7]},
+ {"label":"K08 (B0,C6)", "x":9.5, "y":0, "matrix": [0, 8]},
+
+ {"label":"K09 (B0,C7)", "x":11, "y":0, "matrix": [0, 9]},
+ {"label":"K0A (B0,D0)", "x":12, "y":0, "matrix": [0, 10]},
+ {"label":"K0B (B0,D1)", "x":13, "y":0, "matrix": [0, 11]},
+ {"label":"K0C (B0,D2)", "x":14, "y":0, "matrix": [0, 12]},
+
+ {"label":"K0E (B0,D4)", "x":15.25, "y":0, "matrix": [0, 14]},
+ {"label":"K0F (B0,D5)", "x":16.25, "y":0, "matrix": [0, 15]},
+ {"label":"K0G (B0,D6)", "x":17.25, "y":0, "matrix": [0, 16]},
+
+ {"label":"K10 (B1,B6)", "x":0, "y":1.25, "matrix": [1, 0]},
+ {"label":"K11 (B1,F4)", "x":1, "y":1.25, "matrix": [1, 1]},
+ {"label":"K12 (B1,C0)", "x":2, "y":1.25, "matrix": [1, 2]},
+ {"label":"K13 (B1,C1)", "x":3, "y":1.25, "matrix": [1, 3]},
+ {"label":"K14 (B1,C2)", "x":4, "y":1.25, "matrix": [1, 4]},
+ {"label":"K15 (B1,C3)", "x":5, "y":1.25, "matrix": [1, 5]},
+ {"label":"K16 (B1,C4)", "x":6, "y":1.25, "matrix": [1, 6]},
+ {"label":"K17 (B1,C5)", "x":7, "y":1.25, "matrix": [1, 7]},
+ {"label":"K18 (B1,C6)", "x":8, "y":1.25, "matrix": [1, 8]},
+ {"label":"K19 (B1,C7)", "x":9, "y":1.25, "matrix": [1, 9]},
+ {"label":"K1A (B1,D0)", "x":10, "y":1.25, "matrix": [1, 10]},
+ {"label":"K1B (B1,D1)", "x":11, "y":1.25, "matrix": [1, 11]},
+ {"label":"K1C (B1,D2)", "x":12, "y":1.25, "matrix": [1, 12]},
+ {"label":"K1D (B1,D3)", "x":13, "y":1.25, "matrix": [1, 13]},
+ {"label":"K0D (B0,D3)", "x":14, "y":1.25, "matrix": [0, 13]},
+
+ {"label":"K1E (B1,D4)", "x":15.25, "y":1.25, "matrix": [1, 14]},
+ {"label":"K1F (B1,D5)", "x":16.25, "y":1.25, "matrix": [1, 15]},
+ {"label":"K1G (B1,D6)", "x":17.25, "y":1.25, "matrix": [1, 16]},
+
+ {"label":"K20 (B2,B6)", "x":0, "y":2.25, "w":1.5, "matrix": [2, 0]},
+ {"label":"K21 (B2,F4)", "x":1.5, "y":2.25, "matrix": [2, 1]},
+ {"label":"K22 (B2,C0)", "x":2.5, "y":2.25, "matrix": [2, 2]},
+ {"label":"K23 (B2,C1)", "x":3.5, "y":2.25, "matrix": [2, 3]},
+ {"label":"K24 (B2,C2)", "x":4.5, "y":2.25, "matrix": [2, 4]},
+ {"label":"K25 (B2,C3)", "x":5.5, "y":2.25, "matrix": [2, 5]},
+ {"label":"K26 (B2,C4)", "x":6.5, "y":2.25, "matrix": [2, 6]},
+ {"label":"K27 (B2,C5)", "x":7.5, "y":2.25, "matrix": [2, 7]},
+ {"label":"K28 (B2,C6)", "x":8.5, "y":2.25, "matrix": [2, 8]},
+ {"label":"K29 (B2,C7)", "x":9.5, "y":2.25, "matrix": [2, 9]},
+ {"label":"K2A (B2,D0)", "x":10.5, "y":2.25, "matrix": [2, 10]},
+ {"label":"K2B (B2,D1)", "x":11.5, "y":2.25, "matrix": [2, 11]},
+ {"label":"K2C (B2,D2)", "x":12.5, "y":2.25, "matrix": [2, 12]},
+ {"label":"K2D (B2,D3)", "x":13.5, "y":2.25, "w":1.5, "matrix": [2, 13]},
+
+ {"label":"K2E (B2,D4)", "x":15.25, "y":2.25, "matrix": [2, 14]},
+ {"label":"K2F (B2,D5)", "x":16.25, "y":2.25, "matrix": [2, 15]},
+ {"label":"K2G (B2,D6)", "x":17.25, "y":2.25, "matrix": [2, 16]},
+
+ {"label":"K30 (B3,B6)", "x":0, "y":3.25, "w":1.75, "matrix": [3, 0]},
+ {"label":"K31 (B3,F4)", "x":1.75, "y":3.25, "matrix": [3, 1]},
+ {"label":"K32 (B3,C0)", "x":2.75, "y":3.25, "matrix": [3, 2]},
+ {"label":"K33 (B3,C1)", "x":3.75, "y":3.25, "matrix": [3, 3]},
+ {"label":"K34 (B3,C2)", "x":4.75, "y":3.25, "matrix": [3, 4]},
+ {"label":"K35 (B3,C3)", "x":5.75, "y":3.25, "matrix": [3, 5]},
+ {"label":"K36 (B3,C4)", "x":6.75, "y":3.25, "matrix": [3, 6]},
+ {"label":"K37 (B3,C5)", "x":7.75, "y":3.25, "matrix": [3, 7]},
+ {"label":"K38 (B3,C6)", "x":8.75, "y":3.25, "matrix": [3, 8]},
+ {"label":"K39 (B3,C7)", "x":9.75, "y":3.25, "matrix": [3, 9]},
+ {"label":"K3A (B3,D0)", "x":10.75, "y":3.25, "matrix": [3, 10]},
+ {"label":"K3B (B3,D1)", "x":11.75, "y":3.25, "matrix": [3, 11]},
+ {"label":"K3C (B3,D2)", "x":12.75, "y":3.25, "matrix": [3, 12]},
+ {"label":"K3D (B3,D3)", "x":13.75, "y":3.25, "w":1.25, "matrix": [3, 13]},
+
+ {"label":"K40 (B4,B6)", "x":0, "y":4.25, "w":1.25, "matrix": [4, 0]},
+ {"label":"K41 (B4,F4)", "x":1.25, "y":4.25, "matrix": [4, 1]},
+ {"label":"K42 (B4,C0)", "x":2.25, "y":4.25, "matrix": [4, 2]},
+ {"label":"K43 (B4,C1)", "x":3.25, "y":4.25, "matrix": [4, 3]},
+ {"label":"K44 (B4,C2)", "x":4.25, "y":4.25, "matrix": [4, 4]},
+ {"label":"K45 (B4,C3)", "x":5.25, "y":4.25, "matrix": [4, 5]},
+ {"label":"K46 (B4,C4)", "x":6.25, "y":4.25, "matrix": [4, 6]},
+ {"label":"K47 (B4,C5)", "x":7.25, "y":4.25, "matrix": [4, 7]},
+ {"label":"K48 (B4,C6)", "x":8.25, "y":4.25, "matrix": [4, 8]},
+ {"label":"K49 (B4,C7)", "x":9.25, "y":4.25, "matrix": [4, 9]},
+ {"label":"K4A (B4,D0)", "x":10.25, "y":4.25, "matrix": [4, 10]},
+ {"label":"K4B (B4,D1)", "x":11.25, "y":4.25, "matrix": [4, 11]},
+ {"label":"K4C (B4,D2)", "x":12.25, "y":4.25, "w":1.75, "matrix": [4, 12]},
+ {"label":"K4D (B4,D3)", "x":14, "y":4.25, "matrix": [4, 13]},
+
+ {"label":"K4F (B4,D5)", "x":16.25, "y":4.25, "matrix": [4, 15]},
+
+ {"label":"K50 (B5,B6)", "x":0, "y":5.25, "w":1.25, "matrix": [5, 0]},
+ {"label":"K51 (B5,F4)", "x":1.25, "y":5.25, "w":1.25, "matrix": [5, 1]},
+ {"label":"K52 (B5,C0)", "x":2.5, "y":5.25, "w":1.25, "matrix": [5, 2]},
+ {"label":"K56 (B5,C4)", "x":3.75, "y":5.25, "w":6.25, "matrix": [5, 6]},
+ {"label":"K5A (B5,D0)", "x":10, "y":5.25, "w":1.25, "matrix": [5, 10]},
+ {"label":"K5B (B5,D1)", "x":11.25, "y":5.25, "w":1.25, "matrix": [5, 11]},
+ {"label":"K5C (B5,D2)", "x":12.5, "y":5.25, "w":1.25, "matrix": [5, 12]},
+ {"label":"K5D (B5,D3)", "x":13.75, "y":5.25, "w":1.25, "matrix": [5, 13]},
+
+ {"label":"K5E (B5,D4)", "x":15.25, "y":5.25, "matrix": [5, 14]},
+ {"label":"K5F (B5,D5)", "x":16.25, "y":5.25, "matrix": [5, 15]},
+ {"label":"K5G (B5,D6)", "x":17.25, "y":5.25, "matrix": [5, 16]}
]
}
}
diff --git a/keyboards/mechlovin/infinity87/rev2/config.h b/keyboards/mechlovin/infinity87/rev2/config.h
index 575e826a9b..65eaa9a7fa 100644
--- a/keyboards/mechlovin/infinity87/rev2/config.h
+++ b/keyboards/mechlovin/infinity87/rev2/config.h
@@ -16,10 +16,6 @@
#pragma once
-#define PRODUCT_ID 0x8702
-#define DEVICE_VER 0x0001
-#define PRODUCT Infinity87 rev.2
-
/*
* Keyboard Matrix Assignments
*
@@ -31,7 +27,6 @@
*
*/
#define MATRIX_ROW_PINS { D5, D2, D4, D3, D0, D1 }
-#define UNUSED_PINS
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION ROW2COL
diff --git a/keyboards/mechlovin/infinity87/rev2/info.json b/keyboards/mechlovin/infinity87/rev2/info.json
index fa6073912c..62aa3cfeb0 100644
--- a/keyboards/mechlovin/infinity87/rev2/info.json
+++ b/keyboards/mechlovin/infinity87/rev2/info.json
@@ -1,101 +1,120 @@
{
- "keyboard_name": "infinity87 Rev.2",
+ "keyboard_name": "Infinity87 Rev.2",
+ "manufacturer": "Mechlovin.Studio",
"url": "",
"maintainer": "Mechlovin' Studio",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0x8702",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
- {"label":"K00 (B0,B6)", "x":0, "y":0},
- {"label":"K01 (B0,F4)", "x":2, "y":0},
- {"label":"K02 (B0,C0)", "x":3, "y":0},
- {"label":"K03 (B0,C1)", "x":4, "y":0},
- {"label":"K04 (B0,C2)", "x":5, "y":0},
- {"label":"K05 (B0,C3)", "x":6.5, "y":0},
- {"label":"K06 (B0,C4)", "x":7.5, "y":0},
- {"label":"K07 (B0,C5)", "x":8.5, "y":0},
- {"label":"K08 (B0,C6)", "x":9.5, "y":0},
- {"label":"K09 (B0,C7)", "x":11, "y":0},
- {"label":"K0A (B0,D0)", "x":12, "y":0},
- {"label":"K0B (B0,D1)", "x":13, "y":0},
- {"label":"K0C (B0,D2)", "x":14, "y":0},
- {"label":"K0E (B0,D4)", "x":15.25, "y":0},
- {"label":"K0F (B0,D5)", "x":16.25, "y":0},
- {"label":"K0G (B0,D6)", "x":17.25, "y":0},
- {"label":"K10 (B1,B6)", "x":0, "y":1.25},
- {"label":"K11 (B1,F4)", "x":1, "y":1.25},
- {"label":"K12 (B1,C0)", "x":2, "y":1.25},
- {"label":"K13 (B1,C1)", "x":3, "y":1.25},
- {"label":"K14 (B1,C2)", "x":4, "y":1.25},
- {"label":"K15 (B1,C3)", "x":5, "y":1.25},
- {"label":"K16 (B1,C4)", "x":6, "y":1.25},
- {"label":"K17 (B1,C5)", "x":7, "y":1.25},
- {"label":"K18 (B1,C6)", "x":8, "y":1.25},
- {"label":"K19 (B1,C7)", "x":9, "y":1.25},
- {"label":"K1A (B1,D0)", "x":10, "y":1.25},
- {"label":"K1B (B1,D1)", "x":11, "y":1.25},
- {"label":"K1C (B1,D2)", "x":12, "y":1.25},
- {"label":"K1D (B1,D3)", "x":13, "y":1.25},
- {"label":"K0D (B0,D3)", "x":14, "y":1.25},
- {"label":"K1E (B1,D4)", "x":15.25, "y":1.25},
- {"label":"K1F (B1,D5)", "x":16.25, "y":1.25},
- {"label":"K1G (B1,D6)", "x":17.25, "y":1.25},
- {"label":"K20 (B2,B6)", "x":0, "y":2.25, "w":1.5},
- {"label":"K21 (B2,F4)", "x":1.5, "y":2.25},
- {"label":"K22 (B2,C0)", "x":2.5, "y":2.25},
- {"label":"K23 (B2,C1)", "x":3.5, "y":2.25},
- {"label":"K24 (B2,C2)", "x":4.5, "y":2.25},
- {"label":"K25 (B2,C3)", "x":5.5, "y":2.25},
- {"label":"K26 (B2,C4)", "x":6.5, "y":2.25},
- {"label":"K27 (B2,C5)", "x":7.5, "y":2.25},
- {"label":"K28 (B2,C6)", "x":8.5, "y":2.25},
- {"label":"K29 (B2,C7)", "x":9.5, "y":2.25},
- {"label":"K2A (B2,D0)", "x":10.5, "y":2.25},
- {"label":"K2B (B2,D1)", "x":11.5, "y":2.25},
- {"label":"K2C (B2,D2)", "x":12.5, "y":2.25},
- {"label":"K2D (B2,D3)", "x":13.5, "y":2.25, "w":1.5},
- {"label":"K2E (B2,D4)", "x":15.25, "y":2.25},
- {"label":"K2F (B2,D5)", "x":16.25, "y":2.25},
- {"label":"K2G (B2,D6)", "x":17.25, "y":2.25},
- {"label":"K30 (B3,B6)", "x":0, "y":3.25, "w":1.75},
- {"label":"K31 (B3,F4)", "x":1.75, "y":3.25},
- {"label":"K32 (B3,C0)", "x":2.75, "y":3.25},
- {"label":"K33 (B3,C1)", "x":3.75, "y":3.25},
- {"label":"K34 (B3,C2)", "x":4.75, "y":3.25},
- {"label":"K35 (B3,C3)", "x":5.75, "y":3.25},
- {"label":"K36 (B3,C4)", "x":6.75, "y":3.25},
- {"label":"K37 (B3,C5)", "x":7.75, "y":3.25},
- {"label":"K38 (B3,C6)", "x":8.75, "y":3.25},
- {"label":"K39 (B3,C7)", "x":9.75, "y":3.25},
- {"label":"K3A (B3,D0)", "x":10.75, "y":3.25},
- {"label":"K3B (B3,D1)", "x":11.75, "y":3.25},
- {"label":"K3C (B3,D2)", "x":12.75, "y":3.25},
- {"label":"K3D (B3,D3)", "x":13.75, "y":3.25, "w":1.25},
- {"label":"K40 (B4,B6)", "x":0, "y":4.25, "w":1.25},
- {"label":"K41 (B4,F4)", "x":1.25, "y":4.25},
- {"label":"K42 (B4,C0)", "x":2.25, "y":4.25},
- {"label":"K43 (B4,C1)", "x":3.25, "y":4.25},
- {"label":"K44 (B4,C2)", "x":4.25, "y":4.25},
- {"label":"K45 (B4,C3)", "x":5.25, "y":4.25},
- {"label":"K46 (B4,C4)", "x":6.25, "y":4.25},
- {"label":"K47 (B4,C5)", "x":7.25, "y":4.25},
- {"label":"K48 (B4,C6)", "x":8.25, "y":4.25},
- {"label":"K49 (B4,C7)", "x":9.25, "y":4.25},
- {"label":"K4A (B4,D0)", "x":10.25, "y":4.25},
- {"label":"K4B (B4,D1)", "x":11.25, "y":4.25},
- {"label":"K4C (B4,D2)", "x":12.25, "y":4.25, "w":1.75},
- {"label":"K4D (B4,D3)", "x":14, "y":4.25},
- {"label":"K4F (B4,D5)", "x":16.25, "y":4.25},
- {"label":"K50 (B5,B6)", "x":0, "y":5.25, "w":1.25},
- {"label":"K51 (B5,F4)", "x":1.25, "y":5.25, "w":1.25},
- {"label":"K52 (B5,C0)", "x":2.5, "y":5.25, "w":1.25},
- {"label":"K56 (B5,C4)", "x":3.75, "y":5.25, "w":6.25},
- {"label":"K5A (B5,D0)", "x":10, "y":5.25, "w":1.25},
- {"label":"K5B (B5,D1)", "x":11.25, "y":5.25, "w":1.25},
- {"label":"K5C (B5,D2)", "x":12.5, "y":5.25, "w":1.25},
- {"label":"K5D (B5,D3)", "x":13.75, "y":5.25, "w":1.25},
- {"label":"K5E (B5,D4)", "x":15.25, "y":5.25},
- {"label":"K5F (B5,D5)", "x":16.25, "y":5.25},
- {"label":"K5G (B5,D6)", "x":17.25, "y":5.25}
+ {"label":"K00 (B0,B6)", "x":0, "y":0, "matrix": [0, 0]},
+
+ {"label":"K01 (B0,F4)", "x":2, "y":0, "matrix": [0, 1]},
+ {"label":"K02 (B0,C0)", "x":3, "y":0, "matrix": [0, 2]},
+ {"label":"K03 (B0,C1)", "x":4, "y":0, "matrix": [0, 3]},
+ {"label":"K04 (B0,C2)", "x":5, "y":0, "matrix": [0, 4]},
+
+ {"label":"K05 (B0,C3)", "x":6.5, "y":0, "matrix": [0, 5]},
+ {"label":"K06 (B0,C4)", "x":7.5, "y":0, "matrix": [0, 6]},
+ {"label":"K07 (B0,C5)", "x":8.5, "y":0, "matrix": [0, 7]},
+ {"label":"K08 (B0,C6)", "x":9.5, "y":0, "matrix": [0, 8]},
+
+ {"label":"K09 (B0,C7)", "x":11, "y":0, "matrix": [0, 9]},
+ {"label":"K0A (B0,D0)", "x":12, "y":0, "matrix": [0, 10]},
+ {"label":"K0B (B0,D1)", "x":13, "y":0, "matrix": [0, 11]},
+ {"label":"K0C (B0,D2)", "x":14, "y":0, "matrix": [0, 12]},
+
+ {"label":"K0E (B0,D4)", "x":15.25, "y":0, "matrix": [0, 14]},
+ {"label":"K0F (B0,D5)", "x":16.25, "y":0, "matrix": [0, 15]},
+ {"label":"K0G (B0,D6)", "x":17.25, "y":0, "matrix": [0, 16]},
+
+ {"label":"K10 (B1,B6)", "x":0, "y":1.25, "matrix": [1, 0]},
+ {"label":"K11 (B1,F4)", "x":1, "y":1.25, "matrix": [1, 1]},
+ {"label":"K12 (B1,C0)", "x":2, "y":1.25, "matrix": [1, 2]},
+ {"label":"K13 (B1,C1)", "x":3, "y":1.25, "matrix": [1, 3]},
+ {"label":"K14 (B1,C2)", "x":4, "y":1.25, "matrix": [1, 4]},
+ {"label":"K15 (B1,C3)", "x":5, "y":1.25, "matrix": [1, 5]},
+ {"label":"K16 (B1,C4)", "x":6, "y":1.25, "matrix": [1, 6]},
+ {"label":"K17 (B1,C5)", "x":7, "y":1.25, "matrix": [1, 7]},
+ {"label":"K18 (B1,C6)", "x":8, "y":1.25, "matrix": [1, 8]},
+ {"label":"K19 (B1,C7)", "x":9, "y":1.25, "matrix": [1, 9]},
+ {"label":"K1A (B1,D0)", "x":10, "y":1.25, "matrix": [1, 10]},
+ {"label":"K1B (B1,D1)", "x":11, "y":1.25, "matrix": [1, 11]},
+ {"label":"K1C (B1,D2)", "x":12, "y":1.25, "matrix": [1, 12]},
+ {"label":"K1D (B1,D3)", "x":13, "y":1.25, "matrix": [1, 13]},
+ {"label":"K0D (B0,D3)", "x":14, "y":1.25, "matrix": [0, 13]},
+
+ {"label":"K1E (B1,D4)", "x":15.25, "y":1.25, "matrix": [1, 14]},
+ {"label":"K1F (B1,D5)", "x":16.25, "y":1.25, "matrix": [1, 15]},
+ {"label":"K1G (B1,D6)", "x":17.25, "y":1.25, "matrix": [1, 16]},
+
+ {"label":"K20 (B2,B6)", "x":0, "y":2.25, "w":1.5, "matrix": [2, 0]},
+ {"label":"K21 (B2,F4)", "x":1.5, "y":2.25, "matrix": [2, 1]},
+ {"label":"K22 (B2,C0)", "x":2.5, "y":2.25, "matrix": [2, 2]},
+ {"label":"K23 (B2,C1)", "x":3.5, "y":2.25, "matrix": [2, 3]},
+ {"label":"K24 (B2,C2)", "x":4.5, "y":2.25, "matrix": [2, 4]},
+ {"label":"K25 (B2,C3)", "x":5.5, "y":2.25, "matrix": [2, 5]},
+ {"label":"K26 (B2,C4)", "x":6.5, "y":2.25, "matrix": [2, 6]},
+ {"label":"K27 (B2,C5)", "x":7.5, "y":2.25, "matrix": [2, 7]},
+ {"label":"K28 (B2,C6)", "x":8.5, "y":2.25, "matrix": [2, 8]},
+ {"label":"K29 (B2,C7)", "x":9.5, "y":2.25, "matrix": [2, 9]},
+ {"label":"K2A (B2,D0)", "x":10.5, "y":2.25, "matrix": [2, 10]},
+ {"label":"K2B (B2,D1)", "x":11.5, "y":2.25, "matrix": [2, 11]},
+ {"label":"K2C (B2,D2)", "x":12.5, "y":2.25, "matrix": [2, 12]},
+ {"label":"K2D (B2,D3)", "x":13.5, "y":2.25, "w":1.5, "matrix": [2, 13]},
+
+ {"label":"K2E (B2,D4)", "x":15.25, "y":2.25, "matrix": [2, 14]},
+ {"label":"K2F (B2,D5)", "x":16.25, "y":2.25, "matrix": [2, 15]},
+ {"label":"K2G (B2,D6)", "x":17.25, "y":2.25, "matrix": [2, 16]},
+
+ {"label":"K30 (B3,B6)", "x":0, "y":3.25, "w":1.75, "matrix": [3, 0]},
+ {"label":"K31 (B3,F4)", "x":1.75, "y":3.25, "matrix": [3, 1]},
+ {"label":"K32 (B3,C0)", "x":2.75, "y":3.25, "matrix": [3, 2]},
+ {"label":"K33 (B3,C1)", "x":3.75, "y":3.25, "matrix": [3, 3]},
+ {"label":"K34 (B3,C2)", "x":4.75, "y":3.25, "matrix": [3, 4]},
+ {"label":"K35 (B3,C3)", "x":5.75, "y":3.25, "matrix": [3, 5]},
+ {"label":"K36 (B3,C4)", "x":6.75, "y":3.25, "matrix": [3, 6]},
+ {"label":"K37 (B3,C5)", "x":7.75, "y":3.25, "matrix": [3, 7]},
+ {"label":"K38 (B3,C6)", "x":8.75, "y":3.25, "matrix": [3, 8]},
+ {"label":"K39 (B3,C7)", "x":9.75, "y":3.25, "matrix": [3, 9]},
+ {"label":"K3A (B3,D0)", "x":10.75, "y":3.25, "matrix": [3, 10]},
+ {"label":"K3B (B3,D1)", "x":11.75, "y":3.25, "matrix": [3, 11]},
+ {"label":"K3C (B3,D2)", "x":12.75, "y":3.25, "matrix": [3, 12]},
+ {"label":"K3D (B3,D3)", "x":13.75, "y":3.25, "w":1.25, "matrix": [3, 13]},
+
+ {"label":"K40 (B4,B6)", "x":0, "y":4.25, "w":1.25, "matrix": [4, 0]},
+ {"label":"K41 (B4,F4)", "x":1.25, "y":4.25, "matrix": [4, 1]},
+ {"label":"K42 (B4,C0)", "x":2.25, "y":4.25, "matrix": [4, 2]},
+ {"label":"K43 (B4,C1)", "x":3.25, "y":4.25, "matrix": [4, 3]},
+ {"label":"K44 (B4,C2)", "x":4.25, "y":4.25, "matrix": [4, 4]},
+ {"label":"K45 (B4,C3)", "x":5.25, "y":4.25, "matrix": [4, 5]},
+ {"label":"K46 (B4,C4)", "x":6.25, "y":4.25, "matrix": [4, 6]},
+ {"label":"K47 (B4,C5)", "x":7.25, "y":4.25, "matrix": [4, 7]},
+ {"label":"K48 (B4,C6)", "x":8.25, "y":4.25, "matrix": [4, 8]},
+ {"label":"K49 (B4,C7)", "x":9.25, "y":4.25, "matrix": [4, 9]},
+ {"label":"K4A (B4,D0)", "x":10.25, "y":4.25, "matrix": [4, 10]},
+ {"label":"K4B (B4,D1)", "x":11.25, "y":4.25, "matrix": [4, 11]},
+ {"label":"K4C (B4,D2)", "x":12.25, "y":4.25, "w":1.75, "matrix": [4, 12]},
+ {"label":"K4D (B4,D3)", "x":14, "y":4.25, "matrix": [4, 13]},
+
+ {"label":"K4F (B4,D5)", "x":16.25, "y":4.25, "matrix": [4, 15]},
+
+ {"label":"K50 (B5,B6)", "x":0, "y":5.25, "w":1.25, "matrix": [5, 0]},
+ {"label":"K51 (B5,F4)", "x":1.25, "y":5.25, "w":1.25, "matrix": [5, 1]},
+ {"label":"K52 (B5,C0)", "x":2.5, "y":5.25, "w":1.25, "matrix": [5, 2]},
+ {"label":"K56 (B5,C4)", "x":3.75, "y":5.25, "w":6.25, "matrix": [5, 6]},
+ {"label":"K5A (B5,D0)", "x":10, "y":5.25, "w":1.25, "matrix": [5, 10]},
+ {"label":"K5B (B5,D1)", "x":11.25, "y":5.25, "w":1.25, "matrix": [5, 11]},
+ {"label":"K5C (B5,D2)", "x":12.5, "y":5.25, "w":1.25, "matrix": [5, 12]},
+ {"label":"K5D (B5,D3)", "x":13.75, "y":5.25, "w":1.25, "matrix": [5, 13]},
+
+ {"label":"K5E (B5,D4)", "x":15.25, "y":5.25, "matrix": [5, 14]},
+ {"label":"K5F (B5,D5)", "x":16.25, "y":5.25, "matrix": [5, 15]},
+ {"label":"K5G (B5,D6)", "x":17.25, "y":5.25, "matrix": [5, 16]}
]
}
}
diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/config.h b/keyboards/mechlovin/infinity87/rgb_rev1/config.h
index 5b1a68308b..3c2ffd4b9f 100644
--- a/keyboards/mechlovin/infinity87/rgb_rev1/config.h
+++ b/keyboards/mechlovin/infinity87/rgb_rev1/config.h
@@ -16,10 +16,6 @@
#pragma once
-#define PRODUCT_ID 0x8710
-#define DEVICE_VER 0x0001
-#define PRODUCT Infinity 87 RGB rev1
-
#define MATRIX_ROW_PINS { A10, A13, A14, C13, A4, A3 }
#define MATRIX_COL_PINS { B12, B13, B14, B15, A8, A9, B11, B10, B2, B1, B0, A7, A6, A5, A2, A1, A0 }
diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/info.json b/keyboards/mechlovin/infinity87/rgb_rev1/info.json
index da67c40c39..fc308175cf 100644
--- a/keyboards/mechlovin/infinity87/rgb_rev1/info.json
+++ b/keyboards/mechlovin/infinity87/rgb_rev1/info.json
@@ -1,101 +1,120 @@
{
- "keyboard_name": "infinity87",
+ "keyboard_name": "Infinity87 RGB Rev1",
+ "manufacturer": "Mechlovin.Studio",
"url": "",
"maintainer": "Team Mechlovin'",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0x8710",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
- {"label":"K00 (B0,B6)", "x":0, "y":0},
- {"label":"K01 (B0,F4)", "x":2, "y":0},
- {"label":"K02 (B0,C0)", "x":3, "y":0},
- {"label":"K03 (B0,C1)", "x":4, "y":0},
- {"label":"K04 (B0,C2)", "x":5, "y":0},
- {"label":"K05 (B0,C3)", "x":6.5, "y":0},
- {"label":"K06 (B0,C4)", "x":7.5, "y":0},
- {"label":"K07 (B0,C5)", "x":8.5, "y":0},
- {"label":"K08 (B0,C6)", "x":9.5, "y":0},
- {"label":"K09 (B0,C7)", "x":11, "y":0},
- {"label":"K0A (B0,D0)", "x":12, "y":0},
- {"label":"K0B (B0,D1)", "x":13, "y":0},
- {"label":"K0C (B0,D2)", "x":14, "y":0},
- {"label":"K0E (B0,D4)", "x":15.25, "y":0},
- {"label":"K0F (B0,D5)", "x":16.25, "y":0},
- {"label":"K0G (B0,D6)", "x":17.25, "y":0},
- {"label":"K10 (B1,B6)", "x":0, "y":1.25},
- {"label":"K11 (B1,F4)", "x":1, "y":1.25},
- {"label":"K12 (B1,C0)", "x":2, "y":1.25},
- {"label":"K13 (B1,C1)", "x":3, "y":1.25},
- {"label":"K14 (B1,C2)", "x":4, "y":1.25},
- {"label":"K15 (B1,C3)", "x":5, "y":1.25},
- {"label":"K16 (B1,C4)", "x":6, "y":1.25},
- {"label":"K17 (B1,C5)", "x":7, "y":1.25},
- {"label":"K18 (B1,C6)", "x":8, "y":1.25},
- {"label":"K19 (B1,C7)", "x":9, "y":1.25},
- {"label":"K1A (B1,D0)", "x":10, "y":1.25},
- {"label":"K1B (B1,D1)", "x":11, "y":1.25},
- {"label":"K1C (B1,D2)", "x":12, "y":1.25},
- {"label":"K1D (B1,D3)", "x":13, "y":1.25},
- {"label":"K0D (B0,D3)", "x":14, "y":1.25},
- {"label":"K1E (B1,D4)", "x":15.25, "y":1.25},
- {"label":"K1F (B1,D5)", "x":16.25, "y":1.25},
- {"label":"K1G (B1,D6)", "x":17.25, "y":1.25},
- {"label":"K20 (B2,B6)", "x":0, "y":2.25, "w":1.5},
- {"label":"K21 (B2,F4)", "x":1.5, "y":2.25},
- {"label":"K22 (B2,C0)", "x":2.5, "y":2.25},
- {"label":"K23 (B2,C1)", "x":3.5, "y":2.25},
- {"label":"K24 (B2,C2)", "x":4.5, "y":2.25},
- {"label":"K25 (B2,C3)", "x":5.5, "y":2.25},
- {"label":"K26 (B2,C4)", "x":6.5, "y":2.25},
- {"label":"K27 (B2,C5)", "x":7.5, "y":2.25},
- {"label":"K28 (B2,C6)", "x":8.5, "y":2.25},
- {"label":"K29 (B2,C7)", "x":9.5, "y":2.25},
- {"label":"K2A (B2,D0)", "x":10.5, "y":2.25},
- {"label":"K2B (B2,D1)", "x":11.5, "y":2.25},
- {"label":"K2C (B2,D2)", "x":12.5, "y":2.25},
- {"label":"K2D (B2,D3)", "x":13.5, "y":2.25, "w":1.5},
- {"label":"K2E (B2,D4)", "x":15.25, "y":2.25},
- {"label":"K2F (B2,D5)", "x":16.25, "y":2.25},
- {"label":"K2G (B2,D6)", "x":17.25, "y":2.25},
- {"label":"K30 (B3,B6)", "x":0, "y":3.25, "w":1.75},
- {"label":"K31 (B3,F4)", "x":1.75, "y":3.25},
- {"label":"K32 (B3,C0)", "x":2.75, "y":3.25},
- {"label":"K33 (B3,C1)", "x":3.75, "y":3.25},
- {"label":"K34 (B3,C2)", "x":4.75, "y":3.25},
- {"label":"K35 (B3,C3)", "x":5.75, "y":3.25},
- {"label":"K36 (B3,C4)", "x":6.75, "y":3.25},
- {"label":"K37 (B3,C5)", "x":7.75, "y":3.25},
- {"label":"K38 (B3,C6)", "x":8.75, "y":3.25},
- {"label":"K39 (B3,C7)", "x":9.75, "y":3.25},
- {"label":"K3A (B3,D0)", "x":10.75, "y":3.25},
- {"label":"K3B (B3,D1)", "x":11.75, "y":3.25},
- {"label":"K3C (B3,D2)", "x":12.75, "y":3.25},
- {"label":"K3D (B3,D3)", "x":13.75, "y":3.25, "w":1.25},
- {"label":"K40 (B4,B6)", "x":0, "y":4.25, "w":1.25},
- {"label":"K41 (B4,F4)", "x":1.25, "y":4.25},
- {"label":"K42 (B4,C0)", "x":2.25, "y":4.25},
- {"label":"K43 (B4,C1)", "x":3.25, "y":4.25},
- {"label":"K44 (B4,C2)", "x":4.25, "y":4.25},
- {"label":"K45 (B4,C3)", "x":5.25, "y":4.25},
- {"label":"K46 (B4,C4)", "x":6.25, "y":4.25},
- {"label":"K47 (B4,C5)", "x":7.25, "y":4.25},
- {"label":"K48 (B4,C6)", "x":8.25, "y":4.25},
- {"label":"K49 (B4,C7)", "x":9.25, "y":4.25},
- {"label":"K4A (B4,D0)", "x":10.25, "y":4.25},
- {"label":"K4B (B4,D1)", "x":11.25, "y":4.25},
- {"label":"K4C (B4,D2)", "x":12.25, "y":4.25, "w":1.75},
- {"label":"K4D (B4,D3)", "x":14, "y":4.25},
- {"label":"K4F (B4,D5)", "x":16.25, "y":4.25},
- {"label":"K50 (B5,B6)", "x":0, "y":5.25, "w":1.25},
- {"label":"K51 (B5,F4)", "x":1.25, "y":5.25, "w":1.25},
- {"label":"K52 (B5,C0)", "x":2.5, "y":5.25, "w":1.25},
- {"label":"K56 (B5,C4)", "x":3.75, "y":5.25, "w":6.25},
- {"label":"K5A (B5,D0)", "x":10, "y":5.25, "w":1.25},
- {"label":"K5B (B5,D1)", "x":11.25, "y":5.25, "w":1.25},
- {"label":"K5C (B5,D2)", "x":12.5, "y":5.25, "w":1.25},
- {"label":"K5D (B5,D3)", "x":13.75, "y":5.25, "w":1.25},
- {"label":"K5E (B5,D4)", "x":15.25, "y":5.25},
- {"label":"K5F (B5,D5)", "x":16.25, "y":5.25},
- {"label":"K5G (B5,D6)", "x":17.25, "y":5.25}
+ {"label":"K00 (B0,B6)", "x":0, "y":0, "matrix": [0, 0]},
+
+ {"label":"K01 (B0,F4)", "x":2, "y":0, "matrix": [0, 1]},
+ {"label":"K02 (B0,C0)", "x":3, "y":0, "matrix": [0, 2]},
+ {"label":"K03 (B0,C1)", "x":4, "y":0, "matrix": [0, 3]},
+ {"label":"K04 (B0,C2)", "x":5, "y":0, "matrix": [0, 4]},
+
+ {"label":"K05 (B0,C3)", "x":6.5, "y":0, "matrix": [0, 5]},
+ {"label":"K06 (B0,C4)", "x":7.5, "y":0, "matrix": [0, 6]},
+ {"label":"K07 (B0,C5)", "x":8.5, "y":0, "matrix": [0, 7]},
+ {"label":"K08 (B0,C6)", "x":9.5, "y":0, "matrix": [0, 8]},
+
+ {"label":"K09 (B0,C7)", "x":11, "y":0, "matrix": [0, 9]},
+ {"label":"K0A (B0,D0)", "x":12, "y":0, "matrix": [0, 10]},
+ {"label":"K0B (B0,D1)", "x":13, "y":0, "matrix": [0, 11]},
+ {"label":"K0C (B0,D2)", "x":14, "y":0, "matrix": [0, 12]},
+
+ {"label":"K0E (B0,D4)", "x":15.25, "y":0, "matrix": [0, 14]},
+ {"label":"K0F (B0,D5)", "x":16.25, "y":0, "matrix": [0, 15]},
+ {"label":"K0G (B0,D6)", "x":17.25, "y":0, "matrix": [0, 16]},
+
+ {"label":"K10 (B1,B6)", "x":0, "y":1.25, "matrix": [1, 0]},
+ {"label":"K11 (B1,F4)", "x":1, "y":1.25, "matrix": [1, 1]},
+ {"label":"K12 (B1,C0)", "x":2, "y":1.25, "matrix": [1, 2]},
+ {"label":"K13 (B1,C1)", "x":3, "y":1.25, "matrix": [1, 3]},
+ {"label":"K14 (B1,C2)", "x":4, "y":1.25, "matrix": [1, 4]},
+ {"label":"K15 (B1,C3)", "x":5, "y":1.25, "matrix": [1, 5]},
+ {"label":"K16 (B1,C4)", "x":6, "y":1.25, "matrix": [1, 6]},
+ {"label":"K17 (B1,C5)", "x":7, "y":1.25, "matrix": [1, 7]},
+ {"label":"K18 (B1,C6)", "x":8, "y":1.25, "matrix": [1, 8]},
+ {"label":"K19 (B1,C7)", "x":9, "y":1.25, "matrix": [1, 9]},
+ {"label":"K1A (B1,D0)", "x":10, "y":1.25, "matrix": [1, 10]},
+ {"label":"K1B (B1,D1)", "x":11, "y":1.25, "matrix": [1, 11]},
+ {"label":"K1C (B1,D2)", "x":12, "y":1.25, "matrix": [1, 12]},
+ {"label":"K1D (B1,D3)", "x":13, "y":1.25, "matrix": [1, 13]},
+ {"label":"K0D (B0,D3)", "x":14, "y":1.25, "matrix": [0, 13]},
+
+ {"label":"K1E (B1,D4)", "x":15.25, "y":1.25, "matrix": [1, 14]},
+ {"label":"K1F (B1,D5)", "x":16.25, "y":1.25, "matrix": [1, 15]},
+ {"label":"K1G (B1,D6)", "x":17.25, "y":1.25, "matrix": [1, 16]},
+
+ {"label":"K20 (B2,B6)", "x":0, "y":2.25, "w":1.5, "matrix": [2, 0]},
+ {"label":"K21 (B2,F4)", "x":1.5, "y":2.25, "matrix": [2, 1]},
+ {"label":"K22 (B2,C0)", "x":2.5, "y":2.25, "matrix": [2, 2]},
+ {"label":"K23 (B2,C1)", "x":3.5, "y":2.25, "matrix": [2, 3]},
+ {"label":"K24 (B2,C2)", "x":4.5, "y":2.25, "matrix": [2, 4]},
+ {"label":"K25 (B2,C3)", "x":5.5, "y":2.25, "matrix": [2, 5]},
+ {"label":"K26 (B2,C4)", "x":6.5, "y":2.25, "matrix": [2, 6]},
+ {"label":"K27 (B2,C5)", "x":7.5, "y":2.25, "matrix": [2, 7]},
+ {"label":"K28 (B2,C6)", "x":8.5, "y":2.25, "matrix": [2, 8]},
+ {"label":"K29 (B2,C7)", "x":9.5, "y":2.25, "matrix": [2, 9]},
+ {"label":"K2A (B2,D0)", "x":10.5, "y":2.25, "matrix": [2, 10]},
+ {"label":"K2B (B2,D1)", "x":11.5, "y":2.25, "matrix": [2, 11]},
+ {"label":"K2C (B2,D2)", "x":12.5, "y":2.25, "matrix": [2, 12]},
+ {"label":"K2D (B2,D3)", "x":13.5, "y":2.25, "w":1.5, "matrix": [2, 13]},
+
+ {"label":"K2E (B2,D4)", "x":15.25, "y":2.25, "matrix": [2, 14]},
+ {"label":"K2F (B2,D5)", "x":16.25, "y":2.25, "matrix": [2, 15]},
+ {"label":"K2G (B2,D6)", "x":17.25, "y":2.25, "matrix": [2, 16]},
+
+ {"label":"K30 (B3,B6)", "x":0, "y":3.25, "w":1.75, "matrix": [3, 0]},
+ {"label":"K31 (B3,F4)", "x":1.75, "y":3.25, "matrix": [3, 1]},
+ {"label":"K32 (B3,C0)", "x":2.75, "y":3.25, "matrix": [3, 2]},
+ {"label":"K33 (B3,C1)", "x":3.75, "y":3.25, "matrix": [3, 3]},
+ {"label":"K34 (B3,C2)", "x":4.75, "y":3.25, "matrix": [3, 4]},
+ {"label":"K35 (B3,C3)", "x":5.75, "y":3.25, "matrix": [3, 5]},
+ {"label":"K36 (B3,C4)", "x":6.75, "y":3.25, "matrix": [3, 6]},
+ {"label":"K37 (B3,C5)", "x":7.75, "y":3.25, "matrix": [3, 7]},
+ {"label":"K38 (B3,C6)", "x":8.75, "y":3.25, "matrix": [3, 8]},
+ {"label":"K39 (B3,C7)", "x":9.75, "y":3.25, "matrix": [3, 9]},
+ {"label":"K3A (B3,D0)", "x":10.75, "y":3.25, "matrix": [3, 10]},
+ {"label":"K3B (B3,D1)", "x":11.75, "y":3.25, "matrix": [3, 11]},
+ {"label":"K3C (B3,D2)", "x":12.75, "y":3.25, "matrix": [3, 12]},
+ {"label":"K3D (B3,D3)", "x":13.75, "y":3.25, "w":1.25, "matrix": [3, 13]},
+
+ {"label":"K40 (B4,B6)", "x":0, "y":4.25, "w":1.25, "matrix": [4, 0]},
+ {"label":"K41 (B4,F4)", "x":1.25, "y":4.25, "matrix": [4, 1]},
+ {"label":"K42 (B4,C0)", "x":2.25, "y":4.25, "matrix": [4, 2]},
+ {"label":"K43 (B4,C1)", "x":3.25, "y":4.25, "matrix": [4, 3]},
+ {"label":"K44 (B4,C2)", "x":4.25, "y":4.25, "matrix": [4, 4]},
+ {"label":"K45 (B4,C3)", "x":5.25, "y":4.25, "matrix": [4, 5]},
+ {"label":"K46 (B4,C4)", "x":6.25, "y":4.25, "matrix": [4, 6]},
+ {"label":"K47 (B4,C5)", "x":7.25, "y":4.25, "matrix": [4, 7]},
+ {"label":"K48 (B4,C6)", "x":8.25, "y":4.25, "matrix": [4, 8]},
+ {"label":"K49 (B4,C7)", "x":9.25, "y":4.25, "matrix": [4, 9]},
+ {"label":"K4A (B4,D0)", "x":10.25, "y":4.25, "matrix": [4, 10]},
+ {"label":"K4B (B4,D1)", "x":11.25, "y":4.25, "matrix": [4, 11]},
+ {"label":"K4C (B4,D2)", "x":12.25, "y":4.25, "w":1.75, "matrix": [4, 12]},
+ {"label":"K4D (B4,D3)", "x":14, "y":4.25, "matrix": [4, 13]},
+
+ {"label":"K4F (B4,D5)", "x":16.25, "y":4.25, "matrix": [4, 15]},
+
+ {"label":"K50 (B5,B6)", "x":0, "y":5.25, "w":1.25, "matrix": [5, 0]},
+ {"label":"K51 (B5,F4)", "x":1.25, "y":5.25, "w":1.25, "matrix": [5, 1]},
+ {"label":"K52 (B5,C0)", "x":2.5, "y":5.25, "w":1.25, "matrix": [5, 2]},
+ {"label":"K56 (B5,C4)", "x":3.75, "y":5.25, "w":6.25, "matrix": [5, 6]},
+ {"label":"K5A (B5,D0)", "x":10, "y":5.25, "w":1.25, "matrix": [5, 10]},
+ {"label":"K5B (B5,D1)", "x":11.25, "y":5.25, "w":1.25, "matrix": [5, 11]},
+ {"label":"K5C (B5,D2)", "x":12.5, "y":5.25, "w":1.25, "matrix": [5, 12]},
+ {"label":"K5D (B5,D3)", "x":13.75, "y":5.25, "w":1.25, "matrix": [5, 13]},
+
+ {"label":"K5E (B5,D4)", "x":15.25, "y":5.25, "matrix": [5, 14]},
+ {"label":"K5F (B5,D5)", "x":16.25, "y":5.25, "matrix": [5, 15]},
+ {"label":"K5G (B5,D6)", "x":17.25, "y":5.25, "matrix": [5, 16]}
]
}
}
diff --git a/keyboards/mechlovin/infinity875/config.h b/keyboards/mechlovin/infinity875/config.h
index 6b6a8147f6..4f02ed39c9 100644
--- a/keyboards/mechlovin/infinity875/config.h
+++ b/keyboards/mechlovin/infinity875/config.h
@@ -19,11 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4D4C // ML
-#define PRODUCT_ID 0x0875
-#define DEVICE_VER 0x0001
-#define PRODUCT Infinity87.5
/* key matrix size */
#define MATRIX_ROWS 6
#define MATRIX_COLS 17
@@ -40,7 +35,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#define MATRIX_ROW_PINS { D5, D2, D4, D3, D0, D1 }
-#define UNUSED_PINS
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION ROW2COL
diff --git a/keyboards/mechlovin/infinity875/info.json b/keyboards/mechlovin/infinity875/info.json
index e24c0d1cc2..9c9fe10a10 100644
--- a/keyboards/mechlovin/infinity875/info.json
+++ b/keyboards/mechlovin/infinity875/info.json
@@ -1,7 +1,13 @@
{
"keyboard_name": "Infinity87.5",
+ "manufacturer": "Mechlovin.Studio",
"url": "",
"maintainer": "Mechlovin' Studio",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0x0875",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_tkl_ansi_split_bs_rshift": {
"layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":2, "y":0}, {"label":"0,2", "x":3, "y":0}, {"label":"0,3", "x":4, "y":0}, {"label":"0,4", "x":5, "y":0}, {"label":"0,5", "x":6.5, "y":0}, {"label":"0,6", "x":7.5, "y":0}, {"label":"0,7", "x":8.5, "y":0}, {"label":"0,8", "x":9.5, "y":0}, {"label":"0,9", "x":11, "y":0}, {"label":"0,10", "x":12, "y":0}, {"label":"0,11", "x":13, "y":0}, {"label":"0,12", "x":14, "y":0}, {"label":"0,14", "x":15.25, "y":0}, {"label":"0,15", "x":16.25, "y":0}, {"label":"0,16", "x":17.25, "y":0}, {"label":"1,0", "x":0, "y":1.25}, {"label":"1,1", "x":1, "y":1.25}, {"label":"1,2", "x":2, "y":1.25}, {"label":"1,3", "x":3, "y":1.25}, {"label":"1,4", "x":4, "y":1.25}, {"label":"1,5", "x":5, "y":1.25}, {"label":"1,6", "x":6, "y":1.25}, {"label":"1,7", "x":7, "y":1.25}, {"label":"1,8", "x":8, "y":1.25}, {"label":"1,9", "x":9, "y":1.25}, {"label":"1,10", "x":10, "y":1.25}, {"label":"1,11", "x":11, "y":1.25}, {"label":"1,12", "x":12, "y":1.25}, {"label":"1,13", "x":13, "y":1.25}, {"label":"2,13", "x":14, "y":1.25}, {"label":"1,14", "x":15.25, "y":1.25}, {"label":"1,15", "x":16.25, "y":1.25}, {"label":"1,16", "x":17.25, "y":1.25}, {"label":"2,0", "x":0, "y":2.25, "w":1.5}, {"label":"2,1", "x":1.5, "y":2.25}, {"label":"2,2", "x":2.5, "y":2.25}, {"label":"2,3", "x":3.5, "y":2.25}, {"label":"2,4", "x":4.5, "y":2.25}, {"label":"2,5", "x":5.5, "y":2.25}, {"label":"2,6", "x":6.5, "y":2.25}, {"label":"2,7", "x":7.5, "y":2.25}, {"label":"2,8", "x":8.5, "y":2.25}, {"label":"2,9", "x":9.5, "y":2.25}, {"label":"2,10", "x":10.5, "y":2.25}, {"label":"2,11", "x":11.5, "y":2.25}, {"label":"2,12", "x":12.5, "y":2.25}, {"label":"3,12", "x":13.5, "y":2.25, "w":1.5}, {"label":"2,14", "x":15.25, "y":2.25}, {"label":"2,15", "x":16.25, "y":2.25}, {"label":"2,16", "x":17.25, "y":2.25}, {"label":"3,0", "x":0, "y":3.25, "w":1.75}, {"label":"3,1", "x":1.75, "y":3.25}, {"label":"3,2", "x":2.75, "y":3.25}, {"label":"3,3", "x":3.75, "y":3.25}, {"label":"3,4", "x":4.75, "y":3.25}, {"label":"3,5", "x":5.75, "y":3.25}, {"label":"3,6", "x":6.75, "y":3.25}, {"label":"3,7", "x":7.75, "y":3.25}, {"label":"3,8", "x":8.75, "y":3.25}, {"label":"3,9", "x":9.75, "y":3.25}, {"label":"3,10", "x":10.75, "y":3.25}, {"label":"3,11", "x":11.75, "y":3.25}, {"label":"3,13", "x":12.75, "y":3.25, "w":2.25}, {"label":"4,0", "x":0, "y":4.25, "w":2.25}, {"label":"4,2", "x":2.25, "y":4.25}, {"label":"4,3", "x":3.25, "y":4.25}, {"label":"4,4", "x":4.25, "y":4.25}, {"label":"4,5", "x":5.25, "y":4.25}, {"label":"4,6", "x":6.25, "y":4.25}, {"label":"4,7", "x":7.25, "y":4.25}, {"label":"4,8", "x":8.25, "y":4.25}, {"label":"4,9", "x":9.25, "y":4.25}, {"label":"4,10", "x":10.25, "y":4.25}, {"label":"4,11", "x":11.25, "y":4.25}, {"label":"4,12", "x":12.25, "y":4.25}, {"label":"4,13", "x":13.25, "y":4.25, "w":1.75}, {"label":"4,15", "x":16.25, "y":4.25}, {"label":"5,0", "x":0, "y":5.25, "w":1.25}, {"label":"5,1", "x":1.25, "y":5.25, "w":1.25}, {"label":"5,2", "x":2.5, "y":5.25, "w":1.25}, {"label":"5,6", "x":3.75, "y":5.25, "w":6.25}, {"label":"5,10", "x":10, "y":5.25, "w":1.25}, {"label":"5,11", "x":11.25, "y":5.25, "w":1.25}, {"label":"5,12", "x":12.5, "y":5.25, "w":1.25}, {"label":"5,13", "x":13.75, "y":5.25, "w":1.25}, {"label":"5,14", "x":15.25, "y":5.25}, {"label":"5,15", "x":16.25, "y":5.25}, {"label":"5,16", "x":17.25, "y":5.25}]
diff --git a/keyboards/mechlovin/infinity875/readme.md b/keyboards/mechlovin/infinity875/readme.md
index b3e14a7bb7..39c76e5dc9 100644
--- a/keyboards/mechlovin/infinity875/readme.md
+++ b/keyboards/mechlovin/infinity875/readme.md
@@ -19,6 +19,6 @@ Flashing example for this keyboard:
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).
**Reset Key:** 3 ways to put the IF87.5 into bootloader:
-- By keycode: Tap RESET keycode.
+- By keycode: Press the key mapped to `QK_BOOT` if it is available.
- By bootmagic: hold ESC key while plugging in.
- By hardware: Push reset button on bottom of the PCB while the PCB is plugged in. \ No newline at end of file
diff --git a/keyboards/mechlovin/infinity88/config.h b/keyboards/mechlovin/infinity88/config.h
index edbb628e7b..c6eeb108f9 100644
--- a/keyboards/mechlovin/infinity88/config.h
+++ b/keyboards/mechlovin/infinity88/config.h
@@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4D4C // ML
-#define PRODUCT_ID 0x8802
-#define DEVICE_VER 0x0001
-#define MANUFACTURER Team.Mechlovin
-#define PRODUCT Infinity 88
-
/* key matrix size */
#define MATRIX_ROWS 6
#define MATRIX_COLS 17
diff --git a/keyboards/mechlovin/infinity88/info.json b/keyboards/mechlovin/infinity88/info.json
index edf91c4687..126e463917 100644
--- a/keyboards/mechlovin/infinity88/info.json
+++ b/keyboards/mechlovin/infinity88/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "infinity88",
+ "keyboard_name": "Infinity 88",
+ "manufacturer": "Team.Mechlovin",
"url": "",
"maintainer": "mechlovin",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0x8802",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/mechlovin/infinityce/config.h b/keyboards/mechlovin/infinityce/config.h
index 838fc1da7f..1fbb5690d4 100644
--- a/keyboards/mechlovin/infinityce/config.h
+++ b/keyboards/mechlovin/infinityce/config.h
@@ -19,12 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4D4C // ML-Mechlovin
-#define PRODUCT_ID 0x8801
-#define DEVICE_VER 0x0001
-#define MANUFACTURER Team.Mechlovin
-#define PRODUCT Infinity CE
/* key matrix size */
#define MATRIX_ROWS 6
#define MATRIX_COLS 17
diff --git a/keyboards/mechlovin/infinityce/info.json b/keyboards/mechlovin/infinityce/info.json
index 6b3b2f8adf..f85aa21278 100644
--- a/keyboards/mechlovin/infinityce/info.json
+++ b/keyboards/mechlovin/infinityce/info.json
@@ -1,7 +1,13 @@
{
"keyboard_name": "Infinity CE",
+ "manufacturer": "Team.Mechlovin",
"url": "",
"maintainer": "Team Mechlovin'",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0x8801",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/mechlovin/jay60/config.h b/keyboards/mechlovin/jay60/config.h
index 521b8ae0db..5228f40751 100644
--- a/keyboards/mechlovin/jay60/config.h
+++ b/keyboards/mechlovin/jay60/config.h
@@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4D4C
-#define PRODUCT_ID 0x0600
-#define DEVICE_VER 0x0001
-#define MANUFACTURER Mechlovin Studio
-#define PRODUCT Jay60
-
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 14
@@ -42,7 +35,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#define MATRIX_ROW_PINS { C2, C1, C0, D7, A1 }
#define MATRIX_COL_PINS { B6, B5, B3, B2, B1, B0, A0, A6, A7, C7, C6, C5, C4, C3 }
-#define UNUSED_PINS
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
diff --git a/keyboards/mechlovin/jay60/info.json b/keyboards/mechlovin/jay60/info.json
index d4c0f57dd6..69e336fa31 100644
--- a/keyboards/mechlovin/jay60/info.json
+++ b/keyboards/mechlovin/jay60/info.json
@@ -1,7 +1,13 @@
{
"keyboard_name": "Jay60",
+ "manufacturer": "Mechlovin Studio",
"url": "",
"maintainer": "Mechlovin' Studio",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0x0600",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/mechlovin/jay60/readme.md b/keyboards/mechlovin/jay60/readme.md
index 79867e5503..81f5ae6ed7 100644
--- a/keyboards/mechlovin/jay60/readme.md
+++ b/keyboards/mechlovin/jay60/readme.md
@@ -23,4 +23,4 @@ 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
* **Bootloader reset**: Hold down the key at (0,13) in the matrix (Backspace) and plug in the keyboard
-* **Keycode in layout**: Press the key mapped to `RESET` if it is available
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/mechlovin/kanu/config.h b/keyboards/mechlovin/kanu/config.h
index 3e5c0ee676..d9028d0740 100644
--- a/keyboards/mechlovin/kanu/config.h
+++ b/keyboards/mechlovin/kanu/config.h
@@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4D4C // ML-MechLovin'
-#define PRODUCT_ID 0x4B4E // KN-Kanu
-#define DEVICE_VER 0x0001
-#define MANUFACTURER Mechlovin
-#define PRODUCT Kanu
-
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 15
@@ -42,7 +35,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#define MATRIX_ROW_PINS { B5, B6, D3, C6, C7 }
#define MATRIX_COL_PINS { E6, B1, B3, F0, F1, F4, F5, F6, F7, D5, D4, B4, D6, D7, B0 }
-#define UNUSED_PINS
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
diff --git a/keyboards/mechlovin/kanu/info.json b/keyboards/mechlovin/kanu/info.json
index 1049ba7d1d..7e4f902bfb 100644
--- a/keyboards/mechlovin/kanu/info.json
+++ b/keyboards/mechlovin/kanu/info.json
@@ -1,7 +1,13 @@
{
"keyboard_name": "Kanu",
+ "manufacturer": "Mechlovin",
"url": "",
"maintainer": "Team Mechlovin'",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0x4B4E",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/mechlovin/kay60/config.h b/keyboards/mechlovin/kay60/config.h
index ae321a6491..2cae8a3b67 100644
--- a/keyboards/mechlovin/kay60/config.h
+++ b/keyboards/mechlovin/kay60/config.h
@@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4D4C
-#define PRODUCT_ID 0x0601
-#define DEVICE_VER 0x0001
-#define MANUFACTURER Mechlovin Studio
-#define PRODUCT Kay60
-
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 14
@@ -42,7 +35,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#define MATRIX_ROW_PINS { D5, D3, D2, B1, B5}
#define MATRIX_COL_PINS { E6, F0, F1, F4, F5, F6, F7, B2, B3, B7, B4, D7, D6, D4 }
-#define UNUSED_PINS
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
@@ -52,6 +44,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define LED_SCROLL_LOCK_PIN B2
//#define LED_COMPOSE_PIN B3
//#define LED_KANA_PIN B4
+#define LED_PIN_ON_STATE 0
//#define BACKLIGHT_PIN B7
//#define BACKLIGHT_LEVELS 3
diff --git a/keyboards/mechlovin/kay60/info.json b/keyboards/mechlovin/kay60/info.json
index adcbc594d4..86298b5582 100644
--- a/keyboards/mechlovin/kay60/info.json
+++ b/keyboards/mechlovin/kay60/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "kay60",
+ "keyboard_name": "Kay60",
+ "manufacturer": "Mechlovin Studio",
"url": "",
"maintainer": "Mechlovin' Studio",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0x0601",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/mechlovin/kay60/keymaps/default/keymap.c b/keyboards/mechlovin/kay60/keymaps/default/keymap.c
index 10546ece4d..8acd5409f5 100644
--- a/keyboards/mechlovin/kay60/keymaps/default/keymap.c
+++ b/keyboards/mechlovin/kay60/keymaps/default/keymap.c
@@ -22,8 +22,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
LT1_CAP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, TO(1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI, KC_MENU, KC_LCTL
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TO(1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL
),
[1] = LAYOUT_all(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
diff --git a/keyboards/mechlovin/kay60/keymaps/via/keymap.c b/keyboards/mechlovin/kay60/keymaps/via/keymap.c
index 34b8cb9822..0bb6219cef 100644
--- a/keyboards/mechlovin/kay60/keymaps/via/keymap.c
+++ b/keyboards/mechlovin/kay60/keymaps/via/keymap.c
@@ -22,8 +22,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
LT1_CAP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, TO(1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI, KC_MENU, KC_LCTL
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TO(1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL
),
[1] = LAYOUT_all(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
diff --git a/keyboards/mechlovin/kay60/readme.md b/keyboards/mechlovin/kay60/readme.md
index cc53c13175..16c8414b34 100644
--- a/keyboards/mechlovin/kay60/readme.md
+++ b/keyboards/mechlovin/kay60/readme.md
@@ -22,5 +22,5 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to
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
-* **Keycode in layout**: Press the key mapped to `RESET` if it is available
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
* **Physic button**: Press reset swith on the bottom of the PCB
diff --git a/keyboards/mechlovin/kay65/config.h b/keyboards/mechlovin/kay65/config.h
index cc1b991672..09e841804e 100644
--- a/keyboards/mechlovin/kay65/config.h
+++ b/keyboards/mechlovin/kay65/config.h
@@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4D4C
-#define PRODUCT_ID 0x6502
-#define DEVICE_VER 0x0001
-#define MANUFACTURER Team Mechlovin
-#define PRODUCTION Kay65 Rev. 1
-
#define MATRIX_ROWS 5
#define MATRIX_COLS 15
diff --git a/keyboards/mechlovin/kay65/info.json b/keyboards/mechlovin/kay65/info.json
index 7afccc81c0..ec96aba032 100644
--- a/keyboards/mechlovin/kay65/info.json
+++ b/keyboards/mechlovin/kay65/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "Kay65",
+ "keyboard_name": "Kay65 Rev. 1",
+ "manufacturer": "Team Mechlovin",
"url": "",
"maintainer": "Mechlovin' Studio",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0x6502",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/mechlovin/kay65/readme.md b/keyboards/mechlovin/kay65/readme.md
index 768ce12aa7..d15317710f 100644
--- a/keyboards/mechlovin/kay65/readme.md
+++ b/keyboards/mechlovin/kay65/readme.md
@@ -24,4 +24,4 @@ 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
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/mechlovin/mechlovin9/config.h b/keyboards/mechlovin/mechlovin9/config.h
index 669d79ac91..6795046f8b 100644
--- a/keyboards/mechlovin/mechlovin9/config.h
+++ b/keyboards/mechlovin/mechlovin9/config.h
@@ -19,10 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4D4C
-#define MANUFACTURER Mechlovin Studio
-
#define MATRIX_ROWS 5
#define MATRIX_COLS 15
diff --git a/keyboards/mechlovin/mechlovin9/info.json b/keyboards/mechlovin/mechlovin9/info.json
index 6fea78aecc..c0a64b984a 100644
--- a/keyboards/mechlovin/mechlovin9/info.json
+++ b/keyboards/mechlovin/mechlovin9/info.json
@@ -1,7 +1,10 @@
{
- "keyboard_name": "mechlovin9",
+ "manufacturer": "Mechlovin Studio",
"url": "",
"maintainer": "Team Mechlovin",
+ "usb": {
+ "vid": "0x4D4C"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/mechlovin/mechlovin9/rev1/config.h b/keyboards/mechlovin/mechlovin9/rev1/config.h
index 2a9c335d73..236529e243 100644
--- a/keyboards/mechlovin/mechlovin9/rev1/config.h
+++ b/keyboards/mechlovin/mechlovin9/rev1/config.h
@@ -17,10 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define PRODUCT_ID 0x6509
-#define DEVICE_VER 0x0001
-#define PRODUCT Mechlovin9
-
/*
* Keyboard Matrix Assignments
*
diff --git a/keyboards/mechlovin/mechlovin9/rev1/info.json b/keyboards/mechlovin/mechlovin9/rev1/info.json
new file mode 100644
index 0000000000..2153f0ad17
--- /dev/null
+++ b/keyboards/mechlovin/mechlovin9/rev1/info.json
@@ -0,0 +1,7 @@
+{
+ "keyboard_name": "Mechlovin9",
+ "usb": {
+ "pid": "0x6509",
+ "device_version": "0.0.1"
+ }
+}
diff --git a/keyboards/mechlovin/mechlovin9/rev2/config.h b/keyboards/mechlovin/mechlovin9/rev2/config.h
index ed11fafa83..c06295dfde 100644
--- a/keyboards/mechlovin/mechlovin9/rev2/config.h
+++ b/keyboards/mechlovin/mechlovin9/rev2/config.h
@@ -17,10 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define PRODUCT_ID 0x6509
-#define DEVICE_VER 0x0002
-#define PRODUCT Mechlovin9 Rev2
-
/*
* Keyboard Matrix Assignments
*
diff --git a/keyboards/mechlovin/mechlovin9/rev2/info.json b/keyboards/mechlovin/mechlovin9/rev2/info.json
new file mode 100644
index 0000000000..2c92773e6d
--- /dev/null
+++ b/keyboards/mechlovin/mechlovin9/rev2/info.json
@@ -0,0 +1,7 @@
+{
+ "keyboard_name": "Mechlovin9 Rev2",
+ "usb": {
+ "pid": "0x6509",
+ "device_version": "0.0.2"
+ }
+}
diff --git a/keyboards/mechlovin/olly/bb/config.h b/keyboards/mechlovin/olly/bb/config.h
index 3110a9589c..00ecb21470 100644
--- a/keyboards/mechlovin/olly/bb/config.h
+++ b/keyboards/mechlovin/olly/bb/config.h
@@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4D4C
-#define PRODUCT_ID 0xD181
-#define DEVICE_VER 0x0001
-#define MANUFACTURER Mechlovin.Studio
-#define PRODUCT Olly BB
-
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 19
@@ -41,7 +34,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#define MATRIX_ROW_PINS {D6, A5, A4, A3, A6}
-#define UNUSED_PINS
#define BACKLIGHT_PIN D4
#define BACKLIGHT_BREATHING
diff --git a/keyboards/mechlovin/olly/bb/info.json b/keyboards/mechlovin/olly/bb/info.json
index fbc9bae3eb..c37f167bdb 100644
--- a/keyboards/mechlovin/olly/bb/info.json
+++ b/keyboards/mechlovin/olly/bb/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "Mechlovin Olly",
+ "keyboard_name": "Olly BB",
+ "manufacturer": "Mechlovin.Studio",
"url": "",
"maintainer": "Mechlovin' Studio",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0xD181",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/mechlovin/olly/bb/readme.md b/keyboards/mechlovin/olly/bb/readme.md
index 0e41a3072f..6afdc161ea 100644
--- a/keyboards/mechlovin/olly/bb/readme.md
+++ b/keyboards/mechlovin/olly/bb/readme.md
@@ -19,5 +19,5 @@ Flashing example for this keyboard:
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).
**Reset Key:** 2 ways to put the Olly JF into bootloader:
-By keycode: Tap RESET keycode.
+By keycode: Press the key mapped to `QK_BOOT` if it is available.
By bootloader: hold ESC key while plugging in \ No newline at end of file
diff --git a/keyboards/mechlovin/olly/jf/config.h b/keyboards/mechlovin/olly/jf/config.h
index f1c40cb365..4dc4785332 100644
--- a/keyboards/mechlovin/olly/jf/config.h
+++ b/keyboards/mechlovin/olly/jf/config.h
@@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4D4C
-#define PRODUCT_ID 0xD180
-#define DEVICE_VER 0x0001
-#define MANUFACTURER Mechlovin.Studio
-#define PRODUCT Olly JF
-
/* key matrix size */
#define MATRIX_ROWS 6
#define MATRIX_COLS 19
@@ -41,7 +34,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#define MATRIX_ROW_PINS { D5, D6, A5, A4, A3, A6}
-#define UNUSED_PINS
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION ROW2COL
diff --git a/keyboards/mechlovin/olly/jf/info.json b/keyboards/mechlovin/olly/jf/info.json
index ab57d31787..96ea429cb9 100644
--- a/keyboards/mechlovin/olly/jf/info.json
+++ b/keyboards/mechlovin/olly/jf/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "Mechlovin Olly",
+ "keyboard_name": "Olly JF",
+ "manufacturer": "Mechlovin.Studio",
"url": "",
"maintainer": "Mechlovin' Studio",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0xD180",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/mechlovin/olly/jf/readme.md b/keyboards/mechlovin/olly/jf/readme.md
index 6a6bbc415a..fe9cf38cad 100644
--- a/keyboards/mechlovin/olly/jf/readme.md
+++ b/keyboards/mechlovin/olly/jf/readme.md
@@ -19,6 +19,6 @@ Flashing example for this keyboard:
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).
**Reset Key:** 3 ways to put the Olly JF into bootloader:
-By keycode: Tap RESET keycode.
+By keycode: Press the key mapped to `QK_BOOT` if it is available.
By Bootloader: hold ESC key while plugging in (jump to bootloader)
By Bootmagic: hold Insert key while pluging in (jump to bootloader and reset EEPROM) \ No newline at end of file
diff --git a/keyboards/mechlovin/pisces/config.h b/keyboards/mechlovin/pisces/config.h
index 48a94eb262..217c63f7e4 100644
--- a/keyboards/mechlovin/pisces/config.h
+++ b/keyboards/mechlovin/pisces/config.h
@@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4D4C // ML-Mechlovin
-#define PRODUCT_ID 0x6501
-#define DEVICE_VER 0x0001
-#define MANUFACTURER Team.Mechlovin
-#define PRODUCT Pisces65
-
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 15
diff --git a/keyboards/mechlovin/pisces/info.json b/keyboards/mechlovin/pisces/info.json
index 57da5b4a0e..20b521636f 100644
--- a/keyboards/mechlovin/pisces/info.json
+++ b/keyboards/mechlovin/pisces/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "pisces",
+ "keyboard_name": "Pisces65",
+ "manufacturer": "Team.Mechlovin",
"url": "",
"maintainer": "mechlovin",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0x6501",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/mechlovin/serratus/config.h b/keyboards/mechlovin/serratus/config.h
index 0bb9ccbea9..4b497875da 100644
--- a/keyboards/mechlovin/serratus/config.h
+++ b/keyboards/mechlovin/serratus/config.h
@@ -19,11 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4D4C // ML
-#define PRODUCT_ID 0x0870
-#define DEVICE_VER 0x0001
-#define PRODUCT Serratus Rev.1
/* key matrix size */
#define MATRIX_ROWS 6
#define MATRIX_COLS 17
@@ -40,7 +35,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#define MATRIX_ROW_PINS { D5, D2, D4, D3, D0, D1 }
-#define UNUSED_PINS
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION ROW2COL
diff --git a/keyboards/mechlovin/serratus/info.json b/keyboards/mechlovin/serratus/info.json
index 209ee4a330..fe891d5987 100644
--- a/keyboards/mechlovin/serratus/info.json
+++ b/keyboards/mechlovin/serratus/info.json
@@ -1,7 +1,13 @@
{
- "keyboard_name": "Serratus",
+ "keyboard_name": "Serratus Rev.1",
+ "manufacturer": "Mechlovin Studio",
"url": "",
"maintainer": "Mechlovin' Studio",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0x0870",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/mechlovin/th1800/config.h b/keyboards/mechlovin/th1800/config.h
index f8c4567825..46c370ae2e 100644
--- a/keyboards/mechlovin/th1800/config.h
+++ b/keyboards/mechlovin/th1800/config.h
@@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4D4C // ML-Mechlovin
-#define PRODUCT_ID 0x1800
-#define DEVICE_VER 0x0001
-#define MANUFACTURER Team Mechlovin
-#define PRODUCT th1800
-
/* key matrix size */
#define MATRIX_ROWS 6
#define MATRIX_COLS 18
@@ -42,7 +35,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#define MATRIX_ROW_PINS { B6, B7, D0, D1, D5, D6 }
#define MATRIX_COL_PINS { A3, D7, C0, C1, C2, C3, C4, C5, C6, C7, A7, A6, A5, A4, B3, B2, B0, B1 }
-#define UNUSED_PINS
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
diff --git a/keyboards/mechlovin/th1800/info.json b/keyboards/mechlovin/th1800/info.json
index 8efddf61a1..535903586c 100644
--- a/keyboards/mechlovin/th1800/info.json
+++ b/keyboards/mechlovin/th1800/info.json
@@ -1,7 +1,13 @@
{
"keyboard_name": "th-1800",
+ "manufacturer": "Team Mechlovin",
"url": "",
"maintainer": "qmk",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0x1800",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/mechlovin/tmkl/config.h b/keyboards/mechlovin/tmkl/config.h
index 9a1d865e29..ad5cd60338 100644
--- a/keyboards/mechlovin/tmkl/config.h
+++ b/keyboards/mechlovin/tmkl/config.h
@@ -19,13 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4D4C // ML
-#define PRODUCT_ID 0xC601 // Commissions 60v1
-#define DEVICE_VER 0x0001
-#define MANUFACTURER Team Mechlovin
-#define PRODUCT TMKL
-
/* key matrix size */
#define MATRIX_ROWS 6
#define MATRIX_COLS 14
diff --git a/keyboards/mechlovin/tmkl/info.json b/keyboards/mechlovin/tmkl/info.json
index b57ea89fa7..80922903ce 100644
--- a/keyboards/mechlovin/tmkl/info.json
+++ b/keyboards/mechlovin/tmkl/info.json
@@ -1,6 +1,12 @@
{
- "keyboard_name": "tmkl",
+ "keyboard_name": "TMKL",
+ "manufacturer": "Team Mechlovin",
"maintainer": "Team Mechlovin",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0xC601",
+ "device_version": "0.0.1"
+ },
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/mechlovin/zed60/config.h b/keyboards/mechlovin/zed60/config.h
new file mode 100644
index 0000000000..af78e10b7c
--- /dev/null
+++ b/keyboards/mechlovin/zed60/config.h
@@ -0,0 +1,78 @@
+/*
+Copyright 2022 Mechlovin'
+
+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"
+
+/* 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 { B10, B2, B1, B0, A2 }
+#define MATRIX_COL_PINS { A10, A3, A9, A8, B15, B14, B13, B12, B5, B4, B3, A15, B7, B6 }
+
+/* COL2ROW, ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+#define LED_CAPS_LOCK_PIN A4
+
+#ifdef RGBLIGHT_ENABLE
+#define RGB_DI_PIN A7
+#define RGBLED_NUM 22
+#define RGBLIGHT_LIMIT_VAL 255
+
+#define WS2812_SPI SPID1 // default: SPID1
+#define WS2812_SPI_MOSI_PAL_MODE 5 // MOSI pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5
+
+//#define RGB_DI_PIN E2
+//#ifdef RGB_DI_PIN
+# 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
+/*== 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
diff --git a/keyboards/mechlovin/infinity87/rev1/rogue87/config.h b/keyboards/mechlovin/zed60/halconf.h
index 3415f3add9..ccf7447285 100644
--- a/keyboards/mechlovin/infinity87/rev1/rogue87/config.h
+++ b/keyboards/mechlovin/zed60/halconf.h
@@ -1,4 +1,4 @@
-/* Copyright 2020 Team Mechlovin'
+/* Copyright 2022 QMK
*
* 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
@@ -16,6 +16,7 @@
#pragma once
-#define PRODUCT_ID 0x8704
-#define DEVICE_VER 0x0001
-#define PRODUCT Rogue87 Rev.1 \ No newline at end of file
+#define HAL_USE_SPI TRUE
+
+#include_next <halconf.h>
+
diff --git a/keyboards/mechlovin/zed60/info.json b/keyboards/mechlovin/zed60/info.json
new file mode 100644
index 0000000000..11c3e87247
--- /dev/null
+++ b/keyboards/mechlovin/zed60/info.json
@@ -0,0 +1,156 @@
+{
+ "keyboard_name": "Zed60",
+ "manufacturer": "Mechlovin Studio",
+ "url": "",
+ "maintainer": "Mechlovin' Studio",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0x0602",
+ "device_version": "0.0.1"
+ },
+ "layout_aliases": {
+ "LAYOUT_all": "LAYOUT_60_ansi_split_bs_rshift"
+ },
+ "layouts": {
+ "LAYOUT_60_ansi_split_bs_rshift": {
+ "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},
+ {"x": 14, "y": 0},
+
+ {"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},
+ {"x": 12.25, "y": 3, "w": 1.75},
+ {"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, "w": 1.25},
+ {"x": 11.25, "y": 4, "w": 1.25},
+ {"x": 12.5, "y": 4, "w": 1.25},
+ {"x": 13.75, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_60_ansi": {
+ "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},
+ {"x": 12.25, "y": 3, "w": 2.75},
+
+ {"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, "w": 1.25},
+ {"x": 11.25, "y": 4, "w": 1.25},
+ {"x": 12.5, "y": 4, "w": 1.25},
+ {"x": 13.75, "y": 4, "w": 1.25}
+ ]
+ }
+ }
+}
diff --git a/keyboards/mechlovin/zed60/keymaps/default/keymap.c b/keyboards/mechlovin/zed60/keymaps/default/keymap.c
new file mode 100644
index 0000000000..d71ba8685e
--- /dev/null
+++ b/keyboards/mechlovin/zed60/keymaps/default/keymap.c
@@ -0,0 +1,36 @@
+/* Copyright 2022 Mechlovin'
+ *
+ * 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 LT1_CAP LT(1, KC_CAPS)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_60_ansi_split_bs_rshift(
+ 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_DEL,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ LT1_CAP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TO(1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL
+ ),
+ [1] = LAYOUT_60_ansi_split_bs_rshift(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PENT,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_P1, KC_P2, KC_P3, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+};
diff --git a/keyboards/mechlovin/zed60/keymaps/default/readme.md b/keyboards/mechlovin/zed60/keymaps/default/readme.md
new file mode 100644
index 0000000000..c7d59d9829
--- /dev/null
+++ b/keyboards/mechlovin/zed60/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for Zed60
diff --git a/keyboards/mechlovin/zed60/keymaps/via/keymap.c b/keyboards/mechlovin/zed60/keymaps/via/keymap.c
new file mode 100644
index 0000000000..8b3096d780
--- /dev/null
+++ b/keyboards/mechlovin/zed60/keymaps/via/keymap.c
@@ -0,0 +1,50 @@
+/* Copyright 2022 Mechlovin'
+ *
+ * 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 LT1_CAP LT(1, KC_CAPS)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_60_ansi_split_bs_rshift(
+ 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_DEL,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ LT1_CAP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TO(1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL
+ ),
+ [1] = LAYOUT_60_ansi_split_bs_rshift(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PENT,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_P1, KC_P2, KC_P3, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [2] = LAYOUT_60_ansi_split_bs_rshift(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [3] = LAYOUT_60_ansi_split_bs_rshift(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+};
diff --git a/keyboards/mechlovin/zed60/keymaps/via/readme.md b/keyboards/mechlovin/zed60/keymaps/via/readme.md
new file mode 100644
index 0000000000..b05c87e476
--- /dev/null
+++ b/keyboards/mechlovin/zed60/keymaps/via/readme.md
@@ -0,0 +1 @@
+# The VIA keymap for Zed60
diff --git a/keyboards/mechlovin/zed60/keymaps/via/rules.mk b/keyboards/mechlovin/zed60/keymaps/via/rules.mk
new file mode 100644
index 0000000000..036bd6d1c3
--- /dev/null
+++ b/keyboards/mechlovin/zed60/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/mechlovin/infinity87/rev1/rouge87/config.h b/keyboards/mechlovin/zed60/mcuconf.h
index 786da387bc..0a9c3ca2c5 100644
--- a/keyboards/mechlovin/infinity87/rev1/rouge87/config.h
+++ b/keyboards/mechlovin/zed60/mcuconf.h
@@ -1,4 +1,4 @@
-/* Copyright 2020 Team Mechlovin'
+/* Copyright 2022 QMK
*
* 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
@@ -16,6 +16,8 @@
#pragma once
-#define PRODUCT_ID 0x8703
-#define DEVICE_VER 0x0001
-#define PRODUCT Rouge87 Rev.1
+#include_next <mcuconf.h>
+
+
+#undef STM32_SPI_USE_SPI1
+#define STM32_SPI_USE_SPI1 TRUE
diff --git a/keyboards/mechlovin/zed60/readme.md b/keyboards/mechlovin/zed60/readme.md
new file mode 100644
index 0000000000..d2e76ff55c
--- /dev/null
+++ b/keyboards/mechlovin/zed60/readme.md
@@ -0,0 +1,27 @@
+# zed60
+
+![zed60](https://i.imgur.com/KyTpfmMl.png)
+
+Zed60 PCB, 60% keyboard PCB.
+* Keyboard Maintainer: [Mechlovin'](https://mechlovin.studio)
+* Hardware Supported: Zed60, APM32F103
+* Hardware Availability: [Mechlovin'](https://mechlovin.studio)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make mechlovin/zed60:default
+
+Flashing example for this keyboard:
+
+ make mechlovin/zed60:default:flash
+
+## Bootloader
+
+Enter the bootloader in 4 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
+* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
+* **Bootloader**: Hold down the key at (0,13) in the matrix (Backspace) and plug in the keyboard
+
+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).
diff --git a/keyboards/mechlovin/zed60/rules.mk b/keyboards/mechlovin/zed60/rules.mk
new file mode 100644
index 0000000000..d90d20b776
--- /dev/null
+++ b/keyboards/mechlovin/zed60/rules.mk
@@ -0,0 +1,20 @@
+# MCU name
+MCU = STM32F103
+
+# Bootloader selection
+BOOTLOADER = stm32duino
+
+
+# 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 = yes # Console for debug
+COMMAND_ENABLE = yes # 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
+WS2812_DRIVER = spi
diff --git a/keyboards/mechlovin/zed60/zed60.c b/keyboards/mechlovin/zed60/zed60.c
new file mode 100644
index 0000000000..fb0c44ec3d
--- /dev/null
+++ b/keyboards/mechlovin/zed60/zed60.c
@@ -0,0 +1,17 @@
+/* Copyright 2022 Mechlovin' Studio
+ *
+ * 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 "zed60.h"
diff --git a/keyboards/mechlovin/zed60/zed60.h b/keyboards/mechlovin/zed60/zed60.h
new file mode 100644
index 0000000000..36ffa18330
--- /dev/null
+++ b/keyboards/mechlovin/zed60/zed60.h
@@ -0,0 +1,66 @@
+/* Copyright 2022 Mechlovin'
+ *
+ * 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
+
+/*
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐
+ * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2C │ │0D │ 2u Backspace
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ └───────┘
+ * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
+ * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │
+ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌──────────┐
+ │30 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ │3C │ 2.75u RShift
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ └──────────┘
+ * │40 │41 │42 │46 │4A │4B │4C │4D │ Standard
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+ * ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
+ * │40 │41 │42 │46 │4B │4C │4D │ Tsangan/WKL
+ * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
+ */
+
+#define LAYOUT_60_ansi_split_bs_rshift( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2C, \
+ 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, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
+ K40, K41, K42, K46, 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, K2C, K2D }, \
+ { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
+ { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D }, \
+}
+
+#define LAYOUT_60_ansi( \
+ 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, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
+ K40, K41, K42, K46, 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, XXX, K2D }, \
+ { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, XXX }, \
+ { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D }, \
+}
+
diff --git a/keyboards/mechlovin/zed65/config.h b/keyboards/mechlovin/zed65/config.h
new file mode 100644
index 0000000000..b93b4900e0
--- /dev/null
+++ b/keyboards/mechlovin/zed65/config.h
@@ -0,0 +1,108 @@
+/*
+Copyright 2022 Mechlovin'
+
+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"
+
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 15
+
+/*
+ * 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)
+ *
+ */
+/* COL2ROW, ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/*
+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
+ */
+//#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
+
+//#define LED_NUM_LOCK_PIN B0
+#define LED_CAPS_LOCK_PIN C14
+//#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
+
+/* 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
+
+/* Bootmagic Lite key configuration */
+//#define BOOTMAGIC_LITE_ROW 0
+//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/mechlovin/zed65/readme.md b/keyboards/mechlovin/zed65/readme.md
new file mode 100644
index 0000000000..7da1e7c365
--- /dev/null
+++ b/keyboards/mechlovin/zed65/readme.md
@@ -0,0 +1,25 @@
+# Zed65
+
+Mechlovin's 65% PCB Platform, which works as the base for our 65%-layout PCB designs.
+
+* Keyboard Maintainer: [Mechlovin' Studio](https://github.com/mechlovin)
+* Hardware Supported: Zed65 Rev.1, APM32F103
+* Hardware Availability: [Mechlovin' Store](https://mechlovin.studio/)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make mechlovin/zed65:default
+
+Flashing example for this keyboard:
+
+ make mechlovin/zed65:default:flash
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
+* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/mechlovin/zed65/retro66/config.h b/keyboards/mechlovin/zed65/retro66/config.h
new file mode 100644
index 0000000000..7609b34024
--- /dev/null
+++ b/keyboards/mechlovin/zed65/retro66/config.h
@@ -0,0 +1,33 @@
+/*
+Copyright 2022 Mechlovin'
+
+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"
+
+#define MATRIX_ROW_PINS { B13, B14, A8, A1, A0 }
+#define MATRIX_COL_PINS { B11, B12, B10, B2, B1, B0, A7, A6, A5, A4, A3, A2, B3, A15, B5 }
+
+
+// Number of encoders
+
+#define ENCODERS_PAD_A { B4, B6 }
+#define ENCODERS_PAD_B { B8, B9 }
+
+
+#define ENCODER_RESOLUTION 4
+#define TAP_CODE_DELAY 10 \ No newline at end of file
diff --git a/keyboards/mechlovin/zed65/retro66/info.json b/keyboards/mechlovin/zed65/retro66/info.json
new file mode 100644
index 0000000000..a40bee98dd
--- /dev/null
+++ b/keyboards/mechlovin/zed65/retro66/info.json
@@ -0,0 +1,19 @@
+{
+ "keyboard_name": "Retro66",
+ "manufacturer": "Mechlovin Studio",
+ "url": "",
+ "maintainer": "Mechlovin' Studio",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0x6601",
+ "device_version": "0.0.1"
+ },
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Insert", "x":15.75, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Delete", "x":15.75, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.25}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.25}, {"label":"\u2191", "x":14.75, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.5}, {"label":"Ctrl", "x":11.5, "y":4, "w":1.25}, {"label":"\u2190", "x":13.75, "y":4}, {"label":"\u2193", "x":14.75, "y":4}, {"label":"\u2192", "x":15.75, "y":4}]
+ },
+ "LAYOUT_blocker": {
+ "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Insert", "x":15.75, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Delete", "x":15.75, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.25}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.25}, {"label":"\u2191", "x":14.75, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Alt", "x":2.25, "y":4, "w":1.5}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.5}, {"label":"Ctrl", "x":11.5, "y":4, "w":1.25}, {"label":"\u2190", "x":13.75, "y":4}, {"label":"\u2193", "x":14.75, "y":4}, {"label":"\u2192", "x":15.75, "y":4}]
+ }
+ }
+} \ No newline at end of file
diff --git a/keyboards/mechlovin/zed65/retro66/keymaps/default/keymap.c b/keyboards/mechlovin/zed65/retro66/keymaps/default/keymap.c
new file mode 100644
index 0000000000..e20b641e12
--- /dev/null
+++ b/keyboards/mechlovin/zed65/retro66/keymaps/default/keymap.c
@@ -0,0 +1,35 @@
+/*
+Copyright 2022 Mechlovin'
+
+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_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+};
+
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+ [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_BRID, KC_BRIU) }
+};
+#endif
diff --git a/keyboards/mechlovin/zed65/retro66/keymaps/default/readme.md b/keyboards/mechlovin/zed65/retro66/keymaps/default/readme.md
new file mode 100644
index 0000000000..ac3f3127e7
--- /dev/null
+++ b/keyboards/mechlovin/zed65/retro66/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for Retro66 \ No newline at end of file
diff --git a/keyboards/mechlovin/zed65/retro66/keymaps/default/rules.mk b/keyboards/mechlovin/zed65/retro66/keymaps/default/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/mechlovin/zed65/retro66/keymaps/default/rules.mk
@@ -0,0 +1 @@
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/mechlovin/zed65/retro66/keymaps/via/keymap.c b/keyboards/mechlovin/zed65/retro66/keymaps/via/keymap.c
new file mode 100644
index 0000000000..2c9e49e753
--- /dev/null
+++ b/keyboards/mechlovin/zed65/retro66/keymaps/via/keymap.c
@@ -0,0 +1,61 @@
+/*
+Copyright 2022 Mechlovin'
+
+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_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+
+};
+
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+ [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_BRID, KC_BRIU) },
+ [1] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_BRID, KC_BRIU) },
+ [2] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_BRID, KC_BRIU) },
+ [3] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_BRID, KC_BRIU) }
+};
+#endif
diff --git a/keyboards/mechlovin/zed65/retro66/keymaps/via/readme.md b/keyboards/mechlovin/zed65/retro66/keymaps/via/readme.md
new file mode 100644
index 0000000000..6216302953
--- /dev/null
+++ b/keyboards/mechlovin/zed65/retro66/keymaps/via/readme.md
@@ -0,0 +1 @@
+# The VIA keymap for retro66 \ No newline at end of file
diff --git a/keyboards/mechlovin/zed65/retro66/keymaps/via/rules.mk b/keyboards/mechlovin/zed65/retro66/keymaps/via/rules.mk
new file mode 100644
index 0000000000..1189f4ad19
--- /dev/null
+++ b/keyboards/mechlovin/zed65/retro66/keymaps/via/rules.mk
@@ -0,0 +1,3 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/mechlovin/zed65/retro66/readme.md b/keyboards/mechlovin/zed65/retro66/readme.md
new file mode 100644
index 0000000000..af568441d7
--- /dev/null
+++ b/keyboards/mechlovin/zed65/retro66/readme.md
@@ -0,0 +1,27 @@
+# Retro66
+
+![Retro66](https://i.imgur.com/gs52Otbl.jpeg)
+
+A Retro66 keyboard PCB, base on Zed65.
+
+* Keyboard Maintainer: [Mechlovin' Studio](https://github.com/mechlovin)
+* Hardware Supported: Zed65, APM32F103
+* Hardware Availability: [Mechlovin' Store](https://mechlovin.studio/)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make mechlovin/zed65/retro66:default
+
+Flashing example for this keyboard:
+
+ make mechlovin/zed65/retro66:default:flash
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
+* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/mechlovin/hannah65/rev1/haus/config.h b/keyboards/mechlovin/zed65/retro66/retro66.c
index 204bf356e7..ffdf09db28 100644
--- a/keyboards/mechlovin/hannah65/rev1/haus/config.h
+++ b/keyboards/mechlovin/zed65/retro66/retro66.c
@@ -1,5 +1,5 @@
/*
-Copyright 2021 Mechlovin' Studio
+Copyright 2022 Mechlovin'
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
@@ -15,8 +15,5 @@ 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 "retro66.h"
-#define PRODUCT_ID 0x6500
-#define DEVICE_VER 0x0001
-#define PRODUCT Haus Rev. 1 \ No newline at end of file
diff --git a/keyboards/mechlovin/zed65/retro66/retro66.h b/keyboards/mechlovin/zed65/retro66/retro66.h
new file mode 100644
index 0000000000..2e51141b6d
--- /dev/null
+++ b/keyboards/mechlovin/zed65/retro66/retro66.h
@@ -0,0 +1,48 @@
+/*
+Copyright 2022 Mechlovin'
+
+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_all( \
+ 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, \
+ K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
+ K40, K41, K42, K46, K4A, K4B, 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, KC_NO, K2D, KC_NO }, \
+ { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO }, \
+ { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E }, \
+}
+
+#define LAYOUT_blocker( \
+ 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, \
+ K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
+ K40, K42, K46, K4A, K4B, 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, KC_NO, K2D, KC_NO }, \
+ { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO }, \
+ { K40, KC_NO, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E }, \
+}
diff --git a/keyboards/mechlovin/zed65/retro66/rules.mk b/keyboards/mechlovin/zed65/retro66/rules.mk
new file mode 100644
index 0000000000..5af1ba8536
--- /dev/null
+++ b/keyboards/mechlovin/zed65/retro66/rules.mk
@@ -0,0 +1 @@
+ENCODER_ENABLE = yes
diff --git a/keyboards/mechlovin/zed65/rules.mk b/keyboards/mechlovin/zed65/rules.mk
new file mode 100644
index 0000000000..a3a13b375b
--- /dev/null
+++ b/keyboards/mechlovin/zed65/rules.mk
@@ -0,0 +1,21 @@
+# MCU name
+MCU = STM32F103
+BOARD = STM32_F103_STM32DUINO
+
+# Bootloader selection
+BOOTLOADER = stm32duino
+
+# 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 = yes # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = no # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
+
+DEFAULT_FOLDER = mechlovin/zed65/wearhaus66
diff --git a/keyboards/mechlovin/zed65/wearhaus66/config.h b/keyboards/mechlovin/zed65/wearhaus66/config.h
new file mode 100644
index 0000000000..5b79931a03
--- /dev/null
+++ b/keyboards/mechlovin/zed65/wearhaus66/config.h
@@ -0,0 +1,57 @@
+/*
+Copyright 2022 Mechlovin'
+
+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"
+
+#define MATRIX_ROW_PINS { B13, B14, A8, A1, A0 }
+#define MATRIX_COL_PINS { B11, B12, B10, B2, B1, B0, A7, A6, A5, A4, A3, A2, B3, A15, B5 }
+
+
+#ifdef RGBLIGHT_ENABLE
+#define RGB_DI_PIN B15
+#define RGBLED_NUM 24
+#define RGBLIGHT_LIMIT_VAL 255
+
+#define WS2812_SPI SPID2 // default: SPID1
+#define WS2812_SPI_MOSI_PAL_MODE 0 // MOSI pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5
+
+//#define RGB_DI_PIN E2
+//#ifdef RGB_DI_PIN
+# 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
+/*== 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 \ No newline at end of file
diff --git a/keyboards/mechlovin/zed65/wearhaus66/halconf.h b/keyboards/mechlovin/zed65/wearhaus66/halconf.h
new file mode 100644
index 0000000000..ccf7447285
--- /dev/null
+++ b/keyboards/mechlovin/zed65/wearhaus66/halconf.h
@@ -0,0 +1,22 @@
+/* Copyright 2022 QMK
+ *
+ * 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_SPI TRUE
+
+#include_next <halconf.h>
+
diff --git a/keyboards/mechlovin/zed65/wearhaus66/info.json b/keyboards/mechlovin/zed65/wearhaus66/info.json
new file mode 100644
index 0000000000..ac672ff1f6
--- /dev/null
+++ b/keyboards/mechlovin/zed65/wearhaus66/info.json
@@ -0,0 +1,91 @@
+{
+ "keyboard_name": "Wearhaus66",
+ "manufacturer": "Mechlovin Studio",
+ "url": "",
+ "maintainer": "Mechlovin' Studio",
+ "usb": {
+ "vid": "0x4D4C",
+ "pid": "0x6602",
+ "device_version": "0.0.1"
+ },
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [
+ {"label":"0,0", "x":0, "y":0},
+ {"label":"0,1", "x":1, "y":0},
+ {"label":"0,2", "x":2, "y":0},
+ {"label":"0,3", "x":3, "y":0},
+ {"label":"0,4", "x":4, "y":0},
+ {"label":"0,5", "x":5, "y":0},
+ {"label":"0,6", "x":6, "y":0},
+ {"label":"0,7", "x":7, "y":0},
+ {"label":"0,8", "x":8, "y":0},
+ {"label":"0,9", "x":9, "y":0},
+ {"label":"0,10", "x":10, "y":0},
+ {"label":"0,11", "x":11, "y":0},
+ {"label":"0,12", "x":12, "y":0},
+ {"label":"0,13", "x":13, "y":0},
+ {"label":"1,13", "x":14, "y":0},
+ {"label":"1,14", "x":15.25, "y":0.75},
+ {"label":"1,0", "x":0, "y":1, "w":1.5},
+ {"label":"1,1", "x":1.5, "y":1},
+ {"label":"1,2", "x":2.5, "y":1},
+ {"label":"1,3", "x":3.5, "y":1},
+ {"label":"1,4", "x":4.5, "y":1},
+ {"label":"1,5", "x":5.5, "y":1},
+ {"label":"1,6", "x":6.5, "y":1},
+ {"label":"1,7", "x":7.5, "y":1},
+ {"label":"1,8", "x":8.5, "y":1},
+ {"label":"1,9", "x":9.5, "y":1},
+ {"label":"1,10", "x":10.5, "y":1},
+ {"label":"1,11", "x":11.5, "y":1},
+ {"label":"1,12", "x":12.5, "y":1},
+ {"label":"2,12", "x":13.5, "y":1, "w":1.5},
+ {"label":"2,14", "x":15.25, "y":1.75},
+ {"label":"2,0", "x":0, "y":2, "w":1.75},
+ {"label":"2,1", "x":1.75, "y":2},
+ {"label":"2,2", "x":2.75, "y":2},
+ {"label":"2,3", "x":3.75, "y":2},
+ {"label":"2,4", "x":4.75, "y":2},
+ {"label":"2,5", "x":5.75, "y":2},
+ {"label":"2,6", "x":6.75, "y":2},
+ {"label":"2,7", "x":7.75, "y":2},
+ {"label":"2,8", "x":8.75, "y":2},
+ {"label":"2,9", "x":9.75, "y":2},
+ {"label":"2,10", "x":10.75, "y":2},
+ {"label":"2,11", "x":11.75, "y":2},
+ {"label":"2,13", "x":12.75, "y":2, "w":2.25},
+ {"label":"3,14", "x":15.25, "y":2.75},
+ {"label":"3,0", "x":0, "y":3, "w":1.25},
+ {"label":"3,1", "x":1.25, "y":3},
+ {"label":"3,2", "x":2.25, "y":3},
+ {"label":"3,3", "x":3.25, "y":3},
+ {"label":"3,4", "x":4.25, "y":3},
+ {"label":"3,5", "x":5.25, "y":3},
+ {"label":"3,6", "x":6.25, "y":3},
+ {"label":"3,7", "x":7.25, "y":3},
+ {"label":"3,8", "x":8.25, "y":3},
+ {"label":"3,9", "x":9.25, "y":3},
+ {"label":"3,10", "x":10.25, "y":3},
+ {"label":"3,11", "x":11.25, "y":3},
+ {"label":"3,12", "x":12.25, "y":3, "w":1.75},
+ {"label":"3,13", "x":14, "y":3},
+ {"label":"4,0", "x":0, "y":4, "w":1.25},
+ {"label":"4,1", "x":1.25, "y":4, "w":1.25},
+ {"label":"4,2", "x":2.5, "y":4, "w":1.25},
+ {"label":"4,6", "x":3.75, "y":4, "w":6.25},
+ {"label":"4,9", "x":10, "y":4, "w":1.25},
+ {"label":"4,10", "x":11.25, "y":4, "w":1.25},
+ {"label":"4,12", "x":13, "y":4},
+ {"label":"4,13", "x":14, "y":4},
+ {"label":"4,14", "x":15, "y":4}
+ ]
+ },
+ "LAYOUT_65_ansi_blocker": {
+ "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1, "y":0}, {"label":"0,2", "x":2, "y":0}, {"label":"0,3", "x":3, "y":0}, {"label":"0,4", "x":4, "y":0}, {"label":"0,5", "x":5, "y":0}, {"label":"0,6", "x":6, "y":0}, {"label":"0,7", "x":7, "y":0}, {"label":"0,8", "x":8, "y":0}, {"label":"0,9", "x":9, "y":0}, {"label":"0,10", "x":10, "y":0}, {"label":"0,11", "x":11, "y":0}, {"label":"0,12", "x":12, "y":0}, {"label":"0,13", "x":13, "y":0, "w":2}, {"label":"1,14", "x":15.25, "y":0.75}, {"label":"1,0", "x":0, "y":1, "w":1.5}, {"label":"1,1", "x":1.5, "y":1}, {"label":"1,2", "x":2.5, "y":1}, {"label":"1,3", "x":3.5, "y":1}, {"label":"1,4", "x":4.5, "y":1}, {"label":"1,5", "x":5.5, "y":1}, {"label":"1,6", "x":6.5, "y":1}, {"label":"1,7", "x":7.5, "y":1}, {"label":"1,8", "x":8.5, "y":1}, {"label":"1,9", "x":9.5, "y":1}, {"label":"1,10", "x":10.5, "y":1}, {"label":"1,11", "x":11.5, "y":1}, {"label":"1,12", "x":12.5, "y":1}, {"label":"2,12", "x":13.5, "y":1, "w":1.5}, {"label":"2,14", "x":15.25, "y":1.75}, {"label":"2,0", "x":0, "y":2, "w":1.75}, {"label":"2,1", "x":1.75, "y":2}, {"label":"2,2", "x":2.75, "y":2}, {"label":"2,3", "x":3.75, "y":2}, {"label":"2,4", "x":4.75, "y":2}, {"label":"2,5", "x":5.75, "y":2}, {"label":"2,6", "x":6.75, "y":2}, {"label":"2,7", "x":7.75, "y":2}, {"label":"2,8", "x":8.75, "y":2}, {"label":"2,9", "x":9.75, "y":2}, {"label":"2,10", "x":10.75, "y":2}, {"label":"2,11", "x":11.75, "y":2}, {"label":"2,13", "x":12.75, "y":2, "w":2.25}, {"label":"3,14", "x":15.25, "y":2.75}, {"label":"3,0", "x":0, "y":3, "w":2.25}, {"label":"3,2", "x":2.25, "y":3}, {"label":"3,3", "x":3.25, "y":3}, {"label":"3,4", "x":4.25, "y":3}, {"label":"3,5", "x":5.25, "y":3}, {"label":"3,6", "x":6.25, "y":3}, {"label":"3,7", "x":7.25, "y":3}, {"label":"3,8", "x":8.25, "y":3}, {"label":"3,9", "x":9.25, "y":3}, {"label":"3,10", "x":10.25, "y":3}, {"label":"3,11", "x":11.25, "y":3}, {"label":"3,12", "x":12.25, "y":3, "w":1.75}, {"label":"3,13", "x":14, "y":3}, {"label":"4,0", "x":0, "y":4, "w":1.25}, {"label":"4,1", "x":1.25, "y":4, "w":1.25}, {"label":"4,2", "x":2.5, "y":4, "w":1.25}, {"label":"4,6", "x":3.75, "y":4, "w":6.25}, {"label":"4,9", "x":10, "y":4, "w":1.25}, {"label":"4,10", "x":11.25, "y":4, "w":1.25}, {"label":"4,12", "x":13, "y":4}, {"label":"4,13", "x":14, "y":4}, {"label":"4,14", "x":15, "y":4}]
+ },
+ "LAYOUT_65_iso_blocker": {
+ "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1, "y":0}, {"label":"0,2", "x":2, "y":0}, {"label":"0,3", "x":3, "y":0}, {"label":"0,4", "x":4, "y":0}, {"label":"0,5", "x":5, "y":0}, {"label":"0,6", "x":6, "y":0}, {"label":"0,7", "x":7, "y":0}, {"label":"0,8", "x":8, "y":0}, {"label":"0,9", "x":9, "y":0}, {"label":"0,10", "x":10, "y":0}, {"label":"0,11", "x":11, "y":0}, {"label":"0,12", "x":12, "y":0}, {"label":"0,13", "x":13, "y":0, "w":2}, {"label":"1,14", "x":15.25, "y":0.75}, {"label":"1,0", "x":0, "y":1, "w":1.5}, {"label":"1,1", "x":1.5, "y":1}, {"label":"1,2", "x":2.5, "y":1}, {"label":"1,3", "x":3.5, "y":1}, {"label":"1,4", "x":4.5, "y":1}, {"label":"1,5", "x":5.5, "y":1}, {"label":"1,6", "x":6.5, "y":1}, {"label":"1,7", "x":7.5, "y":1}, {"label":"1,8", "x":8.5, "y":1}, {"label":"1,9", "x":9.5, "y":1}, {"label":"1,10", "x":10.5, "y":1}, {"label":"1,11", "x":11.5, "y":1}, {"label":"1,12", "x":12.5, "y":1}, {"label":"2,12", "x":13.5, "y":1, "w":1.5}, {"label":"2,14", "x":15.25, "y":1.75}, {"label":"2,0", "x":0, "y":2, "w":1.75}, {"label":"2,1", "x":1.75, "y":2}, {"label":"2,2", "x":2.75, "y":2}, {"label":"2,3", "x":3.75, "y":2}, {"label":"2,4", "x":4.75, "y":2}, {"label":"2,5", "x":5.75, "y":2}, {"label":"2,6", "x":6.75, "y":2}, {"label":"2,7", "x":7.75, "y":2}, {"label":"2,8", "x":8.75, "y":2}, {"label":"2,9", "x":9.75, "y":2}, {"label":"2,10", "x":10.75, "y":2}, {"label":"2,11", "x":11.75, "y":2}, {"label":"2,13", "x":12.75, "y":2, "w":2.25}, {"label":"3,14", "x":15.25, "y":2.75}, {"label":"3,0", "x":0, "y":3, "w":1.25}, {"label":"3,1", "x":1.25, "y":3}, {"label":"3,2", "x":2.25, "y":3}, {"label":"3,3", "x":3.25, "y":3}, {"label":"3,4", "x":4.25, "y":3}, {"label":"3,5", "x":5.25, "y":3}, {"label":"3,6", "x":6.25, "y":3}, {"label":"3,7", "x":7.25, "y":3}, {"label":"3,8", "x":8.25, "y":3}, {"label":"3,9", "x":9.25, "y":3}, {"label":"3,10", "x":10.25, "y":3}, {"label":"3,11", "x":11.25, "y":3}, {"label":"3,12", "x":12.25, "y":3, "w":1.75}, {"label":"3,13", "x":14, "y":3}, {"label":"4,0", "x":0, "y":4, "w":1.25}, {"label":"4,1", "x":1.25, "y":4, "w":1.25}, {"label":"4,2", "x":2.5, "y":4, "w":1.25}, {"label":"4,6", "x":3.75, "y":4, "w":6.25}, {"label":"4,9", "x":10, "y":4, "w":1.25}, {"label":"4,10", "x":11.25, "y":4, "w":1.25}, {"label":"4,12", "x":13, "y":4}, {"label":"4,13", "x":14, "y":4}, {"label":"4,14", "x":15, "y":4}]
+ }
+ }
+}
diff --git a/keyboards/mechlovin/zed65/wearhaus66/keymaps/default/keymap.c b/keyboards/mechlovin/zed65/wearhaus66/keymaps/default/keymap.c
new file mode 100644
index 0000000000..017f57b160
--- /dev/null
+++ b/keyboards/mechlovin/zed65/wearhaus66/keymaps/default/keymap.c
@@ -0,0 +1,45 @@
+/*
+Copyright 2021 Mechlovin'
+
+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_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS,
+ 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_HOME,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ )
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case BL_ON:
+ if (record->event.pressed) {
+ writePinHigh(B7);
+ }
+ break;
+ case BL_OFF:
+ if (record->event.pressed) {
+ writePinLow(B7);
+ }
+ break;
+ }
+ return true;
+};
diff --git a/keyboards/mechlovin/zed65/wearhaus66/keymaps/default/readme.md b/keyboards/mechlovin/zed65/wearhaus66/keymaps/default/readme.md
new file mode 100644
index 0000000000..2d77dcd5df
--- /dev/null
+++ b/keyboards/mechlovin/zed65/wearhaus66/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for wearhaus66 \ No newline at end of file
diff --git a/keyboards/mechlovin/zed65/wearhaus66/keymaps/default/rules.mk b/keyboards/mechlovin/zed65/wearhaus66/keymaps/default/rules.mk
new file mode 100644
index 0000000000..43061db1dd
--- /dev/null
+++ b/keyboards/mechlovin/zed65/wearhaus66/keymaps/default/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/mechlovin/zed65/wearhaus66/keymaps/via/keymap.c b/keyboards/mechlovin/zed65/wearhaus66/keymaps/via/keymap.c
new file mode 100644
index 0000000000..b57369b8e1
--- /dev/null
+++ b/keyboards/mechlovin/zed65/wearhaus66/keymaps/via/keymap.c
@@ -0,0 +1,70 @@
+/*
+Copyright 2021 Mechlovin'
+
+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
+
+enum my_keycodes {
+ LOGO_LED_ON = USER00,
+ LOGO_LED_OFF
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS,
+ 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_HOME,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 LOGO_LED_ON:
+ if (record->event.pressed) {
+ writePinHigh(B7);
+ }
+ break;
+ case LOGO_LED_OFF:
+ if (record->event.pressed) {
+ writePinLow(B7);
+ }
+ break;
+ }
+ return true;
+};
diff --git a/keyboards/mechlovin/zed65/wearhaus66/keymaps/via/readme.md b/keyboards/mechlovin/zed65/wearhaus66/keymaps/via/readme.md
new file mode 100644
index 0000000000..6ac2f7bccc
--- /dev/null
+++ b/keyboards/mechlovin/zed65/wearhaus66/keymaps/via/readme.md
@@ -0,0 +1 @@
+# The VIA keymap for wearhaus66 \ No newline at end of file
diff --git a/keyboards/mechlovin/zed65/wearhaus66/keymaps/via/rules.mk b/keyboards/mechlovin/zed65/wearhaus66/keymaps/via/rules.mk
new file mode 100644
index 0000000000..43061db1dd
--- /dev/null
+++ b/keyboards/mechlovin/zed65/wearhaus66/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/mechlovin/zed65/wearhaus66/readme.md b/keyboards/mechlovin/zed65/wearhaus66/readme.md
new file mode 100644
index 0000000000..c3f46ae76d
--- /dev/null
+++ b/keyboards/mechlovin/zed65/wearhaus66/readme.md
@@ -0,0 +1,27 @@
+# Wearhaus66
+
+![Wearhaus66](https://i.imgur.com/U0HNqSfl.jpeg)
+
+A Wearhaus66 keyboard PCB, base on Zed65.
+
+* Keyboard Maintainer: [Mechlovin' Studio](https://github.com/mechlovin)
+* Hardware Supported: Zed65, APM32F103
+* Hardware Availability: [Mechlovin' Store](https://mechlovin.studio/)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make mechlovin/zed65/wearhaus66:default
+
+Flashing example for this keyboard:
+
+ make mechlovin/zed65/wearhaus66:default:flash
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (Escape) and plug in the keyboard
+* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/mechlovin/zed65/wearhaus66/rules.mk b/keyboards/mechlovin/zed65/wearhaus66/rules.mk
new file mode 100644
index 0000000000..48d473fbdb
--- /dev/null
+++ b/keyboards/mechlovin/zed65/wearhaus66/rules.mk
@@ -0,0 +1,2 @@
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+WS2812_DRIVER = spi \ No newline at end of file
diff --git a/keyboards/mechlovin/zed65/wearhaus66/wearhaus66.c b/keyboards/mechlovin/zed65/wearhaus66/wearhaus66.c
new file mode 100644
index 0000000000..f75c17e35e
--- /dev/null
+++ b/keyboards/mechlovin/zed65/wearhaus66/wearhaus66.c
@@ -0,0 +1,24 @@
+/*
+Copyright 2022 Mechlovin'
+
+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 "wearhaus66.h"
+
+void keyboard_pre_init_user(void) {
+ // Call the keyboard pre init code.
+ // Set our LED pins as output
+ setPinOutput(B7);
+}
diff --git a/keyboards/mechlovin/zed65/wearhaus66/wearhaus66.h b/keyboards/mechlovin/zed65/wearhaus66/wearhaus66.h
new file mode 100644
index 0000000000..8c4a0ee79a
--- /dev/null
+++ b/keyboards/mechlovin/zed65/wearhaus66/wearhaus66.h
@@ -0,0 +1,62 @@
+/*
+Copyright 2022 Mechlovin'
+
+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_all( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
+ K40, K41, K42, K46, K49, K4A, K4C, K4D, K4E \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO }, \
+ { 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, K2C, K2D, K2E }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
+ { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, K49, K4A, KC_NO, K4C, K4D, K4E }, \
+}
+
+#define LAYOUT_65_ansi_blocker( \
+ 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, K2C, 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, K46, K49, K4A, K4C, K4D, K4E \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, K1E }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \
+ { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
+ { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, K49, K4A, KC_NO, K4C, K4D, K4E }, \
+}
+
+#define LAYOUT_65_iso_blocker( \
+ 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, K1E, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
+ K40, K41, K42, K46, K49, K4A, K4C, K4D, K4E \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, K1E }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
+ { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, K49, K4A, KC_NO, K4C, K4D, K4E }, \
+}
diff --git a/keyboards/mechlovin/zed65/zed65.c b/keyboards/mechlovin/zed65/zed65.c
new file mode 100644
index 0000000000..289c98d068
--- /dev/null
+++ b/keyboards/mechlovin/zed65/zed65.c
@@ -0,0 +1,18 @@
+/*
+Copyright 2022 Mechlovin'
+
+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 "zed65.h"
diff --git a/keyboards/mechlovin/zed65/zed65.h b/keyboards/mechlovin/zed65/zed65.h
new file mode 100644
index 0000000000..bab950dca2
--- /dev/null
+++ b/keyboards/mechlovin/zed65/zed65.h
@@ -0,0 +1,26 @@
+/*
+Copyright 2022 Mechlovin'
+
+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"
+
+#ifdef KEYBOARD_mechlovin_zed65_retro66
+ #include "retro66.h"
+#elif KEYBOARD_mechlovin_zed65_wearhaus66
+ #include "wearhaus66.h"
+#endif