aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMelGeek <65591833+melgeek001365@users.noreply.github.com>2020-10-19 02:05:01 +0800
committerGitHub <noreply@github.com>2020-10-18 11:05:01 -0700
commit4d22bc9de004f40b41287cc54adbc0b64f755f78 (patch)
treefe935cd7fc1fdb3db8f6b654f1a511c74dbaa0f9
parentd49dcdd667cc5e154a5c42a5be7e0f3391c8401c (diff)
downloadqmk_firmware-4d22bc9de004f40b41287cc54adbc0b64f755f78.tar.gz
qmk_firmware-4d22bc9de004f40b41287cc54adbc0b64f755f78.zip
[Keyboard] Melgeek Mojo75 (#10426)
* [Keyboard] Support MJ61 which is a 60% ANSI STD Hotswap RGB keyboard * Update keyboards/melgeek/mj61/mj61.c * Update keyboards/melgeek/mj61/mj61.c * [Keyboard] MJ61 Add license header for files and the link for readme * Update keyboards/melgeek/mj61/readme.md * Update keyboards/melgeek/mj61/rev1/config.h * Update keyboards/melgeek/mj61/rev1/rules.mk * Update keyboards/melgeek/mj61/mj61.c * Update keyboards/melgeek/mj61/mj61.c * [Keyboard] Support MoJo75 which is a 75% Hotswap RGB keyboard * Update melgeek/mojo75 vid and pid Add melgeek/mojo75/rev1/rev1.c * Update MelGeek mojo75 VIA layout
-rw-r--r--keyboards/melgeek/mojo75/config.h19
-rw-r--r--keyboards/melgeek/mojo75/info.json102
-rw-r--r--keyboards/melgeek/mojo75/keymaps/default/keymap.c37
-rw-r--r--keyboards/melgeek/mojo75/keymaps/via/keymap.c53
-rw-r--r--keyboards/melgeek/mojo75/keymaps/via/rules.mk2
-rw-r--r--keyboards/melgeek/mojo75/mojo75.c18
-rw-r--r--keyboards/melgeek/mojo75/mojo75.h37
-rw-r--r--keyboards/melgeek/mojo75/readme.md16
-rw-r--r--keyboards/melgeek/mojo75/rev1/config.h72
-rw-r--r--keyboards/melgeek/mojo75/rev1/rev1.c159
-rw-r--r--keyboards/melgeek/mojo75/rev1/rules.mk20
11 files changed, 535 insertions, 0 deletions
diff --git a/keyboards/melgeek/mojo75/config.h b/keyboards/melgeek/mojo75/config.h
new file mode 100644
index 000000000..452b1c872
--- /dev/null
+++ b/keyboards/melgeek/mojo75/config.h
@@ -0,0 +1,19 @@
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"
diff --git a/keyboards/melgeek/mojo75/info.json b/keyboards/melgeek/mojo75/info.json
new file mode 100644
index 000000000..e9a90ea22
--- /dev/null
+++ b/keyboards/melgeek/mojo75/info.json
@@ -0,0 +1,102 @@
1{
2 "keyboard_name": "MoJo75",
3 "url": "",
4 "maintainer": "melgeek001365",
5 "width": 16,
6 "height": 6,
7 "layouts": {
8 "LAYOUT_75_ansi": {
9 "layout": [
10 {"x":0, "y":0},
11 {"x":1, "y":0},
12 {"x":2, "y":0},
13 {"x":3, "y":0},
14 {"x":4, "y":0},
15 {"x":5, "y":0},
16 {"x":6, "y":0},
17 {"x":7, "y":0},
18 {"x":8, "y":0},
19 {"x":9, "y":0},
20 {"x":10, "y":0},
21 {"x":11, "y":0},
22 {"x":12, "y":0},
23 {"x":13, "y":0},
24 {"x":14, "y":0},
25 {"x":15, "y":0},
26
27 {"x":0, "y":1},
28 {"x":1, "y":1},
29 {"x":2, "y":1},
30 {"x":3, "y":1},
31 {"x":4, "y":1},
32 {"x":5, "y":1},
33 {"x":6, "y":1},
34 {"x":7, "y":1},
35 {"x":8, "y":1},
36 {"x":9, "y":1},
37 {"x":10, "y":1},
38 {"x":11, "y":1},
39 {"x":12, "y":1},
40 {"x":13, "y":1, "w":2},
41 {"x":15, "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, "y":2},
58
59 {"x":0, "y":3, "w":1.75},
60 {"x":1.75, "y":3},
61 {"x":2.75, "y":3},
62 {"x":3.75, "y":3},
63 {"x":4.75, "y":3},
64 {"x":5.75, "y":3},
65 {"x":6.75, "y":3},
66 {"x":7.75, "y":3},
67 {"x":8.75, "y":3},
68 {"x":9.75, "y":3},
69 {"x":10.75, "y":3},
70 {"x":11.75, "y":3},
71 {"x":12.75, "y":3, "w":2.25},
72 {"x":15, "y":3},
73
74 {"x":0, "y":4, "w":2.25},
75 {"x":2.25, "y":4},
76 {"x":3.25, "y":4},
77 {"x":4.25, "y":4},
78 {"x":5.25, "y":4},
79 {"x":6.25, "y":4},
80 {"x":7.25, "y":4},
81 {"x":8.25, "y":4},
82 {"x":9.25, "y":4},
83 {"x":10.25, "y":4},
84 {"x":11.25, "y":4},
85 {"x":12.25, "y":4, "w":1.75},
86 {"x":14, "y":4},
87 {"x":15, "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},
94 {"x":11, "y":5},
95 {"x":12, "y":5},
96 {"x":13, "y":5},
97 {"x":14, "y":5},
98 {"x":15, "y":5}
99 ]
100 }
101 }
102}
diff --git a/keyboards/melgeek/mojo75/keymaps/default/keymap.c b/keyboards/melgeek/mojo75/keymaps/default/keymap.c
new file mode 100644
index 000000000..315894631
--- /dev/null
+++ b/keyboards/melgeek/mojo75/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
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT_75_ansi( /* Base */
21 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,
22 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,
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, KC_DEL,
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, KC_PGUP,
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_PGDN,
26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
27 ),
28 [1] = LAYOUT_75_ansi( /* FN */
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, KC_END,
31 _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, RESET, KC_INS,
32 _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, EEP_RST, _______,
33 _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, KC_MUTE,
34 _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
35 )
36};
37
diff --git a/keyboards/melgeek/mojo75/keymaps/via/keymap.c b/keyboards/melgeek/mojo75/keymaps/via/keymap.c
new file mode 100644
index 000000000..78aec3c96
--- /dev/null
+++ b/keyboards/melgeek/mojo75/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
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT_75_ansi( /* Base */
21 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,
22 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,
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, KC_DEL,
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, KC_PGUP,
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_PGDN,
26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
27 ),
28 [1] = LAYOUT_75_ansi( /* FN */
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, KC_END,
31 _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, RESET, KC_INS,
32 _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, EEP_RST, _______,
33 _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, KC_MUTE,
34 _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
35 ),
36 [2] = LAYOUT_75_ansi(
37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
40 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
41 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
43 ),
44 [3] = LAYOUT_75_ansi(
45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
47 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
48 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
49 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
50 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
51 )
52};
53
diff --git a/keyboards/melgeek/mojo75/keymaps/via/rules.mk b/keyboards/melgeek/mojo75/keymaps/via/rules.mk
new file mode 100644
index 000000000..36b7ba9cb
--- /dev/null
+++ b/keyboards/melgeek/mojo75/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
1VIA_ENABLE = yes
2LTO_ENABLE = yes
diff --git a/keyboards/melgeek/mojo75/mojo75.c b/keyboards/melgeek/mojo75/mojo75.c
new file mode 100644
index 000000000..53db19d10
--- /dev/null
+++ b/keyboards/melgeek/mojo75/mojo75.c
@@ -0,0 +1,18 @@
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 "mojo75.h"
18
diff --git a/keyboards/melgeek/mojo75/mojo75.h b/keyboards/melgeek/mojo75/mojo75.h
new file mode 100644
index 000000000..4d141cd9c
--- /dev/null
+++ b/keyboards/melgeek/mojo75/mojo75.h
@@ -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#pragma once
18
19#include "quantum.h"
20
21#define XXX KC_NO
22
23#define LAYOUT_75_ansi( \
24 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
25 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \
26 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \
27 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3F, \
28 K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4C, K4E, K4F, \
29 K50, K51, K52, K55, K59, K5A, K5C, K5D, K5E, K5F \
30) { \
31 { K00, K01, 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, XXX, K1F }, \
33 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, XXX, K2F }, \
34 { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, XXX, K3F }, \
35 { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, XXX, K4C, XXX, K4E, K4F }, \
36 { K50, K51, K52, XXX, XXX, K55, XXX, XXX, XXX, K59, K5A, XXX, K5C, K5D, K5E, K5F } \
37}
diff --git a/keyboards/melgeek/mojo75/readme.md b/keyboards/melgeek/mojo75/readme.md
new file mode 100644
index 000000000..4cd183a60
--- /dev/null
+++ b/keyboards/melgeek/mojo75/readme.md
@@ -0,0 +1,16 @@
1# MelGeek MoJo75
2
3![MoJo75](https://cdn.shopifycdn.net/s/files/1/0078/2863/5712/products/ebaa863e3c4a44abd01bd8745190623c_58201a9c-615d-43cb-a611-114bf82d504e_1024x1024@2x.jpg?v=1600672917)
4
5A hotswap 75% RGB Custom Mechanical keyboard.
6
7* Keyboard Maintainer: [melgeek001365](https://github.com/melgeek001365)
8* Hardware Supported: MoJo75 V1.0.0 20200714
9* Hardware Availability: [MelGeek](https://www.melgeek.com/)
10
11Make example for this keyboard (after setting up your build environment):
12
13 make melgeek/mojo75/rev1:default
14
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/melgeek/mojo75/rev1/config.h b/keyboards/melgeek/mojo75/rev1/config.h
new file mode 100644
index 000000000..bc5758db2
--- /dev/null
+++ b/keyboards/melgeek/mojo75/rev1/config.h
@@ -0,0 +1,72 @@
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/* USB Device descriptor parameter */
20#define VENDOR_ID 0xEDED
21#define PRODUCT_ID 0x7075
22#define DEVICE_VER 0x0001
23#define MANUFACTURER MelGeek
24#define PRODUCT MOJO75
25
26/* key matrix size */
27#define MATRIX_ROWS 6
28#define MATRIX_COLS 16
29
30/*
31 * Keyboard Matrix Assignments
32 *
33 * Change this to how you wired your keyboard
34 * COLS: AVR pins used for columns, left to right
35 * ROWS: AVR pins used for rows, top to bottom
36 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
37 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
38 *
39 */
40
41#define MATRIX_ROW_PINS { B11, B10, B1, B0, A7, A6 }
42#define MATRIX_COL_PINS { B12, B13, B14, B15, A8, A15, B3, B4, B5, B8, B9, C13, C14, C15, A0, A1 }
43#define UNUSED_PINS
44
45/* COL2ROW, ROW2COL*/
46#define DIODE_DIRECTION COL2ROW
47
48/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
49#define DEBOUNCE 3
50
51/* disable these deprecated features by default */
52#define NO_ACTION_MACRO
53#define NO_ACTION_FUNCTION
54
55#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
56#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
57#define RGB_MATRIX_KEYPRESSES
58#define RGB_MATRIX_LED_PROCESS_LIMIT 4
59#define RGB_MATRIX_LED_FLUSH_LIMIT 26
60#define DISABLE_RGB_MATRIX_SPLASH
61#define DISABLE_RGB_MATRIX_MULTISPLASH
62#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
63//#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR
64#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL
65//#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_REACTIVE_SIMPLE
66#define DRIVER_ADDR_1 0b0110000
67#define DRIVER_ADDR_2 0b0110000 // this is here for compliancy reasons.
68#define DRIVER_COUNT 1
69#define DRIVER_1_LED_TOTAL 92
70#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL
71#define DRIVER_INDICATOR_LED_TOTAL 0
72
diff --git a/keyboards/melgeek/mojo75/rev1/rev1.c b/keyboards/melgeek/mojo75/rev1/rev1.c
new file mode 100644
index 000000000..0e79fdb70
--- /dev/null
+++ b/keyboards/melgeek/mojo75/rev1/rev1.c
@@ -0,0 +1,159 @@
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 "mojo75.h"
18
19#ifdef RGB_MATRIX_ENABLE
20const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
21 {0, CS6_SW1, CS5_SW1, CS4_SW1}, /* RGB1 */
22 {0, CS6_SW2, CS5_SW2, CS4_SW2}, /* RGB2 */
23 {0, CS6_SW3, CS5_SW3, CS4_SW3}, /* RGB3 */
24 {0, CS6_SW4, CS5_SW4, CS4_SW4}, /* RGB4 */
25 {0, CS6_SW5, CS5_SW5, CS4_SW5}, /* RGB5 */
26 {0, CS6_SW6, CS5_SW6, CS4_SW6}, /* RGB6 */
27 {0, CS6_SW7, CS5_SW7, CS4_SW7}, /* RGB7 */
28 {0, CS6_SW8, CS5_SW8, CS4_SW8}, /* RGB8 */
29 {0, CS6_SW9, CS5_SW9, CS4_SW9}, /* RGB9 */
30 {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB10 */
31 {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB11 */
32 {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB12 */
33 {0, CS9_SW4, CS8_SW4, CS7_SW4}, /* RGB13 */
34 {0, CS9_SW5, CS8_SW5, CS7_SW5}, /* RGB14 */
35 {0, CS9_SW6, CS8_SW6, CS7_SW6}, /* RGB15 */
36 {0, CS9_SW7, CS8_SW7, CS7_SW7}, /* RGB16 */
37 {0, CS9_SW8, CS8_SW8, CS7_SW8}, /* RGB17 */
38 {0, CS9_SW9, CS8_SW9, CS7_SW9}, /* RGB18 */
39 {0, CS12_SW1, CS11_SW1, CS10_SW1}, /* RGB19 */
40 {0, CS12_SW2, CS11_SW2, CS10_SW2}, /* RGB20 */
41 {0, CS12_SW3, CS11_SW3, CS10_SW3}, /* RGB21 */
42 {0, CS12_SW4, CS11_SW4, CS10_SW4}, /* RGB22 */
43 {0, CS12_SW5, CS11_SW5, CS10_SW5}, /* RGB23 */
44 {0, CS12_SW6, CS11_SW6, CS10_SW6}, /* RGB24 */
45 {0, CS12_SW7, CS11_SW7, CS10_SW7}, /* RGB25 */
46 {0, CS12_SW8, CS11_SW8, CS10_SW8}, /* RGB26 */
47 {0, CS12_SW9, CS11_SW9, CS10_SW9}, /* RGB27 */
48 {0, CS15_SW1, CS14_SW1, CS13_SW1}, /* RGB28 */
49 {0, CS15_SW2, CS14_SW2, CS13_SW2}, /* RGB29 */
50 {0, CS15_SW3, CS14_SW3, CS13_SW3}, /* RGB30 */
51 {0, CS15_SW4, CS14_SW4, CS13_SW4}, /* RGB31 */
52 {0, CS15_SW5, CS14_SW5, CS13_SW5}, /* RGB32 */
53 {0, CS15_SW6, CS14_SW6, CS13_SW6}, /* RGB33 */
54 {0, CS15_SW7, CS14_SW7, CS13_SW7}, /* RGB34 */
55 {0, CS15_SW8, CS14_SW8, CS13_SW8}, /* RGB35 */
56 {0, CS15_SW9, CS14_SW9, CS13_SW9}, /* RGB36 */
57 {0, CS18_SW1, CS17_SW1, CS16_SW1}, /* RGB37 */
58 {0, CS18_SW2, CS17_SW2, CS16_SW2}, /* RGB38 */
59 {0, CS18_SW3, CS17_SW3, CS16_SW3}, /* RGB39 */
60 {0, CS18_SW4, CS17_SW4, CS16_SW4}, /* RGB40 */
61 {0, CS18_SW5, CS17_SW5, CS16_SW5}, /* RGB41 */
62 {0, CS18_SW6, CS17_SW6, CS16_SW6}, /* RGB42 */
63 {0, CS18_SW7, CS17_SW7, CS16_SW7}, /* RGB43 */
64 {0, CS18_SW8, CS17_SW8, CS16_SW8}, /* RGB44 */
65 {0, CS18_SW9, CS17_SW9, CS16_SW9}, /* RGB45 */
66 {0, CS21_SW1, CS20_SW1, CS19_SW1}, /* RGB46 */
67 {0, CS21_SW2, CS20_SW2, CS19_SW2}, /* RGB47 */
68 {0, CS21_SW3, CS20_SW3, CS19_SW3}, /* RGB48 */
69 {0, CS21_SW4, CS20_SW4, CS19_SW4}, /* RGB49 */
70 {0, CS21_SW5, CS20_SW5, CS19_SW5}, /* RGB50 */
71 {0, CS21_SW6, CS20_SW6, CS19_SW6}, /* RGB51 */
72 {0, CS21_SW7, CS20_SW7, CS19_SW7}, /* RGB52 */
73 {0, CS21_SW8, CS20_SW8, CS19_SW8}, /* RGB53 */
74 {0, CS21_SW9, CS20_SW9, CS19_SW9}, /* RGB54 */
75 {0, CS24_SW1, CS23_SW1, CS22_SW1}, /* RGB55 */
76 {0, CS24_SW2, CS23_SW2, CS22_SW2}, /* RGB56 */
77 {0, CS24_SW3, CS23_SW3, CS22_SW3}, /* RGB57 */
78 {0, CS24_SW4, CS23_SW4, CS22_SW4}, /* RGB58 */
79 {0, CS24_SW5, CS23_SW5, CS22_SW5}, /* RGB59 */
80 {0, CS24_SW6, CS23_SW6, CS22_SW6}, /* RGB60 */
81 {0, CS24_SW7, CS23_SW7, CS22_SW7}, /* RGB61 */
82 {0, CS24_SW8, CS23_SW8, CS22_SW8}, /* RGB62 */
83 {0, CS24_SW9, CS23_SW9, CS22_SW9}, /* RGB63 */
84 {0, CS27_SW1, CS26_SW1, CS25_SW1}, /* RGB64 */
85 {0, CS27_SW2, CS26_SW2, CS25_SW2}, /* RGB65 */
86 {0, CS27_SW3, CS26_SW3, CS25_SW3}, /* RGB66 */
87 {0, CS27_SW4, CS26_SW4, CS25_SW4}, /* RGB67 */
88 {0, CS27_SW5, CS26_SW5, CS25_SW5}, /* RGB68 */
89 {0, CS27_SW6, CS26_SW6, CS25_SW6}, /* RGB69 */
90 {0, CS27_SW7, CS26_SW7, CS25_SW7}, /* RGB70 */
91 {0, CS27_SW8, CS26_SW8, CS25_SW8}, /* RGB71 */
92 {0, CS27_SW9, CS26_SW9, CS25_SW9}, /* RGB72 */
93 {0, CS30_SW2, CS29_SW2, CS28_SW2}, /* RGB73 */
94 {0, CS30_SW3, CS29_SW3, CS28_SW3}, /* RGB74 */
95 {0, CS30_SW4, CS29_SW4, CS28_SW4}, /* RGB75 */
96 {0, CS30_SW5, CS29_SW5, CS28_SW5}, /* RGB76 */
97 {0, CS30_SW6, CS29_SW6, CS28_SW6}, /* RGB77 */
98 {0, CS30_SW7, CS29_SW7, CS28_SW7}, /* RGB78 */
99 {0, CS30_SW8, CS29_SW8, CS28_SW8}, /* RGB79 */
100 {0, CS30_SW9, CS29_SW9, CS28_SW9}, /* RGB80 */
101 {0, CS36_SW1, CS35_SW1, CS34_SW1}, /* RGB81 */
102 {0, CS36_SW2, CS35_SW2, CS34_SW2}, /* RGB82 */
103 {0, CS36_SW4, CS35_SW4, CS34_SW4}, /* RGB83 */
104 {0, CS36_SW3, CS35_SW3, CS34_SW3}, /* RGB84 */
105 {0, CS36_SW6, CS35_SW6, CS34_SW6}, /* RGB85 */
106 {0, CS30_SW1, CS29_SW1, CS28_SW1}, /* RGB86 */
107 {0, CS39_SW2, CS38_SW2, CS37_SW2}, /* RGB87 */
108 {0, CS39_SW3, CS38_SW3, CS37_SW3}, /* RGB89 */
109 {0, CS39_SW4, CS38_SW4, CS37_SW4}, /* RGB88 */
110 {0, CS39_SW6, CS38_SW6, CS37_SW6}, /* RGB90 */
111 {0, CS39_SW1, CS38_SW1, CS37_SW1}, /* RGB91 */
112 {0, CS39_SW5, CS38_SW5, CS37_SW5}, /* RGB92 */
113};
114
115led_config_t g_led_config = {
116 {
117 /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 */
118 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 54, 55, 56, 57, 58, 59, 60 }, /* R0 */
119 { 9, 10, 11, 12, 13, 14, 15, 16, 17, 61, 62, 63, 64, 66, 67, 68 }, /* R1 */
120 { 18, 19, 20, 21, 22, 23, 24, 25, 26, 69, 70, 71, 85, 72, 65,/*?*/ 73 }, /* R2 */
121 { 27, 28, 29, 30, 31, 32, 33, 34, 35, 74, 75, 76, 77, 78, 79, 90 }, /* R3 */
122 { 36, 37, 38, 39, 40, 41, 42, 43, 44, 83, 82, 81, 84, 80, 86, 88 }, /* R4 */
123 { 45, 46, 47, 48, 49, NO_LED, NO_LED, 50, NO_LED, NO_LED, 51, 52, 53, 87, 91, 89 }, /* R5 */
124 }, {
125 {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}, {208, 0}, {224, 0}, {240, 0},
126 {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, {224, 16}, {240, 16},
127 {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, {208, 32}, {224, 32}, {240, 32},
128 {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, {224, 48}, {240, 48},
129 {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, {160, 64}, {176, 64}, {192, 64}, {208, 64}, {224, 64}, {240, 64},
130 {0, 80}, {16, 80}, {32, 80}, {48, 80}, {64, 80}, {80, 80}, {96, 80}, {112, 80}, {128, 80}, {144, 80}, {160, 80}, {176, 80},
131 }, {
132 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
133 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,
135 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,
137 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
138 }
139};
140
141
142void suspend_power_down_kb(void) {
143 rgb_matrix_set_suspend_state(true);
144 suspend_power_down_user();
145}
146
147void suspend_wakeup_init_kb(void) {
148 rgb_matrix_set_suspend_state(false);
149 suspend_wakeup_init_user();
150}
151
152void keyboard_pre_init_kb(void) {
153 setPinOutput(A2);
154 writePinHigh(A2);
155 keyboard_pre_init_user();
156}
157
158#endif
159
diff --git a/keyboards/melgeek/mojo75/rev1/rules.mk b/keyboards/melgeek/mojo75/rev1/rules.mk
new file mode 100644
index 000000000..ba7f9eac2
--- /dev/null
+++ b/keyboards/melgeek/mojo75/rev1/rules.mk
@@ -0,0 +1,20 @@
1# MCU name
2MCU = STM32F303
3
4# Build Options
5# change yes to no to disable
6#
7BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
8MOUSEKEY_ENABLE = yes # Mouse keys
9EXTRAKEY_ENABLE = yes # Audio control and System control
10CONSOLE_ENABLE = no # Console for debug
11COMMAND_ENABLE = no # Commands for debug and configuration
12# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
13SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
14# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
15NKRO_ENABLE = yes # USB Nkey Rollover
16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
17RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
18BLUETOOTH_ENABLE = no # Enable Bluetooth
19RGB_MATRIX_ENABLE = IS31FL3741 # Use RGB matrix
20NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in