Skip to content

Commit 8e5f8a5

Browse files
IBNobodydrashnafauxparksilvinor
authored
[Keyboard] Add Idobao Montex RGB (V2) (qmk#16897)
* Add Montex V2 (#10) * Update readme.md * Update rules.mk * Update config.h * Update keyboards/idobao/montex/v2/config.h Co-authored-by: Drashna Jaelre <drashna@live.com> * Update keyboards/idobao/montex/v2/rules.mk Add Layouts Co-authored-by: Drashna Jaelre <drashna@live.com> * Merged code fron work done with @vinorodrigues * Update keyboards/idobao/montex/v2/rules.mk Co-authored-by: Ryan <fauxpark@gmail.com> * Update keyboards/idobao/montex/v2/v2.h Co-authored-by: Ryan <fauxpark@gmail.com> * Update keyboards/idobao/montex/v2/config.h Co-authored-by: Ryan <fauxpark@gmail.com> * Removing via_nug keymap * update to montex code (#11) * remove VIA_QMK_RGBLIGHT_ENABLE * more data driven config, simple copyright headers, some code cleanup Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: Vino Rodrigues <366673+vinorodrigues@users.noreply.github.com>
1 parent d3dfa83 commit 8e5f8a5

File tree

11 files changed

+478
-0
lines changed

11 files changed

+478
-0
lines changed

keyboards/idobao/montex/v2/config.h

+93
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
// Copyright 2022 IBNobody (@IBNobody)
2+
// SPDX-License-Identifier: GPL-2.0-or-later
3+
4+
#pragma once
5+
6+
#include "config_common.h"
7+
8+
/* LED Matrix & Animations */
9+
#define RGB_DI_PIN B1
10+
11+
#if defined(RGB_DI_PIN) && defined(RGB_MATRIX_ENABLE)
12+
#ifndef ID27_DISABLE_UNDERGLOW
13+
#define DRIVER_LED_TOTAL 31 // The number of LEDs connected
14+
#else
15+
#define DRIVER_LED_TOTAL 27 // -4 disabled underglow LEDs
16+
#endif
17+
18+
// #define RGBLIGHT_ANIMATIONS // don't use, please explicitly define
19+
// #define RGB_MATRIX_FRAMEBUFFER_EFFECTS // don't use, too few key to make it look good
20+
#define RGB_MATRIX_KEYPRESSES
21+
22+
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
23+
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value
24+
25+
// RGB Matrix Animation modes. Explicitly enabled
26+
// For full list of effects, see:
27+
// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
28+
/* *** Items disabled are visually unappealing in a 5x6 key matrix *** */
29+
#define ENABLE_RGB_MATRIX_SOLID_COLOR
30+
#define ENABLE_RGB_MATRIX_ALPHAS_MODS
31+
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
32+
#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
33+
#define ENABLE_RGB_MATRIX_BREATHING
34+
// #define ENABLE_RGB_MATRIX_BAND_SAT
35+
// #define ENABLE_RGB_MATRIX_BAND_VAL
36+
// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
37+
// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
38+
// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
39+
// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
40+
#define ENABLE_RGB_MATRIX_CYCLE_ALL
41+
#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
42+
#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
43+
// #define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
44+
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
45+
// #define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
46+
#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
47+
#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
48+
// #define ENABLE_RGB_MATRIX_DUAL_BEACON
49+
#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
50+
// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
51+
#define ENABLE_RGB_MATRIX_RAINDROPS
52+
#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
53+
#define ENABLE_RGB_MATRIX_HUE_BREATHING
54+
#define ENABLE_RGB_MATRIX_HUE_PENDULUM
55+
#define ENABLE_RGB_MATRIX_HUE_WAVE
56+
#define ENABLE_RGB_MATRIX_PIXEL_RAIN
57+
#define ENABLE_RGB_MATRIX_PIXEL_FLOW
58+
// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
59+
60+
/* enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined */
61+
// #define ENABLE_RGB_MATRIX_TYPING_HEATMAP
62+
// #define ENABLE_RGB_MATRIX_DIGITAL_RAIN
63+
64+
/* enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined */
65+
// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
66+
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
67+
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
68+
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
69+
// define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
70+
// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
71+
// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
72+
// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
73+
#define ENABLE_RGB_MATRIX_SPLASH
74+
// #define ENABLE_RGB_MATRIX_MULTISPLASH
75+
#define ENABLE_RGB_MATRIX_SOLID_SPLASH
76+
// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
77+
#endif // RGB_MATRIX_ENABLE
78+
79+
/* -----------------------
80+
* Feature disable options
81+
* These options are also useful to firmware size reduction.
82+
* ----------------------- */
83+
84+
/* disable debug print */
85+
// #define NO_DEBUG
86+
87+
/* disable print */
88+
// #define NO_PRINT
89+
90+
/* disable action features */
91+
// #define NO_ACTION_LAYER
92+
// #define NO_ACTION_TAPPING
93+
// #define NO_ACTION_ONESHOT

keyboards/idobao/montex/v2/info.json

+67
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
{
2+
"manufacturer": "IDOBAO",
3+
"keyboard_name": "Montex ID27v2",
4+
"maintainer": "IBNobody",
5+
"bootloader": "atmel-dfu",
6+
"diode_direction": "ROW2COL",
7+
"debounce": 5,
8+
"features": {
9+
"bootmagic": true,
10+
"command": false,
11+
"console": false,
12+
"extrakey": true,
13+
"mousekey": true,
14+
"nkro": true,
15+
"backlight": false,
16+
"rgblight": false
17+
},
18+
"matrix_pins": {
19+
"cols": ["D5", "D3", "D2", "D1", "D0"],
20+
"rows": ["D4", "D6", "D7", "B4", "B5", "C6"]
21+
},
22+
"processor": "atmega32u4",
23+
"url": "https://idobao.net/search?type=product&q=montex*",
24+
"usb": {
25+
"device_version": "2.0.0",
26+
"pid": "0x0227",
27+
"vid": "0x6964"
28+
}
29+
"layouts": {
30+
"LAYOUT_numpad_6x5": {
31+
"layout": [
32+
{ "matrix": [0, 0], "x": 0, "y": 0 },
33+
{ "matrix": [0, 1], "x": 1, "y": 0 },
34+
{ "matrix": [0, 2], "x": 2, "y": 0 },
35+
{ "matrix": [0, 3], "x": 3, "y": 0 },
36+
{ "matrix": [0, 4], "x": 4, "y": 0 },
37+
38+
{ "matrix": [1, 0], "x": 0, "y": 1 },
39+
{ "matrix": [1, 1], "x": 1, "y": 1 },
40+
{ "matrix": [1, 2], "x": 2, "y": 1 },
41+
{ "matrix": [1, 3], "x": 3, "y": 1 },
42+
{ "matrix": [1, 4], "x": 4, "y": 1 },
43+
44+
{ "matrix": [2, 0], "x": 0, "y": 2 },
45+
{ "matrix": [2, 1], "x": 1, "y": 2 },
46+
{ "matrix": [2, 2], "x": 2, "y": 2 },
47+
{ "matrix": [2, 3], "x": 3, "y": 2 },
48+
{ "matrix": [2, 4], "x": 4, "y": 2, "h": 2 },
49+
50+
{ "matrix": [3, 0], "x": 0, "y": 3 },
51+
{ "matrix": [3, 1], "x": 1, "y": 3 },
52+
{ "matrix": [3, 2], "x": 2, "y": 3 },
53+
{ "matrix": [3, 3], "x": 3, "y": 3 },
54+
55+
{ "matrix": [4, 0], "x": 0, "y": 4 },
56+
{ "matrix": [4, 1], "x": 1, "y": 4 },
57+
{ "matrix": [4, 2], "x": 2, "y": 4 },
58+
{ "matrix": [4, 3], "x": 3, "y": 4 },
59+
{ "matrix": [5, 3], "x": 4, "y": 4, "h": 2 },
60+
61+
{ "matrix": [5, 0], "x": 0, "y": 5 },
62+
{ "matrix": [5, 1], "x": 1, "y": 5, "w": 2 },
63+
{ "matrix": [5, 2], "x": 3, "y": 5 }
64+
]
65+
}
66+
}
67+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
// Copyright 2022 IBNobody (@IBNobody)
2+
// SPDX-License-Identifier: GPL-2.0-or-later
3+
4+
#include QMK_KEYBOARD_H
5+
6+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7+
/*
8+
* ┌───┌───┬───┬───┬───┐
9+
* │Esc│Tab│ F1│Cal│Bsp│
10+
* ├───┼───┼───┼───┼───┤
11+
* │Ctr│Num│ / │ * │ - │
12+
* ├───┼───┼───┼───┼───┤
13+
* │Gui│ 7 │ 8 │ 9 │ │
14+
* ├───┼───┼───┼───┤ + │
15+
* │Alt│ 4 │ 5 │ 6 │ │
16+
* ├───┼───┼───┼───┼───┤
17+
* │Shi│ 1 │ 2 │ 3 │ │
18+
* ├───┼───┴───┼───┤Ent│
19+
* │MO1│ 0 │ . │ │
20+
* └───┴───────┴───┴───┘
21+
*/
22+
[0] = LAYOUT_numpad_6x5(
23+
KC_GESC, KC_TAB, KC_F1, KC_CALC, KC_BSPC,
24+
KC_LCTRL, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
25+
KC_LGUI, KC_P7, KC_P8, KC_P9, KC_PPLS,
26+
KC_LALT, KC_P4, KC_P5, KC_P6,
27+
KC_LSHIFT, KC_P1, KC_P2, KC_P3, KC_PENT,
28+
MO(1), KC_P0, KC_PDOT
29+
),
30+
31+
/*
32+
* ┌───┌───┐───┬───┬───┐
33+
* │Rst│TOG│MOD│PSc│SLk│
34+
* ├───┼───┼───┼───┼───┤
35+
* │Hu+│ │Sp-│Sp+│Br-│
36+
* ├───┼───┼───┼───┼───┤
37+
* │Hu-│Hom│ ↑ │PgU│ │
38+
* ├───┼───┼───┼───┤Br+│
39+
* │St+│ ← │ │ → │ │
40+
* ├───┼───┼───┼───┤───┤
41+
* │St-│End│ ↓ │PgD│ │
42+
* ├───┼───┴───┼───┤Ent│
43+
* │mo1│Insert │Del│ │
44+
* └───┴───────┴───┘───┘
45+
*/
46+
[1] = LAYOUT_numpad_6x5(
47+
QK_BOOT, RGB_TOG, RGB_MOD, KC_PSCR, KC_SLCK,
48+
RGB_HUI, XXXXXXX, RGB_SPD, RGB_SPI, RGB_VAD,
49+
RGB_HUD, KC_HOME, KC_UP, KC_PGUP, RGB_VAI,
50+
RGB_SAI, KC_LEFT, XXXXXXX, KC_RGHT,
51+
RGB_SAD, KC_END, KC_DOWN, KC_PGDN, KC_ENT,
52+
_______, KC_INS, KC_DEL
53+
)
54+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// Copyright 2022 IBNobody (@IBNobody)
2+
// SPDX-License-Identifier: GPL-2.0-or-later
3+
4+
#pragma once
5+
6+
#define DYNAMIC_KEYMAP_LAYER_COUNT 6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
// Copyright 2022 IBNobody (@IBNobody)
2+
// SPDX-License-Identifier: GPL-2.0-or-later
3+
4+
#include QMK_KEYBOARD_H
5+
6+
enum montex_layers {
7+
_BASE,
8+
_FN,
9+
_EMPTY2, // Just to initialize dynamic layers in VIA
10+
_EMPTY3,
11+
_EMPTY4,
12+
_EMPTY5
13+
};
14+
15+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
16+
/*
17+
* ┌───┬───┬───┬───┬───┐
18+
* │Esc│Tab│ F1│Cal│Bsp│
19+
* ├───┼───┼───┼───┼───┤
20+
* │Ctr│Num│ / │ * │ - │
21+
* ├───┼───┼───┼───┼───┤
22+
* │Gui│ 7 │ 8 │ 9 │ │
23+
* ├───┼───┼───┼───┤ + │
24+
* │Alt│ 4 │ 5 │ 6 │ │
25+
* ├───┼───┼───┼───┼───┤
26+
* │Shi│ 1 │ 2 │ 3 │ │
27+
* ├───┼───┴───┼───┤Ent│
28+
* │MO1│ 0 │ . │ │
29+
* └───┴───────┴───┴───┘
30+
*/
31+
[_BASE] = LAYOUT_numpad_6x5(
32+
KC_GESC, KC_TAB, KC_F1, KC_CALC, KC_BSPC,
33+
KC_LCTRL, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
34+
KC_LGUI, KC_P7, KC_P8, KC_P9, KC_PPLS,
35+
KC_LALT, KC_P4, KC_P5, KC_P6,
36+
KC_LSHIFT, KC_P1, KC_P2, KC_P3, KC_PENT,
37+
MO(1), KC_P0, KC_PDOT
38+
),
39+
40+
/*
41+
* ┌───┬───┬───┬───┬───┐
42+
* │Rst│TOG│MOD│PSs│SLk│
43+
* ├───┼───┼───┼───┼───┤
44+
* │Hu+│ │Sp-│Sp+│Br-│
45+
* ├───┼───┼───┼───┼───┤
46+
* │Hu-│Hom│ ↑ │PgU│ │
47+
* ├───┼───┼───┼───┤Br+│
48+
* │St+│ ← │ │ → │ │
49+
* ├───┼───┼───┼───┤───┤
50+
* │St-│End│ ↓ │PgD│ │
51+
* ├───┼───┴───┼───┤Ent│
52+
* │mo1│Insert │Del│ │
53+
* └───┴───────┴───┴───┘
54+
*/
55+
[_FN] = LAYOUT_numpad_6x5(
56+
QK_BOOT, RGB_TOG, RGB_MOD, KC_PSCR, KC_SLCK,
57+
RGB_HUI, XXXXXXX, RGB_SPD, RGB_SPI, RGB_VAD,
58+
RGB_HUD, KC_HOME, KC_UP, KC_PGUP, RGB_VAI,
59+
RGB_SAI, KC_LEFT, XXXXXXX, KC_RGHT,
60+
RGB_SAD, KC_END, KC_DOWN, KC_PGDN, KC_ENT,
61+
_______, KC_INS, KC_DEL
62+
),
63+
64+
/* 4 extra layers incase you want to map the top row to layer buttons
65+
* ┌───┬───┬───┬───┬───┐
66+
* │ │ │ │ │ │
67+
* ├───┼───┼───┼───┼───┤
68+
* │ │ │ │ │ │
69+
* ├───┼───┼───┼───┼───┤
70+
* │ │ │ │ │ │
71+
* ├───┼───┼───┼───┤ │
72+
* │ │ │ │ │ │
73+
* ├───┼───┼───┼───┤───┤
74+
* │ │ │ │ │ │
75+
* ├───┼───┴───┼───┤ │
76+
* │ │ │ │ │
77+
* └───┴───────┴───┴───┘
78+
*/
79+
[_EMPTY2] = LAYOUT_numpad_6x5(
80+
_______, _______, _______, _______, _______,
81+
_______, _______, _______, _______, _______,
82+
_______, _______, _______, _______, _______,
83+
_______, _______, _______, _______,
84+
_______, _______, _______, _______, _______,
85+
_______, _______, _______
86+
),
87+
88+
[_EMPTY3] = LAYOUT_numpad_6x5(
89+
_______, _______, _______, _______, _______,
90+
_______, _______, _______, _______, _______,
91+
_______, _______, _______, _______, _______,
92+
_______, _______, _______, _______,
93+
_______, _______, _______, _______, _______,
94+
_______, _______, _______
95+
),
96+
97+
[_EMPTY4] = LAYOUT_numpad_6x5(
98+
_______, _______, _______, _______, _______,
99+
_______, _______, _______, _______, _______,
100+
_______, _______, _______, _______, _______,
101+
_______, _______, _______, _______,
102+
_______, _______, _______, _______, _______,
103+
_______, _______, _______
104+
),
105+
106+
[_EMPTY5] = LAYOUT_numpad_6x5(
107+
_______, _______, _______, _______, _______,
108+
_______, _______, _______, _______, _______,
109+
_______, _______, _______, _______, _______,
110+
_______, _______, _______, _______,
111+
_______, _______, _______, _______, _______,
112+
_______, _______, _______
113+
)
114+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
VIA_ENABLE = yes
2+
LTO_ENABLE = yes
+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# some (if not most) Montex have a solid back plate,
2+
# this enables switching off the bottom facing LEDs
3+
# Usage: `make idobao/montex/v2:default UNDERGLOW=off`
4+
5+
UNDERGLOW ?= yes
6+
ifneq ($(strip $(UNDERGLOW)), yes)
7+
OPT_DEFS += -DID27_DISABLE_UNDERGLOW
8+
endif

keyboards/idobao/montex/v2/readme.md

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# IDOBAO Montex V2
2+
3+
![MONTEX V2](https://i.imgur.com/uHEispxh.png)
4+
5+
A hotswap RGB numpad from IDOBAO.
6+
7+
8+
## Numeric Keypad
9+
10+
* Keyboard Maintainer:
11+
- [IBNobody](https://github.com/IBNobody)
12+
- [vinorodrigues](https://github.com/vinorodrigues)
13+
* Hardware Supported: **IDOBAO Montex V2**
14+
* Hardware Availability: [IDOBAO.net](https://idobao.net/search?type=product&q=montex*)
15+
16+
17+
## Layout
18+
19+
![](https://idobao.github.io/kle/idobao-id27-v2.png)
20+
21+
22+
## Compiling and Flashing
23+
24+
Make example for this keyboard (after setting up your build environment):
25+
26+
make idobao/montex/v2:default
27+
28+
Flashing example for this keyboard:
29+
30+
make idobao/montex/v2:default:flash
31+
32+
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>
33+
Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
34+
35+
## Bootloader
36+
37+
Enter the bootloader in 3 ways:
38+
39+
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
40+
* **Physical reset button**: Briefly press the button on the back of the PCB
41+
* **Keycode in layout**: Press the key mapped to `RESET` if it is available

keyboards/idobao/montex/v2/rules.mk

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# This file intentionally mostly left blank
2+
# ** settings are data driven & stored in `info.json` **
3+
4+
RGB_MATRIX_ENABLE = yes
5+
RGB_MATRIX_DRIVER = WS2812

0 commit comments

Comments
 (0)