aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl B <42804603+b-karl@users.noreply.github.com>2022-01-13 00:05:19 +0100
committerGitHub <noreply@github.com>2022-01-12 15:05:19 -0800
commitf2a31b944d11ed5f1b891aa80c0447d5e94ff121 (patch)
treee76c9b19109376dcc2022b3528c702c7c010ef38
parentb79e329ab8e16c5b791591b44e04fd1b40d6bccc (diff)
downloadqmk_firmware-f2a31b944d11ed5f1b891aa80c0447d5e94ff121.tar.gz
qmk_firmware-f2a31b944d11ed5f1b891aa80c0447d5e94ff121.zip
[Keyboard] Add KBIC65 keyboard (#15151)
Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: Karl Berggren <berggren.karl+git@gmail.com> Co-authored-by: spacefrogfeds <73514335+spacefrogfeds@users.noreply.github.com> Co-authored-by: Karl Berggren <karber@raysearchlabs.com>
-rw-r--r--keyboards/karlb/kbic65/info.json400
-rw-r--r--keyboards/karlb/kbic65/kbic65.c4
-rw-r--r--keyboards/karlb/kbic65/kbic65.h28
-rw-r--r--keyboards/karlb/kbic65/keymaps/default/keymap.c22
-rw-r--r--keyboards/karlb/kbic65/keymaps/default/readme.md5
-rw-r--r--keyboards/karlb/kbic65/keymaps/iso/keymap.c22
-rw-r--r--keyboards/karlb/kbic65/keymaps/iso/readme.md5
-rw-r--r--keyboards/karlb/kbic65/keymaps/iso_full/keymap.c22
-rw-r--r--keyboards/karlb/kbic65/keymaps/iso_full/readme.md5
-rw-r--r--keyboards/karlb/kbic65/keymaps/via/keymap.c22
-rw-r--r--keyboards/karlb/kbic65/keymaps/via/readme.md5
-rw-r--r--keyboards/karlb/kbic65/keymaps/via/rules.mk3
-rw-r--r--keyboards/karlb/kbic65/readme.md31
-rw-r--r--keyboards/karlb/kbic65/rules.mk17
14 files changed, 591 insertions, 0 deletions
diff --git a/keyboards/karlb/kbic65/info.json b/keyboards/karlb/kbic65/info.json
new file mode 100644
index 000000000..560e162a3
--- /dev/null
+++ b/keyboards/karlb/kbic65/info.json
@@ -0,0 +1,400 @@
1{
2 "keyboard_name": "KBIC65",
3 "url": "https://karlb.eu/kbic65/",
4 "maintainer": "b-karl",
5 "diode_direction": "ROW2COL",
6 "matrix_pins": {
7 "cols": [
8 "B2",
9 "B6",
10 "B3",
11 "B1",
12 "F7",
13 "F6",
14 "F5",
15 "F4"
16 ],
17 "rows": [
18 "B5",
19 "D1",
20 "B4",
21 "D0",
22 "E6",
23 "D4",
24 "D7",
25 "C6",
26 "D2"
27 ]
28 },
29 "usb": {
30 "vid": "0x424B",
31 "pid": "0xD87A",
32 "device_ver": "0x0001"
33 },
34 "layouts": {
35 "LAYOUT": {
36 "layout": [
37 {
38 "label": "Esc",
39 "x": 0,
40 "y": 0
41 },
42 {
43 "label": "!",
44 "x": 1,
45 "y": 0
46 },
47 {
48 "label": "\"",
49 "x": 2,
50 "y": 0
51 },
52 {
53 "label": "£",
54 "x": 3,
55 "y": 0
56 },
57 {
58 "label": "$",
59 "x": 4,
60 "y": 0
61 },
62 {
63 "label": "%",
64 "x": 5,
65 "y": 0
66 },
67 {
68 "label": "^",
69 "x": 6,
70 "y": 0
71 },
72 {
73 "label": "&",
74 "x": 7,
75 "y": 0
76 },
77 {
78 "label": "*",
79 "x": 8,
80 "y": 0
81 },
82 {
83 "label": "(",
84 "x": 9,
85 "y": 0
86 },
87 {
88 "label": ")",
89 "x": 10,
90 "y": 0
91 },
92 {
93 "label": "_",
94 "x": 11,
95 "y": 0
96 },
97 {
98 "label": "+",
99 "x": 12,
100 "y": 0
101 },
102 {
103 "label": "BkSp1",
104 "x": 13,
105 "y": 0
106 },
107 {
108 "label": "BkSp2",
109 "x": 14,
110 "y": 0
111 },
112 {
113 "label": "Delete",
114 "x": 15.5,
115 "y": 0
116 },
117 {
118 "label": "Tab",
119 "x": 0,
120 "y": 1,
121 "w": 1.5
122 },
123 {
124 "label": "Q",
125 "x": 1.5,
126 "y": 1
127 },
128 {
129 "label": "W",
130 "x": 2.5,
131 "y": 1
132 },
133 {
134 "label": "E",
135 "x": 3.5,
136 "y": 1
137 },
138 {
139 "label": "R",
140 "x": 4.5,
141 "y": 1
142 },
143 {
144 "label": "T",
145 "x": 5.5,
146 "y": 1
147 },
148 {
149 "label": "Y",
150 "x": 6.5,
151 "y": 1
152 },
153 {
154 "label": "U",
155 "x": 7.5,
156 "y": 1
157 },
158 {
159 "label": "I",
160 "x": 8.5,
161 "y": 1
162 },
163 {
164 "label": "O",
165 "x": 9.5,
166 "y": 1
167 },
168 {
169 "label": "P",
170 "x": 10.5,
171 "y": 1
172 },
173 {
174 "label": "{",
175 "x": 11.5,
176 "y": 1
177 },
178 {
179 "label": "}",
180 "x": 12.5,
181 "y": 1
182 },
183 {
184 "label": "Enter_ISO",
185 "x": 13.75,
186 "y": 1,
187 "w": 1.25,
188 "h": 2
189 },
190 {
191 "label": "¬",
192 "x": 15.5,
193 "y": 1
194 },
195 {
196 "label": "Caps Lock",
197 "x": 0,
198 "y": 2,
199 "w": 1.75
200 },
201 {
202 "label": "A",
203 "x": 1.75,
204 "y": 2
205 },
206 {
207 "label": "S",
208 "x": 2.75,
209 "y": 2
210 },
211 {
212 "label": "D",
213 "x": 3.75,
214 "y": 2
215 },
216 {
217 "label": "F",
218 "x": 4.75,
219 "y": 2
220 },
221 {
222 "label": "G",
223 "x": 5.75,
224 "y": 2
225 },
226 {
227 "label": "H",
228 "x": 6.75,
229 "y": 2
230 },
231 {
232 "label": "J",
233 "x": 7.75,
234 "y": 2
235 },
236 {
237 "label": "K",
238 "x": 8.75,
239 "y": 2
240 },
241 {
242 "label": "L",
243 "x": 9.75,
244 "y": 2
245 },
246 {
247 "label": ":",
248 "x": 10.75,
249 "y": 2
250 },
251 {
252 "label": "@",
253 "x": 11.75,
254 "y": 2
255 },
256 {
257 "label": "~",
258 "x": 12.75,
259 "y": 2
260 },
261 {
262 "label": "PgUp",
263 "x": 15.5,
264 "y": 2
265 },
266 {
267 "label": "Shift",
268 "x": 0,
269 "y": 3,
270 "w": 1.25
271 },
272 {
273 "label": "|",
274 "x": 1.25,
275 "y": 3
276 },
277 {
278 "label": "Z",
279 "x": 2.25,
280 "y": 3
281 },
282 {
283 "label": "X",
284 "x": 3.25,
285 "y": 3
286 },
287 {
288 "label": "C",
289 "x": 4.25,
290 "y": 3
291 },
292 {
293 "label": "V",
294 "x": 5.25,
295 "y": 3
296 },
297 {
298 "label": "B",
299 "x": 6.25,
300 "y": 3
301 },
302 {
303 "label": "N",
304 "x": 7.25,
305 "y": 3
306 },
307 {
308 "label": "M",
309 "x": 8.25,
310 "y": 3
311 },
312 {
313 "label": "<",
314 "x": 9.25,
315 "y": 3
316 },
317 {
318 "label": ">",
319 "x": 10.25,
320 "y": 3
321 },
322 {
323 "label": "?",
324 "x": 11.25,
325 "y": 3
326 },
327 {
328 "label": "Shift",
329 "x": 12.25,
330 "y": 3,
331 "w": 1.75
332 },
333 {
334 "label": "PgDn",
335 "x": 15.5,
336 "y": 3
337 },
338 {
339 "label": "↑",
340 "x": 14.25,
341 "y": 3.25
342 },
343 {
344 "label": "Ctrl",
345 "x": 0,
346 "y": 4,
347 "w": 1.25
348 },
349 {
350 "label": "Win",
351 "x": 1.25,
352 "y": 4,
353 "w": 1.25
354 },
355 {
356 "label": "Alt",
357 "x": 2.5,
358 "y": 4,
359 "w": 1.25
360 },
361 {
362 "label": "Space",
363 "x": 3.75,
364 "y": 4,
365 "w": 6.25
366 },
367 {
368 "label": "AltGr",
369 "x": 10,
370 "y": 4
371 },
372 {
373 "label": "Win",
374 "x": 11,
375 "y": 4
376 },
377 {
378 "label": "Ctrl",
379 "x": 12,
380 "y": 4
381 },
382 {
383 "label": "←",
384 "x": 13.25,
385 "y": 4.25
386 },
387 {
388 "label": "↓",
389 "x": 14.25,
390 "y": 4.25
391 },
392 {
393 "label": "→",
394 "x": 15.25,
395 "y": 4.25
396 }
397 ]
398 }
399 }
400}
diff --git a/keyboards/karlb/kbic65/kbic65.c b/keyboards/karlb/kbic65/kbic65.c
new file mode 100644
index 000000000..910c2a6c7
--- /dev/null
+++ b/keyboards/karlb/kbic65/kbic65.c
@@ -0,0 +1,4 @@
1// Copyright 2021 Karl Berggren <@bkarl>
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include "kbic65.h"
diff --git a/keyboards/karlb/kbic65/kbic65.h b/keyboards/karlb/kbic65/kbic65.h
new file mode 100644
index 000000000..112386bc6
--- /dev/null
+++ b/keyboards/karlb/kbic65/kbic65.h
@@ -0,0 +1,28 @@
1// Copyright 2021 Karl Berggren <@bkarl>
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#pragma once
5
6#include "quantum.h"
7
8// This a shortcut to help you visually see your layout.
9// The first section contains all of the arguements
10// The second converts the arguments into a two-dimensional array
11#define LAYOUT( \
12 K10, K00, K11, K01, K12, K02, K13, K03, K14, K04, K15, K05, K16, K06, K17, K07, \
13 K30, K20, K31, K21, K32, K22, K33, K23, K34, K24, K35, K25, K36, K26, K37, \
14 K50, K40, K51, K41, K52, K42, K53, K43, K54, K44, K55, K45, K56, K47, \
15 K70, K60, K71, K61, K72, K62, K73, K63, K74, K64, K75, K65, K76, K66, K57, \
16 K80, K81, K82, K83, K84, K85, K86, K87, K77, K67 \
17) { \
18 {K00, K01, K02, K03, K04, K05, K06, K07}, \
19 {K10, K11, K12, K13, K14, K15, K16, K17}, \
20 {K20, K21, K22, K23, K24, K25, K26, KC_NO}, \
21 {K30, K31, K32, K33, K34, K35, K36, K37}, \
22 {K40, K41, K42, K43, K44, K45, KC_NO, K47}, \
23 {K50, K51, K52, K53, K54, K55, K56, K57}, \
24 {K60, K61, K62, K63, K64, K65, K66, K67}, \
25 {K70, K71, K72, K73, K74, K75, K76, K77}, \
26 {K80, K81, K82, K83, K84, K85, K86, K87} \
27}
28
diff --git a/keyboards/karlb/kbic65/keymaps/default/keymap.c b/keyboards/karlb/kbic65/keymaps/default/keymap.c
new file mode 100644
index 000000000..1691cdd19
--- /dev/null
+++ b/keyboards/karlb/kbic65/keymaps/default/keymap.c
@@ -0,0 +1,22 @@
1// Copyright 2021 Karl Berggren <@bkarl>
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include QMK_KEYBOARD_H
5
6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7
8// Default ANSI keymap
9[0] = LAYOUT(
10KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, _______, KC_HOME,
11KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
12KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
13KC_LSFT, _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
14KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
15
16[1] = LAYOUT(
17KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, KC_INS,
18_______, _______, KC_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, _______, _______,
19_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, _______,
20_______, _______, _______, _______, _______, _______, RESET, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, KC_PGUP, _______,
21_______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END)
22};
diff --git a/keyboards/karlb/kbic65/keymaps/default/readme.md b/keyboards/karlb/kbic65/keymaps/default/readme.md
new file mode 100644
index 000000000..a071af671
--- /dev/null
+++ b/keyboards/karlb/kbic65/keymaps/default/readme.md
@@ -0,0 +1,5 @@
1![KBIC65 layout options](https://github.com/b-karl/KBIC65/blob/main/img/layout-options.svg)
2
3# Default KBIC65 Layout
4
5This is the default layout for the KBIC65, it is recommended that you create your own keymap tailored to your specific needs. It is an ANSI keymap but uses the full KBIC65 layoutm, i.e., includes ISO backslash and split backspace but these are set to no action in this default layout. The layers are based on the KBDFans 67 rev 2 default keymap.
diff --git a/keyboards/karlb/kbic65/keymaps/iso/keymap.c b/keyboards/karlb/kbic65/keymaps/iso/keymap.c
new file mode 100644
index 000000000..ad2b23626
--- /dev/null
+++ b/keyboards/karlb/kbic65/keymaps/iso/keymap.c
@@ -0,0 +1,22 @@
1// Copyright 2021 Karl Berggren <@bkarl>
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include QMK_KEYBOARD_H
5
6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7
8// ISO keymap
9[0] = LAYOUT(
10KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, _______, KC_HOME,
11KC_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_ENT, KC_PGUP,
12KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_PGDN,
13KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
14KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
15
16[1] = LAYOUT(
17KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, KC_INS,
18_______, _______, KC_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, _______, _______,
19_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, _______,
20_______, _______, _______, _______, _______, _______, RESET, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, KC_PGUP, _______,
21_______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END)
22};
diff --git a/keyboards/karlb/kbic65/keymaps/iso/readme.md b/keyboards/karlb/kbic65/keymaps/iso/readme.md
new file mode 100644
index 000000000..8d83b91f0
--- /dev/null
+++ b/keyboards/karlb/kbic65/keymaps/iso/readme.md
@@ -0,0 +1,5 @@
1![KBIC65 layout options](https://github.com/b-karl/KBIC65/blob/main/img/layout-options.svg)
2
3# KBIC65 ISO Layout
4
5This is a basic ISO keymap for the KBIC65. It is based on the KBDFans 67 rev 2 default keymap.
diff --git a/keyboards/karlb/kbic65/keymaps/iso_full/keymap.c b/keyboards/karlb/kbic65/keymaps/iso_full/keymap.c
new file mode 100644
index 000000000..671cc8b8a
--- /dev/null
+++ b/keyboards/karlb/kbic65/keymaps/iso_full/keymap.c
@@ -0,0 +1,22 @@
1// Copyright 2021 Karl Berggren <@bkarl>
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include QMK_KEYBOARD_H
5
6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7
8// ISO keymap
9[0] = LAYOUT(
10KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME,
11KC_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_ENT, KC_PGUP,
12KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_PGDN,
13KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
14KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
15
16[1] = LAYOUT(
17KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, KC_INS,
18_______, _______, KC_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, _______, _______,
19_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, _______,
20_______, _______, _______, _______, _______, _______, RESET, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, KC_PGUP, _______,
21_______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END)
22};
diff --git a/keyboards/karlb/kbic65/keymaps/iso_full/readme.md b/keyboards/karlb/kbic65/keymaps/iso_full/readme.md
new file mode 100644
index 000000000..9cd1d1c53
--- /dev/null
+++ b/keyboards/karlb/kbic65/keymaps/iso_full/readme.md
@@ -0,0 +1,5 @@
1![KBIC65 layout options](https://github.com/b-karl/KBIC65/blob/main/img/layout-options.svg)
2
3# KBIC65 ISO 70-key Layout
4
5This is a 70 key ISO keymap for the KBIC65 including split backspace, it uses the maximum amount of keys available on the KBIC65. It is recommended to modify the layout for your personal needs.
diff --git a/keyboards/karlb/kbic65/keymaps/via/keymap.c b/keyboards/karlb/kbic65/keymaps/via/keymap.c
new file mode 100644
index 000000000..1691cdd19
--- /dev/null
+++ b/keyboards/karlb/kbic65/keymaps/via/keymap.c
@@ -0,0 +1,22 @@
1// Copyright 2021 Karl Berggren <@bkarl>
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include QMK_KEYBOARD_H
5
6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7
8// Default ANSI keymap
9[0] = LAYOUT(
10KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, _______, KC_HOME,
11KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
12KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
13KC_LSFT, _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
14KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
15
16[1] = LAYOUT(
17KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, KC_INS,
18_______, _______, KC_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, _______, _______,
19_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, _______,
20_______, _______, _______, _______, _______, _______, RESET, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, KC_PGUP, _______,
21_______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END)
22};
diff --git a/keyboards/karlb/kbic65/keymaps/via/readme.md b/keyboards/karlb/kbic65/keymaps/via/readme.md
new file mode 100644
index 000000000..50b9f6330
--- /dev/null
+++ b/keyboards/karlb/kbic65/keymaps/via/readme.md
@@ -0,0 +1,5 @@
1![KBIC65 layout options](https://github.com/b-karl/KBIC65/blob/main/img/layout-options.svg)
2
3# KBIC65 VIA Support
4
5VIA support for KBIC65 with same keymap as the default (ANSI).
diff --git a/keyboards/karlb/kbic65/keymaps/via/rules.mk b/keyboards/karlb/kbic65/keymaps/via/rules.mk
new file mode 100644
index 000000000..fcb7b9eab
--- /dev/null
+++ b/keyboards/karlb/kbic65/keymaps/via/rules.mk
@@ -0,0 +1,3 @@
1VIA_ENABLE = yes
2LTO_ENABLE = yes
3MOUSEKEY_ENABLE = no
diff --git a/keyboards/karlb/kbic65/readme.md b/keyboards/karlb/kbic65/readme.md
new file mode 100644
index 000000000..43d2e5cd7
--- /dev/null
+++ b/keyboards/karlb/kbic65/readme.md
@@ -0,0 +1,31 @@
1# KBIC65
2
3![KBIC65 top-down view](https://github.com/b-karl/KBIC65/blob/main/img/photoshoot/full_keyboard_straight_above.jpg)
4
5A 65%/70 key FR4-stack open-source keyboard with some design optimizations for wireless. For more info visit the [KBIC65 website](https://karlb.eu/kbic65/) or the [GitHub repo](https://github.com/b-karl/KBIC65).
6
7* Keyboard Maintainer: [Karl Berggren](https://github.com/b-karl)
8* Hardware Supported: [KBIC65](https://github.com/b-karl/KBIC65)
9* Hardware Availability: Open-source design [available on GitHub](https://github.com/b-karl/KBIC65)
10
11Firmware and default keymap have been tested using a KBIC65 with an Elite-C rev 4 controller.
12
13## Build firmware
14
15Make example for this keyboard (after setting up your build environment):
16
17```bash
18 qmk compile -kb karlb/kbic65 -km default
19```
20
21See the [QMK setup documentation](https://docs.qmk.fm/#/newbs_getting_started) to set up the QMK tools. I recommend flashing using
22
23```bash
24 qmk flash -kb karlb/kbic65 -km default
25```
26
27## Bootloader
28
29Since the keyboard is designed to have an exposed ProMicro the bootloader can always be entered by short circuiting the `RST` and `GND` pins on the ProMicro. If the keyboard is configured with the default keymap, the bootloader can be entered by pressing `R_GUI/FN + B`
30
31
diff --git a/keyboards/karlb/kbic65/rules.mk b/keyboards/karlb/kbic65/rules.mk
new file mode 100644
index 000000000..f7da71aab
--- /dev/null
+++ b/keyboards/karlb/kbic65/rules.mk
@@ -0,0 +1,17 @@
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
11EXTRAKEY_ENABLE = yes # Audio control and System control
12CONSOLE_ENABLE = yes # Console for debug
13COMMAND_ENABLE = yes # Commands for debug and configuration
14NKRO_ENABLE = yes # Enable N-Key Rollover
15BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
16RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
17AUDIO_ENABLE = no # Audio output