[Keyboard] Convert most of sinc to data driven info.json (#18481)
This commit is contained in:
		
							parent
							
								
									1dd15a8f22
								
							
						
					
					
						commit
						26c3e877c7
					
				
					 10 changed files with 124 additions and 85 deletions
				
			
		| 
						 | 
					@ -5,6 +5,24 @@
 | 
				
			||||||
    "usb": {
 | 
					    "usb": {
 | 
				
			||||||
        "vid": "0xCB10"
 | 
					        "vid": "0xCB10"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "processor": "atmega32u4",
 | 
				
			||||||
 | 
					    "protocol": "atmel-dfu",
 | 
				
			||||||
 | 
					    "features": {
 | 
				
			||||||
 | 
					        "audio": false,
 | 
				
			||||||
 | 
					        "bootmagic": true,
 | 
				
			||||||
 | 
					        "command": false,
 | 
				
			||||||
 | 
					        "console": false,
 | 
				
			||||||
 | 
					        "extrakey": true,
 | 
				
			||||||
 | 
					        "mousekey": false,
 | 
				
			||||||
 | 
					        "nkro": false,
 | 
				
			||||||
 | 
					        "unicode": false,
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "split": {
 | 
				
			||||||
 | 
					        "enabled": true,
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "build": {
 | 
				
			||||||
 | 
					        "lto": true,
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "layouts": {
 | 
					    "layouts": {
 | 
				
			||||||
        "LAYOUT_75": {
 | 
					        "LAYOUT_75": {
 | 
				
			||||||
            "layout": [
 | 
					            "layout": [
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,31 +18,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma once
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* key matrix size */
 | 
					 | 
				
			||||||
// Rows are doubled-up
 | 
					 | 
				
			||||||
#define MATRIX_ROWS 12
 | 
					 | 
				
			||||||
#define MATRIX_COLS 9
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define DIODE_DIRECTION COL2ROW
 | 
					 | 
				
			||||||
// wiring of each half
 | 
					// wiring of each half
 | 
				
			||||||
#define MATRIX_ROW_PINS { B1, B2, C7, B4, D7, B0 }
 | 
					 | 
				
			||||||
#define MATRIX_COL_PINS { F4, F1, F0, B7, B3, D2, D3, D5, D4 }
 | 
					 | 
				
			||||||
#define MATRIX_ROW_PINS_RIGHT { B3, B2, B6, B4, D7, B0 }
 | 
					 | 
				
			||||||
#define MATRIX_COL_PINS_RIGHT { F1, F0, F4, F5, F6, D5, C7, D3, B7 }
 | 
					 | 
				
			||||||
#define SPLIT_HAND_PIN F7
 | 
					#define SPLIT_HAND_PIN F7
 | 
				
			||||||
#define ENCODERS_PAD_A { F5 }
 | 
					 | 
				
			||||||
#define ENCODERS_PAD_B { F6 }
 | 
					 | 
				
			||||||
#define ENCODERS_PAD_A_RIGHT { D6 }
 | 
					 | 
				
			||||||
#define ENCODERS_PAD_B_RIGHT { D4 }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Set 0 if debouncing isn't needed */
 | 
					 | 
				
			||||||
#define DEBOUNCE 5
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define BACKLIGHT_PIN B5
 | 
					 | 
				
			||||||
#define CAPS_LOCK_LED_PIN B6
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* serial.c configuration for split keyboard */
 | 
					 | 
				
			||||||
#define SOFT_SERIAL_PIN D0
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 | 
					/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 | 
				
			||||||
#define LOCKING_SUPPORT_ENABLE
 | 
					#define LOCKING_SUPPORT_ENABLE
 | 
				
			||||||
| 
						 | 
					@ -50,10 +27,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
#define LOCKING_RESYNC_ENABLE
 | 
					#define LOCKING_RESYNC_ENABLE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* ws2812 RGB LED */
 | 
					/* ws2812 RGB LED */
 | 
				
			||||||
#define RGB_DI_PIN E6
 | 
					 | 
				
			||||||
#define RGBLIGHT_ANIMATIONS
 | 
					 | 
				
			||||||
#define RGBLED_NUM 16    // Number of LEDs
 | 
					 | 
				
			||||||
#define RGBLED_SPLIT { 8, 8 }
 | 
					 | 
				
			||||||
#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 }
 | 
					#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 }
 | 
				
			||||||
#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
 | 
					#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,5 +3,55 @@
 | 
				
			||||||
    "usb": {
 | 
					    "usb": {
 | 
				
			||||||
        "pid": "0x1267",
 | 
					        "pid": "0x1267",
 | 
				
			||||||
        "device_version": "1.0.0"
 | 
					        "device_version": "1.0.0"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "debounce": 5,
 | 
				
			||||||
 | 
					    "diode_direction": "COL2ROW",
 | 
				
			||||||
 | 
					    "features": {
 | 
				
			||||||
 | 
					        "rgblight": true,
 | 
				
			||||||
 | 
					        "backlight": true,
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "indicators": {
 | 
				
			||||||
 | 
					        "caps_lock": "B6"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "split": {
 | 
				
			||||||
 | 
					        "enabled": true,
 | 
				
			||||||
 | 
					        "soft_serial_pin": "D0",
 | 
				
			||||||
 | 
					        "transport": {
 | 
				
			||||||
 | 
					            "protocol": "serial"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "encoder": {
 | 
				
			||||||
 | 
					            "right": {
 | 
				
			||||||
 | 
					                "rotary": [
 | 
				
			||||||
 | 
					                    {"pin_a": "D6", "pin_b": "D4" },
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "matrix_pins": {
 | 
				
			||||||
 | 
					            "right":{
 | 
				
			||||||
 | 
					                "cols": ["F1", "F0", "F4", "F5", "F6", "D5", "C7", "D3", "B7"],
 | 
				
			||||||
 | 
					                "rows": ["B3", "B2", "B6", "B4", "D7", "B0"],
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "matrix_pins": {
 | 
				
			||||||
 | 
					        "cols": ["F4", "F1", "F0", "B7", "B3", "D2", "D3", "D5", "D4"],
 | 
				
			||||||
 | 
					        "rows": ["B1", "B2", "C7", "B4", "D7", "B0"],
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "encoder": {
 | 
				
			||||||
 | 
					        "enabled": true,
 | 
				
			||||||
 | 
					        "rotary": [
 | 
				
			||||||
 | 
					            {"pin_a": "F5", "pin_b": "F6" },
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "backlight":{
 | 
				
			||||||
 | 
					        "pin": "B5",
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "rgblight": {
 | 
				
			||||||
 | 
					        "pin": "E6",
 | 
				
			||||||
 | 
					        "led_count" : 16,
 | 
				
			||||||
 | 
					        "split_count": [8, 8],
 | 
				
			||||||
 | 
					        "animations": {
 | 
				
			||||||
 | 
					            "all": true,
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,14 +2,14 @@
 | 
				
			||||||
#include "split_util.h"
 | 
					#include "split_util.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void matrix_init_kb(void) {
 | 
					void matrix_init_kb(void) {
 | 
				
			||||||
    setPinOutput(CAPS_LOCK_LED_PIN);
 | 
					    setPinOutput(LED_CAPS_LOCK_PIN);
 | 
				
			||||||
    matrix_init_user();
 | 
					    matrix_init_user();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool led_update_kb(led_t led_state) {
 | 
					bool led_update_kb(led_t led_state) {
 | 
				
			||||||
    // Only update if left half
 | 
					    // Only update if left half
 | 
				
			||||||
    if (isLeftHand && led_update_user(led_state)) {
 | 
					    if (isLeftHand && led_update_user(led_state)) {
 | 
				
			||||||
        writePin(CAPS_LOCK_LED_PIN, !led_state.caps_lock);
 | 
					        writePin(LED_CAPS_LOCK_PIN, !led_state.caps_lock);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return true;
 | 
					    return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,3 +1 @@
 | 
				
			||||||
BACKLIGHT_ENABLE = yes
 | 
					# This file intentionally left blank
 | 
				
			||||||
RGBLIGHT_ENABLE = yes
 | 
					 | 
				
			||||||
ENCODER_ENABLE = yes
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,31 +16,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma once
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* key matrix size */
 | 
					 | 
				
			||||||
// Rows are doubled-up
 | 
					 | 
				
			||||||
#define MATRIX_ROWS 12
 | 
					 | 
				
			||||||
#define MATRIX_COLS 9
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define DIODE_DIRECTION COL2ROW
 | 
					 | 
				
			||||||
// wiring of each half
 | 
					// wiring of each half
 | 
				
			||||||
#define MATRIX_ROW_PINS { B1, B2, C7, B4, D7, B0 }
 | 
					 | 
				
			||||||
#define MATRIX_COL_PINS { F4, F1, F0, B7, B3, D2, D3, D5, D4 }
 | 
					 | 
				
			||||||
#define MATRIX_ROW_PINS_RIGHT { B3, B2, B6, B4, D7, B0 }
 | 
					 | 
				
			||||||
#define MATRIX_COL_PINS_RIGHT { F1, F0, F4, F5, F6, D5, C7, D3, B7 }
 | 
					 | 
				
			||||||
#define SPLIT_HAND_PIN F7
 | 
					#define SPLIT_HAND_PIN F7
 | 
				
			||||||
#define ENCODERS_PAD_A { F5 }
 | 
					 | 
				
			||||||
#define ENCODERS_PAD_B { F6 }
 | 
					 | 
				
			||||||
#define ENCODERS_PAD_A_RIGHT { D6 }
 | 
					 | 
				
			||||||
#define ENCODERS_PAD_B_RIGHT { D4 }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Set 0 if debouncing isn't needed */
 | 
					 | 
				
			||||||
#define DEBOUNCE 5
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define BACKLIGHT_PIN B5
 | 
					 | 
				
			||||||
#define CAPS_LOCK_LED_PIN B6
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* serial.c configuration for split keyboard */
 | 
					 | 
				
			||||||
#define SOFT_SERIAL_PIN D0
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 | 
					/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 | 
				
			||||||
#define LOCKING_SUPPORT_ENABLE
 | 
					#define LOCKING_SUPPORT_ENABLE
 | 
				
			||||||
| 
						 | 
					@ -48,10 +25,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
#define LOCKING_RESYNC_ENABLE
 | 
					#define LOCKING_RESYNC_ENABLE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* ws2812 RGB LED */
 | 
					/* ws2812 RGB LED */
 | 
				
			||||||
#define RGB_DI_PIN E6
 | 
					 | 
				
			||||||
#define RGBLIGHT_ANIMATIONS
 | 
					 | 
				
			||||||
#define RGBLED_NUM 16    // Number of LEDs
 | 
					 | 
				
			||||||
#define RGBLED_SPLIT { 8, 8 }
 | 
					 | 
				
			||||||
#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 }
 | 
					#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 }
 | 
				
			||||||
#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
 | 
					#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,5 +3,55 @@
 | 
				
			||||||
    "usb": {
 | 
					    "usb": {
 | 
				
			||||||
        "pid": "0x2267",
 | 
					        "pid": "0x2267",
 | 
				
			||||||
        "device_version": "2.0.0"
 | 
					        "device_version": "2.0.0"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "debounce": 5,
 | 
				
			||||||
 | 
					    "diode_direction": "COL2ROW",
 | 
				
			||||||
 | 
					    "features": {
 | 
				
			||||||
 | 
					        "rgblight": true,
 | 
				
			||||||
 | 
					        "backlight": true,
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "indicators": {
 | 
				
			||||||
 | 
					        "caps_lock": "B6"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "split": {
 | 
				
			||||||
 | 
					        "enabled": true,
 | 
				
			||||||
 | 
					        "soft_serial_pin": "D0",
 | 
				
			||||||
 | 
					        "transport": {
 | 
				
			||||||
 | 
					            "protocol": "serial"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "encoder": {
 | 
				
			||||||
 | 
					            "right": {
 | 
				
			||||||
 | 
					                "rotary": [
 | 
				
			||||||
 | 
					                    {"pin_a": "D6", "pin_b": "D4" },
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "matrix_pins": {
 | 
				
			||||||
 | 
					            "right":{
 | 
				
			||||||
 | 
					                "cols": ["F1", "F0", "F4", "F5", "F6", "D5", "C7", "D3", "B7"],
 | 
				
			||||||
 | 
					                "rows": ["B3", "B2", "B6", "B4", "D7", "B0"],
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "matrix_pins": {
 | 
				
			||||||
 | 
					        "cols": ["F4", "F1", "F0", "B7", "B3", "D2", "D3", "D5", "D4"],
 | 
				
			||||||
 | 
					        "rows": ["B1", "B2", "C7", "B4", "D7", "B0"],
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "encoder": {
 | 
				
			||||||
 | 
					        "enabled": true,
 | 
				
			||||||
 | 
					        "rotary": [
 | 
				
			||||||
 | 
					            {"pin_a": "F5", "pin_b": "F6" },
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "backlight":{
 | 
				
			||||||
 | 
					        "pin": "B5",
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "rgblight": {
 | 
				
			||||||
 | 
					        "pin": "E6",
 | 
				
			||||||
 | 
					        "led_count" : 16,
 | 
				
			||||||
 | 
					        "split_count": [8, 8],
 | 
				
			||||||
 | 
					        "animations": {
 | 
				
			||||||
 | 
					            "all": true,
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,14 +18,14 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
#include "split_util.h"
 | 
					#include "split_util.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void matrix_init_kb(void) {
 | 
					void matrix_init_kb(void) {
 | 
				
			||||||
    setPinOutput(CAPS_LOCK_LED_PIN);
 | 
					    setPinOutput(LED_CAPS_LOCK_PIN);
 | 
				
			||||||
    matrix_init_user();
 | 
					    matrix_init_user();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool led_update_kb(led_t led_state) {
 | 
					bool led_update_kb(led_t led_state) {
 | 
				
			||||||
    // Only update if left half
 | 
					    // Only update if left half
 | 
				
			||||||
    if (isLeftHand && led_update_user(led_state)) {
 | 
					    if (isLeftHand && led_update_user(led_state)) {
 | 
				
			||||||
        writePin(CAPS_LOCK_LED_PIN, !led_state.caps_lock);
 | 
					        writePin(LED_CAPS_LOCK_PIN, !led_state.caps_lock);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return true;
 | 
					    return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,3 +1 @@
 | 
				
			||||||
BACKLIGHT_ENABLE = yes
 | 
					# This file intentionally left blank
 | 
				
			||||||
RGBLIGHT_ENABLE = yes
 | 
					 | 
				
			||||||
ENCODER_ENABLE = yes
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,22 +1 @@
 | 
				
			||||||
# MCU name
 | 
					 | 
				
			||||||
MCU = atmega32u4
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Bootloader selection
 | 
					 | 
				
			||||||
BOOTLOADER = atmel-dfu
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Build Options
 | 
					 | 
				
			||||||
#   change yes to no to disable
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
 | 
					 | 
				
			||||||
MOUSEKEY_ENABLE = no        # Mouse keys
 | 
					 | 
				
			||||||
EXTRAKEY_ENABLE = yes       # Audio control and System control
 | 
					 | 
				
			||||||
CONSOLE_ENABLE = no         # Console for debug
 | 
					 | 
				
			||||||
COMMAND_ENABLE = no         # Commands for debug and configuration
 | 
					 | 
				
			||||||
NKRO_ENABLE = no            # Enable N-Key Rollover
 | 
					 | 
				
			||||||
BACKLIGHT_ENABLE = yes      # Enable keyboard backlight functionality
 | 
					 | 
				
			||||||
AUDIO_ENABLE = no           # Audio output
 | 
					 | 
				
			||||||
RGBLIGHT_ENABLE = yes       # Enable WS2812 RGB underlight.
 | 
					 | 
				
			||||||
LTO_ENABLE = yes
 | 
					 | 
				
			||||||
SPLIT_KEYBOARD = yes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DEFAULT_FOLDER = keebio/sinc/rev1
 | 
					DEFAULT_FOLDER = keebio/sinc/rev1
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue