summary refs log tree commit diff
diff options
context:
space:
mode:
authorQMK Bot <hello@qmk.fm>2021-07-07 01:05:02 +0000
committerQMK Bot <hello@qmk.fm>2021-07-07 01:05:02 +0000
commit99d14751410ede31a5ac08ccc11ef404d855ddde (patch)
treeda26042a04664385a8c6d9fee75312a162ba35da
parent0aa963c740012715c150731bf53d02f3dba6747b (diff)
parentdba3f0d1ebeb8103e93494cb428021c491534202 (diff)
Merge remote-tracking branch 'origin/master' into develop
-rw-r--r--keyboards/bm65iso/bm65iso.c59
-rw-r--r--keyboards/bm65iso/bm65iso.h36
-rw-r--r--keyboards/bm65iso/config.h72
-rw-r--r--keyboards/bm65iso/info.json82
-rw-r--r--keyboards/bm65iso/keymaps/deadolus/config.h27
-rw-r--r--keyboards/bm65iso/keymaps/deadolus/keymap.c288
-rw-r--r--keyboards/bm65iso/keymaps/deadolus/keymap.h63
-rw-r--r--keyboards/bm65iso/keymaps/deadolus/readme.md20
-rw-r--r--keyboards/bm65iso/keymaps/deadolus/rules.mk4
-rw-r--r--keyboards/bm65iso/keymaps/default/keymap.c35
-rw-r--r--keyboards/bm65iso/keymaps/via/keymap.c48
-rw-r--r--keyboards/bm65iso/keymaps/via/readme.md1
-rw-r--r--keyboards/bm65iso/keymaps/via/rules.mk1
-rw-r--r--keyboards/bm65iso/readme.md24
-rw-r--r--keyboards/bm65iso/rules.mk25
15 files changed, 785 insertions, 0 deletions
diff --git a/keyboards/bm65iso/bm65iso.c b/keyboards/bm65iso/bm65iso.c
new file mode 100644
index 0000000000..de2aba21c3
--- /dev/null
+++ b/keyboards/bm65iso/bm65iso.c
@@ -0,0 +1,59 @@
+/* Copyright 2020 ipetepete, 2021 deadolus
+ *
+ * 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 "bm65iso.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+  { 0,      1,      2,      3,      4,      5,      6,      7,      8,      9,      10,     11,     12,     13 ,    14},
+  { 15,     16,     17,     18,     19,     20,     21,     22,     23,     24,     25,     26,     27,     28,     29},
+  { 30,     NO_LED, 31,     32,     33,     34,     35,     36,     37,     38,     39,     40,     41,     42,     43},
+  { 44,     45,     46,     47,     48,     49,     50,     51,     52,     53,     54,     55,     56,     57,     58},
+  { 59,     60,     NO_LED, NO_LED, NO_LED, 61,     NO_LED, NO_LED, 62,     63, NO_LED,     64,     65,     66,     67}
+}, {
+    // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
+    {   0,   0 }, {  15,   0 }, {  30,   0 }, {  45,   0 }, {  60,   0 }, {  75,   0 }, {  90,   0 }, { 105,   0 }, { 120,   0 }, { 135,   0 }, { 150,   0 }, { 165,   0 }, { 180,   0 }, { 202,   0 },{ 224,   0 },
+    // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ],  ,
+    {   7,  16 }, {  22,  16 }, {  37,  16 }, {  52,  16 }, {  67,  16 }, {  82,  16 }, {  97,  16 }, { 112,  16 }, { 127,  16 }, { 142,  16 }, { 157,  16 }, { 172,  16 }, { 187,  16 }, { 206,  16 },{ 224,   16},
+    // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter
+    {  11,  32 }, {  26,  32 }, {  41,  32 }, {  56,  32 }, {  71,  32 }, {  86,  32 }, { 101,  32 }, { 116,  32 }, { 131,  32 }, { 146,  32 }, { 161,  32 }, { 176,  32 }, { 198,  32 }, { 224,   32 },
+    // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
+    {  18,  48 }, {  30,  48 }, {  45,  48 }, {  60,  48 }, {  75,  48 }, {  90,  48 }, { 105,  48 }, { 120,  48 }, { 135,  48 }, { 150,  48 }, { 165,  48 }, { 195,  48 }, { 209,   48 }, { 224,   48 },
+    // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
+    {   3,  64 }, {  22,  64 }, {  33,  64 }, { 101,  64 }, { 135,  64 }, { 153,  64 }, { 194,  64 }, { 209,  64 },{ 224,  64 },
+    // UNDERGLOW
+    {   216, 32 }, {  180,  32 }, {  144, 32 }, { 108,  32 }, { 72,  32 }, { 36,  32 }
+}, {
+    // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
+    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+    // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ],  ,
+    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+    // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter
+    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+    // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
+    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+    // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
+    1, 1, 1, 4, 1, 1, 1, 1, 1,
+    // UNDERGLOW
+    2, 2, 2, 2, 2, 2
+} };
+
+__attribute__ ((weak))
+void rgb_matrix_indicators_user(void) {
+    if (host_keyboard_led_state().caps_lock) {
+        rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF);
+    }
+}
+#endif
diff --git a/keyboards/bm65iso/bm65iso.h b/keyboards/bm65iso/bm65iso.h
new file mode 100644
index 0000000000..27a1c1c07f
--- /dev/null
+++ b/keyboards/bm65iso/bm65iso.h
@@ -0,0 +1,36 @@
+/* Copyright 2021 deadolus
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT( \
+    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D,      K0E,   \
+    K10,   K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,    K1E,   \
+    K20,    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,   K0E   }, \
+    { K10,   K11,   K12,   K13,   K14,   K15,   K16,   K17,   K18,   K19,   K1A,   K1B,   K1C,   K1D,   K1E   }, \
+    { K20,   KC_NO, 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   }, \
+}
+
+// generated by KBFirmware JSON to QMK Parser
+// https://noroadsleft.github.io/kbf_qmk_converter/
+
diff --git a/keyboards/bm65iso/config.h b/keyboards/bm65iso/config.h
new file mode 100644
index 0000000000..2bec40f149
--- /dev/null
+++ b/keyboards/bm65iso/config.h
@@ -0,0 +1,72 @@
+/*
+Copyright 2020 ipetepete, 2021 deadolus
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID       0x4B50 // "KP"
+#define PRODUCT_ID      0x0653
+#define DEVICE_VER      0x0001
+#define MANUFACTURER    KP Republic
+#define PRODUCT         BM65ISO
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 15
+#define FORCE_NKRO
+
+/*
+ * 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 { B0, B1, B2, B3, E6 }
+#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4, B5, B6, C6, C7, F7, F6 }
+
+#define DIODE_DIRECTION COL2ROW
+
+#define RGB_DI_PIN E2
+#define DRIVER_LED_TOTAL 74
+#ifdef RGB_DI_PIN
+    #define RGBLED_NUM 74
+    #define RGB_MATRIX_KEYPRESSES
+    #define RGBLIGHT_HUE_STEP 8
+    #define RGBLIGHT_SAT_STEP 8
+    #define RGBLIGHT_VAL_STEP 8
+    #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 140
+#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_BAND_SAT
+    #define RGBLIGHT_SLEEP  /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+/*== all animations enable ==*/
+    #define RGBLIGHT_ANIMATIONS
+// /*== or choose animations ==*/
+//     #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
+#endif
diff --git a/keyboards/bm65iso/info.json b/keyboards/bm65iso/info.json
new file mode 100644
index 0000000000..1f474eb105
--- /dev/null
+++ b/keyboards/bm65iso/info.json
@@ -0,0 +1,82 @@
+{
+    "keyboard_name": "bm65iso",
+    "url": "",
+    "maintainer": "qmk",
+    "width": 16,
+    "height": 5,
+    "layouts": {
+        "LAYOUT": {
+            "layout": [
+                {"label":"K00 (B0,D0)", "x":0, "y":0},
+                {"label":"K01 (B0,D1)", "x":1, "y":0},
+                {"label":"K02 (B0,D2)", "x":2, "y":0},
+                {"label":"K03 (B0,D3)", "x":3, "y":0},
+                {"label":"K04 (B0,D5)", "x":4, "y":0},
+                {"label":"K05 (B0,D4)", "x":5, "y":0},
+                {"label":"K06 (B0,D6)", "x":6, "y":0},
+                {"label":"K07 (B0,D7)", "x":7, "y":0},
+                {"label":"K08 (B0,B4)", "x":8, "y":0},
+                {"label":"K09 (B0,B5)", "x":9, "y":0},
+                {"label":"K0A (B0,B6)", "x":10, "y":0},
+                {"label":"K0B (B0,C6)", "x":11, "y":0},
+                {"label":"K0C (B0,C7)", "x":12, "y":0},
+                {"label":"K0D (B0,F7)", "x":13, "y":0, "w":2},
+                {"label":"K0E (B0,F6)", "x":15, "y":0},
+                {"label":"K10 (B1,D0)", "x":0, "y":1, "w":1.5},
+                {"label":"K11 (B1,D1)", "x":1.5, "y":1},
+                {"label":"K12 (B1,D2)", "x":2.5, "y":1},
+                {"label":"K13 (B1,D3)", "x":3.5, "y":1},
+                {"label":"K14 (B1,D5)", "x":4.5, "y":1},
+                {"label":"K15 (B1,D4)", "x":5.5, "y":1},
+                {"label":"K16 (B1,D6)", "x":6.5, "y":1},
+                {"label":"K17 (B1,D7)", "x":7.5, "y":1},
+                {"label":"K18 (B1,B4)", "x":8.5, "y":1},
+                {"label":"K19 (B1,B5)", "x":9.5, "y":1},
+                {"label":"K1A (B1,B6)", "x":10.5, "y":1},
+                {"label":"K1B (B1,C6)", "x":11.5, "y":1},
+                {"label":"K1C (B1,C7)", "x":12.5, "y":1},
+                {"label":"K1D (B1,F7)", "x":13.5, "y":1, "w":1.5},
+                {"label":"K1E (B1,F6)", "x":15, "y":1},
+                {"label":"K20 (B2,D0)", "x":0, "y":2, "w":1.75},
+                {"label":"K22 (B2,D2)", "x":1.75, "y":2},
+                {"label":"K23 (B2,D3)", "x":2.75, "y":2},
+                {"label":"K24 (B2,D5)", "x":3.75, "y":2},
+                {"label":"K25 (B2,D4)", "x":4.75, "y":2},
+                {"label":"K26 (B2,D6)", "x":5.75, "y":2},
+                {"label":"K27 (B2,D7)", "x":6.75, "y":2},
+                {"label":"K28 (B2,B4)", "x":7.75, "y":2},
+                {"label":"K29 (B2,B5)", "x":8.75, "y":2},
+                {"label":"K2A (B2,B6)", "x":9.75, "y":2},
+                {"label":"K2B (B2,C6)", "x":10.75, "y":2},
+                {"label":"K2C (B2,C7)", "x":11.75, "y":2},
+                {"label":"K2D (B2,F7)", "x":12.75, "y":2, "w":2.25},
+                {"label":"K2E (B2,F6)", "x":15, "y":2},
+                {"label":"K30 (B2,D1)", "x":0, "y":3, "w":1.25},
+                {"label":"K31 (B3,D1)", "x":1.25, "y":3, "w":1},
+                {"label":"K32 (B3,D2)", "x":2.25, "y":3},
+                {"label":"K33 (B3,D3)", "x":3.25, "y":3},
+                {"label":"K34 (B3,D5)", "x":4.25, "y":3},
+                {"label":"K35 (B3,D4)", "x":5.25, "y":3},
+                {"label":"K36 (B3,D6)", "x":6.25, "y":3},
+                {"label":"K37 (B3,D7)", "x":7.25, "y":3},
+                {"label":"K38 (B3,B4)", "x":8.25, "y":3},
+                {"label":"K39 (B3,B5)", "x":9.25, "y":3},
+                {"label":"K3A (B3,B6)", "x":10.25, "y":3},
+                {"label":"K3B (B3,C6)", "x":11.25, "y":3},
+                {"label":"K3C (B3,C7)", "x":12.25, "y":3, "w":1.75},
+                {"label":"K3D (B3,F7)", "x":14, "y":3},
+                {"label":"K3E (B3,F6)", "x":15, "y":3},
+                {"label":"K40 (E6,D0)", "x":0, "y":4, "w":1.25},
+                {"label":"K41 (E6,D1)", "x":1.25, "y":4, "w":1.25},
+                {"label":"K42 (E6,D2)", "x":2.5, "y":4, "w":1.25},
+                {"label":"K46 (E6,D6)", "x":3.75, "y":4, "w":6.25},
+                {"label":"K49 (E6,B5)", "x":10, "y":4, "w":1.25},
+                {"label":"K4A (E6,B6)", "x":11.25, "y":4, "w":1.25},
+                {"label":"K4C (E6,C7)", "x":13, "y":4},
+                {"label":"K4D (E6,F7)", "x":14, "y":4},
+                {"label":"K4E (E6,F6)", "x":15, "y":4}
+            ]
+        }
+    }
+    ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/"
+}
diff --git a/keyboards/bm65iso/keymaps/deadolus/config.h b/keyboards/bm65iso/keymaps/deadolus/config.h
new file mode 100644
index 0000000000..1dc1414fa5
--- /dev/null
+++ b/keyboards/bm65iso/keymaps/deadolus/config.h
@@ -0,0 +1,27 @@
+/* Copyright 2021 deadolus
+ *
+ * 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/>.
+ */
+
+// place overrides here
+
+#pragma once
+#define LSPO_KEYS KC_LSFT, KC_LSFT, KC_8
+#define RSPC_KEYS KC_RSFT, KC_LSFT, KC_9
+#define LAPO_KEYS KC_LALT, KC_RALT, KC_QUOT
+#define RAPC_KEYS KC_RALT, KC_RALT, KC_NUHS
+
+#define LEADER_TIMEOUT 1000
+#define LEADER_PER_KEY_TIMING 250
+
diff --git a/keyboards/bm65iso/keymaps/deadolus/keymap.c b/keyboards/bm65iso/keymaps/deadolus/keymap.c
new file mode 100644
index 0000000000..f37a1a8c15
--- /dev/null
+++ b/keyboards/bm65iso/keymaps/deadolus/keymap.c
@@ -0,0 +1,288 @@
+/* Copyright 2019 ashlar 2021 peepeetee, deadolus
+ *
+ * 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
+#include "keymap.h"
+
+#ifdef TAP_DANCE_ENABLE
+enum {
+  TD_HOME_END,
+};
+
+// Tap Dance definitions
+qk_tap_dance_action_t tap_dance_actions[] = {
+  //tap once for home, twice for end
+  [TD_HOME_END] = ACTION_TAP_DANCE_DOUBLE(KC_HOME, KC_END)
+};
+#endif
+
+
+// // Defines names for use in layer keycodes and the keymap
+enum  layers {
+  _BL,
+  _RED_,
+  _GREEN_,
+  _BLUE_,
+  _CYAN_,
+  _MAGENTA_,
+  _YELLOW_
+};
+
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  /*
+   * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
+   * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │   │
+   * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
+   * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │   │
+   * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    ├───┤
+   * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │   │
+   * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤
+   * │    │   │   │   │   │   │   │   │   │   │   │   │      │   │   │
+   * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
+   * │    │    │    │                        │   │   │   │   │   │   │
+   * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
+   */
+#ifdef TAP_DANCE_ENABLE
+  /* 0: ISO qwerty */
+  [_BL] = LAYOUT(
+      KC_CAPS,   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_ENT, TD(TD_HOME_END),
+      KC_ESC, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_NUHS,         KC_PGUP,
+      KC_LSPO, KC_NUBS, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSPC, KC_UP,   KC_PGDN,
+      KC_LCTL, KC_LGUI, KC_LAPO,                   KC_SPC,                             KC_RAPC, MO(_RED_),         KC_LEFT, KC_DOWN, KC_RGHT
+
+      ),
+#else
+  [_BL] = LAYOUT(
+      KC_CAPS,   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_ENT, KC_HOME,
+      KC_ESC, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_NUHS,         KC_PGUP,
+      KC_LSPO, KC_NUBS, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSPC, KC_UP,   KC_PGDN,
+      KC_LCTL, KC_LGUI, KC_LAPO,                   KC_SPC,                             KC_RAPC, MO(_RED_),         KC_LEFT, KC_DOWN, KC_RGHT
+
+      ),
+#endif
+
+  [_RED_] = LAYOUT(
+      KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, LGUI(KC_END),
+      _______, _______, _______, _______, _______, _______, _______,  _______, _______, _______,_______, _______, _______, TO(0),    LGUI(KC_PAUSE),
+      _______, TO(_GREEN_), TO(_BLUE_), TO(_CYAN_), TO(_MAGENTA_), TO(_YELLOW_), _______, _______, _______,   _______, _______, _______, _______,        _______,
+      _______,_______ ,_______ ,_______ , _______, _______, _______, _______, _______, _______, _______,  _______,_______ , KC_VOLU, _______,
+      RESET, _______, _______,                   KC_LEAD,                            _______, _______,                  KC_MPLY, KC_VOLD, KC_MUTE
+      ),
+
+
+  [_GREEN_] = LAYOUT(
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+      _______, _______, _______,_______ , _______, _______, _______,  KC_PGDN, KC_PGUP, KC_PSCR,_______, _______, _______, TO(0),   _______,
+      _______, KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_UP,   KC_MS_RIGHT, KC_MS_BTN1, KC_MS_BTN2, _______,    _______,
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_END,  _______, _______, _______, _______,
+      _______, _______, _______,                   _______,                            _______, _______,         _______, _______, _______
+      ),
+
+
+  [_BLUE_] = LAYOUT(
+      _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, _______, _______, _______, _______, _______, KC_NUMLOCK, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______,
+      _______, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, _______, _______,KC_P7, KC_P8, KC_P9, KC_PMNS, TO(0),    _______,
+
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS,           _______,
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______,
+      _______, _______, _______,                   _______,                            KC_0, KC_PCMM,          _______, _______, _______
+      ),
+  [_CYAN_] = LAYOUT(
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,TO(0),    _______,
+
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,           _______,
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+      _______, _______, _______,                   _______,                            _______, _______,          _______, _______, _______
+      ),
+  [_MAGENTA_] = LAYOUT(
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,TO(0),    _______,
+
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,           _______,
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+      _______, _______, _______,                   _______,                            _______, _______,          _______, _______, _______
+      ),
+  [_YELLOW_] = LAYOUT(
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,TO(0),    _______,
+
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,           _______,
+      _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______,
+      _______, _______, _______,                   _______,                            _______, _______,          _______, _______, _______
+      ),
+
+  /*template
+    [_UL] = LAYOUT(
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,TO(0),    _______,
+
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,           _______,
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+    _______, _______, _______,                   _______,                            _______, _______,          _______, _______, _______
+    )
+    */
+};
+
+#ifdef _______
+#undef _______
+#define _______ {0, 0, 0}
+
+const uint8_t PROGMEM ledmap[][3] = {
+  [_BL] = _______,
+  [_RED_] = RED,
+  [_GREEN_] = GREEN,
+  [_BLUE_] = BLUE,
+  [_CYAN_] = CYAN,
+  [_MAGENTA_] = MAGENTA,
+  [_YELLOW_] = YELLOW
+};
+
+#undef _______
+#define _______ KC_TRNS
+#endif
+
+
+
+void keyboard_post_init_user(void) {
+  // Call the post init code.
+#ifdef CONSOLE_ENABLE
+  debug_enable=true;
+  debug_matrix=true;
+#endif
+  rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
+}
+
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+#ifdef CONSOLE_ENABLE
+  //useful for getting matrix right
+  uprintf("KL: kc: 0x%04X, col: %u, row: %u, pressed: %b, time: %u, interrupt: %b, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count);
+#endif
+
+  switch (keycode) {
+    case RGB_TOG:
+      if (record->event.pressed) {
+        switch (rgb_matrix_get_flags()) {
+          case LED_FLAG_ALL: {
+                               rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR);
+                               rgb_matrix_set_color_all(0, 0, 0);
+                             }
+                             break;
+          case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): {
+                                                                               rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
+                                                                               rgb_matrix_set_color_all(0, 0, 0);
+                                                                             }
+                                                                             break;
+          case LED_FLAG_UNDERGLOW: {
+                                     rgb_matrix_set_flags(LED_FLAG_NONE);
+                                     rgb_matrix_disable_noeeprom();
+                                   }
+                                   break;
+          default: {
+                     rgb_matrix_set_flags(LED_FLAG_ALL);
+                     rgb_matrix_enable_noeeprom();
+                   }
+                   break;
+        }
+      }
+      return false;
+    default:
+      return true; // Process all other keycodes normally
+  }
+}
+
+void setCapsLock(void) {
+  led_t host_leds = host_keyboard_led_state();
+  if (host_leds.caps_lock) {
+    rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF);
+
+  } else {
+    //if capslock is not pressed don't clear it, it might be used for displaying led pattern
+    if((rgb_matrix_get_flags() != LED_FLAG_ALL)) {
+      rgb_matrix_set_color(30, 0x0, 0x0, 0x0);
+    }
+  }
+}
+
+void set_layer_color(int layer) {
+  int ledkey=0;
+  for(int i=0; i<MATRIX_COLS*MATRIX_ROWS;i++) {
+    uint8_t row = i/MATRIX_COLS;
+    uint8_t col=(i-(i/MATRIX_COLS)*MATRIX_COLS);
+    uint16_t key=pgm_read_word(&keymaps[layer][row][col]);
+    //continue if this is not a valid key
+    if(key==KC_NO) { continue; }
+    //clear key if it is only a transition
+    if ((key == KC_TRNS)) {
+      if(rgb_matrix_get_flags() != LED_FLAG_ALL){
+        rgb_matrix_set_color(ledkey, 0, 0, 0);
+      }
+    }else {
+      //this key does something - light it up
+      HSV hsv = {
+        .h = pgm_read_byte(&ledmap[layer][0]),
+        .s = pgm_read_byte(&ledmap[layer][1]),
+        .v = pgm_read_byte(&ledmap[layer][2]),
+      };
+
+      RGB rgb = hsv_to_rgb(hsv);
+      float f = (float)rgb_matrix_config.hsv.v / UINT8_MAX;
+      if( (layer != 0) || (rgb_matrix_get_flags() != LED_FLAG_ALL))
+        rgb_matrix_set_color(ledkey, f * rgb.r, f * rgb.g, f * rgb.b);
+    }
+    //if we are on layer 0 set capslock to correct status
+    if(layer==0 && i==30) { setCapsLock(); }
+    ledkey++;
+  }
+  return;
+}
+
+void rgb_matrix_indicators_user(void) {
+  set_layer_color(get_highest_layer(layer_state));
+
+}
+
+#ifdef LEADER_ENABLE
+LEADER_EXTERNS();
+
+//SEND_STRING seems to be local dependent.
+//For swiss-german layout I have to send "ctrl+." to get ":"
+void matrix_scan_user(void) {
+  LEADER_DICTIONARY() {
+    leading = false;
+    leader_end();
+
+    SEQ_ONE_KEY(KC_F) {
+      // Anything you can do in a macro.
+      SEND_STRING("QMK is awesome.");
+    }
+    SEQ_TWO_KEYS(KC_D, KC_D) {
+      SEND_STRING(SS_LCTL("a") SS_LCTL("c"));
+    }
+    SEQ_THREE_KEYS(KC_D, KC_D, KC_S) {
+      SEND_STRING("https");
+      register_code(KC_LSFT);
+      SEND_STRING(".77");
+      unregister_code(KC_LSFT);
+      SEND_STRING("start.duckduckgo.com\n");
+    }
+  }
+}
+#endif
diff --git a/keyboards/bm65iso/keymaps/deadolus/keymap.h b/keyboards/bm65iso/keymaps/deadolus/keymap.h
new file mode 100644
index 0000000000..1459e2c5bb
--- /dev/null
+++ b/keyboards/bm65iso/keymaps/deadolus/keymap.h
@@ -0,0 +1,63 @@
+/* Copyright 2019 ash0x0 2021 peepeetee, deadolus
+ *
+ * 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
+
+#include "print.h"
+#include <string.h>
+// HID has not yet been implemented for this keyboard
+// #include "raw_hid.h"
+
+#define MILLISECONDS_IN_SECOND 1000
+
+// These are just to make it neater to use builtin HSV values in the keymap
+#define RED {HSV_RED}
+#define CORAL {HSV_CORAL}
+#define ORANGE {HSV_ORANGE}
+#define GOLDEN {HSV_GOLDENROD}
+#define GOLD {HSV_GOLD}
+#define YELLOW {HSV_YELLOW}
+#define CHART {HSV_CHARTREUSE}
+#define GREEN {HSV_GREEN}
+#define SPRING {HSV_SPRINGGREEN}
+#define TURQ {HSV_TURQUOISE}
+#define TEAL {HSV_TEAL}
+#define CYAN {HSV_CYAN}
+#define AZURE {HSV_AZURE}
+#define BLUE {HSV_BLUE}
+#define PURPLE {HSV_PURPLE}
+#define MAGENTA {HSV_MAGENTA}
+#define PINK {HSV_PINK}
+
+//========================================================== CONFIGURABLE DEFAULTS ==========================================================
+#define RGB_DEFAULT_TIME_OUT 30
+#define RGB_FAST_MODE_TIME_OUT 3
+#define RGB_TIME_OUT_MAX 600
+#define RGB_TIME_OUT_MIN 10
+#define RGB_TIME_OUT_STEP 10
+
+extern bool g_suspend_state;
+bool disable_layer_color;
+
+uint8_t dfa_state;  //state for my language switching DFA
+
+
+bool rgb_enabled_flag;                  // Current LED state flag. If false then LED is off.
+bool rgb_time_out_enable;               // Idle LED toggle enable. If false then LED will not turn off after idle timeout.
+bool rgb_time_out_fast_mode_enabled;    // Enable flag for RGB timeout fast mode
+bool rgb_time_out_user_value;           // This holds the toggle value set by user with ROUT_TG. It's necessary as RGB_TOG changes timeout enable.
+uint16_t rgb_time_out_seconds;          // Idle LED timeout value, in seconds not milliseconds
+uint16_t rgb_time_out_saved_seconds;    // The saved user config for RGB timeout period
+led_flags_t rgb_time_out_saved_flag;    // Store LED flag before timeout so it can be restored when LED is turned on again.
diff --git a/keyboards/bm65iso/keymaps/deadolus/readme.md b/keyboards/bm65iso/keymaps/deadolus/readme.md
new file mode 100644
index 0000000000..6080e5b9ab
--- /dev/null
+++ b/keyboards/bm65iso/keymaps/deadolus/readme.md
@@ -0,0 +1,20 @@
+# Deadolus' keymap for the bm65iso
+
+* Six layers (even though three are mostly empty)
+* Different color for each layer (r,g,b,c,m,y)
+* **Keys with something else defined than KC_TRNS are lit up in the layer color, so you easily can see which keys have some function defined**
+* Caps-Lock lights up when active and on layer 0
+* Some leader shortcuts defined - nothing useful yet
+* Some space cadet keys defined for easier insertion of () and {}
+* Bootmagic lite enabled via default settings so you can plug in the keyboard while holding esc to land in bootloader mode
+* Manages all this and still fits in to the program memory
+
+Make example for this keyboard (after setting up your build environment):
+
+    make bm65iso:deadolus
+
+Flashing example for this keyboard:
+
+    make bm65iso:deadolus:flash
+
+Keyboard Maintainer: **[deadolus](https://github.com/deadolus)**
diff --git a/keyboards/bm65iso/keymaps/deadolus/rules.mk b/keyboards/bm65iso/keymaps/deadolus/rules.mk
new file mode 100644
index 0000000000..c8354ea256
--- /dev/null
+++ b/keyboards/bm65iso/keymaps/deadolus/rules.mk
@@ -0,0 +1,4 @@
+DYNAMIC_MACRO_ENABLE = yes
+TAP_DANCE_ENABLE = yes
+LEADER_ENABLE = yes
+#CONSOLE_ENABLE=yes
diff --git a/keyboards/bm65iso/keymaps/default/keymap.c b/keyboards/bm65iso/keymaps/default/keymap.c
new file mode 100644
index 0000000000..9885893763
--- /dev/null
+++ b/keyboards/bm65iso/keymaps/default/keymap.c
@@ -0,0 +1,35 @@
+/* Copyright 2021 deadolus
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  [0] = LAYOUT(
+    KC_CAPS,   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_ENT, KC_HOME,
+    KC_ESC, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_NUHS,         KC_PGUP,
+    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_PGDN,
+    KC_LCTL, KC_LGUI, KC_LALT,                   KC_SPC,                             KC_RALT, MO(1),         KC_LEFT, KC_DOWN, KC_RGHT
+
+  ),
+    [1] = LAYOUT(
+        RESET,   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,
+        _______,     RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______,      _______,
+        _______,       _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,             _______,
+        _______,   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,        _______, _______,
+        _______,   _______,   _______,                      _______,                              _______,   _______,        _______, _______, _______
+    ),
+
+};
diff --git a/keyboards/bm65iso/keymaps/via/keymap.c b/keyboards/bm65iso/keymaps/via/keymap.c
new file mode 100644
index 0000000000..76c8aaa3ea
--- /dev/null
+++ b/keyboards/bm65iso/keymaps/via/keymap.c
@@ -0,0 +1,48 @@
+/* Copyright 2021 deadolus
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    [0] = LAYOUT(
+        KC_GESC, KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,        KC_BSPC,     KC_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_ENT, KC_HOME,
+        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_BSLS,           KC_PGUP,
+        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_UP,   KC_PGDN,
+        KC_LCTL, KC_LGUI, KC_LALT,                      KC_SPC,                          KC_RALT, MO(1),                     KC_LEFT, KC_DOWN, KC_RGHT
+    ),
+    [1] = LAYOUT(
+        RESET,   KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,     _______,       _______,
+        _______,          RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______,
+        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______,
+        _______, _______, _______,                      _______,                         _______, _______,                   _______, _______, _______
+    ),
+    [2] = LAYOUT(
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______,
+        _______, _______, _______,                      _______,                         _______, _______,                   _______, _______, _______
+    ),
+    [3] = LAYOUT(
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______,
+        _______, _______, _______,                      _______,                         _______, _______,                   _______, _______, _______
+    ),
+
+};
diff --git a/keyboards/bm65iso/keymaps/via/readme.md b/keyboards/bm65iso/keymaps/via/readme.md
new file mode 100644
index 0000000000..87c7542756
--- /dev/null
+++ b/keyboards/bm65iso/keymaps/via/readme.md
@@ -0,0 +1 @@
+# The VIA default keymap for bm65iso
diff --git a/keyboards/bm65iso/keymaps/via/rules.mk b/keyboards/bm65iso/keymaps/via/rules.mk
new file mode 100644
index 0000000000..036bd6d1c3
--- /dev/null
+++ b/keyboards/bm65iso/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/bm65iso/readme.md b/keyboards/bm65iso/readme.md
new file mode 100644
index 0000000000..5b6083ba47
--- /dev/null
+++ b/keyboards/bm65iso/readme.md
@@ -0,0 +1,24 @@
+# bm65iso
+
+![bm65iso](https://ae01.alicdn.com/kf/He2fd118856c7490292bc3c299049fdbcp.jpg)
+
+A 65% hotswap in switch RGB keyboard from KPRepublic.
+
+* Keyboard Maintainer: [deadolus](https://github.com/deadolus)
+* Hardware Supported: BM65 ISO
+* Hardware Availability: [KP Republic](https://kprepublic.com/products/bm65rgb-bm65-iso-rgb-65-hot-swappable-custom-mechanical-keyboard-pcb-programmed-qmk-via-firmware-rgb-switch-underglow-type-c)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make bm65iso:default
+
+Flashing example for this keyboard:
+
+    make bm65iso:default:flash
+
+To reset the board into bootloader mode, do one of the following:
+
+* Short the two-pad footprint to the left of the spacebar switch while the board is plugged in
+* Hold the Esc key while connecting the USB cable (also erases persistent settings)
+
+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/bm65iso/rules.mk b/keyboards/bm65iso/rules.mk
new file mode 100644
index 0000000000..d837d1ec6c
--- /dev/null
+++ b/keyboards/bm65iso/rules.mk
@@ -0,0 +1,25 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+#   change yes to no to disable
+#
+BOOTMAGIC_ENABLE = lite       # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes       # Mouse keys
+EXTRAKEY_ENABLE = yes       # Audio control and System control
+CONSOLE_ENABLE = no         # Console for debug
+COMMAND_ENABLE = no         # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = yes            # USB Nkey Rollover
+BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
+BLUETOOTH_ENABLE = no       # Enable Bluetooth
+AUDIO_ENABLE = no           # Audio output
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
+LTO_ENABLE = yes