aboutsummaryrefslogtreecommitdiff
path: root/keyboards/choc_taro
diff options
context:
space:
mode:
authorAkshay <[email protected]>2022-04-10 12:13:40 +0100
committerAkshay <[email protected]>2022-04-10 12:13:40 +0100
commitdc90387ce7d8ba7b607d9c48540bf6d8b560f14d (patch)
tree4ccb8fa5886b66fa9d480edef74236c27f035e16 /keyboards/choc_taro
Diffstat (limited to 'keyboards/choc_taro')
-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.h143
-rw-r--r--keyboards/choc_taro/info.json556
-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.mk21
12 files changed, 1328 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..2852206b1
--- /dev/null
+++ b/keyboards/choc_taro/config.h
@@ -0,0 +1,143 @@
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 VID & PID are lisenced from microchip sublisence program, Don't use other project! */
24#define VENDOR_ID 0x04D8
25#define PRODUCT_ID 0xEB60
26#define DEVICE_VER 0x0001
27#define MANUFACTURER kakunpc
28#define PRODUCT choc_taro
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 * Feature disable options
123 * These options are also useful to firmware size reduction.
124 */
125
126/* disable debug print */
127//#define NO_DEBUG
128
129/* disable print */
130//#define NO_PRINT
131
132/* disable action features */
133//#define NO_ACTION_LAYER
134//#define NO_ACTION_TAPPING
135//#define NO_ACTION_ONESHOT
136
137/* disable these deprecated features by default */
138#define NO_ACTION_MACRO
139#define NO_ACTION_FUNCTION
140
141/* Bootmagic Lite key configuration */
142// #define BOOTMAGIC_LITE_ROW 0
143// #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..3a193ee05
--- /dev/null
+++ b/keyboards/choc_taro/info.json
@@ -0,0 +1,556 @@
1{
2 "keyboard_name": "choc_taro",
3 "url": "https://kakunpc.booth.pm/",
4 "maintainer": "kakunpc",
5 "layouts": {
6 "LAYOUT_all": {
7 "layout": [
8 {"x":0, "y":0},
9 {"x":1, "y":0},
10 {"x":2, "y":0},
11 {"x":3, "y":0},
12 {"x":4, "y":0},
13 {"x":5, "y":0},
14 {"x":6, "y":0},
15 {"x":7, "y":0},
16 {"x":8, "y":0},
17 {"x":9, "y":0},
18 {"x":10, "y":0},
19 {"x":11, "y":0},
20 {"x":12, "y":0},
21 {"x":13, "y":0},
22 {"x":14, "y":0},
23
24 {"x":0, "y":1, "w":1.5},
25 {"x":1.5, "y":1},
26 {"x":2.5, "y":1},
27 {"x":3.5, "y":1},
28 {"x":4.5, "y":1},
29 {"x":5.5, "y":1},
30 {"x":6.5, "y":1},
31 {"x":7.5, "y":1},
32 {"x":8.5, "y":1},
33 {"x":9.5, "y":1},
34 {"x":10.5, "y":1},
35 {"x":11.5, "y":1},
36 {"x":12.5, "y":1},
37 {"x":13.5, "y":1, "w":1.5},
38
39 {"x":0, "y":2, "w":1.75},
40 {"x":1.75, "y":2},
41 {"x":2.75, "y":2},
42 {"x":3.75, "y":2},
43 {"x":4.75, "y":2},
44 {"x":5.75, "y":2},
45 {"x":6.75, "y":2},
46 {"x":7.75, "y":2},
47 {"x":8.75, "y":2},
48 {"x":9.75, "y":2},
49 {"x":10.75, "y":2},
50 {"x":11.75, "y":2},
51 {"x":12.75, "y":2, "w":2.25},
52
53 {"x":0, "y":3, "w":2.25},
54 {"x":2.25, "y":3},
55 {"x":3.25, "y":3},
56 {"x":4.25, "y":3},
57 {"x":5.25, "y":3},
58 {"x":6.25, "y":3},
59 {"x":7.25, "y":3},
60 {"x":8.25, "y":3},
61 {"x":9.25, "y":3},
62 {"x":10.25, "y":3},
63 {"x":11.25, "y":3},
64 {"x":12.25, "y":3, "w":1.75},
65 {"x":14, "y":3},
66
67 {"x":1.25, "y":4, "w":1.25},
68 {"x":2.5, "y":4, "w":1.25},
69 {"x":3.75, "y":4, "w":2.25},
70 {"x":6, "y":4, "w":1.25},
71 {"x":7.25, "y":4, "w":2.75},
72 {"x":10, "y":4, "w":1.25},
73 {"x":11.25, "y":4, "w":1.25},
74 {"x":12.5, "y":4, "w":1.25}]
75 },
76 "LAYOUT_ansi": {
77 "layout": [{"x":0, "y":0},
78 {"x":1, "y":0},
79 {"x":2, "y":0},
80 {"x":3, "y":0},
81 {"x":4, "y":0},
82 {"x":5, "y":0},
83 {"x":6, "y":0},
84 {"x":7, "y":0},
85 {"x":8, "y":0},
86 {"x":9, "y":0},
87 {"x":10, "y":0},
88 {"x":11, "y":0},
89 {"x":12, "y":0},
90 {"x":13, "y":0, "w":2},
91
92 {"x":0, "y":1, "w":1.5},
93 {"x":1.5, "y":1},
94 {"x":2.5, "y":1},
95 {"x":3.5, "y":1},
96 {"x":4.5, "y":1},
97 {"x":5.5, "y":1},
98 {"x":6.5, "y":1},
99 {"x":7.5, "y":1},
100 {"x":8.5, "y":1},
101 {"x":9.5, "y":1},
102 {"x":10.5, "y":1},
103 {"x":11.5, "y":1},
104 {"x":12.5, "y":1},
105 {"x":13.5, "y":1, "w":1.5},
106
107 {"x":0, "y":2, "w":1.75},
108 {"x":1.75, "y":2},
109 {"x":2.75, "y":2},
110 {"x":3.75, "y":2},
111 {"x":4.75, "y":2},
112 {"x":5.75, "y":2},
113 {"x":6.75, "y":2},
114 {"x":7.75, "y":2},
115 {"x":8.75, "y":2},
116 {"x":9.75, "y":2},
117 {"x":10.75, "y":2},
118 {"x":11.75, "y":2},
119 {"x":12.75, "y":2, "w":2.25},
120
121 {"x":0, "y":3, "w":2.25},
122 {"x":2.25, "y":3},
123 {"x":3.25, "y":3},
124 {"x":4.25, "y":3},
125 {"x":5.25, "y":3},
126 {"x":6.25, "y":3},
127 {"x":7.25, "y":3},
128 {"x":8.25, "y":3},
129 {"x":9.25, "y":3},
130 {"x":10.25, "y":3},
131 {"x":11.25, "y":3},
132 {"x":12.25, "y":3, "w":2.75},
133
134 {"x":1.25, "y":4, "w":1.25},
135 {"x":2.5, "y":4, "w":1.25},
136 {"x":3.75, "y":4, "w":2.25},
137 {"x":6, "y":4, "w":1.25},
138 {"x":7.25, "y":4, "w":2.75},
139 {"x":10, "y":4, "w":1.25},
140 {"x":11.25, "y":4, "w":1.25},
141 {"x":12.5, "y":4, "w":1.25}]
142 },
143 "LAYOUT_ansi_split_bs": {
144 "layout": [{"x":0, "y":0},
145 {"x":1, "y":0},
146 {"x":2, "y":0},
147 {"x":3, "y":0},
148 {"x":4, "y":0},
149 {"x":5, "y":0},
150 {"x":6, "y":0},
151 {"x":7, "y":0},
152 {"x":8, "y":0},
153 {"x":9, "y":0},
154 {"x":10, "y":0},
155 {"x":11, "y":0},
156 {"x":12, "y":0},
157 {"x":13, "y":0},
158 {"x":14, "y":0},
159
160 {"x":0, "y":1, "w":1.5},
161 {"x":1.5, "y":1},
162 {"x":2.5, "y":1},
163 {"x":3.5, "y":1},
164 {"x":4.5, "y":1},
165 {"x":5.5, "y":1},
166 {"x":6.5, "y":1},
167 {"x":7.5, "y":1},
168 {"x":8.5, "y":1},
169 {"x":9.5, "y":1},
170 {"x":10.5, "y":1},
171 {"x":11.5, "y":1},
172 {"x":12.5, "y":1},
173 {"x":13.5, "y":1, "w":1.5},
174
175 {"x":0, "y":2, "w":1.75},
176 {"x":1.75, "y":2},
177 {"x":2.75, "y":2},
178 {"x":3.75, "y":2},
179 {"x":4.75, "y":2},
180 {"x":5.75, "y":2},
181 {"x":6.75, "y":2},
182 {"x":7.75, "y":2},
183 {"x":8.75, "y":2},
184 {"x":9.75, "y":2},
185 {"x":10.75, "y":2},
186 {"x":11.75, "y":2},
187 {"x":12.75, "y":2, "w":2.25},
188
189 {"x":0, "y":3, "w":2.25},
190 {"x":2.25, "y":3},
191 {"x":3.25, "y":3},
192 {"x":4.25, "y":3},
193 {"x":5.25, "y":3},
194 {"x":6.25, "y":3},
195 {"x":7.25, "y":3},
196 {"x":8.25, "y":3},
197 {"x":9.25, "y":3},
198 {"x":10.25, "y":3},
199 {"x":11.25, "y":3},
200 {"x":12.25, "y":3, "w":2.75},
201
202 {"x":1.25, "y":4, "w":1.25},
203 {"x":2.5, "y":4, "w":1.25},
204 {"x":3.75, "y":4, "w":2.25},
205 {"x":6, "y":4, "w":1.25},
206 {"x":7.25, "y":4, "w":2.75},
207 {"x":10, "y":4, "w":1.25},
208 {"x":11.25, "y":4, "w":1.25},
209 {"x":12.5, "y":4, "w":1.25}]
210 },
211 "LAYOUT_ansi_split_rshift": {
212 "layout": [{"x":0, "y":0},
213 {"x":1, "y":0},
214 {"x":2, "y":0},
215 {"x":3, "y":0},
216 {"x":4, "y":0},
217 {"x":5, "y":0},
218 {"x":6, "y":0},
219 {"x":7, "y":0},
220 {"x":8, "y":0},
221 {"x":9, "y":0},
222 {"x":10, "y":0},
223 {"x":11, "y":0},
224 {"x":12, "y":0},
225 {"x":13, "y":0, "w":2},
226
227 {"x":0, "y":1, "w":1.5},
228 {"x":1.5, "y":1},
229 {"x":2.5, "y":1},
230 {"x":3.5, "y":1},
231 {"x":4.5, "y":1},
232 {"x":5.5, "y":1},
233 {"x":6.5, "y":1},
234 {"x":7.5, "y":1},
235 {"x":8.5, "y":1},
236 {"x":9.5, "y":1},
237 {"x":10.5, "y":1},
238 {"x":11.5, "y":1},
239 {"x":12.5, "y":1},
240 {"x":13.5, "y":1, "w":1.5},
241
242 {"x":0, "y":2, "w":1.75},
243 {"x":1.75, "y":2},
244 {"x":2.75, "y":2},
245 {"x":3.75, "y":2},
246 {"x":4.75, "y":2},
247 {"x":5.75, "y":2},
248 {"x":6.75, "y":2},
249 {"x":7.75, "y":2},
250 {"x":8.75, "y":2},
251 {"x":9.75, "y":2},
252 {"x":10.75, "y":2},
253 {"x":11.75, "y":2},
254 {"x":12.75, "y":2, "w":2.25},
255
256 {"x":0, "y":3, "w":2.25},
257 {"x":2.25, "y":3},
258 {"x":3.25, "y":3},
259 {"x":4.25, "y":3},
260 {"x":5.25, "y":3},
261 {"x":6.25, "y":3},
262 {"x":7.25, "y":3},
263 {"x":8.25, "y":3},
264 {"x":9.25, "y":3},
265 {"x":10.25, "y":3},
266 {"x":11.25, "y":3},
267 {"x":12.25, "y":3, "w":1.75},
268 {"x":14, "y":3},
269
270 {"x":1.25, "y":4, "w":1.25},
271 {"x":2.5, "y":4, "w":1.25},
272 {"x":3.75, "y":4, "w":2.25},
273 {"x":6, "y":4, "w":1.25},
274 {"x":7.25, "y":4, "w":2.75},
275 {"x":10, "y":4, "w":1.25},
276 {"x":11.25, "y":4, "w":1.25},
277 {"x":12.5, "y":4, "w":1.25}]
278 },
279 "LAYOUT_iso": {
280 "layout": [
281 {"x":0, "y":0},
282 {"x":1, "y":0},
283 {"x":2, "y":0},
284 {"x":3, "y":0},
285 {"x":4, "y":0},
286 {"x":5, "y":0},
287 {"x":6, "y":0},
288 {"x":7, "y":0},
289 {"x":8, "y":0},
290 {"x":9, "y":0},
291 {"x":10, "y":0},
292 {"x":11, "y":0},
293 {"x":12, "y":0},
294 {"x":13, "y":0, "w":2},
295
296 {"x":0, "y":1, "w":1.5},
297 {"x":1.5, "y":1},
298 {"x":2.5, "y":1},
299 {"x":3.5, "y":1},
300 {"x":4.5, "y":1},
301 {"x":5.5, "y":1},
302 {"x":6.5, "y":1},
303 {"x":7.5, "y":1},
304 {"x":8.5, "y":1},
305 {"x":9.5, "y":1},
306 {"x":10.5, "y":1},
307 {"x":11.5, "y":1},
308 {"x":12.5, "y":1},
309 {"x":13.75, "y":1, "w":1.25, "h":2},
310
311 {"x":0, "y":2, "w":1.75},
312 {"x":1.75, "y":2},
313 {"x":2.75, "y":2},
314 {"x":3.75, "y":2},
315 {"x":4.75, "y":2},
316 {"x":5.75, "y":2},
317 {"x":6.75, "y":2},
318 {"x":7.75, "y":2},
319 {"x":8.75, "y":2},
320 {"x":9.75, "y":2},
321 {"x":10.75, "y":2},
322 {"x":11.75, "y":2},
323 {"x":12.75, "y":2},
324
325 {"x":0, "y":3, "w":2.25},
326 {"x":2.25, "y":3},
327 {"x":3.25, "y":3},
328 {"x":4.25, "y":3},
329 {"x":5.25, "y":3},
330 {"x":6.25, "y":3},
331 {"x":7.25, "y":3},
332 {"x":8.25, "y":3},
333 {"x":9.25, "y":3},
334 {"x":10.25, "y":3},
335 {"x":11.25, "y":3},
336 {"x":12.25, "y":3, "w":2.75},
337
338 {"x":1.25, "y":4, "w":1.25},
339 {"x":2.5, "y":4, "w":1.25},
340 {"x":3.75, "y":4, "w":2.25},
341 {"x":6, "y":4, "w":1.25},
342 {"x":7.25, "y":4, "w":2.75},
343 {"x":10, "y":4, "w":1.25},
344 {"x":11.25, "y":4, "w":1.25},
345 {"x":12.5, "y":4, "w":1.25}]
346 },
347 "LAYOUT_iso_split_rshift": {
348 "layout": [
349 {"x":0, "y":0},
350 {"x":1, "y":0},
351 {"x":2, "y":0},
352 {"x":3, "y":0},
353 {"x":4, "y":0},
354 {"x":5, "y":0},
355 {"x":6, "y":0},
356 {"x":7, "y":0},
357 {"x":8, "y":0},
358 {"x":9, "y":0},
359 {"x":10, "y":0},
360 {"x":11, "y":0},
361 {"x":12, "y":0},
362 {"x":13, "y":0, "w":2},
363
364 {"x":0, "y":1, "w":1.5},
365 {"x":1.5, "y":1},
366 {"x":2.5, "y":1},
367 {"x":3.5, "y":1},
368 {"x":4.5, "y":1},
369 {"x":5.5, "y":1},
370 {"x":6.5, "y":1},
371 {"x":7.5, "y":1},
372 {"x":8.5, "y":1},
373 {"x":9.5, "y":1},
374 {"x":10.5, "y":1},
375 {"x":11.5, "y":1},
376 {"x":12.5, "y":1},
377 {"x":13.75, "y":1, "w":1.25, "h":2},
378
379 {"x":0, "y":2, "w":1.75},
380 {"x":1.75, "y":2},
381 {"x":2.75, "y":2},
382 {"x":3.75, "y":2},
383 {"x":4.75, "y":2},
384 {"x":5.75, "y":2},
385 {"x":6.75, "y":2},
386 {"x":7.75, "y":2},
387 {"x":8.75, "y":2},
388 {"x":9.75, "y":2},
389 {"x":10.75, "y":2},
390 {"x":11.75, "y":2},
391 {"x":12.75, "y":2},
392
393 {"x":0, "y":3, "w":2.25},
394 {"x":2.25, "y":3},
395 {"x":3.25, "y":3},
396 {"x":4.25, "y":3},
397 {"x":5.25, "y":3},
398 {"x":6.25, "y":3},
399 {"x":7.25, "y":3},
400 {"x":8.25, "y":3},
401 {"x":9.25, "y":3},
402 {"x":10.25, "y":3},
403 {"x":11.25, "y":3},
404 {"x":12.25, "y":3, "w":1.75},
405 {"x":14, "y":3},
406
407 {"x":1.25, "y":4, "w":1.25},
408 {"x":2.5, "y":4, "w":1.25},
409 {"x":3.75, "y":4, "w":2.25},
410 {"x":6, "y":4, "w":1.25},
411 {"x":7.25, "y":4, "w":2.75},
412 {"x":10, "y":4, "w":1.25},
413 {"x":11.25, "y":4, "w":1.25},
414 {"x":12.5, "y":4, "w":1.25}]
415 },
416 "LAYOUT_iso_split_bs": {
417 "layout": [
418 {"x":0, "y":0},
419 {"x":1, "y":0},
420 {"x":2, "y":0},
421 {"x":3, "y":0},
422 {"x":4, "y":0},
423 {"x":5, "y":0},
424 {"x":6, "y":0},
425 {"x":7, "y":0},
426 {"x":8, "y":0},
427 {"x":9, "y":0},
428 {"x":10, "y":0},
429 {"x":11, "y":0},
430 {"x":12, "y":0},
431 {"x":13, "y":0},
432 {"x":14, "y":0},
433
434 {"x":0, "y":1, "w":1.5},
435 {"x":1.5, "y":1},
436 {"x":2.5, "y":1},
437 {"x":3.5, "y":1},
438 {"x":4.5, "y":1},
439 {"x":5.5, "y":1},
440 {"x":6.5, "y":1},
441 {"x":7.5, "y":1},
442 {"x":8.5, "y":1},
443 {"x":9.5, "y":1},
444 {"x":10.5, "y":1},
445 {"x":11.5, "y":1},
446 {"x":12.5, "y":1},
447 {"x":13.75, "y":1, "w":1.25, "h":2},
448
449 {"x":0, "y":2, "w":1.75},
450 {"x":1.75, "y":2},
451 {"x":2.75, "y":2},
452 {"x":3.75, "y":2},
453 {"x":4.75, "y":2},
454 {"x":5.75, "y":2},
455 {"x":6.75, "y":2},
456 {"x":7.75, "y":2},
457 {"x":8.75, "y":2},
458 {"x":9.75, "y":2},
459 {"x":10.75, "y":2},
460 {"x":11.75, "y":2},
461 {"x":12.75, "y":2},
462
463 {"x":0, "y":3, "w":2.25},
464 {"x":2.25, "y":3},
465 {"x":3.25, "y":3},
466 {"x":4.25, "y":3},
467 {"x":5.25, "y":3},
468 {"x":6.25, "y":3},
469 {"x":7.25, "y":3},
470 {"x":8.25, "y":3},
471 {"x":9.25, "y":3},
472 {"x":10.25, "y":3},
473 {"x":11.25, "y":3},
474 {"x":12.25, "y":3, "w":2.75},
475
476 {"x":1.25, "y":4, "w":1.25},
477 {"x":2.5, "y":4, "w":1.25},
478 {"x":3.75, "y":4, "w":2.25},
479 {"x":6, "y":4, "w":1.25},
480 {"x":7.25, "y":4, "w":2.75},
481 {"x":10, "y":4, "w":1.25},
482 {"x":11.25, "y":4, "w":1.25},
483 {"x":12.5, "y":4, "w":1.25}]
484 },
485 "LAYOUT_iso_split_bs_rshift": {
486 "layout": [
487 {"x":0, "y":0},
488 {"x":1, "y":0},
489 {"x":2, "y":0},
490 {"x":3, "y":0},
491 {"x":4, "y":0},
492 {"x":5, "y":0},
493 {"x":6, "y":0},
494 {"x":7, "y":0},
495 {"x":8, "y":0},
496 {"x":9, "y":0},
497 {"x":10, "y":0},
498 {"x":11, "y":0},
499 {"x":12, "y":0},
500 {"x":13, "y":0},
501 {"x":14, "y":0},
502
503 {"x":0, "y":1, "w":1.5},
504 {"x":1.5, "y":1},
505 {"x":2.5, "y":1},
506 {"x":3.5, "y":1},
507 {"x":4.5, "y":1},
508 {"x":5.5, "y":1},
509 {"x":6.5, "y":1},
510 {"x":7.5, "y":1},
511 {"x":8.5, "y":1},
512 {"x":9.5, "y":1},
513 {"x":10.5, "y":1},
514 {"x":11.5, "y":1},
515 {"x":12.5, "y":1},
516 {"x":13.75, "y":1, "w":1.25, "h":2},
517
518 {"x":0, "y":2, "w":1.75},
519 {"x":1.75, "y":2},
520 {"x":2.75, "y":2},
521 {"x":3.75, "y":2},
522 {"x":4.75, "y":2},
523 {"x":5.75, "y":2},
524 {"x":6.75, "y":2},
525 {"x":7.75, "y":2},
526 {"x":8.75, "y":2},
527 {"x":9.75, "y":2},
528 {"x":10.75, "y":2},
529 {"x":11.75, "y":2},
530 {"x":12.75, "y":2},
531
532 {"x":0, "y":3, "w":2.25},
533 {"x":2.25, "y":3},
534 {"x":3.25, "y":3},
535 {"x":4.25, "y":3},
536 {"x":5.25, "y":3},
537 {"x":6.25, "y":3},
538 {"x":7.25, "y":3},
539 {"x":8.25, "y":3},
540 {"x":9.25, "y":3},
541 {"x":10.25, "y":3},
542 {"x":11.25, "y":3},
543 {"x":12.25, "y":3, "w":1.75},
544 {"x":14, "y":3},
545
546 {"x":1.25, "y":4, "w":1.25},
547 {"x":2.5, "y":4, "w":1.25},
548 {"x":3.75, "y":4, "w":2.25},
549 {"x":6, "y":4, "w":1.25},
550 {"x":7.25, "y":4, "w":2.75},
551 {"x":10, "y":4, "w":1.25},
552 {"x":11.25, "y":4, "w":1.25},
553 {"x":12.5, "y":4, "w":1.25}]
554 }
555 }
556}
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..b8b8a0bc3
--- /dev/null
+++ b/keyboards/choc_taro/rules.mk
@@ -0,0 +1,21 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
11MOUSEKEY_ENABLE = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = yes # Console for debug
14COMMAND_ENABLE = yes # Commands for debug and configuration
15NKRO_ENABLE = no # Enable N-Key Rollover
16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
17RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
18AUDIO_ENABLE = no # Audio output
19
20CUSTOM_MATRIX = lite
21SRC += matrix.c