mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-11-04 07:12:33 +01:00 
			
		
		
		
	[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
					
				@ -12,11 +12,11 @@ COMMAND_ENABLE = no        # Commands for debug and configuration
 | 
				
			|||||||
NKRO_ENABLE = yes          # USB Nkey Rollover
 | 
					NKRO_ENABLE = yes          # USB Nkey Rollover
 | 
				
			||||||
UNICODE_ENABLE = no       # Unicode
 | 
					UNICODE_ENABLE = no       # Unicode
 | 
				
			||||||
KEY_LOCK_ENABLE = no
 | 
					KEY_LOCK_ENABLE = no
 | 
				
			||||||
 | 
					CTPC = yes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# BOOTLOADER = hid
 | 
				
			||||||
BOOTLOADER = hid
 | 
					# BOOTLOADER_SIZE = 512
 | 
				
			||||||
BOOTLOADER_SIZE = 512
 | 
					# PROGRAM_CMD = 	$(HID_BOOTLOADER_CLI) -mmcu=$(MCU) -w -v $(BUILD_DIR)/$(TARGET).hex
 | 
				
			||||||
PROGRAM_CMD = 	$(HID_BOOTLOADER_CLI) -mmcu=$(MCU) -w -v $(BUILD_DIR)/$(TARGET).hex
 | 
					 | 
				
			||||||
# TAP_DANCE_ENABLE = yes
 | 
					# TAP_DANCE_ENABLE = yes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
WPM_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 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:
 | 
					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).
 | 
					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).
 | 
					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.
 | 
					 * 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 \
 | 
					#define RGBLED_SPLIT \
 | 
				
			||||||
    { 10, 10 }
 | 
					    { 10, 10 }
 | 
				
			||||||
#define RGBLED_NUM 20
 | 
					#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
 | 
					#ifdef OLED_ENABLE
 | 
				
			||||||
#    define OLED_DISPLAY_128X64
 | 
					#    define OLED_DISPLAY_128X64
 | 
				
			||||||
#    define SPLIT_OLED_ENABLE
 | 
					#    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
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "kyria.h"
 | 
					#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.
 | 
					/* This a shortcut to help you visually see your layout.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user