aboutsummaryrefslogtreecommitdiff
path: root/keyboards/melgeek
diff options
context:
space:
mode:
authorQMK Bot <hello@qmk.fm>2021-09-15 05:10:19 +0000
committerQMK Bot <hello@qmk.fm>2021-09-15 05:10:19 +0000
commitcde0d9f7766ee605c0d60cb37177147cdc596152 (patch)
treebe0f6257effbe76244e3761343e64cd9bdeaec1c /keyboards/melgeek
parent93a6eb6f012ab2eb900c581a4e60b717339da9de (diff)
parent34352890522309e28b1788f72feab01e268eff34 (diff)
downloadqmk_firmware-cde0d9f7766ee605c0d60cb37177147cdc596152.tar.gz
qmk_firmware-cde0d9f7766ee605c0d60cb37177147cdc596152.zip
Merge remote-tracking branch 'origin/master' into develop
Diffstat (limited to 'keyboards/melgeek')
-rwxr-xr-xkeyboards/melgeek/mach80/config.h51
-rwxr-xr-xkeyboards/melgeek/mach80/info.json196
-rwxr-xr-xkeyboards/melgeek/mach80/keymaps/default/keymap.c37
-rwxr-xr-xkeyboards/melgeek/mach80/keymaps/tkl/keymap.c37
-rwxr-xr-xkeyboards/melgeek/mach80/keymaps/via/keymap.c53
-rwxr-xr-xkeyboards/melgeek/mach80/keymaps/via/rules.mk2
-rwxr-xr-xkeyboards/melgeek/mach80/keymaps/wkl/keymap.c37
-rwxr-xr-xkeyboards/melgeek/mach80/mach80.c17
-rwxr-xr-xkeyboards/melgeek/mach80/mach80.h53
-rwxr-xr-xkeyboards/melgeek/mach80/readme.md21
-rwxr-xr-xkeyboards/melgeek/mach80/rev1/config.h43
-rwxr-xr-xkeyboards/melgeek/mach80/rev1/rev1.c193
-rwxr-xr-xkeyboards/melgeek/mach80/rev1/rules.mk24
13 files changed, 764 insertions, 0 deletions
diff --git a/keyboards/melgeek/mach80/config.h b/keyboards/melgeek/mach80/config.h
new file mode 100755
index 000000000..99fced675
--- /dev/null
+++ b/keyboards/melgeek/mach80/config.h
@@ -0,0 +1,51 @@
1/* Copyright 2020 MelGeek <melgeek001365@gmail.com>
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/* USB Device descriptor parameter */
22#define VENDOR_ID 0xEDED
23#define PRODUCT_ID 0x0080
24#define DEVICE_VER 0x0001
25#define MANUFACTURER MelGeek
26#define PRODUCT Mach80
27
28/* key matrix size */
29#define MATRIX_ROWS 6
30#define MATRIX_COLS 16
31
32/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
33#define DEBOUNCE 3
34
35/* disable these deprecated features by default */
36#define NO_ACTION_MACRO
37#define NO_ACTION_FUNCTION
38
39#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
40#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
41#define RGB_MATRIX_KEYPRESSES
42#define RGB_MATRIX_LED_PROCESS_LIMIT 4
43#define RGB_MATRIX_LED_FLUSH_LIMIT 26
44#define DISABLE_RGB_MATRIX_SPLASH
45#define DISABLE_RGB_MATRIX_MULTISPLASH
46#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
47//#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR
48#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL
49#define DRIVER_ADDR_1 0b0110000
50#define DRIVER_COUNT 1
51
diff --git a/keyboards/melgeek/mach80/info.json b/keyboards/melgeek/mach80/info.json
new file mode 100755
index 000000000..e786df7c1
--- /dev/null
+++ b/keyboards/melgeek/mach80/info.json
@@ -0,0 +1,196 @@
1{
2 "keyboard_name": "Mach80",
3 "url": "",
4 "maintainer": "melgeek001365",
5 "layouts": {
6 "LAYOUT_tkl_ansi": {
7 "layout": [
8 {"x":0, "y":0},
9 {"x":2, "y":0},
10 {"x":3, "y":0},
11 {"x":4, "y":0},
12 {"x":5, "y":0},
13 {"x":6.5, "y":0},
14 {"x":7.5, "y":0},
15 {"x":8.5, "y":0},
16 {"x":9.5, "y":0},
17 {"x":11, "y":0},
18 {"x":12, "y":0},
19 {"x":13, "y":0},
20 {"x":14, "y":0},
21 {"x":15.25, "y":0},
22 {"x":16.25, "y":0},
23 {"x":17.25, "y":0},
24
25 {"x":0, "y":1},
26 {"x":1, "y":1},
27 {"x":2, "y":1},
28 {"x":3, "y":1},
29 {"x":4, "y":1},
30 {"x":5, "y":1},
31 {"x":6, "y":1},
32 {"x":7, "y":1},
33 {"x":8, "y":1},
34 {"x":9, "y":1},
35 {"x":10, "y":1},
36 {"x":11, "y":1},
37 {"x":12, "y":1},
38 {"x":13, "y":1, "w":2.0},
39 {"x":15.25, "y":1},
40 {"x":16.25, "y":1},
41 {"x":17.25, "y":1},
42
43 {"x":0, "y":2, "w":1.5},
44 {"x":1.5, "y":2},
45 {"x":2.5, "y":2},
46 {"x":3.5, "y":2},
47 {"x":4.5, "y":2},
48 {"x":5.5, "y":2},
49 {"x":6.5, "y":2},
50 {"x":7.5, "y":2},
51 {"x":8.5, "y":2},
52 {"x":9.5, "y":2},
53 {"x":10.5, "y":2},
54 {"x":11.5, "y":2},
55 {"x":12.5, "y":2},
56 {"x":13.5, "y":2, "w":1.5},
57 {"x":15.25, "y":2},
58 {"x":16.25, "y":2},
59 {"x":17.25, "y":2},
60
61 {"x":0, "y":3, "w":1.75},
62 {"x":1.75, "y":3},
63 {"x":2.75, "y":3},
64 {"x":3.75, "y":3},
65 {"x":4.75, "y":3},
66 {"x":5.75, "y":3},
67 {"x":6.75, "y":3},
68 {"x":7.75, "y":3},
69 {"x":8.75, "y":3},
70 {"x":9.75, "y":3},
71 {"x":10.75, "y":3},
72 {"x":11.75, "y":3},
73 {"x":12.75, "y":3, "w":2.25},
74
75 {"x":0, "y":4, "w":2.25},
76 {"x":2.25, "y":4},
77 {"x":3.25, "y":4},
78 {"x":4.25, "y":4},
79 {"x":5.25, "y":4},
80 {"x":6.25, "y":4},
81 {"x":7.25, "y":4},
82 {"x":8.25, "y":4},
83 {"x":9.25, "y":4},
84 {"x":10.25, "y":4},
85 {"x":11.25, "y":4},
86 {"x":12.25, "y":4, "w":2.75},
87 {"x":16.25, "y":4},
88
89 {"x":0, "y":5, "w":1.25},
90 {"x":1.25, "y":5, "w":1.25},
91 {"x":2.5, "y":5, "w":1.25},
92 {"x":3.75, "y":5, "w":6.25},
93 {"x":10, "y":5, "w":1.25},
94 {"x":11.25, "y":5, "w":1.25},
95 {"x":12.5, "y":5, "w":1.25},
96 {"x":13.75, "y":5, "w":1.25},
97 {"x":15.25, "y":5},
98 {"x":16.25, "y":5},
99 {"x":17.25, "y":5}
100 ]
101 },
102 "LAYOUT_tkl_ansi_wkl": {
103 "layout": [
104 {"x":0, "y":0},
105 {"x":2, "y":0},
106 {"x":3, "y":0},
107 {"x":4, "y":0},
108 {"x":5, "y":0},
109 {"x":6.5, "y":0},
110 {"x":7.5, "y":0},
111 {"x":8.5, "y":0},
112 {"x":9.5, "y":0},
113 {"x":11, "y":0},
114 {"x":12, "y":0},
115 {"x":13, "y":0},
116 {"x":14, "y":0},
117 {"x":15.25, "y":0},
118 {"x":16.25, "y":0},
119 {"x":17.25, "y":0},
120
121 {"x":0, "y":1},
122 {"x":1, "y":1},
123 {"x":2, "y":1},
124 {"x":3, "y":1},
125 {"x":4, "y":1},
126 {"x":5, "y":1},
127 {"x":6, "y":1},
128 {"x":7, "y":1},
129 {"x":8, "y":1},
130 {"x":9, "y":1},
131 {"x":10, "y":1},
132 {"x":11, "y":1},
133 {"x":12, "y":1},
134 {"x":13, "y":1, "w":2.0},
135 {"x":15.25, "y":1},
136 {"x":16.25, "y":1},
137 {"x":17.25, "y":1},
138
139 {"x":0, "y":2, "w":1.5},
140 {"x":1.5, "y":2},
141 {"x":2.5, "y":2},
142 {"x":3.5, "y":2},
143 {"x":4.5, "y":2},
144 {"x":5.5, "y":2},
145 {"x":6.5, "y":2},
146 {"x":7.5, "y":2},
147 {"x":8.5, "y":2},
148 {"x":9.5, "y":2},
149 {"x":10.5, "y":2},
150 {"x":11.5, "y":2},
151 {"x":12.5, "y":2},
152 {"x":13.5, "y":2, "w":1.5},
153 {"x":15.25, "y":2},
154 {"x":16.25, "y":2},
155 {"x":17.25, "y":2},
156
157 {"x":0, "y":3, "w":1.75},
158 {"x":1.75, "y":3},
159 {"x":2.75, "y":3},
160 {"x":3.75, "y":3},
161 {"x":4.75, "y":3},
162 {"x":5.75, "y":3},
163 {"x":6.75, "y":3},
164 {"x":7.75, "y":3},
165 {"x":8.75, "y":3},
166 {"x":9.75, "y":3},
167 {"x":10.75, "y":3},
168 {"x":11.75, "y":3},
169 {"x":12.75, "y":3, "w":2.25},
170
171 {"x":0, "y":4, "w":2.25},
172 {"x":2.25, "y":4},
173 {"x":3.25, "y":4},
174 {"x":4.25, "y":4},
175 {"x":5.25, "y":4},
176 {"x":6.25, "y":4},
177 {"x":7.25, "y":4},
178 {"x":8.25, "y":4},
179 {"x":9.25, "y":4},
180 {"x":10.25, "y":4},
181 {"x":11.25, "y":4},
182 {"x":12.25, "y":4, "w":2.75},
183 {"x":16.25, "y":4},
184
185 {"x":0, "y":5, "w":1.5},
186 {"x":2.5, "y":5, "w":1.5},
187 {"x":4, "y":5, "w":7},
188 {"x":11, "y":5, "w":1.5},
189 {"x":13.5, "y":5, "w":1.5},
190 {"x":15.25, "y":5},
191 {"x":16.25, "y":5},
192 {"x":17.25, "y":5}
193 ]
194 }
195 }
196}
diff --git a/keyboards/melgeek/mach80/keymaps/default/keymap.c b/keyboards/melgeek/mach80/keymaps/default/keymap.c
new file mode 100755
index 000000000..235f0c40d
--- /dev/null
+++ b/keyboards/melgeek/mach80/keymaps/default/keymap.c
@@ -0,0 +1,37 @@
1/* Copyright 2020 MelGeek <melgeek001365@gmail.com>
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 QMK_KEYBOARD_H
18
19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21 [0] = LAYOUT_tkl_ansi( /* Base */
22 KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
23 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
24 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
25 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,
26 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,
27 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
28 ),
29 [1] = LAYOUT_tkl_ansi( /* FN */
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, KC_END, _______,
32 _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, RESET, _______, KC_INS, _______,
33 _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______,
34 _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU,
35 _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
36 )
37};
diff --git a/keyboards/melgeek/mach80/keymaps/tkl/keymap.c b/keyboards/melgeek/mach80/keymaps/tkl/keymap.c
new file mode 100755
index 000000000..17aa4e6d3
--- /dev/null
+++ b/keyboards/melgeek/mach80/keymaps/tkl/keymap.c
@@ -0,0 +1,37 @@
1/* Copyright 2020 MelGeek <melgeek001365@gmail.com>
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 QMK_KEYBOARD_H
18
19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21 [0] = LAYOUT_tkl_ansi( /* Base */
22 KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
23 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
24 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
25 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,
26 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,
27 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
28 ),
29 [1] = LAYOUT_tkl_ansi( /* FN */
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, KC_END, _______,
32 _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, RESET, _______, KC_INS, _______,
33 _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______,
34 _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU,
35 _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
36 )
37};
diff --git a/keyboards/melgeek/mach80/keymaps/via/keymap.c b/keyboards/melgeek/mach80/keymaps/via/keymap.c
new file mode 100755
index 000000000..058786d1d
--- /dev/null
+++ b/keyboards/melgeek/mach80/keymaps/via/keymap.c
@@ -0,0 +1,53 @@
1/* Copyright 2020 MelGeek <melgeek001365@gmail.com>
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 QMK_KEYBOARD_H
18
19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21 [0] = LAYOUT_tkl_ansi( /* Base */
22 KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
23 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
24 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
25 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,
26 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,
27 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
28 ),
29 [1] = LAYOUT_tkl_ansi( /* FN */
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, KC_END, _______,
32 _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, RESET, _______, KC_INS, _______,
33 _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______,
34 _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU,
35 _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
36 ),
37 [2] = LAYOUT_tkl_ansi(
38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
40 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
41 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
44 ),
45 [3] = LAYOUT_tkl_ansi(
46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
47 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
48 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
49 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
50 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
51 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
52 )
53};
diff --git a/keyboards/melgeek/mach80/keymaps/via/rules.mk b/keyboards/melgeek/mach80/keymaps/via/rules.mk
new file mode 100755
index 000000000..36b7ba9cb
--- /dev/null
+++ b/keyboards/melgeek/mach80/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
1VIA_ENABLE = yes
2LTO_ENABLE = yes
diff --git a/keyboards/melgeek/mach80/keymaps/wkl/keymap.c b/keyboards/melgeek/mach80/keymaps/wkl/keymap.c
new file mode 100755
index 000000000..7fcf43bd0
--- /dev/null
+++ b/keyboards/melgeek/mach80/keymaps/wkl/keymap.c
@@ -0,0 +1,37 @@
1/* Copyright 2020 MelGeek <melgeek001365@gmail.com>
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 QMK_KEYBOARD_H
18
19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21 [0] = LAYOUT_tkl_ansi_wkl( /* Base */
22 KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
23 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
24 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
25 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,
26 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,
27 KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
28 ),
29 [1] = LAYOUT_tkl_ansi_wkl( /* FN */
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, KC_END, _______,
32 _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, RESET, _______, KC_INS, _______,
33 _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______,
34 _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU,
35 _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
36 )
37};
diff --git a/keyboards/melgeek/mach80/mach80.c b/keyboards/melgeek/mach80/mach80.c
new file mode 100755
index 000000000..28d21b22b
--- /dev/null
+++ b/keyboards/melgeek/mach80/mach80.c
@@ -0,0 +1,17 @@
1/* Copyright 2020 MelGeek <melgeek001365@gmail.com>
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 "mach80.h"
diff --git a/keyboards/melgeek/mach80/mach80.h b/keyboards/melgeek/mach80/mach80.h
new file mode 100755
index 000000000..6e954a918
--- /dev/null
+++ b/keyboards/melgeek/mach80/mach80.h
@@ -0,0 +1,53 @@
1/* Copyright 2020 MelGeek <melgeek001365@gmail.com>
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 "quantum.h"
20
21#define XXX KC_NO
22
23#define LAYOUT_tkl_ansi( \
24 K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K3D, \
25 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K3E, \
26 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K3F, \
27 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
28 K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4E, \
29 K50, K51, K52, K55, K59, K5A, K5B, K5C, K5D, K5E, K5F \
30) { \
31 {K00, XXX, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F}, \
32 {K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F}, \
33 {K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F}, \
34 {K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F}, \
35 {K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, XXX, K4E, XXX}, \
36 {K50, K51, K52, XXX, XXX, K55, XXX, XXX, XXX, K59, K5A, K5B, K5C, K5D, K5E, K5F} \
37}
38
39#define LAYOUT_tkl_ansi_wkl( \
40 K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K3D, \
41 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K3E, \
42 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K3F, \
43 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
44 K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4E, \
45 K50, K52, K55, K59, K5C, K5D, K5E, K5F \
46) { \
47 {K00, XXX, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F}, \
48 {K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F}, \
49 {K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F}, \
50 {K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F}, \
51 {K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, XXX, K4E, XXX}, \
52 {K50, XXX, K52, XXX, XXX, K55, XXX, XXX, XXX, K59, XXX, XXX, K5C, K5D, K5E, K5F} \
53}
diff --git a/keyboards/melgeek/mach80/readme.md b/keyboards/melgeek/mach80/readme.md
new file mode 100755
index 000000000..f4c8572c4
--- /dev/null
+++ b/keyboards/melgeek/mach80/readme.md
@@ -0,0 +1,21 @@
1# MelGeek Mach80
2
3![Mach80](https://www.melgeek.com/collections/pcb-plate/products/melgeek-mach80-tkl87-hotswappable-rgb-pcba)
4
5A hotswap 80% RGB Custom Mechanical keyboard.
6
7* Keyboard Maintainer: [melgeek001365](https://github.com/melgeek001365)
8* Hardware Supported: Mach80 rev1 20210819
9* Hardware Availability: [MelGeek](https://www.melgeek.com/)
10
11Make example for this keyboard (after setting up your build environment):
12
13 make melgeek/mach80/rev1:default
14
15Enter the bootloader in 3 ways:
16
17**Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard *
18**Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead *
19**Keycode in layout**: Press the key mapped to `RESET` if it is available *
20
21See 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/melgeek/mach80/rev1/config.h b/keyboards/melgeek/mach80/rev1/config.h
new file mode 100755
index 000000000..e3ae4de76
--- /dev/null
+++ b/keyboards/melgeek/mach80/rev1/config.h
@@ -0,0 +1,43 @@
1/* Copyright 2020 MelGeek <melgeek001365@gmail.com>
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/*
20 * Keyboard Matrix Assignments
21 *
22 * Change this to how you wired your keyboard
23 * COLS: AVR pins used for columns, left to right
24 * ROWS: AVR pins used for rows, top to bottom
25 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
26 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
27 *
28 */
29
30#define MATRIX_ROW_PINS { F0, F1, F4, F5, F6, E6 }
31#define MATRIX_COL_PINS { B0, B1, B2, B3, D2, D5, D4, D6, D7, B4, B5, B6, C6, C7, F7, D3 }
32#define UNUSED_PINS
33
34/* COL2ROW, ROW2COL*/
35#define DIODE_DIRECTION ROW2COL
36
37#define DRIVER_1_LED_TOTAL 97
38#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL
39#define DRIVER_INDICATOR_LED_TOTAL 3
40
41
42#define RGB_MATRIX_CENTER { 108, 30 }
43
diff --git a/keyboards/melgeek/mach80/rev1/rev1.c b/keyboards/melgeek/mach80/rev1/rev1.c
new file mode 100755
index 000000000..5a7970857
--- /dev/null
+++ b/keyboards/melgeek/mach80/rev1/rev1.c
@@ -0,0 +1,193 @@
1/* Copyright 2020 MelGeek <melgeek001365@gmail.com>
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 "mach80.h"
18
19#ifdef RGB_MATRIX_ENABLE
20
21
22const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
23 {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */
24 {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB2 */
25 {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB3 */
26 {0, CS9_SW4, CS8_SW4, CS7_SW4}, /* RGB4 */
27 {0, CS9_SW5, CS8_SW5, CS7_SW5}, /* RGB5 */
28 {0, CS9_SW6, CS8_SW6, CS7_SW6}, /* RGB6 */
29 {0, CS9_SW7, CS8_SW7, CS7_SW7}, /* RGB7 */
30 {0, CS9_SW8, CS8_SW8, CS7_SW8}, /* RGB8 */
31 {0, CS9_SW9, CS8_SW9, CS7_SW9}, /* RGB9 */
32 {0, CS27_SW1, CS26_SW1, CS25_SW1}, /* RGB65 */
33 {0, CS27_SW2, CS26_SW2, CS25_SW2}, /* RGB56 */
34 {0, CS27_SW3, CS26_SW3, CS25_SW3}, /* RGB57 */
35 {0, CS27_SW4, CS26_SW4, CS25_SW4}, /* RGB58 */
36 {0, CS27_SW5, CS26_SW5, CS25_SW5}, /* RGB59 */
37 {0, CS27_SW6, CS26_SW6, CS25_SW6}, /* RGB67 */
38 {0, CS27_SW7, CS26_SW7, CS25_SW7}, /* RGB68 */
39 {0, CS12_SW1, CS11_SW1, CS10_SW1}, /* RGB10 */
40 {0, CS12_SW2, CS11_SW2, CS10_SW2}, /* RGB11 */
41 {0, CS12_SW3, CS11_SW3, CS10_SW3}, /* RGB12 */
42 {0, CS12_SW4, CS11_SW4, CS10_SW4}, /* RGB13 */
43 {0, CS12_SW5, CS11_SW5, CS10_SW5}, /* RGB14 */
44 {0, CS12_SW6, CS11_SW6, CS10_SW6}, /* RGB15 */
45 {0, CS12_SW7, CS11_SW7, CS10_SW7}, /* RGB16 */
46 {0, CS12_SW8, CS11_SW8, CS10_SW8}, /* RGB17 */
47 {0, CS12_SW9, CS11_SW9, CS10_SW9}, /* RGB18 */
48 {0, CS27_SW8, CS26_SW8, CS25_SW8}, /* RGB69 */
49 {0, CS27_SW9, CS26_SW9, CS25_SW9}, /* RGB70 */
50 {0, CS30_SW1, CS29_SW1, CS28_SW1}, /* RGB64 */
51 {0, CS30_SW2, CS29_SW2, CS28_SW2}, /* RGB55 */
52 {0, CS30_SW3, CS29_SW3, CS28_SW3}, /* RGB71 */
53 {0, CS30_SW4, CS29_SW4, CS28_SW4}, /* RGB72 */
54 {0, CS30_SW5, CS29_SW5, CS28_SW5}, /* RGB66 */
55 {0, CS30_SW6, CS29_SW6, CS28_SW6}, /* RGB60 */
56 {0, CS30_SW7, CS29_SW7, CS28_SW7}, /* RGB61 */
57 {0, CS30_SW8, CS29_SW8, CS28_SW8}, /* RGB73 */
58 {0, CS15_SW1, CS14_SW1, CS13_SW1}, /* RGB19 */
59 {0, CS15_SW2, CS14_SW2, CS13_SW2}, /* RGB20 */
60 {0, CS15_SW3, CS14_SW3, CS13_SW3}, /* RGB21 */
61 {0, CS15_SW4, CS14_SW4, CS13_SW4}, /* RGB22 */
62 {0, CS15_SW5, CS14_SW5, CS13_SW5}, /* RGB23 */
63 {0, CS15_SW6, CS14_SW6, CS13_SW6}, /* RGB24 */
64 {0, CS15_SW7, CS14_SW7, CS13_SW7}, /* RGB25 */
65 {0, CS15_SW8, CS14_SW8, CS13_SW8}, /* RGB26 */
66 {0, CS15_SW9, CS14_SW9, CS13_SW9}, /* RGB27 */
67 {0, CS30_SW9, CS29_SW9, CS28_SW9}, /* RGB74 */
68 {0, CS33_SW1, CS32_SW1, CS31_SW1}, /* RGB75 */
69 {0, CS33_SW2, CS32_SW2, CS31_SW2}, /* RGB76 */
70 {0, CS33_SW3, CS32_SW3, CS31_SW3}, /* RGB77 */
71 {0, CS33_SW4, CS32_SW4, CS31_SW4}, /* RGB78 */
72 {0, CS33_SW5, CS32_SW5, CS31_SW5}, /* RGB79 */
73 {0, CS33_SW6, CS32_SW6, CS31_SW6}, /* RGB80 */
74 {0, CS33_SW7, CS32_SW7, CS31_SW7}, /* RGB83 */
75 {0, CS18_SW1, CS17_SW1, CS16_SW1}, /* RGB28 */
76 {0, CS18_SW2, CS17_SW2, CS16_SW2}, /* RGB29 */
77 {0, CS18_SW3, CS17_SW3, CS16_SW3}, /* RGB30 */
78 {0, CS18_SW4, CS17_SW4, CS16_SW4}, /* RGB31 */
79 {0, CS18_SW5, CS17_SW5, CS16_SW5}, /* RGB32 */
80 {0, CS18_SW6, CS17_SW6, CS16_SW6}, /* RGB33 */
81 {0, CS18_SW7, CS17_SW7, CS16_SW7}, /* RGB34 */
82 {0, CS18_SW8, CS17_SW8, CS16_SW8}, /* RGB35 */
83 {0, CS18_SW9, CS17_SW9, CS16_SW9}, /* RGB36 */
84 {0, CS33_SW8, CS32_SW8, CS31_SW8}, /* RGB81 */
85 {0, CS33_SW9, CS32_SW9, CS31_SW9}, /* RGB82 */
86 {0, CS36_SW1, CS35_SW1, CS34_SW1}, /* RGB89 */
87 {0, CS36_SW2, CS35_SW2, CS34_SW2}, /* RGB90 */
88 {0, CS36_SW3, CS35_SW3, CS34_SW3}, /* RGB91 */
89 {0, CS36_SW4, CS35_SW4, CS34_SW4}, /* RGB92 */
90 {0, CS21_SW1, CS20_SW1, CS19_SW1}, /* RGB37 */
91 {0, CS21_SW2, CS20_SW2, CS19_SW2}, /* RGB38 */
92 {0, CS21_SW3, CS20_SW3, CS19_SW3}, /* RGB39 */
93 {0, CS21_SW4, CS20_SW4, CS19_SW4}, /* RGB40 */
94 {0, CS21_SW5, CS20_SW5, CS19_SW5}, /* RGB41 */
95 {0, CS21_SW6, CS20_SW6, CS19_SW6}, /* RGB42 */
96 {0, CS21_SW7, CS20_SW7, CS19_SW7}, /* RGB43 */
97 {0, CS21_SW8, CS20_SW8, CS19_SW8}, /* RGB44 */
98 {0, CS21_SW9, CS20_SW9, CS19_SW9}, /* RGB45 */
99 {0, CS36_SW5, CS35_SW5, CS34_SW5}, /* RGB84 */
100 {0, CS36_SW6, CS35_SW6, CS34_SW6}, /* RGB85 */
101 {0, CS36_SW7, CS35_SW7, CS34_SW7}, /* RGB88 */
102 {0, CS36_SW8, CS35_SW8, CS34_SW8}, /* RGB86 */
103 {0, CS36_SW9, CS35_SW9, CS34_SW9}, /* RGB87 */
104 {0, CS39_SW1, CS38_SW1, CS37_SW1}, /* RGB98 */
105 {0, CS39_SW2, CS38_SW2, CS37_SW2}, /* RGB99 */
106 {0, CS39_SW3, CS38_SW3, CS37_SW3}, /* RGB100 */
107 {0, CS24_SW1, CS23_SW1, CS22_SW1}, /* RGB46 */
108 {0, CS24_SW2, CS23_SW2, CS22_SW2}, /* RGB47 */
109 {0, CS24_SW3, CS23_SW3, CS22_SW3}, /* RGB48 */
110 {0, CS24_SW4, CS23_SW4, CS22_SW4}, /* RGB49 */
111 {0, CS24_SW5, CS23_SW5, CS22_SW5}, /* RGB50 */
112 {0, CS24_SW6, CS23_SW6, CS22_SW6}, /* RGB51 */
113 {0, CS24_SW7, CS23_SW7, CS22_SW7}, /* RGB52 */
114 {0, CS24_SW8, CS23_SW8, CS22_SW8}, /* RGB53 */
115 {0, CS24_SW9, CS23_SW9, CS22_SW9}, /* RGB54 */
116 {0, CS39_SW4, CS38_SW4, CS37_SW4}, /* RGB101 */
117 {0, CS39_SW5, CS38_SW5, CS37_SW5}, /* RGB110 */
118 {0, CS39_SW6, CS38_SW6, CS37_SW6}, /* RGB111 */
119 {0, CS39_SW7, CS38_SW7, CS37_SW7}, /* RGB112 */
120};
121led_config_t g_led_config = {
122 {
123 /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 */
124 { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, /* R0 */
125 { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 33 }, /* R1 */
126 { 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50 }, /* R2 */
127 { 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 15, 34, 51 }, /* R3 */
128 { 68, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 81, NO_LED, NO_LED, 83, NO_LED }, /* R4 */
129 { 84, 85, 86, NO_LED, NO_LED, 88, NO_LED, NO_LED, NO_LED, 90, 91, 92, 93, 94, 95, 96 } /* R5 */
130 }, {
131 {0, 0}, {12, 0}, {24, 0}, {36, 0}, {48, 0}, {60, 0}, {72, 0}, {84, 0}, {96, 0}, {108, 0}, {120, 0}, {132, 0}, {144, 0}, {156, 0}, {168, 0}, {180, 0}, //16
132 {0, 12}, {12, 12}, {24, 12}, {36, 12}, {48, 12}, {60, 12}, {72, 12}, {84, 12}, {96, 12}, {108, 12}, {120, 12}, {132, 12}, {144, 12}, {156, 12}, {168, 12}, {180, 12}, {192, 12}, {204, 12}, {216, 12}, //19
133 {0, 24}, {12, 24}, {24, 24}, {36, 24}, {48, 24}, {60, 24}, {72, 24}, {84, 24}, {96, 24}, {108, 24}, {120, 24}, {132, 24}, {144, 24}, {156, 24}, {168, 24}, {180, 24}, {192, 24}, //17
134 {0, 36}, {12, 36}, {24, 36}, {36, 36}, {48, 36}, {60, 36}, {72, 36}, {84, 36}, {96, 36}, {108, 36}, {120, 36}, {132, 36}, {144, 36}, {156, 36}, {168, 36}, //15
135 {0, 48}, {12, 48}, {24, 48}, {36, 48}, {48, 48}, {60, 48}, {72, 48}, {84, 48}, {96, 48}, {108, 48}, {120, 48}, {132, 48}, {144, 48}, {156, 48}, {168, 48}, {180, 48}, {192, 48}, //17
136 {0, 60}, {12, 60}, {24, 60}, {36, 60}, {48, 60}, {60, 60}, {72, 60}, {84, 60}, {96, 60}, {108, 60}, {120, 60}, {132, 60}, {144, 60} //13
137 }, {
138 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
139 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
140 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
141 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
142 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
143 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
144 }
145};
146
147const is31_led g_is31_indicator_leds[3] = {
148 {0, CS6_SW1, CS5_SW1, CS4_SW1}, /* RGB107 */
149 {0, CS6_SW2, CS5_SW2, CS4_SW2}, /* RGB108 */
150 {0, CS6_SW3, CS5_SW3, CS4_SW3}, /* RGB109 */
151};
152
153bool led_update_kb(led_t led_state) {
154 if (led_update_user(led_state)) {
155 if (led_state.caps_lock) {
156 IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[2], 0x00, 0x00, 0xff);
157 } else {
158 IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[2], 0x00, 0x00, 0x00);
159 }
160
161 if (led_state.num_lock) {
162 IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[1], 0xff, 0x00, 0x00);
163 } else {
164 IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[1], 0x00, 0x00, 0x00);
165 }
166
167 if (led_state.scroll_lock) {
168 IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[0], 0x00, 0xff, 0x00);
169 } else {
170 IS31FL3741_set_pwm_buffer(&g_is31_indicator_leds[0], 0x00, 0x00, 0x00);
171 }
172 }
173 return true;
174}
175
176void matrix_init_kb(void) {
177 for (int i = 0; i < DRIVER_INDICATOR_LED_TOTAL; ++i) {
178 is31_led led = g_is31_indicator_leds[i];
179 IS31FL3741_set_scaling_registers(&led, 0xFF, 0xFF, 0xFF);
180 }
181
182 IS31FL3741_update_led_control_registers(DRIVER_ADDR_1, 0);
183
184 matrix_init_user();
185}
186
187
188void keyboard_pre_init_kb(void) {
189 setPinOutput(B7);
190 writePinHigh(B7);
191 keyboard_pre_init_user();
192}
193#endif
diff --git a/keyboards/melgeek/mach80/rev1/rules.mk b/keyboards/melgeek/mach80/rev1/rules.mk
new file mode 100755
index 000000000..a4d720649
--- /dev/null
+++ b/keyboards/melgeek/mach80/rev1/rules.mk
@@ -0,0 +1,24 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
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
21RGB_MATRIX_ENABLE = yes # Use RGB matrix
22RGB_MATRIX_DRIVER = IS31FL3741
23
24LAYOUTS = tkl_ansi