diff --git a/keyboards/kprepublic/bm80v2/bm80v2.c b/keyboards/kprepublic/bm80v2/bm80v2.c
new file mode 100644
index 0000000000..4b8e5af13f
--- /dev/null
+++ b/keyboards/kprepublic/bm80v2/bm80v2.c
@@ -0,0 +1,149 @@
+/* Copyright 2022 bdtc123 *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#include "bm80v2.h"
+
+#ifdef RGB_MATRIX_ENABLE
+
+const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
+    {0, CS6_SW1, CS5_SW1, CS4_SW1},
+    {0, CS6_SW3, CS5_SW3, CS4_SW3}, 
+    {0, CS6_SW4, CS5_SW4, CS4_SW4},    
+    {0, CS6_SW5, CS5_SW5, CS4_SW5},
+    {0, CS6_SW6, CS5_SW6, CS4_SW6},
+    {0, CS6_SW7, CS5_SW7, CS4_SW7}, 
+    {0, CS6_SW8, CS5_SW8, CS4_SW8},
+    {0, CS6_SW9, CS5_SW9, CS4_SW9},
+    {0, CS21_SW1, CS20_SW1, CS19_SW1},
+    {0, CS21_SW2, CS20_SW2, CS19_SW2},
+    {0, CS21_SW3, CS20_SW3, CS19_SW3},
+    {0, CS21_SW4, CS20_SW4, CS19_SW4},
+    {0, CS21_SW5, CS20_SW5, CS19_SW5},
+    {0, CS21_SW6, CS20_SW6, CS19_SW6},
+    {0, CS21_SW7, CS20_SW7, CS19_SW7},
+    {0, CS21_SW8, CS20_SW8, CS19_SW8},
+
+    
+    {0, CS9_SW1, CS8_SW1, CS7_SW1},     
+    {0, CS9_SW2, CS8_SW2, CS7_SW2},
+    {0, CS9_SW3, CS8_SW3, CS7_SW3},
+    {0, CS9_SW4, CS8_SW4, CS7_SW4},
+    {0, CS9_SW5, CS8_SW5, CS7_SW5},
+    {0, CS9_SW6, CS8_SW6, CS7_SW6},
+    {0, CS9_SW7, CS8_SW7, CS7_SW7},
+    {0, CS9_SW8, CS8_SW8, CS7_SW8},
+    {0, CS9_SW9, CS8_SW9, CS7_SW9},
+    {0,CS24_SW1, CS23_SW1, CS22_SW1}, 
+    {0,CS24_SW2, CS23_SW2, CS22_SW2},
+    {0,CS24_SW3, CS23_SW3, CS22_SW3},
+    {0,CS24_SW4, CS23_SW4, CS22_SW4},
+    {0,CS24_SW5, CS23_SW5, CS22_SW5},
+    {0,CS24_SW6, CS23_SW6, CS22_SW6},
+    {0,CS24_SW7, CS23_SW7, CS22_SW7},
+    {0,CS24_SW8, CS23_SW8, CS22_SW8},
+    
+    {0, CS12_SW1, CS11_SW1, CS10_SW1},     
+    {0, CS12_SW2, CS11_SW2, CS10_SW2},  
+    {0, CS12_SW3, CS11_SW3, CS10_SW3},      
+    {0, CS12_SW4, CS11_SW4, CS10_SW4},      
+    {0, CS12_SW5, CS11_SW5, CS10_SW5},      
+    {0, CS12_SW6, CS11_SW6, CS10_SW6},      
+    {0, CS12_SW7, CS11_SW7, CS10_SW7},  
+    {0, CS12_SW8, CS11_SW8, CS10_SW8},
+    {0, CS12_SW9, CS11_SW9, CS10_SW9},
+    {0, CS27_SW1, CS26_SW1, CS25_SW1},      
+    {0, CS27_SW2, CS26_SW2, CS25_SW2},     
+    {0, CS27_SW3, CS26_SW3, CS25_SW3},     
+    {0, CS27_SW4, CS26_SW4, CS25_SW4},
+    {0, CS27_SW5, CS26_SW5, CS25_SW5},
+    {0, CS27_SW6, CS26_SW6, CS25_SW6}, 
+    {0, CS27_SW7, CS26_SW7, CS25_SW7},
+    {0, CS27_SW8, CS26_SW8, CS25_SW8},
+    
+    {0, CS15_SW1, CS14_SW1, CS13_SW1},
+    {0, CS15_SW2, CS14_SW2, CS13_SW2},
+    {0, CS15_SW3, CS14_SW3, CS13_SW3}, 
+    {0, CS15_SW4, CS14_SW4, CS13_SW4},     
+    {0, CS15_SW5, CS14_SW5, CS13_SW5},     
+    {0, CS15_SW6, CS14_SW6, CS13_SW6},     
+    {0, CS15_SW7, CS14_SW7, CS13_SW7},     
+    {0, CS15_SW8, CS14_SW8, CS13_SW8},
+    {0, CS15_SW9, CS14_SW9, CS13_SW9},
+    {0, CS30_SW1, CS29_SW1, CS28_SW1},
+    {0, CS30_SW2, CS29_SW2, CS28_SW2},
+    {0, CS30_SW3, CS29_SW3, CS28_SW3},
+    {0, CS30_SW4, CS29_SW4, CS28_SW4},
+    
+    {0, CS18_SW1, CS17_SW1, CS16_SW1},
+    {0, CS18_SW3, CS17_SW3, CS16_SW3}, 
+    {0, CS18_SW4, CS17_SW4, CS16_SW4},     
+    {0, CS18_SW5, CS17_SW5, CS16_SW5},     
+    {0, CS18_SW6, CS17_SW6, CS16_SW6},     
+    {0, CS18_SW7, CS17_SW7, CS16_SW7},     
+    {0, CS18_SW8, CS17_SW8, CS16_SW8},
+    {0, CS18_SW9, CS17_SW9, CS16_SW9},
+    {0, CS33_SW1, CS32_SW1, CS31_SW1},
+    {0, CS33_SW2, CS32_SW2, CS31_SW2},
+    {0, CS33_SW3, CS32_SW3, CS31_SW3},
+    {0, CS33_SW4, CS32_SW4, CS31_SW4},
+    {0, CS33_SW7, CS32_SW7, CS31_SW7},
+
+    {0, CS3_SW1, CS2_SW1, CS1_SW1},
+    {0, CS3_SW2, CS2_SW2, CS1_SW2},
+    {0, CS3_SW3, CS2_SW3, CS1_SW3}, 
+    {0, CS3_SW6, CS2_SW6, CS1_SW6}, 
+    {0, CS36_SW2, CS35_SW2, CS34_SW2},
+    {0, CS36_SW3, CS35_SW3, CS34_SW3},
+    {0, CS36_SW4, CS35_SW4, CS34_SW4},
+    {0, CS36_SW5, CS35_SW5, CS34_SW5},
+    {0, CS36_SW6, CS35_SW6, CS34_SW6},
+    {0, CS36_SW7, CS35_SW7, CS34_SW7},
+    {0, CS36_SW8, CS35_SW8, CS34_SW8}   
+                                                                                                     
+};
+led_config_t g_led_config = { {
+    {  0,  NO_LED,      1,     2,      3,      4,      5,      6,      7,      8,      9,     10,     11,     12,     13,     14,     15 },
+    {  16,     17,     18,     19,    20,     21,     22,     23,     24,     25,     26,     27,     28,     29,     30,     31,     32 },
+    {  33,     34,     35,     36,    37,     38,     39,     40,     41,     42,     43,     44,     45,     46,     47,     48,     49 },
+    {  50,     51,     52,     53,    54,     55,     56,     57,     58,     59,     60,     61,     62, NO_LED, NO_LED, NO_LED, NO_LED },
+    {  63, NO_LED,     64,     65,    66,     67,     68,     69,     70,     71,     72,     73,     74, NO_LED, NO_LED,     75, NO_LED },
+    {  76,     77,     78, NO_LED,NO_LED,     79, NO_LED, NO_LED, NO_LED, NO_LED,     80,     81,     82,     83,     84,     85,     86 }
+},
+{
+    {   7,   5 }, {  31,   5 }, {  43,   5 }, {  55,   5 }, {  67,   5 }, {  85,   5 }, {  97,   5 }, { 109,   5 }, { 121,   5 }, { 139,   5 }, { 151,   5 }, { 163,   5 }, { 175,   5 }, { 193,   5 }, { 205,   5 }, { 217,   5 },
+    {   7,  20 }, {  19,  20 }, {  31,  20 }, {  43,  20 }, {  55,  20 }, {  67,  20 }, {  79,  20 }, {  91,  20 }, { 103,  20 }, { 115,  20 }, { 127,  20 }, { 139,  20 }, { 151,  20 }, { 169,  20 }, { 193,  20 }, { 205,  20 }, { 217,  20 },
+    {  10,  30 }, {  25,  30 }, {  37,  30 }, {  49,  30 }, {  61,  30 }, {  73,  30 }, {  85,  30 }, {  97,  30 }, { 109,  30 }, { 121,  30 }, { 133,  30 }, { 145,  30 }, { 157,  30 }, { 172,  30 }, { 193,  30 }, { 205,  30 }, { 217,  30 },
+    {  11,  39 }, {  28,  39 }, {  40,  39 }, {  52,  39 }, {  64,  39 }, {  76,  39 }, {  88,  39 }, { 100,  39 }, { 112,  39 }, { 124,  39 }, { 136,  39 }, { 148,  39 }, { 168,  39 },
+    {  17,  49 },  {  34,  49 }, {  46,  49 }, {  58,  49 }, {  70,  49 }, {  82,  49 }, {  94,  49 }, { 106,  49 }, { 118,  49 }, { 130,  49 }, { 142,  49 }, { 165,  49 }, { 205,  49 },
+    {  8,  59 }, {  23,  59 }, {  38,  59 }, {  83,  59 }, { 129,  59 }, { 144,  59 }, { 159,  59 }, { 174,  59 }, { 193,  59 }, { 205,  59 }, { 217,  59 }
+},
+{   1,    4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1,
+    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
+    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
+    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+    1,    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,       1,
+    1, 1, 1,       4,     1, 1, 1, 1,         1, 1, 1 
+} };
+
+
+__attribute__ ((weak))
+void rgb_matrix_indicators_user(void)
+{
+    if (host_keyboard_led_state().caps_lock)
+    {
+        rgb_matrix_set_color(50, 0xFF, 0xFF, 0xFF);
+    }
+}
+#endif
+
diff --git a/keyboards/kprepublic/bm80v2/bm80v2.h b/keyboards/kprepublic/bm80v2/bm80v2.h
new file mode 100644
index 0000000000..ee1418f9cf
--- /dev/null
+++ b/keyboards/kprepublic/bm80v2/bm80v2.h
@@ -0,0 +1,34 @@
+/* Copyright 2022 bdtc123 *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+ #pragma once
+
+#include "quantum.h"
+
+#define LAYOUT_tkl_ansi( \
+    K0_0,       K0_2, K0_3, K0_4, K0_5, K0_6,K0_7, K0_8, K0_9,   K0_A, K0_B, K0_C, K0_D,      K0_E, K0_F, K0_10, \
+    K1_0, K1_1, K1_2, K1_3, K1_4, K1_5, K1_6, K1_7, K1_8, K1_9, K1_A, K1_B, K1_C,    K1_D,    K1_E, K1_F, K1_10, \
+     K2_0,   K2_1, K2_2, K2_3, K2_4, K2_5, K2_6, K2_7, K2_8, K2_9, K2_A, K2_B, K2_C,   K2_D,  K2_E, K2_F, K2_10, \
+     K3_0,    K3_1, K3_2, K3_3, K3_4, K3_5, K3_6, K3_7, K3_8, K3_9, K3_A, K3_B,    K3_C,                         \
+        K4_0,   K4_2, K4_3, K4_4, K4_5,  K4_6, K4_7, K4_8, K4_9, K4_A, K4_B, K4_C,                K4_F,        \
+    K5_0,  K5_1,  K5_2,             K5_5,                           K5_A, K5_B, K5_C, K5_D,   K5_E, K5_F, K5_10  \
+) { \
+	{ K0_0,  KC_NO, K0_2,  K0_3,  K0_4,  K0_5,  K0_6, K0_7,  K0_8,  K0_9,  K0_A,  K0_B,  K0_C,  K0_D,  K0_E,  K0_F,  K0_10 }, \
+	{ K1_0,  K1_1,  K1_2,  K1_3,  K1_4,  K1_5,  K1_6,  K1_7,  K1_8,  K1_9,  K1_A,  K1_B,  K1_C,  K1_D,  K1_E,  K1_F,  K1_10 }, \
+	{ K2_0,  K2_1,  K2_2,  K2_3,  K2_4,  K2_5,  K2_6,  K2_7,  K2_8,  K2_9,  K2_A,  K2_B,  K2_C,  K2_D,  K2_E,  K2_F,  K2_10 }, \
+	{ K3_0,  K3_1,  K3_2,  K3_3,  K3_4,  K3_5,  K3_6,  K3_7,  K3_8,  K3_9,  K3_A,  K3_B,  K3_C,  KC_NO, KC_NO, KC_NO, KC_NO }, \
+	{ K4_0,  KC_NO,  K4_2,  K4_3,  K4_4,  K4_5,  K4_6,  K4_7,  K4_8,  K4_9,  K4_A,  K4_B,  K4_C,  KC_NO, KC_NO, K4_F,  KC_NO }, \
+	{ K5_0,  K5_1,  K5_2,  KC_NO, KC_NO, K5_5,  KC_NO, KC_NO, KC_NO, KC_NO, K5_A,  K5_B,  K5_C,  K5_D,  K5_E,  K5_F,  K5_10 }  \
+}
+
diff --git a/keyboards/kprepublic/bm80v2/config.h b/keyboards/kprepublic/bm80v2/config.h
new file mode 100644
index 0000000000..a326fff31f
--- /dev/null
+++ b/keyboards/kprepublic/bm80v2/config.h
@@ -0,0 +1,83 @@
+/* Copyright 2022 bdtc123 *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID       0x4B50
+#define PRODUCT_ID      0x1141
+#define DEVICE_VER      0x0002
+#define MANUFACTURER    KP republic
+#define PRODUCT         bm80v2
+
+/* key matrix size */
+#define MATRIX_ROWS 6
+#define MATRIX_COLS 17
+#define MATRIX_ROW_PINS { C7, C6, B6, F5, F7, F6 }
+#define MATRIX_COL_PINS { E6, F0, F1, F4, D7, D6, B7, B1, B0, B2, B3, D3, D5, D4, D2, B4, B5 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION ROW2COL
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
+#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL
+#define RGB_MATRIX_KEYPRESSES
+// RGB Matrix Animation modes. Explicitly enabled
+// For full list of effects, see:
+// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
+#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
+#define ENABLE_RGB_MATRIX_BREATHING
+#define ENABLE_RGB_MATRIX_BAND_VAL
+#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
+#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
+#define ENABLE_RGB_MATRIX_CYCLE_ALL
+#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
+#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
+#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
+#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
+#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
+#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
+#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
+#define ENABLE_RGB_MATRIX_DUAL_BEACON
+#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
+#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
+#define ENABLE_RGB_MATRIX_HUE_WAVE
+#define ENABLE_RGB_MATRIX_PIXEL_RAIN
+// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
+#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
+#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
+// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
+#define ENABLE_RGB_MATRIX_SPLASH
+#define ENABLE_RGB_MATRIX_MULTISPLASH
+#define ENABLE_RGB_MATRIX_SOLID_SPLASH
+#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
+#define DRIVER_ADDR_1 0b0110000
+#define DRIVER_COUNT 1
+#define DRIVER_1_LED_TOTAL 87
+#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL
+
+#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180
diff --git a/keyboards/kprepublic/bm80v2/info.json b/keyboards/kprepublic/bm80v2/info.json
new file mode 100644
index 0000000000..e891c54e02
--- /dev/null
+++ b/keyboards/kprepublic/bm80v2/info.json
@@ -0,0 +1,103 @@
+{
+    "keyboard_name": "bm80v2",
+    "url": "",
+    "maintainer": "qmk",
+    "layouts": {
+        "LAYOUT_tkl_ansi": {
+            "layout": [
+                { "x":0, "y":0},
+                { "x":2, "y":0},
+                { "x":3, "y":0},
+                { "x":4, "y":0},
+                { "x":5, "y":0},
+                { "x":6.5, "y":0},
+                { "x":7.5, "y":0},
+                { "x":8.5, "y":0},
+                { "x":9.5, "y":0},
+                { "x":11, "y":0},
+                { "x":12, "y":0},
+                { "x":13, "y":0},
+                { "x":14, "y":0},
+                { "x":15.25, "y":0},
+                { "x":16.25, "y":0},
+                { "x":17.25, "y":0},
+
+                { "x":0, "y":1.5},
+                { "x":1, "y":1.5},
+                { "x":2, "y":1.5},
+                { "x":3, "y":1.5},
+                { "x":4, "y":1.5},
+                { "x":5, "y":1.5},
+                { "x":6, "y":1.5},
+                { "x":7, "y":1.5},
+                { "x":8, "y":1.5},
+                { "x":9, "y":1.5},
+                { "x":10, "y":1.5},
+                { "x":11, "y":1.5},
+                { "x":12, "y":1.5},
+                { "x":13, "y":1.5, "w":2},
+                { "x":15.25, "y":1.5},
+                { "x":16.25, "y":1.5},
+                { "x":17.25, "y":1.5},
+
+                { "x":0, "y":2.5, "w":1.5},
+                { "x":1.5, "y":2.5},
+                { "x":2.5, "y":2.5},
+                { "x":3.5, "y":2.5},
+                { "x":4.5, "y":2.5},
+                { "x":5.5, "y":2.5},
+                { "x":6.5, "y":2.5},
+                { "x":7.5, "y":2.5},
+                { "x":8.5, "y":2.5},
+                { "x":9.5, "y":2.5},
+                { "x":10.5, "y":2.5},
+                { "x":11.5, "y":2.5},
+                { "x":12.5, "y":2.5},
+                { "x":13.75,"y":2.5},
+                { "x":15.25, "y":2.5},
+                { "x":16.25, "y":2.5},
+                { "x":17.25, "y":2.5},
+
+                { "x":0, "y":3.5, "w":1.75},
+                { "x":1.75, "y":3.5},
+                { "x":2.75, "y":3.5},
+                { "x":3.75, "y":3.5},
+                { "x":4.75, "y":3.5},
+                { "x":5.75, "y":3.5},
+                { "x":6.75, "y":3.5},
+                { "x":7.75, "y":3.5},
+                { "x":8.75, "y":3.5},
+                { "x":9.75, "y":3.5},
+                { "x":10.75, "y":3.5},
+                { "x":11.75, "y":3.5},
+                { "x":12.75, "y":3.5, "w":2.25},
+
+                { "x":0, "y":4.5, "w":2.25},
+                { "x":2.25, "y":4.5},
+                { "x":3.25, "y":4.5},
+                { "x":4.25, "y":4.5},
+                { "x":5.25, "y":4.5},
+                { "x":6.25, "y":4.5},
+                { "x":7.25, "y":4.5},
+                { "x":8.25, "y":4.5},
+                { "x":9.25, "y":4.5},
+                { "x":10.25, "y":4.5},
+                { "x":11.25, "y":4.5},
+                { "x":12.25, "y":4.5, "w":2.75},
+                { "x":16.25, "y":4.5},
+
+                { "x":0, "y":5.5, "w":1.25},
+                { "x":1.25, "y":5.5, "w":1.25},
+                { "x":2.5, "y":5.5, "w":1.25},
+                { "x":3.75, "y":5.5, "w":6.25},
+                { "x":10, "y":5.5, "w":1.25},
+                { "x":11.25, "y":5.5, "w":1.25},
+                { "x":12.5, "y":5.5, "w":1.25},
+                { "x":13.75, "y":5.5, "w":1.25},
+                { "x":15.25, "y":5.5},
+                { "x":16.25, "y":5.5},
+                { "x":17.25, "y":5.5}
+            ]
+        }
+    }
+}
diff --git a/keyboards/kprepublic/bm80v2/keymaps/default/keymap.c b/keyboards/kprepublic/bm80v2/keymaps/default/keymap.c
new file mode 100644
index 0000000000..7beceb5630
--- /dev/null
+++ b/keyboards/kprepublic/bm80v2/keymaps/default/keymap.c
@@ -0,0 +1,43 @@
+// Copyright 2021 Yizhen Liu (@edwardslau)
+// SPDX-License-Identifier: GPL-2.0
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+    [0] = LAYOUT_tkl_ansi(
+        KC_ESC,           KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,     KC_PSCR, KC_SLCK, KC_PAUS,
+        KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC,    KC_INS,  KC_HOME, KC_PGUP,
+        KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSLS,     KC_DEL,  KC_END,  KC_PGDN,
+        KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,  KC_ENT,        
+        KC_LSFT,          KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,          KC_RSFT,             KC_UP,
+        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_ansi(
+        RESET,            _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,
+        _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______,    _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______,          _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______,                      _______,
+        _______, _______, _______,                   _______,                                     _______, _______, _______, _______,    _______, _______, _______
+    ),
+
+    [2] = LAYOUT_tkl_ansi(
+        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,                      _______,
+        _______, _______, _______,                   _______,                                     _______, _______, _______, _______,    _______, _______, _______
+    ),
+
+    [3] = LAYOUT_tkl_ansi(
+        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,                      _______,
+        _______, _______, _______,                   _______,                                     _______, _______, _______, _______,    _______, _______, _______
+    )
+
+};
diff --git a/keyboards/kprepublic/bm80v2/keymaps/via/keymap.c b/keyboards/kprepublic/bm80v2/keymaps/via/keymap.c
new file mode 100644
index 0000000000..7beceb5630
--- /dev/null
+++ b/keyboards/kprepublic/bm80v2/keymaps/via/keymap.c
@@ -0,0 +1,43 @@
+// Copyright 2021 Yizhen Liu (@edwardslau)
+// SPDX-License-Identifier: GPL-2.0
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+    [0] = LAYOUT_tkl_ansi(
+        KC_ESC,           KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,     KC_PSCR, KC_SLCK, KC_PAUS,
+        KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC,    KC_INS,  KC_HOME, KC_PGUP,
+        KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSLS,     KC_DEL,  KC_END,  KC_PGDN,
+        KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,  KC_ENT,        
+        KC_LSFT,          KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,          KC_RSFT,             KC_UP,
+        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_ansi(
+        RESET,            _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,
+        _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______,    _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______,          _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______,                      _______,
+        _______, _______, _______,                   _______,                                     _______, _______, _______, _______,    _______, _______, _______
+    ),
+
+    [2] = LAYOUT_tkl_ansi(
+        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,                      _______,
+        _______, _______, _______,                   _______,                                     _______, _______, _______, _______,    _______, _______, _______
+    ),
+
+    [3] = LAYOUT_tkl_ansi(
+        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,
+        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,                      _______,
+        _______, _______, _______,                   _______,                                     _______, _______, _______, _______,    _______, _______, _______
+    )
+
+};
diff --git a/keyboards/kprepublic/bm80v2/keymaps/via/rules.mk b/keyboards/kprepublic/bm80v2/keymaps/via/rules.mk
new file mode 100644
index 0000000000..36b7ba9cbc
--- /dev/null
+++ b/keyboards/kprepublic/bm80v2/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
diff --git a/keyboards/kprepublic/bm80v2/readme.md b/keyboards/kprepublic/bm80v2/readme.md
new file mode 100644
index 0000000000..0f799c659a
--- /dev/null
+++ b/keyboards/kprepublic/bm80v2/readme.md
@@ -0,0 +1,20 @@
+# %bm80v2%  
+
+A 80% hotswap inswitch RGB keyboard.
+
+* Keyboard Maintainer: [%bdtc123%](https://github.com/bdtc123)
+* Hardware Supported: BM80V2
+* Hardware Availability: [KP Republic](https://kprepublic.com/products/bm80rgb-bm80-rgb-80-hot-swappable-custom-mechanical-keyboard-pcb-programmed-qmk-via-firmware-full-rgb-switch-underglow-type-c?_pos=7&_sid=767c48383&_ss=r)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make kprepublic bm80v2:default
+
+Flashing example for this keyboard:
+
+    make kprepublic bm80v2: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
+* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
diff --git a/keyboards/kprepublic/bm80v2/rules.mk b/keyboards/kprepublic/bm80v2/rules.mk
new file mode 100644
index 0000000000..1632311563
--- /dev/null
+++ b/keyboards/kprepublic/bm80v2/rules.mk
@@ -0,0 +1,22 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+#   change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes         # Enable Bootmagic Light
+MOUSEKEY_ENABLE = no          # Mouse keys
+EXTRAKEY_ENABLE = yes          # Audio control and System control
+CONSOLE_ENABLE = no            # Console for debug
+COMMAND_ENABLE = no            # Commands for debug and configuration
+NKRO_ENABLE = yes              # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no          # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no           # Enable keyboard RGB underglow
+AUDIO_ENABLE = no              # Audio output
+RGB_MATRIX_ENABLE = yes        # Use RGB matrix
+RGB_MATRIX_DRIVER = IS31FL3741
+LTO_ENABLE = yes
+LAYOUTS = tkl_ansi