Add Elite-C to converters (#18309)
This commit is contained in:
		
							parent
							
								
									a3a47a6556
								
							
						
					
					
						commit
						1155140631
					
				
					 7 changed files with 168 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -38,7 +38,7 @@
 | 
			
		|||
        },
 | 
			
		||||
        "pin_compatible": {
 | 
			
		||||
            "type": "string",
 | 
			
		||||
            "enum": ["promicro"]
 | 
			
		||||
            "enum": ["promicro", "elite_c"]
 | 
			
		||||
        },
 | 
			
		||||
        "processor": {
 | 
			
		||||
            "type": "string",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,6 +18,8 @@ Currently the following converters are available:
 | 
			
		|||
| `promicro` | `stemcell`        |
 | 
			
		||||
| `promicro` | `bonsai_c4`       |
 | 
			
		||||
| `promicro` | `elite_pi`        |
 | 
			
		||||
| `elite_c`  | `stemcell`        |
 | 
			
		||||
| `elite_c`  | `elite_pi`        |
 | 
			
		||||
 | 
			
		||||
See below for more in depth information on each converter.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -48,6 +50,23 @@ Once a converter is enabled, it exposes the `CONVERT_TO_<target_uppercase>` flag
 | 
			
		|||
#endif
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Pin Compatibility
 | 
			
		||||
 | 
			
		||||
To ensure compatibility, provide validation, and power future workflows, a keyboard should declare its `pin compatibility`. For legacy reasons, this is currently assumed to be `promicro`.
 | 
			
		||||
 | 
			
		||||
Currently the following pin compatibility interfaces are defined:
 | 
			
		||||
 | 
			
		||||
| Pinout     | Notes                             |
 | 
			
		||||
|------------|-----------------------------------|
 | 
			
		||||
| `promicro` | Includes RX/TX LEDs               |
 | 
			
		||||
| `elite_c`  | Includes bottom row pins, no LEDs |
 | 
			
		||||
 | 
			
		||||
To declare the base for conversions, add this line to your keyboard's `rules.mk`:
 | 
			
		||||
 | 
			
		||||
```makefile
 | 
			
		||||
PIN_COMPATIBLE = elite_c
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Pro Micro
 | 
			
		||||
 | 
			
		||||
If a board currently supported in QMK uses a [Pro Micro](https://www.sparkfun.com/products/12640) (or compatible board), the supported alternative controllers are:
 | 
			
		||||
| 
						 | 
				
			
			@ -138,4 +157,28 @@ The Bonsai C4 only has one on-board LED (B2), and by default, both the Pro Micro
 | 
			
		|||
#define B0 PAL_LINE(GPIOA, 9)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
No peripherals are enabled by default at this time, but example code to enable SPI, I2C, PWM, and Serial communications can be found [here](/keyboards/custommk/bonsai_c4_template)
 | 
			
		||||
No peripherals are enabled by default at this time, but example code to enable SPI, I2C, PWM, and Serial communications can be found [here](/keyboards/custommk/bonsai_c4_template).
 | 
			
		||||
 | 
			
		||||
## Elite-C
 | 
			
		||||
 | 
			
		||||
If a board currently supported in QMK uses an [Elite-C](https://keeb.io/products/elite-c-low-profile-version-usb-c-pro-micro-replacement-atmega32u4), the supported alternative controllers are:
 | 
			
		||||
 | 
			
		||||
| Device                                                                           | Target            |
 | 
			
		||||
|----------------------------------------------------------------------------------|-------------------|
 | 
			
		||||
| [STeMCell](https://github.com/megamind4089/STeMCell)                             | `stemcell`        |
 | 
			
		||||
| [Elite-Pi](https://keeb.io/products/elite-pi-usb-c-pro-micro-replacement-rp2040) | `elite_pi`        |
 | 
			
		||||
 | 
			
		||||
Converter summary:
 | 
			
		||||
 | 
			
		||||
| Target            | Argument                        | `rules.mk`                   | Condition                           |
 | 
			
		||||
|-------------------|---------------------------------|------------------------------|-------------------------------------|
 | 
			
		||||
| `stemcell`        | `-e CONVERT_TO=stemcell`        | `CONVERT_TO=stemcell`        | `#ifdef CONVERT_TO_STEMCELL`        |
 | 
			
		||||
| `elite_pi`        | `-e CONVERT_TO=elite_pi`        | `CONVERT_TO=elite_pi`        | `#ifdef CONVERT_TO_ELITE_PI`        |
 | 
			
		||||
 | 
			
		||||
### STeMCell :id=stemcell_elite
 | 
			
		||||
 | 
			
		||||
Currently identical to [STeMCell](#stemcell) with support for the additional bottom row of pins.
 | 
			
		||||
 | 
			
		||||
### Elite-Pi :id=elite_pi
 | 
			
		||||
 | 
			
		||||
Currently identical to [Adafruit KB2040](#kb2040), with support for the additional bottom row of pins.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,6 +4,8 @@ MCU = atmega32u4
 | 
			
		|||
# Bootloader selection
 | 
			
		||||
BOOTLOADER = atmel-dfu
 | 
			
		||||
 | 
			
		||||
PIN_COMPATIBLE = elite_c
 | 
			
		||||
 | 
			
		||||
# Build Options
 | 
			
		||||
#   change yes to no to disable
 | 
			
		||||
#
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										39
									
								
								platforms/chibios/converters/elite_c_to_elite_pi/_pin_defs.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								platforms/chibios/converters/elite_c_to_elite_pi/_pin_defs.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,39 @@
 | 
			
		|||
// Copyright 2022 QMK
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
// Left side (front)
 | 
			
		||||
#define D3 0U
 | 
			
		||||
#define D2 1U
 | 
			
		||||
//      GND
 | 
			
		||||
//      GND
 | 
			
		||||
#define D1 2U
 | 
			
		||||
#define D0 3U
 | 
			
		||||
#define D4 4U
 | 
			
		||||
#define C6 5U
 | 
			
		||||
#define D7 6U
 | 
			
		||||
#define E6 7U
 | 
			
		||||
#define B4 8U
 | 
			
		||||
#define B5 9U
 | 
			
		||||
 | 
			
		||||
// Right side (front)
 | 
			
		||||
//      RAW
 | 
			
		||||
//      GND
 | 
			
		||||
//      RESET
 | 
			
		||||
//      VCC
 | 
			
		||||
#define F4 29U
 | 
			
		||||
#define F5 28U
 | 
			
		||||
#define F6 27U
 | 
			
		||||
#define F7 26U
 | 
			
		||||
#define B1 22U
 | 
			
		||||
#define B3 20U
 | 
			
		||||
#define B2 23U
 | 
			
		||||
#define B6 21U
 | 
			
		||||
 | 
			
		||||
// Bottom row
 | 
			
		||||
#define B7 12U
 | 
			
		||||
#define D5 13U
 | 
			
		||||
#define C7 14U
 | 
			
		||||
#define F1 15U
 | 
			
		||||
#define F0 16U
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,9 @@
 | 
			
		|||
# Elite-Pi MCU settings for converting AVR projects
 | 
			
		||||
MCU := RP2040
 | 
			
		||||
BOARD := QMK_PM2040
 | 
			
		||||
BOOTLOADER := rp2040
 | 
			
		||||
 | 
			
		||||
# These are defaults based on what has been implemented for RP2040 boards
 | 
			
		||||
SERIAL_DRIVER ?= vendor
 | 
			
		||||
WS2812_DRIVER ?= vendor
 | 
			
		||||
BACKLIGHT_DRIVER ?= software
 | 
			
		||||
							
								
								
									
										54
									
								
								platforms/chibios/converters/elite_c_to_stemcell/_pin_defs.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								platforms/chibios/converters/elite_c_to_stemcell/_pin_defs.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,54 @@
 | 
			
		|||
// Copyright 2022 Mega Mind (@megamind4089)
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
// Pindefs for v2.0.0
 | 
			
		||||
// https://megamind4089.github.io/STeMCell/pinout/
 | 
			
		||||
 | 
			
		||||
// Left side (front)
 | 
			
		||||
#ifdef STEMCELL_UART_SWAP
 | 
			
		||||
#    define D3 PAL_LINE(GPIOA, 3)
 | 
			
		||||
#    define D2 PAL_LINE(GPIOA, 2)
 | 
			
		||||
#else
 | 
			
		||||
#    define D3 PAL_LINE(GPIOA, 2)
 | 
			
		||||
#    define D2 PAL_LINE(GPIOA, 3)
 | 
			
		||||
#endif
 | 
			
		||||
//      GND
 | 
			
		||||
//      GND
 | 
			
		||||
#ifdef STEMCELL_I2C_SWAP
 | 
			
		||||
#    define D1 PAL_LINE(GPIOB, 6)
 | 
			
		||||
#    define D0 PAL_LINE(GPIOB, 7)
 | 
			
		||||
#else
 | 
			
		||||
#    define D1 PAL_LINE(GPIOB, 7)
 | 
			
		||||
#    define D0 PAL_LINE(GPIOB, 6)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define D4 PAL_LINE(GPIOA, 15)
 | 
			
		||||
#define C6 PAL_LINE(GPIOB, 3)
 | 
			
		||||
#define D7 PAL_LINE(GPIOB, 4)
 | 
			
		||||
#define E6 PAL_LINE(GPIOB, 5)
 | 
			
		||||
#define B4 PAL_LINE(GPIOB, 8)
 | 
			
		||||
#define B5 PAL_LINE(GPIOB, 9)
 | 
			
		||||
 | 
			
		||||
// Right side (front)
 | 
			
		||||
//      RAW
 | 
			
		||||
//      GND
 | 
			
		||||
//      RESET
 | 
			
		||||
//      VCC
 | 
			
		||||
#define F4 PAL_LINE(GPIOB, 10)
 | 
			
		||||
#define F5 PAL_LINE(GPIOB, 2)
 | 
			
		||||
#define F6 PAL_LINE(GPIOB, 1)
 | 
			
		||||
#define F7 PAL_LINE(GPIOB, 0)
 | 
			
		||||
 | 
			
		||||
#define B1 PAL_LINE(GPIOA, 5)
 | 
			
		||||
#define B3 PAL_LINE(GPIOA, 6)
 | 
			
		||||
#define B2 PAL_LINE(GPIOA, 7)
 | 
			
		||||
#define B6 PAL_LINE(GPIOA, 4)
 | 
			
		||||
 | 
			
		||||
// Bottom row
 | 
			
		||||
#define B7 PAL_LINE(GPIOC, 13)
 | 
			
		||||
#define D5 PAL_LINE(GPIOC, 14)
 | 
			
		||||
#define C7 PAL_LINE(GPIOC, 15)
 | 
			
		||||
#define F1 PAL_LINE(GPIOA, 0)
 | 
			
		||||
#define F0 PAL_LINE(GPIOA, 1)
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,18 @@
 | 
			
		|||
# Copyright 2022 Mega Mind (@megamind4089)
 | 
			
		||||
# SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
MCU := STM32F411
 | 
			
		||||
BOARD := STEMCELL
 | 
			
		||||
BOOTLOADER := tinyuf2
 | 
			
		||||
 | 
			
		||||
SERIAL_DRIVER ?= usart
 | 
			
		||||
WS2812_DRIVER ?= bitbang
 | 
			
		||||
 | 
			
		||||
ifeq ($(strip $(STMC_US)), yes)
 | 
			
		||||
  OPT_DEFS += -DSTEMCELL_UART_SWAP
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(strip $(STMC_IS)), yes)
 | 
			
		||||
  OPT_DEFS += -DSTEMCELL_I2C_SWAP
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue