aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Dai <newtonapple@gmail.com>2020-12-01 09:37:33 -0800
committerGitHub <noreply@github.com>2020-12-01 17:37:33 +0000
commit33802ab5cdebe09a05b2070cc1c0a333e5699e62 (patch)
treeb0a5f76709a865b7b9ea0f63e0786539aa505915
parenteaa8c18174405c4e8891b9350f87bfa3ee3da8b6 (diff)
downloadqmk_firmware-33802ab5cdebe09a05b2070cc1c0a333e5699e62.tar.gz
qmk_firmware-33802ab5cdebe09a05b2070cc1c0a333e5699e62.zip
Add support for Drop + Ryloo Studio "Hello" M0110. (#11050)
-rwxr-xr-xkeyboards/ryloo_studio/m0110/config.h64
-rw-r--r--keyboards/ryloo_studio/m0110/info.json222
-rwxr-xr-xkeyboards/ryloo_studio/m0110/keymaps/default/keymap.c41
-rwxr-xr-xkeyboards/ryloo_studio/m0110/m0110.c18
-rwxr-xr-xkeyboards/ryloo_studio/m0110/m0110.h103
-rwxr-xr-xkeyboards/ryloo_studio/m0110/readme.md24
-rwxr-xr-xkeyboards/ryloo_studio/m0110/rules.mk24
7 files changed, 496 insertions, 0 deletions
diff --git a/keyboards/ryloo_studio/m0110/config.h b/keyboards/ryloo_studio/m0110/config.h
new file mode 100755
index 000000000..754c164b6
--- /dev/null
+++ b/keyboards/ryloo_studio/m0110/config.h
@@ -0,0 +1,64 @@
1/*
2Copyright 2020 newtonapple
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#pragma once
19
20#include "config_common.h"
21
22/* USB Device descriptor parameter */
23#define VENDOR_ID 0x614D
24#define PRODUCT_ID 0x1000
25#define DEVICE_VER 0x0001
26#define MANUFACTURER Ryloo studio
27#define PRODUCT M0110
28
29/* key matrix size */
30#define MATRIX_ROWS 5
31#define MATRIX_COLS 15
32
33/* key matrix pins */
34#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
35#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, F7, B5, B4, D7, D6, B3, B2 }
36#define UNUSED_PINS
37
38/* COL2ROW or ROW2COL */
39#define DIODE_DIRECTION COL2ROW
40
41/* number of backlight levels */
42#define BACKLIGHT_PIN B7
43#ifdef BACKLIGHT_PIN
44# define BACKLIGHT_LEVELS 5
45#endif
46
47/* Set 0 if debouncing isn't needed */
48#define DEBOUNCE 5
49
50/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
51#define LOCKING_SUPPORT_ENABLE
52
53/* Locking resynchronize hack */
54#define LOCKING_RESYNC_ENABLE
55
56#define RGB_DI_PIN E2
57#ifdef RGB_DI_PIN
58# define RGBLIGHT_ANIMATIONS
59# define RGBLED_NUM 18
60# define RGBLIGHT_HUE_STEP 8
61# define RGBLIGHT_SAT_STEP 8
62# define RGBLIGHT_VAL_STEP 8
63# define RGBLIGHT_LIMIT_VAL 123
64#endif
diff --git a/keyboards/ryloo_studio/m0110/info.json b/keyboards/ryloo_studio/m0110/info.json
new file mode 100644
index 000000000..5ae15b5c6
--- /dev/null
+++ b/keyboards/ryloo_studio/m0110/info.json
@@ -0,0 +1,222 @@
1{
2 "keyboard_name": "M0110",
3 "url": "https://drop.com/buy/ryloo-studio-hello-m0110-mechanical-keyboard-kit",
4 "maintainer": "qmk",
5 "width": 15,
6 "height": 5,
7 "layouts": {
8 "LAYOUT": {
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
26 {"x": 0, "y": 1, "w": 1.5},
27 {"x": 1.5, "y": 1},
28 {"x": 2.5, "y": 1},
29 {"x": 3.5, "y": 1},
30 {"x": 4.5, "y": 1},
31 {"x": 5.5, "y": 1},
32 {"x": 6.5, "y": 1},
33 {"x": 7.5, "y": 1},
34 {"x": 8.5, "y": 1},
35 {"x": 9.5, "y": 1},
36 {"x": 10.5, "y": 1},
37 {"x": 11.5, "y": 1},
38 {"x": 12.5, "y": 1},
39 {"x": 13.5, "y": 1, "w": 1.5},
40
41 {"x": 0, "y": 2, "w": 1.75},
42 {"x": 1.75, "y": 2},
43 {"x": 2.75, "y": 2},
44 {"x": 3.75, "y": 2},
45 {"x": 4.75, "y": 2},
46 {"x": 5.75, "y": 2},
47 {"x": 6.75, "y": 2},
48 {"x": 7.75, "y": 2},
49 {"x": 8.75, "y": 2},
50 {"x": 9.75, "y": 2},
51 {"x": 10.75, "y": 2},
52 {"x": 11.75, "y": 2},
53 {"x": 12.75, "y": 2},
54 {"x": 13.75, "y": 2, "w": 1.25},
55
56 {"x": 0, "y": 3, "w": 1.25},
57 {"x": 1.25, "y": 3},
58 {"x": 2.25, "y": 3},
59 {"x": 3.25, "y": 3},
60 {"x": 4.25, "y": 3},
61 {"x": 5.25, "y": 3},
62 {"x": 6.25, "y": 3},
63 {"x": 7.25, "y": 3},
64 {"x": 8.25, "y": 3},
65 {"x": 9.25, "y": 3},
66 {"x": 10.25, "y": 3},
67 {"x": 11.25, "y": 3},
68 {"x": 12.25, "y": 3, "w": 1.75},
69 {"x": 14, "y": 3},
70
71 {"x": 0, "y": 4, "w": 1.25},
72 {"x": 1.25, "y": 4, "w": 1.25},
73 {"x": 2.5, "y": 4, "w": 1.25},
74 {"x": 3.75, "y": 4, "w": 2.25},
75 {"x": 6, "y": 4, "w": 1.25},
76 {"x": 7.25, "y": 4, "w": 2.75},
77 {"x": 10, "y": 4},
78 {"x": 11, "y": 4},
79 {"x": 12, "y": 4},
80 {"x": 13, "y": 4},
81 {"x": 14, "y": 4}
82 ]
83 },
84 "LAYOUT_60_ansi": {
85 "layout": [
86 {"x": 0, "y": 0},
87 {"x": 1, "y": 0},
88 {"x": 2, "y": 0},
89 {"x": 3, "y": 0},
90 {"x": 4, "y": 0},
91 {"x": 5, "y": 0},
92 {"x": 6, "y": 0},
93 {"x": 7, "y": 0},
94 {"x": 8, "y": 0},
95 {"x": 9, "y": 0},
96 {"x": 10, "y": 0},
97 {"x": 11, "y": 0},
98 {"x": 12, "y": 0},
99 {"x": 13, "y": 0, "w": 2},
100
101 {"x": 0, "y": 1, "w": 1.5},
102 {"x": 1.5, "y": 1},
103 {"x": 2.5, "y": 1},
104 {"x": 3.5, "y": 1},
105 {"x": 4.5, "y": 1},
106 {"x": 5.5, "y": 1},
107 {"x": 6.5, "y": 1},
108 {"x": 7.5, "y": 1},
109 {"x": 8.5, "y": 1},
110 {"x": 9.5, "y": 1},
111 {"x": 10.5, "y": 1},
112 {"x": 11.5, "y": 1},
113 {"x": 12.5, "y": 1},
114 {"x": 13.5, "y": 1, "w": 1.5},
115
116 {"x": 0, "y": 2, "w": 1.75},
117 {"x": 1.75, "y": 2},
118 {"x": 2.75, "y": 2},
119 {"x": 3.75, "y": 2},
120 {"x": 4.75, "y": 2},
121 {"x": 5.75, "y": 2},
122 {"x": 6.75, "y": 2},
123 {"x": 7.75, "y": 2},
124 {"x": 8.75, "y": 2},
125 {"x": 9.75, "y": 2},
126 {"x": 10.75, "y": 2},
127 {"x": 11.75, "y": 2},
128 {"x": 12.75, "y": 2, "w": 2.25},
129
130 {"x": 0, "y": 3, "w": 2.25},
131 {"x": 2.25, "y": 3},
132 {"x": 3.25, "y": 3},
133 {"x": 4.25, "y": 3},
134 {"x": 5.25, "y": 3},
135 {"x": 6.25, "y": 3},
136 {"x": 7.25, "y": 3},
137 {"x": 8.25, "y": 3},
138 {"x": 9.25, "y": 3},
139 {"x": 10.25, "y": 3},
140 {"x": 11.25, "y": 3},
141 {"x": 12.25, "y": 3, "w": 2.75},
142
143 {"x": 0, "y": 4, "w": 1.25},
144 {"x": 1.25, "y": 4, "w": 1.25},
145 {"x": 2.5, "y": 4, "w": 1.25},
146 {"x": 3.75, "y": 4, "w": 6.25},
147 {"x": 10, "y": 4, "w": 1.25},
148 {"x": 11.25, "y": 4, "w": 1.25},
149 {"x": 12.5, "y": 4, "w": 1.25},
150 {"x": 13.75, "y": 4, "w": 1.25}
151 ]
152 },
153 "LAYOUT_60_hhkb": {
154 "layout": [
155 {"x": 0, "y": 0},
156 {"x": 1, "y": 0},
157 {"x": 2, "y": 0},
158 {"x": 3, "y": 0},
159 {"x": 4, "y": 0},
160 {"x": 5, "y": 0},
161 {"x": 6, "y": 0},
162 {"x": 7, "y": 0},
163 {"x": 8, "y": 0},
164 {"x": 9, "y": 0},
165 {"x": 10, "y": 0},
166 {"x": 11, "y": 0},
167 {"x": 12, "y": 0},
168 {"x": 13, "y": 0},
169 {"x": 14, "y": 0},
170
171 {"x": 0, "y": 1, "w": 1.5},
172 {"x": 1.5, "y": 1},
173 {"x": 2.5, "y": 1},
174 {"x": 3.5, "y": 1},
175 {"x": 4.5, "y": 1},
176 {"x": 5.5, "y": 1},
177 {"x": 6.5, "y": 1},
178 {"x": 7.5, "y": 1},
179 {"x": 8.5, "y": 1},
180 {"x": 9.5, "y": 1},
181 {"x": 10.5, "y": 1},
182 {"x": 11.5, "y": 1},
183 {"x": 12.5, "y": 1},
184 {"x": 13.5, "y": 1, "w": 1.5},
185
186 {"x": 0, "y": 2, "w": 1.75},
187 {"x": 1.75, "y": 2},
188 {"x": 2.75, "y": 2},
189 {"x": 3.75, "y": 2},
190 {"x": 4.75, "y": 2},
191 {"x": 5.75, "y": 2},
192 {"x": 6.75, "y": 2},
193 {"x": 7.75, "y": 2},
194 {"x": 8.75, "y": 2},
195 {"x": 9.75, "y": 2},
196 {"x": 10.75, "y": 2},
197 {"x": 11.75, "y": 2},
198 {"x": 12.75, "y": 2, "w": 2.25},
199
200 {"x": 0, "y": 3, "w": 2.25},
201 {"x": 2.25, "y": 3},
202 {"x": 3.25, "y": 3},
203 {"x": 4.25, "y": 3},
204 {"x": 5.25, "y": 3},
205 {"x": 6.25, "y": 3},
206 {"x": 7.25, "y": 3},
207 {"x": 8.25, "y": 3},
208 {"x": 9.25, "y": 3},
209 {"x": 10.25, "y": 3},
210 {"x": 11.25, "y": 3},
211 {"x": 12.25, "y": 3, "w": 1.75},
212 {"x": 14, "y": 3},
213
214 {"x": 1.5, "y": 4},
215 {"x": 2.5, "y": 4, "w": 1.5},
216 {"x": 4, "y": 4, "w": 7},
217 {"x": 11, "y": 4, "w": 1.5},
218 {"x": 12.5, "y": 4}
219 ]
220 }
221 }
222}
diff --git a/keyboards/ryloo_studio/m0110/keymaps/default/keymap.c b/keyboards/ryloo_studio/m0110/keymaps/default/keymap.c
new file mode 100755
index 000000000..98b739b59
--- /dev/null
+++ b/keyboards/ryloo_studio/m0110/keymaps/default/keymap.c
@@ -0,0 +1,41 @@
1/*
2Copyright 2020 newtonapple
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
20enum keyboard_layers {
21 _BASE,
22 _FN
23};
24
25const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26 [_BASE] = LAYOUT(
27 KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, XXXXXXX, KC_BSPC,
28 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,
29 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, XXXXXXX, KC_ENT,
30 KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, XXXXXXX,
31 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, XXXXXXX, MO(_FN), KC_RCTL
32 ),
33
34 [_FN] = LAYOUT(
35 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,
36 RGB_TOG, _______, KC_UP, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, RESET,
37 BL_TOGG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
38 BL_BRTG, _______, BL_DEC, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______,
39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
40 )
41};
diff --git a/keyboards/ryloo_studio/m0110/m0110.c b/keyboards/ryloo_studio/m0110/m0110.c
new file mode 100755
index 000000000..c7bae90e1
--- /dev/null
+++ b/keyboards/ryloo_studio/m0110/m0110.c
@@ -0,0 +1,18 @@
1/*
2Copyright 2020 newtonapple
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 "m0110.h"
diff --git a/keyboards/ryloo_studio/m0110/m0110.h b/keyboards/ryloo_studio/m0110/m0110.h
new file mode 100755
index 000000000..bb9df7cec
--- /dev/null
+++ b/keyboards/ryloo_studio/m0110/m0110.h
@@ -0,0 +1,103 @@
1/*
2Copyright 2020 newtonapple
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
19#pragma once
20
21#include "quantum.h"
22
23
24/* Standard arrangement / LAYOUT
25 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
26 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │
27 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
28 * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │
29 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
30 * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d │
31 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
32 * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3d │3e │
33 * ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┼───┤
34 * │40 │41 │42 │43 │47 │48 │49 │4a │4b │4c │4d │
35 * └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───┴───┘
36*/
37#define LAYOUT( \
38 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
39 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
40 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
41 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3e, \
42 k40, k41, k42, k43, k47, k48, k49, k4a, k4b, k4c, k4d \
43) { \
44 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
45 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, KC_NO }, \
46 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, KC_NO }, \
47 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3d, k3e }, \
48 { k40, k41, k42, k43, KC_NO, KC_NO, KC_NO, k47, k48, k49, k4a, k4b, k4c, k4d, KC_NO } \
49}
50
51/* LAYOUT_60_ansi
52 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
53 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0e │
54 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
55 * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │
56 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
57 * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2d │
58 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
59 * │30 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3d │
60 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
61 * │40 │41 │42 │46 │49 │4a │4c │4d │
62 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
63*/
64#define LAYOUT_60_ansi( \
65 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0e, \
66 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
67 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
68 k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \
69 k40, k41, k42, k46, k49, k4a, k4c, k4d \
70) { \
71 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, KC_NO, k0e }, \
72 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, KC_NO }, \
73 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, KC_NO, k2d, KC_NO }, \
74 { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3d, KC_NO }, \
75 { k40, k41, k42, KC_NO, KC_NO, KC_NO, k46, KC_NO, KC_NO, k49, k4a, KC_NO, k4c, k4d, KC_NO } \
76}
77
78/* LAYOUT_60_hhkb
79 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
80 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │
81 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
82 * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │
83 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
84 * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2d │
85 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
86 * │30 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3d │3e │
87 * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤
88 * │▓▓▓▓▓│41 │42 │47 (7u) │4a │4c │▓▓▓▓▓│
89 * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
90*/
91#define LAYOUT_60_hhkb( \
92 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
93 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
94 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
95 k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3e, \
96 k41, k42, k47, k4a, k4c \
97) { \
98 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
99 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, KC_NO }, \
100 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, KC_NO, k2d, KC_NO }, \
101 { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3d, k3e }, \
102 { KC_NO, k41, k42, KC_NO, KC_NO, KC_NO, KC_NO, k47, KC_NO, KC_NO, k4a, KC_NO, k4c, KC_NO, KC_NO } \
103}
diff --git a/keyboards/ryloo_studio/m0110/readme.md b/keyboards/ryloo_studio/m0110/readme.md
new file mode 100755
index 000000000..78a59f0e6
--- /dev/null
+++ b/keyboards/ryloo_studio/m0110/readme.md
@@ -0,0 +1,24 @@
1# RYLOO STUDIO "HELLO" M0110
2
3![RYLOO STUDIO "HELLO" M0110](https://i.imgur.com/CpKGhRl.jpeg)
4
5* Keyboard Maintainer: [G14D](https://github.com/HumphreyKwok), [newtonapple](https://github.com/newtonapple)
6* Hardware Supported: M0110 PCB
7* Hardware Availability: [M0110](https://drop.com/buy/ryloo-studio-hello-m0110-mechanical-keyboard-kit)
8
9Make example for this keyboard (after setting up your build environment):
10
11 make ryloo_studio/m0110:default
12
13Flashing example for this keyboard:
14
15 make ryloo_studio/m0110:default:flash
16
17Putting the Keyboard in Bootloader Mode:
18
19The shipped PCB did not come with a reset button. To put the PCB in bootloader mode: locate the 2 `RESET` pins in the back of the PCB and short them with a conductive wire or tweezer.
20
21![Ryloo Studio M0110 PCB RESET pins location](https://i.imgur.com/QJWmpqF.jpeg)
22
23
24See 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/ryloo_studio/m0110/rules.mk b/keyboards/ryloo_studio/m0110/rules.mk
new file mode 100755
index 000000000..ec85ce10e
--- /dev/null
+++ b/keyboards/ryloo_studio/m0110/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 = 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 = yes # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_ENABLE = no # Audio output
23
24LAYOUTS = 60_ansi 60_hhkb