aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArturo Avila <69410272+ADPenrose@users.noreply.github.com>2021-12-24 19:33:47 -0600
committerGitHub <noreply@github.com>2021-12-24 17:33:47 -0800
commit36db7457b299d91f665f931a5f60bd059ada0210 (patch)
tree3b79bbfc25d0407705c86220380d71d9925e4d09
parent17c87710002c3993ce86f8dc6a96c940dedc1da8 (diff)
downloadqmk_firmware-36db7457b299d91f665f931a5f60bd059ada0210.tar.gz
qmk_firmware-36db7457b299d91f665f931a5f60bd059ada0210.zip
[Keyboard] Add Kintsugi keyboard (#15439)
-rw-r--r--keyboards/adpenrose/kintsugi/config.h146
-rw-r--r--keyboards/adpenrose/kintsugi/info.json80
-rw-r--r--keyboards/adpenrose/kintsugi/keymaps/default/keymap.c48
-rw-r--r--keyboards/adpenrose/kintsugi/keymaps/default/readme.md1
-rw-r--r--keyboards/adpenrose/kintsugi/keymaps/franky/keymap.c164
-rw-r--r--keyboards/adpenrose/kintsugi/keymaps/franky/readme.md1
-rw-r--r--keyboards/adpenrose/kintsugi/keymaps/franky/rules.mk3
-rw-r--r--keyboards/adpenrose/kintsugi/keymaps/via/keymap.c62
-rw-r--r--keyboards/adpenrose/kintsugi/keymaps/via/readme.md1
-rw-r--r--keyboards/adpenrose/kintsugi/keymaps/via/rules.mk2
-rw-r--r--keyboards/adpenrose/kintsugi/kintsugi.c74
-rw-r--r--keyboards/adpenrose/kintsugi/kintsugi.h46
-rw-r--r--keyboards/adpenrose/kintsugi/lib/kintsugifont.c244
-rw-r--r--keyboards/adpenrose/kintsugi/post_config.h21
-rw-r--r--keyboards/adpenrose/kintsugi/readme.md37
-rw-r--r--keyboards/adpenrose/kintsugi/rules.mk21
16 files changed, 951 insertions, 0 deletions
diff --git a/keyboards/adpenrose/kintsugi/config.h b/keyboards/adpenrose/kintsugi/config.h
new file mode 100644
index 000000000..cbd38b666
--- /dev/null
+++ b/keyboards/adpenrose/kintsugi/config.h
@@ -0,0 +1,146 @@
1/*
2Copyright 2021 adpenrose
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 0x4450 // "ADP"
24#define PRODUCT_ID 0x0001 // 'Cause it's my first keeb
25#define DEVICE_VER 0x0001
26#define MANUFACTURER adpenrose
27#define PRODUCT Kintsugi
28
29/* key matrix size */
30#define MATRIX_ROWS 10
31#define MATRIX_COLS 7
32
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 { B0, E6, D7, C6, D4, D2, F4, F5, B5, B4 }
44#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6, F0 }
45#define UNUSED_PINS { D3, C7 }
46
47/* COL2ROW, ROW2COL */
48#define DIODE_DIRECTION COL2ROW
49
50/*Rotary encoder - set the resolution fitting your encoder.
51Most will need a value of 4. If 1 encoder click results in 2 keycodes sent
52increase the value. If you need 2 clicks for 1 keycode, decrease*/
53#define ENCODER_RESOLUTION 4
54#define ENCODERS_PAD_A { B7 }
55#define ENCODERS_PAD_B { D5 }
56#define TAP_CODE_DELAY 10
57
58/* Underglow options: */
59#define RGB_DI_PIN F1
60#ifdef RGB_DI_PIN
61# define RGBLED_NUM 16
62# define RGBLIGHT_HUE_STEP 8
63# define RGBLIGHT_SAT_STEP 8
64# define RGBLIGHT_VAL_STEP 8
65# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
66# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
67/*== all animations enable ==*/
68// # define RGBLIGHT_ANIMATIONS
69/*== or choose animations ==*/
70# define RGBLIGHT_EFFECT_BREATHING
71# define RGBLIGHT_EFFECT_RAINBOW_MOOD
72# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
73# define RGBLIGHT_EFFECT_SNAKE
74# define RGBLIGHT_EFFECT_KNIGHT
75# define RGBLIGHT_EFFECT_CHRISTMAS
76# define RGBLIGHT_EFFECT_STATIC_GRADIENT
77# define RGBLIGHT_EFFECT_RGB_TEST
78# define RGBLIGHT_EFFECT_ALTERNATING
79/*== customize breathing effect ==*/
80/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
81//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
82/*==== use exp() and sin() ====*/
83//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
84//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
85#endif
86
87/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
88#define DEBOUNCE 5
89
90/* define if matrix has ghost (lacks anti-ghosting diodes) */
91//#define MATRIX_HAS_GHOST
92
93/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
94//#define LOCKING_SUPPORT_ENABLE
95/* Locking resynchronize hack */
96//#define LOCKING_RESYNC_ENABLE
97
98/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
99 * This is useful for the Windows task manager shortcut (ctrl+shift+esc).
100 */
101//#define GRAVE_ESC_CTRL_OVERRIDE
102
103/*
104 * Force NKRO
105 *
106 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
107 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
108 * makefile for this to work.)
109 *
110 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
111 * until the next keyboard reset.
112 *
113 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
114 * fully operational during normal computer usage.
115 *
116 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
117 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
118 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
119 * power-up.
120 *
121 */
122//#define FORCE_NKRO
123
124/*
125 * Feature disable options
126 * These options are also useful to firmware size reduction.
127 */
128
129/* disable debug print */
130//#define NO_DEBUG
131
132/* disable print */
133//#define NO_PRINT
134
135/* disable action features */
136//#define NO_ACTION_LAYER
137//#define NO_ACTION_TAPPING
138//#define NO_ACTION_ONESHOT
139
140/* disable these deprecated features by default */
141#define NO_ACTION_MACRO
142#define NO_ACTION_FUNCTION
143
144/* Bootmagic Lite key configuration */
145#define BOOTMAGIC_LITE_ROW 0
146#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/adpenrose/kintsugi/info.json b/keyboards/adpenrose/kintsugi/info.json
new file mode 100644
index 000000000..0e7618733
--- /dev/null
+++ b/keyboards/adpenrose/kintsugi/info.json
@@ -0,0 +1,80 @@
1{
2 "keyboard_name": "Kintsugi",
3 "url": "https://github.com/ADPenrose/kintsugi_keeb",
4 "maintainer": "adpenrose",
5 "layouts": {
6 "LAYOUT_65_ansi_blocker": {
7 "layout": [
8 {"label":"Esc", "x":0, "y":0},
9 {"label":"1", "x":1, "y":0},
10 {"label":"2", "x":2, "y":0},
11 {"label":"3", "x":3, "y":0},
12 {"label":"4", "x":4, "y":0},
13 {"label":"5", "x":5, "y":0},
14 {"label":"6", "x":6, "y":0},
15 {"label":"7", "x":7, "y":0},
16 {"label":"8", "x":8, "y":0},
17 {"label":"9", "x":9, "y":0},
18 {"label":"0", "x":10, "y":0},
19 {"label":"-", "x":11, "y":0},
20 {"label":"=", "x":12, "y":0},
21 {"label":"Backspace", "x":13, "y":0, "w":2},
22
23 {"label":"Tab", "x":0, "y":1, "w":1.5},
24 {"label":"Q", "x":1.5, "y":1},
25 {"label":"W", "x":2.5, "y":1},
26 {"label":"E", "x":3.5, "y":1},
27 {"label":"R", "x":4.5, "y":1},
28 {"label":"T", "x":5.5, "y":1},
29 {"label":"Y", "x":6.5, "y":1},
30 {"label":"U", "x":7.5, "y":1},
31 {"label":"I", "x":8.5, "y":1},
32 {"label":"O", "x":9.5, "y":1},
33 {"label":"P", "x":10.5, "y":1},
34 {"label":"[", "x":11.5, "y":1},
35 {"label":"]", "x":12.5, "y":1},
36 {"label":"\\", "x":13.5, "y":1, "w":1.5},
37
38 {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
39 {"label":"A", "x":1.75, "y":2},
40 {"label":"S", "x":2.75, "y":2},
41 {"label":"D", "x":3.75, "y":2},
42 {"label":"F", "x":4.75, "y":2},
43 {"label":"G", "x":5.75, "y":2},
44 {"label":"H", "x":6.75, "y":2},
45 {"label":"J", "x":7.75, "y":2},
46 {"label":"K", "x":8.75, "y":2},
47 {"label":"L", "x":9.75, "y":2},
48 {"label":";", "x":10.75, "y":2},
49 {"label":"'", "x":11.75, "y":2},
50 {"label":"Enter", "x":12.75, "y":2, "w":2.25},
51 {"label":"Enc", "x":15, "y":2},
52
53 {"label":"LShift", "x":0, "y":3, "w":2.25},
54 {"label":"Z", "x":2.25, "y":3},
55 {"label":"X", "x":3.25, "y":3},
56 {"label":"C", "x":4.25, "y":3},
57 {"label":"V", "x":5.25, "y":3},
58 {"label":"B", "x":6.25, "y":3},
59 {"label":"N", "x":7.25, "y":3},
60 {"label":"M", "x":8.25, "y":3},
61 {"label":",", "x":9.25, "y":3},
62 {"label":".", "x":10.25, "y":3},
63 {"label":"/", "x":11.25, "y":3},
64 {"label":"RShift", "x":12.25, "y":3, "w":1.75},
65 {"label":"Up", "x":14, "y":3},
66 {"label":"M1", "x":15, "y":3},
67
68 {"label":"LCtrl", "x":0, "y":4, "w":1.25},
69 {"label":"LSuper", "x":1.25, "y":4, "w":1.25},
70 {"label":"LAlt", "x":2.5, "y":4, "w":1.25},
71 {"label":"Space", "x":3.75, "y":4, "w":6.25},
72 {"label":"L1", "x":10, "y":4, "w":1.5},
73 {"label":"L2", "x":11.5, "y":4, "w":1.5},
74 {"label":"Left", "x":13, "y":4},
75 {"label":"Down", "x":14, "y":4},
76 {"label":"Right", "x":15, "y":4}
77 ]
78 }
79 }
80}
diff --git a/keyboards/adpenrose/kintsugi/keymaps/default/keymap.c b/keyboards/adpenrose/kintsugi/keymaps/default/keymap.c
new file mode 100644
index 000000000..7e0370146
--- /dev/null
+++ b/keyboards/adpenrose/kintsugi/keymaps/default/keymap.c
@@ -0,0 +1,48 @@
1/* Copyright 2021 adpenrose
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/* Base layout:
19 * ,---------------------------------------------------------------------|
20 * |` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= |Backspace| OLED|
21 * |--------------------------------------------------------------- |
22 * |Tab |Q |W |E |R |T |Y |U |I |O |P |[ | ] | \ OLED|
23 * |---------------------------------------------------------------------|
24 * |Caps |A |S |D |F |G |H |J |K |L |; |' | Enter | ENC |
25 * |---------------------------------------------------------------------|
26 * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |Up| M1 |
27 * |---------------------------------------------------------------------|
28 * |Ctrl|GUI |Alt | Space |Alt |MO(1)| |Lt |Dn |Rt |
29 * `---------------------------------------------------------------------|'
30 */
31
32const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
33 /* Base */
34 [0] = LAYOUT_65_ansi_blocker(
35 KC_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,
36 KC_TAB, KC_A, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
37 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_MUTE,
38 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL,
39 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT
40 ),
41 [1] = LAYOUT_65_ansi_blocker(
42 _______, 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,
43 _______, RGB_TOG, RGB_VAI, RGB_VAD, RGB_MODE_FORWARD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
44 RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY,
45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
46 _______, _______, _______, KC_SPC, _______, _______, _______, _______, _______
47 ),
48}; \ No newline at end of file
diff --git a/keyboards/adpenrose/kintsugi/keymaps/default/readme.md b/keyboards/adpenrose/kintsugi/keymaps/default/readme.md
new file mode 100644
index 000000000..83bc48086
--- /dev/null
+++ b/keyboards/adpenrose/kintsugi/keymaps/default/readme.md
@@ -0,0 +1 @@
# The default keymap for Kintsugi
diff --git a/keyboards/adpenrose/kintsugi/keymaps/franky/keymap.c b/keyboards/adpenrose/kintsugi/keymaps/franky/keymap.c
new file mode 100644
index 000000000..55098afbf
--- /dev/null
+++ b/keyboards/adpenrose/kintsugi/keymaps/franky/keymap.c
@@ -0,0 +1,164 @@
1/* Copyright 2021 adpenrose
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/* Base layout:
19 * ,---------------------------------------------------------------------|
20 * |` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= |Backspace| OLED|
21 * |--------------------------------------------------------------- |
22 * |Tab |Q |W |E |R |T |Y |U |I |O |P |[ | ] | \ OLED|
23 * |---------------------------------------------------------------------|
24 * |Caps |A |S |D |F |G |H |J |K |L |; |' | Enter | ENC |
25 * |---------------------------------------------------------------------|
26 * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |Up| M1 |
27 * |---------------------------------------------------------------------|
28 * |Ctrl|GUI |Alt | Space |MO(2) |MO(3)| |Lt |Dn |Rt |
29 * `---------------------------------------------------------------------|'
30 */
31
32const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
33 /* Base */
34 [0] = LAYOUT_65_ansi_blocker(
35 KC_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,
36 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,
37 KC_LGUI, 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_MUTE,
38 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL,
39 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(2), MO(3), KC_LEFT, KC_DOWN, KC_RIGHT
40 ),
41 [1] = LAYOUT_65_ansi_blocker(
42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
46 _______, _______, _______, _______, _______, _______, _______, _______, _______
47 ),
48 [2] = LAYOUT_65_ansi_blocker(
49 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
50 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
51 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
52 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
53 _______, _______, _______, _______, _______, _______, _______, _______, _______
54 ),
55 [3] = LAYOUT_65_ansi_blocker(
56 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
57 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
58 RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY,
59 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
60 _______, _______, _______, KC_SPC, _______, _______, _______, _______, _______
61 ),
62};
63
64/* Encoder */
65#ifdef ENCODER_ENABLE
66bool encoder_update_user(uint8_t index, bool clockwise) {
67 static uint8_t selected_layer = 0; /* Used to change the layer using the encoder. */
68
69 if (clockwise){
70 /* Check if left shift is pressed: */
71 if (selected_layer < 3 && get_mods() & MOD_BIT(KC_LSFT)){
72 selected_layer ++;
73 layer_move(selected_layer); /* Jump up one layer. */
74 } else {
75 /* If shift isn't pressed, encoder will do this stuff: */
76 switch (get_highest_layer(layer_state)){
77 case 3:
78 tap_code(KC_MNXT);
79 break;
80 default:
81 tap_code(KC_VOLU);
82 break;
83 }
84 }
85 } else {
86 /* Check if left shift is pressed: */
87 if (selected_layer > 0 && get_mods() & MOD_BIT(KC_LSFT)){
88 selected_layer --;
89 layer_move(selected_layer); /* Go down one layer. */
90 } else {
91 /* If shift isn't pressed, encoder will do this stuff: */
92 switch (get_highest_layer(layer_state)){
93 case 3:
94 tap_code(KC_MPRV);
95 break;
96 default:
97 tap_code(KC_VOLD);
98 break;
99 }
100 }
101 }
102 return false;
103}
104#endif
105
106/* Rotation of the OLED: */
107#ifdef OLED_ENABLE
108/* Function that renders the kintsugi logo in the desired order. */
109static void render_logo(void) {
110 static const char PROGMEM logo_1[] = {
111 0x83, 0x84, 0x85, 0x86, 0x87, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0x00
112 };
113 static const char PROGMEM logo_2[] = {
114 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0x00
115 };
116 static const char PROGMEM logo_3[] = {
117 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0x00
118 };
119 oled_set_cursor(1,0);
120 oled_write_P(logo_1, false);
121 oled_set_cursor(1,4);
122 oled_write_P(logo_2, false);
123 oled_set_cursor(1,8);
124 oled_write_P(logo_3, false);
125}
126
127/* Function that renders the current layer to the user. */
128void render_layer(void) {
129 oled_set_cursor(0,12);
130 switch (get_highest_layer(layer_state)){
131 case 0:
132 oled_write_P(PSTR("_BASE"), false);
133 break;
134 case 1:
135 oled_write_P(PSTR("_KCAD"), false);
136 break;
137 case 2:
138 oled_write_P(PSTR("_NMPD"), false);
139 break;
140 case 3:
141 oled_write_P(PSTR("_FNCT"), false);
142 break;
143 default:
144 oled_write_P(PSTR("_OhNo"), false);
145 break;
146 }
147}
148
149/* The following function displays wpm to the user. */
150void render_wpm(void) {
151 oled_set_cursor(1,14);
152 oled_write(get_u8_str(get_current_wpm(), '0'), false);
153 oled_set_cursor(1,15);
154 oled_write_P(PSTR("WPM"), false);
155}
156
157/* Function that renders stuff on the oled: */
158bool oled_task_user(void) {
159 render_logo();
160 render_layer();
161 render_wpm();
162 return false;
163}
164#endif
diff --git a/keyboards/adpenrose/kintsugi/keymaps/franky/readme.md b/keyboards/adpenrose/kintsugi/keymaps/franky/readme.md
new file mode 100644
index 000000000..9f4412230
--- /dev/null
+++ b/keyboards/adpenrose/kintsugi/keymaps/franky/readme.md
@@ -0,0 +1 @@
# Franky keymap for Kintsugi. Here to serve as a way to test snippets of code.
diff --git a/keyboards/adpenrose/kintsugi/keymaps/franky/rules.mk b/keyboards/adpenrose/kintsugi/keymaps/franky/rules.mk
new file mode 100644
index 000000000..7e72249a1
--- /dev/null
+++ b/keyboards/adpenrose/kintsugi/keymaps/franky/rules.mk
@@ -0,0 +1,3 @@
1VIA_ENABLE = yes
2LTO_ENABLE = yes
3WPM_ENABLE = yes
diff --git a/keyboards/adpenrose/kintsugi/keymaps/via/keymap.c b/keyboards/adpenrose/kintsugi/keymaps/via/keymap.c
new file mode 100644
index 000000000..80764047d
--- /dev/null
+++ b/keyboards/adpenrose/kintsugi/keymaps/via/keymap.c
@@ -0,0 +1,62 @@
1/* Copyright 2021 adpenrose
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/* Base layout:
19 * ,---------------------------------------------------------------------|
20 * |` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= |Backspace| OLED|
21 * |--------------------------------------------------------------- |
22 * |Tab |Q |W |E |R |T |Y |U |I |O |P |[ | ] | \ OLED|
23 * |---------------------------------------------------------------------|
24 * |Caps |A |S |D |F |G |H |J |K |L |; |' | Enter | ENC |
25 * |---------------------------------------------------------------------|
26 * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |Up| M1 |
27 * |---------------------------------------------------------------------|
28 * |Ctrl|GUI |Alt | Space |MO(2) |MO(3)| |Lt |Dn |Rt |
29 * `---------------------------------------------------------------------|'
30 */
31
32const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
33 /* Base */
34 [0] = LAYOUT_65_ansi_blocker(
35 KC_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,
36 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,
37 KC_LGUI, 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_MUTE,
38 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL,
39 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), MO(2), KC_LEFT, KC_DOWN, KC_RIGHT
40 ),
41 [1] = LAYOUT_65_ansi_blocker(
42 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
44 RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY,
45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
46 _______, _______, _______, KC_SPC, _______, _______, _______, _______, _______
47 ),
48 [2] = LAYOUT_65_ansi_blocker(
49 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
50 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
51 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT,
52 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
53 _______, _______, _______, _______, _______, _______, _______, _______, _______
54 ),
55 [3] = LAYOUT_65_ansi_blocker(
56 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
57 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
58 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
59 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
60 _______, _______, _______, _______, _______, _______, _______, _______, _______
61 ),
62};
diff --git a/keyboards/adpenrose/kintsugi/keymaps/via/readme.md b/keyboards/adpenrose/kintsugi/keymaps/via/readme.md
new file mode 100644
index 000000000..afdea1ca5
--- /dev/null
+++ b/keyboards/adpenrose/kintsugi/keymaps/via/readme.md
@@ -0,0 +1 @@
# VIA keymap for Kintsugi
diff --git a/keyboards/adpenrose/kintsugi/keymaps/via/rules.mk b/keyboards/adpenrose/kintsugi/keymaps/via/rules.mk
new file mode 100644
index 000000000..36b7ba9cb
--- /dev/null
+++ b/keyboards/adpenrose/kintsugi/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
1VIA_ENABLE = yes
2LTO_ENABLE = yes
diff --git a/keyboards/adpenrose/kintsugi/kintsugi.c b/keyboards/adpenrose/kintsugi/kintsugi.c
new file mode 100644
index 000000000..c69779317
--- /dev/null
+++ b/keyboards/adpenrose/kintsugi/kintsugi.c
@@ -0,0 +1,74 @@
1/* Copyright 2021 adpenrose
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 "kintsugi.h"
18
19/* Encoder */
20#ifdef ENCODER_ENABLE
21bool encoder_update_kb(uint8_t index, bool clockwise) {
22 if (!encoder_update_user(index, clockwise)) {
23 return false;
24 }
25/* The switch case allows for different encoder mappings on different layers, "default" map gets applied for all unspecified layers */
26 switch(get_highest_layer(layer_state)){
27 case 1:
28 if (clockwise) {
29 tap_code(KC_MNXT);
30 } else {
31 tap_code(KC_MPRV);
32 }
33 break;
34 default:
35 if (clockwise){
36 tap_code(KC_VOLU);
37 } else{
38 tap_code(KC_VOLD);
39 }
40 break;
41 }
42 return true;
43}
44#endif
45
46/* Rotation of the OLED: */
47#ifdef OLED_ENABLE
48oled_rotation_t oled_init_user(oled_rotation_t rotation) {
49 return OLED_ROTATION_270;
50}
51
52bool oled_task_kb(void) {
53 if (!oled_task_user()) {
54 return false;
55 }
56 /* Kintsugi logo render: */
57 static const char PROGMEM logo_1[] = {
58 0x83, 0x84, 0x85, 0x86, 0x87, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0x00
59 };
60 static const char PROGMEM logo_2[] = {
61 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0x00
62 };
63 static const char PROGMEM logo_3[] = {
64 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0x00
65 };
66 oled_set_cursor(1,3);
67 oled_write_P(logo_1, false);
68 oled_set_cursor(1,7);
69 oled_write_P(logo_2, false);
70 oled_set_cursor(1,11);
71 oled_write_P(logo_3, false);
72 return true;
73}
74#endif
diff --git a/keyboards/adpenrose/kintsugi/kintsugi.h b/keyboards/adpenrose/kintsugi/kintsugi.h
new file mode 100644
index 000000000..37ce6cc6e
--- /dev/null
+++ b/keyboards/adpenrose/kintsugi/kintsugi.h
@@ -0,0 +1,46 @@
1/* Copyright 2021 adpenrose
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#define LAYOUT_65_ansi_blocker( \
30 K00, K01, K02, K03, K04, K05, K06, K50, K51, K52, K53, K54, K55, K56, \
31 K10, K11, K12, K13, K14, K15, K16, K60, K61, K62, K63, K64, K65, K66, \
32 K20, K21, K22, K23, K24, K25, K26, K70, K71, K72, K73, K74, K75, K76, \
33 K30, K31, K32, K33, K34, K35, K36, K80, K81, K82, K83, K84, K85, K86, \
34 K40, K41, K42, K46, K92, K93, K94, K95, K96 \
35) { \
36 { K00, K01, K02, K03, K04, K05, K06 }, \
37 { K10, K11, K12, K13, K14, K15, K16 }, \
38 { K20, K21, K22, K23, K24, K25, K26 }, \
39 { K30, K31, K32, K33, K34, K35, K36 }, \
40 { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46 }, \
41 { K50, K51, K52, K53, K54, K55, K56 }, \
42 { K60, K61, K62, K63, K64, K65, K66 }, \
43 { K70, K71, K72, K73, K74, K75, K76 }, \
44 { K80, K81, K82, K83, K84, K85, K86 }, \
45 { KC_NO, KC_NO, K92, K93, K94, K95, K96 } \
46}
diff --git a/keyboards/adpenrose/kintsugi/lib/kintsugifont.c b/keyboards/adpenrose/kintsugi/lib/kintsugifont.c
new file mode 100644
index 000000000..bfa05d53a
--- /dev/null
+++ b/keyboards/adpenrose/kintsugi/lib/kintsugifont.c
@@ -0,0 +1,244 @@
1/* Copyright 2021 adpenrose
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 "progmem.h"
18
19const unsigned char font[] PROGMEM = {
20 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
21 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
22 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
23 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
24 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
25 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
26 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
27 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
28 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
29 0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
30 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
31 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
32 0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
33 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
34 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
35 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
36 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
37 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
38 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
39 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
40 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
41 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
42 0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
43 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
44 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
45 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
46 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
47 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
48 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
49 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
50 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
51 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
52 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
53 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
54 0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
55 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
56 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
57 0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
58 0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
59 0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
60 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
61 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
62 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
63 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
64 0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
65 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
66 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
67 0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
68 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
69 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
70 0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
71 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
72 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
73 0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
74 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
75 0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
76 0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
77 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
78 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
79 0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
80 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
81 0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
82 0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
83 0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
84 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
85 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
86 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
87 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
88 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
89 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
90 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
91 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
92 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
93 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
94 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
95 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
96 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
97 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
98 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
99 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
100 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
101 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
102 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
103 0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
104 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
105 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
106 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
107 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
108 0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
109 0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
110 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
111 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
112 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
113 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
114 0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
115 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
116 0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
117 0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
118 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
119 0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
120 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
121 0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
122 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
123 0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x00,
124 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
125 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
126 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
127 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
128 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
129 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
130 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
131 0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
132 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00,
133 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00,
134 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
135 0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
136 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
137 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
138 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
139 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
140 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
141 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
142 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
143 0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
144 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
145 0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
146 0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
147 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
148 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
149 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
150 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
151 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0,
152 0xE0, 0xF0, 0xF0, 0xF8, 0xFC, 0xBC,
153 0x9E, 0x9E, 0xBC, 0xFC, 0xF8, 0xF0,
154 0xF0, 0xE0, 0xC0, 0xC0, 0x80, 0x00,
155 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
156 0x80, 0xC0, 0xF0, 0xFC, 0xFE, 0x8E,
157 0xE6, 0x70, 0x00, 0xFC, 0xFE, 0xFE,
158 0xFC, 0x00, 0x38, 0x78, 0xF0, 0xFE,
159 0xFE, 0xF0, 0x78, 0x38, 0x00, 0x00,
160 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
161 0x00, 0x78, 0x78, 0x78, 0x78, 0x78,
162 0x78, 0x78, 0x7E, 0x7E, 0xFE, 0xFC,
163 0xFC, 0x7C, 0x18, 0x00, 0x9E, 0xBC,
164 0x1C, 0x02, 0x0F, 0x1E, 0x0C, 0x00,
165 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
166 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
167 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
168 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
169 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC,
170 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00,
171 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E,
172 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00,
173 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B,
174 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00,
175 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE,
176 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00,
177 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
178 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
179 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
180 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
181 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
182 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
183 0x00, 0x00, 0x01, 0xE1, 0xE1, 0xE1,
184 0xE1, 0xE3, 0xE7, 0xE7, 0xE3, 0xE3,
185 0xFF, 0xFF, 0xE3, 0xE3, 0xE7, 0xE7,
186 0xE3, 0xE1, 0xE1, 0xE1, 0xE1, 0x01,
187 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
188 0x40, 0xF1, 0xFB, 0xFF, 0xFF, 0xE7,
189 0xF3, 0xF8, 0x00, 0xFF, 0xFF, 0xFF,
190 0xFF, 0x87, 0xC7, 0xE7, 0xFF, 0xFF,
191 0xFF, 0xFF, 0xE7, 0xC7, 0x87, 0x07,
192 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
193 0x00, 0x8E, 0x9E, 0x9E, 0x1E, 0x1E,
194 0x1E, 0x1E, 0x1E, 0x1E, 0x9F, 0xDF,
195 0xFF, 0xFF, 0xFE, 0xCF, 0x0F, 0x0F,
196 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
197 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
198 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
199 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
200 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
201 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
202 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00,
203 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F,
204 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00,
205 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20,
206 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00,
207 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F,
208 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00,
209 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
210 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
211 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
212 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
213 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
214 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
215 0x00, 0x00, 0x70, 0x70, 0x71, 0x73,
216 0x73, 0x7F, 0x7E, 0x7C, 0x70, 0x70,
217 0x7F, 0x7F, 0x70, 0x70, 0x7C, 0x7E,
218 0x7F, 0x73, 0x73, 0x71, 0x70, 0x70,
219 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
220 0x60, 0x7C, 0x3E, 0x01, 0x3E, 0x61,
221 0x0E, 0x1E, 0x00, 0x3F, 0x7F, 0x7F,
222 0x7F, 0x73, 0x73, 0x71, 0x70, 0x77,
223 0x77, 0x70, 0x71, 0x73, 0x73, 0x73,
224 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
225 0x00, 0x1F, 0x7F, 0x7F, 0x78, 0x78,
226 0x78, 0x78, 0x78, 0x78, 0x79, 0x7B,
227 0x7B, 0x7B, 0x03, 0x01, 0x00, 0x00,
228 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
229 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
230 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
231 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
232 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
233 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
234 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
235 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
236 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
237 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
238 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
239 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
240 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
241 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
242 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
243 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
244};
diff --git a/keyboards/adpenrose/kintsugi/post_config.h b/keyboards/adpenrose/kintsugi/post_config.h
new file mode 100644
index 000000000..e1f92f9e6
--- /dev/null
+++ b/keyboards/adpenrose/kintsugi/post_config.h
@@ -0,0 +1,21 @@
1/*
2Copyright 2021 adpenrose
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#ifndef OLED_FONT_H
19# define OLED_FONT_H "lib/kintsugifont.c"
20# define OLED_TIMEOUT 120000
21#endif \ No newline at end of file
diff --git a/keyboards/adpenrose/kintsugi/readme.md b/keyboards/adpenrose/kintsugi/readme.md
new file mode 100644
index 000000000..2aa402543
--- /dev/null
+++ b/keyboards/adpenrose/kintsugi/readme.md
@@ -0,0 +1,37 @@
1# Kintsugi
2
3![kintsugi](https://i.imgur.com/HPdmzdCl.jpeg)
4
5A 65%-ish keyboard with some extra features.
6
7## Features
8
9* Powered by an ATmega32u4 microcontroller (current version needs an Elite-C to work).
10* Encoder.
11* OLED screen.
12* Underglow.
13* Hotswap sockets.
14
15## General info
16
17* Keyboard Maintainer: [Arturo Avila](https://github.com/ADPenrose)
18* Hardware Supported: Kintsugi V1 PCB
19* Hardware Availability: [Arturo Avila](https://github.com/ADPenrose)
20
21Make example for this keyboard (after setting up your build environment):
22
23 make kintsugi:default
24
25Flashing example for this keyboard:
26
27 make kintsugi:default:flash
28
29See 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).
30
31## Bootloader
32
33Enter the bootloader in 3 ways:
34
35* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
36* **Physical reset button**: Briefly press the button on the front of the Elite-C microcontroller _**before soldering**_ it to the PCB- some may have pads you must short instead
37* **Keycode in layout**: Press the key mapped to `RESET` if it is available
diff --git a/keyboards/adpenrose/kintsugi/rules.mk b/keyboards/adpenrose/kintsugi/rules.mk
new file mode 100644
index 000000000..fe95a9b72
--- /dev/null
+++ b/keyboards/adpenrose/kintsugi/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 = no # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
15NKRO_ENABLE = no # Enable N-Key Rollover
16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
17RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
18AUDIO_ENABLE = no # Audio output
19ENCODER_ENABLE = yes # Encoder functionality
20OLED_ENABLE = yes # OLED functionality
21OLED_DRIVER = SSD1306