aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/mt64rgb/config.h102
-rw-r--r--keyboards/mt64rgb/info.json12
-rw-r--r--keyboards/mt64rgb/keymaps/default/keymap.c46
-rw-r--r--keyboards/mt64rgb/keymaps/default/readme.md3
-rw-r--r--keyboards/mt64rgb/keymaps/via/keymap.c54
-rw-r--r--keyboards/mt64rgb/keymaps/via/rules.mk2
-rw-r--r--keyboards/mt64rgb/mt64rgb.c116
-rw-r--r--keyboards/mt64rgb/mt64rgb.h33
-rw-r--r--keyboards/mt64rgb/readme.md16
-rw-r--r--keyboards/mt64rgb/rules.mk27
10 files changed, 411 insertions, 0 deletions
diff --git a/keyboards/mt64rgb/config.h b/keyboards/mt64rgb/config.h
new file mode 100644
index 000000000..8574d7236
--- /dev/null
+++ b/keyboards/mt64rgb/config.h
@@ -0,0 +1,102 @@
1/* Copyright 2020 MT
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#pragma once
17
18#include "config_common.h"
19
20/* USB Device descriptor parameter */
21#define VENDOR_ID 0x4D54 // "MT"
22#define PRODUCT_ID 0x0001
23#define DEVICE_VER 0x0001
24#define MANUFACTURER MT
25#define PRODUCT MT64RGB
26
27
28/* key matrix size */
29#define MATRIX_ROWS 5
30#define MATRIX_COLS 14
31
32/*
33 * Keyboard Matrix Assignments
34 *
35 * Change this to how you wired your keyboard
36 * COLS: AVR pins used for columns, left to right
37 * ROWS: AVR pins used for rows, top to bottom
38 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
39 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
40 *
41 */
42#define MATRIX_ROW_PINS { D7, D6, D5, D3, D2 }
43#define MATRIX_COL_PINS {B5, B6, C6, C7, F7, F6,F5, F4, F1, F0, B1, B2, B3, B7 }
44#define UNUSED_PINS
45
46/* COL2ROW, ROW2COL*/
47#define DIODE_DIRECTION COL2ROW
48
49#ifdef RGB_MATRIX_ENABLE
50#define RGB_MATRIX_KEYPRESSES
51#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
52#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
53#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 160
54#define RGB_MATRIX_LED_PROCESS_LIMIT 20
55#define RGB_MATRIX_LED_FLUSH_LIMIT 26
56#define DRIVER_ADDR_1 0b1010000
57#define DRIVER_ADDR_2 0b1010000
58
59#define DRIVER_COUNT 2
60#define DRIVER_1_LED_TOTAL 64
61#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL
62
63
64#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
65#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
66#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
67#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
68#define DISABLE_RGB_MATRIX_BAND_SAT
69#define DISABLE_RGB_MATRIX_BAND_VAL
70#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
71#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
72#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT
73#define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL
74#define DISABLE_RGB_MATRIX_DIGITAL_RAIN
75#define DISABLE_RGB_MATRIX_TYPING_HEATMAP
76#define DISABLE_RGB_MATRIX_RAINBOW_BEACON
77#define DISABLE_RGB_MATRIX_ALPHAS_MODS
78#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
79#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
80
81#endif
82
83#define RGB_DI_PIN B0
84#ifdef RGB_DI_PIN
85#define RGBLIGHT_ANIMATIONS
86#define RGBLED_NUM 18
87#define RGBLIGHT_HUE_STEP 5
88#define RGBLIGHT_SAT_STEP 5
89#define RGBLIGHT_VAL_STEP 5
90#define RGBLIGHT_SLEEP
91#endif
92
93/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
94#define DEBOUNCE 5
95
96/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
97#define LOCKING_SUPPORT_ENABLE
98/* Locking resynchronize hack */
99#define LOCKING_RESYNC_ENABLE
100
101/* VIA related config */
102#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2
diff --git a/keyboards/mt64rgb/info.json b/keyboards/mt64rgb/info.json
new file mode 100644
index 000000000..21fc948d7
--- /dev/null
+++ b/keyboards/mt64rgb/info.json
@@ -0,0 +1,12 @@
1{
2 "keyboard_name": "mt64rgb",
3 "url": "",
4 "maintainer": "qmk",
5 "width": 15,
6 "height": 5,
7 "layouts": {
8 "LAYOUT_64_ansi": {
9 "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}]
10 }
11 }
12}
diff --git a/keyboards/mt64rgb/keymaps/default/keymap.c b/keyboards/mt64rgb/keymaps/default/keymap.c
new file mode 100644
index 000000000..c7e027ba7
--- /dev/null
+++ b/keyboards/mt64rgb/keymaps/default/keymap.c
@@ -0,0 +1,46 @@
1/* Copyright 2020 MT
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#include QMK_KEYBOARD_H
17
18
19
20
21const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
22
23 [0] = LAYOUT_64_ansi(
24 KC_ESC, 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,
25 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,
26 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,
27 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_DEL,
28 KC_LCTL, KC_LALT, KC_LWIN, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
29 ),
30 [1] = LAYOUT_64_ansi(
31 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9 , KC_F10, KC_F11, KC_F12, _______,
32 _______, _______,_______,_______, _______,_______, _______, _______,_______,_______, _______,_______,_______, _______,
33 RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, _______, _______,_______, _______,
34 _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, _______,_______,_______,_______,
35 _______, _______, _______, _______, _______, _______, _______, _______, _______
36 )
37};
38
39void rgb_matrix_indicators_user(void) {
40 if (!g_suspend_state && layer_state_is(1)) {
41 rgb_matrix_set_color(77,0xFF, 0x80, 0x00);
42 }
43 if (host_keyboard_led_state().caps_lock) {
44 rgb_matrix_set_color(28, 0xFF, 0xFF, 0xFF);
45 }
46}
diff --git a/keyboards/mt64rgb/keymaps/default/readme.md b/keyboards/mt64rgb/keymaps/default/readme.md
new file mode 100644
index 000000000..f42a9a615
--- /dev/null
+++ b/keyboards/mt64rgb/keymaps/default/readme.md
@@ -0,0 +1,3 @@
1# Default mt4rgb Layout
2
3This is the default layout that comes flashed on every mt64rgb. All key pins are shown in the file. \ No newline at end of file
diff --git a/keyboards/mt64rgb/keymaps/via/keymap.c b/keyboards/mt64rgb/keymaps/via/keymap.c
new file mode 100644
index 000000000..a182e1a6a
--- /dev/null
+++ b/keyboards/mt64rgb/keymaps/via/keymap.c
@@ -0,0 +1,54 @@
1 /* Copyright 2020 MT<704340378@qq.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#include QMK_KEYBOARD_H
17
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20
21 [0] =LAYOUT_64_ansi(
22 KC_ESC, 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,
23 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,
24 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,
25 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_DEL,
26 KC_LCTL, KC_LALT, KC_LWIN, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
27 ),
28 [1] =LAYOUT_64_ansi(
29 KC_GRV, 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,
30 KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET,
31 KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
32 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,RGB_VAI, KC_TRNS,
33 KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, KC_TRNS, RGB_MOD, RGB_HUI, RGB_VAD, RGB_HUD),
34 [2] = LAYOUT_64_ansi(
35 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
36 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
37 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
39 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
40 [3] = LAYOUT_64_ansi(
41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
46};
47void rgb_matrix_indicators_user(void) {
48 if (!g_suspend_state && layer_state_is(1)) {
49 rgb_matrix_set_color(77,0xFF, 0x80, 0x00);
50 }
51 if (host_keyboard_led_state().caps_lock) {
52 rgb_matrix_set_color(28, 0xFF, 0xFF, 0xFF);
53 }
54}
diff --git a/keyboards/mt64rgb/keymaps/via/rules.mk b/keyboards/mt64rgb/keymaps/via/rules.mk
new file mode 100644
index 000000000..ca9fed0e6
--- /dev/null
+++ b/keyboards/mt64rgb/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
1LTO_ENABLE = yes
2VIA_ENABLE = yes
diff --git a/keyboards/mt64rgb/mt64rgb.c b/keyboards/mt64rgb/mt64rgb.c
new file mode 100644
index 000000000..73f0e562e
--- /dev/null
+++ b/keyboards/mt64rgb/mt64rgb.c
@@ -0,0 +1,116 @@
1 /* Copyright 2020 MT
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#include "mt64rgb.h"
17
18#ifdef RGB_MATRIX_ENABLE
19const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
20 /* Refer to IS31 manual for these locations
21 * driver
22 * | R location
23 * | | G location
24 * | | | B location
25 * | | | | */
26
27 {0, A_1, B_1, C_1},
28 {0, D_1, E_1, F_1},
29 {0, G_1, H_1, I_1},
30 {0, J_1, K_1, L_1},
31 {0, A_6, B_6, C_6},
32 {0, D_6, E_6, F_6},
33 {0, G_6, H_6, I_6},
34 {0, J_6, K_6, L_6},
35 {0, A_11, B_11, C_11},
36 {0, D_11, E_11, F_11},
37 {0, G_11, H_11, I_11},
38 {0, J_11, K_11, L_11},
39 {0, A_16, B_16, C_16},
40 {0, D_16, E_16, F_16},
41
42 {0, A_2, B_2, C_2},
43 {0, D_2, E_2, F_2},
44 {0, G_2, H_2, I_2},
45 {0, J_2, K_2, L_2},
46 {0, A_7, B_7, C_7},
47 {0, D_7, E_7, F_7},
48 {0, G_7, H_7, I_7},
49 {0, J_7, K_7, L_7},
50 {0, A_12, B_12, C_12},
51 {0, D_12, E_12, F_12},
52 {0, G_12, H_12, I_12},
53 {0, J_12, K_12, L_12},
54 {0, G_16, H_16, I_16},
55 {0, J_16, K_16, L_16},
56
57 {0, A_3, B_3, C_3},
58 {0, D_3, E_3, F_3},
59 {0, G_3, H_3, I_3},
60 {0, J_3, K_3, L_3},
61 {0, A_8, B_8, C_8},
62 {0, D_8, E_8, F_8},
63 {0, G_8, H_8, I_8},
64 {0, J_8, K_8, L_8},
65 {0, A_13, B_13, C_13},
66 {0, D_13, E_13, F_13},
67 {0, G_13, H_13, I_13},
68 {0, J_13, K_13, L_13},
69 {0, A_15, B_15, C_15},
70
71 {0, A_4, B_4, C_4},
72 {0, D_4, E_4, F_4},
73 {0, G_4, H_4, I_4},
74 {0, J_4, K_4, L_4},
75 {0, A_9, B_9, C_9},
76 {0, D_9, E_9, F_9},
77 {0, G_9, H_9, I_9},
78 {0, J_9, K_9, L_9},
79 {0, A_14, B_14, C_14},
80 {0, D_14, E_14, F_14},
81 {0, G_14, H_14, I_14},
82 {0, J_14, K_14, L_14},
83 {0, D_15, E_15, F_15},
84 {0, G_15, H_15, I_15},
85
86 {0, A_5, B_5, C_5},
87 {0, D_5, E_5, F_5},
88 {0, G_5, H_5, I_5},
89 {0, J_5, K_5, L_5},
90 {0, A_10, B_10, C_10},
91 {0, D_10, E_10, F_10},
92 {0, G_10, H_10, I_10},
93 {0, J_10, K_10, L_10},
94 {0, J_15, K_15, L_15}
95};
96
97led_config_t g_led_config = {{
98 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 },
99 { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 },
100 { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40},
101 { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54 },
102 { 55, 56, 57, 58, 59, 60, 61, 62, 63}
103}, {
104 { 0, 0 }, { 16, 0 }, { 32, 0 }, { 48, 0 }, { 64, 0 }, { 80, 0 }, { 96, 0 }, { 112, 0 }, { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 216, 0 },
105 { 4, 16 }, { 18, 16 }, { 34, 16 }, { 50, 16 }, { 66, 16 }, { 82, 16 }, { 98, 16 }, { 114, 16 }, { 130, 16 }, { 146, 16 }, { 162, 16 }, { 178, 16 }, { 194, 16 }, { 220, 16 },
106 { 6, 32 }, { 20, 32 }, { 36, 32 }, { 52, 32 }, { 68, 32 }, { 84, 32 }, { 100, 32 }, { 116, 32 }, { 132, 32 }, { 148, 32 }, { 164, 32 }, { 180, 32 }, { 212, 32 },
107 { 9, 48 }, { 27, 48 }, { 43, 48 }, { 59, 48 }, { 75, 48 }, { 91, 48 }, { 107, 48 }, { 123, 48 }, { 139, 48 }, { 155, 48 }, { 171, 48 }, { 187, 48 }, { 203, 48 }, { 219, 48 },
108 { 2, 64 }, { 16, 64 }, { 32, 64 }, { 64, 64 }, { 114, 64 }, { 130, 64 }, { 146, 64 }, { 204, 64 }, { 224, 64 }
109}, {
110 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
111 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
112 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
113 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
114 1, 1, 1, 4, 1, 1, 4, 4, 4,
115}};
116#endif
diff --git a/keyboards/mt64rgb/mt64rgb.h b/keyboards/mt64rgb/mt64rgb.h
new file mode 100644
index 000000000..dac98dfeb
--- /dev/null
+++ b/keyboards/mt64rgb/mt64rgb.h
@@ -0,0 +1,33 @@
1 /* Copyright 2020 MT
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#pragma once
17
18#include "quantum.h"
19
20#define LAYOUT_64_ansi( \
21 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, K0B, K0C, K0D, \
22 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \
23 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, \
24 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, \
25 k40, k41, k42, k45, k48, k4A, k4B, k4C, k4D \
26) \
27{ \
28 {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, K0B, K0C, K0D}, \
29 {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D}, \
30 {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, KC_NO}, \
31 {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D}, \
32 {k40, k41, k42, KC_NO, KC_NO, k45, KC_NO, KC_NO,KC_NO, k48, k4A, k4B, k4C, k4D} \
33}
diff --git a/keyboards/mt64rgb/readme.md b/keyboards/mt64rgb/readme.md
new file mode 100644
index 000000000..c412835b8
--- /dev/null
+++ b/keyboards/mt64rgb/readme.md
@@ -0,0 +1,16 @@
1# mt64rgb
2
3![mt64rgb](https://i.imgur.com/kxGGUg9.jpg?1)
4
5A 60% keyboard PCB made by MT.
6It supports an ANSI-based 64-key layout, with hotswap sockets and per-key RGB backlight.
7
8* Keyboard Maintainer: [MT](https://github.com/704340378)
9* Hardware Supported: mt64rgb (atmega32u4)
10* Hardware Availability: [麦田外设](https://shop110310565.taobao.com)
11
12Make example for this keyboard (after setting up your build environment):
13
14 make mt64rgb:default
15
16See 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/mt64rgb/rules.mk b/keyboards/mt64rgb/rules.mk
new file mode 100644
index 000000000..08450b37a
--- /dev/null
+++ b/keyboards/mt64rgb/rules.mk
@@ -0,0 +1,27 @@
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 = lite # Virtual DIP switch configuration
11MOUSEKEY_ENABLE = no # 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 = yes # Enable keyboard RGB underglow
21RGB_MATRIX_ENABLE = yes # Use RGB matrix
22RGB_MATRIX_DRIVER = IS31FL3733
23
24BLUETOOTH_ENABLE = no # Enable Bluetooth
25AUDIO_ENABLE = no # Audio output
26
27LAYOUTS = 64_ansi