summaryrefslogtreecommitdiff
path: root/keyboards/doio
diff options
context:
space:
mode:
authorQMK Bot <hello@qmk.fm>2024-03-29 04:53:41 +0000
committerQMK Bot <hello@qmk.fm>2024-03-29 04:53:41 +0000
commit4e941c3caf7d4d59a2afcd5802f3e636b6a655d7 (patch)
tree4d89b11cc14e8c49f69e7a5d62168a179a4cb02a /keyboards/doio
parentbcc4dc4f25f44941302419a97596b1a33458f4da (diff)
parenteac380926655d59db7471a9085a96b10b7671ce2 (diff)
Merge remote-tracking branch 'origin/master' into develop
Diffstat (limited to 'keyboards/doio')
-rw-r--r--keyboards/doio/kb3x/info.json125
-rw-r--r--keyboards/doio/kb3x/keymaps/default/keymap.c51
-rw-r--r--keyboards/doio/kb3x/keymaps/default/rules.mk1
-rw-r--r--keyboards/doio/kb3x/keymaps/via/keymap.c73
-rw-r--r--keyboards/doio/kb3x/keymaps/via/rules.mk2
-rw-r--r--keyboards/doio/kb3x/readme.md26
-rw-r--r--keyboards/doio/kb3x/rules.mk1
7 files changed, 279 insertions, 0 deletions
diff --git a/keyboards/doio/kb3x/info.json b/keyboards/doio/kb3x/info.json
new file mode 100644
index 0000000000..be0d138439
--- /dev/null
+++ b/keyboards/doio/kb3x/info.json
@@ -0,0 +1,125 @@
1{
2 "manufacturer": "DOIO",
3 "keyboard_name": "KB3x-01",
4 "maintainer": "DOIO2022",
5 "bootloader": "stm32duino",
6 "diode_direction": "COL2ROW",
7 "dynamic_keymap": {
8 "layer_count": 6
9 },
10 "encoder": {
11 "rotary": [
12 {"pin_a": "B5", "pin_b": "B6", "resolution": 2},
13 {"pin_a": "A1", "pin_b": "A2", "resolution": 2},
14 {"pin_a": "A3", "pin_b": "A4", "resolution": 2}
15 ]
16 },
17 "features": {
18 "bootmagic": true,
19 "encoder": true,
20 "extrakey": true,
21 "mousekey": true,
22 "rgb_matrix": true
23 },
24 "matrix_pins": {
25 "cols": ["B14", "B13", "B12", "B0", "A7", "A6"],
26 "rows": ["B3", "B4", "B9", "B8"]
27 },
28 "processor": "STM32F103",
29 "rgb_matrix": {
30 "animations": {
31 "alphas_mods": true,
32 "band_pinwheel_sat": true,
33 "band_pinwheel_val": true,
34 "band_sat": true,
35 "band_spiral_sat": true,
36 "band_spiral_val": true,
37 "band_val": true,
38 "breathing": true,
39 "cycle_all": true,
40 "cycle_left_right": true,
41 "cycle_out_in": true,
42 "cycle_out_in_dual": true,
43 "cycle_pinwheel": true,
44 "cycle_spiral": true,
45 "cycle_up_down": true,
46 "digital_rain": true,
47 "dual_beacon": true,
48 "gradient_left_right": true,
49 "gradient_up_down": true,
50 "hue_breathing": true,
51 "hue_pendulum": true,
52 "hue_wave": true,
53 "jellybean_raindrops": true,
54 "multisplash": true,
55 "pixel_flow": true,
56 "pixel_fractal": true,
57 "pixel_rain": true,
58 "rainbow_beacon": true,
59 "rainbow_moving_chevron": true,
60 "rainbow_pinwheels": true,
61 "raindrops": true,
62 "solid_multisplash": true,
63 "solid_reactive": true,
64 "solid_reactive_cross": true,
65 "solid_reactive_multicross": true,
66 "solid_reactive_multinexus": true,
67 "solid_reactive_multiwide": true,
68 "solid_reactive_nexus": true,
69 "solid_reactive_simple": true,
70 "solid_reactive_wide": true,
71 "solid_splash": true,
72 "splash": true,
73 "typing_heatmap": true
74 },
75 "driver": "ws2812",
76 "layout": [
77 {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
78 {"matrix": [0, 1], "x": 75, "y": 0, "flags": 1},
79 {"matrix": [0, 2], "x": 149, "y": 0, "flags": 1},
80 {"matrix": [0, 3], "x": 224, "y": 0, "flags": 1},
81 {"x": 112, "y": 64, "flags": 1},
82 {"x": 112, "y": 64, "flags": 1},
83 {"x": 112, "y": 64, "flags": 1},
84 {"x": 112, "y": 64, "flags": 1}
85 ],
86 "max_brightness": 200,
87 "sleep": true
88 },
89 "url": "",
90 "usb": {
91 "device_version": "0.0.1",
92 "pid": "0x3F01",
93 "vid": "0xD010"
94 },
95 "ws2812": {
96 "pin": "A10"
97 },
98 "layouts": {
99 "LAYOUT": {
100 "layout": [
101 {"matrix": [3, 0], "x": 0, "y": 0},
102 {"matrix": [3, 1], "x": 1, "y": 0},
103 {"matrix": [3, 2], "x": 2, "y": 0},
104 {"matrix": [3, 3], "x": 6.5, "y": 0},
105 {"matrix": [3, 4], "x": 7.5, "y": 0},
106 {"matrix": [3, 5], "x": 8.5, "y": 0},
107 {"matrix": [0, 0], "x": 1, "y": 1.25},
108 {"matrix": [1, 0], "x": 4.25, "y": 1.25},
109 {"matrix": [2, 0], "x": 7.5, "y": 1.25},
110 {"matrix": [0, 3], "x": 0, "y": 2.25},
111 {"matrix": [0, 4], "x": 1, "y": 2.25, "encoder": 0},
112 {"matrix": [0, 1], "x": 2, "y": 2.25},
113 {"matrix": [1, 3], "x": 3.25, "y": 2.25},
114 {"matrix": [1, 4], "x": 4.25, "y": 2.25, "encoder": 1},
115 {"matrix": [1, 1], "x": 5.25, "y": 2.25},
116 {"matrix": [2, 3], "x": 6.5, "y": 2.25},
117 {"matrix": [2, 4], "x": 7.5, "y": 2.25, "encoder": 2},
118 {"matrix": [2, 1], "x": 8.5, "y": 2.25},
119 {"matrix": [0, 2], "x": 1, "y": 3.25},
120 {"matrix": [1, 2], "x": 4.25, "y": 3.25},
121 {"matrix": [2, 2], "x": 7.5, "y": 3.25}
122 ]
123 }
124 }
125} \ No newline at end of file
diff --git a/keyboards/doio/kb3x/keymaps/default/keymap.c b/keyboards/doio/kb3x/keymaps/default/keymap.c
new file mode 100644
index 0000000000..934019e8cf
--- /dev/null
+++ b/keyboards/doio/kb3x/keymaps/default/keymap.c
@@ -0,0 +1,51 @@
1/* Copyright 2022 DOIO
2 * Copyright 2022 DOIO2022 <https://github.com/DOIO2022>
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18 #include QMK_KEYBOARD_H
19
20enum layer_names {
21 _LAY0,
22 _LAY1,
23 _LAY2
24};
25
26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
27
28 [_LAY0] = LAYOUT(
29 TO(1), RGB_MOD, RGB_TOG, RGB_HUI, RGB_VAD, RGB_VAI,
30 KC_MPLY, KC_UP, KC_UP,
31 KC_MNXT, KC_TRNS, KC_MPRV, A(KC_LEFT), KC_TRNS, A(KC_RIGHT), KC_RIGHT, KC_TRNS, KC_LEFT,
32 KC_MPLY, KC_DOWN, KC_DOWN),
33 [_LAY1] = LAYOUT(
34 TO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
35 KC_WH_U, S(KC_RBRC), C(KC_L),
36 C(KC_WH_D), KC_TRNS, C(KC_WH_U), KC_DOT, KC_TRNS, KC_COMM, C(KC_B), KC_TRNS, C(KC_U),
37 KC_WH_D, S(KC_LBRC), C(KC_M)),
38 [_LAY2] = LAYOUT(
39 TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
40 KC_B, KC_UP, S(KC_I),
41 KC_P, KC_TRNS, KC_H, KC_RIGHT, KC_TRNS, KC_LEFT, KC_O, KC_TRNS, KC_I,
42 KC_Y, KC_DOWN, S(KC_O))
43};
44
45#ifdef ENCODER_MAP_ENABLE
46const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
47 [_LAY0] = { ENCODER_CCW_CW(C(KC_DOWN), C(KC_UP)), ENCODER_CCW_CW(C(KC_PMNS), C(KC_PPLS)), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
48 [_LAY1] = { ENCODER_CCW_CW(C(KC_PMNS), C(KC_PPLS)), ENCODER_CCW_CW(KC_LBRC, KC_RBRC), ENCODER_CCW_CW(C(S(KC_U)), C(KC_I)) },
49 [_LAY2] = { ENCODER_CCW_CW(KC_C, KC_V), ENCODER_CCW_CW(KC_MINS, KC_EQL), ENCODER_CCW_CW(KC_J, KC_L) }
50};
51#endif
diff --git a/keyboards/doio/kb3x/keymaps/default/rules.mk b/keyboards/doio/kb3x/keymaps/default/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/doio/kb3x/keymaps/default/rules.mk
@@ -0,0 +1 @@
ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/doio/kb3x/keymaps/via/keymap.c b/keyboards/doio/kb3x/keymaps/via/keymap.c
new file mode 100644
index 0000000000..5ebd1066a9
--- /dev/null
+++ b/keyboards/doio/kb3x/keymaps/via/keymap.c
@@ -0,0 +1,73 @@
1/* Copyright 2022 DOIO
2 * Copyright 2022 DOIO2022 <https://github.com/DOIO2022>
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18 #include QMK_KEYBOARD_H
19
20enum layer_names {
21 _LAY0,
22 _LAY1,
23 _LAY2,
24 _LAY3,
25 _LAY4,
26 _LAY5
27};
28
29const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
30
31 [_LAY0] = LAYOUT(
32 TO(1), RGB_MOD, RGB_TOG, RGB_HUI, RGB_VAD, RGB_VAI,
33 KC_MPLY, KC_UP, KC_UP,
34 KC_MNXT, KC_TRNS, KC_MPRV, A(KC_LEFT), KC_TRNS, A(KC_RIGHT), KC_RIGHT, KC_TRNS, KC_LEFT,
35 KC_MPLY, KC_DOWN, KC_DOWN),
36 [_LAY1] = LAYOUT(
37 TO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
38 KC_WH_U, S(KC_RBRC), C(KC_L),
39 C(KC_WH_D), KC_TRNS, C(KC_WH_U), KC_DOT, KC_TRNS, KC_COMM, C(KC_B), KC_TRNS, C(KC_U),
40 KC_WH_D, S(KC_LBRC), C(KC_M)),
41 [_LAY2] = LAYOUT(
42 TO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
43 KC_B, KC_UP, S(KC_I),
44 KC_P, KC_TRNS, KC_H, KC_RIGHT, KC_TRNS, KC_LEFT, KC_O, KC_TRNS, KC_I,
45 KC_Y, KC_DOWN, S(KC_O)),
46 [_LAY3] = LAYOUT(
47 TO(4), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
48 KC_TRNS, KC_TRNS, KC_TRNS,
49 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
50 KC_TRNS, KC_TRNS, KC_TRNS),
51 [_LAY4] = LAYOUT(
52 TO(5), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
53 KC_TRNS, KC_TRNS, KC_TRNS,
54 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
55 KC_TRNS, KC_TRNS, KC_TRNS),
56 [_LAY5] = LAYOUT(
57 TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
58 KC_TRNS, KC_TRNS, KC_TRNS,
59 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
60 KC_TRNS, KC_TRNS, KC_TRNS),
61
62};
63
64#ifdef ENCODER_MAP_ENABLE
65const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
66 [_LAY0] = { ENCODER_CCW_CW(C(KC_DOWN), C(KC_UP)), ENCODER_CCW_CW(C(KC_PMNS), C(KC_PPLS)), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
67 [_LAY1] = { ENCODER_CCW_CW(C(KC_PMNS), C(KC_PPLS)), ENCODER_CCW_CW(KC_LBRC, KC_RBRC), ENCODER_CCW_CW(C(S(KC_U)), C(KC_I)) },
68 [_LAY2] = { ENCODER_CCW_CW(KC_C, KC_V), ENCODER_CCW_CW(KC_MINS, KC_EQL), ENCODER_CCW_CW(KC_J, KC_L) },
69 [_LAY3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
70 [_LAY4] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
71 [_LAY5] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
72};
73#endif
diff --git a/keyboards/doio/kb3x/keymaps/via/rules.mk b/keyboards/doio/kb3x/keymaps/via/rules.mk
new file mode 100644
index 0000000000..f1adcab005
--- /dev/null
+++ b/keyboards/doio/kb3x/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
1VIA_ENABLE = yes
2ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/doio/kb3x/readme.md b/keyboards/doio/kb3x/readme.md
new file mode 100644
index 0000000000..c27c983d49
--- /dev/null
+++ b/keyboards/doio/kb3x/readme.md
@@ -0,0 +1,26 @@
1# doio/kb3x
2
3![kb3x-01](https://i.imgur.com/6DvIu9Mh.png)
4
5QMK for DOIO Knob keypad .
6
7* Keyboard Maintainer: DOIO2022
8* Hardware Supported: DOIO Knob keypad
9
10Make example for this keyboard (after setting up your build environment):
11
12 make doio/kb3x:default
13
14Flashing example for this keyboard:
15
16 make doio/kb3x:default:flash
17
18See 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).
19
20## Bootloader
21
22Enter the bootloader in 3 ways:
23
24* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
25* **Physical reset button**: Briefly press the button on the back of the PCB
26* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/doio/kb3x/rules.mk b/keyboards/doio/kb3x/rules.mk
new file mode 100644
index 0000000000..6e7633bfe0
--- /dev/null
+++ b/keyboards/doio/kb3x/rules.mk
@@ -0,0 +1 @@
# This file intentionally left blank