summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQMK Bot <hello@qmk.fm>2022-06-16 02:05:06 +0000
committerQMK Bot <hello@qmk.fm>2022-06-16 02:05:06 +0000
commitcac5f962759508b71c92b173eaa415db7ab95d17 (patch)
tree96c7607cd3b94702a9e7fa3a539f9a266d718078
parentfa8fb6027952cfeda532ff4712c07e80cde8cfbf (diff)
parent8e5f8a5ff94be31289a14ac734827edf5bed6593 (diff)
downloadqmk_firmware-cac5f962759508b71c92b173eaa415db7ab95d17.tar.gz
qmk_firmware-cac5f962759508b71c92b173eaa415db7ab95d17.zip
Merge remote-tracking branch 'origin/master' into develop
-rwxr-xr-xkeyboards/idobao/montex/v2/config.h93
-rwxr-xr-xkeyboards/idobao/montex/v2/info.json67
-rwxr-xr-xkeyboards/idobao/montex/v2/keymaps/default/keymap.c54
-rwxr-xr-xkeyboards/idobao/montex/v2/keymaps/via/config.h6
-rwxr-xr-xkeyboards/idobao/montex/v2/keymaps/via/keymap.c114
-rwxr-xr-xkeyboards/idobao/montex/v2/keymaps/via/rules.mk2
-rw-r--r--keyboards/idobao/montex/v2/post_rules.mk8
-rwxr-xr-xkeyboards/idobao/montex/v2/readme.md41
-rwxr-xr-xkeyboards/idobao/montex/v2/rules.mk5
-rwxr-xr-xkeyboards/idobao/montex/v2/v2.c82
-rwxr-xr-xkeyboards/idobao/montex/v2/v2.h6
11 files changed, 478 insertions, 0 deletions
diff --git a/keyboards/idobao/montex/v2/config.h b/keyboards/idobao/montex/v2/config.h
new file mode 100755
index 0000000000..47d43ca458
--- /dev/null
+++ b/keyboards/idobao/montex/v2/config.h
@@ -0,0 +1,93 @@
+// Copyright 2022 IBNobody (@IBNobody)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "config_common.h"
+
+/* LED Matrix & Animations */
+#define RGB_DI_PIN B1
+
+#if defined(RGB_DI_PIN) && defined(RGB_MATRIX_ENABLE)
+ #ifndef ID27_DISABLE_UNDERGLOW
+ #define DRIVER_LED_TOTAL 31 // The number of LEDs connected
+ #else
+ #define DRIVER_LED_TOTAL 27 // -4 disabled underglow LEDs
+ #endif
+
+ // #define RGBLIGHT_ANIMATIONS // don't use, please explicitly define
+ // #define RGB_MATRIX_FRAMEBUFFER_EFFECTS // don't use, too few key to make it look good
+ #define RGB_MATRIX_KEYPRESSES
+
+ #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
+ #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value
+
+ // RGB Matrix Animation modes. Explicitly enabled
+ // For full list of effects, see:
+ // https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
+ /* *** Items disabled are visually unappealing in a 5x6 key matrix *** */
+ #define ENABLE_RGB_MATRIX_SOLID_COLOR
+ #define ENABLE_RGB_MATRIX_ALPHAS_MODS
+ #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
+ #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
+ #define ENABLE_RGB_MATRIX_BREATHING
+ // #define ENABLE_RGB_MATRIX_BAND_SAT
+ // #define ENABLE_RGB_MATRIX_BAND_VAL
+ // #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
+ // #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
+ // #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
+ // #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_RAINDROPS
+ #define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
+ #define ENABLE_RGB_MATRIX_HUE_BREATHING
+ #define ENABLE_RGB_MATRIX_HUE_PENDULUM
+ #define ENABLE_RGB_MATRIX_HUE_WAVE
+ #define ENABLE_RGB_MATRIX_PIXEL_RAIN
+ #define ENABLE_RGB_MATRIX_PIXEL_FLOW
+ // #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
+
+ /* enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined */
+ // #define ENABLE_RGB_MATRIX_TYPING_HEATMAP
+ // #define ENABLE_RGB_MATRIX_DIGITAL_RAIN
+
+ /* enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined */
+ // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
+ #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
+ #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
+ #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
+ // define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
+ // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
+ // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
+ // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
+ #define ENABLE_RGB_MATRIX_SPLASH
+ // #define ENABLE_RGB_MATRIX_MULTISPLASH
+ #define ENABLE_RGB_MATRIX_SOLID_SPLASH
+ // #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
+#endif // RGB_MATRIX_ENABLE
+
+/* -----------------------
+ * 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
diff --git a/keyboards/idobao/montex/v2/info.json b/keyboards/idobao/montex/v2/info.json
new file mode 100755
index 0000000000..62715ec00a
--- /dev/null
+++ b/keyboards/idobao/montex/v2/info.json
@@ -0,0 +1,67 @@
+{
+ "manufacturer": "IDOBAO",
+ "keyboard_name": "Montex ID27v2",
+ "maintainer": "IBNobody",
+ "bootloader": "atmel-dfu",
+ "diode_direction": "ROW2COL",
+ "debounce": 5,
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "backlight": false,
+ "rgblight": false
+ },
+ "matrix_pins": {
+ "cols": ["D5", "D3", "D2", "D1", "D0"],
+ "rows": ["D4", "D6", "D7", "B4", "B5", "C6"]
+ },
+ "processor": "atmega32u4",
+ "url": "https://idobao.net/search?type=product&q=montex*",
+ "usb": {
+ "device_version": "2.0.0",
+ "pid": "0x0227",
+ "vid": "0x6964"
+ }
+ "layouts": {
+ "LAYOUT_numpad_6x5": {
+ "layout": [
+ { "matrix": [0, 0], "x": 0, "y": 0 },
+ { "matrix": [0, 1], "x": 1, "y": 0 },
+ { "matrix": [0, 2], "x": 2, "y": 0 },
+ { "matrix": [0, 3], "x": 3, "y": 0 },
+ { "matrix": [0, 4], "x": 4, "y": 0 },
+
+ { "matrix": [1, 0], "x": 0, "y": 1 },
+ { "matrix": [1, 1], "x": 1, "y": 1 },
+ { "matrix": [1, 2], "x": 2, "y": 1 },
+ { "matrix": [1, 3], "x": 3, "y": 1 },
+ { "matrix": [1, 4], "x": 4, "y": 1 },
+
+ { "matrix": [2, 0], "x": 0, "y": 2 },
+ { "matrix": [2, 1], "x": 1, "y": 2 },
+ { "matrix": [2, 2], "x": 2, "y": 2 },
+ { "matrix": [2, 3], "x": 3, "y": 2 },
+ { "matrix": [2, 4], "x": 4, "y": 2, "h": 2 },
+
+ { "matrix": [3, 0], "x": 0, "y": 3 },
+ { "matrix": [3, 1], "x": 1, "y": 3 },
+ { "matrix": [3, 2], "x": 2, "y": 3 },
+ { "matrix": [3, 3], "x": 3, "y": 3 },
+
+ { "matrix": [4, 0], "x": 0, "y": 4 },
+ { "matrix": [4, 1], "x": 1, "y": 4 },
+ { "matrix": [4, 2], "x": 2, "y": 4 },
+ { "matrix": [4, 3], "x": 3, "y": 4 },
+ { "matrix": [5, 3], "x": 4, "y": 4, "h": 2 },
+
+ { "matrix": [5, 0], "x": 0, "y": 5 },
+ { "matrix": [5, 1], "x": 1, "y": 5, "w": 2 },
+ { "matrix": [5, 2], "x": 3, "y": 5 }
+ ]
+ }
+ }
+}
diff --git a/keyboards/idobao/montex/v2/keymaps/default/keymap.c b/keyboards/idobao/montex/v2/keymaps/default/keymap.c
new file mode 100755
index 0000000000..b51de4317b
--- /dev/null
+++ b/keyboards/idobao/montex/v2/keymaps/default/keymap.c
@@ -0,0 +1,54 @@
+// Copyright 2022 IBNobody (@IBNobody)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /*
+ * ┌───┌───┬───┬───┬───┐
+ * │Esc│Tab│ F1│Cal│Bsp│
+ * ├───┼───┼───┼───┼───┤
+ * │Ctr│Num│ / │ * │ - │
+ * ├───┼───┼───┼───┼───┤
+ * │Gui│ 7 │ 8 │ 9 │ │
+ * ├───┼───┼───┼───┤ + │
+ * │Alt│ 4 │ 5 │ 6 │ │
+ * ├───┼───┼───┼───┼───┤
+ * │Shi│ 1 │ 2 │ 3 │ │
+ * ├───┼───┴───┼───┤Ent│
+ * │MO1│ 0 │ . │ │
+ * └───┴───────┴───┴───┘
+ */
+ [0] = LAYOUT_numpad_6x5(
+ KC_GESC, KC_TAB, KC_F1, KC_CALC, KC_BSPC,
+ KC_LCTRL, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_LGUI, KC_P7, KC_P8, KC_P9, KC_PPLS,
+ KC_LALT, KC_P4, KC_P5, KC_P6,
+ KC_LSHIFT, KC_P1, KC_P2, KC_P3, KC_PENT,
+ MO(1), KC_P0, KC_PDOT
+ ),
+
+ /*
+ * ┌───┌───┐───┬───┬───┐
+ * │Rst│TOG│MOD│PSc│SLk│
+ * ├───┼───┼───┼───┼───┤
+ * │Hu+│ │Sp-│Sp+│Br-│
+ * ├───┼───┼───┼───┼───┤
+ * │Hu-│Hom│ ↑ │PgU│ │
+ * ├───┼───┼───┼───┤Br+│
+ * │St+│ ← │ │ → │ │
+ * ├───┼───┼───┼───┤───┤
+ * │St-│End│ ↓ │PgD│ │
+ * ├───┼───┴───┼───┤Ent│
+ * │mo1│Insert │Del│ │
+ * └───┴───────┴───┘───┘
+ */
+ [1] = LAYOUT_numpad_6x5(
+ QK_BOOT, RGB_TOG, RGB_MOD, KC_PSCR, KC_SLCK,
+ RGB_HUI, XXXXXXX, RGB_SPD, RGB_SPI, RGB_VAD,
+ RGB_HUD, KC_HOME, KC_UP, KC_PGUP, RGB_VAI,
+ RGB_SAI, KC_LEFT, XXXXXXX, KC_RGHT,
+ RGB_SAD, KC_END, KC_DOWN, KC_PGDN, KC_ENT,
+ _______, KC_INS, KC_DEL
+ )
+};
diff --git a/keyboards/idobao/montex/v2/keymaps/via/config.h b/keyboards/idobao/montex/v2/keymaps/via/config.h
new file mode 100755
index 0000000000..40b377f958
--- /dev/null
+++ b/keyboards/idobao/montex/v2/keymaps/via/config.h
@@ -0,0 +1,6 @@
+// Copyright 2022 IBNobody (@IBNobody)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#define DYNAMIC_KEYMAP_LAYER_COUNT 6
diff --git a/keyboards/idobao/montex/v2/keymaps/via/keymap.c b/keyboards/idobao/montex/v2/keymaps/via/keymap.c
new file mode 100755
index 0000000000..7f336b7d50
--- /dev/null
+++ b/keyboards/idobao/montex/v2/keymaps/via/keymap.c
@@ -0,0 +1,114 @@
+// Copyright 2022 IBNobody (@IBNobody)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+enum montex_layers {
+ _BASE,
+ _FN,
+ _EMPTY2, // Just to initialize dynamic layers in VIA
+ _EMPTY3,
+ _EMPTY4,
+ _EMPTY5
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /*
+ * ┌───┬───┬───┬───┬───┐
+ * │Esc│Tab│ F1│Cal│Bsp│
+ * ├───┼───┼───┼───┼───┤
+ * │Ctr│Num│ / │ * │ - │
+ * ├───┼───┼───┼───┼───┤
+ * │Gui│ 7 │ 8 │ 9 │ │
+ * ├───┼───┼───┼───┤ + │
+ * │Alt│ 4 │ 5 │ 6 │ │
+ * ├───┼───┼───┼───┼───┤
+ * │Shi│ 1 │ 2 │ 3 │ │
+ * ├───┼───┴───┼───┤Ent│
+ * │MO1│ 0 │ . │ │
+ * └───┴───────┴───┴───┘
+ */
+ [_BASE] = LAYOUT_numpad_6x5(
+ KC_GESC, KC_TAB, KC_F1, KC_CALC, KC_BSPC,
+ KC_LCTRL, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_LGUI, KC_P7, KC_P8, KC_P9, KC_PPLS,
+ KC_LALT, KC_P4, KC_P5, KC_P6,
+ KC_LSHIFT, KC_P1, KC_P2, KC_P3, KC_PENT,
+ MO(1), KC_P0, KC_PDOT
+ ),
+
+ /*
+ * ┌───┬───┬───┬───┬───┐
+ * │Rst│TOG│MOD│PSs│SLk│
+ * ├───┼───┼───┼───┼───┤
+ * │Hu+│ │Sp-│Sp+│Br-│
+ * ├───┼───┼───┼───┼───┤
+ * │Hu-│Hom│ ↑ │PgU│ │
+ * ├───┼───┼───┼───┤Br+│
+ * │St+│ ← │ │ → │ │
+ * ├───┼───┼───┼───┤───┤
+ * │St-│End│ ↓ │PgD│ │
+ * ├───┼───┴───┼───┤Ent│
+ * │mo1│Insert │Del│ │
+ * └───┴───────┴───┴───┘
+ */
+ [_FN] = LAYOUT_numpad_6x5(
+ QK_BOOT, RGB_TOG, RGB_MOD, KC_PSCR, KC_SLCK,
+ RGB_HUI, XXXXXXX, RGB_SPD, RGB_SPI, RGB_VAD,
+ RGB_HUD, KC_HOME, KC_UP, KC_PGUP, RGB_VAI,
+ RGB_SAI, KC_LEFT, XXXXXXX, KC_RGHT,
+ RGB_SAD, KC_END, KC_DOWN, KC_PGDN, KC_ENT,
+ _______, KC_INS, KC_DEL
+ ),
+
+ /* 4 extra layers incase you want to map the top row to layer buttons
+ * ┌───┬───┬───┬───┬───┐
+ * │ │ │ │ │ │
+ * ├───┼───┼───┼───┼───┤
+ * │ │ │ │ │ │
+ * ├───┼───┼───┼───┼───┤
+ * │ │ │ │ │ │
+ * ├───┼───┼───┼───┤ │
+ * │ │ │ │ │ │
+ * ├───┼───┼───┼───┤───┤
+ * │ │ │ │ │ │
+ * ├───┼───┴───┼───┤ │
+ * │ │ │ │ │
+ * └───┴───────┴───┴───┘
+ */
+ [_EMPTY2] = LAYOUT_numpad_6x5(
+ _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______, _______
+ ),
+
+ [_EMPTY3] = LAYOUT_numpad_6x5(
+ _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______, _______
+ ),
+
+ [_EMPTY4] = LAYOUT_numpad_6x5(
+ _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______, _______
+ ),
+
+ [_EMPTY5] = LAYOUT_numpad_6x5(
+ _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______, _______
+ )
+};
diff --git a/keyboards/idobao/montex/v2/keymaps/via/rules.mk b/keyboards/idobao/montex/v2/keymaps/via/rules.mk
new file mode 100755
index 0000000000..36b7ba9cbc
--- /dev/null
+++ b/keyboards/idobao/montex/v2/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
diff --git a/keyboards/idobao/montex/v2/post_rules.mk b/keyboards/idobao/montex/v2/post_rules.mk
new file mode 100644
index 0000000000..f2d43fa6ac
--- /dev/null
+++ b/keyboards/idobao/montex/v2/post_rules.mk
@@ -0,0 +1,8 @@
+# some (if not most) Montex have a solid back plate,
+# this enables switching off the bottom facing LEDs
+# Usage: `make idobao/montex/v2:default UNDERGLOW=off`
+
+UNDERGLOW ?= yes
+ifneq ($(strip $(UNDERGLOW)), yes)
+ OPT_DEFS += -DID27_DISABLE_UNDERGLOW
+endif
diff --git a/keyboards/idobao/montex/v2/readme.md b/keyboards/idobao/montex/v2/readme.md
new file mode 100755
index 0000000000..793507b8f1
--- /dev/null
+++ b/keyboards/idobao/montex/v2/readme.md
@@ -0,0 +1,41 @@
+# IDOBAO Montex V2
+
+![MONTEX V2](https://i.imgur.com/uHEispxh.png)
+
+A hotswap RGB numpad from IDOBAO.
+
+
+## Numeric Keypad
+
+* Keyboard Maintainer:
+ - [IBNobody](https://github.com/IBNobody)
+ - [vinorodrigues](https://github.com/vinorodrigues)
+* Hardware Supported: **IDOBAO Montex V2**
+* Hardware Availability: [IDOBAO.net](https://idobao.net/search?type=product&q=montex*)
+
+
+## Layout
+
+![](https://idobao.github.io/kle/idobao-id27-v2.png)
+
+
+## Compiling and Flashing
+
+Make example for this keyboard (after setting up your build environment):
+
+ make idobao/montex/v2:default
+
+Flashing example for this keyboard:
+
+ make idobao/montex/v2: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.<br>
+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
+* **Keycode in layout**: Press the key mapped to `RESET` if it is available
diff --git a/keyboards/idobao/montex/v2/rules.mk b/keyboards/idobao/montex/v2/rules.mk
new file mode 100755
index 0000000000..205f56d5fd
--- /dev/null
+++ b/keyboards/idobao/montex/v2/rules.mk
@@ -0,0 +1,5 @@
+# This file intentionally mostly left blank
+# ** settings are data driven & stored in `info.json` **
+
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
diff --git a/keyboards/idobao/montex/v2/v2.c b/keyboards/idobao/montex/v2/v2.c
new file mode 100755
index 0000000000..0f06aa708e
--- /dev/null
+++ b/keyboards/idobao/montex/v2/v2.c
@@ -0,0 +1,82 @@
+// Copyright 2022 IBNobody (@IBNobody)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "v2.h"
+
+#define __ NO_LED
+
+#ifdef RGB_MATRIX_ENABLE
+
+/* Under-, Per-key
+ * ┌───┬───┬───┬───┬───┐
+ * │ 4 │ 3 │ 2 │ 1 │ 0 │
+ * ├───┼───┼───┼───┼───┤
+ * │ 5 │ 6 │ 7 │ 8 │ 9 │
+ * ├───┼───┼───┼───┼───┤
+ * │14 │13 │12 │11 │ │
+ * ├───┼───┼───┼───┤10 │
+ * │15 │16 │17 │18 │ │
+ * ├───┼───┼───┼───┼───┤
+ * │23 │22 │21 │20 │ │
+ * ├───┼───┴───┼───┤19 │
+ * │24 │ 25 │26 │ │
+ * └───┴───────┴───┴───┘
+ *
+ * Underglow (from top / [Esc] = top left)
+ * ┌─────────┬─────────┐
+ * │ │ │
+ * │ │ │
+ * │ 29 │ 30 │
+ * │ │ │
+ * │ │ │
+ * ├─────────┼─────────┤
+ * │ │ │
+ * │ │ │
+ * │ 28 │ 27 │
+ * │ │ │
+ * │ │ │
+ * └─────────┴─────────┘
+ */
+
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ // Montex v2 WS2812 are laid in a Z-shape with index 0 = top-right
+ // Based on: https://xelus.netlify.app/guides/KLE_to_RGB_parser
+ { 4, 3, 2, 1, 0},
+ { 5, 6, 7, 8, 9},
+ { 14, 13, 12, 11, 10},
+ { 15, 16, 17, 18, __},
+ { 23, 22, 21, 20, __},
+ { 24, 25, 26, 19, __}
+}, {
+ // LED Index to Physical Position
+ // per-key
+ // Based on: https://xelus.netlify.app/guides/KLE_to_RGB_parser
+ {224,0 }, {168,0 }, {112,0 }, { 56,0 }, { 0,0 }, // top row
+ { 0,17 }, { 56,17 }, {112,17 }, {168,17 }, {224,17 }, // num-lk & /*- (reversed)
+ {224,35 }, {168,29 }, {112,29 }, { 56,29 }, { 0,29 }, // 789+
+ { 0,41 }, { 56,41 }, {112,41 }, {168,41 }, // 456 (reversed)
+ {224,58 }, {168,52 }, {112,52 }, { 56,52 }, // 123
+ { 0,52 }, { 0,64 }, { 84,64 }, {168,64 } // 0. & enter (reversed)
+ // underglow LEDs (positions pushed to nearest edge to match edge key colors)
+ #ifndef ID27_DISABLE_UNDERGLOW
+ , {224,64 }, { 0,64 },
+ { 0,0 }, { 224,0 }
+ #endif
+}, {
+ // LED Index to Flag
+ // LED_FLAG_MODIFIER 0x01, LED_FLAG_UNDERGLOW 0x02, LED_FLAG_KEYLIGHT 0x04, LED_FLAG_INDICATOR 0x08
+ // per-key
+ 1, 1, 1, 1, 1,
+ 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4,
+ 4, 4, 4, 4,
+ 4, 4, 4, 4,
+ 4, 4, 4, 4
+ // underglow
+ #ifndef ID27_DISABLE_UNDERGLOW
+ , 2, 2, 2, 2
+ #endif
+} };
+
+#endif
diff --git a/keyboards/idobao/montex/v2/v2.h b/keyboards/idobao/montex/v2/v2.h
new file mode 100755
index 0000000000..3f486480db
--- /dev/null
+++ b/keyboards/idobao/montex/v2/v2.h
@@ -0,0 +1,6 @@
+// Copyright 2022 IBNobody (@IBNobody)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "quantum.h"