[Keyboard] Enable Proton C defaults for SplitKB Kyria (#14490)
Co-authored-by: Ryan <fauxpark@gmail.com>
This commit is contained in:
		
							parent
							
								
									481104053e
								
							
						
					
					
						commit
						5b644af415
					
				
					 10 changed files with 162 additions and 12 deletions
				
			
		| 
						 | 
				
			
			@ -12,11 +12,11 @@ COMMAND_ENABLE = no        # Commands for debug and configuration
 | 
			
		|||
NKRO_ENABLE = yes          # USB Nkey Rollover
 | 
			
		||||
UNICODE_ENABLE = no       # Unicode
 | 
			
		||||
KEY_LOCK_ENABLE = no
 | 
			
		||||
CTPC = yes
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
BOOTLOADER = hid
 | 
			
		||||
BOOTLOADER_SIZE = 512
 | 
			
		||||
PROGRAM_CMD = 	$(HID_BOOTLOADER_CLI) -mmcu=$(MCU) -w -v $(BUILD_DIR)/$(TARGET).hex
 | 
			
		||||
# BOOTLOADER = hid
 | 
			
		||||
# BOOTLOADER_SIZE = 512
 | 
			
		||||
# PROGRAM_CMD = 	$(HID_BOOTLOADER_CLI) -mmcu=$(MCU) -w -v $(BUILD_DIR)/$(TARGET).hex
 | 
			
		||||
# TAP_DANCE_ENABLE = yes
 | 
			
		||||
 | 
			
		||||
WPM_ENABLE = yes
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,7 +10,8 @@ Hardware Availability: [splitkb.com](https://splitkb.com) and partners.
 | 
			
		|||
 | 
			
		||||
Make example for this keyboard (after setting up your build environment):
 | 
			
		||||
 | 
			
		||||
    make splitkb/kyria:default
 | 
			
		||||
    make splitkb/kyria/rev1:default
 | 
			
		||||
    make splitkb/kyria/rev1/proton_c:default
 | 
			
		||||
 | 
			
		||||
Example of flashing this keyboard:
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -19,3 +20,22 @@ Example of flashing this keyboard:
 | 
			
		|||
See 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).
 | 
			
		||||
 | 
			
		||||
A 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).
 | 
			
		||||
 | 
			
		||||
## Proton C Conversion Guide
 | 
			
		||||
 | 
			
		||||
If 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.
 | 
			
		||||
 | 
			
		||||
1. 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.
 | 
			
		||||
2. You'll need to do some modding to enable proper support with the Proton C.
 | 
			
		||||
 | 
			
		||||
By 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. 
 | 
			
		||||
 | 
			
		||||
To 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.
 | 
			
		||||
 | 
			
		||||
From 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. 
 | 
			
		||||
 | 
			
		||||
To 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).
 | 
			
		||||
 | 
			
		||||
Once you've done that, you can solder in the Proton C. and flash it.
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -57,18 +57,31 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
/*
 | 
			
		||||
 * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
 | 
			
		||||
 */
 | 
			
		||||
#define SOFT_SERIAL_PIN D2
 | 
			
		||||
 | 
			
		||||
#define RGB_DI_PIN      D3
 | 
			
		||||
#if defined(CONVERT_TO_PROTON_C)
 | 
			
		||||
#    define SERIAL_USART_FULL_DUPLEX      // Enable full duplex operation mode.
 | 
			
		||||
#    define SERIAL_USART_PIN_SWAP         // Swap TX and RX pins if keyboard is master halve.
 | 
			
		||||
#    define SERIAL_USART_DRIVER      SD1  // USART driver of TX pin. default: SD1
 | 
			
		||||
#    define SERIAL_USART_TX_PAL_MODE 7    // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
 | 
			
		||||
#    define SERIAL_USART_TX_PIN      D3
 | 
			
		||||
#    define SERIAL_USART_RX_PIN      D2
 | 
			
		||||
 | 
			
		||||
#    define RGB_DI_PIN               PAL_LINE(GPIOA, 3)
 | 
			
		||||
#    define WS2812_PWM_DRIVER        PWMD2                  // default: PWMD2
 | 
			
		||||
#    define WS2812_PWM_CHANNEL       4                      // default: 2
 | 
			
		||||
#    define WS2812_PWM_PAL_MODE      1                      // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2
 | 
			
		||||
#    define WS2812_DMA_STREAM        STM32_DMA1_STREAM2     // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
 | 
			
		||||
#    define WS2812_DMA_CHANNEL       2                      // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
 | 
			
		||||
#    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.
 | 
			
		||||
#else
 | 
			
		||||
#    define RGB_DI_PIN D3
 | 
			
		||||
#    define SOFT_SERIAL_PIN D2
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define RGBLED_SPLIT \
 | 
			
		||||
    { 10, 10 }
 | 
			
		||||
#define RGBLED_NUM 20
 | 
			
		||||
 | 
			
		||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 | 
			
		||||
#define LOCKING_SUPPORT_ENABLE
 | 
			
		||||
/* Locking resynchronize hack */
 | 
			
		||||
#define LOCKING_RESYNC_ENABLE
 | 
			
		||||
 | 
			
		||||
#ifdef OLED_ENABLE
 | 
			
		||||
#    define OLED_DISPLAY_128X64
 | 
			
		||||
#    define SPLIT_OLED_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										22
									
								
								keyboards/splitkb/kyria/rev1/proton_c/chconf.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								keyboards/splitkb/kyria/rev1/proton_c/chconf.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,22 @@
 | 
			
		|||
/* Copyright 2020 QMK
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software: you can redistribute it and/or modify
 | 
			
		||||
 * it under the terms of the GNU General Public License as published by
 | 
			
		||||
 * the Free Software Foundation, either version 2 of the License, or
 | 
			
		||||
 * (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This program is distributed in the hope that it will be useful,
 | 
			
		||||
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 * GNU General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU General Public License
 | 
			
		||||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#define CH_CFG_ST_RESOLUTION 16
 | 
			
		||||
#define CH_CFG_ST_FREQUENCY  10000
 | 
			
		||||
 | 
			
		||||
#include_next "chconf.h"
 | 
			
		||||
							
								
								
									
										22
									
								
								keyboards/splitkb/kyria/rev1/proton_c/halconf.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								keyboards/splitkb/kyria/rev1/proton_c/halconf.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,22 @@
 | 
			
		|||
/* Copyright 2020 QMK
 | 
			
		||||
 *
 | 
			
		||||
 *  This program is free software: you can redistribute it and/or modify
 | 
			
		||||
 *  it under the terms of the GNU General Public License as published by
 | 
			
		||||
 *  the Free Software Foundation, either version 3 of the License, or
 | 
			
		||||
 *  (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 *  This program is distributed in the hope that it will be useful,
 | 
			
		||||
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 *  GNU General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 *  You should have received a copy of the GNU General Public License
 | 
			
		||||
 *  along with this program.  If not, see <https://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#define HAL_USE_I2C    TRUE
 | 
			
		||||
#define HAL_USE_PWM    TRUE
 | 
			
		||||
#define HAL_USE_SERIAL TRUE
 | 
			
		||||
 | 
			
		||||
#include_next <halconf.h>
 | 
			
		||||
							
								
								
									
										29
									
								
								keyboards/splitkb/kyria/rev1/proton_c/mcuconf.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								keyboards/splitkb/kyria/rev1/proton_c/mcuconf.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,29 @@
 | 
			
		|||
/* Copyright 2020 QMK
 | 
			
		||||
 *
 | 
			
		||||
 *  This program is free software: you can redistribute it and/or modify
 | 
			
		||||
 *  it under the terms of the GNU General Public License as published by
 | 
			
		||||
 *  the Free Software Foundation, either version 3 of the License, or
 | 
			
		||||
 *  (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 *  This program is distributed in the hope that it will be useful,
 | 
			
		||||
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 *  GNU General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 *  You should have received a copy of the GNU General Public License
 | 
			
		||||
 *  along with this program.  If not, see <https://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include_next <mcuconf.h>
 | 
			
		||||
 | 
			
		||||
#undef STM32_PWM_USE_TIM2
 | 
			
		||||
#define STM32_PWM_USE_TIM2 TRUE
 | 
			
		||||
#undef STM32_PWM_USE_TIM3
 | 
			
		||||
#define STM32_PWM_USE_TIM3 FALSE
 | 
			
		||||
 | 
			
		||||
#undef STM32_SERIAL_USE_USART1
 | 
			
		||||
#define STM32_SERIAL_USE_USART1 TRUE
 | 
			
		||||
 | 
			
		||||
#undef STM32_ST_USE_TIMER
 | 
			
		||||
#define STM32_ST_USE_TIMER 3
 | 
			
		||||
							
								
								
									
										17
									
								
								keyboards/splitkb/kyria/rev1/proton_c/proton_c.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								keyboards/splitkb/kyria/rev1/proton_c/proton_c.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,17 @@
 | 
			
		|||
/* Copyright 2019 Thomas Baart <thomas@splitkb.com>
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software: you can redistribute it and/or modify
 | 
			
		||||
 * it under the terms of the GNU General Public License as published by
 | 
			
		||||
 * the Free Software Foundation, either version 2 of the License, or
 | 
			
		||||
 * (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This program is distributed in the hope that it will be useful,
 | 
			
		||||
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 * GNU General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU General Public License
 | 
			
		||||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "proton_c.h"
 | 
			
		||||
							
								
								
									
										19
									
								
								keyboards/splitkb/kyria/rev1/proton_c/proton_c.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								keyboards/splitkb/kyria/rev1/proton_c/proton_c.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
/* Copyright 2019 Thomas Baart <thomas@splitkb.com>
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software: you can redistribute it and/or modify
 | 
			
		||||
 * it under the terms of the GNU General Public License as published by
 | 
			
		||||
 * the Free Software Foundation, either version 2 of the License, or
 | 
			
		||||
 * (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This program is distributed in the hope that it will be useful,
 | 
			
		||||
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 * GNU General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU General Public License
 | 
			
		||||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "rev1.h"
 | 
			
		||||
							
								
								
									
										5
									
								
								keyboards/splitkb/kyria/rev1/proton_c/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								keyboards/splitkb/kyria/rev1/proton_c/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
WS2812_DRIVER = pwm
 | 
			
		||||
SERIAL_DRIVER = usart
 | 
			
		||||
AUDIO_ENABLE = no
 | 
			
		||||
LTO_ENABLE = no
 | 
			
		||||
CONVERT_TO_PROTON_C = yes
 | 
			
		||||
| 
						 | 
				
			
			@ -16,6 +16,9 @@
 | 
			
		|||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "kyria.h"
 | 
			
		||||
#ifdef KEYBOARD_splitkb_kyria_rev1_proton_c
 | 
			
		||||
#    include "proton_c.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* This a shortcut to help you visually see your layout.
 | 
			
		||||
 *
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue