aboutsummaryrefslogtreecommitdiff
path: root/keyboards/splitkb
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/splitkb')
-rw-r--r--keyboards/splitkb/kyria/keymaps/drashna/rules.mk8
-rw-r--r--keyboards/splitkb/kyria/readme.md22
-rw-r--r--keyboards/splitkb/kyria/rev1/config.h27
-rw-r--r--keyboards/splitkb/kyria/rev1/proton_c/chconf.h22
-rw-r--r--keyboards/splitkb/kyria/rev1/proton_c/halconf.h22
-rw-r--r--keyboards/splitkb/kyria/rev1/proton_c/mcuconf.h29
-rw-r--r--keyboards/splitkb/kyria/rev1/proton_c/proton_c.c17
-rw-r--r--keyboards/splitkb/kyria/rev1/proton_c/proton_c.h19
-rw-r--r--keyboards/splitkb/kyria/rev1/proton_c/rules.mk5
-rw-r--r--keyboards/splitkb/kyria/rev1/rev1.h3
10 files changed, 162 insertions, 12 deletions
diff --git a/keyboards/splitkb/kyria/keymaps/drashna/rules.mk b/keyboards/splitkb/kyria/keymaps/drashna/rules.mk
index b51cc1b62..f2ae5a191 100644
--- a/keyboards/splitkb/kyria/keymaps/drashna/rules.mk
+++ b/keyboards/splitkb/kyria/keymaps/drashna/rules.mk
@@ -12,11 +12,11 @@ COMMAND_ENABLE = no # Commands for debug and configuration
12NKRO_ENABLE = yes # USB Nkey Rollover 12NKRO_ENABLE = yes # USB Nkey Rollover
13UNICODE_ENABLE = no # Unicode 13UNICODE_ENABLE = no # Unicode
14KEY_LOCK_ENABLE = no 14KEY_LOCK_ENABLE = no
15CTPC = yes
15 16
16 17# BOOTLOADER = hid
17BOOTLOADER = hid 18# BOOTLOADER_SIZE = 512
18BOOTLOADER_SIZE = 512 19# PROGRAM_CMD = $(HID_BOOTLOADER_CLI) -mmcu=$(MCU) -w -v $(BUILD_DIR)/$(TARGET).hex
19PROGRAM_CMD = $(HID_BOOTLOADER_CLI) -mmcu=$(MCU) -w -v $(BUILD_DIR)/$(TARGET).hex
20# TAP_DANCE_ENABLE = yes 20# TAP_DANCE_ENABLE = yes
21 21
22WPM_ENABLE = yes 22WPM_ENABLE = yes
diff --git a/keyboards/splitkb/kyria/readme.md b/keyboards/splitkb/kyria/readme.md
index 5ce652589..7ecf3946f 100644
--- a/keyboards/splitkb/kyria/readme.md
+++ b/keyboards/splitkb/kyria/readme.md
@@ -10,7 +10,8 @@ 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:default 13 make splitkb/kyria/rev1:default
14 make splitkb/kyria/rev1/proton_c:default
14 15
15Example of flashing this keyboard: 16Example of flashing this keyboard:
16 17
@@ -19,3 +20,22 @@ Example of flashing this keyboard:
19See 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). 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).
20 21
21A build guide for the Kyria can be found at [docs.splitkb.com](https://docs.splitkb.com/hc/en-us/articles/360010552059-Kyria-Build-Guide-Introduction). 22A build guide for the Kyria can be found at [docs.splitkb.com](https://docs.splitkb.com/hc/en-us/articles/360010552059-Kyria-Build-Guide-Introduction).
23
24## Proton C Conversion Guide
25
26If you're one of the lucky people to have Proton Cs to use with their Kyria, there are a couple of caveats to getting this working.
27
281. You need to have 2x Proton Cs, as you cannot mix and match with Pro Micros or Elite C's. They both need to be Proton Cs.
292. You'll need to do some modding to enable proper support with the Proton C.
30
31By design, the Kyria uses every available pin on the Pro Micro footprint. This includes using D3 (RX) for RGB. This poses a challenge with using the Proton C, since it needs both the TX and RX pins. The Proton C needs both pins, especially if you plan on using Full Duplex Serial.
32
33To fix this, you need to break off the last header position on the right-hand side on the footprint. This is the `TX0/D3` pad. Leave this pad without a header connected to.
34
35From the A9 pin on the Proton C, you want to run a wire from it to the `SDA + Extra Data` pad near the TRRS jack on the PCB. This will allow for proper, full duplex communication over the TRRS cable.
36
37To get RGB working properly, as well, you want to run a wire from the `A3` pin on the Proton C, next to the GND and DFU pin, right under the USB port. Run this to the `TX0/D3` pad (the one you left without a header pin on the PCB).
38
39Once you've done that, you can solder in the Proton C. and flash it.
40
41![Proton C](https://i.imgur.com/nICqWLo.jpg)
diff --git a/keyboards/splitkb/kyria/rev1/config.h b/keyboards/splitkb/kyria/rev1/config.h
index a330dfc10..e19e8dfa9 100644
--- a/keyboards/splitkb/kyria/rev1/config.h
+++ b/keyboards/splitkb/kyria/rev1/config.h
@@ -57,18 +57,31 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
57/* 57/*
58 * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. 58 * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
59 */ 59 */
60#define SOFT_SERIAL_PIN D2
61 60
62#define RGB_DI_PIN D3 61#if defined(CONVERT_TO_PROTON_C)
62# define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode.
63# define SERIAL_USART_PIN_SWAP // Swap TX and RX pins if keyboard is master halve.
64# define SERIAL_USART_DRIVER SD1 // USART driver of TX pin. default: SD1
65# define SERIAL_USART_TX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
66# define SERIAL_USART_TX_PIN D3
67# define SERIAL_USART_RX_PIN D2
68
69# define RGB_DI_PIN PAL_LINE(GPIOA, 3)
70# define WS2812_PWM_DRIVER PWMD2 // default: PWMD2
71# define WS2812_PWM_CHANNEL 4 // default: 2
72# define WS2812_PWM_PAL_MODE 1 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2
73# define WS2812_DMA_STREAM STM32_DMA1_STREAM2 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
74# define WS2812_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
75# 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.
76#else
77# define RGB_DI_PIN D3
78# define SOFT_SERIAL_PIN D2
79#endif
80
63#define RGBLED_SPLIT \ 81#define RGBLED_SPLIT \
64 { 10, 10 } 82 { 10, 10 }
65#define RGBLED_NUM 20 83#define RGBLED_NUM 20
66 84
67/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
68#define LOCKING_SUPPORT_ENABLE
69/* Locking resynchronize hack */
70#define LOCKING_RESYNC_ENABLE
71
72#ifdef OLED_ENABLE 85#ifdef OLED_ENABLE
73# define OLED_DISPLAY_128X64 86# define OLED_DISPLAY_128X64
74# define SPLIT_OLED_ENABLE 87# define SPLIT_OLED_ENABLE
diff --git a/keyboards/splitkb/kyria/rev1/proton_c/chconf.h b/keyboards/splitkb/kyria/rev1/proton_c/chconf.h
new file mode 100644
index 000000000..7ca1d3d24
--- /dev/null
+++ b/keyboards/splitkb/kyria/rev1/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/rev1/proton_c/halconf.h b/keyboards/splitkb/kyria/rev1/proton_c/halconf.h
new file mode 100644
index 000000000..99f2e11b9
--- /dev/null
+++ b/keyboards/splitkb/kyria/rev1/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/rev1/proton_c/mcuconf.h b/keyboards/splitkb/kyria/rev1/proton_c/mcuconf.h
new file mode 100644
index 000000000..58348af39
--- /dev/null
+++ b/keyboards/splitkb/kyria/rev1/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/rev1/proton_c/proton_c.c b/keyboards/splitkb/kyria/rev1/proton_c/proton_c.c
new file mode 100644
index 000000000..628fabb2e
--- /dev/null
+++ b/keyboards/splitkb/kyria/rev1/proton_c/proton_c.c
@@ -0,0 +1,17 @@
1/* Copyright 2019 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/rev1/proton_c/proton_c.h b/keyboards/splitkb/kyria/rev1/proton_c/proton_c.h
new file mode 100644
index 000000000..718f5636f
--- /dev/null
+++ b/keyboards/splitkb/kyria/rev1/proton_c/proton_c.h
@@ -0,0 +1,19 @@
1/* Copyright 2019 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 "rev1.h"
diff --git a/keyboards/splitkb/kyria/rev1/proton_c/rules.mk b/keyboards/splitkb/kyria/rev1/proton_c/rules.mk
new file mode 100644
index 000000000..9e0942398
--- /dev/null
+++ b/keyboards/splitkb/kyria/rev1/proton_c/rules.mk
@@ -0,0 +1,5 @@
1WS2812_DRIVER = pwm
2SERIAL_DRIVER = usart
3AUDIO_ENABLE = no
4LTO_ENABLE = no
5CONVERT_TO_PROTON_C = yes
diff --git a/keyboards/splitkb/kyria/rev1/rev1.h b/keyboards/splitkb/kyria/rev1/rev1.h
index bf9864fe3..8a5fbeb21 100644
--- a/keyboards/splitkb/kyria/rev1/rev1.h
+++ b/keyboards/splitkb/kyria/rev1/rev1.h
@@ -16,6 +16,9 @@
16#pragma once 16#pragma once
17 17
18#include "kyria.h" 18#include "kyria.h"
19#ifdef KEYBOARD_splitkb_kyria_rev1_proton_c
20# include "proton_c.h"
21#endif
19 22
20/* This a shortcut to help you visually see your layout. 23/* This a shortcut to help you visually see your layout.
21 * 24 *