aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/choc_taro/choc_taro.c17
-rw-r--r--keyboards/choc_taro/choc_taro.h342
-rw-r--r--keyboards/choc_taro/config.h219
-rw-r--r--keyboards/choc_taro/info.json558
-rw-r--r--keyboards/choc_taro/keymaps/default/keymap.c25
-rw-r--r--keyboards/choc_taro/keymaps/default/readme.md1
-rw-r--r--keyboards/choc_taro/keymaps/via/keymap.c48
-rw-r--r--keyboards/choc_taro/keymaps/via/readme.md3
-rw-r--r--keyboards/choc_taro/keymaps/via/rules.mk1
-rw-r--r--keyboards/choc_taro/matrix.c156
-rw-r--r--keyboards/choc_taro/readme.md15
-rw-r--r--keyboards/choc_taro/rules.mk34
12 files changed, 1419 insertions, 0 deletions
diff --git a/keyboards/choc_taro/choc_taro.c b/keyboards/choc_taro/choc_taro.c
new file mode 100644
index 000000000..2a835b2bd
--- /dev/null
+++ b/keyboards/choc_taro/choc_taro.c
@@ -0,0 +1,17 @@
1/* Copyright 2020 kakunpc
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 "choc_taro.h"
diff --git a/keyboards/choc_taro/choc_taro.h b/keyboards/choc_taro/choc_taro.h
new file mode 100644
index 000000000..cf07b80b5
--- /dev/null
+++ b/keyboards/choc_taro/choc_taro.h
@@ -0,0 +1,342 @@
1/* Copyright 2020 kakunpc
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/* This is a shortcut to help you visually see your layout.
22 *
23 * The first section contains all of the arguments representing the physical
24 * layout of the board and position of the keys.
25 *
26 * The second converts the arguments into a two-dimensional array which
27 * represents the switch matrix.
28 */
29
30/* LAYOUT_all
31 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
32 * │001│002│003│004│005│006│007│008│009│010│011│012│013│014│015│
33 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
34 * │101 │102│103│104│105│106│107│108│109│110│111│112│113│114 │
35 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
36 * │201 │202│203│204│205│206│207│208│209│210│211│212│213 │
37 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
38 * │301 │301│302│303│304│305│306│307│308│309│310│311│312 │313│
39 * ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┴───┤
40 * │▓▓▓▓│401 │402 │403 │404 │405 │406│407│408│▓▓▓▓▓▓▓│
41 * └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───────┘
42*/
43#define LAYOUT_all( \
44 k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, \
45 k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, \
46 k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \
47 k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, \
48 k401, k402, k403, k404, k405, k406, k407, k408 \
49) \
50{ \
51 { k009, k109, k209, k309, KC_NO } , \
52 { k010, k110, k210, k310, KC_NO } , \
53 { k011, k111, k211, k311, KC_NO } , \
54 { k012, k112, k212, k312, KC_NO } , \
55 { k013, k113, k213, k313, KC_NO } , \
56 { k014, k114, KC_NO, KC_NO, KC_NO } , \
57 { k015, KC_NO, KC_NO, KC_NO, KC_NO } , \
58 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \
59 { k001, k101, k201, k301, k401 } , \
60 { k002, k102, k202, k302, k402 } , \
61 { k003, k103, k203, k303, k403 } , \
62 { k004, k104, k204, k304, k404 } , \
63 { k005, k105, k205, k305, k405 } , \
64 { k006, k106, k206, k306, k406 } , \
65 { k007, k107, k207, k307, k407 } , \
66 { k008, k108, k208, k308, k408 } \
67}
68
69/* LAYOUT_ansi
70 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
71 * │001│002│003│004│005│006│007│008│009│010│011│012│013│ 014 │
72 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
73 * │101 │102│103│104│105│106│107│108│109│110│111│112│113│114 │
74 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
75 * │201 │202│203│204│205│206│207│208│209│210│211│212│213 │
76 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
77 * │301 │301│302│303│304│305│306│307│308│309│310│311│ 312 │
78 * ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───────┤
79 * │▓▓▓▓│401 │402 │403 │404 │405 │406│407│408│▓▓▓▓▓▓▓│
80 * └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───────┘
81*/
82#define LAYOUT_ansi( \
83 k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, \
84 k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, \
85 k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \
86 k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, \
87 k401, k402, k403, k404, k405, k406, k407, k408 \
88) \
89{ \
90 { k009, k109, k209, k309, KC_NO } , \
91 { k010, k110, k210, k310, KC_NO } , \
92 { k011, k111, k211, k311, KC_NO } , \
93 { k012, k112, k212, k312, KC_NO } , \
94 { k013, k113, k213, KC_NO, KC_NO } , \
95 { k014, k114, KC_NO, KC_NO, KC_NO } , \
96 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \
97 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \
98 { k001, k101, k201, k301, k401 } , \
99 { k002, k102, k202, k302, k402 } , \
100 { k003, k103, k203, k303, k403 } , \
101 { k004, k104, k204, k304, k404 } , \
102 { k005, k105, k205, k305, k405 } , \
103 { k006, k106, k206, k306, k406 } , \
104 { k007, k107, k207, k307, k407 } , \
105 { k008, k108, k208, k308, k408 } \
106}
107
108/* LAYOUT_ansi_split_bs
109 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
110 * │001│002│003│004│005│006│007│008│009│010│011│012│013│014│015│
111 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
112 * │101 │102│103│104│105│106│107│108│109│110│111│112│113│114 │
113 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
114 * │201 │202│203│204│205│206│207│208│209│210│211│212│213 │
115 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
116 * │301 │301│302│303│304│305│306│307│308│309│310│311│ 312 │
117 * ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───────┤
118 * │▓▓▓▓│401 │402 │403 │404 │405 │406│407│408│▓▓▓▓▓▓▓│
119 * └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───────┘
120*/
121#define LAYOUT_ansi_split_bs( \
122 k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, \
123 k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, \
124 k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \
125 k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, \
126 k401, k402, k403, k404, k405, k406, k407, k408 \
127) \
128{ \
129 { k009, k109, k209, k309, KC_NO } , \
130 { k010, k110, k210, k310, KC_NO } , \
131 { k011, k111, k211, k311, KC_NO } , \
132 { k012, k112, k212, k312, KC_NO } , \
133 { k013, k113, k213, KC_NO, KC_NO } , \
134 { k014, k114, KC_NO, KC_NO, KC_NO } , \
135 { k015, KC_NO, KC_NO, KC_NO, KC_NO } , \
136 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \
137 { k001, k101, k201, k301, k401 } , \
138 { k002, k102, k202, k302, k402 } , \
139 { k003, k103, k203, k303, k403 } , \
140 { k004, k104, k204, k304, k404 } , \
141 { k005, k105, k205, k305, k405 } , \
142 { k006, k106, k206, k306, k406 } , \
143 { k007, k107, k207, k307, k407 } , \
144 { k008, k108, k208, k308, k408 } \
145}
146
147
148/* LAYOUT_ansi_split_rshift
149 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
150 * │001│002│003│004│005│006│007│008│009│010│011│012│013│ 014 │
151 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
152 * │101 │102│103│104│105│106│107│108│109│110│111│112│113│114 │
153 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
154 * │201 │202│203│204│205│206│207│208│209│210│211│212│213 │
155 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
156 * │301 │301│302│303│304│305│306│307│308│309│310│311│312 │313│
157 * ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┴───┤
158 * │▓▓▓▓│401 │402 │403 │404 │405 │406│407│408│▓▓▓▓▓▓▓│
159 * └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───────┘
160*/
161#define LAYOUT_ansi_split_rshift( \
162 k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, \
163 k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, \
164 k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \
165 k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, \
166 k401, k402, k403, k404, k405, k406, k407, k408 \
167) \
168{ \
169 { k009, k109, k209, k309, KC_NO } , \
170 { k010, k110, k210, k310, KC_NO } , \
171 { k011, k111, k211, k311, KC_NO } , \
172 { k012, k112, k212, k312, KC_NO } , \
173 { k013, k113, k213, k313, KC_NO } , \
174 { k014, k114, KC_NO, KC_NO, KC_NO } , \
175 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \
176 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \
177 { k001, k101, k201, k301, k401 } , \
178 { k002, k102, k202, k302, k402 } , \
179 { k003, k103, k203, k303, k403 } , \
180 { k004, k104, k204, k304, k404 } , \
181 { k005, k105, k205, k305, k405 } , \
182 { k006, k106, k206, k306, k406 } , \
183 { k007, k107, k207, k307, k407 } , \
184 { k008, k108, k208, k308, k408 } \
185}
186
187
188/* LAYOUT_iso
189 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
190 * │001│002│003│004│005│006│007│008│009│010│011│012│013│ 014 │
191 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
192 * │101 │102│103│104│105│106│107│108│109│110│111│112│113│ │
193 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐114 │
194 * │201 │202│203│204│205│206│207│208│209│210│211│212│213│ │
195 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
196 * │301 │301│302│303│304│305│306│307│308│309│310│311│ 312 │
197 * ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───────┤
198 * │▓▓▓▓│401 │402 │403 │404 │405 │406│407│408│▓▓▓▓▓▓▓│
199 * └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───────┘
200*/
201#define LAYOUT_iso( \
202 k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, \
203 k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, \
204 k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \
205 k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, \
206 k401, k402, k403, k404, k405, k406, k407, k408 \
207) \
208{ \
209 { k009, k109, k209, k309, KC_NO } , \
210 { k010, k110, k210, k310, KC_NO } , \
211 { k011, k111, k211, k311, KC_NO } , \
212 { k012, k112, k212, k312, KC_NO } , \
213 { k013, k113, k213, KC_NO, KC_NO } , \
214 { k014, k114, KC_NO, KC_NO, KC_NO } , \
215 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \
216 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \
217 { k001, k101, k201, k301, k401 } , \
218 { k002, k102, k202, k302, k402 } , \
219 { k003, k103, k203, k303, k403 } , \
220 { k004, k104, k204, k304, k404 } , \
221 { k005, k105, k205, k305, k405 } , \
222 { k006, k106, k206, k306, k406 } , \
223 { k007, k107, k207, k307, k407 } , \
224 { k008, k108, k208, k308, k408 } \
225}
226
227/* LAYOUT_iso_split_rshift
228 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
229 * │001│002│003│004│005│006│007│008│009│010│011│012│013│ 014 │
230 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
231 * │101 │102│103│104│105│106│107│108│109│110│111│112│113│ │
232 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐114 │
233 * │201 │202│203│204│205│206│207│208│209│210│211│212│213│ │
234 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤
235 * │301 │301│302│303│304│305│306│307│308│309│310│311│312 │313│
236 * ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┴───┤
237 * │▓▓▓▓│401 │402 │403 │404 │405 │406│407│408│▓▓▓▓▓▓▓│
238 * └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───────┘
239*/
240#define LAYOUT_iso_split_rshift( \
241 k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, \
242 k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, \
243 k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \
244 k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, \
245 k401, k402, k403, k404, k405, k406, k407, k408 \
246) \
247{ \
248 { k009, k109, k209, k309, KC_NO } , \
249 { k010, k110, k210, k310, KC_NO } , \
250 { k011, k111, k211, k311, KC_NO } , \
251 { k012, k112, k212, k312, KC_NO } , \
252 { k013, k113, k213, k313, KC_NO } , \
253 { k014, k114, KC_NO, KC_NO, KC_NO } , \
254 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \
255 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \
256 { k001, k101, k201, k301, k401 } , \
257 { k002, k102, k202, k302, k402 } , \
258 { k003, k103, k203, k303, k403 } , \
259 { k004, k104, k204, k304, k404 } , \
260 { k005, k105, k205, k305, k405 } , \
261 { k006, k106, k206, k306, k406 } , \
262 { k007, k107, k207, k307, k407 } , \
263 { k008, k108, k208, k308, k408 } \
264}
265
266/* LAYOUT_iso_split_bs
267 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
268 * │001│002│003│004│005│006│007│008│009│010│011│012│013│014│015│
269 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
270 * │101 │102│103│104│105│106│107│108│109│110│111│112│113│ │
271 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐114 │
272 * │201 │202│203│204│205│206│207│208│209│210│211│212│213│ │
273 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
274 * │301 │301│302│303│304│305│306│307│308│309│310│311│ 312 │
275 * ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───────┤
276 * │▓▓▓▓│401 │402 │403 │404 │405 │406│407│408│▓▓▓▓▓▓▓│
277 * └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───────┘
278*/
279#define LAYOUT_iso_split_bs( \
280 k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, \
281 k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, \
282 k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \
283 k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, \
284 k401, k402, k403, k404, k405, k406, k407, k408 \
285) \
286{ \
287 { k009, k109, k209, k309, KC_NO } , \
288 { k010, k110, k210, k310, KC_NO } , \
289 { k011, k111, k211, k311, KC_NO } , \
290 { k012, k112, k212, k312, KC_NO } , \
291 { k013, k113, k213, KC_NO, KC_NO } , \
292 { k014, k114, KC_NO, KC_NO, KC_NO } , \
293 { k015, KC_NO, KC_NO, KC_NO, KC_NO } , \
294 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \
295 { k001, k101, k201, k301, k401 } , \
296 { k002, k102, k202, k302, k402 } , \
297 { k003, k103, k203, k303, k403 } , \
298 { k004, k104, k204, k304, k404 } , \
299 { k005, k105, k205, k305, k405 } , \
300 { k006, k106, k206, k306, k406 } , \
301 { k007, k107, k207, k307, k407 } , \
302 { k008, k108, k208, k308, k408 } \
303}
304
305/* LAYOUT_iso_split_bs_rshift
306 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
307 * │001│002│003│004│005│006│007│008│009│010│011│012│013│014│015│
308 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
309 * │101 │102│103│104│105│106│107│108│109│110│111│112│113│ │
310 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐114 │
311 * │201 │202│203│204│205│206│207│208│209│210│211│212│213│ │
312 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤
313 * │301 │301│302│303│304│305│306│307│308│309│310│311│312 │313│
314 * ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┴───┤
315 * │▓▓▓▓│401 │402 │403 │404 │405 │406│407│408│▓▓▓▓▓▓▓│
316 * └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───────┘
317*/
318#define LAYOUT_iso_split_bs_rshift( \
319 k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, \
320 k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113, k114, \
321 k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, \
322 k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, \
323 k401, k402, k403, k404, k405, k406, k407, k408 \
324) \
325{ \
326 { k009, k109, k209, k309, KC_NO } , \
327 { k010, k110, k210, k310, KC_NO } , \
328 { k011, k111, k211, k311, KC_NO } , \
329 { k012, k112, k212, k312, KC_NO } , \
330 { k013, k113, k213, k313, KC_NO } , \
331 { k014, k114, KC_NO, KC_NO, KC_NO } , \
332 { k015, KC_NO, KC_NO, KC_NO, KC_NO } , \
333 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } , \
334 { k001, k101, k201, k301, k401 } , \
335 { k002, k102, k202, k302, k402 } , \
336 { k003, k103, k203, k303, k403 } , \
337 { k004, k104, k204, k304, k404 } , \
338 { k005, k105, k205, k305, k405 } , \
339 { k006, k106, k206, k306, k406 } , \
340 { k007, k107, k207, k307, k407 } , \
341 { k008, k108, k208, k308, k408 } \
342}
diff --git a/keyboards/choc_taro/config.h b/keyboards/choc_taro/config.h
new file mode 100644
index 000000000..4ccc686a6
--- /dev/null
+++ b/keyboards/choc_taro/config.h
@@ -0,0 +1,219 @@
1/*
2Copyright 2020 kakunpc
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 0xDCED
24#define PRODUCT_ID 0x71CC
25#define DEVICE_VER 0x0001
26#define MANUFACTURER kakunpc
27#define PRODUCT choc_taro
28#define DESCRIPTION A custom keyboard
29
30/* key matrix size */
31#define MATRIX_ROWS 16
32#define MATRIX_COLS 5
33/*
34 * Keyboard Matrix Assignments
35 *
36 * Change this to how you wired your keyboard
37 * COLS: AVR pins used for columns, left to right
38 * ROWS: AVR pins used for rows, top to bottom
39 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
40 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
41 *
42 */
43#define MATRIX_ROW_PINS { F4, F5, F6, F7, B1, B3, B2, B6 }
44#define MATRIX_COL_PINS { D4, C6, D7, E6, B4 }
45#define UNUSED_PINS
46
47/*
48 * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
49 */
50#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
51
52// #define BACKLIGHT_PIN B7
53// #define BACKLIGHT_BREATHING
54// #define BACKLIGHT_LEVELS 3
55
56// #define RGB_DI_PIN E2
57// #ifdef RGB_DI_PIN
58// #define RGBLED_NUM 16
59// #define RGBLIGHT_HUE_STEP 8
60// #define RGBLIGHT_SAT_STEP 8
61// #define RGBLIGHT_VAL_STEP 8
62// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
63// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
64// /*== all animations enable ==*/
65// #define RGBLIGHT_ANIMATIONS
66// /*== or choose animations ==*/
67// #define RGBLIGHT_EFFECT_BREATHING
68// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
69// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
70// #define RGBLIGHT_EFFECT_SNAKE
71// #define RGBLIGHT_EFFECT_KNIGHT
72// #define RGBLIGHT_EFFECT_CHRISTMAS
73// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
74// #define RGBLIGHT_EFFECT_RGB_TEST
75// #define RGBLIGHT_EFFECT_ALTERNATING
76// /*== customize breathing effect ==*/
77// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
78// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
79// /*==== use exp() and sin() ====*/
80// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
81// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
82// #endif
83
84/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
85#define DEBOUNCE 5
86
87/* define if matrix has ghost (lacks anti-ghosting diodes) */
88//#define MATRIX_HAS_GHOST
89
90/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
91#define LOCKING_SUPPORT_ENABLE
92/* Locking resynchronize hack */
93#define LOCKING_RESYNC_ENABLE
94
95/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
96 * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
97 */
98// #define GRAVE_ESC_CTRL_OVERRIDE
99
100/*
101 * Force NKRO
102 *
103 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
104 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
105 * makefile for this to work.)
106 *
107 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
108 * until the next keyboard reset.
109 *
110 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
111 * fully operational during normal computer usage.
112 *
113 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
114 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
115 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
116 * power-up.
117 *
118 */
119//#define FORCE_NKRO
120
121/*
122 * Magic Key Options
123 *
124 * Magic keys are hotkey commands that allow control over firmware functions of
125 * the keyboard. They are best used in combination with the HID Listen program,
126 * found here: https://www.pjrc.com/teensy/hid_listen.html
127 *
128 * The options below allow the magic key functionality to be changed. This is
129 * useful if your keyboard/keypad is missing keys and you want magic key support.
130 *
131 */
132
133/* key combination for magic key command */
134/* defined by default; to change, uncomment and set to the combination you want */
135// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
136
137/* control how magic key switches layers */
138//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
139//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
140//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
141
142/* override magic key keymap */
143//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
144//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
145//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
146//#define MAGIC_KEY_HELP H
147//#define MAGIC_KEY_HELP_ALT SLASH
148//#define MAGIC_KEY_DEBUG D
149//#define MAGIC_KEY_DEBUG_MATRIX X
150//#define MAGIC_KEY_DEBUG_KBD K
151//#define MAGIC_KEY_DEBUG_MOUSE M
152//#define MAGIC_KEY_VERSION V
153//#define MAGIC_KEY_STATUS S
154//#define MAGIC_KEY_CONSOLE C
155//#define MAGIC_KEY_LAYER0 0
156//#define MAGIC_KEY_LAYER0_ALT GRAVE
157//#define MAGIC_KEY_LAYER1 1
158//#define MAGIC_KEY_LAYER2 2
159//#define MAGIC_KEY_LAYER3 3
160//#define MAGIC_KEY_LAYER4 4
161//#define MAGIC_KEY_LAYER5 5
162//#define MAGIC_KEY_LAYER6 6
163//#define MAGIC_KEY_LAYER7 7
164//#define MAGIC_KEY_LAYER8 8
165//#define MAGIC_KEY_LAYER9 9
166//#define MAGIC_KEY_BOOTLOADER B
167//#define MAGIC_KEY_BOOTLOADER_ALT ESC
168//#define MAGIC_KEY_LOCK CAPS
169//#define MAGIC_KEY_EEPROM E
170//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
171//#define MAGIC_KEY_NKRO N
172//#define MAGIC_KEY_SLEEP_LED Z
173
174/*
175 * Feature disable options
176 * These options are also useful to firmware size reduction.
177 */
178
179/* disable debug print */
180//#define NO_DEBUG
181
182/* disable print */
183//#define NO_PRINT
184
185/* disable action features */
186//#define NO_ACTION_LAYER
187//#define NO_ACTION_TAPPING
188//#define NO_ACTION_ONESHOT
189
190/* disable these deprecated features by default */
191#define NO_ACTION_MACRO
192#define NO_ACTION_FUNCTION
193
194/*
195 * MIDI options
196 */
197
198/* Prevent use of disabled MIDI features in the keymap */
199//#define MIDI_ENABLE_STRICT 1
200
201/* enable basic MIDI features:
202 - MIDI notes can be sent when in Music mode is on
203*/
204//#define MIDI_BASIC
205
206/* enable advanced MIDI features:
207 - MIDI notes can be added to the keymap
208 - Octave shift and transpose
209 - Virtual sustain, portamento, and modulation wheel
210 - etc.
211*/
212//#define MIDI_ADVANCED
213
214/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
215//#define MIDI_TONE_KEYCODE_OCTAVES 1
216
217/* Bootmagic Lite key configuration */
218// #define BOOTMAGIC_LITE_ROW 0
219// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/choc_taro/info.json b/keyboards/choc_taro/info.json
new file mode 100644
index 000000000..33821afe0
--- /dev/null
+++ b/keyboards/choc_taro/info.json
@@ -0,0 +1,558 @@
1{
2 "keyboard_name": "choc_taro",
3 "url": "https://kakunpc.booth.pm/",
4 "maintainer": "kakunpc",
5 "width": 15,
6 "height": 5,
7 "layouts": {
8 "LAYOUT_all": {
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, "w":2.25},
54
55 {"x":0, "y":3, "w":2.25},
56 {"x":2.25, "y":3},
57 {"x":3.25, "y":3},
58 {"x":4.25, "y":3},
59 {"x":5.25, "y":3},
60 {"x":6.25, "y":3},
61 {"x":7.25, "y":3},
62 {"x":8.25, "y":3},
63 {"x":9.25, "y":3},
64 {"x":10.25, "y":3},
65 {"x":11.25, "y":3},
66 {"x":12.25, "y":3, "w":1.75},
67 {"x":14, "y":3},
68
69 {"x":1.25, "y":4, "w":1.25},
70 {"x":2.5, "y":4, "w":1.25},
71 {"x":3.75, "y":4, "w":2.25},
72 {"x":6, "y":4, "w":1.25},
73 {"x":7.25, "y":4, "w":2.75},
74 {"x":10, "y":4, "w":1.25},
75 {"x":11.25, "y":4, "w":1.25},
76 {"x":12.5, "y":4, "w":1.25}]
77 },
78 "LAYOUT_ansi": {
79 "layout": [{"x":0, "y":0},
80 {"x":1, "y":0},
81 {"x":2, "y":0},
82 {"x":3, "y":0},
83 {"x":4, "y":0},
84 {"x":5, "y":0},
85 {"x":6, "y":0},
86 {"x":7, "y":0},
87 {"x":8, "y":0},
88 {"x":9, "y":0},
89 {"x":10, "y":0},
90 {"x":11, "y":0},
91 {"x":12, "y":0},
92 {"x":13, "y":0, "w":2},
93
94 {"x":0, "y":1, "w":1.5},
95 {"x":1.5, "y":1},
96 {"x":2.5, "y":1},
97 {"x":3.5, "y":1},
98 {"x":4.5, "y":1},
99 {"x":5.5, "y":1},
100 {"x":6.5, "y":1},
101 {"x":7.5, "y":1},
102 {"x":8.5, "y":1},
103 {"x":9.5, "y":1},
104 {"x":10.5, "y":1},
105 {"x":11.5, "y":1},
106 {"x":12.5, "y":1},
107 {"x":13.5, "y":1, "w":1.5},
108
109 {"x":0, "y":2, "w":1.75},
110 {"x":1.75, "y":2},
111 {"x":2.75, "y":2},
112 {"x":3.75, "y":2},
113 {"x":4.75, "y":2},
114 {"x":5.75, "y":2},
115 {"x":6.75, "y":2},
116 {"x":7.75, "y":2},
117 {"x":8.75, "y":2},
118 {"x":9.75, "y":2},
119 {"x":10.75, "y":2},
120 {"x":11.75, "y":2},
121 {"x":12.75, "y":2, "w":2.25},
122
123 {"x":0, "y":3, "w":2.25},
124 {"x":2.25, "y":3},
125 {"x":3.25, "y":3},
126 {"x":4.25, "y":3},
127 {"x":5.25, "y":3},
128 {"x":6.25, "y":3},
129 {"x":7.25, "y":3},
130 {"x":8.25, "y":3},
131 {"x":9.25, "y":3},
132 {"x":10.25, "y":3},
133 {"x":11.25, "y":3},
134 {"x":12.25, "y":3, "w":2.75},
135
136 {"x":1.25, "y":4, "w":1.25},
137 {"x":2.5, "y":4, "w":1.25},
138 {"x":3.75, "y":4, "w":2.25},
139 {"x":6, "y":4, "w":1.25},
140 {"x":7.25, "y":4, "w":2.75},
141 {"x":10, "y":4, "w":1.25},
142 {"x":11.25, "y":4, "w":1.25},
143 {"x":12.5, "y":4, "w":1.25}]
144 },
145 "LAYOUT_ansi_split_bs": {
146 "layout": [{"x":0, "y":0},
147 {"x":1, "y":0},
148 {"x":2, "y":0},
149 {"x":3, "y":0},
150 {"x":4, "y":0},
151 {"x":5, "y":0},
152 {"x":6, "y":0},
153 {"x":7, "y":0},
154 {"x":8, "y":0},
155 {"x":9, "y":0},
156 {"x":10, "y":0},
157 {"x":11, "y":0},
158 {"x":12, "y":0},
159 {"x":13, "y":0},
160 {"x":14, "y":0},
161
162 {"x":0, "y":1, "w":1.5},
163 {"x":1.5, "y":1},
164 {"x":2.5, "y":1},
165 {"x":3.5, "y":1},
166 {"x":4.5, "y":1},
167 {"x":5.5, "y":1},
168 {"x":6.5, "y":1},
169 {"x":7.5, "y":1},
170 {"x":8.5, "y":1},
171 {"x":9.5, "y":1},
172 {"x":10.5, "y":1},
173 {"x":11.5, "y":1},
174 {"x":12.5, "y":1},
175 {"x":13.5, "y":1, "w":1.5},
176
177 {"x":0, "y":2, "w":1.75},
178 {"x":1.75, "y":2},
179 {"x":2.75, "y":2},
180 {"x":3.75, "y":2},
181 {"x":4.75, "y":2},
182 {"x":5.75, "y":2},
183 {"x":6.75, "y":2},
184 {"x":7.75, "y":2},
185 {"x":8.75, "y":2},
186 {"x":9.75, "y":2},
187 {"x":10.75, "y":2},
188 {"x":11.75, "y":2},
189 {"x":12.75, "y":2, "w":2.25},
190
191 {"x":0, "y":3, "w":2.25},
192 {"x":2.25, "y":3},
193 {"x":3.25, "y":3},
194 {"x":4.25, "y":3},
195 {"x":5.25, "y":3},
196 {"x":6.25, "y":3},
197 {"x":7.25, "y":3},
198 {"x":8.25, "y":3},
199 {"x":9.25, "y":3},
200 {"x":10.25, "y":3},
201 {"x":11.25, "y":3},
202 {"x":12.25, "y":3, "w":2.75},
203
204 {"x":1.25, "y":4, "w":1.25},
205 {"x":2.5, "y":4, "w":1.25},
206 {"x":3.75, "y":4, "w":2.25},
207 {"x":6, "y":4, "w":1.25},
208 {"x":7.25, "y":4, "w":2.75},
209 {"x":10, "y":4, "w":1.25},
210 {"x":11.25, "y":4, "w":1.25},
211 {"x":12.5, "y":4, "w":1.25}]
212 },
213 "LAYOUT_ansi_split_rshift": {
214 "layout": [{"x":0, "y":0},
215 {"x":1, "y":0},
216 {"x":2, "y":0},
217 {"x":3, "y":0},
218 {"x":4, "y":0},
219 {"x":5, "y":0},
220 {"x":6, "y":0},
221 {"x":7, "y":0},
222 {"x":8, "y":0},
223 {"x":9, "y":0},
224 {"x":10, "y":0},
225 {"x":11, "y":0},
226 {"x":12, "y":0},
227 {"x":13, "y":0, "w":2},
228
229 {"x":0, "y":1, "w":1.5},
230 {"x":1.5, "y":1},
231 {"x":2.5, "y":1},
232 {"x":3.5, "y":1},
233 {"x":4.5, "y":1},
234 {"x":5.5, "y":1},
235 {"x":6.5, "y":1},
236 {"x":7.5, "y":1},
237 {"x":8.5, "y":1},
238 {"x":9.5, "y":1},
239 {"x":10.5, "y":1},
240 {"x":11.5, "y":1},
241 {"x":12.5, "y":1},
242 {"x":13.5, "y":1, "w":1.5},
243
244 {"x":0, "y":2, "w":1.75},
245 {"x":1.75, "y":2},
246 {"x":2.75, "y":2},
247 {"x":3.75, "y":2},
248 {"x":4.75, "y":2},
249 {"x":5.75, "y":2},
250 {"x":6.75, "y":2},
251 {"x":7.75, "y":2},
252 {"x":8.75, "y":2},
253 {"x":9.75, "y":2},
254 {"x":10.75, "y":2},
255 {"x":11.75, "y":2},
256 {"x":12.75, "y":2, "w":2.25},
257
258 {"x":0, "y":3, "w":2.25},
259 {"x":2.25, "y":3},
260 {"x":3.25, "y":3},
261 {"x":4.25, "y":3},
262 {"x":5.25, "y":3},
263 {"x":6.25, "y":3},
264 {"x":7.25, "y":3},
265 {"x":8.25, "y":3},
266 {"x":9.25, "y":3},
267 {"x":10.25, "y":3},
268 {"x":11.25, "y":3},
269 {"x":12.25, "y":3, "w":1.75},
270 {"x":14, "y":3},
271
272 {"x":1.25, "y":4, "w":1.25},
273 {"x":2.5, "y":4, "w":1.25},
274 {"x":3.75, "y":4, "w":2.25},
275 {"x":6, "y":4, "w":1.25},
276 {"x":7.25, "y":4, "w":2.75},
277 {"x":10, "y":4, "w":1.25},
278 {"x":11.25, "y":4, "w":1.25},
279 {"x":12.5, "y":4, "w":1.25}]
280 },
281 "LAYOUT_iso": {
282 "layout": [
283 {"x":0, "y":0},
284 {"x":1, "y":0},
285 {"x":2, "y":0},
286 {"x":3, "y":0},
287 {"x":4, "y":0},
288 {"x":5, "y":0},
289 {"x":6, "y":0},
290 {"x":7, "y":0},
291 {"x":8, "y":0},
292 {"x":9, "y":0},
293 {"x":10, "y":0},
294 {"x":11, "y":0},
295 {"x":12, "y":0},
296 {"x":13, "y":0, "w":2},
297
298 {"x":0, "y":1, "w":1.5},
299 {"x":1.5, "y":1},
300 {"x":2.5, "y":1},
301 {"x":3.5, "y":1},
302 {"x":4.5, "y":1},
303 {"x":5.5, "y":1},
304 {"x":6.5, "y":1},
305 {"x":7.5, "y":1},
306 {"x":8.5, "y":1},
307 {"x":9.5, "y":1},
308 {"x":10.5, "y":1},
309 {"x":11.5, "y":1},
310 {"x":12.5, "y":1},
311 {"x":13.75, "y":1, "w":1.25, "h":2},
312
313 {"x":0, "y":2, "w":1.75},
314 {"x":1.75, "y":2},
315 {"x":2.75, "y":2},
316 {"x":3.75, "y":2},
317 {"x":4.75, "y":2},
318 {"x":5.75, "y":2},
319 {"x":6.75, "y":2},
320 {"x":7.75, "y":2},
321 {"x":8.75, "y":2},
322 {"x":9.75, "y":2},
323 {"x":10.75, "y":2},
324 {"x":11.75, "y":2},
325 {"x":12.75, "y":2},
326
327 {"x":0, "y":3, "w":2.25},
328 {"x":2.25, "y":3},
329 {"x":3.25, "y":3},
330 {"x":4.25, "y":3},
331 {"x":5.25, "y":3},
332 {"x":6.25, "y":3},
333 {"x":7.25, "y":3},
334 {"x":8.25, "y":3},
335 {"x":9.25, "y":3},
336 {"x":10.25, "y":3},
337 {"x":11.25, "y":3},
338 {"x":12.25, "y":3, "w":2.75},
339
340 {"x":1.25, "y":4, "w":1.25},
341 {"x":2.5, "y":4, "w":1.25},
342 {"x":3.75, "y":4, "w":2.25},
343 {"x":6, "y":4, "w":1.25},
344 {"x":7.25, "y":4, "w":2.75},
345 {"x":10, "y":4, "w":1.25},
346 {"x":11.25, "y":4, "w":1.25},
347 {"x":12.5, "y":4, "w":1.25}]
348 },
349 "LAYOUT_iso_split_rshift": {
350 "layout": [
351 {"x":0, "y":0},
352 {"x":1, "y":0},
353 {"x":2, "y":0},
354 {"x":3, "y":0},
355 {"x":4, "y":0},
356 {"x":5, "y":0},
357 {"x":6, "y":0},
358 {"x":7, "y":0},
359 {"x":8, "y":0},
360 {"x":9, "y":0},
361 {"x":10, "y":0},
362 {"x":11, "y":0},
363 {"x":12, "y":0},
364 {"x":13, "y":0, "w":2},
365
366 {"x":0, "y":1, "w":1.5},
367 {"x":1.5, "y":1},
368 {"x":2.5, "y":1},
369 {"x":3.5, "y":1},
370 {"x":4.5, "y":1},
371 {"x":5.5, "y":1},
372 {"x":6.5, "y":1},
373 {"x":7.5, "y":1},
374 {"x":8.5, "y":1},
375 {"x":9.5, "y":1},
376 {"x":10.5, "y":1},
377 {"x":11.5, "y":1},
378 {"x":12.5, "y":1},
379 {"x":13.75, "y":1, "w":1.25, "h":2},
380
381 {"x":0, "y":2, "w":1.75},
382 {"x":1.75, "y":2},
383 {"x":2.75, "y":2},
384 {"x":3.75, "y":2},
385 {"x":4.75, "y":2},
386 {"x":5.75, "y":2},
387 {"x":6.75, "y":2},
388 {"x":7.75, "y":2},
389 {"x":8.75, "y":2},
390 {"x":9.75, "y":2},
391 {"x":10.75, "y":2},
392 {"x":11.75, "y":2},
393 {"x":12.75, "y":2},
394
395 {"x":0, "y":3, "w":2.25},
396 {"x":2.25, "y":3},
397 {"x":3.25, "y":3},
398 {"x":4.25, "y":3},
399 {"x":5.25, "y":3},
400 {"x":6.25, "y":3},
401 {"x":7.25, "y":3},
402 {"x":8.25, "y":3},
403 {"x":9.25, "y":3},
404 {"x":10.25, "y":3},
405 {"x":11.25, "y":3},
406 {"x":12.25, "y":3, "w":1.75},
407 {"x":14, "y":3},
408
409 {"x":1.25, "y":4, "w":1.25},
410 {"x":2.5, "y":4, "w":1.25},
411 {"x":3.75, "y":4, "w":2.25},
412 {"x":6, "y":4, "w":1.25},
413 {"x":7.25, "y":4, "w":2.75},
414 {"x":10, "y":4, "w":1.25},
415 {"x":11.25, "y":4, "w":1.25},
416 {"x":12.5, "y":4, "w":1.25}]
417 },
418 "LAYOUT_iso_split_bs": {
419 "layout": [
420 {"x":0, "y":0},
421 {"x":1, "y":0},
422 {"x":2, "y":0},
423 {"x":3, "y":0},
424 {"x":4, "y":0},
425 {"x":5, "y":0},
426 {"x":6, "y":0},
427 {"x":7, "y":0},
428 {"x":8, "y":0},
429 {"x":9, "y":0},
430 {"x":10, "y":0},
431 {"x":11, "y":0},
432 {"x":12, "y":0},
433 {"x":13, "y":0},
434 {"x":14, "y":0},
435
436 {"x":0, "y":1, "w":1.5},
437 {"x":1.5, "y":1},
438 {"x":2.5, "y":1},
439 {"x":3.5, "y":1},
440 {"x":4.5, "y":1},
441 {"x":5.5, "y":1},
442 {"x":6.5, "y":1},
443 {"x":7.5, "y":1},
444 {"x":8.5, "y":1},
445 {"x":9.5, "y":1},
446 {"x":10.5, "y":1},
447 {"x":11.5, "y":1},
448 {"x":12.5, "y":1},
449 {"x":13.75, "y":1, "w":1.25, "h":2},
450
451 {"x":0, "y":2, "w":1.75},
452 {"x":1.75, "y":2},
453 {"x":2.75, "y":2},
454 {"x":3.75, "y":2},
455 {"x":4.75, "y":2},
456 {"x":5.75, "y":2},
457 {"x":6.75, "y":2},
458 {"x":7.75, "y":2},
459 {"x":8.75, "y":2},
460 {"x":9.75, "y":2},
461 {"x":10.75, "y":2},
462 {"x":11.75, "y":2},
463 {"x":12.75, "y":2},
464
465 {"x":0, "y":3, "w":2.25},
466 {"x":2.25, "y":3},
467 {"x":3.25, "y":3},
468 {"x":4.25, "y":3},
469 {"x":5.25, "y":3},
470 {"x":6.25, "y":3},
471 {"x":7.25, "y":3},
472 {"x":8.25, "y":3},
473 {"x":9.25, "y":3},
474 {"x":10.25, "y":3},
475 {"x":11.25, "y":3},
476 {"x":12.25, "y":3, "w":2.75},
477
478 {"x":1.25, "y":4, "w":1.25},
479 {"x":2.5, "y":4, "w":1.25},
480 {"x":3.75, "y":4, "w":2.25},
481 {"x":6, "y":4, "w":1.25},
482 {"x":7.25, "y":4, "w":2.75},
483 {"x":10, "y":4, "w":1.25},
484 {"x":11.25, "y":4, "w":1.25},
485 {"x":12.5, "y":4, "w":1.25}]
486 },
487 "LAYOUT_iso_split_bs_rshift": {
488 "layout": [
489 {"x":0, "y":0},
490 {"x":1, "y":0},
491 {"x":2, "y":0},
492 {"x":3, "y":0},
493 {"x":4, "y":0},
494 {"x":5, "y":0},
495 {"x":6, "y":0},
496 {"x":7, "y":0},
497 {"x":8, "y":0},
498 {"x":9, "y":0},
499 {"x":10, "y":0},
500 {"x":11, "y":0},
501 {"x":12, "y":0},
502 {"x":13, "y":0},
503 {"x":14, "y":0},
504
505 {"x":0, "y":1, "w":1.5},
506 {"x":1.5, "y":1},
507 {"x":2.5, "y":1},
508 {"x":3.5, "y":1},
509 {"x":4.5, "y":1},
510 {"x":5.5, "y":1},
511 {"x":6.5, "y":1},
512 {"x":7.5, "y":1},
513 {"x":8.5, "y":1},
514 {"x":9.5, "y":1},
515 {"x":10.5, "y":1},
516 {"x":11.5, "y":1},
517 {"x":12.5, "y":1},
518 {"x":13.75, "y":1, "w":1.25, "h":2},
519
520 {"x":0, "y":2, "w":1.75},
521 {"x":1.75, "y":2},
522 {"x":2.75, "y":2},
523 {"x":3.75, "y":2},
524 {"x":4.75, "y":2},
525 {"x":5.75, "y":2},
526 {"x":6.75, "y":2},
527 {"x":7.75, "y":2},
528 {"x":8.75, "y":2},
529 {"x":9.75, "y":2},
530 {"x":10.75, "y":2},
531 {"x":11.75, "y":2},
532 {"x":12.75, "y":2},
533
534 {"x":0, "y":3, "w":2.25},
535 {"x":2.25, "y":3},
536 {"x":3.25, "y":3},
537 {"x":4.25, "y":3},
538 {"x":5.25, "y":3},
539 {"x":6.25, "y":3},
540 {"x":7.25, "y":3},
541 {"x":8.25, "y":3},
542 {"x":9.25, "y":3},
543 {"x":10.25, "y":3},
544 {"x":11.25, "y":3},
545 {"x":12.25, "y":3, "w":1.75},
546 {"x":14, "y":3},
547
548 {"x":1.25, "y":4, "w":1.25},
549 {"x":2.5, "y":4, "w":1.25},
550 {"x":3.75, "y":4, "w":2.25},
551 {"x":6, "y":4, "w":1.25},
552 {"x":7.25, "y":4, "w":2.75},
553 {"x":10, "y":4, "w":1.25},
554 {"x":11.25, "y":4, "w":1.25},
555 {"x":12.5, "y":4, "w":1.25}]
556 }
557 }
558}
diff --git a/keyboards/choc_taro/keymaps/default/keymap.c b/keyboards/choc_taro/keymaps/default/keymap.c
new file mode 100644
index 000000000..4de3c2d55
--- /dev/null
+++ b/keyboards/choc_taro/keymaps/default/keymap.c
@@ -0,0 +1,25 @@
1/* Copyright 2020 kakunpc
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
17const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
18 [0] = LAYOUT_all( /* Base */
19 KC_ESC, 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,
20 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,
21 KC_LCAP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
22 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_DEL,
23 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL
24 )
25};
diff --git a/keyboards/choc_taro/keymaps/default/readme.md b/keyboards/choc_taro/keymaps/default/readme.md
new file mode 100644
index 000000000..a2cb11904
--- /dev/null
+++ b/keyboards/choc_taro/keymaps/default/readme.md
@@ -0,0 +1 @@
# The default keymap for choc_taro
diff --git a/keyboards/choc_taro/keymaps/via/keymap.c b/keyboards/choc_taro/keymaps/via/keymap.c
new file mode 100644
index 000000000..a1d48eb5e
--- /dev/null
+++ b/keyboards/choc_taro/keymaps/via/keymap.c
@@ -0,0 +1,48 @@
1/* Copyright 2020 kakunpc
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 [0] = LAYOUT_all( /* Base */
21 KC_ESC, 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,
22 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,
23 KC_LCAP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
24 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_DEL,
25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL
26 ),
27 [1] = LAYOUT_all(
28 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
32 _______, _______, _______, _______, _______, _______, _______, _______
33 ),
34 [2] = LAYOUT_all(
35 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
39 _______, _______, _______, _______, _______, _______, _______, _______
40 ),
41 [3] = LAYOUT_all(
42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
46 _______, _______, _______, _______, _______, _______, _______, _______
47 )
48};
diff --git a/keyboards/choc_taro/keymaps/via/readme.md b/keyboards/choc_taro/keymaps/via/readme.md
new file mode 100644
index 000000000..cb3af77df
--- /dev/null
+++ b/keyboards/choc_taro/keymaps/via/readme.md
@@ -0,0 +1,3 @@
1# The default keymap for choc_taro
2
3This is an experimental. Use at your own risk.
diff --git a/keyboards/choc_taro/keymaps/via/rules.mk b/keyboards/choc_taro/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/choc_taro/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/choc_taro/matrix.c b/keyboards/choc_taro/matrix.c
new file mode 100644
index 000000000..02421551d
--- /dev/null
+++ b/keyboards/choc_taro/matrix.c
@@ -0,0 +1,156 @@
1/*
2Copyright 2012-2018 Jun Wako, Jack Humbert, Yiancar
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#include <stdint.h>
18#include <stdbool.h>
19#include "matrix.h"
20#include "quantum.h"
21
22#if (MATRIX_COLS <= 8)
23# define ROW_SHIFTER ((uint8_t)1)
24#elif (MATRIX_COLS <= 16)
25# define ROW_SHIFTER ((uint16_t)1)
26#elif (MATRIX_COLS <= 32)
27# define ROW_SHIFTER ((uint32_t)1)
28#endif
29
30static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS;
31static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
32
33static void select_row(uint8_t row) {
34 setPinOutput(row_pins[row]);
35 writePinLow(row_pins[row]);
36}
37
38static void unselect_row(uint8_t row) {
39 setPinInputHigh(row_pins[row]);
40}
41
42static void unselect_rows(void) {
43 for (uint8_t x = 0; x < MATRIX_ROWS; x++) {
44 setPinInputHigh(row_pins[x]);
45 }
46}
47
48static void select_col(uint8_t col) {
49 setPinOutput(col_pins[col]);
50 writePinLow(col_pins[col]);
51}
52
53static void unselect_col(uint8_t col) {
54 setPinInputHigh(col_pins[col]);
55}
56
57static void unselect_cols(void) {
58 for (uint8_t x = 0; x < MATRIX_COLS; x++) {
59 setPinInputHigh(col_pins[x]);
60 }
61}
62
63static void init_pins(void) {
64 unselect_rows();
65 unselect_cols();
66
67 for (uint8_t x = 0; x < MATRIX_COLS; x++) {
68 setPinInputHigh(col_pins[x]);
69 }
70
71 for (uint8_t x = 0; x < MATRIX_ROWS; x++) {
72 setPinInputHigh(row_pins[x]);
73 }
74}
75
76static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) {
77 // Store last value of row prior to reading
78 matrix_row_t last_row_value = current_matrix[current_row];
79
80 // Clear data in matrix row
81 current_matrix[current_row] = 0;
82
83 // Select row and wait for row selecton to stabilize
84 select_row(current_row);
85 matrix_io_delay();
86
87 // For each col...
88 for(uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) {
89
90 // Select the col pin to read (active low)
91 uint8_t pin_state = readPin(col_pins[col_index]);
92
93 // Populate the matrix row with the state of the col pin
94 current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index);
95 }
96
97 // Unselect row
98 unselect_row(current_row);
99
100 return (last_row_value != current_matrix[current_row]);
101}
102
103static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) {
104 bool matrix_changed = false;
105
106 // Select col and wait for col selecton to stabilize
107 select_col(current_col);
108 matrix_io_delay();
109
110 // For each row...
111 for(uint8_t row_index = 0; row_index < MATRIX_ROWS / 2; row_index++) {
112 uint8_t tmp = row_index + MATRIX_ROWS / 2;
113 // Store last value of row prior to reading
114 matrix_row_t last_row_value = current_matrix[tmp];
115
116 // Check row pin state
117 if (readPin(row_pins[row_index]) == 0) {
118 // Pin LO, set col bit
119 current_matrix[tmp] |= (ROW_SHIFTER << current_col);
120 } else {
121 // Pin HI, clear col bit
122 current_matrix[tmp] &= ~(ROW_SHIFTER << current_col);
123 }
124
125 // Determine if the matrix changed state
126 if ((last_row_value != current_matrix[tmp]) && !(matrix_changed)) {
127 matrix_changed = true;
128 }
129 }
130
131 // Unselect col
132 unselect_col(current_col);
133
134 return matrix_changed;
135}
136
137void matrix_init_custom(void) {
138 // initialize key pins
139 init_pins();
140}
141
142bool matrix_scan_custom(matrix_row_t current_matrix[]) {
143 bool changed = false;
144
145 // Set row, read cols
146 for (uint8_t current_row = 0; current_row < MATRIX_ROWS / 2; current_row++) {
147 changed |= read_cols_on_row(current_matrix, current_row);
148 }
149
150 // Set col, read rows
151 for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++) {
152 changed |= read_rows_on_col(current_matrix, current_col);
153 }
154
155 return changed;
156}
diff --git a/keyboards/choc_taro/readme.md b/keyboards/choc_taro/readme.md
new file mode 100644
index 000000000..f0900c2fe
--- /dev/null
+++ b/keyboards/choc_taro/readme.md
@@ -0,0 +1,15 @@
1# choc_taro
2
3![choc_taro](https://i.gyazo.com/717ddeed13cd2f956ed01b71c6e96f87.jpg)
4
5gh60 compatible choc keyboard
6
7* Keyboard Maintainer: [kakunpc](https://github.com/kakunpc)
8* Hardware Supported: choc taro pcb
9* Hardware Availability: booth([@kakunpc](https://kakunpc.booth.pm/))
10
11Make example for this keyboard (after setting up your build environment):
12
13 make choc_taro:default
14
15See 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/choc_taro/rules.mk b/keyboards/choc_taro/rules.mk
new file mode 100644
index 000000000..c11995e53
--- /dev/null
+++ b/keyboards/choc_taro/rules.mk
@@ -0,0 +1,34 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5# Teensy halfkay
6# Pro Micro caterina
7# Atmel DFU atmel-dfu
8# LUFA DFU lufa-dfu
9# QMK DFU qmk-dfu
10# ATmega32A bootloadHID
11# ATmega328P USBasp
12BOOTLOADER = atmel-dfu
13
14# Build Options
15# change yes to no to disable
16#
17BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
18MOUSEKEY_ENABLE = yes # Mouse keys
19EXTRAKEY_ENABLE = yes # Audio control and System control
20CONSOLE_ENABLE = yes # Console for debug
21COMMAND_ENABLE = yes # Commands for debug and configuration
22# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
23SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
24# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
25NKRO_ENABLE = no # USB Nkey Rollover
26BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
27RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
28MIDI_ENABLE = no # MIDI support
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32
33CUSTOM_MATRIX = lite
34SRC += matrix.c