aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/splitkb/kyria/keymaps/default/config.h6
-rw-r--r--keyboards/splitkb/kyria/kyria.c102
-rw-r--r--keyboards/splitkb/kyria/kyria.h5
-rw-r--r--keyboards/splitkb/kyria/readme.md10
-rw-r--r--keyboards/splitkb/kyria/rev1/config.h6
-rw-r--r--keyboards/splitkb/kyria/rev1/rev1.c108
-rw-r--r--keyboards/splitkb/kyria/rev2/config.h107
-rw-r--r--keyboards/splitkb/kyria/rev2/proton_c/chconf.h22
-rw-r--r--keyboards/splitkb/kyria/rev2/proton_c/halconf.h22
-rw-r--r--keyboards/splitkb/kyria/rev2/proton_c/mcuconf.h29
-rw-r--r--keyboards/splitkb/kyria/rev2/proton_c/proton_c.c17
-rw-r--r--keyboards/splitkb/kyria/rev2/proton_c/proton_c.h19
-rw-r--r--keyboards/splitkb/kyria/rev2/proton_c/rules.mk12
-rw-r--r--keyboards/splitkb/kyria/rev2/rev2.c76
-rw-r--r--keyboards/splitkb/kyria/rev2/rev2.h70
-rw-r--r--keyboards/splitkb/kyria/rev2/rules.mk8
-rw-r--r--keyboards/splitkb/kyria/rules.mk2
17 files changed, 508 insertions, 113 deletions
diff --git a/keyboards/splitkb/kyria/keymaps/default/config.h b/keyboards/splitkb/kyria/keymaps/default/config.h
index be87e7ac9..f989d6740 100644
--- a/keyboards/splitkb/kyria/keymaps/default/config.h
+++ b/keyboards/splitkb/kyria/keymaps/default/config.h
@@ -1,4 +1,4 @@
1/* Copyright 2019 Thomas Baart <thomas@splitkb.com> 1/* Copyright 2022 Thomas Baart <thomas@splitkb.com>
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 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 4 * it under the terms of the GNU General Public License as published by
@@ -26,7 +26,3 @@
26 26
27// Lets you roll mod-tap keys 27// Lets you roll mod-tap keys
28#define IGNORE_MOD_TAP_INTERRUPT 28#define IGNORE_MOD_TAP_INTERRUPT
29
30// If you are using an Elite C rev3 on the slave side, uncomment the lines below:
31// #define SPLIT_USB_DETECT
32// #define NO_USB_STARTUP_CHECK
diff --git a/keyboards/splitkb/kyria/kyria.c b/keyboards/splitkb/kyria/kyria.c
index 21ed5e84c..9bc3b2068 100644
--- a/keyboards/splitkb/kyria/kyria.c
+++ b/keyboards/splitkb/kyria/kyria.c
@@ -14,3 +14,105 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16#include "kyria.h" 16#include "kyria.h"
17
18#ifdef OLED_ENABLE
19oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
20 return OLED_ROTATION_180;
21}
22
23bool oled_task_kb(void) {
24 if (!oled_task_user()) {
25 return false;
26 }
27 if (is_keyboard_master()) {
28 // QMK Logo and version information
29 // clang-format off
30 static const char PROGMEM qmk_logo[] = {
31 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
32 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
33 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0};
34 // clang-format on
35
36 oled_write_P(qmk_logo, false);
37 oled_write_P(PSTR("Kyria "), false);
38#if defined(KEYBOARD_splitkb_kyria_rev1)
39 oled_write_P(PSTR("rev1\n\n"), false);
40#elif defined(KEYBOARD_splitkb_kyria_rev2)
41 oled_write_P(PSTR("rev2\n\n"), false);
42#endif
43 // Host Keyboard Layer Status
44 oled_write_P(PSTR("Layer: "), false);
45 switch (get_highest_layer(layer_state | default_layer_state)) {
46 case 0:
47 oled_write_P(PSTR("QWERTY\n"), false);
48 break;
49 case 1:
50 oled_write_P(PSTR("Dvorak\n"), false);
51 break;
52 case 2:
53 oled_write_P(PSTR("Colemak-DH\n"), false);
54 break;
55 case 3:
56 oled_write_P(PSTR("Nav\n"), false);
57 break;
58 case 4:
59 oled_write_P(PSTR("Sym\n"), false);
60 break;
61 case 5:
62 oled_write_P(PSTR("Function\n"), false);
63 break;
64 case 6:
65 oled_write_P(PSTR("Adjust\n"), false);
66 break;
67 default:
68 oled_write_P(PSTR("Undefined\n"), false);
69 }
70
71 // Host Keyboard LED Status
72 led_t led_usb_state = host_keyboard_led_state();
73 oled_write_P(led_usb_state.num_lock ? PSTR("NUMLCK ") : PSTR(" "), false);
74 oled_write_P(led_usb_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false);
75 oled_write_P(led_usb_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false);
76 } else {
77 // clang-format off
78 static const char PROGMEM kyria_logo[] = {
79 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,192,224,240,112,120, 56, 60, 28, 30, 14, 14, 14, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 14, 14, 14, 30, 28, 60, 56,120,112,240,224,192,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
80 0, 0, 0, 0, 0, 0, 0,192,224,240,124, 62, 31, 15, 7, 3, 1,128,192,224,240,120, 56, 60, 28, 30, 14, 14, 7, 7,135,231,127, 31,255,255, 31,127,231,135, 7, 7, 14, 14, 30, 28, 60, 56,120,240,224,192,128, 1, 3, 7, 15, 31, 62,124,240,224,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
81 0, 0, 0, 0,240,252,255, 31, 7, 1, 0, 0,192,240,252,254,255,247,243,177,176, 48, 48, 48, 48, 48, 48, 48,120,254,135, 1, 0, 0,255,255, 0, 0, 1,135,254,120, 48, 48, 48, 48, 48, 48, 48,176,177,243,247,255,254,252,240,192, 0, 0, 1, 7, 31,255,252,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
82 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,254,255,255, 1, 1, 7, 30,120,225,129,131,131,134,134,140,140,152,152,177,183,254,248,224,255,255,224,248,254,183,177,152,152,140,140,134,134,131,131,129,225,120, 30, 7, 1, 1,255,255,254, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0,255,255, 0, 0,192,192, 48, 48, 0, 0,240,240, 0, 0, 0, 0, 0, 0,240,240, 0, 0,240,240,192,192, 48, 48, 48, 48,192,192, 0, 0, 48, 48,243,243, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,192,192, 0, 0, 0, 0, 0,
83 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,127,255,255,128,128,224,120, 30,135,129,193,193, 97, 97, 49, 49, 25, 25,141,237,127, 31, 7,255,255, 7, 31,127,237,141, 25, 25, 49, 49, 97, 97,193,193,129,135, 30,120,224,128,128,255,255,127, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0, 63, 63, 3, 3, 12, 12, 48, 48, 0, 0, 0, 0, 51, 51, 51, 51, 51, 51, 15, 15, 0, 0, 63, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 63, 63, 48, 48, 0, 0, 12, 12, 51, 51, 51, 51, 51, 51, 63, 63, 0, 0, 0, 0, 0,
84 0, 0, 0, 0, 15, 63,255,248,224,128, 0, 0, 3, 15, 63,127,255,239,207,141, 13, 12, 12, 12, 12, 12, 12, 12, 30,127,225,128, 0, 0,255,255, 0, 0,128,225,127, 30, 12, 12, 12, 12, 12, 12, 12, 13,141,207,239,255,127, 63, 15, 3, 0, 0,128,224,248,255, 63, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
85 0, 0, 0, 0, 0, 0, 0, 3, 7, 15, 62,124,248,240,224,192,128, 1, 3, 7, 15, 30, 28, 60, 56,120,112,112,224,224,225,231,254,248,255,255,248,254,231,225,224,224,112,112,120, 56, 60, 28, 30, 15, 7, 3, 1,128,192,224,240,248,124, 62, 15, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
86 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 15, 14, 30, 28, 60, 56,120,112,112,112,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,112,112,112,120, 56, 60, 28, 30, 14, 15, 7, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
87 };
88 // clang-format on
89 oled_write_raw_P(kyria_logo, sizeof(kyria_logo));
90 }
91 return false;
92}
93#endif
94
95#ifdef ENCODER_ENABLE
96bool encoder_update_kb(uint8_t index, bool clockwise) {
97 if (!encoder_update_user(index, clockwise)) {
98 return false;
99 }
100
101 if (index == 0) {
102 // Volume control
103 if (clockwise) {
104 tap_code(KC_VOLU);
105 } else {
106 tap_code(KC_VOLD);
107 }
108 } else if (index == 1) {
109 // Page up/Page down
110 if (clockwise) {
111 tap_code(KC_PGDN);
112 } else {
113 tap_code(KC_PGUP);
114 }
115 }
116 return true;
117}
118#endif
diff --git a/keyboards/splitkb/kyria/kyria.h b/keyboards/splitkb/kyria/kyria.h
index 2b1a29815..984a83897 100644
--- a/keyboards/splitkb/kyria/kyria.h
+++ b/keyboards/splitkb/kyria/kyria.h
@@ -1,4 +1,4 @@
1/* Copyright 2019 Thomas Baart <thomas@splitkb.com> 1/* Copyright 2022 Thomas Baart <thomas@splitkb.com>
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 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 4 * it under the terms of the GNU General Public License as published by
@@ -20,6 +20,9 @@
20#if defined(KEYBOARD_splitkb_kyria_rev1) 20#if defined(KEYBOARD_splitkb_kyria_rev1)
21# include "rev1.h" 21# include "rev1.h"
22#endif 22#endif
23#if defined(KEYBOARD_splitkb_kyria_rev2)
24# include "rev2.h"
25#endif
23 26
24/* This a shortcut to help you visually see your layout. 27/* This a shortcut to help you visually see your layout.
25 * 28 *
diff --git a/keyboards/splitkb/kyria/readme.md b/keyboards/splitkb/kyria/readme.md
index 7ecf3946f..32e6ae5f8 100644
--- a/keyboards/splitkb/kyria/readme.md
+++ b/keyboards/splitkb/kyria/readme.md
@@ -10,12 +10,16 @@ Hardware Availability: [splitkb.com](https://splitkb.com) and partners.
10 10
11Make example for this keyboard (after setting up your build environment): 11Make example for this keyboard (after setting up your build environment):
12 12
13 make splitkb/kyria/rev1:default 13 make splitkb/kyria/rev2:default
14 make splitkb/kyria/rev1/proton_c:default 14 make splitkb/kyria/rev2/proton_c:default
15 15
16Example of flashing this keyboard: 16Example of flashing this keyboard:
17 17
18 make splitkb/kyria/rev1:default:flash 18 make splitkb/kyria/rev2:default:flash
19
20Replace "rev2" with "rev1" if you have a Kyria of revision 1.4 or below.
21Not sure what revision yours is? It is printed on the outer lower edge of the PCB!
22As a rule of thumb, all Kyrias sold after January 1st 2022 are revision 2.x.
19 23
20See 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). 24See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
21 25
diff --git a/keyboards/splitkb/kyria/rev1/config.h b/keyboards/splitkb/kyria/rev1/config.h
index e19e8dfa9..2fc34070f 100644
--- a/keyboards/splitkb/kyria/rev1/config.h
+++ b/keyboards/splitkb/kyria/rev1/config.h
@@ -1,5 +1,5 @@
1/* 1/*
2Copyright 2019 Thomas Baart <thomas@splitkb.com> 2Copyright 2022 Thomas Baart <thomas@splitkb.com>
3 3
4This program is free software: you can redistribute it and/or modify 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 5it under the terms of the GNU General Public License as published by
@@ -21,8 +21,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
21#define VENDOR_ID 0x8D1D 21#define VENDOR_ID 0x8D1D
22#define PRODUCT_ID 0x9D9D 22#define PRODUCT_ID 0x9D9D
23#define DEVICE_VER 0x0001 23#define DEVICE_VER 0x0001
24#define MANUFACTURER splitKB 24#define MANUFACTURER splitkb
25#define PRODUCT Kyria 25#define PRODUCT Kyria rev1
26 26
27/* key matrix size */ 27/* key matrix size */
28/* Rows are doubled up */ 28/* Rows are doubled up */
diff --git a/keyboards/splitkb/kyria/rev1/rev1.c b/keyboards/splitkb/kyria/rev1/rev1.c
index b2641fb40..8398366e7 100644
--- a/keyboards/splitkb/kyria/rev1/rev1.c
+++ b/keyboards/splitkb/kyria/rev1/rev1.c
@@ -1,4 +1,4 @@
1/* Copyright 2019 Thomas Baart <thomas@splitkb.com> 1/* Copyright 2022 Thomas Baart <thomas@splitkb.com>
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 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 4 * it under the terms of the GNU General Public License as published by
@@ -31,7 +31,13 @@ __attribute__ ((weak)) const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATR
31#endif 31#endif
32 32
33#ifdef RGB_MATRIX_ENABLE 33#ifdef RGB_MATRIX_ENABLE
34/* Map physical under glow LEDs for RGB matrix support */ 34/* Map physical under glow LEDs for RGB matrix support
35 *
36 * 09, 05, xx, xx, 04, xx, xx, 14, xx, xx, 15, 19,
37 * xx, xx, xx, xx, xx, 03, 13, xx, xx, xx, xx, xx,
38 * 08, 06, 07, xx, xx, xx, 00, xx, xx, 10, xx, xx, xx, 17, 16, 18,
39 * xx, 02, 01, xx, xx, xx, xx, 11, 12, xx
40 */
35led_config_t g_led_config = { { 41led_config_t g_led_config = { {
36 // Key Matrix to LED Index 42 // Key Matrix to LED Index
37 { NO_LED, NO_LED, NO_LED, 4, NO_LED, NO_LED, 5, 9 }, 43 { NO_LED, NO_LED, NO_LED, 4, NO_LED, NO_LED, 5, 9 },
@@ -54,101 +60,3 @@ led_config_t g_led_config = { {
54 LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL 60 LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL
55} }; 61} };
56#endif 62#endif
57
58#ifdef OLED_ENABLE
59oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
60 return OLED_ROTATION_180;
61}
62
63bool oled_task_kb(void) {
64 if (!oled_task_user()) {
65 return false;
66 }
67 if (is_keyboard_master()) {
68 // QMK Logo and version information
69 // clang-format off
70 static const char PROGMEM qmk_logo[] = {
71 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
72 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
73 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0};
74 // clang-format on
75
76 oled_write_P(qmk_logo, false);
77 oled_write_P(PSTR("Kyria rev1.0\n\n"), false);
78
79 // Host Keyboard Layer Status
80 oled_write_P(PSTR("Layer: "), false);
81 switch (get_highest_layer(layer_state | default_layer_state)) {
82 case 0:
83 oled_write_P(PSTR("QWERTY\n"), false);
84 break;
85 case 1:
86 oled_write_P(PSTR("Dvorak\n"), false);
87 break;
88 case 2:
89 oled_write_P(PSTR("Colemak-DH\n"), false);
90 break;
91 case 3:
92 oled_write_P(PSTR("Nav\n"), false);
93 break;
94 case 4:
95 oled_write_P(PSTR("Sym\n"), false);
96 break;
97 case 5:
98 oled_write_P(PSTR("Function\n"), false);
99 break;
100 case 6:
101 oled_write_P(PSTR("Adjust\n"), false);
102 break;
103 default:
104 oled_write_P(PSTR("Undefined\n"), false);
105 }
106
107 // Host Keyboard LED Status
108 led_t led_usb_state = host_keyboard_led_state();
109 oled_write_P(led_usb_state.num_lock ? PSTR("NUMLCK ") : PSTR(" "), false);
110 oled_write_P(led_usb_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false);
111 oled_write_P(led_usb_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false);
112 } else {
113 // clang-format off
114 static const char PROGMEM kyria_logo[] = {
115 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,192,224,240,112,120, 56, 60, 28, 30, 14, 14, 14, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 14, 14, 14, 30, 28, 60, 56,120,112,240,224,192,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
116 0, 0, 0, 0, 0, 0, 0,192,224,240,124, 62, 31, 15, 7, 3, 1,128,192,224,240,120, 56, 60, 28, 30, 14, 14, 7, 7,135,231,127, 31,255,255, 31,127,231,135, 7, 7, 14, 14, 30, 28, 60, 56,120,240,224,192,128, 1, 3, 7, 15, 31, 62,124,240,224,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
117 0, 0, 0, 0,240,252,255, 31, 7, 1, 0, 0,192,240,252,254,255,247,243,177,176, 48, 48, 48, 48, 48, 48, 48,120,254,135, 1, 0, 0,255,255, 0, 0, 1,135,254,120, 48, 48, 48, 48, 48, 48, 48,176,177,243,247,255,254,252,240,192, 0, 0, 1, 7, 31,255,252,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
118 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,254,255,255, 1, 1, 7, 30,120,225,129,131,131,134,134,140,140,152,152,177,183,254,248,224,255,255,224,248,254,183,177,152,152,140,140,134,134,131,131,129,225,120, 30, 7, 1, 1,255,255,254, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0,255,255, 0, 0,192,192, 48, 48, 0, 0,240,240, 0, 0, 0, 0, 0, 0,240,240, 0, 0,240,240,192,192, 48, 48, 48, 48,192,192, 0, 0, 48, 48,243,243, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,192,192, 0, 0, 0, 0, 0,
119 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,127,255,255,128,128,224,120, 30,135,129,193,193, 97, 97, 49, 49, 25, 25,141,237,127, 31, 7,255,255, 7, 31,127,237,141, 25, 25, 49, 49, 97, 97,193,193,129,135, 30,120,224,128,128,255,255,127, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0, 63, 63, 3, 3, 12, 12, 48, 48, 0, 0, 0, 0, 51, 51, 51, 51, 51, 51, 15, 15, 0, 0, 63, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 63, 63, 48, 48, 0, 0, 12, 12, 51, 51, 51, 51, 51, 51, 63, 63, 0, 0, 0, 0, 0,
120 0, 0, 0, 0, 15, 63,255,248,224,128, 0, 0, 3, 15, 63,127,255,239,207,141, 13, 12, 12, 12, 12, 12, 12, 12, 30,127,225,128, 0, 0,255,255, 0, 0,128,225,127, 30, 12, 12, 12, 12, 12, 12, 12, 13,141,207,239,255,127, 63, 15, 3, 0, 0,128,224,248,255, 63, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
121 0, 0, 0, 0, 0, 0, 0, 3, 7, 15, 62,124,248,240,224,192,128, 1, 3, 7, 15, 30, 28, 60, 56,120,112,112,224,224,225,231,254,248,255,255,248,254,231,225,224,224,112,112,120, 56, 60, 28, 30, 15, 7, 3, 1,128,192,224,240,248,124, 62, 15, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
122 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 15, 14, 30, 28, 60, 56,120,112,112,112,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,112,112,112,120, 56, 60, 28, 30, 14, 15, 7, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
123 };
124 // clang-format on
125 oled_write_raw_P(kyria_logo, sizeof(kyria_logo));
126 }
127 return false;
128}
129#endif
130
131#ifdef ENCODER_ENABLE
132bool encoder_update_kb(uint8_t index, bool clockwise) {
133 if (!encoder_update_user(index, clockwise)) {
134 return false;
135 }
136
137 if (index == 0) {
138 // Volume control
139 if (clockwise) {
140 tap_code(KC_VOLU);
141 } else {
142 tap_code(KC_VOLD);
143 }
144 } else if (index == 1) {
145 // Page up/Page down
146 if (clockwise) {
147 tap_code(KC_PGDN);
148 } else {
149 tap_code(KC_PGUP);
150 }
151 }
152 return true;
153}
154#endif
diff --git a/keyboards/splitkb/kyria/rev2/config.h b/keyboards/splitkb/kyria/rev2/config.h
new file mode 100644
index 000000000..8ff381396
--- /dev/null
+++ b/keyboards/splitkb/kyria/rev2/config.h
@@ -0,0 +1,107 @@
1/*
2Copyright 2022 Thomas Baart <thomas@splitkb.com>
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/* USB Device descriptor parameter */
21#define VENDOR_ID 0x8D1D
22#define PRODUCT_ID 0x9D9D
23#define DEVICE_VER 0x0002
24#define MANUFACTURER splitkb
25#define PRODUCT Kyria rev2
26
27/* key matrix size */
28/* Rows are doubled up */
29#define MATRIX_ROWS 8
30#define MATRIX_COLS 8
31
32// wiring
33#define MATRIX_ROW_PINS \
34 { F6, F7, B1, B3 }
35#define MATRIX_COL_PINS \
36 { B2, B6, B5, B4, E6, D7, C6, D4 }
37#define MATRIX_ROW_PINS_RIGHT \
38 { D4, C6, D7, E6 }
39#define MATRIX_COL_PINS_RIGHT \
40 { B4, B5, B6, B2, B3, B1, F7, F6 }
41#define UNUSED_PINS
42
43#define ENCODERS_PAD_A \
44 { F4 }
45#define ENCODERS_PAD_B \
46 { F5 }
47#define ENCODERS_PAD_A_RIGHT \
48 { F5 }
49#define ENCODERS_PAD_B_RIGHT \
50 { F4 }
51
52/* COL2ROW, ROW2COL*/
53#define DIODE_DIRECTION COL2ROW
54
55// Side detection
56// col 4 row 3 on right-hand-side
57#define SPLIT_HAND_MATRIX_GRID E6, B3 // row first because the board is col2row
58#define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT
59#define MATRIX_MASKED // actual mask is defined by `matrix_mask` in `rev2.c`
60
61/* define if matrix has ghost (lacks anti-ghosting diodes) */
62//#define MATRIX_HAS_GHOST
63
64/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
65#define DEBOUNCE 5
66
67/*
68 * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
69 */
70
71#if defined(CONVERT_TO_PROTON_C)
72# define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode.
73# define SERIAL_USART_PIN_SWAP // Swap TX and RX pins if keyboard is master halve.
74# define SERIAL_USART_DRIVER SD1 // USART driver of TX pin. default: SD1
75# define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
76# define SERIAL_USART_TX_PIN D3
77# define SERIAL_USART_RX_PIN D2
78
79# define RGB_DI_PIN PAL_LINE(GPIOA, 3)
80# define WS2812_PWM_DRIVER PWMD2 // default: PWMD2
81# define WS2812_PWM_CHANNEL 4 // default: 2
82# define WS2812_PWM_PAL_MODE 1 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2
83# define WS2812_DMA_STREAM STM32_DMA1_STREAM2 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
84# define WS2812_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
85# define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM2_UP // DMAMUX configuration for TIMx_UP -- only required if your MCU has a DMAMUX peripheral, see the respective reference manual for the appropriate values for your MCU.
86#else
87# define RGB_DI_PIN D3
88# define SOFT_SERIAL_PIN D2
89#endif
90
91#define RGBLED_SPLIT \
92 { 10, 10 }
93#define RGBLED_NUM 20
94
95#ifdef OLED_ENABLE
96# define OLED_DISPLAY_128X64
97# define SPLIT_OLED_ENABLE
98#endif
99
100/* RGB matrix support */
101#ifdef RGB_MATRIX_ENABLE
102# define SPLIT_TRANSPORT_MIRROR
103# define DRIVER_LED_TOTAL RGBLED_NUM // Number of LEDs
104# define RGB_MATRIX_SPLIT { 10, 10 }
105# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 170
106# define RGB_DISABLE_WHEN_USB_SUSPENDED
107#endif
diff --git a/keyboards/splitkb/kyria/rev2/proton_c/chconf.h b/keyboards/splitkb/kyria/rev2/proton_c/chconf.h
new file mode 100644
index 000000000..7ca1d3d24
--- /dev/null
+++ b/keyboards/splitkb/kyria/rev2/proton_c/chconf.h
@@ -0,0 +1,22 @@
1/* Copyright 2020 QMK
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#define CH_CFG_ST_RESOLUTION 16
20#define CH_CFG_ST_FREQUENCY 10000
21
22#include_next "chconf.h"
diff --git a/keyboards/splitkb/kyria/rev2/proton_c/halconf.h b/keyboards/splitkb/kyria/rev2/proton_c/halconf.h
new file mode 100644
index 000000000..99f2e11b9
--- /dev/null
+++ b/keyboards/splitkb/kyria/rev2/proton_c/halconf.h
@@ -0,0 +1,22 @@
1/* Copyright 2020 QMK
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 3 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 <https://www.gnu.org/licenses/>.
15 */
16#pragma once
17
18#define HAL_USE_I2C TRUE
19#define HAL_USE_PWM TRUE
20#define HAL_USE_SERIAL TRUE
21
22#include_next <halconf.h>
diff --git a/keyboards/splitkb/kyria/rev2/proton_c/mcuconf.h b/keyboards/splitkb/kyria/rev2/proton_c/mcuconf.h
new file mode 100644
index 000000000..58348af39
--- /dev/null
+++ b/keyboards/splitkb/kyria/rev2/proton_c/mcuconf.h
@@ -0,0 +1,29 @@
1/* Copyright 2020 QMK
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 3 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 <https://www.gnu.org/licenses/>.
15 */
16#pragma once
17
18#include_next <mcuconf.h>
19
20#undef STM32_PWM_USE_TIM2
21#define STM32_PWM_USE_TIM2 TRUE
22#undef STM32_PWM_USE_TIM3
23#define STM32_PWM_USE_TIM3 FALSE
24
25#undef STM32_SERIAL_USE_USART1
26#define STM32_SERIAL_USE_USART1 TRUE
27
28#undef STM32_ST_USE_TIMER
29#define STM32_ST_USE_TIMER 3
diff --git a/keyboards/splitkb/kyria/rev2/proton_c/proton_c.c b/keyboards/splitkb/kyria/rev2/proton_c/proton_c.c
new file mode 100644
index 000000000..9c74b45f7
--- /dev/null
+++ b/keyboards/splitkb/kyria/rev2/proton_c/proton_c.c
@@ -0,0 +1,17 @@
1/* Copyright 2022 Thomas Baart <thomas@splitkb.com>
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 "proton_c.h"
diff --git a/keyboards/splitkb/kyria/rev2/proton_c/proton_c.h b/keyboards/splitkb/kyria/rev2/proton_c/proton_c.h
new file mode 100644
index 000000000..143b9e39d
--- /dev/null
+++ b/keyboards/splitkb/kyria/rev2/proton_c/proton_c.h
@@ -0,0 +1,19 @@
1/* Copyright 2022 Thomas Baart <thomas@splitkb.com>
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 "rev2.h"
diff --git a/keyboards/splitkb/kyria/rev2/proton_c/rules.mk b/keyboards/splitkb/kyria/rev2/proton_c/rules.mk
new file mode 100644
index 000000000..1a5f9a7cb
--- /dev/null
+++ b/keyboards/splitkb/kyria/rev2/proton_c/rules.mk
@@ -0,0 +1,12 @@
1# MCU name
2MCU = STM32F303
3BOARD = QMK_PROTON_C
4
5# Bootloader selection
6BOOTLOADER = stm32-dfu
7
8WS2812_DRIVER = pwm
9SERIAL_DRIVER = usart
10AUDIO_ENABLE = no
11LTO_ENABLE = no
12CONVERT_TO_PROTON_C = yes
diff --git a/keyboards/splitkb/kyria/rev2/rev2.c b/keyboards/splitkb/kyria/rev2/rev2.c
new file mode 100644
index 000000000..0a181cdf1
--- /dev/null
+++ b/keyboards/splitkb/kyria/rev2/rev2.c
@@ -0,0 +1,76 @@
1/* Copyright 2022 Thomas Baart <thomas@splitkb.com>
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 "rev2.h"
17
18// Mask out handedness diode to prevent it
19// from keeping the keyboard awake
20// - just mirroring `KC_NO` in the `LAYOUT`
21// macro to keep it simple
22const matrix_row_t matrix_mask[] = {
23 0b11111100,
24 0b11111100,
25 0b11111111,
26 0b00101111,
27 0b11111100,
28 0b11111100,
29 0b11111111,
30 0b00101111,
31};
32
33#ifdef SWAP_HANDS_ENABLE
34// clang-format off
35__attribute__ ((weak)) const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
36 {{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4}, {6, 4}, {7, 4}},
37 {{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}, {5, 5}, {6, 5}, {7, 5}},
38 {{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}, {5, 6}, {6, 6}, {7, 6}},
39 {{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}, {5, 7}, {6, 7}, {7, 7}},
40 {{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}},
41 {{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}},
42 {{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}, {5, 2}, {6, 2}, {7, 2}},
43 {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}, {5, 3}, {6, 3}, {7, 3}}
44};
45// clang-format on
46#endif
47
48#ifdef RGB_MATRIX_ENABLE
49/* Map physical under glow LEDs for RGB matrix support
50 * 09, 02, xx, xx, 01, xx, xx, 11, xx, xx, 12, 19,
51 * xx, xx, xx, xx, xx, 00, 10, xx, xx, xx, xx, xx,
52 * 08, 03, 04, xx, xx, xx, 07, xx, xx, 17, xx, xx, xx, 14, 13, 18,
53 * xx, 05, 06, xx, xx, xx, xx, 16, 15, xx
54 */
55led_config_t g_led_config = { {
56 // Key Matrix to LED Index
57 { NO_LED, NO_LED, NO_LED, 1, NO_LED, NO_LED, 2, 9 },
58 { NO_LED, NO_LED, 0, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
59 { NO_LED, 7, NO_LED, NO_LED, NO_LED, 4, 3, 8 },
60 { NO_LED, NO_LED, 6, 5, NO_LED, NO_LED, NO_LED, NO_LED },
61 { NO_LED, NO_LED, NO_LED, 11, NO_LED, NO_LED, 12, 19 },
62 { NO_LED, NO_LED, 10, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
63 { NO_LED, 17, NO_LED, NO_LED, NO_LED, 14, 13, 18 },
64 { NO_LED, NO_LED, 16, 15, NO_LED, NO_LED, NO_LED, NO_LED },
65}, {
66 // LED Index to Physical Position
67 {77,24}, {63,8}, {21,8}, {21,40}, {35,40}, {63,56}, {77,56}, {91,40}, {7,40}, {7,8},
68 {147,24}, {161,8}, {203,8}, {203,40}, {189,40}, {161,56}, {147,56}, {133,40}, {217,40}, {217,8}
69}, {
70 // LED Index to Flag
71 LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
72 LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
73 LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
74 LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL
75} };
76#endif
diff --git a/keyboards/splitkb/kyria/rev2/rev2.h b/keyboards/splitkb/kyria/rev2/rev2.h
new file mode 100644
index 000000000..ed4169b0e
--- /dev/null
+++ b/keyboards/splitkb/kyria/rev2/rev2.h
@@ -0,0 +1,70 @@
1/* Copyright 2022 Thomas Baart <thomas@splitkb.com>
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#pragma once
17
18#include "kyria.h"
19#ifdef KEYBOARD_splitkb_kyria_rev2_proton_c
20# include "proton_c.h"
21#endif
22
23/* This a shortcut to help you visually see your layout.
24 *
25 * The first section contains all of the arguments representing the physical
26 * layout of the board and position of the keys.
27 *
28 * The second converts the arguments into a two-dimensional array which
29 * represents the switch matrix.
30 */
31#define LAYOUT( \
32 L00, L01, L02, L03, L04, L05, R06, R07, R08, R09, R10, R11, \
33 L12, L13, L14, L15, L16, L17, R18, R19, R20, R21, R22, R23, \
34 L24, L25, L26, L27, L28, L29, L30, L31, R32, R33, R34, R35, R36, R37, R38, R39, \
35 L40, L41, L42, L43, L44, R45, R46, R47, R48, R49 \
36) \
37{ \
38 { KC_NO, KC_NO, L05, L04, L03, L02, L01, L00 }, \
39 { KC_NO, KC_NO, L17, L16, L15, L14, L13, L12 }, \
40 { L31, L30, L29, L28, L27, L26, L25, L24 }, \
41 { L44, L43, L42, L41, KC_NO, L40, KC_NO, KC_NO }, \
42 { KC_NO, KC_NO, R06, R07, R08, R09, R10, R11 }, \
43 { KC_NO, KC_NO, R18, R19, R20, R21, R22, R23 }, \
44 { R32, R33, R34, R35, R36, R37, R38, R39 }, \
45 { R45, R46, R47, R48, KC_NO, R49, KC_NO, KC_NO }, \
46}
47
48#define LAYOUT_stack( \
49 L00, L01, L02, L03, L04, L05, \
50 L12, L13, L14, L15, L16, L17, \
51 L24, L25, L26, L27, L28, L29, L30, L31, \
52 L40, L41, L42, L43, L44, \
53 \
54 R06, R07, R08, R09, R10, R11, \
55 R18, R19, R20, R21, R22, R23, \
56 R32, R33, R34, R35, R36, R37, R38, R39, \
57 R45, R46, R47, R48, R49 \
58) \
59{ \
60 { KC_NO, KC_NO, L05, L04, L03, L02, L01, L00 }, \
61 { KC_NO, KC_NO, L17, L16, L15, L14, L13, L12 }, \
62 { L31, L30, L29, L28, L27, L26, L25, L24 }, \
63 { L44, L43, L42, L41, KC_NO, L40, KC_NO, KC_NO }, \
64 { KC_NO, KC_NO, R06, R07, R08, R09, R10, R11 }, \
65 { KC_NO, KC_NO, R18, R19, R20, R21, R22, R23 }, \
66 { R32, R33, R34, R35, R36, R37, R38, R39 }, \
67 { R45, R46, R47, R48, KC_NO, R49, KC_NO, KC_NO }, \
68}
69
70#define LAYOUT_split_3x6_5 LAYOUT
diff --git a/keyboards/splitkb/kyria/rev2/rules.mk b/keyboards/splitkb/kyria/rev2/rules.mk
new file mode 100644
index 000000000..355c12024
--- /dev/null
+++ b/keyboards/splitkb/kyria/rev2/rules.mk
@@ -0,0 +1,8 @@
1OLED_ENABLE = yes
2OLED_DRIVER = SSD1306 # Enables the use of OLED displays
3ENCODER_ENABLE = yes # Enables the use of one or more encoders
4RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
5RGB_MATRIX_ENABLE = no # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE)
6RGB_MATRIX_DRIVER = WS2812 # RGB matrix driver support
7
8RGB_MATRIX_SUPPORTED = yes
diff --git a/keyboards/splitkb/kyria/rules.mk b/keyboards/splitkb/kyria/rules.mk
index d778f6df8..7952bfe30 100644
--- a/keyboards/splitkb/kyria/rules.mk
+++ b/keyboards/splitkb/kyria/rules.mk
@@ -18,4 +18,4 @@ AUDIO_ENABLE = no # Audio output
18SPLIT_KEYBOARD = yes # Split common 18SPLIT_KEYBOARD = yes # Split common
19LTO_ENABLE = yes 19LTO_ENABLE = yes
20 20
21DEFAULT_FOLDER = splitkb/kyria/rev1 21DEFAULT_FOLDER = splitkb/kyria/rev2