aboutsummaryrefslogtreecommitdiff
path: root/keyboards/gmmk
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/gmmk')
-rw-r--r--keyboards/gmmk/pro/ansi/ansi.c241
-rw-r--r--keyboards/gmmk/pro/ansi/ansi.h52
-rw-r--r--keyboards/gmmk/pro/ansi/config.h23
-rw-r--r--keyboards/gmmk/pro/ansi/info.json111
-rw-r--r--keyboards/gmmk/pro/ansi/keymaps/alexmarmon/keymap.c66
-rw-r--r--keyboards/gmmk/pro/ansi/keymaps/alexmarmon/readme.md7
-rw-r--r--keyboards/gmmk/pro/ansi/keymaps/default/keymap.c (renamed from keyboards/gmmk/pro/keymaps/default/keymap.c)0
-rw-r--r--keyboards/gmmk/pro/ansi/keymaps/jonavin/config.h (renamed from keyboards/gmmk/pro/keymaps/jonavin/config.h)0
-rw-r--r--keyboards/gmmk/pro/ansi/keymaps/jonavin/keymap.c (renamed from keyboards/gmmk/pro/keymaps/jonavin/keymap.c)0
-rw-r--r--keyboards/gmmk/pro/ansi/keymaps/jonavin/readme.md (renamed from keyboards/gmmk/pro/keymaps/jonavin/readme.md)0
-rw-r--r--keyboards/gmmk/pro/ansi/keymaps/jonavin/rgb_matrix_map.h (renamed from keyboards/gmmk/pro/keymaps/jonavin/rgb_matrix_map.h)0
-rw-r--r--keyboards/gmmk/pro/ansi/keymaps/jonavin/rules.mk (renamed from keyboards/gmmk/pro/keymaps/jonavin/rules.mk)0
-rw-r--r--keyboards/gmmk/pro/ansi/keymaps/via/keymap.c (renamed from keyboards/gmmk/pro/keymaps/via/keymap.c)0
-rw-r--r--keyboards/gmmk/pro/ansi/keymaps/via/rules.mk (renamed from keyboards/gmmk/pro/keymaps/via/rules.mk)0
-rw-r--r--keyboards/gmmk/pro/ansi/keymaps/wholesomeducky/keymap.c (renamed from keyboards/gmmk/pro/keymaps/wholesomeducky/keymap.c)0
-rw-r--r--keyboards/gmmk/pro/ansi/keymaps/willwm/keymap.c (renamed from keyboards/gmmk/pro/keymaps/willwm/keymap.c)25
-rw-r--r--keyboards/gmmk/pro/ansi/keymaps/willwm/keymap.json (renamed from keyboards/gmmk/pro/keymaps/willwm/keymap.json)0
-rw-r--r--keyboards/gmmk/pro/ansi/keymaps/willwm/readme.md (renamed from keyboards/gmmk/pro/keymaps/willwm/readme.md)0
-rw-r--r--keyboards/gmmk/pro/ansi/keymaps/willwm/rules.mk (renamed from keyboards/gmmk/pro/keymaps/willwm/rules.mk)0
-rw-r--r--keyboards/gmmk/pro/ansi/readme.md (renamed from keyboards/gmmk/pro/readme.md)8
-rw-r--r--keyboards/gmmk/pro/ansi/rules.mk (renamed from keyboards/gmmk/pro/rules.mk)2
-rw-r--r--keyboards/gmmk/pro/config.h35
-rw-r--r--keyboards/gmmk/pro/halconf.h7
-rw-r--r--keyboards/gmmk/pro/iso/config.h23
-rw-r--r--keyboards/gmmk/pro/iso/info.json (renamed from keyboards/gmmk/pro/info.json)104
-rw-r--r--keyboards/gmmk/pro/iso/iso.c243
-rw-r--r--keyboards/gmmk/pro/iso/iso.h52
-rw-r--r--keyboards/gmmk/pro/iso/keymaps/default/keymap.c (renamed from keyboards/gmmk/pro/keymaps/iso/keymap.c)4
-rw-r--r--keyboards/gmmk/pro/iso/keymaps/via/keymap.c85
-rw-r--r--keyboards/gmmk/pro/iso/keymaps/via/rules.mk1
-rw-r--r--keyboards/gmmk/pro/iso/readme.md23
-rw-r--r--keyboards/gmmk/pro/iso/rules.mk25
-rw-r--r--keyboards/gmmk/pro/mcuconf.h6
-rw-r--r--keyboards/gmmk/pro/pro.h64
34 files changed, 1017 insertions, 190 deletions
diff --git a/keyboards/gmmk/pro/ansi/ansi.c b/keyboards/gmmk/pro/ansi/ansi.c
new file mode 100644
index 000000000..1df3319fd
--- /dev/null
+++ b/keyboards/gmmk/pro/ansi/ansi.c
@@ -0,0 +1,241 @@
1/* Copyright 2021 Gigahawk
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "ansi.h"
18
19#ifdef RGB_MATRIX_ENABLE
20// clang-format off
21led_config_t g_led_config = {{
22 { 4, NO_LED, NO_LED, 95, 65, 79, 5, 28 },
23 { 8, 2, 9, 0, 10, 75, 1, 7 },
24 { 14, 3, 15, NO_LED, 16, 86, 6, 13 },
25 { 20, 18, 21, 23, 22, 94, 12, 19 },
26 { 25, 30, 26, 31, 27, 32, 29, 24 },
27 { 41, 36, 42, 37, 43, 38, 35, 40 },
28 { 46, 89, 47, 34, 48, 72, 78, 45 },
29 { 52, 39, 53, 97, 54, 82, 44, 51 },
30 { 58, 63, 59, 64, NO_LED, 60, 62, 57 },
31 { 11, 90, 55, 17, 33, 49, NO_LED, 69 },
32 { NO_LED, 85, 93, 61, 96, 66, 50, 56 }
33}, {
34 {0, 0}, // 0, ESC, k13
35 {0, 15}, // 1, ~, k16
36 {4, 26}, // 2, Tab, k11
37 {5, 38}, // 3, Caps, k21
38 {9, 49}, // 4, Sh_L, k00
39 {2, 61}, // 5, Ct_L, k06
40 {18, 0}, // 6, F1, k26
41 {14, 15}, // 7, 1, k17
42 {22, 26}, // 8, Q, k10
43 {25, 38}, // 9, A, k12
44 {33, 49}, // 10, Z, k14
45 {20, 61}, // 11, Win_L, k90
46 {33, 0}, // 12, F2, k36
47 {29, 15}, // 13, 2, k27
48 {36, 26}, // 14, W, k20
49 {40, 38}, // 15, S, k22
50 {47, 49}, // 16, X, k24
51 {38, 61}, // 17, Alt_L, k93
52 {47, 0}, // 18, F3, k31
53 {43, 15}, // 19, 3, k37
54 {51, 26}, // 20, E, k30
55 {54, 38}, // 21, D, k32
56 {61, 49}, // 22, C, k34
57 {61, 0}, // 23, F4, k33
58 {58, 15}, // 24, 4, k47
59 {65, 26}, // 25, R, k40
60 {69, 38}, // 26, F, k42
61 {76, 49}, // 27, V, k44
62 {79, 0}, // 28, F5, k07
63 {72, 15}, // 29, 5, k46
64 {79, 26}, // 30, T, k41
65 {83, 38}, // 31, G, k43
66 {90, 49}, // 32, B, k45
67 {92, 61}, // 33, SPACE, k94
68 {94, 0}, // 34, F6, k63
69 {87, 15}, // 35, 6, k56
70 {94, 26}, // 36, Y, k51
71 {98, 38}, // 37, H, k53
72 {105, 49}, // 38, N, k55
73 {108, 0}, // 39, F7, k71
74 {101, 15}, // 40, 7, k57
75 {108, 26}, // 41, U, k50
76 {112, 38}, // 42, J, k52
77 {119, 49}, // 43, M, k54
78 {123, 0}, // 44, F8, k76
79 {116, 15}, // 45, 8, k67
80 {123, 26}, // 46, I, k60
81 {126, 38}, // 47, K, k62
82 {134, 49}, // 48, ,, k64
83 {145, 61}, // 49, Alt_R, k95
84 {141, 0}, // 50, F9, ka6
85 {130, 15}, // 51, 9, k77
86 {137, 26}, // 52, O, k70
87 {141, 38}, // 53, L, k72
88 {148, 49}, // 54, ., k74
89 {159, 61}, // 55, FN, k92
90 {155, 0}, // 56, F10, ka7
91 {145, 15}, // 57, 0, k87
92 {152, 26}, // 58, P, k80
93 {155, 38}, // 59, ;, k82
94 {163, 49}, // 60, ?, k85
95 {170, 0}, // 61, F11, ka3
96 {159, 15}, // 62, -, k86
97 {166, 26}, // 63, [, k81
98 {170, 38}, // 64, ", k83
99 {173, 61}, // 65, Ct_R, k04
100 {184, 0}, // 66, F12, ka5
101 {0, 8}, // 67, LED, l01
102 {224, 8}, // 68, LED, l11
103 {202, 0}, // 69, Prt, k97
104 {0, 15}, // 70, LED, l02
105 {224, 15}, // 71, LED, l12
106 {224, 15}, // 72, Del, k65
107 {0, 21}, // 73, LED, l03
108 {224, 21}, // 74, LED, l13
109 {224, 26}, // 75, PgUp, k15
110 {0, 28}, // 76, LED, l04
111 {224, 28}, // 77, LED, l14
112 {173, 15}, // 78, =, k66
113 {220, 64}, // 79, Right, k05
114 {0, 35}, // 80, LED, l05
115 {224, 35}, // 81, LED, l15
116 {224, 49}, // 82, End, k75
117 {0, 42}, // 83, LED, l06
118 {224, 42}, // 84, LED, l16
119 {195, 15}, // 85, BSpc, ka1
120 {224, 38}, // 86, PgDn, k25
121 {0, 48}, // 87, LED, l07
122 {224, 48}, // 88, LED, l17
123 {181, 26}, // 89, ], k61
124 {182, 49}, // 90, Sh_R, k91
125 {0, 55}, // 91, LED, l08
126 {224, 55}, // 92, LED, l18
127 {199, 26}, // 93, \, ka2
128 {206, 52}, // 94, Up, k35
129 {191, 64}, // 95, Left, k03
130 {193, 38}, // 96, Enter, ka4
131 {206, 64} // 97, Down, k73
132}, {
133 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
134 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
135 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 2, 2, 4, 2, 2,
136 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4
137}};
138
139const aw_led g_aw_leds[DRIVER_LED_TOTAL] = {
140 {0, CS1_SW1, CS2_SW1, CS3_SW1}, // 0, ESC, k13
141 {0, CS4_SW1, CS5_SW1, CS6_SW1}, // 1, ~, k16
142 {0, CS7_SW1, CS8_SW1, CS9_SW1}, // 2, Tab, k11
143 {0, CS10_SW1, CS11_SW1, CS12_SW1}, // 3, Caps, k21
144 {0, CS13_SW1, CS14_SW1, CS15_SW1}, // 4, Sh_L, k00
145 {0, CS16_SW1, CS17_SW1, CS18_SW1}, // 5, Ct_L, k06
146 {0, CS1_SW2, CS2_SW2, CS3_SW2}, // 6, F1, k26
147 {0, CS4_SW2, CS5_SW2, CS6_SW2}, // 7, 1, k17
148 {0, CS7_SW2, CS8_SW2, CS9_SW2}, // 8, Q, k10
149 {0, CS10_SW2, CS11_SW2, CS12_SW2}, // 9, A, k12
150 {0, CS13_SW2, CS14_SW2, CS15_SW2}, // 10, Z, k14
151 {0, CS16_SW2, CS17_SW2, CS18_SW2}, // 11, Win_L, k90
152 {0, CS1_SW3, CS2_SW3, CS3_SW3}, // 12, F2, k36
153 {0, CS4_SW3, CS5_SW3, CS6_SW3}, // 13, 2, k27
154 {0, CS7_SW3, CS8_SW3, CS9_SW3}, // 14, W, k20
155 {0, CS10_SW3, CS11_SW3, CS12_SW3}, // 15, S, k22
156 {0, CS13_SW3, CS14_SW3, CS15_SW3}, // 16, X, k24
157 {0, CS16_SW3, CS17_SW3, CS18_SW3}, // 17, Alt_L, k93
158 {0, CS1_SW4, CS2_SW4, CS3_SW4}, // 18, F3, k31
159 {0, CS4_SW4, CS5_SW4, CS6_SW4}, // 19, 3, k37
160 {0, CS7_SW4, CS8_SW4, CS9_SW4}, // 20, E, k30
161 {0, CS10_SW4, CS11_SW4, CS12_SW4}, // 21, D, k32
162 {0, CS13_SW4, CS14_SW4, CS15_SW4}, // 22, C, k34
163 {0, CS1_SW5, CS2_SW5, CS3_SW5}, // 23, F4, k33
164 {0, CS4_SW5, CS5_SW5, CS6_SW5}, // 24, 4, k47
165 {0, CS7_SW5, CS8_SW5, CS9_SW5}, // 25, R, k40
166 {0, CS10_SW5, CS11_SW5, CS12_SW5}, // 26, F, k42
167 {0, CS13_SW5, CS14_SW5, CS15_SW5}, // 27, V, k44
168 {0, CS1_SW6, CS2_SW6, CS3_SW6}, // 28, F5, k07
169 {0, CS4_SW6, CS5_SW6, CS6_SW6}, // 29, 5, k46
170 {0, CS7_SW6, CS8_SW6, CS9_SW6}, // 30, T, k41
171 {0, CS10_SW6, CS11_SW6, CS12_SW6}, // 31, G, k43
172 {0, CS13_SW6, CS14_SW6, CS15_SW6}, // 32, B, k45
173 {0, CS16_SW6, CS17_SW6, CS18_SW6}, // 33, SPACE, k94
174 {0, CS1_SW7, CS2_SW7, CS3_SW7}, // 34, F6, k63
175 {0, CS4_SW7, CS5_SW7, CS6_SW7}, // 35, 6, k56
176 {0, CS7_SW7, CS8_SW7, CS9_SW7}, // 36, Y, k51
177 {0, CS10_SW7, CS11_SW7, CS12_SW7}, // 37, H, k53
178 {0, CS13_SW7, CS14_SW7, CS15_SW7}, // 38, N, k55
179 {0, CS1_SW8, CS2_SW8, CS3_SW8}, // 39, F7, k71
180 {0, CS4_SW8, CS5_SW8, CS6_SW8}, // 40, 7, k57
181 {0, CS7_SW8, CS8_SW8, CS9_SW8}, // 41, U, k50
182 {0, CS10_SW8, CS11_SW8, CS12_SW8}, // 42, J, k52
183 {0, CS13_SW8, CS14_SW8, CS15_SW8}, // 43, M, k54
184 {0, CS1_SW9, CS2_SW9, CS3_SW9}, // 44, F8, k76
185 {0, CS4_SW9, CS5_SW9, CS6_SW9}, // 45, 8, k67
186 {0, CS7_SW9, CS8_SW9, CS9_SW9}, // 46, I, k60
187 {0, CS10_SW9, CS11_SW9, CS12_SW9}, // 47, K, k62
188 {0, CS13_SW9, CS14_SW9, CS15_SW9}, // 48, ,, k64
189 {0, CS16_SW9, CS17_SW9, CS18_SW9}, // 49, Alt_R, k95
190 {0, CS1_SW10, CS2_SW10, CS3_SW10}, // 50, F9, ka6
191 {0, CS4_SW10, CS5_SW10, CS6_SW10}, // 51, 9, k77
192 {0, CS7_SW10, CS8_SW10, CS9_SW10}, // 52, O, k70
193 {0, CS10_SW10, CS11_SW10, CS12_SW10}, // 53, L, k72
194 {0, CS13_SW10, CS14_SW10, CS15_SW10}, // 54, ., k74
195 {0, CS16_SW10, CS17_SW10, CS18_SW10}, // 55, FN, k92
196 {0, CS1_SW11, CS2_SW11, CS3_SW11}, // 56, F10, ka7
197 {0, CS4_SW11, CS5_SW11, CS6_SW11}, // 57, 0, k87
198 {0, CS7_SW11, CS8_SW11, CS9_SW11}, // 58, P, k80
199 {0, CS10_SW11, CS11_SW11, CS12_SW11}, // 59, ;, k82
200 {0, CS13_SW11, CS14_SW11, CS15_SW11}, // 60, ?, k85
201 {0, CS1_SW12, CS2_SW12, CS3_SW12}, // 61, F11, ka3
202 {0, CS4_SW12, CS5_SW12, CS6_SW12}, // 62, -, k86
203 {0, CS7_SW12, CS8_SW12, CS9_SW12}, // 63, [, k81
204 {0, CS10_SW12, CS11_SW12, CS12_SW12}, // 64, ", k83
205 {0, CS16_SW12, CS17_SW12, CS18_SW12}, // 65, Ct_R, k04
206
207 {1, CS1_SW1, CS2_SW1, CS3_SW1}, // 66, F12, ka5
208 {1, CS13_SW1, CS14_SW1, CS15_SW1}, // 67, LED, l01
209 {1, CS16_SW1, CS17_SW1, CS18_SW1}, // 68, LED, l11
210 {1, CS4_SW2, CS5_SW2, CS6_SW2}, // 69, Prt, k97
211 {1, CS13_SW2, CS14_SW2, CS15_SW2}, // 70, LED, l02
212 {1, CS16_SW2, CS17_SW2, CS18_SW2}, // 71, LED, l12
213 {1, CS4_SW3, CS5_SW3, CS6_SW3}, // 72, Del, k65
214 {1, CS13_SW3, CS14_SW3, CS15_SW3}, // 73, LED, l03
215 {1, CS16_SW3, CS17_SW3, CS18_SW3}, // 74, LED, l13
216 {1, CS4_SW4, CS5_SW4, CS6_SW4}, // 75, PgUp, k15
217 {1, CS13_SW4, CS14_SW4, CS15_SW4}, // 76, LED, l04
218 {1, CS16_SW4, CS17_SW4, CS18_SW4}, // 77, LED, l14
219 {1, CS1_SW5, CS2_SW5, CS3_SW5}, // 78, =, k66
220 {1, CS10_SW5, CS11_SW5, CS12_SW5}, // 79, Right, k05
221 {1, CS13_SW5, CS14_SW5, CS15_SW5}, // 80, LED, l05
222 {1, CS16_SW5, CS17_SW5, CS18_SW5}, // 81, LED, l15
223 {1, CS4_SW6, CS5_SW6, CS6_SW6}, // 82, End, k75
224 {1, CS13_SW6, CS14_SW6, CS15_SW6}, // 83, LED, l06
225 {1, CS16_SW6, CS17_SW6, CS18_SW6}, // 84, LED, l16
226 {1, CS1_SW7, CS2_SW7, CS3_SW7}, // 85, BSpc, ka1
227 {1, CS4_SW7, CS5_SW7, CS6_SW7}, // 86, PgDn, k25
228 {1, CS13_SW7, CS14_SW7, CS15_SW7}, // 87, LED, l07
229 {1, CS16_SW7, CS17_SW7, CS18_SW7}, // 88, LED, l17
230 {1, CS1_SW8, CS2_SW8, CS3_SW8}, // 89, ], k61
231 {1, CS4_SW8, CS5_SW8, CS6_SW8}, // 90, Sh_R, k91
232 {1, CS13_SW8, CS14_SW8, CS15_SW8}, // 91, LED, l08
233 {1, CS16_SW8, CS17_SW8, CS18_SW8}, // 92, LED, l18
234 {1, CS1_SW9, CS2_SW9, CS3_SW9}, // 93, \, ka2
235 {1, CS4_SW9, CS5_SW9, CS6_SW9}, // 94, Up, k35
236 {1, CS4_SW10, CS5_SW10, CS6_SW10}, // 95, Left, k03
237 {1, CS1_SW11, CS2_SW11, CS3_SW11}, // 96, Enter, ka4
238 {1, CS4_SW11, CS5_SW11, CS6_SW11}, // 97, Down, k73
239};
240// clang-format on
241#endif
diff --git a/keyboards/gmmk/pro/ansi/ansi.h b/keyboards/gmmk/pro/ansi/ansi.h
new file mode 100644
index 000000000..ab08d6659
--- /dev/null
+++ b/keyboards/gmmk/pro/ansi/ansi.h
@@ -0,0 +1,52 @@
1/* Copyright 2021 Gigahawk
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "pro.h"
20
21#define ___ KC_NO
22
23// ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Prt Rotary(Mute)
24// ` 1 2 3 4 5 6 7 8 9 0 - = BSpc Del
25// Tab Q W E R T Y U I O P [ ] \ PgUp
26// Caps A S D F G H J K L ; ' Enter PgDn
27// Sh_L Z X C V B N M , . / Sh_R Up End
28// Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right
29
30// clang-format off
31#define LAYOUT( \
32 k13, k26, k36, k31, k33, k07, k63, k71, k76, ka6, ka7, ka3, ka5, k97, k01, \
33 k16, k17, k27, k37, k47, k46, k56, k57, k67, k77, k87, k86, k66, ka1, k65, \
34 k11, k10, k20, k30, k40, k41, k51, k50, k60, k70, k80, k81, k61, ka2, k15, \
35 k21, k12, k22, k32, k42, k43, k53, k52, k62, k72, k82, k83, ka4, k25, \
36 k00, k14, k24, k34, k44, k45, k55, k54, k64, k74, k85, k91, k35, k75, \
37 k06, k90, k93, k94, k95, k92, k04, k03, k73, k05 \
38) \
39{ \
40 { k00, k01, ___, k03, k04, k05, k06, k07}, \
41 { k10, k11, k12, k13, k14, k15, k16, k17}, \
42 { k20, k21, k22, ___, k24, k25, k26, k27}, \
43 { k30, k31, k32, k33, k34, k35, k36, k37}, \
44 { k40, k41, k42, k43, k44, k45, k46, k47}, \
45 { k50, k51, k52, k53, k54, k55, k56, k57}, \
46 { k60, k61, k62, k63, k64, k65, k66, k67}, \
47 { k70, k71, k72, k73, k74, k75, k76, k77}, \
48 { k80, k81, k82, k83, ___, k85, k86, k87}, \
49 { k90, k91, k92, k93, k94, k95, ___, k97}, \
50 { ___, ka1, ka2, ka3, ka4, ka5, ka6, ka7} \
51}
52// clang-format on
diff --git a/keyboards/gmmk/pro/ansi/config.h b/keyboards/gmmk/pro/ansi/config.h
new file mode 100644
index 000000000..7c68375b2
--- /dev/null
+++ b/keyboards/gmmk/pro/ansi/config.h
@@ -0,0 +1,23 @@
1/* Copyright 2021 Gigahawk
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "config_common.h"
20
21#define DRIVER_1_LED_TOTAL 66
22#define DRIVER_2_LED_TOTAL 32
23#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/gmmk/pro/ansi/info.json b/keyboards/gmmk/pro/ansi/info.json
new file mode 100644
index 000000000..d3b326a7b
--- /dev/null
+++ b/keyboards/gmmk/pro/ansi/info.json
@@ -0,0 +1,111 @@
1{
2 "keyboard_name": "GMMK Pro (ANSI)",
3 "url": "https://www.pcgamingrace.com/products/glorious-gmmk-pro-75-barebone-black-reservation",
4 "maintainer": "GloriousThrall",
5 "width": 16.5,
6 "height": 6.5,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [
10 {"x":0, "y":0},
11
12 {"x":1.25, "y":0},
13 {"x":2.25, "y":0},
14 {"x":3.25, "y":0},
15 {"x":4.25, "y":0},
16
17 {"x":5.5, "y":0},
18 {"x":6.5, "y":0},
19 {"x":7.5, "y":0},
20 {"x":8.5, "y":0},
21
22 {"x":9.75, "y":0},
23 {"x":10.75, "y":0},
24 {"x":11.75, "y":0},
25 {"x":12.75, "y":0},
26
27 {"x":14, "y":0},
28 {"x":15.5, "y":0},
29
30 {"x":0, "y":1.25},
31 {"x":1, "y":1.25},
32 {"x":2, "y":1.25},
33 {"x":3, "y":1.25},
34 {"x":4, "y":1.25},
35 {"x":5, "y":1.25},
36 {"x":6, "y":1.25},
37 {"x":7, "y":1.25},
38 {"x":8, "y":1.25},
39 {"x":9, "y":1.25},
40 {"x":10, "y":1.25},
41 {"x":11, "y":1.25},
42 {"x":12, "y":1.25},
43 {"x":13, "y":1.25, "w":2},
44
45 {"x":15.5, "y":1.25},
46
47 {"x":0, "y":2.25, "w":1.5},
48 {"x":1.5, "y":2.25},
49 {"x":2.5, "y":2.25},
50 {"x":3.5, "y":2.25},
51 {"x":4.5, "y":2.25},
52 {"x":5.5, "y":2.25},
53 {"x":6.5, "y":2.25},
54 {"x":7.5, "y":2.25},
55 {"x":8.5, "y":2.25},
56 {"x":9.5, "y":2.25},
57 {"x":10.5, "y":2.25},
58 {"x":11.5, "y":2.25},
59 {"x":12.5, "y":2.25},
60 {"x":13.5, "y":2.25, "w":1.5},
61
62 {"x":15.5, "y":2.25},
63
64 {"x":0, "y":3.25, "w":1.75},
65 {"x":1.75, "y":3.25},
66 {"x":2.75, "y":3.25},
67 {"x":3.75, "y":3.25},
68 {"x":4.75, "y":3.25},
69 {"x":5.75, "y":3.25},
70 {"x":6.75, "y":3.25},
71 {"x":7.75, "y":3.25},
72 {"x":8.75, "y":3.25},
73 {"x":9.75, "y":3.25},
74 {"x":10.75, "y":3.25},
75 {"x":11.75, "y":3.25},
76 {"x":12.75, "y":3.25, "w":2.25},
77
78 {"x":15.5, "y":3.25},
79
80 {"x":0, "y":4.25, "w":2.25},
81 {"x":2.25, "y":4.25},
82 {"x":3.25, "y":4.25},
83 {"x":4.25, "y":4.25},
84 {"x":5.25, "y":4.25},
85 {"x":6.25, "y":4.25},
86 {"x":7.25, "y":4.25},
87 {"x":8.25, "y":4.25},
88 {"x":9.25, "y":4.25},
89 {"x":10.25, "y":4.25},
90 {"x":11.25, "y":4.25},
91 {"x":12.25, "y":4.25, "w":1.75},
92
93 {"x":14.25, "y":4.5},
94
95 {"x":15.5, "y":4.25},
96
97 {"x":0, "y":5.25, "w":1.25},
98 {"x":1.25, "y":5.25, "w":1.25},
99 {"x":2.5, "y":5.25, "w":1.25},
100 {"x":3.75, "y":5.25, "w":6.25},
101 {"x":10, "y":5.25},
102 {"x":11, "y":5.25},
103 {"x":12, "y":5.25},
104
105 {"x":13.25, "y":5.5},
106 {"x":14.25, "y":5.5},
107 {"x":15.25, "y":5.5}
108 ]
109 }
110 }
111}
diff --git a/keyboards/gmmk/pro/ansi/keymaps/alexmarmon/keymap.c b/keyboards/gmmk/pro/ansi/keymaps/alexmarmon/keymap.c
new file mode 100644
index 000000000..99504de95
--- /dev/null
+++ b/keyboards/gmmk/pro/ansi/keymaps/alexmarmon/keymap.c
@@ -0,0 +1,66 @@
1/* Copyright 2021 Glorious, LLC <salman@pcgamingrace.com>
2 Copyright 2021 alexmarmon
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#include QMK_KEYBOARD_H
19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21
22// ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Prt Rotary(Mute)
23// ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc Del
24// Tab Q W E R T Y U I O P [ ] \ PgUp
25// Caps A S D F G H J K L ; " Enter PgDn
26// Sh_L Z X C V B N M , . ? Sh_R Up End
27// Ct_L Alt_L Win_L SPACE Ct_R Alt_R FN Left Down Right
28
29
30 // The FN key by default maps to a momentary toggle to layer 1 to provide access to the RESET key (to put the board into bootloader mode). Without
31 // this mapping, you have to open the case to hit the button on the bottom of the PCB (near the USB cable attachment) while plugging in the USB
32 // cable to get the board into bootloader mode - definitely not fun when you're working on your QMK builds. Remove this and put it back to KC_RGUI
33 // if that's your preference.
34 //
35 // To put the keyboard in bootloader mode, use FN+backslash. If you accidentally put it into bootloader, you can just unplug the USB cable and
36 // it'll be back to normal when you plug it back in.
37 [0] = LAYOUT(
38 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_MUTE,
39 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_DEL,
40 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_PGUP,
41 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_PGDN,
42 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_END,
43 KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RCTL, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
44 ),
45
46 [1] = LAYOUT(
47 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
48 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
49 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, RGB_MODE_FORWARD,
50 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MODE_REVERSE,
51 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG,
52 _______, _______, _______, _______, _______, _______, _______, KC_MEDIA_PREV_TRACK, _______, KC_MEDIA_NEXT_TRACK
53 ),
54
55
56};
57
58
59bool encoder_update_user(uint8_t index, bool clockwise) {
60 if (clockwise) {
61 tap_code(KC_VOLU);
62 } else {
63 tap_code(KC_VOLD);
64 }
65 return true;
66}
diff --git a/keyboards/gmmk/pro/ansi/keymaps/alexmarmon/readme.md b/keyboards/gmmk/pro/ansi/keymaps/alexmarmon/readme.md
new file mode 100644
index 000000000..36ad42b1a
--- /dev/null
+++ b/keyboards/gmmk/pro/ansi/keymaps/alexmarmon/readme.md
@@ -0,0 +1,7 @@
1![Layout Image](https://i.imgur.com/MizMvsI.jpg)
2
3# Simple MacOS like keymap with RGB
4
5* Working basic RGB thanks to https://github.com/qmk/qmk_firmware/pull/13430
6* Restore working rotary knob volume control
7* Add media_previous and media_next to FN+left and FN+right \ No newline at end of file
diff --git a/keyboards/gmmk/pro/keymaps/default/keymap.c b/keyboards/gmmk/pro/ansi/keymaps/default/keymap.c
index b08400cd8..b08400cd8 100644
--- a/keyboards/gmmk/pro/keymaps/default/keymap.c
+++ b/keyboards/gmmk/pro/ansi/keymaps/default/keymap.c
diff --git a/keyboards/gmmk/pro/keymaps/jonavin/config.h b/keyboards/gmmk/pro/ansi/keymaps/jonavin/config.h
index b77cb05f5..b77cb05f5 100644
--- a/keyboards/gmmk/pro/keymaps/jonavin/config.h
+++ b/keyboards/gmmk/pro/ansi/keymaps/jonavin/config.h
diff --git a/keyboards/gmmk/pro/keymaps/jonavin/keymap.c b/keyboards/gmmk/pro/ansi/keymaps/jonavin/keymap.c
index 8b3744957..8b3744957 100644
--- a/keyboards/gmmk/pro/keymaps/jonavin/keymap.c
+++ b/keyboards/gmmk/pro/ansi/keymaps/jonavin/keymap.c
diff --git a/keyboards/gmmk/pro/keymaps/jonavin/readme.md b/keyboards/gmmk/pro/ansi/keymaps/jonavin/readme.md
index f4f3401ab..f4f3401ab 100644
--- a/keyboards/gmmk/pro/keymaps/jonavin/readme.md
+++ b/keyboards/gmmk/pro/ansi/keymaps/jonavin/readme.md
diff --git a/keyboards/gmmk/pro/keymaps/jonavin/rgb_matrix_map.h b/keyboards/gmmk/pro/ansi/keymaps/jonavin/rgb_matrix_map.h
index 1ee538890..1ee538890 100644
--- a/keyboards/gmmk/pro/keymaps/jonavin/rgb_matrix_map.h
+++ b/keyboards/gmmk/pro/ansi/keymaps/jonavin/rgb_matrix_map.h
diff --git a/keyboards/gmmk/pro/keymaps/jonavin/rules.mk b/keyboards/gmmk/pro/ansi/keymaps/jonavin/rules.mk
index f4f3d4939..f4f3d4939 100644
--- a/keyboards/gmmk/pro/keymaps/jonavin/rules.mk
+++ b/keyboards/gmmk/pro/ansi/keymaps/jonavin/rules.mk
diff --git a/keyboards/gmmk/pro/keymaps/via/keymap.c b/keyboards/gmmk/pro/ansi/keymaps/via/keymap.c
index 940cc1c1f..940cc1c1f 100644
--- a/keyboards/gmmk/pro/keymaps/via/keymap.c
+++ b/keyboards/gmmk/pro/ansi/keymaps/via/keymap.c
diff --git a/keyboards/gmmk/pro/keymaps/via/rules.mk b/keyboards/gmmk/pro/ansi/keymaps/via/rules.mk
index 1e5b99807..1e5b99807 100644
--- a/keyboards/gmmk/pro/keymaps/via/rules.mk
+++ b/keyboards/gmmk/pro/ansi/keymaps/via/rules.mk
diff --git a/keyboards/gmmk/pro/keymaps/wholesomeducky/keymap.c b/keyboards/gmmk/pro/ansi/keymaps/wholesomeducky/keymap.c
index fded53256..fded53256 100644
--- a/keyboards/gmmk/pro/keymaps/wholesomeducky/keymap.c
+++ b/keyboards/gmmk/pro/ansi/keymaps/wholesomeducky/keymap.c
diff --git a/keyboards/gmmk/pro/keymaps/willwm/keymap.c b/keyboards/gmmk/pro/ansi/keymaps/willwm/keymap.c
index a17f79331..a32fef104 100644
--- a/keyboards/gmmk/pro/keymaps/willwm/keymap.c
+++ b/keyboards/gmmk/pro/ansi/keymaps/willwm/keymap.c
@@ -16,16 +16,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
16 16
17#include QMK_KEYBOARD_H 17#include QMK_KEYBOARD_H
18 18
19// clang-format off
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 21
21// ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Del Rotary(Mute) 22 // ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Del Rotary(Mute)
22// ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc Home 23 // ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc Home
23// Tab Q W E R T Y U I O P [ ] \ PgUp 24 // Tab Q W E R T Y U I O P [ ] \ PgUp
24// Caps A S D F G H J K L ; " Enter PgDn 25 // Caps A S D F G H J K L ; " Enter PgDn
25// Sh_L Z X C V B N M , . ? Sh_R Up End 26 // Sh_L Z X C V B N M , . ? Sh_R Up End
26// Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right 27 // Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right
27
28
29 [0] = LAYOUT( 28 [0] = LAYOUT(
30 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_DEL, KC_MUTE, 29 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_DEL, KC_MUTE,
31 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_HOME, 30 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_HOME,
@@ -61,14 +60,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
61 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 60 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
62 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 61 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
63 ), 62 ),
64
65}; 63};
64// clang-format on
66 65
67 66bool encoder_update_user(uint8_t index, bool clockwise) {
68void encoder_update_user(uint8_t index, bool clockwise) {
69 if (clockwise) { 67 if (clockwise) {
70 tap_code(KC_VOLU); 68 tap_code(KC_VOLU);
71 } else { 69 } else {
72 tap_code(KC_VOLD); 70 tap_code(KC_VOLD);
73 } 71 }
72 return true;
74} 73}
diff --git a/keyboards/gmmk/pro/keymaps/willwm/keymap.json b/keyboards/gmmk/pro/ansi/keymaps/willwm/keymap.json
index d2325d2c1..d2325d2c1 100644
--- a/keyboards/gmmk/pro/keymaps/willwm/keymap.json
+++ b/keyboards/gmmk/pro/ansi/keymaps/willwm/keymap.json
diff --git a/keyboards/gmmk/pro/keymaps/willwm/readme.md b/keyboards/gmmk/pro/ansi/keymaps/willwm/readme.md
index 1c169faac..1c169faac 100644
--- a/keyboards/gmmk/pro/keymaps/willwm/readme.md
+++ b/keyboards/gmmk/pro/ansi/keymaps/willwm/readme.md
diff --git a/keyboards/gmmk/pro/keymaps/willwm/rules.mk b/keyboards/gmmk/pro/ansi/keymaps/willwm/rules.mk
index 511b50e19..511b50e19 100644
--- a/keyboards/gmmk/pro/keymaps/willwm/rules.mk
+++ b/keyboards/gmmk/pro/ansi/keymaps/willwm/rules.mk
diff --git a/keyboards/gmmk/pro/readme.md b/keyboards/gmmk/pro/ansi/readme.md
index e291179c9..9800aef88 100644
--- a/keyboards/gmmk/pro/readme.md
+++ b/keyboards/gmmk/pro/ansi/readme.md
@@ -1,6 +1,6 @@
1# GMMK PRO 1# GMMK PRO (ANSI)
2 2
3A tenkeyless 75% keyboard made and sold by Glorious LLC. Equipped with the STM32 ARM Cortex-M4 microcontroller, with support for rotary encoders and three additional layouts. [More info at Glorious](https://www.pcgamingrace.com/products/glorious-gmmk-pro-75-barebone-black-reservation) 3A tenkeyless 75% keyboard made and sold by Glorious LLC. Equipped with the STM32 ARM Cortex-M4 microcontroller, with support for rotary encoders and three additional layouts. [More info at Glorious](https://www.pcgamingrace.com/products/glorious-gmmk-pro-75-barebone-black-reservation)
4 4
5* Keyboard Maintainer: [GloriousThrall](https://github.com/GloriousThrall) 5* Keyboard Maintainer: [GloriousThrall](https://github.com/GloriousThrall)
6* Hardware Supported: GMMK Pro 6* Hardware Supported: GMMK Pro
@@ -8,11 +8,11 @@ A tenkeyless 75% keyboard made and sold by Glorious LLC. Equipped with the STM3
8 8
9Make example for this keyboard (after setting up your build environment): 9Make example for this keyboard (after setting up your build environment):
10 10
11 make gmmk/pro:default 11 make gmmk/pro/ansi:default
12 12
13Flashing example for this keyboard: 13Flashing example for this keyboard:
14 14
15 make gmmk/pro:default:flash 15 make gmmk/pro/ansi:default:flash
16 16
17To reset the board into bootloader mode, do one of the following: 17To reset the board into bootloader mode, do one of the following:
18 18
diff --git a/keyboards/gmmk/pro/rules.mk b/keyboards/gmmk/pro/ansi/rules.mk
index b12d055a3..6221d6408 100644
--- a/keyboards/gmmk/pro/rules.mk
+++ b/keyboards/gmmk/pro/ansi/rules.mk
@@ -21,3 +21,5 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
21BLUETOOTH_ENABLE = no # Enable Bluetooth 21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_ENABLE = no # Audio output 22AUDIO_ENABLE = no # Audio output
23ENCODER_ENABLE = yes 23ENCODER_ENABLE = yes
24RGB_MATRIX_ENABLE = yes
25RGB_MATRIX_DRIVER = AW20216
diff --git a/keyboards/gmmk/pro/config.h b/keyboards/gmmk/pro/config.h
index 7f3977c10..1934ab780 100644
--- a/keyboards/gmmk/pro/config.h
+++ b/keyboards/gmmk/pro/config.h
@@ -19,18 +19,20 @@
19#include "config_common.h" 19#include "config_common.h"
20 20
21/* USB Device descriptor parameter */ 21/* USB Device descriptor parameter */
22#define DEVICE_VER 0x0001 22#define DEVICE_VER 0x0001
23#define VENDOR_ID 0x320F 23#define VENDOR_ID 0x320F
24#define PRODUCT_ID 0x5044 24#define PRODUCT_ID 0x5044
25#define MANUFACTURER Glorious 25#define MANUFACTURER Glorious
26#define PRODUCT GMMK Pro 26#define PRODUCT GMMK Pro
27 27
28/* key matrix size */ 28/* key matrix size */
29#define MATRIX_ROWS 11 29#define MATRIX_ROWS 11
30#define MATRIX_COLS 8 30#define MATRIX_COLS 8
31 31
32#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10 } 32#define MATRIX_ROW_PINS \
33#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A8, A9, A10 } 33 { B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10 }
34#define MATRIX_COL_PINS \
35 { A0, A1, A2, A3, A4, A8, A9, A10 }
34 36
35/* COL2ROW or ROW2COL */ 37/* COL2ROW or ROW2COL */
36#define DIODE_DIRECTION COL2ROW 38#define DIODE_DIRECTION COL2ROW
@@ -39,14 +41,29 @@
39#define BOOTMAGIC_LITE_COLUMN 3 41#define BOOTMAGIC_LITE_COLUMN 3
40 42
41#define TAP_CODE_DELAY 10 43#define TAP_CODE_DELAY 10
42#define ENCODERS_PAD_A { C15 } 44#define ENCODERS_PAD_A \
43#define ENCODERS_PAD_B { C14 } 45 { C15 }
46#define ENCODERS_PAD_B \
47 { C14 }
44 48
45/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ 49/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
46#define LOCKING_SUPPORT_ENABLE 50#define LOCKING_SUPPORT_ENABLE
47/* Locking resynchronize hack */ 51/* Locking resynchronize hack */
48#define LOCKING_RESYNC_ENABLE 52#define LOCKING_RESYNC_ENABLE
49 53
54/* SPI Config for LED Driver */
55#define SPI_DRIVER SPID1
56#define SPI_SCK_PIN A5
57#define SPI_MOSI_PIN A6
58#define SPI_MISO_PIN A7
59
60#define DRIVER_1_CS B13
61#define DRIVER_2_CS B14
62#define DRIVER_1_EN C13
63#define DRIVER_2_EN C13
64
65#define DRIVER_COUNT 2
66
50/* 1000Hz USB polling - it's the default on stock firmware */ 67/* 1000Hz USB polling - it's the default on stock firmware */
51#define USB_POLLING_INTERVAL_MS 1 68#define USB_POLLING_INTERVAL_MS 1
52 69
diff --git a/keyboards/gmmk/pro/halconf.h b/keyboards/gmmk/pro/halconf.h
new file mode 100644
index 000000000..23ecb202a
--- /dev/null
+++ b/keyboards/gmmk/pro/halconf.h
@@ -0,0 +1,7 @@
1#pragma once
2
3#define HAL_USE_SPI TRUE
4#define SPI_USE_WAIT TRUE
5#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
6
7#include_next <halconf.h>
diff --git a/keyboards/gmmk/pro/iso/config.h b/keyboards/gmmk/pro/iso/config.h
new file mode 100644
index 000000000..26626ccfc
--- /dev/null
+++ b/keyboards/gmmk/pro/iso/config.h
@@ -0,0 +1,23 @@
1/* Copyright 2021 Jasper Chan
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "config_common.h"
20
21#define DRIVER_1_LED_TOTAL 66
22#define DRIVER_2_LED_TOTAL 33
23#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/gmmk/pro/info.json b/keyboards/gmmk/pro/iso/info.json
index 427e562e3..2d4a22c9a 100644
--- a/keyboards/gmmk/pro/info.json
+++ b/keyboards/gmmk/pro/iso/info.json
@@ -1,5 +1,5 @@
1{ 1{
2 "keyboard_name": "GMMK Pro", 2 "keyboard_name": "GMMK Pro (ISO)",
3 "url": "https://www.pcgamingrace.com/products/glorious-gmmk-pro-75-barebone-black-reservation", 3 "url": "https://www.pcgamingrace.com/products/glorious-gmmk-pro-75-barebone-black-reservation",
4 "maintainer": "GloriousThrall", 4 "maintainer": "GloriousThrall",
5 "width": 16.5, 5 "width": 16.5,
@@ -7,108 +7,6 @@
7 "layouts": { 7 "layouts": {
8 "LAYOUT": { 8 "LAYOUT": {
9 "layout": [ 9 "layout": [
10 {"x":0, "y":0},
11
12 {"x":1.25, "y":0},
13 {"x":2.25, "y":0},
14 {"x":3.25, "y":0},
15 {"x":4.25, "y":0},
16
17 {"x":5.5, "y":0},
18 {"x":6.5, "y":0},
19 {"x":7.5, "y":0},
20 {"x":8.5, "y":0},
21
22 {"x":9.75, "y":0},
23 {"x":10.75, "y":0},
24 {"x":11.75, "y":0},
25 {"x":12.75, "y":0},
26
27 {"x":14, "y":0},
28 {"x":15.5, "y":0},
29
30 {"x":0, "y":1.25},
31 {"x":1, "y":1.25},
32 {"x":2, "y":1.25},
33 {"x":3, "y":1.25},
34 {"x":4, "y":1.25},
35 {"x":5, "y":1.25},
36 {"x":6, "y":1.25},
37 {"x":7, "y":1.25},
38 {"x":8, "y":1.25},
39 {"x":9, "y":1.25},
40 {"x":10, "y":1.25},
41 {"x":11, "y":1.25},
42 {"x":12, "y":1.25},
43 {"x":13, "y":1.25, "w":2},
44
45 {"x":15.5, "y":1.25},
46
47 {"x":0, "y":2.25, "w":1.5},
48 {"x":1.5, "y":2.25},
49 {"x":2.5, "y":2.25},
50 {"x":3.5, "y":2.25},
51 {"x":4.5, "y":2.25},
52 {"x":5.5, "y":2.25},
53 {"x":6.5, "y":2.25},
54 {"x":7.5, "y":2.25},
55 {"x":8.5, "y":2.25},
56 {"x":9.5, "y":2.25},
57 {"x":10.5, "y":2.25},
58 {"x":11.5, "y":2.25},
59 {"x":12.5, "y":2.25},
60 {"x":13.5, "y":2.25, "w":1.5},
61
62 {"x":15.5, "y":2.25},
63
64 {"x":0, "y":3.25, "w":1.75},
65 {"x":1.75, "y":3.25},
66 {"x":2.75, "y":3.25},
67 {"x":3.75, "y":3.25},
68 {"x":4.75, "y":3.25},
69 {"x":5.75, "y":3.25},
70 {"x":6.75, "y":3.25},
71 {"x":7.75, "y":3.25},
72 {"x":8.75, "y":3.25},
73 {"x":9.75, "y":3.25},
74 {"x":10.75, "y":3.25},
75 {"x":11.75, "y":3.25},
76 {"x":12.75, "y":3.25, "w":2.25},
77
78 {"x":15.5, "y":3.25},
79
80 {"x":0, "y":4.25, "w":2.25},
81 {"x":2.25, "y":4.25},
82 {"x":3.25, "y":4.25},
83 {"x":4.25, "y":4.25},
84 {"x":5.25, "y":4.25},
85 {"x":6.25, "y":4.25},
86 {"x":7.25, "y":4.25},
87 {"x":8.25, "y":4.25},
88 {"x":9.25, "y":4.25},
89 {"x":10.25, "y":4.25},
90 {"x":11.25, "y":4.25},
91 {"x":12.25, "y":4.25, "w":1.75},
92
93 {"x":14.25, "y":4.5},
94
95 {"x":15.5, "y":4.25},
96
97 {"x":0, "y":5.25, "w":1.25},
98 {"x":1.25, "y":5.25, "w":1.25},
99 {"x":2.5, "y":5.25, "w":1.25},
100 {"x":3.75, "y":5.25, "w":6.25},
101 {"x":10, "y":5.25},
102 {"x":11, "y":5.25},
103 {"x":12, "y":5.25},
104
105 {"x":13.25, "y":5.5},
106 {"x":14.25, "y":5.5},
107 {"x":15.25, "y":5.5}
108 ]
109 },
110 "LAYOUT_iso": {
111 "layout": [
112 {"label":"Esc", "x":0, "y":0}, 10 {"label":"Esc", "x":0, "y":0},
113 11
114 {"label":"F1", "x":1.25, "y":0}, 12 {"label":"F1", "x":1.25, "y":0},
diff --git a/keyboards/gmmk/pro/iso/iso.c b/keyboards/gmmk/pro/iso/iso.c
new file mode 100644
index 000000000..fa57f1ca9
--- /dev/null
+++ b/keyboards/gmmk/pro/iso/iso.c
@@ -0,0 +1,243 @@
1/* Copyright 2021 Gigahawk
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "iso.h"
18
19#ifdef RGB_MATRIX_ENABLE
20// clang-format off
21led_config_t g_led_config = {{
22 { 4, NO_LED, NO_LED, 96, 65, 80, 5, 28 },
23 { 8, 2, 9, 0, 10, 76, 1, 7 },
24 { 14, 3, 15, 67, 16, 87, 6, 13 },
25 { 20, 18, 21, 23, 22, 94, 12, 19 },
26 { 25, 30, 26, 31, 27, 32, 29, 24 },
27 { 41, 36, 42, 37, 43, 38, 35, 40 },
28 { 46, 90, 47, 34, 48, 73, 79, 45 },
29 { 52, 39, 53, 98, 54, 83, 44, 51 },
30 { 58, 63, 59, 64, 95, 60, 62, 57 },
31 { 11, 91, 55, 17, 33, 49, NO_LED, 70 },
32 { NO_LED, 86, NO_LED, 61, 97, 66, 50, 56 }
33}, {
34 {0, 0}, // 0, ESC, k13
35 {0, 15}, // 1, `, k16
36 {4, 26}, // 2, Tab, k11
37 {5, 38}, // 3, Caps, k21
38 {2, 49}, // 4, Sh_L, k00
39 {2, 61}, // 5, Ct_L, k06
40 {18, 0}, // 6, F1, k26
41 {14, 15}, // 7, 1, k17
42 {22, 26}, // 8, Q, k10
43 {25, 38}, // 9, A, k12
44 {33, 49}, // 10, Z, k14
45 {20, 61}, // 11, Win_L, k90
46 {33, 0}, // 12, F2, k36
47 {29, 15}, // 13, 2, k27
48 {36, 26}, // 14, W, k20
49 {40, 38}, // 15, S, k22
50 {47, 49}, // 16, X, k24
51 {38, 61}, // 17, Alt_L, k93
52 {47, 0}, // 18, F3, k31
53 {43, 15}, // 19, 3, k37
54 {51, 26}, // 20, E, k30
55 {54, 38}, // 21, D, k32
56 {61, 49}, // 22, C, k34
57 {61, 0}, // 23, F4, k33
58 {58, 15}, // 24, 4, k47
59 {65, 26}, // 25, R, k40
60 {69, 38}, // 26, F, k42
61 {76, 49}, // 27, V, k44
62 {79, 0}, // 28, F5, k07
63 {72, 15}, // 29, 5, k46
64 {79, 26}, // 30, T, k41
65 {83, 38}, // 31, G, k43
66 {90, 49}, // 32, B, k45
67 {92, 61}, // 33, SPACE, k94
68 {94, 0}, // 34, F6, k63
69 {87, 15}, // 35, 6, k56
70 {94, 26}, // 36, Y, k51
71 {98, 38}, // 37, H, k53
72 {105, 49}, // 38, N, k55
73 {108, 0}, // 39, F7, k71
74 {101, 15}, // 40, 7, k57
75 {108, 26}, // 41, U, k50
76 {112, 38}, // 42, J, k52
77 {119, 49}, // 43, M, k54
78 {123, 0}, // 44, F8, k76
79 {116, 15}, // 45, 8, k67
80 {123, 26}, // 46, I, k60
81 {126, 38}, // 47, K, k62
82 {134, 49}, // 48, ,, k64
83 {145, 61}, // 49, Alt_R, k95
84 {141, 0}, // 50, F9, ka6
85 {130, 15}, // 51, 9, k77
86 {137, 26}, // 52, O, k70
87 {141, 38}, // 53, L, k72
88 {148, 49}, // 54, ., k74
89 {159, 61}, // 55, FN, k92
90 {155, 0}, // 56, F10, ka7
91 {145, 15}, // 57, 0, k87
92 {152, 26}, // 58, P, k80
93 {155, 38}, // 59, ;, k82
94 {163, 49}, // 60, /, k85
95 {170, 0}, // 61, F11, ka3
96 {159, 15}, // 62, -, k86
97 {166, 26}, // 63, [, k81
98 {170, 38}, // 64, ", k83
99 {173, 61}, // 65, Ct_R, k04
100 {184, 0}, // 66, F12, ka5
101 {18, 49}, // 67, \, k23
102 {0, 8}, // 68, LED, l01
103 {224, 8}, // 69, LED, l11
104 {202, 0}, // 70, Prt, k97
105 {0, 15}, // 71, LED, l02
106 {224, 15}, // 72, LED, l12
107 {224, 15}, // 73, Del, k65
108 {0, 21}, // 74, LED, l03
109 {224, 21}, // 75, LED, l13
110 {224, 26}, // 76, PgUp, k15
111 {0, 28}, // 77, LED, l04
112 {224, 28}, // 78, LED, l14
113 {173, 15}, // 79, =, k66
114 {220, 64}, // 80, Right, k05
115 {0, 35}, // 81, LED, l05
116 {224, 35}, // 82, LED, l15
117 {224, 49}, // 83, End, k75
118 {0, 42}, // 84, LED, l06
119 {224, 42}, // 85, LED, l16
120 {195, 15}, // 86, BSpc, ka1
121 {224, 38}, // 87, PgDn, k25
122 {0, 48}, // 88, LED, l07
123 {224, 48}, // 89, LED, l17
124 {181, 26}, // 90, ], k61
125 {182, 49}, // 91, Sh_R, k91
126 {0, 55}, // 92, LED, l08
127 {224, 55}, // 93, LED, l18
128 {206, 52}, // 94, Up, k35
129 {184, 38}, // 95, #, k84
130 {191, 64}, // 96, Left, k03
131 {201, 26}, // 97, Enter, ka4
132 {206, 64}, // 98, Down, k73
133}, {
134 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
135 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
136 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 2, 2, 4, 2,
137 2, 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4
138}};
139
140const aw_led g_aw_leds[DRIVER_LED_TOTAL] = {
141 {0, CS1_SW1, CS2_SW1, CS3_SW1}, // 0, ESC, k13
142 {0, CS4_SW1, CS5_SW1, CS6_SW1}, // 1, ~, k16
143 {0, CS7_SW1, CS8_SW1, CS9_SW1}, // 2, Tab, k11
144 {0, CS10_SW1, CS11_SW1, CS12_SW1}, // 3, Caps, k21
145 {0, CS13_SW1, CS14_SW1, CS15_SW1}, // 4, Sh_L, k00
146 {0, CS16_SW1, CS17_SW1, CS18_SW1}, // 5, Ct_L, k06
147 {0, CS1_SW2, CS2_SW2, CS3_SW2}, // 6, F1, k26
148 {0, CS4_SW2, CS5_SW2, CS6_SW2}, // 7, 1, k17
149 {0, CS7_SW2, CS8_SW2, CS9_SW2}, // 8, Q, k10
150 {0, CS10_SW2, CS11_SW2, CS12_SW2}, // 9, A, k12
151 {0, CS13_SW2, CS14_SW2, CS15_SW2}, // 10, Z, k14
152 {0, CS16_SW2, CS17_SW2, CS18_SW2}, // 11, Win_L, k90
153 {0, CS1_SW3, CS2_SW3, CS3_SW3}, // 12, F2, k36
154 {0, CS4_SW3, CS5_SW3, CS6_SW3}, // 13, 2, k27
155 {0, CS7_SW3, CS8_SW3, CS9_SW3}, // 14, W, k20
156 {0, CS10_SW3, CS11_SW3, CS12_SW3}, // 15, S, k22
157 {0, CS13_SW3, CS14_SW3, CS15_SW3}, // 16, X, k24
158 {0, CS16_SW3, CS17_SW3, CS18_SW3}, // 17, Alt_L, k93
159 {0, CS1_SW4, CS2_SW4, CS3_SW4}, // 18, F3, k31
160 {0, CS4_SW4, CS5_SW4, CS6_SW4}, // 19, 3, k37
161 {0, CS7_SW4, CS8_SW4, CS9_SW4}, // 20, E, k30
162 {0, CS10_SW4, CS11_SW4, CS12_SW4}, // 21, D, k32
163 {0, CS13_SW4, CS14_SW4, CS15_SW4}, // 22, C, k34
164 {0, CS1_SW5, CS2_SW5, CS3_SW5}, // 23, F4, k33
165 {0, CS4_SW5, CS5_SW5, CS6_SW5}, // 24, 4, k47
166 {0, CS7_SW5, CS8_SW5, CS9_SW5}, // 25, R, k40
167 {0, CS10_SW5, CS11_SW5, CS12_SW5}, // 26, F, k42
168 {0, CS13_SW5, CS14_SW5, CS15_SW5}, // 27, V, k44
169 {0, CS1_SW6, CS2_SW6, CS3_SW6}, // 28, F5, k07
170 {0, CS4_SW6, CS5_SW6, CS6_SW6}, // 29, 5, k46
171 {0, CS7_SW6, CS8_SW6, CS9_SW6}, // 30, T, k41
172 {0, CS10_SW6, CS11_SW6, CS12_SW6}, // 31, G, k43
173 {0, CS13_SW6, CS14_SW6, CS15_SW6}, // 32, B, k45
174 {0, CS16_SW6, CS17_SW6, CS18_SW6}, // 33, SPACE, k94
175 {0, CS1_SW7, CS2_SW7, CS3_SW7}, // 34, F6, k63
176 {0, CS4_SW7, CS5_SW7, CS6_SW7}, // 35, 6, k56
177 {0, CS7_SW7, CS8_SW7, CS9_SW7}, // 36, Y, k51
178 {0, CS10_SW7, CS11_SW7, CS12_SW7}, // 37, H, k53
179 {0, CS13_SW7, CS14_SW7, CS15_SW7}, // 38, N, k55
180 {0, CS1_SW8, CS2_SW8, CS3_SW8}, // 39, F7, k71
181 {0, CS4_SW8, CS5_SW8, CS6_SW8}, // 40, 7, k57
182 {0, CS7_SW8, CS8_SW8, CS9_SW8}, // 41, U, k50
183 {0, CS10_SW8, CS11_SW8, CS12_SW8}, // 42, J, k52
184 {0, CS13_SW8, CS14_SW8, CS15_SW8}, // 43, M, k54
185 {0, CS1_SW9, CS2_SW9, CS3_SW9}, // 44, F8, k76
186 {0, CS4_SW9, CS5_SW9, CS6_SW9}, // 45, 8, k67
187 {0, CS7_SW9, CS8_SW9, CS9_SW9}, // 46, I, k60
188 {0, CS10_SW9, CS11_SW9, CS12_SW9}, // 47, K, k62
189 {0, CS13_SW9, CS14_SW9, CS15_SW9}, // 48, ,, k64
190 {0, CS16_SW9, CS17_SW9, CS18_SW9}, // 49, Alt_R, k95
191 {0, CS1_SW10, CS2_SW10, CS3_SW10}, // 50, F9, ka6
192 {0, CS4_SW10, CS5_SW10, CS6_SW10}, // 51, 9, k77
193 {0, CS7_SW10, CS8_SW10, CS9_SW10}, // 52, O, k70
194 {0, CS10_SW10, CS11_SW10, CS12_SW10}, // 53, L, k72
195 {0, CS13_SW10, CS14_SW10, CS15_SW10}, // 54, ., k74
196 {0, CS16_SW10, CS17_SW10, CS18_SW10}, // 55, FN, k92
197 {0, CS1_SW11, CS2_SW11, CS3_SW11}, // 56, F10, ka7
198 {0, CS4_SW11, CS5_SW11, CS6_SW11}, // 57, 0, k87
199 {0, CS7_SW11, CS8_SW11, CS9_SW11}, // 58, P, k80
200 {0, CS10_SW11, CS11_SW11, CS12_SW11}, // 59, ;, k82
201 {0, CS13_SW11, CS14_SW11, CS15_SW11}, // 60, ?, k85
202 {0, CS1_SW12, CS2_SW12, CS3_SW12}, // 61, F11, ka3
203 {0, CS4_SW12, CS5_SW12, CS6_SW12}, // 62, -, k86
204 {0, CS7_SW12, CS8_SW12, CS9_SW12}, // 63, [, k81
205 {0, CS10_SW12, CS11_SW12, CS12_SW12}, // 64, ", k83
206 {0, CS16_SW12, CS17_SW12, CS18_SW12}, // 65, Ct_R, k04
207
208 {1, CS1_SW1, CS2_SW1, CS3_SW1}, // 66, F12, ka5
209 {1, CS4_SW1, CS5_SW1, CS6_SW1}, // 67, \, k23
210 {1, CS13_SW1, CS14_SW1, CS15_SW1}, // 68, LED, l01
211 {1, CS16_SW1, CS17_SW1, CS18_SW1}, // 69, LED, l11
212 {1, CS4_SW2, CS5_SW2, CS6_SW2}, // 70, Prt, k97
213 {1, CS13_SW2, CS14_SW2, CS15_SW2}, // 71, LED, l02
214 {1, CS16_SW2, CS17_SW2, CS18_SW2}, // 72, LED, l12
215 {1, CS4_SW3, CS5_SW3, CS6_SW3}, // 73, Del, k65
216 {1, CS13_SW3, CS14_SW3, CS15_SW3}, // 74, LED, l03
217 {1, CS16_SW3, CS17_SW3, CS18_SW3}, // 75, LED, l13
218 {1, CS4_SW4, CS5_SW4, CS6_SW4}, // 76, PgUp, k15
219 {1, CS13_SW4, CS14_SW4, CS15_SW4}, // 77, LED, l04
220 {1, CS16_SW4, CS17_SW4, CS18_SW4}, // 78, LED, l14
221 {1, CS1_SW5, CS2_SW5, CS3_SW5}, // 79, =, k66
222 {1, CS10_SW5, CS11_SW5, CS12_SW5}, // 80, Right, k05
223 {1, CS13_SW5, CS14_SW5, CS15_SW5}, // 81, LED, l05
224 {1, CS16_SW5, CS17_SW5, CS18_SW5}, // 82, LED, l15
225 {1, CS4_SW6, CS5_SW6, CS6_SW6}, // 83, End, k75
226 {1, CS13_SW6, CS14_SW6, CS15_SW6}, // 84, LED, l06
227 {1, CS16_SW6, CS17_SW6, CS18_SW6}, // 85, LED, l16
228 {1, CS1_SW7, CS2_SW7, CS3_SW7}, // 86, BSpc, ka1
229 {1, CS4_SW7, CS5_SW7, CS6_SW7}, // 87, PgDn, k25
230 {1, CS13_SW7, CS14_SW7, CS15_SW7}, // 88, LED, l07
231 {1, CS16_SW7, CS17_SW7, CS18_SW7}, // 89, LED, l17
232 {1, CS1_SW8, CS2_SW8, CS3_SW8}, // 90, ], k61
233 {1, CS4_SW8, CS5_SW8, CS6_SW8}, // 91, Sh_R, k91
234 {1, CS13_SW8, CS14_SW8, CS15_SW8}, // 92, LED, l08
235 {1, CS16_SW8, CS17_SW8, CS18_SW8}, // 93, LED, l18
236 {1, CS4_SW9, CS5_SW9, CS6_SW9}, // 94, Up, k35
237 {1, CS1_SW10, CS2_SW10, CS3_SW10}, // 95, #, k84
238 {1, CS4_SW10, CS5_SW10, CS6_SW10}, // 96, Left, k03
239 {1, CS1_SW11, CS2_SW11, CS3_SW11}, // 97, Enter, ka4
240 {1, CS4_SW11, CS5_SW11, CS6_SW11}, // 98, Down, k73
241};
242// clang-format on
243#endif
diff --git a/keyboards/gmmk/pro/iso/iso.h b/keyboards/gmmk/pro/iso/iso.h
new file mode 100644
index 000000000..353bcbe87
--- /dev/null
+++ b/keyboards/gmmk/pro/iso/iso.h
@@ -0,0 +1,52 @@
1/* Copyright 2021 Gigahawk
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "pro.h"
20
21#define ___ KC_NO
22
23// ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Prt Rotary(Mute)
24// ` 1 2 3 4 5 6 7 8 9 0 - = BSpc Del
25// Tab Q W E R T Y U I O P [ ] PgUp
26// Caps A S D F G H J K L ; ' # Enter PgDn
27// Sh_L \ Z X C V B N M , . / Sh_R Up End
28// Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right
29
30// clang-format off
31#define LAYOUT( \
32 k13, k26, k36, k31, k33, k07, k63, k71, k76, ka6, ka7, ka3, ka5, k97, k01, \
33 k16, k17, k27, k37, k47, k46, k56, k57, k67, k77, k87, k86, k66, ka1, k65, \
34 k11, k10, k20, k30, k40, k41, k51, k50, k60, k70, k80, k81, k61, k15, \
35 k21, k12, k22, k32, k42, k43, k53, k52, k62, k72, k82, k83, k84, ka4, k25, \
36 k00, k23, k14, k24, k34, k44, k45, k55, k54, k64, k74, k85, k91, k35, k75, \
37 k06, k90, k93, k94, k95, k92, k04, k03, k73, k05 \
38) \
39{ \
40 { k00, k01, ___, k03, k04, k05, k06, k07}, \
41 { k10, k11, k12, k13, k14, k15, k16, k17}, \
42 { k20, k21, k22, k23, k24, k25, k26, k27}, \
43 { k30, k31, k32, k33, k34, k35, k36, k37}, \
44 { k40, k41, k42, k43, k44, k45, k46, k47}, \
45 { k50, k51, k52, k53, k54, k55, k56, k57}, \
46 { k60, k61, k62, k63, k64, k65, k66, k67}, \
47 { k70, k71, k72, k73, k74, k75, k76, k77}, \
48 { k80, k81, k82, k83, k84, k85, k86, k87}, \
49 { k90, k91, k92, k93, k94, k95, ___, k97}, \
50 { ___, ka1, ___, ka3, ka4, ka5, ka6, ka7} \
51}
52// clang-format on
diff --git a/keyboards/gmmk/pro/keymaps/iso/keymap.c b/keyboards/gmmk/pro/iso/keymaps/default/keymap.c
index 402becbe6..95b0f0b83 100644
--- a/keyboards/gmmk/pro/keymaps/iso/keymap.c
+++ b/keyboards/gmmk/pro/iso/keymaps/default/keymap.c
@@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
33 // 33 //
34 // To put the keyboard in bootloader mode, use FN+backspace. If you accidentally put it into bootloader, you can just unplug the USB cable and 34 // To put the keyboard in bootloader mode, use FN+backspace. If you accidentally put it into bootloader, you can just unplug the USB cable and
35 // it'll be back to normal when you plug it back in. 35 // it'll be back to normal when you plug it back in.
36 [0] = LAYOUT_iso( 36 [0] = LAYOUT(
37 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_MUTE, 37 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_MUTE,
38 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_DEL, 38 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_DEL,
39 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_PGUP, 39 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_PGUP,
@@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
42 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT 42 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
43 ), 43 ),
44 44
45 [1] = LAYOUT_iso( 45 [1] = LAYOUT(
46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
47 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, 47 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______,
48 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 48 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
diff --git a/keyboards/gmmk/pro/iso/keymaps/via/keymap.c b/keyboards/gmmk/pro/iso/keymaps/via/keymap.c
new file mode 100644
index 000000000..921627205
--- /dev/null
+++ b/keyboards/gmmk/pro/iso/keymaps/via/keymap.c
@@ -0,0 +1,85 @@
1/* Copyright 2021 Glorious, LLC <salman@pcgamingrace.com>
2
3This program is free software: you can redistribute it and/or modify
4it under the terms of the GNU General Public License as published by
5the Free Software Foundation, either version 2 of the License, or
6(at your option) any later version.
7
8This program is distributed in the hope that it will be useful,
9but WITHOUT ANY WARRANTY; without even the implied warranty of
10MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11GNU General Public License for more details.
12
13You should have received a copy of the GNU General Public License
14along with this program. If not, see <http://www.gnu.org/licenses/>.
15*/
16
17#include QMK_KEYBOARD_H
18
19// clang-format off
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21
22// ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Prt Rotary(Mute)
23// ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc Del
24// Tab Q W E R T Y U I O P [ ] PgUp
25// Caps A S D F G H J K L ; " # Enter PgDn
26// Sh_L / Z X C V B N M , . ? Sh_R Up End
27// Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right
28
29
30 // The FN key by default maps to a momentary toggle to layer 1 to provide access to the RESET key (to put the board into bootloader mode). Without
31 // this mapping, you have to open the case to hit the button on the bottom of the PCB (near the USB cable attachment) while plugging in the USB
32 // cable to get the board into bootloader mode - definitely not fun when you're working on your QMK builds. Remove this and put it back to KC_RGUI
33 // if that's your preference.
34 //
35 // To put the keyboard in bootloader mode, use FN+backspace. If you accidentally put it into bootloader, you can just unplug the USB cable and
36 // it'll be back to normal when you plug it back in.
37 [0] = LAYOUT(
38 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_MUTE,
39 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_DEL,
40 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_PGUP,
41 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_NUHS, KC_ENT, KC_PGDN,
42 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_END,
43 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
44 ),
45
46 [1] = LAYOUT(
47 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
48 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______,
49 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
50 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
51 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
52 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
53 ),
54
55
56 [2] = LAYOUT(
57 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
58 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
59 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
60 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
61 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
62 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
63 ),
64
65 [3] = LAYOUT(
66 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
67 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
68 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
69 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
70 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
71 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
72 ),
73
74
75};
76// clang-format on
77
78bool encoder_update_user(uint8_t index, bool clockwise) {
79 if (clockwise) {
80 tap_code(KC_VOLU);
81 } else {
82 tap_code(KC_VOLD);
83 }
84 return true;
85}
diff --git a/keyboards/gmmk/pro/iso/keymaps/via/rules.mk b/keyboards/gmmk/pro/iso/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/gmmk/pro/iso/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/gmmk/pro/iso/readme.md b/keyboards/gmmk/pro/iso/readme.md
new file mode 100644
index 000000000..3f255c490
--- /dev/null
+++ b/keyboards/gmmk/pro/iso/readme.md
@@ -0,0 +1,23 @@
1# GMMK PRO (ISO)
2
3A tenkeyless 75% keyboard made and sold by Glorious LLC. Equipped with the STM32 ARM Cortex-M4 microcontroller, with support for rotary encoders and three additional layouts. [More info at Glorious](https://www.pcgamingrace.com/products/glorious-gmmk-pro-75-barebone-black-reservation)
4
5* Keyboard Maintainer: [GloriousThrall](https://github.com/GloriousThrall)
6* Hardware Supported: GMMK Pro
7* Hardware Availability: [GloriousPCGaming.com](https://www.pcgamingrace.com/products/glorious-gmmk-pro-75-barebone-black-reservation)
8
9Make example for this keyboard (after setting up your build environment):
10
11 make gmmk/pro/iso:default
12
13Flashing example for this keyboard:
14
15 make gmmk/pro/iso:default:flash
16
17To reset the board into bootloader mode, do one of the following:
18
19* Hold the Reset switch mounted on the bottom side of the PCB while connecting the USB cable
20* Hold the Escape key while connecting the USB cable (also erases persistent settings)
21* Fn+Backspace will reset the board to bootloader mode if you have flashed the default QMK keymap
22
23See 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/gmmk/pro/iso/rules.mk b/keyboards/gmmk/pro/iso/rules.mk
new file mode 100644
index 000000000..6221d6408
--- /dev/null
+++ b/keyboards/gmmk/pro/iso/rules.mk
@@ -0,0 +1,25 @@
1# MCU name
2MCU = STM32F303
3
4# Bootloader selection
5BOOTLOADER = stm32-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
11MOUSEKEY_ENABLE = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18NKRO_ENABLE = yes # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_ENABLE = no # Audio output
23ENCODER_ENABLE = yes
24RGB_MATRIX_ENABLE = yes
25RGB_MATRIX_DRIVER = AW20216
diff --git a/keyboards/gmmk/pro/mcuconf.h b/keyboards/gmmk/pro/mcuconf.h
new file mode 100644
index 000000000..bb1c0acde
--- /dev/null
+++ b/keyboards/gmmk/pro/mcuconf.h
@@ -0,0 +1,6 @@
1#pragma once
2
3#include_next <mcuconf.h>
4
5#undef STM32_SPI_USE_SPI1
6#define STM32_SPI_USE_SPI1 TRUE
diff --git a/keyboards/gmmk/pro/pro.h b/keyboards/gmmk/pro/pro.h
index 8295bb2f7..38dd4d78b 100644
--- a/keyboards/gmmk/pro/pro.h
+++ b/keyboards/gmmk/pro/pro.h
@@ -18,62 +18,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
18 18
19#include "quantum.h" 19#include "quantum.h"
20 20
21#define ___ KC_NO 21#if defined(KEYBOARD_gmmk_pro_ansi)
22 22# include "ansi.h"
23// ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Prt Rotary(Mute) 23#elif defined(KEYBOARD_gmmk_pro_iso)
24// ~ 1 2 3 4 5 6 7 8 9 0 - (=) BSpc Del 24# include "iso.h"
25// Tab Q W E R T Y U I O P [ ] \ PgUp 25#endif // GMMK Pro revisions
26// Caps A S D F G H J K L ; " Enter PgDn
27// Sh_L Z X C V B N M , . ? Sh_R Up End
28// Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right
29
30#define LAYOUT( \
31 k13, k26, k36, k31, k33, k07, k63, k71, k76, ka6, ka7, ka3, ka5, k97, k01, \
32 k16, k17, k27, k37, k47, k46, k56, k57, k67, k77, k87, k86, k66, ka1, k65, \
33 k11, k10, k20, k30, k40, k41, k51, k50, k60, k70, k80, k81, k61, ka2, k15, \
34 k21, k12, k22, k32, k42, k43, k53, k52, k62, k72, k82, k83, ka4, k25, \
35 k00, k14, k24, k34, k44, k45, k55, k54, k64, k74, k85, k91, k35, k75, \
36 k06, k90, k93, k94, k95, k92, k04, k03, k73, k05 \
37) \
38{ \
39 { k00, k01, ___, k03, k04, k05, k06, k07}, \
40 { k10, k11, k12, k13, k14, k15, k16, k17}, \
41 { k20, k21, k22, ___, k24, k25, k26, k27}, \
42 { k30, k31, k32, k33, k34, k35, k36, k37}, \
43 { k40, k41, k42, k43, k44, k45, k46, k47}, \
44 { k50, k51, k52, k53, k54, k55, k56, k57}, \
45 { k60, k61, k62, k63, k64, k65, k66, k67}, \
46 { k70, k71, k72, k73, k74, k75, k76, k77}, \
47 { k80, k81, k82, k83, ___, k85, k86, k87}, \
48 { k90, k91, k92, k93, k94, k95, ___, k97}, \
49 { ___, ka1, ka2, ka3, ka4, ka5, ka6, ka7} \
50}
51
52// ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Prt Rotary(Mute)
53// ~ 1 2 3 4 5 6 7 8 9 0 - (=) BSpc Del
54// Tab Q W E R T Y U I O P [ ] PgUp
55// Caps A S D F G H J K L ; " # Enter PgDn
56// Sh_L / Z X C V B N M , . ? Sh_R Up End
57// Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right
58
59#define LAYOUT_iso( \
60 k13, k26, k36, k31, k33, k07, k63, k71, k76, ka6, ka7, ka3, ka5, k97, k01, \
61 k16, k17, k27, k37, k47, k46, k56, k57, k67, k77, k87, k86, k66, ka1, k65, \
62 k11, k10, k20, k30, k40, k41, k51, k50, k60, k70, k80, k81, k61, k15, \
63 k21, k12, k22, k32, k42, k43, k53, k52, k62, k72, k82, k83, k84, ka4, k25, \
64 k00, k23, k14, k24, k34, k44, k45, k55, k54, k64, k74, k85, k91, k35, k75, \
65 k06, k90, k93, k94, k95, k92, k04, k03, k73, k05 \
66) \
67{ \
68 { k00, k01, ___, k03, k04, k05, k06, k07}, \
69 { k10, k11, k12, k13, k14, k15, k16, k17}, \
70 { k20, k21, k22, k23, k24, k25, k26, k27}, \
71 { k30, k31, k32, k33, k34, k35, k36, k37}, \
72 { k40, k41, k42, k43, k44, k45, k46, k47}, \
73 { k50, k51, k52, k53, k54, k55, k56, k57}, \
74 { k60, k61, k62, k63, k64, k65, k66, k67}, \
75 { k70, k71, k72, k73, k74, k75, k76, k77}, \
76 { k80, k81, k82, k83, k84, k85, k86, k87}, \
77 { k90, k91, k92, k93, k94, k95, ___, k97}, \
78 { ___, ka1, ___, ka3, ka4, ka5, ka6, ka7} \
79}