From 25c16b3adeb15466d75691162763ce062b2c6e64 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 2 Jun 2023 02:42:49 +0100 Subject: Add *_MATRIX_LED_COUNT generation/validation (#19515) * Add *_MATRIX_LED_COUNT parsing/validation * Disable parsing for now * Disable complexity check --- data/mappings/info_config.hjson | 2 ++ data/schemas/keyboard.jsonschema | 2 ++ 2 files changed, 4 insertions(+) (limited to 'data') diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index e53d90da39..da255892dc 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -71,6 +71,7 @@ "LED_MATRIX_SPLIT": {"info_key": "led_matrix.split_count", "value_type": "array.int"}, "LED_MATRIX_TIMEOUT": {"info_key": "led_matrix.timeout", "value_type": "int"}, "LED_MATRIX_VAL_STEP": {"info_key": "led_matrix.val_steps", "value_type": "int"}, + "LED_MATRIX_LED_COUNT": {"info_key": "led_matrix.led_count", "value_type": "int", "to_json": false}, // LUFA Bootloader "QMK_ESC_INPUT": {"info_key": "qmk_lufa_bootloader.esc_input"}, @@ -109,6 +110,7 @@ "RGB_MATRIX_SPLIT": {"info_key": "rgb_matrix.split_count", "value_type": "array.int"}, "RGB_MATRIX_TIMEOUT": {"info_key": "rgb_matrix.timeout", "value_type": "int"}, "RGB_MATRIX_VAL_STEP": {"info_key": "rgb_matrix.val_steps", "value_type": "int"}, + "RGB_MATRIX_LED_COUNT": {"info_key": "rgb_matrix.led_count", "value_type": "int", "to_json": false}, // RGBLight "RGBLED_NUM": {"info_key": "rgblight.led_count", "value_type": "int"}, diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index ba4a7eec55..f196e4467d 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -372,6 +372,7 @@ } }, "driver": {"type": "string"}, + "led_count": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "center_point": { "type": "array", "minItems": 2, @@ -423,6 +424,7 @@ } }, "driver": {"type": "string"}, + "led_count": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "center_point": { "type": "array", "minItems": 2, -- cgit v1.3.1 From aa33fb00fdba2d7b1e0f4197c2e6b78755b171e9 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 2 Jun 2023 02:45:48 +0100 Subject: Revert "Add *_MATRIX_LED_COUNT generation/validation (#19515)" (#21109) This reverts commit 25c16b3adeb15466d75691162763ce062b2c6e64. --- data/mappings/info_config.hjson | 2 -- data/schemas/keyboard.jsonschema | 2 -- lib/python/qmk/info.py | 10 +--------- 3 files changed, 1 insertion(+), 13 deletions(-) (limited to 'data') diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index da255892dc..e53d90da39 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -71,7 +71,6 @@ "LED_MATRIX_SPLIT": {"info_key": "led_matrix.split_count", "value_type": "array.int"}, "LED_MATRIX_TIMEOUT": {"info_key": "led_matrix.timeout", "value_type": "int"}, "LED_MATRIX_VAL_STEP": {"info_key": "led_matrix.val_steps", "value_type": "int"}, - "LED_MATRIX_LED_COUNT": {"info_key": "led_matrix.led_count", "value_type": "int", "to_json": false}, // LUFA Bootloader "QMK_ESC_INPUT": {"info_key": "qmk_lufa_bootloader.esc_input"}, @@ -110,7 +109,6 @@ "RGB_MATRIX_SPLIT": {"info_key": "rgb_matrix.split_count", "value_type": "array.int"}, "RGB_MATRIX_TIMEOUT": {"info_key": "rgb_matrix.timeout", "value_type": "int"}, "RGB_MATRIX_VAL_STEP": {"info_key": "rgb_matrix.val_steps", "value_type": "int"}, - "RGB_MATRIX_LED_COUNT": {"info_key": "rgb_matrix.led_count", "value_type": "int", "to_json": false}, // RGBLight "RGBLED_NUM": {"info_key": "rgblight.led_count", "value_type": "int"}, diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index f196e4467d..ba4a7eec55 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -372,7 +372,6 @@ } }, "driver": {"type": "string"}, - "led_count": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "center_point": { "type": "array", "minItems": 2, @@ -424,7 +423,6 @@ } }, "driver": {"type": "string"}, - "led_count": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "center_point": { "type": "array", "minItems": 2, diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index 6628d825ce..dbd26153d8 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -55,7 +55,7 @@ def _get_key_left_position(key): return key['x'] - 0.25 if key.get('h', 1) == 2 and key.get('w', 1) == 1.25 else key['x'] -def _additional_validation(keyboard, info_data): # noqa: C901 +def _additional_validation(keyboard, info_data): """Non schema checks """ layouts = info_data.get('layouts', {}) @@ -105,14 +105,6 @@ def _additional_validation(keyboard, info_data): # noqa: C901 if not decl.get("aliases", []): _log_error(info_data, f'Keycode {decl["key"]} has no short form alias') - # Ensure LED config is somewhat valid - for feature in ['rgb_matrix', 'led_matrix']: - if feature in info_data and all(key in info_data[feature] for key in ["layout", "led_count"]): - layout_count = len(info_data[feature]["layout"]) - led_count = info_data[feature]["led_count"] - if led_count != layout_count: - _log_warning(info_data, '%s: mismatch between LED count (%d) and layout items (%d)' % (feature, led_count, layout_count)) - def _validate(keyboard, info_data): """Perform various validation on the provided info.json data -- cgit v1.3.1 From 9551a0a38aca3d32e38a123ae2854a8c82b26195 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 14 Jun 2023 22:01:13 +1000 Subject: Move `RGBLIGHT_LED_MAP` to data driven (#21095) --- data/mappings/info_config.hjson | 1 + data/schemas/keyboard.jsonschema | 5 ++++ docs/feature_rgblight.md | 31 ------------------------ keyboards/25keys/zinc/rev1/post_config.h | 1 - keyboards/25keys/zinc/reva/post_config.h | 1 - keyboards/avalanche/v4/config.h | 23 ------------------ keyboards/avalanche/v4/info.json | 1 + keyboards/barleycorn_smd/config.h | 1 - keyboards/barleycorn_smd/info.json | 3 +++ keyboards/chlx/str_merro60/config.h | 1 - keyboards/contender/config.h | 8 ------ keyboards/contender/info.json | 3 ++- keyboards/drop/thekey/v2/config.h | 5 ---- keyboards/drop/thekey/v2/info.json | 1 + keyboards/ergodox_ez/ergodox_ez.h | 22 ----------------- keyboards/flxlb/zplit/config.h | 1 - keyboards/flxlb/zplit/info.json | 1 + keyboards/giabalanai/config.h | 22 ----------------- keyboards/giabalanai/info.json | 3 ++- keyboards/handwired/freoduo/config.h | 2 -- keyboards/handwired/freoduo/info.json | 1 + keyboards/handwired/macroboard/config.h | 1 - keyboards/handwired/macroboard/info.json | 3 +++ keyboards/jones/v03_1/config.h | 1 - keyboards/jones/v03_1/info.json | 3 +++ keyboards/keebio/foldkb/rev1/config.h | 1 - keyboards/keebio/foldkb/rev1/info.json | 1 + keyboards/keebio/kbo5000/rev1/config.h | 1 - keyboards/keebio/kbo5000/rev1/info.json | 1 + keyboards/keebio/quefrency/rev2/config.h | 1 - keyboards/keebio/quefrency/rev2/info.json | 1 + keyboards/keebio/quefrency/rev3/config.h | 1 - keyboards/keebio/quefrency/rev3/info.json | 1 + keyboards/keebio/quefrency/rev4/config.h | 1 - keyboards/keebio/quefrency/rev4/info.json | 1 + keyboards/keebio/quefrency/rev5/config.h | 1 - keyboards/keebio/quefrency/rev5/info.json | 1 + keyboards/keebio/sinc/rev1/config.h | 2 -- keyboards/keebio/sinc/rev1/info.json | 1 + keyboards/keebio/sinc/rev2/config.h | 2 -- keyboards/keebio/sinc/rev2/info.json | 1 + keyboards/matrix/cain_re/config.h | 1 - keyboards/matrix/cain_re/info.json | 3 +++ keyboards/moonlander/moonlander.h | 31 ------------------------ keyboards/neito/config.h | 1 - keyboards/neito/info.json | 3 ++- keyboards/nullbitsco/snap/config.h | 1 - keyboards/nullbitsco/snap/info.json | 1 + keyboards/obosob/arch_36/config.h | 2 -- keyboards/obosob/arch_36/info.json | 1 + keyboards/ogre/ergo_single/config.h | 1 - keyboards/ogre/ergo_single/info.json | 3 +++ keyboards/ogre/ergo_split/config.h | 1 - keyboards/ogre/ergo_split/info.json | 1 + keyboards/om60/config.h | 17 ------------- keyboards/om60/info.json | 3 +++ keyboards/omkbd/ergodash/rev1/config.h | 4 --- keyboards/omkbd/ergodash/rev1/info.json | 1 + keyboards/s_ol/0xc_pad/0xc_pad.c | 2 +- keyboards/s_ol/0xc_pad/0xc_pad.h | 24 ------------------ keyboards/salicylic_acid3/naked64/rev1/config.h | 1 - keyboards/salicylic_acid3/naked64/rev1/info.json | 3 +++ keyboards/sets3n/kk980/config.h | 8 ------ keyboards/silverbullet44/config.h | 2 -- keyboards/silverbullet44/info.json | 1 + keyboards/sofle/keyhive/config.h | 26 -------------------- keyboards/sofle/keyhive/info.json | 1 + keyboards/star75/config.h | 1 - keyboards/taleguers/taleguers75/config.h | 1 - keyboards/taleguers/taleguers75/info.json | 3 +++ keyboards/toffee_studio/blueberry/config.h | 9 ------- keyboards/toffee_studio/blueberry/info.json | 3 ++- keyboards/unison/v04/config.h | 1 - keyboards/unison/v04/info.json | 3 +++ keyboards/yoichiro/lunakey_mini/config.h | 2 -- keyboards/yoichiro/lunakey_mini/info.json | 1 + keyboards/yoichiro/lunakey_pico/config.h | 3 --- keyboards/yoichiro/lunakey_pico/info.json | 1 + keyboards/yushakobo/navpad/10/rev1/config.h | 20 --------------- keyboards/yushakobo/navpad/10/rev1/info.json | 3 +++ keyboards/yushakobo/navpad/10_helix_r/config.h | 8 ------ keyboards/yushakobo/navpad/10_helix_r/info.json | 1 + keyboards/yushakobo/quick17/config.h | 5 ---- keyboards/yushakobo/quick17/info.json | 3 ++- 84 files changed, 68 insertions(+), 306 deletions(-) delete mode 100644 keyboards/drop/thekey/v2/config.h delete mode 100644 keyboards/s_ol/0xc_pad/0xc_pad.h delete mode 100644 keyboards/yushakobo/navpad/10/rev1/config.h (limited to 'data') diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index e53d90da39..56d6216c42 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -117,6 +117,7 @@ "RGBLIGHT_LAYER_BLINK": {"info_key": "rgblight.layers.blink", "value_type": "bool"}, "RGBLIGHT_LAYERS": {"info_key": "rgblight.layers.enabled", "value_type": "bool"}, "RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF": {"info_key": "rgblight.layers.override_rgb", "value_type": "bool"}, + "RGBLIGHT_LED_MAP": {"info_key": "rgblight.led_map", "value_type": "array.int"}, "RGBLIGHT_LIMIT_VAL": {"info_key": "rgblight.max_brightness", "value_type": "int"}, "RGBLIGHT_MAX_LAYERS": {"info_key": "rgblight.layers.max", "value_type": "int"}, "RGBLIGHT_SAT_STEP": {"info_key": "rgblight.saturation_steps", "value_type": "int"}, diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index ba4a7eec55..a6213d6a7c 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -491,6 +491,11 @@ } }, "led_count": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "led_map": { + "type": "array", + "minItems": 2, + "items": {"$ref": "qmk.definitions.v1#/unsigned_int"} + }, "max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, "pin": { "$ref": "qmk.definitions.v1#/mcu_pin", diff --git a/docs/feature_rgblight.md b/docs/feature_rgblight.md index 5131658ae1..7deda1f8d5 100644 --- a/docs/feature_rgblight.md +++ b/docs/feature_rgblight.md @@ -524,37 +524,6 @@ By defining `RGBLIGHT_LED_MAP` as in the example below, you can specify the LED ``` simple mapped -For keyboards that use the RGB LEDs as a backlight for each key, you can also define it as in the example below. - -```c -// config.h - -#define RGBLED_NUM 30 - -/* RGB LED Conversion macro from physical array to electric array */ -#define LED_LAYOUT( \ - L00, L01, L02, L03, L04, L05, \ - L10, L11, L12, L13, L14, L15, \ - L20, L21, L22, L23, L24, L25, \ - L30, L31, L32, L33, L34, L35, \ - L40, L41, L42, L43, L44, L45 ) \ - { \ - L05, L04, L03, L02, L01, L00, \ - L10, L11, L12, L13, L14, L15, \ - L25, L24, L23, L22, L21, L20, \ - L30, L31, L32, L33, L34, L35, \ - L46, L45, L44, L43, L42, L41 \ - } - -/* RGB LED logical order map */ -/* Top->Bottom, Right->Left */ -#define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 25, 20, 15, 10, 5, 0, \ - 26, 21, 16, 11, 6, 1, \ - 27, 22, 17, 12, 7, 2, \ - 28, 23, 18, 13, 8, 3, \ - 29, 24, 19, 14, 9, 4 ) - ``` ## Clipping Range diff --git a/keyboards/25keys/zinc/rev1/post_config.h b/keyboards/25keys/zinc/rev1/post_config.h index 15857d3b0b..8588d07f02 100644 --- a/keyboards/25keys/zinc/rev1/post_config.h +++ b/keyboards/25keys/zinc/rev1/post_config.h @@ -34,7 +34,6 @@ along with this program. If not, see . #ifdef RGBLED_CONT #define RGBLED_NUM 60 #define RGBLED_SPLIT { 30, 30 } -// #define RGBLIGHT_LED_MAP {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29} #else #define RGBLED_NUM 30 #endif diff --git a/keyboards/25keys/zinc/reva/post_config.h b/keyboards/25keys/zinc/reva/post_config.h index 15857d3b0b..8588d07f02 100644 --- a/keyboards/25keys/zinc/reva/post_config.h +++ b/keyboards/25keys/zinc/reva/post_config.h @@ -34,7 +34,6 @@ along with this program. If not, see . #ifdef RGBLED_CONT #define RGBLED_NUM 60 #define RGBLED_SPLIT { 30, 30 } -// #define RGBLIGHT_LED_MAP {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29} #else #define RGBLED_NUM 30 #endif diff --git a/keyboards/avalanche/v4/config.h b/keyboards/avalanche/v4/config.h index d60748d9bc..37d139eaad 100644 --- a/keyboards/avalanche/v4/config.h +++ b/keyboards/avalanche/v4/config.h @@ -21,29 +21,6 @@ # define RGBLIGHT_EFFECT_KNIGHT # define RGBLIGHT_EFFECT_SNAKE # define RGBLIGHT_EFFECT_CHRISTMAS - - -// RGB LED Conversion macro from physical array to electric array. This results in better looking animated effects. -# define LED_LAYOUT( \ - /* LED matrix */ \ - L01, L02, L03, L04, L05, L06, L011, L012, L013, L014, L015, L016, \ - L11, L12, L13, L14, L15, L16, L111, L112, L113, L114, L115, L116, \ - L20, L21, L22, L23, L24, L25, L26, L211, L212, L213, L214, L215, L216, L217, \ - L31, L32, L33, L34, L35, L36, L37, L38, L39, L310, L311, L312, L313, L314, L315, L316, \ - L44, L45, L46, L47, L48, L49, L410, L411, L412, L413 )\ - { \ - /* left half - electrical wiring order */ \ - L47,L48,L38,L37,L36,L26,L16,L06,L05,L15,L25,L35,L46,L45,L34,L24,L14,L04,L03,L13,L23,L33,L44,L32,L22,L12,L02,L01,L11,L21,L31,L20, \ - /* right half - electrical wiring order */ \ - L410,L49,L39,L310,L311,L211,L111,L011,L012,L112,L212,L312,L411,L412,L313,L213,L113,L013,L014,L114,L214,L314,L413,L315,L215,L115,L015,L016,L116,L216,L316,L217 \ - } -# define RGBLIGHT_LED_MAP LED_LAYOUT( \ - /* animation order. */ \ - 4, 8, 12, 17, 22, 27, 40, 45, 50, 54, 58, 62, \ - 3, 7, 11, 16, 21, 26, 39, 44, 49, 53, 57, 61, \ - 0, 2, 6, 10, 15, 20, 25, 38, 43, 48, 52, 56, 60, 63, \ - 1, 5, 9, 14, 19, 24, 29, 31, 33, 35, 37, 42, 47, 51, 55, 59, \ - 13, 18, 23, 28, 30, 32, 34, 36, 41, 46 ) #endif #ifdef OLED_ENABLE diff --git a/keyboards/avalanche/v4/info.json b/keyboards/avalanche/v4/info.json index 399ebb82a3..10591c3129 100644 --- a/keyboards/avalanche/v4/info.json +++ b/keyboards/avalanche/v4/info.json @@ -26,6 +26,7 @@ }, "rgblight": { "max_brightness": 100, + "led_map": [28, 30, 31, 29, 24, 25, 26, 27, 22, 21, 20, 19, 23, 18, 14, 15, 16, 17, 12, 11, 10, 9, 13, 5, 6, 7, 8, 4, 3, 2, 1, 0, 34, 32, 33, 35, 37, 38, 39, 40, 45, 44, 43, 42, 36, 41, 47, 48, 49, 50, 54, 53, 52, 51, 46, 55, 56, 57, 58, 62, 61, 60, 59, 63], "split_count": [32, 32] }, "processor": "atmega32u4", diff --git a/keyboards/barleycorn_smd/config.h b/keyboards/barleycorn_smd/config.h index 167c3b5c87..52681e9a0b 100644 --- a/keyboards/barleycorn_smd/config.h +++ b/keyboards/barleycorn_smd/config.h @@ -49,7 +49,6 @@ along with this program. If not, see . #define RGBLIGHT_EFFECT_RGB_TEST #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE -#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 5 } /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/barleycorn_smd/info.json b/keyboards/barleycorn_smd/info.json index 0f759e5f4d..471369812c 100644 --- a/keyboards/barleycorn_smd/info.json +++ b/keyboards/barleycorn_smd/info.json @@ -12,6 +12,9 @@ "caps_lock": "B2", "num_lock": "B3" }, + "rgblight": { + "led_map": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 5] + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/chlx/str_merro60/config.h b/keyboards/chlx/str_merro60/config.h index 62b31cf95b..a16b45e8d7 100644 --- a/keyboards/chlx/str_merro60/config.h +++ b/keyboards/chlx/str_merro60/config.h @@ -29,7 +29,6 @@ along with this program. If not, see . # define RGBLIGHT_EFFECT_TWINKLE # define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL + 5 # define RGBLED_NUM 12 -# define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 } # define RGBLIGHT_HUE_STEP 8 # define RGBLIGHT_SAT_STEP 8 # define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/contender/config.h b/keyboards/contender/config.h index 971253f396..ef0a280611 100644 --- a/keyboards/contender/config.h +++ b/keyboards/contender/config.h @@ -18,14 +18,6 @@ along with this program. If not, see . #pragma once #define RGBLED_NUM 33 -#define RGBLIGHT_LED_MAP { \ - 0, 1, 2, 3, \ - 7, 6, 5, 4, \ - 8, 9, 10, 11, \ - 15, 14, 13, 12, \ - 16, 17, 18, 19, \ - 22, 21, 20, \ - 25, 24, 23, 26, 27, 28, 29, 30, 31, 32 } #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/contender/info.json b/keyboards/contender/info.json index 8a81ae164d..3eaaf23cd4 100644 --- a/keyboards/contender/info.json +++ b/keyboards/contender/info.json @@ -12,7 +12,8 @@ "pin": "C6" }, "rgblight": { - "max_brightness": 32 + "max_brightness": 32, + "led_map": [0, 1, 2, 3, 7, 6, 5, 4, 8, 9, 10, 11, 15, 14, 13, 12, 16, 17, 18, 19, 22, 21, 20, 25, 24, 23, 26, 27, 28, 29, 30, 31, 32] }, "matrix_pins": { "cols": ["C7", "D6", "B3", "B0", "B1"], diff --git a/keyboards/drop/thekey/v2/config.h b/keyboards/drop/thekey/v2/config.h deleted file mode 100644 index ca6944c2c9..0000000000 --- a/keyboards/drop/thekey/v2/config.h +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright 2023 Massdrop, Inc. -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#define RGBLIGHT_LED_MAP {4, 0, 1, 2, 3} diff --git a/keyboards/drop/thekey/v2/info.json b/keyboards/drop/thekey/v2/info.json index 7870599fe1..ced9901bea 100644 --- a/keyboards/drop/thekey/v2/info.json +++ b/keyboards/drop/thekey/v2/info.json @@ -25,6 +25,7 @@ "diode_direction": "ROW2COL", "rgblight": { "led_count": 5, + "led_map": [4, 0, 1, 2, 3], "sleep": true, "animations": { "alternating": true, diff --git a/keyboards/ergodox_ez/ergodox_ez.h b/keyboards/ergodox_ez/ergodox_ez.h index 0c23a12969..befc114617 100644 --- a/keyboards/ergodox_ez/ergodox_ez.h +++ b/keyboards/ergodox_ez/ergodox_ez.h @@ -139,25 +139,3 @@ typedef union { } keyboard_config_t; extern keyboard_config_t keyboard_config; - -/* ---- LEFT HAND ---- ---- RIGHT HAND ---- */ -#define LED_LAYOUT_ergodox_pretty( \ - L01,L02,L03,L04,L05, R01,R02,R03,R04,R05, \ - L11,L12,L13,L14,L15, R11,R12,R13,R14,R15, \ - L21,L22,L23,L24,L25, R21,R22,R23,R24,R25, \ - L31,L32,L33,L34,L35, R31,R32,R33,R34,R35, \ - L41,L42,L43,L44, R42,R43,R44,R45 ) \ - \ - /* matrix positions */ \ - { R01, R02, R03, R04, R05, \ - R11, R12, R13, R14, R15, \ - R21, R22, R23, R24, R25, \ - R31, R32, R33, R34, R35, \ - R42, R43, R44, R45, \ - \ - L05, L04, L03, L02, L01, \ - L15, L14, L13, L12, L11, \ - L25, L24, L23, L22, L21, \ - L35, L34, L33, L32, L31, \ - L44, L43, L42, L41 \ - } diff --git a/keyboards/flxlb/zplit/config.h b/keyboards/flxlb/zplit/config.h index 9c1d35d136..ad1612280c 100644 --- a/keyboards/flxlb/zplit/config.h +++ b/keyboards/flxlb/zplit/config.h @@ -30,7 +30,6 @@ along with this program. If not, see . /* ws2812 RGB LED */ #define RGBLED_NUM 16 -#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, 6, 7, 15, 14, 13, 12, 11, 10, 9, 8} #define RGBLIGHT_SPLIT #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD diff --git a/keyboards/flxlb/zplit/info.json b/keyboards/flxlb/zplit/info.json index dbd075a2e4..fb30fe2ab7 100644 --- a/keyboards/flxlb/zplit/info.json +++ b/keyboards/flxlb/zplit/info.json @@ -19,6 +19,7 @@ ] }, "rgblight": { + "led_map": [0, 1, 2, 3, 4, 5, 6, 7, 15, 14, 13, 12, 11, 10, 9, 8], "split_count": [8, 8] }, "ws2812": { diff --git a/keyboards/giabalanai/config.h b/keyboards/giabalanai/config.h index fda301537f..1471806690 100644 --- a/keyboards/giabalanai/config.h +++ b/keyboards/giabalanai/config.h @@ -41,28 +41,6 @@ along with this program. If not, see . // By default, LEDs of the buttons which are pressed turn on. // # define RGBLIGHT_EFFECT_TWINKLE // # define RGBLIGHT_EFFECT_KNIGHT - - -// RGBLIGHT LED MAP -// Right 1st row (12 LEDs) -// ENCODER -// Right 2nd .. 5th row(13, 12, 13, 12 LEDs) -// Left 1st .. 5th row (12 LEDs x 5 rows) - -# define RGBLIGHT_LED_MAP { \ - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, \ - 97, \ - 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, \ - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, \ - 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, \ - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, \ - \ - 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, \ - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, \ - 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, \ - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, \ - 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48 \ - } #endif #ifdef RGB_MATRIX_ENABLE diff --git a/keyboards/giabalanai/info.json b/keyboards/giabalanai/info.json index 7c2fa72047..7274505f9b 100644 --- a/keyboards/giabalanai/info.json +++ b/keyboards/giabalanai/info.json @@ -12,7 +12,8 @@ "driver": "WS2812" }, "rgblight": { - "max_brightness": 80 + "max_brightness": 80, + "led_map": [60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 97, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48] }, "matrix_pins": { "cols": ["B1", "F7", "F6", "F5", "F4", "B3", "B2", "B6", "D0", "D1"], diff --git a/keyboards/handwired/freoduo/config.h b/keyboards/handwired/freoduo/config.h index e4045a3790..22da5b95eb 100644 --- a/keyboards/handwired/freoduo/config.h +++ b/keyboards/handwired/freoduo/config.h @@ -21,8 +21,6 @@ along with this program. If not, see . #if !defined(RGBLED_NUM) # define RGBLED_NUM 30 # define RGBLIGHT_SPLIT -// Switch RGB sides with LED MAP. -# define RGBLIGHT_LED_MAP { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30} # define RGBLIGHT_LAYERS #endif #define RGBLIGHT_EFFECT_BREATHING diff --git a/keyboards/handwired/freoduo/info.json b/keyboards/handwired/freoduo/info.json index a4d6144cf9..347b832a40 100644 --- a/keyboards/handwired/freoduo/info.json +++ b/keyboards/handwired/freoduo/info.json @@ -17,6 +17,7 @@ "soft_serial_pin": "D0" }, "rgblight": { + "led_map": [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "split_count": [16, 14] }, "ws2812": { diff --git a/keyboards/handwired/macroboard/config.h b/keyboards/handwired/macroboard/config.h index d20625da08..e041e181ca 100644 --- a/keyboards/handwired/macroboard/config.h +++ b/keyboards/handwired/macroboard/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define WS2812_DMA_STREAM STM32_DMA1_STREAM6 // 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_PWM_TARGET_PERIOD 800000 -#define RGBLIGHT_LED_MAP { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 23, 21, 19, 17, 15, 13, 11, 9, 7, 5, 3, 1 } # define RGBLED_NUM 24 # define RGBLIGHT_HUE_STEP 8 diff --git a/keyboards/handwired/macroboard/info.json b/keyboards/handwired/macroboard/info.json index b82cee4fb5..ba597d39f6 100644 --- a/keyboards/handwired/macroboard/info.json +++ b/keyboards/handwired/macroboard/info.json @@ -8,6 +8,9 @@ "pid": "0x2137", "device_version": "0.0.1" }, + "rgblight": { + "led_map": [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 23, 21, 19, 17, 15, 13, 11, 9, 7, 5, 3, 1] + }, "ws2812": { "pin": "B9" }, diff --git a/keyboards/jones/v03_1/config.h b/keyboards/jones/v03_1/config.h index b3eb44a156..7625c2cdb4 100644 --- a/keyboards/jones/v03_1/config.h +++ b/keyboards/jones/v03_1/config.h @@ -49,7 +49,6 @@ along with this program. If not, see . #endif #define RGBLED_NUM 14 // Left(4) + Right(2) + Under(8) - #define RGBLIGHT_LED_MAP {0,1,2,3,13,12,4,5,6,7,8,9,10,11} // Left --> Right --> Under #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/jones/v03_1/info.json b/keyboards/jones/v03_1/info.json index d0fec4e571..fa5e1bf385 100644 --- a/keyboards/jones/v03_1/info.json +++ b/keyboards/jones/v03_1/info.json @@ -14,6 +14,9 @@ {"pin_a": "B3", "pin_b": "B2"} ] }, + "rgblight": { + "led_map": [0, 1, 2, 3, 13, 12, 4, 5, 6, 7, 8, 9, 10, 11] + }, "ws2812": { "pin": "F0" }, diff --git a/keyboards/keebio/foldkb/rev1/config.h b/keyboards/keebio/foldkb/rev1/config.h index efdd195b5d..917475fab7 100644 --- a/keyboards/keebio/foldkb/rev1/config.h +++ b/keyboards/keebio/foldkb/rev1/config.h @@ -35,5 +35,4 @@ along with this program. If not, see . #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE #define RGBLED_NUM 16 // Number of LEDs -#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 12, 13, 14, 15, 4, 5, 6, 7, 8, 9, 10, 11 } #define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/foldkb/rev1/info.json b/keyboards/keebio/foldkb/rev1/info.json index 705bd7cc8a..467aaaa4b6 100644 --- a/keyboards/keebio/foldkb/rev1/info.json +++ b/keyboards/keebio/foldkb/rev1/info.json @@ -25,6 +25,7 @@ "soft_serial_pin": "D0" }, "rgblight": { + "led_map": [0, 1, 2, 3, 12, 13, 14, 15, 4, 5, 6, 7, 8, 9, 10, 11], "split_count": [8, 8] }, "ws2812": { diff --git a/keyboards/keebio/kbo5000/rev1/config.h b/keyboards/keebio/kbo5000/rev1/config.h index c22aff38be..d8a0161dba 100644 --- a/keyboards/keebio/kbo5000/rev1/config.h +++ b/keyboards/keebio/kbo5000/rev1/config.h @@ -39,4 +39,3 @@ along with this program. If not, see . #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE #define RGBLED_NUM 16 // Number of LEDs -#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 } diff --git a/keyboards/keebio/kbo5000/rev1/info.json b/keyboards/keebio/kbo5000/rev1/info.json index e1b4d90492..78bbb01357 100644 --- a/keyboards/keebio/kbo5000/rev1/info.json +++ b/keyboards/keebio/kbo5000/rev1/info.json @@ -22,6 +22,7 @@ "pin": "B5" }, "rgblight": { + "led_map": [1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8], "split_count": [8, 8] }, "ws2812": { diff --git a/keyboards/keebio/quefrency/rev2/config.h b/keyboards/keebio/quefrency/rev2/config.h index 20f625af30..29c55072ea 100644 --- a/keyboards/keebio/quefrency/rev2/config.h +++ b/keyboards/keebio/quefrency/rev2/config.h @@ -24,7 +24,6 @@ along with this program. If not, see . /* ws2812 RGB LED */ #define RGBLED_NUM 16 // Number of LEDs -#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 } #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD #define RGBLIGHT_EFFECT_RAINBOW_SWIRL diff --git a/keyboards/keebio/quefrency/rev2/info.json b/keyboards/keebio/quefrency/rev2/info.json index d9bbab9795..d1871c887b 100644 --- a/keyboards/keebio/quefrency/rev2/info.json +++ b/keyboards/keebio/quefrency/rev2/info.json @@ -22,6 +22,7 @@ "pin": "B5" }, "rgblight": { + "led_map": [1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8], "split_count": [8, 8] }, "ws2812": { diff --git a/keyboards/keebio/quefrency/rev3/config.h b/keyboards/keebio/quefrency/rev3/config.h index 20f625af30..29c55072ea 100644 --- a/keyboards/keebio/quefrency/rev3/config.h +++ b/keyboards/keebio/quefrency/rev3/config.h @@ -24,7 +24,6 @@ along with this program. If not, see . /* ws2812 RGB LED */ #define RGBLED_NUM 16 // Number of LEDs -#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 } #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD #define RGBLIGHT_EFFECT_RAINBOW_SWIRL diff --git a/keyboards/keebio/quefrency/rev3/info.json b/keyboards/keebio/quefrency/rev3/info.json index 4f14a0f6a8..93dd6774b5 100644 --- a/keyboards/keebio/quefrency/rev3/info.json +++ b/keyboards/keebio/quefrency/rev3/info.json @@ -22,6 +22,7 @@ "pin": "B5" }, "rgblight": { + "led_map": [1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8], "split_count": [8, 8] }, "ws2812": { diff --git a/keyboards/keebio/quefrency/rev4/config.h b/keyboards/keebio/quefrency/rev4/config.h index da173dde3e..84e9d85dd4 100644 --- a/keyboards/keebio/quefrency/rev4/config.h +++ b/keyboards/keebio/quefrency/rev4/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . /* ws2812 RGB LED */ #define RGBLED_NUM 16 // Number of LEDs -#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_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD diff --git a/keyboards/keebio/quefrency/rev4/info.json b/keyboards/keebio/quefrency/rev4/info.json index 64a2361f81..53b30b5d70 100644 --- a/keyboards/keebio/quefrency/rev4/info.json +++ b/keyboards/keebio/quefrency/rev4/info.json @@ -19,6 +19,7 @@ ] }, "rgblight": { + "led_map": [1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8], "split_count": [8, 8] }, "ws2812": { diff --git a/keyboards/keebio/quefrency/rev5/config.h b/keyboards/keebio/quefrency/rev5/config.h index da173dde3e..84e9d85dd4 100644 --- a/keyboards/keebio/quefrency/rev5/config.h +++ b/keyboards/keebio/quefrency/rev5/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . /* ws2812 RGB LED */ #define RGBLED_NUM 16 // Number of LEDs -#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_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD diff --git a/keyboards/keebio/quefrency/rev5/info.json b/keyboards/keebio/quefrency/rev5/info.json index 3d60d79048..15aeef9426 100644 --- a/keyboards/keebio/quefrency/rev5/info.json +++ b/keyboards/keebio/quefrency/rev5/info.json @@ -19,6 +19,7 @@ ] }, "rgblight": { + "led_map": [1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8], "split_count": [8, 8] }, "ws2812": { diff --git a/keyboards/keebio/sinc/rev1/config.h b/keyboards/keebio/sinc/rev1/config.h index c394777a8f..8894354d43 100644 --- a/keyboards/keebio/sinc/rev1/config.h +++ b/keyboards/keebio/sinc/rev1/config.h @@ -26,8 +26,6 @@ along with this program. If not, see . /* Synchronize Caps Lock LED across halves */ #define SPLIT_LED_STATE_ENABLE -/* ws2812 RGB LED */ -#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 VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 diff --git a/keyboards/keebio/sinc/rev1/info.json b/keyboards/keebio/sinc/rev1/info.json index d9b09568bd..5ddb54ee60 100644 --- a/keyboards/keebio/sinc/rev1/info.json +++ b/keyboards/keebio/sinc/rev1/info.json @@ -49,6 +49,7 @@ }, "rgblight": { "led_count": 16, + "led_map": [1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8], "split_count": [8, 8], "animations": { "alternating": true, diff --git a/keyboards/keebio/sinc/rev2/config.h b/keyboards/keebio/sinc/rev2/config.h index c394777a8f..8894354d43 100644 --- a/keyboards/keebio/sinc/rev2/config.h +++ b/keyboards/keebio/sinc/rev2/config.h @@ -26,8 +26,6 @@ along with this program. If not, see . /* Synchronize Caps Lock LED across halves */ #define SPLIT_LED_STATE_ENABLE -/* ws2812 RGB LED */ -#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 VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 diff --git a/keyboards/keebio/sinc/rev2/info.json b/keyboards/keebio/sinc/rev2/info.json index d9372d9e94..0c86727abe 100644 --- a/keyboards/keebio/sinc/rev2/info.json +++ b/keyboards/keebio/sinc/rev2/info.json @@ -49,6 +49,7 @@ }, "rgblight": { "led_count": 16, + "led_map": [1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8], "split_count": [8, 8], "animations": { "alternating": true, diff --git a/keyboards/matrix/cain_re/config.h b/keyboards/matrix/cain_re/config.h index 017961460c..df138027a6 100644 --- a/keyboards/matrix/cain_re/config.h +++ b/keyboards/matrix/cain_re/config.h @@ -36,7 +36,6 @@ #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 #define RGBLIGHT_SLEEP -#define RGBLIGHT_LED_MAP { 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 1, 2, 3 } #define CAPS_PIN D3 #define NUM_PIN F7 diff --git a/keyboards/matrix/cain_re/info.json b/keyboards/matrix/cain_re/info.json index 5b89ed83ef..f9af90c15e 100644 --- a/keyboards/matrix/cain_re/info.json +++ b/keyboards/matrix/cain_re/info.json @@ -8,6 +8,9 @@ "pid": "0x0106", "device_version": "0.0.1" }, + "rgblight": { + "led_map": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 1, 2, 3] + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/moonlander/moonlander.h b/keyboards/moonlander/moonlander.h index f68b60379c..0e5282c511 100644 --- a/keyboards/moonlander/moonlander.h +++ b/keyboards/moonlander/moonlander.h @@ -34,37 +34,6 @@ extern bool mcp23018_leds[]; #define ML_LED_5(status) mcp23018_leds[1] = (bool)status #define ML_LED_6(status) mcp23018_leds[2] = (bool)status - -// clang-format off -#define LED_LAYOUT_moonlander( \ - l00, l01, l02, l03, l04, l05, l06, l60, l61, l62, l63, l64, l65, l66, \ - l10, l11, l12, l13, l14, l15, l16, l70, l71, l72, l73, l74, l75, l76, \ - l20, l21, l22, l23, l24, l25, l26, l80, l81, l82, l83, l84, l85, l86, \ - l30, l31, l32, l33, l34, l35, l91, l92, l93, l94, l95, l96, \ - l40, l41, l42, l43, l44, l53, lb3, la2, la3, la4, la5, la6, \ - l50, l51, l52, lb4, lb5, lb6 \ -) \ -{ \ - l00, l10, l20, l30, l40, \ - l01, l11, l21, l31, l41, \ - l02, l12, l22, l32, l42, \ - l03, l13, l23, l33, l43, \ - l04, l14, l24, l34, l44, \ - l05, l15, l25, l35, \ - l06, l16, l26, \ - l50, l51, l52, l53, \ -\ - l66, l76, l86, l96, la6, \ - l65, l75, l85, l95, la5, \ - l64, l74, l84, l94, la4, \ - l63, l73, l83, l93, la3, \ - l62, l72, l82, l92, la2, \ - l61, l71, l81, l91, \ - l60, l70, l80, \ - lb6, lb5, lb4, lb3 \ -} -// clang-format on - enum planck_ez_keycodes { TOGGLE_LAYER_COLOR = QK_KB_0, LED_LEVEL, diff --git a/keyboards/neito/config.h b/keyboards/neito/config.h index ef9b518920..fb5d1cd72e 100644 --- a/keyboards/neito/config.h +++ b/keyboards/neito/config.h @@ -30,7 +30,6 @@ #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE #define RGBLED_NUM 11 -#define RGBLIGHT_LED_MAP { 4, 3, 2, 1, 0, 10, 9, 8, 7, 6, 5 } #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/neito/info.json b/keyboards/neito/info.json index a226d236c3..dede656f17 100644 --- a/keyboards/neito/info.json +++ b/keyboards/neito/info.json @@ -30,7 +30,8 @@ "pin": "D5" }, "rgblight": { - "max_brightness": 200 + "max_brightness": 200, + "led_map": [4, 3, 2, 1, 0, 10, 9, 8, 7, 6, 5] }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/nullbitsco/snap/config.h b/keyboards/nullbitsco/snap/config.h index cbc354a13a..1fbe05d9d5 100644 --- a/keyboards/nullbitsco/snap/config.h +++ b/keyboards/nullbitsco/snap/config.h @@ -59,7 +59,6 @@ /* Optional SMT LED pins */ #define RGBLED_NUM 10 -#define RGBLIGHT_LED_MAP { 8, 9, 0, 1, 2, 6, 7, 3, 4, 5 } #define RGBLIGHT_SLEEP #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD diff --git a/keyboards/nullbitsco/snap/info.json b/keyboards/nullbitsco/snap/info.json index fcb224d30a..6604b19fdb 100644 --- a/keyboards/nullbitsco/snap/info.json +++ b/keyboards/nullbitsco/snap/info.json @@ -8,6 +8,7 @@ "device_version": "0.0.1" }, "rgblight": { + "led_map": [8, 9, 0, 1, 2, 6, 7, 3, 4, 5], "split_count": [5, 5] }, "ws2812": { diff --git a/keyboards/obosob/arch_36/config.h b/keyboards/obosob/arch_36/config.h index 3852baf5a7..e584bb045c 100644 --- a/keyboards/obosob/arch_36/config.h +++ b/keyboards/obosob/arch_36/config.h @@ -19,8 +19,6 @@ along with this program. If not, see . #ifdef RGBLIGHT_ENABLE #define RGBLED_NUM 12 -#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, \ - 11, 10, 9, 8, 7, 6 } #endif #define OLED_DISPLAY_128X64 diff --git a/keyboards/obosob/arch_36/info.json b/keyboards/obosob/arch_36/info.json index cffa4e8e44..b888049bc5 100644 --- a/keyboards/obosob/arch_36/info.json +++ b/keyboards/obosob/arch_36/info.json @@ -17,6 +17,7 @@ "soft_serial_pin": "D2" }, "rgblight": { + "led_map": [0, 1, 2, 3, 4, 5, 11, 10, 9, 8, 7, 6], "split_count": [6, 6] }, "ws2812": { diff --git a/keyboards/ogre/ergo_single/config.h b/keyboards/ogre/ergo_single/config.h index c6739d7f66..690b44eb06 100644 --- a/keyboards/ogre/ergo_single/config.h +++ b/keyboards/ogre/ergo_single/config.h @@ -18,7 +18,6 @@ along with this program. If not, see . #pragma once #define RGBLED_NUM 14 -#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, 6, 13, 12,11, 10, 9, 8, 7} #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD #define RGBLIGHT_EFFECT_RAINBOW_SWIRL diff --git a/keyboards/ogre/ergo_single/info.json b/keyboards/ogre/ergo_single/info.json index 4a5b96b8ad..c51af75fe0 100644 --- a/keyboards/ogre/ergo_single/info.json +++ b/keyboards/ogre/ergo_single/info.json @@ -13,6 +13,9 @@ "rows": ["D3", "D2", "D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5"] }, "diode_direction": "COL2ROW", + "rgblight": { + "led_map": [0, 1, 2, 3, 4, 5, 6, 13, 12, 11, 10, 9, 8, 7] + }, "ws2812": { "pin": "B6" }, diff --git a/keyboards/ogre/ergo_split/config.h b/keyboards/ogre/ergo_split/config.h index 20bff507de..adff7abc3e 100644 --- a/keyboards/ogre/ergo_split/config.h +++ b/keyboards/ogre/ergo_split/config.h @@ -20,7 +20,6 @@ along with this program. If not, see . #define SPLIT_HAND_PIN D1 #define RGBLED_NUM 14 -#define RGBLIGHT_LED_MAP { 6, 5, 4, 3, 2, 1, 0, 13, 12,11, 10, 9, 8, 7} #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD #define RGBLIGHT_EFFECT_RAINBOW_SWIRL diff --git a/keyboards/ogre/ergo_split/info.json b/keyboards/ogre/ergo_split/info.json index 1055724b5f..3321f0e1be 100644 --- a/keyboards/ogre/ergo_split/info.json +++ b/keyboards/ogre/ergo_split/info.json @@ -17,6 +17,7 @@ "soft_serial_pin": "D3" }, "rgblight": { + "led_map": [6, 5, 4, 3, 2, 1, 0, 13, 12, 11, 10, 9, 8, 7], "split_count": [7, 7] }, "ws2812": { diff --git a/keyboards/om60/config.h b/keyboards/om60/config.h index 16957f9a0a..1936b24382 100644 --- a/keyboards/om60/config.h +++ b/keyboards/om60/config.h @@ -36,23 +36,6 @@ along with this program. If not, see . #ifndef RGBLED_NUM #define RGBLED_NUM 69 - #define RGBLIGHT_LED_MAP { \ - 0, 1, 2, 3, \ - 8, 7, 6, 5, 4, \ - 9,10,11,12,13, \ - 18,17,16,15,14, \ - 19,20,21,22,23, \ - 28,27,26,25,24, \ - 29,30,31,32,33, \ - 38,37,36,35,34, \ - 39,40,41,42,43, \ - 48,47,46,45,44, \ - 49,50,51,52,53, \ - 58,57,56,55,54, \ - 59,60,61,62,63, \ - 68,67,66,65,64 \ - } - #define RGBLIGHT_SLEEP #endif diff --git a/keyboards/om60/info.json b/keyboards/om60/info.json index 7efa8097d6..288c5aace4 100644 --- a/keyboards/om60/info.json +++ b/keyboards/om60/info.json @@ -13,6 +13,9 @@ {"pin_a": "B4", "pin_b": "B5"} ] }, + "rgblight": { + "led_map": [0, 1, 2, 3, 8, 7, 6, 5, 4, 9, 10, 11, 12, 13, 18, 17, 16, 15, 14, 19, 20, 21, 22, 23, 28, 27, 26, 25, 24, 29, 30, 31, 32, 33, 38, 37, 36, 35, 34, 39, 40, 41, 42, 43, 48, 47, 46, 45, 44, 49, 50, 51, 52, 53, 58, 57, 56, 55, 54, 59, 60, 61, 62, 63, 68, 67, 66, 65, 64] + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/omkbd/ergodash/rev1/config.h b/keyboards/omkbd/ergodash/rev1/config.h index 851116d455..04de28d2b3 100644 --- a/keyboards/omkbd/ergodash/rev1/config.h +++ b/keyboards/omkbd/ergodash/rev1/config.h @@ -42,10 +42,6 @@ along with this program. If not, see . #define RGBLED_NUM 24 #define RGBLIGHT_SPLIT -// The LEDs on the slave half go in reverse order -#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, \ - 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12} - #define SELECT_SOFT_SERIAL_SPEED 1 /*Sets the protocol speed when using serial communication*/ //Speeds: diff --git a/keyboards/omkbd/ergodash/rev1/info.json b/keyboards/omkbd/ergodash/rev1/info.json index 3a395bde83..b73694688c 100644 --- a/keyboards/omkbd/ergodash/rev1/info.json +++ b/keyboards/omkbd/ergodash/rev1/info.json @@ -21,6 +21,7 @@ "soft_serial_pin": "D0" }, "rgblight": { + "led_map": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12], "split_count": [12, 12] }, "ws2812": { diff --git a/keyboards/s_ol/0xc_pad/0xc_pad.c b/keyboards/s_ol/0xc_pad/0xc_pad.c index c471da92cc..ba8cd96aec 100644 --- a/keyboards/s_ol/0xc_pad/0xc_pad.c +++ b/keyboards/s_ol/0xc_pad/0xc_pad.c @@ -13,7 +13,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#include "0xc_pad.h" +#include "quantum.h" #ifdef RGB_MATRIX_ENABLE led_config_t g_led_config = { { diff --git a/keyboards/s_ol/0xc_pad/0xc_pad.h b/keyboards/s_ol/0xc_pad/0xc_pad.h deleted file mode 100644 index 013f4c89dc..0000000000 --- a/keyboards/s_ol/0xc_pad/0xc_pad.h +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright 2021 s-ol - * - * 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 . - */ -#pragma once - -#include "quantum.h" - -#define LED_LAYOUT( \ - \ - k01, k05, k02, k06, k10, k03, k07, k11, k15, k08, k12, k16) \ - \ - { k01, k02, k03, k08, k07, k06, k05, k10, k11, k12, k16, k15, } diff --git a/keyboards/salicylic_acid3/naked64/rev1/config.h b/keyboards/salicylic_acid3/naked64/rev1/config.h index 33ee2b5030..1cf00110ac 100644 --- a/keyboards/salicylic_acid3/naked64/rev1/config.h +++ b/keyboards/salicylic_acid3/naked64/rev1/config.h @@ -24,7 +24,6 @@ along with this program. If not, see . #define LOCKING_RESYNC_ENABLE #define RGBLED_NUM 12 // Number of LEDs -#define RGBLIGHT_LED_MAP { 0, 1, 3, 2, 2, 3, 2, 3, 4, 5, 6, 7 } #ifndef IOS_DEVICE_ENABLE #define RGBLIGHT_LIMIT_VAL 180 diff --git a/keyboards/salicylic_acid3/naked64/rev1/info.json b/keyboards/salicylic_acid3/naked64/rev1/info.json index a58acf807b..cb9a7b341f 100644 --- a/keyboards/salicylic_acid3/naked64/rev1/info.json +++ b/keyboards/salicylic_acid3/naked64/rev1/info.json @@ -22,6 +22,9 @@ } } }, + "rgblight": { + "led_map": [0, 1, 3, 2, 2, 3, 2, 3, 4, 5, 6, 7] + }, "ws2812": { "pin": "B6" }, diff --git a/keyboards/sets3n/kk980/config.h b/keyboards/sets3n/kk980/config.h index d7b29ad732..bff26cfc80 100644 --- a/keyboards/sets3n/kk980/config.h +++ b/keyboards/sets3n/kk980/config.h @@ -34,14 +34,6 @@ #define RGBLIGHT_EFFECT_TWINKLE #define RGBLED_NUM 102 -#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,\ - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, \ - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, \ - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, \ - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, \ - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, \ - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, \ - 96, 97, 98, 99, 100, 101, 102 } // 1 --> ScollLock 2 --> CapsLock 3 --> Bluetooth 4 --> NumLock #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/silverbullet44/config.h b/keyboards/silverbullet44/config.h index 67d78aa0c6..39a96f10c6 100644 --- a/keyboards/silverbullet44/config.h +++ b/keyboards/silverbullet44/config.h @@ -36,8 +36,6 @@ along with this program. If not, see . #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_TYPING_HEATMAP #else - #define RGBLIGHT_LED_MAP { 0,1,2,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,3,4,5,6, \ - 26,27,28,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,29,30,31,32 } #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/silverbullet44/info.json b/keyboards/silverbullet44/info.json index 9ca5218d12..4146b4feee 100644 --- a/keyboards/silverbullet44/info.json +++ b/keyboards/silverbullet44/info.json @@ -16,6 +16,7 @@ }, "rgblight": { "max_brightness": 150, + "led_map": [0, 1, 2, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3, 4, 5, 6, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 29, 30, 31, 32], "split_count": [26, 26] }, "matrix_pins": { diff --git a/keyboards/sofle/keyhive/config.h b/keyboards/sofle/keyhive/config.h index 2dccaba6ba..9584b56b4e 100755 --- a/keyboards/sofle/keyhive/config.h +++ b/keyboards/sofle/keyhive/config.h @@ -37,30 +37,4 @@ # define RGBLIGHT_VAL_STEP 17 //# define RGBLIGHT_LAYERS //Enable layer light indicators. Not required as updates are done in layer_state_set_user and led_update_user (+588). # define RGBLIGHT_SLEEP //Turn off LEDs when computer sleeping (+72) - -//RGB LED Conversion macro from physical array to electric array (+146). This results in better looking animated effects. -//First section is the LED matrix, second section is the electrical wiring order, and the third section is the desired mapping -# define LED_LAYOUT( \ - L00, L01, L02, L03, L04, L05, L08, L09, L010, L011, L012, L013, \ - L10, L12, L14, L19, L111, L113, \ - L20, L21, L22, L23, L24, L25, L28, L29, L210, L211, L212, L213, \ - L30, L31, L32, L33, L34, L35, L38, L39, L310, L311, L312, L313, \ - L40, L42, L44, L49, L411, L413, \ - L50, L51, L52, L53, L54, L55, L58, L59, L510, L511, L512, L513, \ - L62, L63, L64, L65, L66, L67, L68, L69, L610, L611, \ - L71, L76, L77, L712 )\ - { \ - L14,L12,L10,L40,L42,L44,L71,L76,L66,L65,L55,L35,L25,L05,L04,L24,L34,L54,L64,L63,L53,L33,L23,L03,L02,L22,L32,L52,L62,L51,L31,L21,L01,L00,L20,L30,L50,L19,L111,L113,L413,L411,L49,L712,L77,L67,L68,L58,L38,L28,L08,L09,L29,L39,L59,L69,L610,L510,L310,L210,L010,L011,L211,L311,L511,L611,L512,L312,L212,L012,L013,L213,L313,L513, \ - } -//RGB LED logical order map -# define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 5, 6, 17, 18, 29, 30, 43, 44, 55, 56, 67, 68, \ - 4, 16, 28, 45, 57, 69, \ - 3, 7, 15, 19, 27, 31, 42, 46, 54, 58, 66, 70, \ - 2, 8, 14, 20, 26, 32, 41, 47, 53, 59, 65, 71, \ - 1, 13, 25, 48, 60, 72, \ - 0, 9, 12, 21, 24, 33, 40, 49, 52, 61, 64, 73, \ - 11, 22, 23, 34, 35, 38, 39, 50, 51, 62, \ - 10, 36, 37, 63 ) - #endif diff --git a/keyboards/sofle/keyhive/info.json b/keyboards/sofle/keyhive/info.json index 12053234ff..93bbae19dc 100644 --- a/keyboards/sofle/keyhive/info.json +++ b/keyboards/sofle/keyhive/info.json @@ -11,6 +11,7 @@ }, "rgblight": { "max_brightness": 100, + "led_map": [28, 16, 4, 1, 13, 25, 10, 36, 35, 34, 33, 32, 31, 30, 29, 27, 26, 24, 23, 22, 21, 20, 19, 18, 17, 15, 14, 12, 11, 9, 8, 7, 6, 5, 3, 2, 0, 45, 57, 69, 72, 60, 48, 63, 37, 38, 39, 40, 41, 42, 43, 44, 46, 47, 49, 50, 51, 52, 53, 54, 55, 56, 58, 59, 61, 62, 64, 65, 66, 67, 68, 70, 71, 73], "split_count": [37, 37] }, "matrix_pins": { diff --git a/keyboards/star75/config.h b/keyboards/star75/config.h index 980009fe0b..e686b9c6bd 100644 --- a/keyboards/star75/config.h +++ b/keyboards/star75/config.h @@ -21,7 +21,6 @@ SPDX-License-Identifier: GPL-2.0-or-later */ #define RGBLIGHT_EFFECT_TWINKLE #define RGBLED_NUM 1 #define RGBLIGHT_LAYERS -#define RGBLIGHT_LED_MAP { 0, 1 } #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/taleguers/taleguers75/config.h b/keyboards/taleguers/taleguers75/config.h index b62209abaa..66d2753bf3 100644 --- a/keyboards/taleguers/taleguers75/config.h +++ b/keyboards/taleguers/taleguers75/config.h @@ -33,7 +33,6 @@ #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE #define RGBLED_NUM 6 -#define RGBLIGHT_LED_MAP { 5, 4, 3, 2, 1, 0 } #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/taleguers/taleguers75/info.json b/keyboards/taleguers/taleguers75/info.json index 229894fa9d..02feec7ab8 100644 --- a/keyboards/taleguers/taleguers75/info.json +++ b/keyboards/taleguers/taleguers75/info.json @@ -18,6 +18,9 @@ {"pin_a": "B6", "pin_b": "B5"} ] }, + "rgblight": { + "led_map": [5, 4, 3, 2, 1, 0] + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/toffee_studio/blueberry/config.h b/keyboards/toffee_studio/blueberry/config.h index 07a4bae2be..4b24094b22 100644 --- a/keyboards/toffee_studio/blueberry/config.h +++ b/keyboards/toffee_studio/blueberry/config.h @@ -17,15 +17,6 @@ #pragma once # define RGBLED_NUM 22 - -/* RGB LED logical order map */ -/* Top->Bottom, Right->Left */ -#define RGBLIGHT_LED_MAP { \ - 19, 18, 17, 16, 15, 14, 13, 12, 11, \ - 20, 10, \ - 21, 9, \ - 0, 1, 2, 3, 4, 5, 6, 7, 8 } - # define RGBLIGHT_EFFECT_BREATHING # define RGBLIGHT_EFFECT_RAINBOW_MOOD # define RGBLIGHT_EFFECT_RAINBOW_SWIRL diff --git a/keyboards/toffee_studio/blueberry/info.json b/keyboards/toffee_studio/blueberry/info.json index 6acd8f4a58..eb32a1209d 100644 --- a/keyboards/toffee_studio/blueberry/info.json +++ b/keyboards/toffee_studio/blueberry/info.json @@ -12,7 +12,8 @@ "pin": "D0" }, "rgblight": { - "max_brightness": 192 + "max_brightness": 192, + "led_map": [19, 18, 17, 16, 15, 14, 13, 12, 11, 20, 10, 21, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8] }, "matrix_pins": { "cols": ["B6", "D4", "D6", "D7", "B4", "B5", "C6", "C7"], diff --git a/keyboards/unison/v04/config.h b/keyboards/unison/v04/config.h index d80dc827f6..af4aaefea3 100644 --- a/keyboards/unison/v04/config.h +++ b/keyboards/unison/v04/config.h @@ -27,7 +27,6 @@ along with this program. If not, see . /* RGB Lighting */ #define RGBLED_NUM 7 // Layer Indicator(2) + Rotary Encoder(5) - #define RGBLIGHT_LED_MAP {1, 2, 0, 3, 4, 5, 6} // align LEDs from Left to Right #define RGBLIGHT_HUE_STEP 4 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/unison/v04/info.json b/keyboards/unison/v04/info.json index 481c07f7a9..b3c9a59392 100644 --- a/keyboards/unison/v04/info.json +++ b/keyboards/unison/v04/info.json @@ -12,6 +12,9 @@ "cols": ["B3", "E6", "F1", "F5", "F7", "B2", "F0", "F4", "F6", "C7"], "rows": ["B3", "E6", "F1", "F5", "F7", "B2", "F0", "F4", "F6", "C7"] }, + "rgblight": { + "led_map": [1, 2, 0, 3, 4, 5, 6] + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/yoichiro/lunakey_mini/config.h b/keyboards/yoichiro/lunakey_mini/config.h index 9c2fd0d8ef..5663505876 100644 --- a/keyboards/yoichiro/lunakey_mini/config.h +++ b/keyboards/yoichiro/lunakey_mini/config.h @@ -19,8 +19,6 @@ along with this program. If not, see . #define RGBLED_NUM 12 #define RGBLIGHT_SPLIT - #define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, \ - 11, 10, 9, 8, 7, 6 } #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/yoichiro/lunakey_mini/info.json b/keyboards/yoichiro/lunakey_mini/info.json index c255c431c2..59741d4aa0 100644 --- a/keyboards/yoichiro/lunakey_mini/info.json +++ b/keyboards/yoichiro/lunakey_mini/info.json @@ -17,6 +17,7 @@ "soft_serial_pin": "D2" }, "rgblight": { + "led_map": [0, 1, 2, 3, 4, 5, 11, 10, 9, 8, 7, 6], "split_count": [6, 6] }, "ws2812": { diff --git a/keyboards/yoichiro/lunakey_pico/config.h b/keyboards/yoichiro/lunakey_pico/config.h index cf819293be..a95edc0358 100644 --- a/keyboards/yoichiro/lunakey_pico/config.h +++ b/keyboards/yoichiro/lunakey_pico/config.h @@ -15,9 +15,6 @@ #define WS2812_PIO_USE_PIO1 -#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, \ - 11, 10, 9, 8, 7, 6 } - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/yoichiro/lunakey_pico/info.json b/keyboards/yoichiro/lunakey_pico/info.json index 2b477e726c..bf4b2a2510 100644 --- a/keyboards/yoichiro/lunakey_pico/info.json +++ b/keyboards/yoichiro/lunakey_pico/info.json @@ -26,6 +26,7 @@ }, "rgblight": { "led_count": 12, + "led_map": [0, 1, 2, 3, 4, 5, 11, 10, 9, 8, 7, 6], "sleep": true, "split": true, "split_count": [6, 6], diff --git a/keyboards/yushakobo/navpad/10/rev1/config.h b/keyboards/yushakobo/navpad/10/rev1/config.h deleted file mode 100644 index d4a4e48d77..0000000000 --- a/keyboards/yushakobo/navpad/10/rev1/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright 2021 yushakobo - -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 . -*/ - -#pragma once - -# define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, 6, 8, 7 } diff --git a/keyboards/yushakobo/navpad/10/rev1/info.json b/keyboards/yushakobo/navpad/10/rev1/info.json index bd20c0d0b4..a35dc4d5e9 100644 --- a/keyboards/yushakobo/navpad/10/rev1/info.json +++ b/keyboards/yushakobo/navpad/10/rev1/info.json @@ -2,6 +2,9 @@ "usb": { "device_version": "0.0.1" }, + "rgblight": { + "led_map": [0, 1, 2, 3, 4, 5, 6, 8, 7] + }, "matrix_pins": { "cols": ["F5", "F6", "B2", "B3", "B1", "F7"], "rows": ["D4", "C6", "D7", "E6", "B4", "F4"] diff --git a/keyboards/yushakobo/navpad/10_helix_r/config.h b/keyboards/yushakobo/navpad/10_helix_r/config.h index fd88d5eab6..19eabd8dcd 100644 --- a/keyboards/yushakobo/navpad/10_helix_r/config.h +++ b/keyboards/yushakobo/navpad/10_helix_r/config.h @@ -18,14 +18,6 @@ along with this program. If not, see . #pragma once #define EE_HANDS - -# define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, 6, 8, 7, \ - 9, 10, 11, 12, 13, 14, \ - 20, 19, 18, 17, 16, 15, \ - 21, 22, 23, 24, 25, 26, \ - 33, 32, 31, 30, 29, 28, 27, \ - 34, 35, 36, 37, 38, 39, 40 } - # define RGBLED_NUM 9+32 # define RGBLIGHT_HUE_STEP 8 # define RGBLIGHT_SAT_STEP 8 diff --git a/keyboards/yushakobo/navpad/10_helix_r/info.json b/keyboards/yushakobo/navpad/10_helix_r/info.json index 9c51e8ad74..2b14fccf58 100644 --- a/keyboards/yushakobo/navpad/10_helix_r/info.json +++ b/keyboards/yushakobo/navpad/10_helix_r/info.json @@ -39,6 +39,7 @@ }, "rgblight": { "max_brightness": 120, + "led_map": [0, 1, 2, 3, 4, 5, 6, 8, 7, 9, 10, 11, 12, 13, 14, 20, 19, 18, 17, 16, 15, 21, 22, 23, 24, 25, 26, 33, 32, 31, 30, 29, 28, 27, 34, 35, 36, 37, 38, 39, 40], "split_count": [9, 32] }, "processor": "atmega32u4", diff --git a/keyboards/yushakobo/quick17/config.h b/keyboards/yushakobo/quick17/config.h index 00018d319c..118a47eba6 100644 --- a/keyboards/yushakobo/quick17/config.h +++ b/keyboards/yushakobo/quick17/config.h @@ -42,11 +42,6 @@ along with this program. If not, see . #ifdef RGBLIGHT_ENABLE -# define RGBLIGHT_LED_MAP {\ - 6, 7, 12, 13, 14, 15,\ - 16, 17, 11, 10, 9, 8,\ - 0, 1, 2, 3, 4, 5\ - } # define RGBLIGHT_HUE_STEP 8 # define RGBLIGHT_SAT_STEP 8 # define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/yushakobo/quick17/info.json b/keyboards/yushakobo/quick17/info.json index 1889a00643..ce8c77933a 100644 --- a/keyboards/yushakobo/quick17/info.json +++ b/keyboards/yushakobo/quick17/info.json @@ -12,7 +12,8 @@ "driver": "WS2812" }, "rgblight": { - "max_brightness": 150 + "max_brightness": 150, + "led_map": [6, 7, 12, 13, 14, 15, 16, 17, 11, 10, 9, 8, 0, 1, 2, 3, 4, 5] }, "matrix_pins": { "cols": ["F5", "D4", "E6", "F7", "C6", "D7"], -- cgit v1.3.1 From d98b60c8f607c9d3d40b187ab9ea47e4fa6df2ef Mon Sep 17 00:00:00 2001 From: "jonylee@hfd" <108282809+jonylee1986@users.noreply.github.com> Date: Tue, 20 Jun 2023 10:31:46 +0800 Subject: Move kb83 keyboard (#20761) * move hfdkb/keyboard_sw/k83 --> inland/kb83 * move hfdkb/keyboard_sw/k83 --> inland/kb83 * Update data/mappings/keyboard_aliases.hjson * Update keyboard_aliases.hjson * fixed the Configurator layout data * fixed the Configurator layout data * Revert "Update keyboard_aliases.hjson" This reverts commit c085c547656d09a14b9b0fad6a00f9551106719f. * Revert "fixed the Configurator layout data" * Update keyboard_aliases.hjson * Update info.json --- data/mappings/keyboard_aliases.hjson | 3 + keyboards/hfdkb/keyboard_sw/k83/config.h | 85 --- keyboards/hfdkb/keyboard_sw/k83/halconf.h | 23 - keyboards/hfdkb/keyboard_sw/k83/info.json | 130 ----- keyboards/hfdkb/keyboard_sw/k83/k83.c | 604 --------------------- .../hfdkb/keyboard_sw/k83/keymaps/default/keymap.c | 73 --- .../hfdkb/keyboard_sw/k83/keymaps/via/keymap.c | 73 --- .../hfdkb/keyboard_sw/k83/keymaps/via/rules.mk | 2 - keyboards/hfdkb/keyboard_sw/k83/mcuconf.h | 24 - keyboards/hfdkb/keyboard_sw/k83/readme.md | 18 - keyboards/hfdkb/keyboard_sw/k83/rgb_matrix_kb.inc | 51 -- keyboards/hfdkb/keyboard_sw/k83/rules.mk | 19 - keyboards/inland/kb83/config.h | 85 +++ keyboards/inland/kb83/halconf.h | 23 + keyboards/inland/kb83/info.json | 130 +++++ keyboards/inland/kb83/kb83.c | 604 +++++++++++++++++++++ keyboards/inland/kb83/keymaps/default/keymap.c | 73 +++ keyboards/inland/kb83/keymaps/via/keymap.c | 73 +++ keyboards/inland/kb83/keymaps/via/rules.mk | 2 + keyboards/inland/kb83/mcuconf.h | 24 + keyboards/inland/kb83/readme.md | 19 + keyboards/inland/kb83/rgb_matrix_kb.inc | 51 ++ keyboards/inland/kb83/rules.mk | 19 + 23 files changed, 1106 insertions(+), 1102 deletions(-) delete mode 100644 keyboards/hfdkb/keyboard_sw/k83/config.h delete mode 100644 keyboards/hfdkb/keyboard_sw/k83/halconf.h delete mode 100644 keyboards/hfdkb/keyboard_sw/k83/info.json delete mode 100644 keyboards/hfdkb/keyboard_sw/k83/k83.c delete mode 100644 keyboards/hfdkb/keyboard_sw/k83/keymaps/default/keymap.c delete mode 100644 keyboards/hfdkb/keyboard_sw/k83/keymaps/via/keymap.c delete mode 100644 keyboards/hfdkb/keyboard_sw/k83/keymaps/via/rules.mk delete mode 100644 keyboards/hfdkb/keyboard_sw/k83/mcuconf.h delete mode 100644 keyboards/hfdkb/keyboard_sw/k83/readme.md delete mode 100644 keyboards/hfdkb/keyboard_sw/k83/rgb_matrix_kb.inc delete mode 100644 keyboards/hfdkb/keyboard_sw/k83/rules.mk create mode 100644 keyboards/inland/kb83/config.h create mode 100644 keyboards/inland/kb83/halconf.h create mode 100644 keyboards/inland/kb83/info.json create mode 100644 keyboards/inland/kb83/kb83.c create mode 100644 keyboards/inland/kb83/keymaps/default/keymap.c create mode 100644 keyboards/inland/kb83/keymaps/via/keymap.c create mode 100644 keyboards/inland/kb83/keymaps/via/rules.mk create mode 100644 keyboards/inland/kb83/mcuconf.h create mode 100644 keyboards/inland/kb83/readme.md create mode 100644 keyboards/inland/kb83/rgb_matrix_kb.inc create mode 100644 keyboards/inland/kb83/rules.mk (limited to 'data') diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index a656288a8f..6cf1e206e2 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -868,6 +868,9 @@ "hecomi/alpha": { "target": "takashiski/hecomi/alpha" }, + "hfdkb/keyboard_sw/k83":{ + "target": "inland/kb83" + }, "hid_liber": { "target": "bpiphany/hid_liber" }, diff --git a/keyboards/hfdkb/keyboard_sw/k83/config.h b/keyboards/hfdkb/keyboard_sw/k83/config.h deleted file mode 100644 index a4660c93be..0000000000 --- a/keyboards/hfdkb/keyboard_sw/k83/config.h +++ /dev/null @@ -1,85 +0,0 @@ -/* Copyright (C) 2022 jonylee@hfd - * - * 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 . - */ - -#pragma once - - -#define RGB_TRIGGER_ON_KEYDOWN - -/* encoder resolution */ -#define TAP_CODE_DELAY 15 - -/* DIP switch */ -#define DIP_SWITCH_PINS \ - { A9 } - -/* 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 - -/* SPI Config for spi flash*/ -#define SPI_DRIVER SPIDQ -#define SPI_SCK_PIN B3 -#define SPI_MOSI_PIN B5 -#define SPI_MISO_PIN B4 -#define SPI_MOSI_PAL_MODE 5 - -#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 -#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) - -/* I2C Config for LED Driver */ -#define DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 -#define I2C1_SDA_PIN B7 -#define I2C1_SCL_PIN B6 -#define I2C1_SCL_PAL_MODE 4 -#define I2C1_OPMODE OPMODE_I2C -#define I2C1_CLOCK_SPEED 400000 /* 400000 */ - -#define DRIVER_1_LED_TOTAL 61 -#define DRIVER_2_LED_TOTAL 21 -#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL + 10) - -#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended - -#define RGB_MATRIX_FRAMEBUFFER_EFFECTS -#define RGB_MATRIX_KEYPRESSES -#define RGB_MATRIX_KEYRELEASES - -// RGB Matrix Animation modes. Explicitly enabled -// For full list of effects, see: -// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects -#define ENABLE_RGB_MATRIX_BREATHING -#define ENABLE_RGB_MATRIX_CYCLE_ALL -#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT -#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN -#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON -#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN -#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL -#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL -#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL -#define ENABLE_RGB_MATRIX_DUAL_BEACON -#define ENABLE_RGB_MATRIX_RAINBOW_BEACON -#define ENABLE_RGB_MATRIX_RAINDROPS -#define ENABLE_RGB_MATRIX_TYPING_HEATMAP -// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -#define ENABLE_RGB_MATRIX_SOLID_REACTIVE -#define ENABLE_RGB_MATRIX_MULTISPLASH - -#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 /* The maximum brightness level */ diff --git a/keyboards/hfdkb/keyboard_sw/k83/halconf.h b/keyboards/hfdkb/keyboard_sw/k83/halconf.h deleted file mode 100644 index 2f64e65393..0000000000 --- a/keyboards/hfdkb/keyboard_sw/k83/halconf.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright (C) 2022 jonylee@hfd - * - * 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 . - */ -#pragma once - -#define HAL_USE_I2C TRUE -#define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD - -#include_next diff --git a/keyboards/hfdkb/keyboard_sw/k83/info.json b/keyboards/hfdkb/keyboard_sw/k83/info.json deleted file mode 100644 index b31fd86f1f..0000000000 --- a/keyboards/hfdkb/keyboard_sw/k83/info.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "keyboard_name": "KB83", - "manufacturer": "www.hfd.cn", - "maintainer": "hfd", - "usb": { - "vid": "0xFFFE", - "pid": "0x0007", - "device_version": "1.0.0", - "force_nkro": true - }, - "rgb_matrix": { - "driver": "IS31FL3733" - }, - "processor": "WB32FQ95", - "bootloader": "wb32-dfu", - "matrix_pins": { - "cols": ["C1", "C2", "C3", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "C4", "C5", "B0", "B1", "B2"], - "rows": ["B15", "C6", "C7", "C8", "C9", "A8"] - }, - "diode_direction": "ROW2COL", - "encoder": { - "rotary": [ - {"pin_a": "B14", "pin_b": "B13", "resolution": 4} - ] - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - - {"matrix": [0, 1], "x": 1.25, "y": 0}, - {"matrix": [0, 2], "x": 2.25, "y": 0}, - {"matrix": [0, 3], "x": 3.25, "y": 0}, - {"matrix": [0, 4], "x": 4.25, "y": 0}, - - {"matrix": [0, 5], "x": 5.5, "y": 0}, - {"matrix": [0, 6], "x": 6.5, "y": 0}, - {"matrix": [0, 7], "x": 7.5, "y": 0}, - {"matrix": [0, 8], "x": 8.5, "y": 0}, - - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - - {"matrix": [0, 13], "x": 14, "y": 0}, - {"matrix": [0, 15], "x": 15.25, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1.25}, - {"matrix": [1, 1], "x": 1, "y": 1.25}, - {"matrix": [1, 2], "x": 2, "y": 1.25}, - {"matrix": [1, 3], "x": 3, "y": 1.25}, - {"matrix": [1, 4], "x": 4, "y": 1.25}, - {"matrix": [1, 5], "x": 5, "y": 1.25}, - {"matrix": [1, 6], "x": 6, "y": 1.25}, - {"matrix": [1, 7], "x": 7, "y": 1.25}, - {"matrix": [1, 8], "x": 8, "y": 1.25}, - {"matrix": [1, 9], "x": 9, "y": 1.25}, - {"matrix": [1, 10], "x": 10, "y": 1.25}, - {"matrix": [1, 11], "x": 11, "y": 1.25}, - {"matrix": [1, 12], "x": 12, "y": 1.25}, - {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, - - {"matrix": [1, 15], "x": 15.25, "y": 1.25}, - - {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2.25}, - {"matrix": [2, 2], "x": 2.5, "y": 2.25}, - {"matrix": [2, 3], "x": 3.5, "y": 2.25}, - {"matrix": [2, 4], "x": 4.5, "y": 2.25}, - {"matrix": [2, 5], "x": 5.5, "y": 2.25}, - {"matrix": [2, 6], "x": 6.5, "y": 2.25}, - {"matrix": [2, 7], "x": 7.5, "y": 2.25}, - {"matrix": [2, 8], "x": 8.5, "y": 2.25}, - {"matrix": [2, 9], "x": 9.5, "y": 2.25}, - {"matrix": [2, 10], "x": 10.5, "y": 2.25}, - {"matrix": [2, 11], "x": 11.5, "y": 2.25}, - {"matrix": [2, 12], "x": 12.5, "y": 2.25}, - {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, - - {"matrix": [2, 15], "x": 15.25, "y": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3.25}, - {"matrix": [3, 2], "x": 2.75, "y": 3.25}, - {"matrix": [3, 3], "x": 3.75, "y": 3.25}, - {"matrix": [3, 4], "x": 4.75, "y": 3.25}, - {"matrix": [3, 5], "x": 5.75, "y": 3.25}, - {"matrix": [3, 6], "x": 6.75, "y": 3.25}, - {"matrix": [3, 7], "x": 7.75, "y": 3.25}, - {"matrix": [3, 8], "x": 8.75, "y": 3.25}, - {"matrix": [3, 9], "x": 9.75, "y": 3.25}, - {"matrix": [3, 10], "x": 10.75, "y": 3.25}, - {"matrix": [3, 11], "x": 11.75, "y": 3.25}, - {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, - - {"matrix": [3, 15], "x": 15.25, "y": 3.25}, - - {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, - {"matrix": [4, 1], "x": 2.25, "y": 4.25}, - {"matrix": [4, 2], "x": 3.25, "y": 4.25}, - {"matrix": [4, 3], "x": 4.25, "y": 4.25}, - {"matrix": [4, 4], "x": 5.25, "y": 4.25}, - {"matrix": [4, 5], "x": 6.25, "y": 4.25}, - {"matrix": [4, 6], "x": 7.25, "y": 4.25}, - {"matrix": [4, 7], "x": 8.25, "y": 4.25}, - {"matrix": [4, 8], "x": 9.25, "y": 4.25}, - {"matrix": [4, 9], "x": 10.25, "y": 4.25}, - {"matrix": [4, 10], "x": 11.25, "y": 4.25}, - {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 1.75}, - - {"matrix": [4, 14], "x": 14.125, "y": 4.375}, - - {"matrix": [4, 15], "x": 15.25, "y": 4.25}, - - {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, - {"matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25}, - {"matrix": [5, 9], "x": 10, "y": 5.25}, - {"matrix": [5, 10], "x": 11, "y": 5.25}, - {"matrix": [5, 11], "x": 12, "y": 5.25}, - - {"matrix": [5, 13], "x": 13.125, "y": 5.375}, - {"matrix": [5, 14], "x": 14.125, "y": 5.375}, - {"matrix": [5, 15], "x": 15.125, "y": 5.375} - ] - } - } -} diff --git a/keyboards/hfdkb/keyboard_sw/k83/k83.c b/keyboards/hfdkb/keyboard_sw/k83/k83.c deleted file mode 100644 index 86b52cfe92..0000000000 --- a/keyboards/hfdkb/keyboard_sw/k83/k83.c +++ /dev/null @@ -1,604 +0,0 @@ -/* Copyright (C) 2022 jonylee@hfd - * - * 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 . - */ - -#include "quantum.h" - -// clang-format off -#ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 manual for these locations - * driver - * | R location - * | | G location - * | | | B location - * | | | | */ - {1, A_1, B_1, C_1}, - {1, A_2, B_2, C_2}, - {1, A_3, B_3, C_3}, - {1, A_4, B_4, C_4}, - {1, A_5, B_5, C_5}, - {1, A_6, B_6, C_6}, - {1, A_7, B_7, C_7}, - {1, A_8, B_8, C_8}, - {1, A_9, B_9, C_9}, - {1, A_10, B_10, C_10}, - {1, A_11, B_11, C_11}, - {1, A_12, B_12, C_12}, - {1, A_13, B_13, C_13}, - {1, A_14, B_14, C_14}, - - {0, A_1, B_1, C_1}, - {0, A_2, B_2, C_2}, - {0, A_3, B_3, C_3}, - {0, A_4, B_4, C_4}, - {0, A_5, B_5, C_5}, - {0, A_6, B_6, C_6}, - {0, A_7, B_7, C_7}, - {0, A_8, B_8, C_8}, - {0, A_9, B_9, C_9}, - {0, A_10, B_10, C_10}, - {0, A_11, B_11, C_11}, - {0, A_12, B_12, C_12}, - {0, A_13, B_13, C_13}, - {0, A_14, B_14, C_14}, - {1, D_1, E_1, F_1}, - - {0, D_1, E_1, F_1}, - {0, D_2, E_2, F_2}, - {0, D_3, E_3, F_3}, - {0, D_4, E_4, F_4}, - {0, D_5, E_5, F_5}, - {0, D_6, E_6, F_6}, - {0, D_7, E_7, F_7}, - {0, D_8, E_8, F_8}, - {0, D_9, E_9, F_9}, - {0, D_10, E_10, F_10}, - {0, D_11, E_11, F_11}, - {0, D_12, E_12, F_12}, - {0, D_13, E_13, F_13}, - {0, D_14, E_14, F_14}, - {1, D_2, E_2, F_2}, - - {0, G_1, H_1, I_1}, - {0, G_2, H_2, I_2}, - {0, G_3, H_3, I_3}, - {0, G_4, H_4, I_4}, - {0, G_5, H_5, I_5}, - {0, G_6, H_6, I_6}, - {0, G_7, H_7, I_7}, - {0, G_8, H_8, I_8}, - {0, G_9, H_9, I_9}, - {0, G_10, H_10, I_10}, - {0, G_11, H_11, I_11}, - {0, G_12, H_12, I_12}, - {0, G_13, H_13, I_13}, - {1, D_3, E_3, F_3}, - - {0, J_1, K_1, L_1}, - {0, J_2, K_2, L_2}, - {0, J_3, K_3, L_3}, - {0, J_4, K_4, L_4}, - {0, J_5, K_5, L_5}, - {0, J_6, K_6, L_6}, - {0, J_7, K_7, L_7}, - {0, J_8, K_8, L_8}, - {0, J_9, K_9, L_9}, - {0, J_10, K_10, L_10}, - {0, J_11, K_11, L_11}, - {0, J_12, K_12, L_12}, - {1, D_7, E_7, F_7}, - {1, D_4, E_4, F_4}, - - {0, J_13, K_13, L_13}, - {0, J_14, K_14, L_14}, - {0, J_15, K_15, L_15}, - {0, J_16, K_16, L_16}, - - {0, G_14, H_14, I_14}, - {0, G_15, H_15, I_15}, - {0, G_16, H_16, I_16}, - - {0, D_15, E_15, F_15}, - {1, D_6, E_6, F_6}, - {1, D_5, E_5, F_5}, - - {1, G_1, H_1, I_1}, - {1, G_2, H_2, I_2}, - {1, G_3, H_3, I_3}, - {1, G_4, H_4, I_4}, - {1, G_5, H_5, I_5}, - - {1, J_1, K_1, L_1}, - {1, J_2, K_2, L_2}, - {1, J_3, K_3, L_3}, - {1, J_4, K_4, L_4}, - {1, J_5, K_5, L_5}, -}; - -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, NO_LED, NO_LED}, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, NO_LED, 28}, - { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43}, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, NO_LED, 57}, - { 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, NO_LED, NO_LED, 69, 70, 71}, - { 72, 73, 74, NO_LED, NO_LED, 75, NO_LED, NO_LED, NO_LED, 76, 77, 78, NO_LED, 79, 80, 81} - }, - { - { 0, 0}, // 0 - { 14, 0}, // 1 - { 29, 0}, // 2 - { 44, 0}, // 3 - { 59, 0}, // 4 - { 74, 0}, // 5 - { 89, 0}, // 6 - {104, 0}, // 7 - {119, 0}, // 8 - {134, 0}, // 9 - {149, 0}, // 10 - {164, 0}, // 11 - {179, 0}, // 12 - {194, 0}, // 13 - - { 0, 12}, // 14 - { 14, 12}, // 15 - { 28, 12}, // 16 - { 42, 12}, // 17 - { 56, 12}, // 18 - { 70, 12}, // 19 - { 84, 12}, // 20 - { 98, 12}, // 21 - {112, 12}, // 22 - {126, 12}, // 23 - {140, 12}, // 24 - {154, 12}, // 25 - {168, 12}, // 26 - {182, 12}, // 27 - {224, 12}, // 28 - - { 0, 25}, // 29 - { 14, 25}, // 30 - { 28, 25}, // 31 - { 42, 25}, // 32 - { 56, 25}, // 33 - { 70, 25}, // 34 - { 84, 25}, // 35 - { 98, 25}, // 36 - {112, 25}, // 37 - {126, 25}, // 38 - {140, 25}, // 39 - {154, 25}, // 40 - {168, 25}, // 41 - {182, 25}, // 42 - {224, 25}, // 43 - - { 0, 38}, // 44 - { 28, 38}, // 45 - { 42, 38}, // 46 - { 56, 38}, // 47 - { 70, 38}, // 48 - { 84, 38}, // 49 - { 98, 38}, // 50 - {112, 38}, // 51 - {126, 38}, // 52 - {140, 38}, // 53 - {154, 38}, // 54 - {168, 38}, // 55 - {182, 38}, // 56 - {224, 38}, // 57 - - { 0, 51}, // 58 - { 18, 51}, // 59 - { 37, 51}, // 60 - { 56, 51}, // 61 - { 74, 51}, // 62 - { 93, 51}, // 63 - {112, 51}, // 64 - {130, 51}, // 65 - {149, 51}, // 66 - {168, 51}, // 67 - {186, 51}, // 68 - {200, 51}, // 69 - {214, 51}, // 70 - {224, 51}, // 71 - - { 0, 64}, // 72 - { 18, 64}, // 73 - { 37, 64}, // 74 - { 92, 64}, // 75 - {140, 64}, // 76 - {154, 64}, // 77 - {168, 64}, // 78 - {196, 64}, // 80 - {210, 64}, // 81 - {224, 64}, // 82 - - {0, 0}, // 68 LED 1 - {0, 16}, // 69 LED 2 - {0, 32}, // 70 LED 3 - {0, 48}, // 71 LED 4 - {0, 64}, // 72 LED 5 - - {224, 0 }, // 78 LED 12 - {224, 16}, // 79 LED 13 - {224, 32}, // 80 LED 14 - {224, 48}, // 81 LED 15 - {224, 64}, // 82 LED 16 - }, - { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, - } -}; - -bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { - if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { - return false; - } - // caps lock red - if (host_keyboard_led_state().caps_lock) { - RGB_MATRIX_INDICATOR_SET_COLOR(44, 255, 0, 0); - } else { - if (!rgb_matrix_get_flags()) { - RGB_MATRIX_INDICATOR_SET_COLOR(44, 0, 0, 0); - } - } - // GUI lock red - if (keymap_config.no_gui) { - RGB_MATRIX_INDICATOR_SET_COLOR(73, 255, 0, 0); - } else { - if (!rgb_matrix_get_flags()) { - RGB_MATRIX_INDICATOR_SET_COLOR(73, 0, 0, 0); - } - } - return true; -} - -#endif - -enum __layers { - WIN_B, - WIN_FN, - MAC_B, - MAC_FN -}; - -enum colors { - WHITE, - RED, - GREEN, - BLUE -}; -enum colors led_color_status = WHITE; - -// clang-format on -static bool fn_make_flag = false; -static bool Lkey_flag = false; -static bool reset_glint_flag = false; -static bool while_test_flag = false; -static bool alarm_flag = false; -static uint16_t current_time = 0; -static uint8_t glint_cnt = 0; -static uint16_t scancode = 0; -static uint8_t alarm_cnt = 0; -static uint8_t RGB_HSV_level; - -HSV hsv; - -void led_test(uint8_t color); -void clear_eeprom(void); -void rgb_hsv_updata_user(void); - -bool dip_switch_update_kb(uint8_t index, bool active) { - if (!dip_switch_update_user(index, active)) { - return false; - } - if (index == 0) { - default_layer_set(1UL << (active ? 2 : 0)); - } - if(active){ - keymap_config.no_gui = 0; - eeconfig_update_keymap(keymap_config.raw); - } - return true; -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { - case MO(WIN_FN): - case MO(MAC_FN): - fn_make_flag = record->event.pressed; - return true; - case KC_ESC: - if (fn_make_flag && record->event.pressed) { - Lkey_flag = true; - current_time = timer_read(); - scancode = KC_ESC; - return false; - } else { - Lkey_flag = 0; - } - return true; - case KC_END: - if (fn_make_flag && record->event.pressed) { - if (while_test_flag) { - while_test_flag = false; - rgb_matrix_init(); - } else { - Lkey_flag = true; - current_time = timer_read(); - scancode = KC_END; - } - return false; - } else { - Lkey_flag = 0; - } - return true; - case KC_LEFT: - if (while_test_flag == true) { - if (record->event.pressed) { - if (glint_cnt == 0) - glint_cnt = 3; - else - glint_cnt--; - if ((glint_cnt % 4) == 0) { - rgb_matrix_sethsv_noeeprom(HSV_WHITE); - } else if ((glint_cnt % 4) == 1) { - rgb_matrix_sethsv_noeeprom(HSV_RED); - } else if ((glint_cnt % 4) == 2) { - rgb_matrix_sethsv_noeeprom(HSV_GREEN); - } else if ((glint_cnt % 4) == 3) { - rgb_matrix_sethsv_noeeprom(HSV_BLUE); - } - } - return false; - } - return true; - case KC_RGHT: - if (while_test_flag == true) { - if (record->event.pressed) { - glint_cnt++; - if (glint_cnt >= 4) glint_cnt = 0; - - if ((glint_cnt % 4) == 0) { - rgb_matrix_sethsv_noeeprom(HSV_WHITE); - } else if ((glint_cnt % 4) == 1) { - rgb_matrix_sethsv_noeeprom(HSV_RED); - } else if ((glint_cnt % 4) == 2) { - rgb_matrix_sethsv_noeeprom(HSV_GREEN); - } else if ((glint_cnt % 4) == 3) { - rgb_matrix_sethsv_noeeprom(HSV_BLUE); - } - } - return false; - } - return true; - case DF(WIN_B): - if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { - alarm_flag = true; - rgb_matrix_toggle_noeeprom(); - current_time = timer_read(); - set_single_persistent_default_layer(WIN_B); - return false; - } - return true; - case DF(MAC_B): - if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { - alarm_flag = true; - rgb_matrix_toggle_noeeprom(); - current_time = timer_read(); - set_single_persistent_default_layer(MAC_B); - return false; - } - return true; - - case RGB_VAI: - if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { - if ((RGB_HSV_level = (uint8_t)rgb_matrix_get_val() / (RGB_MATRIX_MAXIMUM_BRIGHTNESS / 4)) < 4) { - RGB_HSV_level++; - rgb_matrix_config.hsv.v = (uint8_t)(RGB_MATRIX_MAXIMUM_BRIGHTNESS / 4) * RGB_HSV_level; - } - rgb_hsv_updata_user(); - } - return false; - case RGB_VAD: - if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { - if ((RGB_HSV_level = (uint8_t)rgb_matrix_get_val() / (RGB_MATRIX_MAXIMUM_BRIGHTNESS / 4)) > 0) { - RGB_HSV_level--; - rgb_matrix_config.hsv.v = (uint8_t)(RGB_MATRIX_MAXIMUM_BRIGHTNESS / 4) * RGB_HSV_level; - } - rgb_hsv_updata_user(); - } - return false; - case RGB_SAI: - if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { - if ((RGB_HSV_level = (uint8_t)rgb_matrix_get_sat() / (UINT8_MAX / 4)) < 4) { - RGB_HSV_level++; - rgb_matrix_config.hsv.s = (uint8_t)(UINT8_MAX / 4) * RGB_HSV_level; - } - rgb_hsv_updata_user(); - } - return false; - case RGB_SAD: - if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { - if ((RGB_HSV_level = (uint8_t)rgb_matrix_get_sat() / (UINT8_MAX / 4)) > 0) { - RGB_HSV_level--; - rgb_matrix_config.hsv.s = (uint8_t)(UINT8_MAX / 4) * RGB_HSV_level; - } - rgb_hsv_updata_user(); - } - return false; - case RGB_HUI: - if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { - if ((RGB_HSV_level = (uint8_t)rgb_matrix_get_hue() / (UINT8_MAX / 6)) < 6) { - RGB_HSV_level++; - rgb_matrix_config.hsv.h = (uint8_t)(UINT8_MAX / 6) * RGB_HSV_level; - } - rgb_hsv_updata_user(); - } - return false; - case RGB_HUD: - if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { - if ((RGB_HSV_level = (uint8_t)rgb_matrix_get_hue() / (UINT8_MAX / 6)) > 0) { - RGB_HSV_level--; - rgb_matrix_config.hsv.h = (uint8_t)(UINT8_MAX / 6) * RGB_HSV_level; - } - rgb_hsv_updata_user(); - } - return false; - case RGB_SPI: - if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { - if ((RGB_HSV_level = (uint8_t)rgb_matrix_get_speed() / (UINT8_MAX / 4)) < 4) { - RGB_HSV_level++; - rgb_matrix_set_speed((uint8_t)(UINT8_MAX / 4) * RGB_HSV_level); - } - } - return false; - case RGB_SPD: - if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { - if ((RGB_HSV_level = (uint8_t)rgb_matrix_get_speed() / (UINT8_MAX / 4)) > 0) { - RGB_HSV_level--; - rgb_matrix_set_speed((uint8_t)(UINT8_MAX / 4) * RGB_HSV_level); - } - } - return false; - case RGB_TOG: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; - - default: - return process_record_user(keycode, record); - } -} - -void housekeeping_task_kb(void) { - if (Lkey_flag) { - if (scancode == KC_ESC) { - if (timer_elapsed(current_time) >= 3000) { - Lkey_flag = false; - clear_eeprom(); - - current_time = timer_read(); - reset_glint_flag = true; - glint_cnt = 0; - rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); - rgb_matrix_sethsv_noeeprom(HSV_OFF); - } - } else if (scancode == KC_END) { - if (timer_elapsed(current_time) >= 3000) { - Lkey_flag = false; - clear_eeprom(); - - while_test_flag = true; - glint_cnt = 0; - rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); - rgb_matrix_sethsv_noeeprom(HSV_WHITE); - } - } - } else if (reset_glint_flag) { - if ((timer_elapsed(current_time)) >= 300) { - current_time = timer_read(); - if (((glint_cnt++) & 0x01) == 0) { - rgb_matrix_sethsv_noeeprom(HSV_RED); - } else { - rgb_matrix_sethsv_noeeprom(HSV_OFF); - } - if (glint_cnt >= 7) { - glint_cnt = 0; - reset_glint_flag = false; - rgb_matrix_init(); - } - } - } else if (alarm_cnt != 0) { - alarm_cnt--; - if (alarm_cnt == 0) { - alarm_flag = true; - rgb_matrix_toggle_noeeprom(); - current_time = timer_read(); - } - } else if (alarm_flag) { - if ((timer_elapsed(current_time)) >= 200) { - rgb_matrix_toggle_noeeprom(); - alarm_flag = 0; - } - } -} - -void led_test(uint8_t color) { - rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); - - switch (color) { - case WHITE: - rgb_matrix_sethsv_noeeprom(HSV_WHITE); - break; - - case RED: - rgb_matrix_sethsv_noeeprom(HSV_RED); - break; - - case GREEN: - rgb_matrix_sethsv_noeeprom(HSV_GREEN); - break; - - case BLUE: - rgb_matrix_sethsv_noeeprom(HSV_BLUE); - break; - } -} - -void clear_eeprom(void) { - layer_state_t default_layer_temp = default_layer_state; - eeconfig_init(); - default_layer_set(default_layer_temp); - -#ifdef VIA_ENABLE - // This resets the layout options - via_set_layout_options(VIA_EEPROM_LAYOUT_OPTIONS_DEFAULT); - // This resets the keymaps in EEPROM to what is in flash. - dynamic_keymap_reset(); - // This resets the macros in EEPROM to nothing. - dynamic_keymap_macro_reset(); -#endif - - rgb_matrix_enable_noeeprom(); -} - -void rgb_hsv_updata_user(void) { - rgb_matrix_sethsv(rgb_matrix_config.hsv.h, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v); -} diff --git a/keyboards/hfdkb/keyboard_sw/k83/keymaps/default/keymap.c b/keyboards/hfdkb/keyboard_sw/k83/keymaps/default/keymap.c deleted file mode 100644 index 712383d48d..0000000000 --- a/keyboards/hfdkb/keyboard_sw/k83/keymaps/default/keymap.c +++ /dev/null @@ -1,73 +0,0 @@ -/* Copyright (C) 2022 jonylee@hfd - * - * 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 . - */ - -#include QMK_KEYBOARD_H -// clang-format off -enum __layers { - WIN_B, - WIN_FN, - MAC_B, - MAC_FN -}; - -#define KC_TASK LGUI(KC_TAB) -#define KC_FLXP LGUI(KC_E) -#define KC_SIRI LALT(KC_SPC) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [WIN_B] = LAYOUT( /* Base */ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_MUTE, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - - [WIN_FN] = LAYOUT( /* FN */ - _______, KC_BRID, KC_BRIU, KC_MAIL, KC_WSCH, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, - _______, GU_TOGG, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI), - - [MAC_B] = LAYOUT( /* Base */ - KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_SIRI, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - - [MAC_FN] = LAYOUT( /* FN */ - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, - _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, _______, - _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI) -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [WIN_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, - [WIN_FN] = { ENCODER_CCW_CW(RGB_SAI, RGB_SAD) }, - [MAC_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, - [MAC_FN] = { ENCODER_CCW_CW(RGB_SAI, RGB_SAD) }, -}; -#endif - diff --git a/keyboards/hfdkb/keyboard_sw/k83/keymaps/via/keymap.c b/keyboards/hfdkb/keyboard_sw/k83/keymaps/via/keymap.c deleted file mode 100644 index 712383d48d..0000000000 --- a/keyboards/hfdkb/keyboard_sw/k83/keymaps/via/keymap.c +++ /dev/null @@ -1,73 +0,0 @@ -/* Copyright (C) 2022 jonylee@hfd - * - * 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 . - */ - -#include QMK_KEYBOARD_H -// clang-format off -enum __layers { - WIN_B, - WIN_FN, - MAC_B, - MAC_FN -}; - -#define KC_TASK LGUI(KC_TAB) -#define KC_FLXP LGUI(KC_E) -#define KC_SIRI LALT(KC_SPC) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [WIN_B] = LAYOUT( /* Base */ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_MUTE, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - - [WIN_FN] = LAYOUT( /* FN */ - _______, KC_BRID, KC_BRIU, KC_MAIL, KC_WSCH, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, - _______, GU_TOGG, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI), - - [MAC_B] = LAYOUT( /* Base */ - KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_SIRI, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - - [MAC_FN] = LAYOUT( /* FN */ - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, - _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, _______, - _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI) -}; - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [WIN_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, - [WIN_FN] = { ENCODER_CCW_CW(RGB_SAI, RGB_SAD) }, - [MAC_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, - [MAC_FN] = { ENCODER_CCW_CW(RGB_SAI, RGB_SAD) }, -}; -#endif - diff --git a/keyboards/hfdkb/keyboard_sw/k83/keymaps/via/rules.mk b/keyboards/hfdkb/keyboard_sw/k83/keymaps/via/rules.mk deleted file mode 100644 index 4253f570f0..0000000000 --- a/keyboards/hfdkb/keyboard_sw/k83/keymaps/via/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -VIA_ENABLE = yes -ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/hfdkb/keyboard_sw/k83/mcuconf.h b/keyboards/hfdkb/keyboard_sw/k83/mcuconf.h deleted file mode 100644 index 0d16f4f04e..0000000000 --- a/keyboards/hfdkb/keyboard_sw/k83/mcuconf.h +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright (C) 2022 jonylee@hfd - * - * 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 . - */ -#pragma once - -#include_next - -#undef WB32_SPI_USE_QSPI -#define WB32_SPI_USE_QSPI TRUE - -#undef WB32_I2C_USE_I2C1 -#define WB32_I2C_USE_I2C1 TRUE diff --git a/keyboards/hfdkb/keyboard_sw/k83/readme.md b/keyboards/hfdkb/keyboard_sw/k83/readme.md deleted file mode 100644 index 871e9b8936..0000000000 --- a/keyboards/hfdkb/keyboard_sw/k83/readme.md +++ /dev/null @@ -1,18 +0,0 @@ -# k83 - -A customizable 75% encoder keyboard. - -* Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986) -* Hardware Supported: k83 - -Make example for this keyboard (after setting up your build environment): - - make hfdkb/keyboard_sw/k83:default - -Flashing example for this keyboard: - - make hfdkb/keyboard_sw/k83:default:flash - -**Reset Key**: Hold down the key located at *K01*, which programmed as *Esc* while plugging in the 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). diff --git a/keyboards/hfdkb/keyboard_sw/k83/rgb_matrix_kb.inc b/keyboards/hfdkb/keyboard_sw/k83/rgb_matrix_kb.inc deleted file mode 100644 index 56e2bd31cb..0000000000 --- a/keyboards/hfdkb/keyboard_sw/k83/rgb_matrix_kb.inc +++ /dev/null @@ -1,51 +0,0 @@ -// !!! DO NOT ADD #pragma once !!! // - -// Step 1. -// Declare custom effects using the RGB_MATRIX_EFFECT macro -// (note the lack of semicolon after the macro!) - -RGB_MATRIX_EFFECT(turn_off_rgb) -RGB_MATRIX_EFFECT(kb_reset_rgb) - -// Step 2. -// Define effects inside the `RGB_MATRIX_CUSTOM_EFFECT_IMPLS` ifdef block - -#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS - -// e.g: A simple effect, self-contained within a single method -static bool turn_off_rgb(effect_params_t *params) { - RGB_MATRIX_USE_LIMITS(led_min, led_max); - for (uint8_t i = led_min; i < led_max; i++) { - rgb_matrix_set_color(i, 0x00, 0x00, 0x00); - } - return rgb_matrix_check_finished_leds(led_max); -} - -// e.g: A more complex effect, relying on external methods and state, with -// dedicated init and run methods -static uint8_t some_global_state; -static void kb_reset_rgb_init(effect_params_t* params) { - some_global_state = 0; -} -static bool kb_reset_rgb_run(effect_params_t* params) { - RGB_MATRIX_USE_LIMITS(led_min, led_max); - some_global_state++; - if(some_global_state&0x01){ - for (uint8_t i = led_min; i < led_max; i++) - rgb_matrix_set_color(i, 0, 0, 0); - } - else{ - for (uint8_t i = led_min; i < led_max; i++) - rgb_matrix_set_color(i, 0xc0, 0xc0, 0xc0); - } - if(some_global_state>=7) - rgb_matrix_init(); - return rgb_matrix_check_finished_leds(led_max); -} - -static bool kb_reset_rgb(effect_params_t* params) { - if (params->init) kb_reset_rgb_init(params); - return kb_reset_rgb_run(params); -} - -#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS diff --git a/keyboards/hfdkb/keyboard_sw/k83/rules.mk b/keyboards/hfdkb/keyboard_sw/k83/rules.mk deleted file mode 100644 index 756d0c0719..0000000000 --- a/keyboards/hfdkb/keyboard_sw/k83/rules.mk +++ /dev/null @@ -1,19 +0,0 @@ -# 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 -KEYBOARD_SHARED_EP = no -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -DIP_SWITCH_ENABLE = yes # DPI Switch -ENCODER_ENABLE = yes -RGB_MATRIX_ENABLE = yes -EEPROM_DRIVER = wear_leveling -WEAR_LEVELING_DRIVER = spi_flash -#RGB_MATRIX_CUSTOM_USER = yes #Add turnoff LED diff --git a/keyboards/inland/kb83/config.h b/keyboards/inland/kb83/config.h new file mode 100644 index 0000000000..a4660c93be --- /dev/null +++ b/keyboards/inland/kb83/config.h @@ -0,0 +1,85 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * 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 . + */ + +#pragma once + + +#define RGB_TRIGGER_ON_KEYDOWN + +/* encoder resolution */ +#define TAP_CODE_DELAY 15 + +/* DIP switch */ +#define DIP_SWITCH_PINS \ + { A9 } + +/* 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 + +/* SPI Config for spi flash*/ +#define SPI_DRIVER SPIDQ +#define SPI_SCK_PIN B3 +#define SPI_MOSI_PIN B5 +#define SPI_MISO_PIN B4 +#define SPI_MOSI_PAL_MODE 5 + +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 +#define WEAR_LEVELING_BACKING_SIZE (8 * 1024) + +/* I2C Config for LED Driver */ +#define DRIVER_COUNT 2 +#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_2 0b1110111 +#define I2C1_SDA_PIN B7 +#define I2C1_SCL_PIN B6 +#define I2C1_SCL_PAL_MODE 4 +#define I2C1_OPMODE OPMODE_I2C +#define I2C1_CLOCK_SPEED 400000 /* 400000 */ + +#define DRIVER_1_LED_TOTAL 61 +#define DRIVER_2_LED_TOTAL 21 +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL + 10) + +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended + +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_KEYRELEASES + +// RGB Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +#define ENABLE_RGB_MATRIX_BREATHING +#define ENABLE_RGB_MATRIX_CYCLE_ALL +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +#define ENABLE_RGB_MATRIX_DUAL_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_BEACON +#define ENABLE_RGB_MATRIX_RAINDROPS +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE +#define ENABLE_RGB_MATRIX_MULTISPLASH + +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 /* The maximum brightness level */ diff --git a/keyboards/inland/kb83/halconf.h b/keyboards/inland/kb83/halconf.h new file mode 100644 index 0000000000..2f64e65393 --- /dev/null +++ b/keyboards/inland/kb83/halconf.h @@ -0,0 +1,23 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * 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 . + */ +#pragma once + +#define HAL_USE_I2C TRUE +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next diff --git a/keyboards/inland/kb83/info.json b/keyboards/inland/kb83/info.json new file mode 100644 index 0000000000..b31fd86f1f --- /dev/null +++ b/keyboards/inland/kb83/info.json @@ -0,0 +1,130 @@ +{ + "keyboard_name": "KB83", + "manufacturer": "www.hfd.cn", + "maintainer": "hfd", + "usb": { + "vid": "0xFFFE", + "pid": "0x0007", + "device_version": "1.0.0", + "force_nkro": true + }, + "rgb_matrix": { + "driver": "IS31FL3733" + }, + "processor": "WB32FQ95", + "bootloader": "wb32-dfu", + "matrix_pins": { + "cols": ["C1", "C2", "C3", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "C4", "C5", "B0", "B1", "B2"], + "rows": ["B15", "C6", "C7", "C8", "C9", "A8"] + }, + "diode_direction": "ROW2COL", + "encoder": { + "rotary": [ + {"pin_a": "B14", "pin_b": "B13", "resolution": 4} + ] + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"matrix": [2, 15], "x": 15.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [3, 15], "x": 15.25, "y": 3.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 1], "x": 2.25, "y": 4.25}, + {"matrix": [4, 2], "x": 3.25, "y": 4.25}, + {"matrix": [4, 3], "x": 4.25, "y": 4.25}, + {"matrix": [4, 4], "x": 5.25, "y": 4.25}, + {"matrix": [4, 5], "x": 6.25, "y": 4.25}, + {"matrix": [4, 6], "x": 7.25, "y": 4.25}, + {"matrix": [4, 7], "x": 8.25, "y": 4.25}, + {"matrix": [4, 8], "x": 9.25, "y": 4.25}, + {"matrix": [4, 9], "x": 10.25, "y": 4.25}, + {"matrix": [4, 10], "x": 11.25, "y": 4.25}, + {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 1.75}, + + {"matrix": [4, 14], "x": 14.125, "y": 4.375}, + + {"matrix": [4, 15], "x": 15.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5.25}, + {"matrix": [5, 10], "x": 11, "y": 5.25}, + {"matrix": [5, 11], "x": 12, "y": 5.25}, + + {"matrix": [5, 13], "x": 13.125, "y": 5.375}, + {"matrix": [5, 14], "x": 14.125, "y": 5.375}, + {"matrix": [5, 15], "x": 15.125, "y": 5.375} + ] + } + } +} diff --git a/keyboards/inland/kb83/kb83.c b/keyboards/inland/kb83/kb83.c new file mode 100644 index 0000000000..86b52cfe92 --- /dev/null +++ b/keyboards/inland/kb83/kb83.c @@ -0,0 +1,604 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * 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 . + */ + +#include "quantum.h" + +// clang-format off +#ifdef RGB_MATRIX_ENABLE +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {1, A_1, B_1, C_1}, + {1, A_2, B_2, C_2}, + {1, A_3, B_3, C_3}, + {1, A_4, B_4, C_4}, + {1, A_5, B_5, C_5}, + {1, A_6, B_6, C_6}, + {1, A_7, B_7, C_7}, + {1, A_8, B_8, C_8}, + {1, A_9, B_9, C_9}, + {1, A_10, B_10, C_10}, + {1, A_11, B_11, C_11}, + {1, A_12, B_12, C_12}, + {1, A_13, B_13, C_13}, + {1, A_14, B_14, C_14}, + + {0, A_1, B_1, C_1}, + {0, A_2, B_2, C_2}, + {0, A_3, B_3, C_3}, + {0, A_4, B_4, C_4}, + {0, A_5, B_5, C_5}, + {0, A_6, B_6, C_6}, + {0, A_7, B_7, C_7}, + {0, A_8, B_8, C_8}, + {0, A_9, B_9, C_9}, + {0, A_10, B_10, C_10}, + {0, A_11, B_11, C_11}, + {0, A_12, B_12, C_12}, + {0, A_13, B_13, C_13}, + {0, A_14, B_14, C_14}, + {1, D_1, E_1, F_1}, + + {0, D_1, E_1, F_1}, + {0, D_2, E_2, F_2}, + {0, D_3, E_3, F_3}, + {0, D_4, E_4, F_4}, + {0, D_5, E_5, F_5}, + {0, D_6, E_6, F_6}, + {0, D_7, E_7, F_7}, + {0, D_8, E_8, F_8}, + {0, D_9, E_9, F_9}, + {0, D_10, E_10, F_10}, + {0, D_11, E_11, F_11}, + {0, D_12, E_12, F_12}, + {0, D_13, E_13, F_13}, + {0, D_14, E_14, F_14}, + {1, D_2, E_2, F_2}, + + {0, G_1, H_1, I_1}, + {0, G_2, H_2, I_2}, + {0, G_3, H_3, I_3}, + {0, G_4, H_4, I_4}, + {0, G_5, H_5, I_5}, + {0, G_6, H_6, I_6}, + {0, G_7, H_7, I_7}, + {0, G_8, H_8, I_8}, + {0, G_9, H_9, I_9}, + {0, G_10, H_10, I_10}, + {0, G_11, H_11, I_11}, + {0, G_12, H_12, I_12}, + {0, G_13, H_13, I_13}, + {1, D_3, E_3, F_3}, + + {0, J_1, K_1, L_1}, + {0, J_2, K_2, L_2}, + {0, J_3, K_3, L_3}, + {0, J_4, K_4, L_4}, + {0, J_5, K_5, L_5}, + {0, J_6, K_6, L_6}, + {0, J_7, K_7, L_7}, + {0, J_8, K_8, L_8}, + {0, J_9, K_9, L_9}, + {0, J_10, K_10, L_10}, + {0, J_11, K_11, L_11}, + {0, J_12, K_12, L_12}, + {1, D_7, E_7, F_7}, + {1, D_4, E_4, F_4}, + + {0, J_13, K_13, L_13}, + {0, J_14, K_14, L_14}, + {0, J_15, K_15, L_15}, + {0, J_16, K_16, L_16}, + + {0, G_14, H_14, I_14}, + {0, G_15, H_15, I_15}, + {0, G_16, H_16, I_16}, + + {0, D_15, E_15, F_15}, + {1, D_6, E_6, F_6}, + {1, D_5, E_5, F_5}, + + {1, G_1, H_1, I_1}, + {1, G_2, H_2, I_2}, + {1, G_3, H_3, I_3}, + {1, G_4, H_4, I_4}, + {1, G_5, H_5, I_5}, + + {1, J_1, K_1, L_1}, + {1, J_2, K_2, L_2}, + {1, J_3, K_3, L_3}, + {1, J_4, K_4, L_4}, + {1, J_5, K_5, L_5}, +}; + +led_config_t g_led_config = { + { + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, NO_LED, NO_LED}, + { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, NO_LED, 28}, + { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43}, + { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, NO_LED, 57}, + { 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, NO_LED, NO_LED, 69, 70, 71}, + { 72, 73, 74, NO_LED, NO_LED, 75, NO_LED, NO_LED, NO_LED, 76, 77, 78, NO_LED, 79, 80, 81} + }, + { + { 0, 0}, // 0 + { 14, 0}, // 1 + { 29, 0}, // 2 + { 44, 0}, // 3 + { 59, 0}, // 4 + { 74, 0}, // 5 + { 89, 0}, // 6 + {104, 0}, // 7 + {119, 0}, // 8 + {134, 0}, // 9 + {149, 0}, // 10 + {164, 0}, // 11 + {179, 0}, // 12 + {194, 0}, // 13 + + { 0, 12}, // 14 + { 14, 12}, // 15 + { 28, 12}, // 16 + { 42, 12}, // 17 + { 56, 12}, // 18 + { 70, 12}, // 19 + { 84, 12}, // 20 + { 98, 12}, // 21 + {112, 12}, // 22 + {126, 12}, // 23 + {140, 12}, // 24 + {154, 12}, // 25 + {168, 12}, // 26 + {182, 12}, // 27 + {224, 12}, // 28 + + { 0, 25}, // 29 + { 14, 25}, // 30 + { 28, 25}, // 31 + { 42, 25}, // 32 + { 56, 25}, // 33 + { 70, 25}, // 34 + { 84, 25}, // 35 + { 98, 25}, // 36 + {112, 25}, // 37 + {126, 25}, // 38 + {140, 25}, // 39 + {154, 25}, // 40 + {168, 25}, // 41 + {182, 25}, // 42 + {224, 25}, // 43 + + { 0, 38}, // 44 + { 28, 38}, // 45 + { 42, 38}, // 46 + { 56, 38}, // 47 + { 70, 38}, // 48 + { 84, 38}, // 49 + { 98, 38}, // 50 + {112, 38}, // 51 + {126, 38}, // 52 + {140, 38}, // 53 + {154, 38}, // 54 + {168, 38}, // 55 + {182, 38}, // 56 + {224, 38}, // 57 + + { 0, 51}, // 58 + { 18, 51}, // 59 + { 37, 51}, // 60 + { 56, 51}, // 61 + { 74, 51}, // 62 + { 93, 51}, // 63 + {112, 51}, // 64 + {130, 51}, // 65 + {149, 51}, // 66 + {168, 51}, // 67 + {186, 51}, // 68 + {200, 51}, // 69 + {214, 51}, // 70 + {224, 51}, // 71 + + { 0, 64}, // 72 + { 18, 64}, // 73 + { 37, 64}, // 74 + { 92, 64}, // 75 + {140, 64}, // 76 + {154, 64}, // 77 + {168, 64}, // 78 + {196, 64}, // 80 + {210, 64}, // 81 + {224, 64}, // 82 + + {0, 0}, // 68 LED 1 + {0, 16}, // 69 LED 2 + {0, 32}, // 70 LED 3 + {0, 48}, // 71 LED 4 + {0, 64}, // 72 LED 5 + + {224, 0 }, // 78 LED 12 + {224, 16}, // 79 LED 13 + {224, 32}, // 80 LED 14 + {224, 48}, // 81 LED 15 + {224, 64}, // 82 LED 16 + }, + { + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, + } +}; + +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } + // caps lock red + if (host_keyboard_led_state().caps_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(44, 255, 0, 0); + } else { + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(44, 0, 0, 0); + } + } + // GUI lock red + if (keymap_config.no_gui) { + RGB_MATRIX_INDICATOR_SET_COLOR(73, 255, 0, 0); + } else { + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(73, 0, 0, 0); + } + } + return true; +} + +#endif + +enum __layers { + WIN_B, + WIN_FN, + MAC_B, + MAC_FN +}; + +enum colors { + WHITE, + RED, + GREEN, + BLUE +}; +enum colors led_color_status = WHITE; + +// clang-format on +static bool fn_make_flag = false; +static bool Lkey_flag = false; +static bool reset_glint_flag = false; +static bool while_test_flag = false; +static bool alarm_flag = false; +static uint16_t current_time = 0; +static uint8_t glint_cnt = 0; +static uint16_t scancode = 0; +static uint8_t alarm_cnt = 0; +static uint8_t RGB_HSV_level; + +HSV hsv; + +void led_test(uint8_t color); +void clear_eeprom(void); +void rgb_hsv_updata_user(void); + +bool dip_switch_update_kb(uint8_t index, bool active) { + if (!dip_switch_update_user(index, active)) { + return false; + } + if (index == 0) { + default_layer_set(1UL << (active ? 2 : 0)); + } + if(active){ + keymap_config.no_gui = 0; + eeconfig_update_keymap(keymap_config.raw); + } + return true; +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + switch (keycode) { + case MO(WIN_FN): + case MO(MAC_FN): + fn_make_flag = record->event.pressed; + return true; + case KC_ESC: + if (fn_make_flag && record->event.pressed) { + Lkey_flag = true; + current_time = timer_read(); + scancode = KC_ESC; + return false; + } else { + Lkey_flag = 0; + } + return true; + case KC_END: + if (fn_make_flag && record->event.pressed) { + if (while_test_flag) { + while_test_flag = false; + rgb_matrix_init(); + } else { + Lkey_flag = true; + current_time = timer_read(); + scancode = KC_END; + } + return false; + } else { + Lkey_flag = 0; + } + return true; + case KC_LEFT: + if (while_test_flag == true) { + if (record->event.pressed) { + if (glint_cnt == 0) + glint_cnt = 3; + else + glint_cnt--; + if ((glint_cnt % 4) == 0) { + rgb_matrix_sethsv_noeeprom(HSV_WHITE); + } else if ((glint_cnt % 4) == 1) { + rgb_matrix_sethsv_noeeprom(HSV_RED); + } else if ((glint_cnt % 4) == 2) { + rgb_matrix_sethsv_noeeprom(HSV_GREEN); + } else if ((glint_cnt % 4) == 3) { + rgb_matrix_sethsv_noeeprom(HSV_BLUE); + } + } + return false; + } + return true; + case KC_RGHT: + if (while_test_flag == true) { + if (record->event.pressed) { + glint_cnt++; + if (glint_cnt >= 4) glint_cnt = 0; + + if ((glint_cnt % 4) == 0) { + rgb_matrix_sethsv_noeeprom(HSV_WHITE); + } else if ((glint_cnt % 4) == 1) { + rgb_matrix_sethsv_noeeprom(HSV_RED); + } else if ((glint_cnt % 4) == 2) { + rgb_matrix_sethsv_noeeprom(HSV_GREEN); + } else if ((glint_cnt % 4) == 3) { + rgb_matrix_sethsv_noeeprom(HSV_BLUE); + } + } + return false; + } + return true; + case DF(WIN_B): + if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { + alarm_flag = true; + rgb_matrix_toggle_noeeprom(); + current_time = timer_read(); + set_single_persistent_default_layer(WIN_B); + return false; + } + return true; + case DF(MAC_B): + if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { + alarm_flag = true; + rgb_matrix_toggle_noeeprom(); + current_time = timer_read(); + set_single_persistent_default_layer(MAC_B); + return false; + } + return true; + + case RGB_VAI: + if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { + if ((RGB_HSV_level = (uint8_t)rgb_matrix_get_val() / (RGB_MATRIX_MAXIMUM_BRIGHTNESS / 4)) < 4) { + RGB_HSV_level++; + rgb_matrix_config.hsv.v = (uint8_t)(RGB_MATRIX_MAXIMUM_BRIGHTNESS / 4) * RGB_HSV_level; + } + rgb_hsv_updata_user(); + } + return false; + case RGB_VAD: + if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { + if ((RGB_HSV_level = (uint8_t)rgb_matrix_get_val() / (RGB_MATRIX_MAXIMUM_BRIGHTNESS / 4)) > 0) { + RGB_HSV_level--; + rgb_matrix_config.hsv.v = (uint8_t)(RGB_MATRIX_MAXIMUM_BRIGHTNESS / 4) * RGB_HSV_level; + } + rgb_hsv_updata_user(); + } + return false; + case RGB_SAI: + if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { + if ((RGB_HSV_level = (uint8_t)rgb_matrix_get_sat() / (UINT8_MAX / 4)) < 4) { + RGB_HSV_level++; + rgb_matrix_config.hsv.s = (uint8_t)(UINT8_MAX / 4) * RGB_HSV_level; + } + rgb_hsv_updata_user(); + } + return false; + case RGB_SAD: + if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { + if ((RGB_HSV_level = (uint8_t)rgb_matrix_get_sat() / (UINT8_MAX / 4)) > 0) { + RGB_HSV_level--; + rgb_matrix_config.hsv.s = (uint8_t)(UINT8_MAX / 4) * RGB_HSV_level; + } + rgb_hsv_updata_user(); + } + return false; + case RGB_HUI: + if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { + if ((RGB_HSV_level = (uint8_t)rgb_matrix_get_hue() / (UINT8_MAX / 6)) < 6) { + RGB_HSV_level++; + rgb_matrix_config.hsv.h = (uint8_t)(UINT8_MAX / 6) * RGB_HSV_level; + } + rgb_hsv_updata_user(); + } + return false; + case RGB_HUD: + if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { + if ((RGB_HSV_level = (uint8_t)rgb_matrix_get_hue() / (UINT8_MAX / 6)) > 0) { + RGB_HSV_level--; + rgb_matrix_config.hsv.h = (uint8_t)(UINT8_MAX / 6) * RGB_HSV_level; + } + rgb_hsv_updata_user(); + } + return false; + case RGB_SPI: + if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { + if ((RGB_HSV_level = (uint8_t)rgb_matrix_get_speed() / (UINT8_MAX / 4)) < 4) { + RGB_HSV_level++; + rgb_matrix_set_speed((uint8_t)(UINT8_MAX / 4) * RGB_HSV_level); + } + } + return false; + case RGB_SPD: + if ((fn_make_flag && record->event.pressed) && (alarm_flag == 0)) { + if ((RGB_HSV_level = (uint8_t)rgb_matrix_get_speed() / (UINT8_MAX / 4)) > 0) { + RGB_HSV_level--; + rgb_matrix_set_speed((uint8_t)(UINT8_MAX / 4) * RGB_HSV_level); + } + } + return false; + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + } break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + } break; + } + } + if (!rgb_matrix_is_enabled()) { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable(); + } + return false; + + default: + return process_record_user(keycode, record); + } +} + +void housekeeping_task_kb(void) { + if (Lkey_flag) { + if (scancode == KC_ESC) { + if (timer_elapsed(current_time) >= 3000) { + Lkey_flag = false; + clear_eeprom(); + + current_time = timer_read(); + reset_glint_flag = true; + glint_cnt = 0; + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); + rgb_matrix_sethsv_noeeprom(HSV_OFF); + } + } else if (scancode == KC_END) { + if (timer_elapsed(current_time) >= 3000) { + Lkey_flag = false; + clear_eeprom(); + + while_test_flag = true; + glint_cnt = 0; + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); + rgb_matrix_sethsv_noeeprom(HSV_WHITE); + } + } + } else if (reset_glint_flag) { + if ((timer_elapsed(current_time)) >= 300) { + current_time = timer_read(); + if (((glint_cnt++) & 0x01) == 0) { + rgb_matrix_sethsv_noeeprom(HSV_RED); + } else { + rgb_matrix_sethsv_noeeprom(HSV_OFF); + } + if (glint_cnt >= 7) { + glint_cnt = 0; + reset_glint_flag = false; + rgb_matrix_init(); + } + } + } else if (alarm_cnt != 0) { + alarm_cnt--; + if (alarm_cnt == 0) { + alarm_flag = true; + rgb_matrix_toggle_noeeprom(); + current_time = timer_read(); + } + } else if (alarm_flag) { + if ((timer_elapsed(current_time)) >= 200) { + rgb_matrix_toggle_noeeprom(); + alarm_flag = 0; + } + } +} + +void led_test(uint8_t color) { + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); + + switch (color) { + case WHITE: + rgb_matrix_sethsv_noeeprom(HSV_WHITE); + break; + + case RED: + rgb_matrix_sethsv_noeeprom(HSV_RED); + break; + + case GREEN: + rgb_matrix_sethsv_noeeprom(HSV_GREEN); + break; + + case BLUE: + rgb_matrix_sethsv_noeeprom(HSV_BLUE); + break; + } +} + +void clear_eeprom(void) { + layer_state_t default_layer_temp = default_layer_state; + eeconfig_init(); + default_layer_set(default_layer_temp); + +#ifdef VIA_ENABLE + // This resets the layout options + via_set_layout_options(VIA_EEPROM_LAYOUT_OPTIONS_DEFAULT); + // This resets the keymaps in EEPROM to what is in flash. + dynamic_keymap_reset(); + // This resets the macros in EEPROM to nothing. + dynamic_keymap_macro_reset(); +#endif + + rgb_matrix_enable_noeeprom(); +} + +void rgb_hsv_updata_user(void) { + rgb_matrix_sethsv(rgb_matrix_config.hsv.h, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v); +} diff --git a/keyboards/inland/kb83/keymaps/default/keymap.c b/keyboards/inland/kb83/keymaps/default/keymap.c new file mode 100644 index 0000000000..712383d48d --- /dev/null +++ b/keyboards/inland/kb83/keymaps/default/keymap.c @@ -0,0 +1,73 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * 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 . + */ + +#include QMK_KEYBOARD_H +// clang-format off +enum __layers { + WIN_B, + WIN_FN, + MAC_B, + MAC_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) +#define KC_SIRI LALT(KC_SPC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT( /* Base */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_MUTE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT( /* FN */ + _______, KC_BRID, KC_BRIU, KC_MAIL, KC_WSCH, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI), + + [MAC_B] = LAYOUT( /* Base */ + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_SIRI, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT( /* FN */ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [WIN_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [WIN_FN] = { ENCODER_CCW_CW(RGB_SAI, RGB_SAD) }, + [MAC_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [MAC_FN] = { ENCODER_CCW_CW(RGB_SAI, RGB_SAD) }, +}; +#endif + diff --git a/keyboards/inland/kb83/keymaps/via/keymap.c b/keyboards/inland/kb83/keymaps/via/keymap.c new file mode 100644 index 0000000000..712383d48d --- /dev/null +++ b/keyboards/inland/kb83/keymaps/via/keymap.c @@ -0,0 +1,73 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * 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 . + */ + +#include QMK_KEYBOARD_H +// clang-format off +enum __layers { + WIN_B, + WIN_FN, + MAC_B, + MAC_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) +#define KC_SIRI LALT(KC_SPC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT( /* Base */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_MUTE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT( /* FN */ + _______, KC_BRID, KC_BRIU, KC_MAIL, KC_WSCH, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI), + + [MAC_B] = LAYOUT( /* Base */ + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_SIRI, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT( /* FN */ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [WIN_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [WIN_FN] = { ENCODER_CCW_CW(RGB_SAI, RGB_SAD) }, + [MAC_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [MAC_FN] = { ENCODER_CCW_CW(RGB_SAI, RGB_SAD) }, +}; +#endif + diff --git a/keyboards/inland/kb83/keymaps/via/rules.mk b/keyboards/inland/kb83/keymaps/via/rules.mk new file mode 100644 index 0000000000..4253f570f0 --- /dev/null +++ b/keyboards/inland/kb83/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/inland/kb83/mcuconf.h b/keyboards/inland/kb83/mcuconf.h new file mode 100644 index 0000000000..0d16f4f04e --- /dev/null +++ b/keyboards/inland/kb83/mcuconf.h @@ -0,0 +1,24 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * 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 . + */ +#pragma once + +#include_next + +#undef WB32_SPI_USE_QSPI +#define WB32_SPI_USE_QSPI TRUE + +#undef WB32_I2C_USE_I2C1 +#define WB32_I2C_USE_I2C1 TRUE diff --git a/keyboards/inland/kb83/readme.md b/keyboards/inland/kb83/readme.md new file mode 100644 index 0000000000..e6f1d45990 --- /dev/null +++ b/keyboards/inland/kb83/readme.md @@ -0,0 +1,19 @@ +# kb83 + +A customizable 75% encoder keyboard. + +* Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986) +* Hardware Supported: kb83 +* Hardware Availability:[inland](https://www.microcenter.com) + +Make example for this keyboard (after setting up your build environment): + + make inland/kb83:default + +Flashing example for this keyboard: + + make inland/kb83:default:flash + +**Reset Key**: Hold down the key located at *K01*, which programmed as *Esc* while plugging in the 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). diff --git a/keyboards/inland/kb83/rgb_matrix_kb.inc b/keyboards/inland/kb83/rgb_matrix_kb.inc new file mode 100644 index 0000000000..56e2bd31cb --- /dev/null +++ b/keyboards/inland/kb83/rgb_matrix_kb.inc @@ -0,0 +1,51 @@ +// !!! DO NOT ADD #pragma once !!! // + +// Step 1. +// Declare custom effects using the RGB_MATRIX_EFFECT macro +// (note the lack of semicolon after the macro!) + +RGB_MATRIX_EFFECT(turn_off_rgb) +RGB_MATRIX_EFFECT(kb_reset_rgb) + +// Step 2. +// Define effects inside the `RGB_MATRIX_CUSTOM_EFFECT_IMPLS` ifdef block + +#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS + +// e.g: A simple effect, self-contained within a single method +static bool turn_off_rgb(effect_params_t *params) { + RGB_MATRIX_USE_LIMITS(led_min, led_max); + for (uint8_t i = led_min; i < led_max; i++) { + rgb_matrix_set_color(i, 0x00, 0x00, 0x00); + } + return rgb_matrix_check_finished_leds(led_max); +} + +// e.g: A more complex effect, relying on external methods and state, with +// dedicated init and run methods +static uint8_t some_global_state; +static void kb_reset_rgb_init(effect_params_t* params) { + some_global_state = 0; +} +static bool kb_reset_rgb_run(effect_params_t* params) { + RGB_MATRIX_USE_LIMITS(led_min, led_max); + some_global_state++; + if(some_global_state&0x01){ + for (uint8_t i = led_min; i < led_max; i++) + rgb_matrix_set_color(i, 0, 0, 0); + } + else{ + for (uint8_t i = led_min; i < led_max; i++) + rgb_matrix_set_color(i, 0xc0, 0xc0, 0xc0); + } + if(some_global_state>=7) + rgb_matrix_init(); + return rgb_matrix_check_finished_leds(led_max); +} + +static bool kb_reset_rgb(effect_params_t* params) { + if (params->init) kb_reset_rgb_init(params); + return kb_reset_rgb_run(params); +} + +#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS diff --git a/keyboards/inland/kb83/rules.mk b/keyboards/inland/kb83/rules.mk new file mode 100644 index 0000000000..756d0c0719 --- /dev/null +++ b/keyboards/inland/kb83/rules.mk @@ -0,0 +1,19 @@ +# 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 +KEYBOARD_SHARED_EP = no +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +DIP_SWITCH_ENABLE = yes # DPI Switch +ENCODER_ENABLE = yes +RGB_MATRIX_ENABLE = yes +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = spi_flash +#RGB_MATRIX_CUSTOM_USER = yes #Add turnoff LED -- cgit v1.3.1 From c814be02967850a204721ceb1e989df92961fc26 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Wed, 28 Jun 2023 13:07:14 +1000 Subject: STM32H723 support (#21352) --- data/schemas/keyboard.jsonschema | 2 + docs/compatible_microcontrollers.md | 2 + keyboards/handwired/onekey/nucleo_h723zg/info.json | 19 + keyboards/handwired/onekey/nucleo_h723zg/readme.md | 5 + keyboards/handwired/onekey/nucleo_h723zg/rules.mk | 0 lib/python/qmk/constants.py | 4 +- .../boards/GENERIC_STM32_H723XG/board/board.mk | 12 + .../boards/GENERIC_STM32_H723XG/board/extra.c | 36 ++ .../boards/GENERIC_STM32_H723XG/configs/config.h | 9 + .../boards/GENERIC_STM32_H723XG/configs/mcuconf.h | 511 +++++++++++++++++++++ platforms/chibios/bootloaders/stm32_dfu.c | 73 ++- platforms/chibios/chibios_config.h | 6 +- platforms/chibios/mcu_selection.mk | 39 ++ 13 files changed, 702 insertions(+), 16 deletions(-) create mode 100644 keyboards/handwired/onekey/nucleo_h723zg/info.json create mode 100755 keyboards/handwired/onekey/nucleo_h723zg/readme.md create mode 100755 keyboards/handwired/onekey/nucleo_h723zg/rules.mk create mode 100644 platforms/chibios/boards/GENERIC_STM32_H723XG/board/board.mk create mode 100755 platforms/chibios/boards/GENERIC_STM32_H723XG/board/extra.c create mode 100644 platforms/chibios/boards/GENERIC_STM32_H723XG/configs/config.h create mode 100644 platforms/chibios/boards/GENERIC_STM32_H723XG/configs/mcuconf.h (limited to 'data') diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index a6213d6a7c..2051a7b8ba 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -71,6 +71,8 @@ "STM32F446", "STM32G431", "STM32G474", + "STM32H723", + "STM32H733", "STM32L412", "STM32L422", "STM32L432", diff --git a/docs/compatible_microcontrollers.md b/docs/compatible_microcontrollers.md index cc9c0b7f92..197033f78b 100644 --- a/docs/compatible_microcontrollers.md +++ b/docs/compatible_microcontrollers.md @@ -43,6 +43,8 @@ You can also use any ARM chip with USB that [ChibiOS](https://www.chibios.org) s * [STM32F446](https://www.st.com/en/microcontrollers-microprocessors/stm32f446.html) * [STM32G431](https://www.st.com/en/microcontrollers-microprocessors/stm32g4x1.html) * [STM32G474](https://www.st.com/en/microcontrollers-microprocessors/stm32g4x4.html) + * [STM32H723](https://www.st.com/en/microcontrollers-microprocessors/stm32h723-733.html) + * [STM32H733](https://www.st.com/en/microcontrollers-microprocessors/stm32h723-733.html) * [STM32L412](https://www.st.com/en/microcontrollers-microprocessors/stm32l4x2.html) * [STM32L422](https://www.st.com/en/microcontrollers-microprocessors/stm32l4x2.html) * [STM32L432](https://www.st.com/en/microcontrollers-microprocessors/stm32l4x2.html) diff --git a/keyboards/handwired/onekey/nucleo_h723zg/info.json b/keyboards/handwired/onekey/nucleo_h723zg/info.json new file mode 100644 index 0000000000..7596d007b2 --- /dev/null +++ b/keyboards/handwired/onekey/nucleo_h723zg/info.json @@ -0,0 +1,19 @@ +{ + "keyboard_name": "Onekey Nucleo H723ZG", + "processor": "STM32H723", + "bootloader": "stm32-dfu", + "matrix_pins": { + "cols": ["A9"], + "rows": ["A10"] + }, + "backlight": { + "pin": "B8" + }, + "ws2812": { + "pin": "A0" + }, + "apa102": { + "data_pin": "A0", + "clock_pin": "B13" + } +} diff --git a/keyboards/handwired/onekey/nucleo_h723zg/readme.md b/keyboards/handwired/onekey/nucleo_h723zg/readme.md new file mode 100755 index 0000000000..97a2da5115 --- /dev/null +++ b/keyboards/handwired/onekey/nucleo_h723zg/readme.md @@ -0,0 +1,5 @@ +# ST Microelectronics Nucleo144-H723 onekey + +Supported Hardware: + +To trigger keypress, short together pins *A9* and *A10*. diff --git a/keyboards/handwired/onekey/nucleo_h723zg/rules.mk b/keyboards/handwired/onekey/nucleo_h723zg/rules.mk new file mode 100755 index 0000000000..e69de29bb2 diff --git a/lib/python/qmk/constants.py b/lib/python/qmk/constants.py index 04ec4f6a16..d987ebaae7 100644 --- a/lib/python/qmk/constants.py +++ b/lib/python/qmk/constants.py @@ -14,7 +14,7 @@ QMK_FIRMWARE_UPSTREAM = 'qmk/qmk_firmware' MAX_KEYBOARD_SUBFOLDERS = 5 # Supported processor types -CHIBIOS_PROCESSORS = 'cortex-m0', 'cortex-m0plus', 'cortex-m3', 'cortex-m4', 'MKL26Z64', 'MK20DX128', 'MK20DX256', 'MK64FX512', 'MK66FX1M0', 'RP2040', 'STM32F042', 'STM32F072', 'STM32F103', 'STM32F303', 'STM32F401', 'STM32F405', 'STM32F407', 'STM32F411', 'STM32F446', 'STM32G431', 'STM32G474', 'STM32L412', 'STM32L422', 'STM32L432', 'STM32L433', 'STM32L442', 'STM32L443', 'GD32VF103', 'WB32F3G71', 'WB32FQ95' +CHIBIOS_PROCESSORS = 'cortex-m0', 'cortex-m0plus', 'cortex-m3', 'cortex-m4', 'MKL26Z64', 'MK20DX128', 'MK20DX256', 'MK64FX512', 'MK66FX1M0', 'RP2040', 'STM32F042', 'STM32F072', 'STM32F103', 'STM32F303', 'STM32F401', 'STM32F405', 'STM32F407', 'STM32F411', 'STM32F446', 'STM32G431', 'STM32G474', 'STM32H723', 'STM32H733', 'STM32L412', 'STM32L422', 'STM32L432', 'STM32L433', 'STM32L442', 'STM32L443', 'GD32VF103', 'WB32F3G71', 'WB32FQ95' LUFA_PROCESSORS = 'at90usb162', 'atmega16u2', 'atmega32u2', 'atmega16u4', 'atmega32u4', 'at90usb646', 'at90usb647', 'at90usb1286', 'at90usb1287', None VUSB_PROCESSORS = 'atmega32a', 'atmega328p', 'atmega328', 'attiny85' @@ -36,6 +36,8 @@ MCU2BOOTLOADER = { "STM32F446": "stm32-dfu", "STM32G431": "stm32-dfu", "STM32G474": "stm32-dfu", + "STM32H723": "stm32-dfu", + "STM32H733": "stm32-dfu", "STM32L412": "stm32-dfu", "STM32L422": "stm32-dfu", "STM32L432": "stm32-dfu", diff --git a/platforms/chibios/boards/GENERIC_STM32_H723XG/board/board.mk b/platforms/chibios/boards/GENERIC_STM32_H723XG/board/board.mk new file mode 100644 index 0000000000..3511f752a9 --- /dev/null +++ b/platforms/chibios/boards/GENERIC_STM32_H723XG/board/board.mk @@ -0,0 +1,12 @@ +# List of all the board related files. +BOARDSRC = $(CHIBIOS)/os/hal/boards/ST_NUCLEO144_H723ZG/board.c + +# Extra files +BOARDSRC += $(BOARD_PATH)/board/extra.c + +# Required include directories +BOARDINC = $(CHIBIOS)/os/hal/boards/ST_NUCLEO144_H723ZG + +# Shared variables +ALLCSRC += $(BOARDSRC) +ALLINC += $(BOARDINC) diff --git a/platforms/chibios/boards/GENERIC_STM32_H723XG/board/extra.c b/platforms/chibios/boards/GENERIC_STM32_H723XG/board/extra.c new file mode 100755 index 0000000000..fce0b4abad --- /dev/null +++ b/platforms/chibios/boards/GENERIC_STM32_H723XG/board/extra.c @@ -0,0 +1,36 @@ +// Copyright 2023 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#include +#define BOOTLOADER_MAGIC 0xDEADBEEF + +//////////////////////////////////////////////////////////////////////////////// +// Different signalling for bootloader entry +// - RAM is cleared on reset, so we can't use the usual __ram0_end__ symbol. +// - Use backup registers in the RTC peripheral to store the magic value instead. + +static inline void enable_backup_register_access(void) { + PWR->CR1 |= PWR_CR1_DBP; +} + +static inline void disable_backup_register_access(void) { + PWR->CR1 &= ~PWR_CR1_DBP; +} + +void bootloader_marker_enable(void) { + enable_backup_register_access(); + RTC->BKP0R = BOOTLOADER_MAGIC; + disable_backup_register_access(); +} + +bool bootloader_marker_active(void) { + enable_backup_register_access(); + bool ret = RTC->BKP0R == BOOTLOADER_MAGIC; + disable_backup_register_access(); + return ret; +} + +void bootloader_marker_disable(void) { + enable_backup_register_access(); + RTC->BKP0R = 0; + disable_backup_register_access(); +} diff --git a/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/config.h b/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/config.h new file mode 100644 index 0000000000..f43df29b54 --- /dev/null +++ b/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/config.h @@ -0,0 +1,9 @@ +// Copyright 2023 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define USB_DRIVER USBD2 + +#ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP +# define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE +#endif diff --git a/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/mcuconf.h new file mode 100644 index 0000000000..0239ec5273 --- /dev/null +++ b/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/mcuconf.h @@ -0,0 +1,511 @@ +/* + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef MCUCONF_H +#define MCUCONF_H + +/* + * STM32H723/33/25/35 drivers configuration. + * The following settings override the default settings present in + * the various device driver implementation headers. + * Note that the settings for each driver only have effect if the whole + * driver is enabled in halconf.h. + * + * IRQ priorities: + * 15...0 Lowest...Highest. + * + * DMA priorities: + * 0...3 Lowest...Highest. + */ + +#define STM32H7xx_MCUCONF +#define STM32H723_MCUCONF +#define STM32H733_MCUCONF +#define STM32H725_MCUCONF +#define STM32H735_MCUCONF + +/* + * General settings. + */ +#define STM32_NO_INIT FALSE + +/* + * Memory attributes settings. + */ +#define STM32_NOCACHE_ENABLE FALSE +#define STM32_NOCACHE_MPU_REGION MPU_REGION_6 +#define STM32_NOCACHE_RBAR 0x24000000U +#define STM32_NOCACHE_RASR MPU_RASR_SIZE_16K + +/* + * PWR system settings. + * Reading STM32 Reference Manual is required, settings in PWR_CR3 are + * very critical. + * Register constants are taken from the ST header. + */ +#define STM32_VOS STM32_VOS_SCALE0 +#define STM32_PWR_CR1 (PWR_CR1_SVOS_1 | PWR_CR1_SVOS_0) +#define STM32_PWR_CR2 (PWR_CR2_BREN) +#define STM32_PWR_CR3 (PWR_CR3_LDOEN | PWR_CR3_USB33DEN) +#define STM32_PWR_CPUCR 0 + +/* + * Clock tree static settings. + * Reading STM32 Reference Manual is required. + */ +#define STM32_HSI_ENABLED TRUE +#define STM32_LSI_ENABLED FALSE +#define STM32_CSI_ENABLED FALSE +#define STM32_HSI48_ENABLED TRUE +#define STM32_HSE_ENABLED TRUE +#define STM32_LSE_ENABLED FALSE +#define STM32_HSIDIV STM32_HSIDIV_DIV1 + +/* + * PLLs static settings. + * Reading STM32 Reference Manual is required. + */ +#define STM32_PLLSRC STM32_PLLSRC_HSE_CK +#define STM32_PLLCFGR_MASK ~0 +#define STM32_PLL1_ENABLED TRUE +#define STM32_PLL1_P_ENABLED TRUE +#define STM32_PLL1_Q_ENABLED TRUE +#define STM32_PLL1_R_ENABLED TRUE +#define STM32_PLL1_DIVM_VALUE 4 +#define STM32_PLL1_DIVN_VALUE 275 +#define STM32_PLL1_FRACN_VALUE 0 +#define STM32_PLL1_DIVP_VALUE 1 +#define STM32_PLL1_DIVQ_VALUE 10 +#define STM32_PLL1_DIVR_VALUE 4 +#define STM32_PLL2_ENABLED TRUE +#define STM32_PLL2_P_ENABLED TRUE +#define STM32_PLL2_Q_ENABLED TRUE +#define STM32_PLL2_R_ENABLED TRUE +#define STM32_PLL2_DIVM_VALUE 4 +#define STM32_PLL2_DIVN_VALUE 400 +#define STM32_PLL2_FRACN_VALUE 0 +#define STM32_PLL2_DIVP_VALUE 40 +#define STM32_PLL2_DIVQ_VALUE 8 +#define STM32_PLL2_DIVR_VALUE 8 +#define STM32_PLL3_ENABLED TRUE +#define STM32_PLL3_P_ENABLED TRUE +#define STM32_PLL3_Q_ENABLED TRUE +#define STM32_PLL3_R_ENABLED TRUE +#define STM32_PLL3_DIVM_VALUE 4 +#define STM32_PLL3_DIVN_VALUE 240 +#define STM32_PLL3_FRACN_VALUE 0 +#define STM32_PLL3_DIVP_VALUE 10 +#define STM32_PLL3_DIVQ_VALUE 10 +#define STM32_PLL3_DIVR_VALUE 10 + +/* + * Core clocks dynamic settings (can be changed at runtime). + * Reading STM32 Reference Manual is required. + */ +#define STM32_SW STM32_SW_PLL1_P_CK +#define STM32_RTCSEL STM32_RTCSEL_LSI_CK +#define STM32_D1CPRE STM32_D1CPRE_DIV1 +#define STM32_D1HPRE STM32_D1HPRE_DIV2 +#define STM32_D1PPRE3 STM32_D1PPRE3_DIV2 +#define STM32_D2PPRE1 STM32_D2PPRE1_DIV2 +#define STM32_D2PPRE2 STM32_D2PPRE2_DIV2 +#define STM32_D3PPRE4 STM32_D3PPRE4_DIV2 + +/* + * Peripherals clocks static settings. + * Reading STM32 Reference Manual is required. + */ +#define STM32_MCO1SEL STM32_MCO1SEL_HSI_CK +#define STM32_MCO1PRE_VALUE 4 +#define STM32_MCO2SEL STM32_MCO2SEL_SYS_CK +#define STM32_MCO2PRE_VALUE 4 +#define STM32_TIMPRE_ENABLE TRUE +#define STM32_HRTIMSEL 0 +#define STM32_STOPKERWUCK 0 +#define STM32_STOPWUCK 0 +#define STM32_RTCPRE_VALUE 8 +#define STM32_CKPERSEL STM32_CKPERSEL_HSE_CK +#define STM32_SDMMCSEL STM32_SDMMCSEL_PLL1_Q_CK +#define STM32_OCTOSPISEL STM32_OCTOSPISEL_HCLK +#define STM32_FMCSEL STM32_FMCSEL_HCLK +#define STM32_SWPSEL STM32_SWPSEL_PCLK1 +#define STM32_FDCANSEL STM32_FDCANSEL_HSE_CK +#define STM32_DFSDM1SEL STM32_DFSDM1SEL_PCLK2 +#define STM32_SPDIFSEL STM32_SPDIFSEL_PLL1_Q_CK +#define STM32_SPI45SEL STM32_SPI45SEL_PCLK2 +#define STM32_SPI123SEL STM32_SPI123SEL_PLL1_Q_CK +#define STM32_SAI1SEL STM32_SAI1SEL_PLL1_Q_CK +#define STM32_LPTIM1SEL STM32_LPTIM1SEL_PCLK1 +#define STM32_CECSEL STM32_CECSEL_LSE_CK +#define STM32_USBSEL STM32_USBSEL_PLL3_Q_CK +#define STM32_I2C1235SEL STM32_I2C1235SEL_PCLK1 +#define STM32_RNGSEL STM32_RNGSEL_PLL1_Q_CK +#define STM32_USART16910SEL STM32_USART16910SEL_PCLK2 +#define STM32_USART234578SEL STM32_USART234578SEL_PCLK1 +#define STM32_SPI6SEL STM32_SPI6SEL_PCLK4 +#define STM32_SAI4BSEL STM32_SAI4BSEL_PLL1_Q_CK +#define STM32_SAI4ASEL STM32_SAI4ASEL_PLL1_Q_CK +#define STM32_ADCSEL STM32_ADCSEL_PLL2_P_CK +#define STM32_LPTIM345SEL STM32_LPTIM345SEL_PCLK4 +#define STM32_LPTIM2SEL STM32_LPTIM2SEL_PCLK4 +#define STM32_I2C4SEL STM32_I2C4SEL_PCLK4 +#define STM32_LPUART1SEL STM32_LPUART1SEL_PCLK4 + +/* + * IRQ system settings. + */ +#define STM32_IRQ_EXTI0_PRIORITY 6 +#define STM32_IRQ_EXTI1_PRIORITY 6 +#define STM32_IRQ_EXTI2_PRIORITY 6 +#define STM32_IRQ_EXTI3_PRIORITY 6 +#define STM32_IRQ_EXTI4_PRIORITY 6 +#define STM32_IRQ_EXTI5_9_PRIORITY 6 +#define STM32_IRQ_EXTI10_15_PRIORITY 6 +#define STM32_IRQ_EXTI16_PRIORITY 6 +#define STM32_IRQ_EXTI17_PRIORITY 6 +#define STM32_IRQ_EXTI18_PRIORITY 6 +#define STM32_IRQ_EXTI19_PRIORITY 6 +#define STM32_IRQ_EXTI20_21_PRIORITY 6 + +#define STM32_IRQ_FDCAN1_PRIORITY 10 +#define STM32_IRQ_FDCAN2_PRIORITY 10 + +#define STM32_IRQ_MDMA_PRIORITY 9 + +#define STM32_IRQ_OCTOSPI1_PRIORITY 10 +#define STM32_IRQ_OCTOSPI2_PRIORITY 10 + +#define STM32_IRQ_SDMMC1_PRIORITY 9 +#define STM32_IRQ_SDMMC2_PRIORITY 9 + +#define STM32_IRQ_TIM1_UP_PRIORITY 7 +#define STM32_IRQ_TIM1_CC_PRIORITY 7 +#define STM32_IRQ_TIM2_PRIORITY 7 +#define STM32_IRQ_TIM3_PRIORITY 7 +#define STM32_IRQ_TIM4_PRIORITY 7 +#define STM32_IRQ_TIM5_PRIORITY 7 +#define STM32_IRQ_TIM6_PRIORITY 7 +#define STM32_IRQ_TIM7_PRIORITY 7 +#define STM32_IRQ_TIM8_BRK_TIM12_PRIORITY 7 +#define STM32_IRQ_TIM8_UP_TIM13_PRIORITY 7 +#define STM32_IRQ_TIM8_TRGCO_TIM14_PRIORITY 7 +#define STM32_IRQ_TIM8_CC_PRIORITY 7 +#define STM32_IRQ_TIM15_PRIORITY 7 +#define STM32_IRQ_TIM16_PRIORITY 7 +#define STM32_IRQ_TIM17_PRIORITY 7 + +#define STM32_IRQ_USART1_PRIORITY 12 +#define STM32_IRQ_USART2_PRIORITY 12 +#define STM32_IRQ_USART3_PRIORITY 12 +#define STM32_IRQ_UART4_PRIORITY 12 +#define STM32_IRQ_UART5_PRIORITY 12 +#define STM32_IRQ_USART6_PRIORITY 12 +#define STM32_IRQ_UART7_PRIORITY 12 +#define STM32_IRQ_UART8_PRIORITY 12 +#define STM32_IRQ_UART9_PRIORITY 12 +#define STM32_IRQ_USART10_PRIORITY 12 +#define STM32_IRQ_LPUART1_PRIORITY 12 + +/* + * ADC driver system settings. + */ +#define STM32_ADC_DUAL_MODE FALSE +#define STM32_ADC_SAMPLES_SIZE 16 +#define STM32_ADC_USE_ADC12 FALSE +#define STM32_ADC_ADC12_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_ADC_ADC12_DMA_PRIORITY 2 +#define STM32_ADC_ADC12_IRQ_PRIORITY 5 +#define STM32_ADC_ADC12_CLOCK_MODE ADC_CCR_CKMODE_AHB_DIV4 + +/* + * CAN driver system settings. + */ +#define STM32_CAN_USE_FDCAN1 FALSE +#define STM32_CAN_USE_FDCAN2 FALSE + +/* + * DAC driver system settings. + */ +#define STM32_DAC_DUAL_MODE FALSE +#define STM32_DAC_USE_DAC1_CH1 FALSE +#define STM32_DAC_USE_DAC1_CH2 FALSE +#define STM32_DAC_DAC1_CH1_IRQ_PRIORITY 10 +#define STM32_DAC_DAC1_CH2_IRQ_PRIORITY 10 +#define STM32_DAC_DAC1_CH1_DMA_PRIORITY 2 +#define STM32_DAC_DAC1_CH2_DMA_PRIORITY 2 +#define STM32_DAC_DAC1_CH1_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_DAC_DAC1_CH2_DMA_STREAM STM32_DMA_STREAM_ID_ANY + +/* + * GPT driver system settings. + */ +#define STM32_GPT_USE_TIM1 FALSE +#define STM32_GPT_USE_TIM2 FALSE +#define STM32_GPT_USE_TIM3 FALSE +#define STM32_GPT_USE_TIM4 FALSE +#define STM32_GPT_USE_TIM5 FALSE +#define STM32_GPT_USE_TIM6 FALSE +#define STM32_GPT_USE_TIM7 FALSE +#define STM32_GPT_USE_TIM8 FALSE +#define STM32_GPT_USE_TIM12 FALSE +#define STM32_GPT_USE_TIM13 FALSE +#define STM32_GPT_USE_TIM14 FALSE +#define STM32_GPT_USE_TIM15 FALSE +#define STM32_GPT_USE_TIM16 FALSE +#define STM32_GPT_USE_TIM17 FALSE + +/* + * I2C driver system settings. + */ +#define STM32_I2C_USE_I2C1 FALSE +#define STM32_I2C_USE_I2C2 FALSE +#define STM32_I2C_USE_I2C3 FALSE +#define STM32_I2C_USE_I2C4 FALSE +#define STM32_I2C_BUSY_TIMEOUT 50 +#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C3_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C4_RX_BDMA_STREAM STM32_BDMA_STREAM_ID_ANY +#define STM32_I2C_I2C4_TX_BDMA_STREAM STM32_BDMA_STREAM_ID_ANY +#define STM32_I2C_I2C1_IRQ_PRIORITY 5 +#define STM32_I2C_I2C2_IRQ_PRIORITY 5 +#define STM32_I2C_I2C3_IRQ_PRIORITY 5 +#define STM32_I2C_I2C4_IRQ_PRIORITY 5 +#define STM32_I2C_I2C1_DMA_PRIORITY 3 +#define STM32_I2C_I2C2_DMA_PRIORITY 3 +#define STM32_I2C_I2C3_DMA_PRIORITY 3 +#define STM32_I2C_I2C4_DMA_PRIORITY 3 +#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") + +/* + * ICU driver system settings. + */ +#define STM32_ICU_USE_TIM1 FALSE +#define STM32_ICU_USE_TIM2 FALSE +#define STM32_ICU_USE_TIM3 FALSE +#define STM32_ICU_USE_TIM4 FALSE +#define STM32_ICU_USE_TIM5 FALSE +#define STM32_ICU_USE_TIM8 FALSE +#define STM32_ICU_USE_TIM12 FALSE +#define STM32_ICU_USE_TIM13 FALSE +#define STM32_ICU_USE_TIM14 FALSE +#define STM32_ICU_USE_TIM15 FALSE +#define STM32_ICU_USE_TIM16 FALSE +#define STM32_ICU_USE_TIM17 FALSE + +/* + * MAC driver system settings. + */ +#define STM32_MAC_TRANSMIT_BUFFERS 2 +#define STM32_MAC_RECEIVE_BUFFERS 4 +#define STM32_MAC_BUFFERS_SIZE 1522 +#define STM32_MAC_PHY_TIMEOUT 100 +#define STM32_MAC_ETH1_CHANGE_PHY_STATE TRUE +#define STM32_MAC_ETH1_IRQ_PRIORITY 13 +#define STM32_MAC_IP_CHECKSUM_OFFLOAD 0 + +/* + * PWM driver system settings. + */ +#define STM32_PWM_USE_TIM1 FALSE +#define STM32_PWM_USE_TIM2 FALSE +#define STM32_PWM_USE_TIM3 FALSE +#define STM32_PWM_USE_TIM4 FALSE +#define STM32_PWM_USE_TIM5 FALSE +#define STM32_PWM_USE_TIM8 FALSE +#define STM32_PWM_USE_TIM12 FALSE +#define STM32_PWM_USE_TIM13 FALSE +#define STM32_PWM_USE_TIM14 FALSE +#define STM32_PWM_USE_TIM15 FALSE +#define STM32_PWM_USE_TIM16 FALSE +#define STM32_PWM_USE_TIM17 FALSE + +/* + * RTC driver system settings. + */ +#define STM32_RTC_PRESA_VALUE 32 +#define STM32_RTC_PRESS_VALUE 1024 +#define STM32_RTC_CR_INIT 0 +#define STM32_RTC_TAMPCR_INIT 0 + +/* + * SDC driver system settings. + */ +#define STM32_SDC_USE_SDMMC1 FALSE +#define STM32_SDC_USE_SDMMC2 FALSE +#define STM32_SDC_SDMMC_UNALIGNED_SUPPORT TRUE +#define STM32_SDC_SDMMC_WRITE_TIMEOUT 10000 +#define STM32_SDC_SDMMC_READ_TIMEOUT 10000 +#define STM32_SDC_SDMMC_CLOCK_DELAY 10 +#define STM32_SDC_SDMMC_PWRSAV TRUE + +/* + * SERIAL driver system settings. + */ +#define STM32_SERIAL_USE_USART1 FALSE +#define STM32_SERIAL_USE_USART2 FALSE +#define STM32_SERIAL_USE_USART3 FALSE +#define STM32_SERIAL_USE_UART4 FALSE +#define STM32_SERIAL_USE_UART5 FALSE +#define STM32_SERIAL_USE_USART6 FALSE +#define STM32_SERIAL_USE_UART7 FALSE +#define STM32_SERIAL_USE_UART8 FALSE +#define STM32_SERIAL_USE_UART9 FALSE +#define STM32_SERIAL_USE_USART10 FALSE +#define STM32_SERIAL_USE_LPUART1 FALSE + +/* + * SIO driver system settings. + */ +#define STM32_SIO_USE_USART1 FALSE +#define STM32_SIO_USE_USART2 FALSE +#define STM32_SIO_USE_USART3 FALSE +#define STM32_SIO_USE_UART4 FALSE +#define STM32_SIO_USE_UART5 FALSE +#define STM32_SIO_USE_USART6 FALSE +#define STM32_SIO_USE_UART7 FALSE +#define STM32_SIO_USE_UART8 FALSE +#define STM32_SIO_USE_UART9 FALSE +#define STM32_SIO_USE_USART10 FALSE +#define STM32_SIO_USE_LPUART1 FALSE + +/* + * SPI driver system settings. + */ +#define STM32_SPI_USE_SPI1 FALSE +#define STM32_SPI_USE_SPI2 FALSE +#define STM32_SPI_USE_SPI3 FALSE +#define STM32_SPI_USE_SPI4 FALSE +#define STM32_SPI_USE_SPI5 FALSE +#define STM32_SPI_USE_SPI6 FALSE +#define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_SPI_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_SPI_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_SPI_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_SPI_SPI4_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_SPI_SPI4_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_SPI_SPI5_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_SPI_SPI5_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_SPI_SPI6_RX_BDMA_STREAM STM32_BDMA_STREAM_ID_ANY +#define STM32_SPI_SPI6_TX_BDMA_STREAM STM32_BDMA_STREAM_ID_ANY +#define STM32_SPI_SPI1_DMA_PRIORITY 1 +#define STM32_SPI_SPI2_DMA_PRIORITY 1 +#define STM32_SPI_SPI3_DMA_PRIORITY 1 +#define STM32_SPI_SPI4_DMA_PRIORITY 1 +#define STM32_SPI_SPI5_DMA_PRIORITY 1 +#define STM32_SPI_SPI6_DMA_PRIORITY 1 +#define STM32_SPI_SPI1_IRQ_PRIORITY 10 +#define STM32_SPI_SPI2_IRQ_PRIORITY 10 +#define STM32_SPI_SPI3_IRQ_PRIORITY 10 +#define STM32_SPI_SPI4_IRQ_PRIORITY 10 +#define STM32_SPI_SPI5_IRQ_PRIORITY 10 +#define STM32_SPI_SPI6_IRQ_PRIORITY 10 +#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") + +/* + * ST driver system settings. + */ +#define STM32_ST_IRQ_PRIORITY 8 +#define STM32_ST_USE_TIMER 2 + +/* + * TRNG driver system settings. + */ +#define STM32_TRNG_USE_RNG1 FALSE + +/* + * UART driver system settings. + */ +#define STM32_UART_USE_USART1 FALSE +#define STM32_UART_USE_USART2 FALSE +#define STM32_UART_USE_USART3 FALSE +#define STM32_UART_USE_UART4 FALSE +#define STM32_UART_USE_UART5 FALSE +#define STM32_UART_USE_USART6 FALSE +#define STM32_UART_USE_UART7 FALSE +#define STM32_UART_USE_UART8 FALSE +#define STM32_UART_USE_UART9 FALSE +#define STM32_UART_USE_USART10 FALSE +#define STM32_UART_USART1_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_USART1_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_USART2_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_USART2_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_USART3_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_USART3_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_UART4_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_UART4_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_UART5_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_UART5_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_USART6_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_USART6_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_UART7_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_UART7_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_UART8_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_UART8_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_UART9_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_UART9_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_USART10_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_USART10_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_UART_USART1_DMA_PRIORITY 0 +#define STM32_UART_USART2_DMA_PRIORITY 0 +#define STM32_UART_USART3_DMA_PRIORITY 0 +#define STM32_UART_UART4_DMA_PRIORITY 0 +#define STM32_UART_UART5_DMA_PRIORITY 0 +#define STM32_UART_USART6_DMA_PRIORITY 0 +#define STM32_UART_UART7_DMA_PRIORITY 0 +#define STM32_UART_UART8_DMA_PRIORITY 0 +#define STM32_UART_UART9_DMA_PRIORITY 0 +#define STM32_UART_USART10_DMA_PRIORITY 0 +#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") + +/* + * USB driver system settings. + */ +#define STM32_USB_USE_OTG2 TRUE +#define STM32_USB_OTG2_IRQ_PRIORITY 14 +#define STM32_USB_OTG2_RX_FIFO_SIZE 1024 +#define STM32_USB_HOST_WAKEUP_DURATION 2 + +/* + * WDG driver system settings. + */ +#define STM32_WDG_USE_IWDG FALSE + +/* + * WSPI driver system settings. + */ +#define STM32_WSPI_USE_OCTOSPI1 FALSE +#define STM32_WSPI_USE_OCTOSPI2 FALSE +#define STM32_WSPI_OCTOSPI1_PRESCALER_VALUE 1 +#define STM32_WSPI_OCTOSPI2_PRESCALER_VALUE 1 +#define STM32_WSPI_OCTOSPI1_SSHIFT FALSE +#define STM32_WSPI_OCTOSPI2_SSHIFT FALSE +#define STM32_WSPI_OCTOSPI1_DHQC FALSE +#define STM32_WSPI_OCTOSPI2_DHQC FALSE +#define STM32_WSPI_OCTOSPI1_MDMA_CHANNEL STM32_MDMA_CHANNEL_ID_ANY +#define STM32_WSPI_OCTOSPI2_MDMA_CHANNEL STM32_MDMA_CHANNEL_ID_ANY +#define STM32_WSPI_OCTOSPI1_MDMA_PRIORITY 1 +#define STM32_WSPI_OCTOSPI2_MDMA_PRIORITY 1 +#define STM32_WSPI_OCTOSPI1_MDMA_IRQ_PRIORITY 10 +#define STM32_WSPI_OCTOSPI2_MDMA_IRQ_PRIORITY 10 +#define STM32_WSPI_DMA_ERROR_HOOK(wspip) osalSysHalt("MDMA failure") + +#endif /* MCUCONF_H */ diff --git a/platforms/chibios/bootloaders/stm32_dfu.c b/platforms/chibios/bootloaders/stm32_dfu.c index f845bf21e9..8cf640f7f9 100644 --- a/platforms/chibios/bootloaders/stm32_dfu.c +++ b/platforms/chibios/bootloaders/stm32_dfu.c @@ -1,4 +1,4 @@ -/* Copyright 2021 QMK +/* Copyright 2021-2023 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 @@ -15,12 +15,17 @@ */ #include "bootloader.h" +#include "util.h" #include #include #include "wait.h" -extern uint32_t __ram0_end__; +#ifndef STM32_BOOTLOADER_RAM_SYMBOL +# define STM32_BOOTLOADER_RAM_SYMBOL __ram0_end__ +#endif + +extern uint32_t STM32_BOOTLOADER_RAM_SYMBOL; #ifndef STM32_BOOTLOADER_DUAL_BANK # define STM32_BOOTLOADER_DUAL_BANK FALSE @@ -72,10 +77,25 @@ void enter_bootloader_mode_if_requested(void) {} /* This code should be checked whether it runs correctly on platforms */ # define SYMVAL(sym) (uint32_t)(((uint8_t *)&(sym)) - ((uint8_t *)0)) # define BOOTLOADER_MAGIC 0xDEADBEEF -# define MAGIC_ADDR (unsigned long *)(SYMVAL(__ram0_end__) - 4) +# define MAGIC_ADDR (unsigned long *)(SYMVAL(STM32_BOOTLOADER_RAM_SYMBOL) - 4) + +__attribute__((weak)) void bootloader_marker_enable(void) { + uint32_t *marker = (uint32_t *)MAGIC_ADDR; + *marker = BOOTLOADER_MAGIC; // set magic flag => reset handler will jump into boot loader +} + +__attribute__((weak)) bool bootloader_marker_active(void) { + const uint32_t *marker = (const uint32_t *)MAGIC_ADDR; + return (*marker == BOOTLOADER_MAGIC) ? true : false; +} + +__attribute__((weak)) void bootloader_marker_disable(void) { + uint32_t *marker = (uint32_t *)MAGIC_ADDR; + *marker = 0; +} __attribute__((weak)) void bootloader_jump(void) { - *MAGIC_ADDR = BOOTLOADER_MAGIC; // set magic flag => reset handler will jump into boot loader + bootloader_marker_enable(); NVIC_SystemReset(); } @@ -84,18 +104,43 @@ __attribute__((weak)) void mcu_reset(void) { } void enter_bootloader_mode_if_requested(void) { - unsigned long *check = MAGIC_ADDR; - if (*check == BOOTLOADER_MAGIC) { - *check = 0; - __set_CONTROL(0); - __set_MSP(*(__IO uint32_t *)STM32_BOOTLOADER_ADDRESS); + if (bootloader_marker_active()) { + bootloader_marker_disable(); + + __disable_irq(); + +# if defined(QMK_MCU_ARCH_CORTEX_M7) + SCB_DisableDCache(); + SCB_DisableICache(); +# endif + +# if defined(__MPU_PRESENT) && (__MPU_PRESENT == 1U) + ARM_MPU_Disable(); +# endif + + SysTick->CTRL = 0; + SysTick->VAL = 0; + SysTick->LOAD = 0; + + // Clear interrupt enable and interrupt pending registers + for (int i = 0; i < ARRAY_SIZE(NVIC->ICER); i++) { + NVIC->ICER[i] = 0xFFFFFFFF; + NVIC->ICPR[i] = 0xFFFFFFFF; + } + __enable_irq(); - typedef void (*BootJump_t)(void); - BootJump_t boot_jump = *(BootJump_t *)(STM32_BOOTLOADER_ADDRESS + 4); - boot_jump(); - while (1) - ; + struct system_memory_vector_t { + uint32_t stack_top; + void (*entrypoint)(void); + }; + const struct system_memory_vector_t *bootloader = (const struct system_memory_vector_t *)(STM32_BOOTLOADER_ADDRESS); + + // Jump to bootloader + __set_MSP(bootloader->stack_top); + bootloader->entrypoint(); + while (true) { + } } } #endif diff --git a/platforms/chibios/chibios_config.h b/platforms/chibios/chibios_config.h index 52632a051e..1f8a7842fe 100644 --- a/platforms/chibios/chibios_config.h +++ b/platforms/chibios/chibios_config.h @@ -71,7 +71,11 @@ // STM32 compatibility #if defined(MCU_STM32) -# define CPU_CLOCK STM32_SYSCLK +# if defined(STM32_CORE_CK) +# define CPU_CLOCK STM32_CORE_CK +# else +# define CPU_CLOCK STM32_SYSCLK +# endif # if defined(STM32F1XX) # define USE_GPIOV1 diff --git a/platforms/chibios/mcu_selection.mk b/platforms/chibios/mcu_selection.mk index f14b16b169..5122ed4634 100644 --- a/platforms/chibios/mcu_selection.mk +++ b/platforms/chibios/mcu_selection.mk @@ -705,6 +705,45 @@ ifneq (,$(filter $(MCU),STM32L412 STM32L422)) STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000 endif +ifneq (,$(filter $(MCU),STM32H723 STM32H733)) + # Cortex version + MCU = cortex-m7 + + # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 + ARMV = 7 + + ## chip/board settings + # - the next two should match the directories in + # /os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES) + # OR + # /os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) + MCU_FAMILY = STM32 + MCU_SERIES = STM32H7xx + + # Linker script to use + # - it should exist either in /os/common/startup/ARMCMx/compilers/GCC/ld/ + # or /ld/ + MCU_LDSCRIPT ?= STM32H723xG_ITCM64k + + # Startup code to use + # - it should exist in /os/common/startup/ARMCMx/compilers/GCC/mk/ + MCU_STARTUP ?= stm32h7xx + + # Board: it should exist either in /os/hal/boards/, + # /boards/, or drivers/boards/ + BOARD ?= GENERIC_STM32_H723XG + + PLATFORM_NAME ?= platform_type2 + + USE_FPU ?= yes + + # UF2 settings + UF2_FAMILY ?= STM32H7 + + # Bootloader address for STM32 DFU + STM32_BOOTLOADER_ADDRESS ?= 0x1FF09800 +endif + ifneq ($(findstring WB32F3G71, $(MCU)),) # Cortex version MCU = cortex-m3 -- cgit v1.3.1 From 43350c347d1a033e16ce6449d30bed1703c791d6 Mon Sep 17 00:00:00 2001 From: Duncan Sutherland Date: Fri, 7 Jul 2023 15:32:26 +0100 Subject: rename and modernise `dactyl_manuform/6x6_kinesis` (#21302) --- data/mappings/keyboard_aliases.hjson | 3 + keyboards/handwired/dactyl_kinesis/info.json | 141 +++++++++++++++++++++ .../dactyl_kinesis/keymaps/default/keymap.c | 38 ++++++ keyboards/handwired/dactyl_kinesis/readme.md | 109 ++++++++++++++++ keyboards/handwired/dactyl_kinesis/rules.mk | 1 + .../dactyl_manuform/6x6_kinesis/info.json | 130 ------------------- .../6x6_kinesis/keymaps/default/keymap.c | 52 -------- .../dactyl_manuform/6x6_kinesis/readme.md | 85 ------------- .../handwired/dactyl_manuform/6x6_kinesis/rules.mk | 13 -- 9 files changed, 292 insertions(+), 280 deletions(-) create mode 100644 keyboards/handwired/dactyl_kinesis/info.json create mode 100644 keyboards/handwired/dactyl_kinesis/keymaps/default/keymap.c create mode 100644 keyboards/handwired/dactyl_kinesis/readme.md create mode 100644 keyboards/handwired/dactyl_kinesis/rules.mk delete mode 100644 keyboards/handwired/dactyl_manuform/6x6_kinesis/info.json delete mode 100644 keyboards/handwired/dactyl_manuform/6x6_kinesis/keymaps/default/keymap.c delete mode 100644 keyboards/handwired/dactyl_manuform/6x6_kinesis/readme.md delete mode 100644 keyboards/handwired/dactyl_manuform/6x6_kinesis/rules.mk (limited to 'data') diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 6cf1e206e2..f89b496c26 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -212,6 +212,9 @@ "gmmk/pro/iso": { "target": "gmmk/pro/rev1/iso" }, + "handwired/dactyl_manuform/6x6_kinesis": { + "target": "handwired/dactyl_kinesis" + }, "handwired/ferris": { "target": "ferris/0_1" }, diff --git a/keyboards/handwired/dactyl_kinesis/info.json b/keyboards/handwired/dactyl_kinesis/info.json new file mode 100644 index 0000000000..91cb98e040 --- /dev/null +++ b/keyboards/handwired/dactyl_kinesis/info.json @@ -0,0 +1,141 @@ +{ + "keyboard_name": "Dactyl Kinesis", + "manufacturer": "dmik", + "url": "", + "maintainer": "dmik", + "usb": { + "vid": "0x444D", + "pid": "0x3636", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": false, + "audio": false, + "backlight": false, + "rgblight": false + }, + "rgblight": { + "led_count": 12 + }, + "ws2812": { + "pin": "D3" + }, + "matrix_pins": { + "cols": ["D4", "C6", "D7", "E6", "B4", "B5"], + "rows": ["F5", "F6", "F7", "B1", "B3", "B2", "B6"] + }, + "diode_direction": "COL2ROW", + "split": { + "enabled": true, + "soft_serial_pin": "D0" + }, + "development_board": "promicro", + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [7, 0], "x": 11, "y": 0}, + {"matrix": [7, 1], "x": 12, "y": 0}, + {"matrix": [7, 2], "x": 13, "y": 0}, + {"matrix": [7, 3], "x": 14, "y": 0}, + {"matrix": [7, 4], "x": 15, "y": 0}, + {"matrix": [7, 5], "x": 16, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + + {"matrix": [8, 0], "x": 11, "y": 1}, + {"matrix": [8, 1], "x": 12, "y": 1}, + {"matrix": [8, 2], "x": 13, "y": 1}, + {"matrix": [8, 3], "x": 14, "y": 1}, + {"matrix": [8, 4], "x": 15, "y": 1}, + {"matrix": [8, 5], "x": 16, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + + {"matrix": [9, 0], "x": 11, "y": 2}, + {"matrix": [9, 1], "x": 12, "y": 2}, + {"matrix": [9, 2], "x": 13, "y": 2}, + {"matrix": [9, 3], "x": 14, "y": 2}, + {"matrix": [9, 4], "x": 15, "y": 2}, + {"matrix": [9, 5], "x": 16, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + + {"matrix": [10, 0], "x": 11, "y": 3}, + {"matrix": [10, 1], "x": 12, "y": 3}, + {"matrix": [10, 2], "x": 13, "y": 3}, + {"matrix": [10, 3], "x": 14, "y": 3}, + {"matrix": [10, 4], "x": 15, "y": 3}, + {"matrix": [10, 5], "x": 16, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 4}, + {"matrix": [4, 4], "x": 4, "y": 4}, + {"matrix": [4, 5], "x": 5, "y": 4}, + + {"matrix": [11, 0], "x": 11, "y": 4}, + {"matrix": [11, 1], "x": 12, "y": 4}, + {"matrix": [11, 2], "x": 13, "y": 4}, + {"matrix": [11, 3], "x": 14, "y": 4}, + {"matrix": [11, 4], "x": 15, "y": 4}, + {"matrix": [11, 5], "x": 16, "y": 4}, + + {"matrix": [5, 0], "x": 1, "y": 5}, + {"matrix": [5, 1], "x": 2, "y": 5}, + {"matrix": [5, 2], "x": 3, "y": 5}, + {"matrix": [5, 3], "x": 4, "y": 5}, + + {"matrix": [12, 2], "x": 12, "y": 5}, + {"matrix": [12, 3], "x": 13, "y": 5}, + {"matrix": [12, 4], "x": 14, "y": 5}, + {"matrix": [12, 5], "x": 15, "y": 5}, + + {"matrix": [6, 4], "x": 6, "y": 6}, + {"matrix": [6, 5], "x": 7, "y": 6}, + + {"matrix": [13, 0], "x": 9, "y": 6}, + {"matrix": [13, 1], "x": 10, "y": 6}, + + {"matrix": [5, 4], "x": 5, "y": 7, "h": 2}, + {"matrix": [5, 5], "x": 6, "y": 7, "h": 2}, + + {"matrix": [12, 0], "x": 10, "y": 7, "h": 2}, + {"matrix": [12, 1], "x": 11, "y": 7, "h": 2}, + + {"matrix": [6, 3], "x": 7, "y": 7}, + {"matrix": [13, 2], "x": 9, "y": 7}, + + {"matrix": [6, 2], "x": 7, "y": 8}, + {"matrix": [13, 3], "x": 9, "y": 8} + ] + } + } +} diff --git a/keyboards/handwired/dactyl_kinesis/keymaps/default/keymap.c b/keyboards/handwired/dactyl_kinesis/keymaps/default/keymap.c new file mode 100644 index 0000000000..05e138da72 --- /dev/null +++ b/keyboards/handwired/dactyl_kinesis/keymaps/default/keymap.c @@ -0,0 +1,38 @@ +// Copyright 2012 Jun Wako +// Copyright 2021 Dmitriy Kuminov (@dmik) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum custom_layers { + _QWERTY, + _LOWER +}; + +#define LOWER MO(_LOWER) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_CAPS, + KC_EQL , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSLS, + KC_LCTL, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, + KC_GRV , LOWER , KC_LEFT, KC_RGHT, KC_UP , KC_DOWN, KC_LBRC, KC_RBRC, + KC_LGUI, KC_LALT, KC_RCTL, KC_RGUI, + KC_BSPC, KC_DEL, KC_HOME, KC_PGUP, KC_ENT , KC_SPC , + KC_END , KC_PGDN + ), + + [_LOWER] = LAYOUT( + _______, KC_F11 , KC_F12 , _______, _______, _______, KC_BRID, KC_BRIU, KC_MUTE, KC_VOLD, KC_VOLU, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, + _______, KC_INS , _______, _______, _______, _______, + _______, _______ + ) +}; diff --git a/keyboards/handwired/dactyl_kinesis/readme.md b/keyboards/handwired/dactyl_kinesis/readme.md new file mode 100644 index 0000000000..69427406d1 --- /dev/null +++ b/keyboards/handwired/dactyl_kinesis/readme.md @@ -0,0 +1,109 @@ +# Dactyl Kinesis + +Essentially a Dactyl CC physical key layout with an additional top row, further emulating the Kinesis Advantage (*1|2*) physical key layout. + +* Keyboard Maintainer: [dmik](https://github.com/dmik) +* Hardware Supported: Pro Micro controller, or clone of + +Make example for this keyboard (after setting up your build environment): + + make handwired/dactyl_kinesis:default + +Flashing example for this keyboard: + + make handwired/dactyl_kinesis:default:flash + +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). + +## Kinesis Advantage Keymap + +### About + +This keymap is designed after Kinesis Advantage's QWERTY layout with the following key differences: + - There are only 10 F-keys in the main layer, F1 and F2 are moved to additional LOWER layer. + - The INS key acts like a LOWER layer activation key and Del in LOWER layer ats like INS. + - LCtl is placed where CAPS should be and CAPS is moved to a free key after F10. + - Brigtness and volume control keys are added to LOWER layer. + + The keymap file also contains RAISE layer but it is currently equivalent to LOWER layer and does + not have an activation key mapped. It is intended for possible extensions. + +### Keymap + + Main QUERTY layer: + ,-------------------------------------------. ,-------------------------------------------. + | ESC | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | CAPS | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | LCtl | A | S | D | F | G | | H | J | K | L | ; | ' | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | LShift | Z | X | C | V | B | | N | M | , | . | / | RShift | + `--------+------+------+------+------+------' `------+------+------+------+------+--------' + | ` | LOWER| Left | Rght | | Up | Dn | [ | ] | + `---------------------------' `---------------------------' + ,-------------. ,-------------. + | LGui | LAlt | | RCtl | RGui | + ,------|------|------| |------+------+------. + | | | Home | | PgUp | | | + | BkSp | Del |------| |------|Enter |Space | + | | | End | | PgDn | | | + `--------------------' `--------------------' + + LOWER layer: + ,-------------------------------------------. ,-------------------------------------------. + | | F11 | F12 | | | | |BriDn |BriUp |VMute |VolDn |VolUp | | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | | | | | | | | | | | | | | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | | | | | | | | | | | | | | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | | | | | | | | | | | | | | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | | | | | | | | | | | | | | + `--------+------+------+------+------+------' `------+------+------+------+------+--------' + | | | | | | | | | | + `---------------------------' `---------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + | | | | | | | | + | | INS |------| |------| | | + | | | | | | | | + `--------------------' `--------------------' + +### Key Matrix Wiring + +The below picture shows correspondence between the keys and the row/column wires of the left and +right halves: + + ,-------------------------------------------. ,-------------------------------------------. + | L00 | L01 | L02 | L03 | L04 | L05 | | R00 | R01 | R02 | R03 | R04 | R05 | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | L10 | L11 | L12 | L13 | L14 | L15 | | R10 | R11 | R12 | R13 | R14 | R15 | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | L20 | L21 | L22 | L23 | L24 | L25 | | R20 | R21 | R22 | R23 | R24 | R25 | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | L30 | L31 | L32 | L33 | L34 | L35 | | R30 | R31 | R32 | R33 | R34 | R35 | + |--------+------+------+------+------+------| |------+------+------+------+------+--------| + | L40 | L41 | L42 | L43 | L44 | L45 | | R40 | R41 | R42 | R43 | R44 | R45 | + `--------+------+------+------+------+------' `------+------+------+------+------+--------' + | L50 | L51 | L52 | L53 | | R52 | R53 | R54 | R55 | + `---------------------------' `---------------------------' + ,-------------. ,-------------. + | L64 | L65 | | R60 | R61 | + ,------|------|------| |------+------+------. + | | | L63 | | R62 | | | + | L54 | L55 |------| |------| R50 | R51 | + | | | L62 | | R63 | | | + `--------------------' `--------------------' + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/dactyl_kinesis/rules.mk b/keyboards/handwired/dactyl_kinesis/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/handwired/dactyl_kinesis/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/dactyl_manuform/6x6_kinesis/info.json b/keyboards/handwired/dactyl_manuform/6x6_kinesis/info.json deleted file mode 100644 index 3dd74aa3f6..0000000000 --- a/keyboards/handwired/dactyl_manuform/6x6_kinesis/info.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "keyboard_name": "Dactyl-Manuform (6x6+4)", - "manufacturer": "tshort", - "url": "", - "maintainer": "dmik", - "usb": { - "vid": "0x444D", - "pid": "0x3636", - "device_version": "0.0.1" - }, - "rgblight": { - "led_count": 12 - }, - "ws2812": { - "pin": "D3" - }, - "matrix_pins": { - "cols": ["D4", "C6", "D7", "E6", "B4", "B5"], - "rows": ["F5", "F6", "F7", "B1", "B3", "B2", "B6"] - }, - "diode_direction": "COL2ROW", - "split": { - "soft_serial_pin": "D0" - }, - "processor": "atmega32u4", - "bootloader": "caterina", - "layouts": { - "LAYOUT_6x6_kinesis": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - - {"matrix": [7, 0], "x": 11, "y": 0}, - {"matrix": [7, 1], "x": 12, "y": 0}, - {"matrix": [7, 2], "x": 13, "y": 0}, - {"matrix": [7, 3], "x": 14, "y": 0}, - {"matrix": [7, 4], "x": 15, "y": 0}, - {"matrix": [7, 5], "x": 16, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 5, "y": 1}, - - {"matrix": [8, 0], "x": 11, "y": 1}, - {"matrix": [8, 1], "x": 12, "y": 1}, - {"matrix": [8, 2], "x": 13, "y": 1}, - {"matrix": [8, 3], "x": 14, "y": 1}, - {"matrix": [8, 4], "x": 15, "y": 1}, - {"matrix": [8, 5], "x": 16, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2}, - {"matrix": [2, 5], "x": 5, "y": 2}, - - {"matrix": [9, 0], "x": 11, "y": 2}, - {"matrix": [9, 1], "x": 12, "y": 2}, - {"matrix": [9, 2], "x": 13, "y": 2}, - {"matrix": [9, 3], "x": 14, "y": 2}, - {"matrix": [9, 4], "x": 15, "y": 2}, - {"matrix": [9, 5], "x": 16, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3}, - {"matrix": [3, 1], "x": 1, "y": 3}, - {"matrix": [3, 2], "x": 2, "y": 3}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3}, - {"matrix": [3, 5], "x": 5, "y": 3}, - - {"matrix": [10, 0], "x": 11, "y": 3}, - {"matrix": [10, 1], "x": 12, "y": 3}, - {"matrix": [10, 2], "x": 13, "y": 3}, - {"matrix": [10, 3], "x": 14, "y": 3}, - {"matrix": [10, 4], "x": 15, "y": 3}, - {"matrix": [10, 5], "x": 16, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4}, - {"matrix": [4, 1], "x": 1, "y": 4}, - {"matrix": [4, 2], "x": 2, "y": 4}, - {"matrix": [4, 3], "x": 3, "y": 4}, - {"matrix": [4, 4], "x": 4, "y": 4}, - {"matrix": [4, 5], "x": 5, "y": 4}, - - {"matrix": [11, 0], "x": 11, "y": 4}, - {"matrix": [11, 1], "x": 12, "y": 4}, - {"matrix": [11, 2], "x": 13, "y": 4}, - {"matrix": [11, 3], "x": 14, "y": 4}, - {"matrix": [11, 4], "x": 15, "y": 4}, - {"matrix": [11, 5], "x": 16, "y": 4}, - - {"matrix": [5, 0], "x": 1, "y": 5}, - {"matrix": [5, 1], "x": 2, "y": 5}, - {"matrix": [5, 2], "x": 3, "y": 5}, - {"matrix": [5, 3], "x": 4, "y": 5}, - - {"matrix": [12, 2], "x": 12, "y": 5}, - {"matrix": [12, 3], "x": 13, "y": 5}, - {"matrix": [12, 4], "x": 14, "y": 5}, - {"matrix": [12, 5], "x": 15, "y": 5}, - - {"matrix": [5, 4], "x": 5, "y": 7, "h": 2}, - {"matrix": [5, 5], "x": 6, "y": 7, "h": 2}, - - {"matrix": [12, 0], "x": 10, "y": 7, "h": 2}, - {"matrix": [12, 1], "x": 11, "y": 7, "h": 2}, - - {"matrix": [6, 4], "x": 6, "y": 6}, - {"matrix": [6, 5], "x": 7, "y": 6}, - - {"matrix": [13, 0], "x": 9, "y": 6}, - {"matrix": [13, 1], "x": 10, "y": 6}, - - {"matrix": [6, 2], "x": 7, "y": 8}, - {"matrix": [6, 3], "x": 7, "y": 7}, - - {"matrix": [13, 2], "x": 9, "y": 7}, - {"matrix": [13, 3], "x": 9, "y": 8} - ] - } - } -} diff --git a/keyboards/handwired/dactyl_manuform/6x6_kinesis/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform/6x6_kinesis/keymaps/default/keymap.c deleted file mode 100644 index 2ef9794d6d..0000000000 --- a/keyboards/handwired/dactyl_manuform/6x6_kinesis/keymaps/default/keymap.c +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2012 Jun Wako -// Copyright 2021 Dmitriy Kuminov (@dmik) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -enum custom_layers { - _QWERTY, - _LOWER, - _RAISE, -}; - -#define RAISE MO(_RAISE) -#define LOWER MO(_LOWER) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_6x6_kinesis( - KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_CAPS, - KC_EQL , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, - KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSLS, - KC_LCTL, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, - KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, - KC_GRV , LOWER , KC_LEFT, KC_RGHT, KC_UP , KC_DOWN, KC_LBRC, KC_RBRC, - KC_BSPC, KC_DEL , KC_ENT , KC_SPC , - KC_LGUI, KC_LALT, KC_RCTL, KC_RGUI, - KC_END , KC_HOME, KC_PGUP, KC_PGDN - ), - - [_LOWER] = LAYOUT_6x6_kinesis( - _______, KC_F11 , KC_F12 , _______, _______, _______, KC_BRID, KC_BRIU, KC_MUTE, KC_VOLD, KC_VOLU, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_INS , _______, _______, - _______, _______, _______, _______, - _______, _______, _______, _______ - ), - - [_RAISE] = LAYOUT_6x6_kinesis( - _______, KC_F11 , KC_F12 , _______, _______, _______, KC_BRID, KC_BRIU, KC_MUTE, KC_VOLD, KC_VOLU, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_INS , _______, _______, - _______, _______, _______, _______, - _______, _______, _______, _______ - ), -}; diff --git a/keyboards/handwired/dactyl_manuform/6x6_kinesis/readme.md b/keyboards/handwired/dactyl_manuform/6x6_kinesis/readme.md deleted file mode 100644 index 1e44cc9601..0000000000 --- a/keyboards/handwired/dactyl_manuform/6x6_kinesis/readme.md +++ /dev/null @@ -1,85 +0,0 @@ -# Kinesis Advantage Keymap - -## About this keymap - -This keymap is designed after Kinesis Advantage's QWERTY layout with the following key differences: - - There are only 10 F-keys in the main layer, F1 and F2 are moved to additional LOWER layer. - - The INS key acts like a LOWER layer activation key and Del in LOWER layer ats like INS. - - LCtl is placed where CAPS should be and CAPS is moved to a free key after F10. - - Brigtness and volume control keys are added to LOWER layer. - - The keymap file also contains RAISE layer but it is currently equivalent to LOWER layer and does - not have an activation key mapped. It is intended for possible extensions. - -## Mapping details - - Main QUERTY layer: - ,-------------------------------------------. ,-------------------------------------------. - | ESC | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | CAPS | - |--------+------+------+------+------+------| |------+------+------+------+------+--------| - | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | - |--------+------+------+------+------+------| |------+------+------+------+------+--------| - | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ | - |--------+------+------+------+------+------| |------+------+------+------+------+--------| - | LCtl | A | S | D | F | G | | H | J | K | L | ; | ' | - |--------+------+------+------+------+------| |------+------+------+------+------+--------| - | LShift | Z | X | C | V | B | | N | M | , | . | / | RShift | - `--------+------+------+------+------+------' `------+------+------+------+------+--------' - | ` | LOWER| Left | Rght | | Up | Dn | [ | ] | - `---------------------------' `---------------------------' - ,-------------. ,-------------. - | LGui | LAlt | | RCtl | RGui | - ,------|------|------| |------+------+------. - | | | Home | | PgUp | | | - | BkSp | Del |------| |------|Enter |Space | - | | | End | | PgDn | | | - `--------------------' `--------------------' - - LOWER layer: - ,-------------------------------------------. ,-------------------------------------------. - | | F11 | F12 | | | | |BriDn |BriUp |VMute |VolDn |VolUp | | - |--------+------+------+------+------+------| |------+------+------+------+------+--------| - | | | | | | | | | | | | | | - |--------+------+------+------+------+------| |------+------+------+------+------+--------| - | | | | | | | | | | | | | | - |--------+------+------+------+------+------| |------+------+------+------+------+--------| - | | | | | | | | | | | | | | - |--------+------+------+------+------+------| |------+------+------+------+------+--------| - | | | | | | | | | | | | | | - `--------+------+------+------+------+------' `------+------+------+------+------+--------' - | | | | | | | | | | - `---------------------------' `---------------------------' - ,-------------. ,-------------. - | | | | | | - ,------|------|------| |------+------+------. - | | | | | | | | - | | INS |------| |------| | | - | | | | | | | | - `--------------------' `--------------------' - -## Soldering details - -The below picture shows correspondence between the keys and the row/column wires of the left and -right halves: - - LOWER layer: - ,-------------------------------------------. ,-------------------------------------------. - | L00 | L01 | L02 | L03 | L04 | L05 | | R00 | R01 | R02 | R03 | R04 | R05 | - |--------+------+------+------+------+------| |------+------+------+------+------+--------| - | L10 | L11 | L12 | L13 | L14 | L15 | | R10 | R11 | R12 | R13 | R14 | R15 | - |--------+------+------+------+------+------| |------+------+------+------+------+--------| - | L20 | L21 | L22 | L23 | L24 | L25 | | R20 | R21 | R22 | R23 | R24 | R25 | - |--------+------+------+------+------+------| |------+------+------+------+------+--------| - | L30 | L31 | L32 | L33 | L34 | L35 | | R30 | R31 | R32 | R33 | R34 | R35 | - |--------+------+------+------+------+------| |------+------+------+------+------+--------| - | L40 | L41 | L42 | L43 | L44 | L45 | | R40 | R41 | R42 | R43 | R44 | R45 | - `--------+------+------+------+------+------' `------+------+------+------+------+--------' - | L50 | L51 | L52 | L53 | | R52 | R53 | R54 | R55 | - `---------------------------' `---------------------------' - ,-------------. ,-------------. - | L64 | L65 | | R60 | R61 | - ,------|------|------| |------+------+------. - | | | L63 | | R62 | | | - | L54 | L55 |------| |------| R50 | R51 | - | | | L62 | | R63 | | | - `--------------------' `--------------------' diff --git a/keyboards/handwired/dactyl_manuform/6x6_kinesis/rules.mk b/keyboards/handwired/dactyl_manuform/6x6_kinesis/rules.mk deleted file mode 100644 index b893863bb5..0000000000 --- a/keyboards/handwired/dactyl_manuform/6x6_kinesis/rules.mk +++ /dev/null @@ -1,13 +0,0 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -SPLIT_KEYBOARD = yes -- cgit v1.3.1 From b20b3604042536640b5f29f85656cd55ef459180 Mon Sep 17 00:00:00 2001 From: Duncan Sutherland Date: Thu, 20 Jul 2023 21:03:23 +0100 Subject: Rename `dactyl_manuform` variant `3x5_3` (#21015) --- data/mappings/keyboard_aliases.hjson | 3 + keyboards/handwired/dactyl_manuform/3x5_3/3x5_3.c | 66 ---- keyboards/handwired/dactyl_manuform/3x5_3/config.h | 30 -- .../handwired/dactyl_manuform/3x5_3/info.json | 77 ---- .../dactyl_manuform/3x5_3/keymaps/default/keymap.c | 26 -- .../dactyl_manuform/3x5_3/keymaps/dlford/config.h | 105 ------ .../3x5_3/keymaps/dlford/features/caps_word.c | 76 ---- .../3x5_3/keymaps/dlford/features/caps_word.h | 36 -- .../dactyl_manuform/3x5_3/keymaps/dlford/keymap.c | 386 --------------------- .../dactyl_manuform/3x5_3/keymaps/dlford/rules.mk | 17 - keyboards/handwired/dactyl_manuform/3x5_3/rules.mk | 18 - keyboards/handwired/dactyl_minidox/3x5_3.c | 66 ++++ keyboards/handwired/dactyl_minidox/config.h | 30 ++ keyboards/handwired/dactyl_minidox/info.json | 80 +++++ .../dactyl_minidox/keymaps/default/keymap.c | 26 ++ .../dactyl_minidox/keymaps/dlford/config.h | 105 ++++++ .../keymaps/dlford/features/caps_word.c | 76 ++++ .../keymaps/dlford/features/caps_word.h | 36 ++ .../dactyl_minidox/keymaps/dlford/keymap.c | 386 +++++++++++++++++++++ .../dactyl_minidox/keymaps/dlford/rules.mk | 17 + .../handwired/dactyl_minidox/keymaps/via/config.h | 23 ++ .../handwired/dactyl_minidox/keymaps/via/keymap.c | 37 ++ .../handwired/dactyl_minidox/keymaps/via/rules.mk | 1 + keyboards/handwired/dactyl_minidox/readme.md | 27 ++ keyboards/handwired/dactyl_minidox/rules.mk | 12 + 25 files changed, 925 insertions(+), 837 deletions(-) delete mode 100644 keyboards/handwired/dactyl_manuform/3x5_3/3x5_3.c delete mode 100644 keyboards/handwired/dactyl_manuform/3x5_3/config.h delete mode 100644 keyboards/handwired/dactyl_manuform/3x5_3/info.json delete mode 100644 keyboards/handwired/dactyl_manuform/3x5_3/keymaps/default/keymap.c delete mode 100644 keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/config.h delete mode 100644 keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/features/caps_word.c delete mode 100644 keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/features/caps_word.h delete mode 100644 keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/keymap.c delete mode 100644 keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/rules.mk delete mode 100644 keyboards/handwired/dactyl_manuform/3x5_3/rules.mk create mode 100644 keyboards/handwired/dactyl_minidox/3x5_3.c create mode 100644 keyboards/handwired/dactyl_minidox/config.h create mode 100644 keyboards/handwired/dactyl_minidox/info.json create mode 100644 keyboards/handwired/dactyl_minidox/keymaps/default/keymap.c create mode 100644 keyboards/handwired/dactyl_minidox/keymaps/dlford/config.h create mode 100644 keyboards/handwired/dactyl_minidox/keymaps/dlford/features/caps_word.c create mode 100644 keyboards/handwired/dactyl_minidox/keymaps/dlford/features/caps_word.h create mode 100644 keyboards/handwired/dactyl_minidox/keymaps/dlford/keymap.c create mode 100644 keyboards/handwired/dactyl_minidox/keymaps/dlford/rules.mk create mode 100644 keyboards/handwired/dactyl_minidox/keymaps/via/config.h create mode 100644 keyboards/handwired/dactyl_minidox/keymaps/via/keymap.c create mode 100644 keyboards/handwired/dactyl_minidox/keymaps/via/rules.mk create mode 100644 keyboards/handwired/dactyl_minidox/readme.md create mode 100644 keyboards/handwired/dactyl_minidox/rules.mk (limited to 'data') diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 9367b052d4..2d735f18f4 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -212,6 +212,9 @@ "gmmk/pro/iso": { "target": "gmmk/pro/rev1/iso" }, + "handwired/dactyl_manuform/3x5_3": { + "target": "handwired/dactyl_minidox" + }, "handwired/dactyl_manuform/6x6_kinesis": { "target": "handwired/dactyl_kinesis" }, diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/3x5_3.c b/keyboards/handwired/dactyl_manuform/3x5_3/3x5_3.c deleted file mode 100644 index 5afb908d02..0000000000 --- a/keyboards/handwired/dactyl_manuform/3x5_3/3x5_3.c +++ /dev/null @@ -1,66 +0,0 @@ -/* -Copyright 2021 @dlford - -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 . -*/ -#include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE - -// LED Layout -// Columns -// 0 1 2 3 4 5 6 7 8 9 10 11 -// Physical (Center: 133) -// 20 41 61 81 102 122 143 163 183 204 224 244 -// Rows Physical (Center: 54) -// 17 12 11 06 05 23 24 29 30 35 0 21 -// 16 13 10 07 04 22 25 28 31 34 1 43 -// 15 14 09 08 03 21 26 27 32 33 2 64 -// 02 01 00 18 19 20 3 85 - -led_config_t g_led_config = { { - // Key matrix to LED index - // Left 1-18 - {17, 12, 11, 6, 5}, - {16, 13, 10, 7, 4}, - {15, 14, 9, 8, 3}, - {NO_LED, NO_LED, 2, 1, 0}, - // Right 1-18 - {23, 24, 29, 30, 35}, - {22, 25, 28, 31, 34}, - {21, 26, 27, 32, 33}, - {18, 19, 20, NO_LED, NO_LED}, -}, { - // LED index to physical position - // Left 1-18 - {122,85},{102,85},{81,85},{102,64},{102,43},{102,21}, - {81,21},{81,43},{81,64},{61,64},{61,43},{61,21}, - {41,21},{41,43},{41,64},{20,64},{20,43},{20,21}, - // Right 1-18 - {143,85},{163,85},{183,85},{163,64},{163,43},{163,21}, - {183,21},{183,43},{183,64},{204,64},{204,43},{204,21}, - {224,21},{224,43},{224,64},{244,64},{244,43},{244,21} -}, { - // LED index to flag - // Left 1-18 - 4,4,4,4,4,4, - 4,4,4,4,4,4, - 4,4,4,4,4,4, - // Right 1-18 - 4,4,4,4,4,4, - 4,4,4,4,4,4, - 4,4,4,4,4,4 -} }; - -#endif diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/config.h b/keyboards/handwired/dactyl_manuform/3x5_3/config.h deleted file mode 100644 index d84e9b6440..0000000000 --- a/keyboards/handwired/dactyl_manuform/3x5_3/config.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert -Copyright 2021 @dlford -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 . -*/ - -#pragma once - -// WS2812 RGB LED strip input and number of LEDs -#define RGB_MATRIX_LED_COUNT 36 -#define RGB_MATRIX_SPLIT { 18, 18 } -#define RGB_MATRIX_CENTER { 133, 54 } - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#undef LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#undef LOCKING_RESYNC_ENABLE - -/* Enables This makes it easier for fast typists to use dual-function keys */ -#undef PERMISSIVE_HOLD diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/info.json b/keyboards/handwired/dactyl_manuform/3x5_3/info.json deleted file mode 100644 index cfe109fb37..0000000000 --- a/keyboards/handwired/dactyl_manuform/3x5_3/info.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "keyboard_name": "Dactyl Minidox (3x5+3)", - "manufacturer": "DLFord", - "url": "https://www.dlford.io/keyboard-build-guide-per-key-rgb-leds/", - "maintainer": "dlford", - "usb": { - "vid": "0x444D", - "pid": "0x3536", - "device_version": "0.0.3" - }, - "ws2812": { - "pin": "D3" - }, - "rgb_matrix": { - "driver": "WS2812" - }, - "matrix_pins": { - "cols": ["C6", "D7", "E6", "B4", "B5"], - "rows": ["B1", "B3", "B2", "B6"] - }, - "diode_direction": "ROW2COL", - "split": { - "soft_serial_pin": "D0" - }, - "processor": "atmega32u4", - "bootloader": "caterina", - "community_layouts": ["split_3x5_3"], - "layouts": { - "LAYOUT_split_3x5_3": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - - {"matrix": [4, 0], "x": 10, "y": 0}, - {"matrix": [4, 1], "x": 11, "y": 0}, - {"matrix": [4, 2], "x": 12, "y": 0}, - {"matrix": [4, 3], "x": 13, "y": 0}, - {"matrix": [4, 4], "x": 14, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - - {"matrix": [5, 0], "x": 10, "y": 1}, - {"matrix": [5, 1], "x": 11, "y": 1}, - {"matrix": [5, 2], "x": 12, "y": 1}, - {"matrix": [5, 3], "x": 13, "y": 1}, - {"matrix": [5, 4], "x": 14, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2}, - - {"matrix": [6, 0], "x": 10, "y": 2}, - {"matrix": [6, 1], "x": 11, "y": 2}, - {"matrix": [6, 2], "x": 12, "y": 2}, - {"matrix": [6, 3], "x": 13, "y": 2}, - {"matrix": [6, 4], "x": 14, "y": 2}, - - {"matrix": [3, 2], "x": 2, "y": 3}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3}, - - {"matrix": [7, 0], "x": 10, "y": 3}, - {"matrix": [7, 1], "x": 11, "y": 3}, - {"matrix": [7, 2], "x": 12, "y": 3} - ] - } - } -} diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/default/keymap.c deleted file mode 100644 index abd6433558..0000000000 --- a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/default/keymap.c +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2022 QMK -// SPDX-License-Identifier: GPL-2.0-or-later -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ - * │ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │ - * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ - * │ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ - * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ - * │ Z │ X │ C │ V │ B │ │ N │ M │ , │ . │ / │ - * └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ - * ┌───┐ ┌───┐ - * │GUI├───┐ ┌───┤Alt│ - * └───┤Bsp├───┐ ┌───┤Ent├───┘ - * └───┤ │ │ ├───┘ - * └───┘ └───┘ - */ - [0] = LAYOUT_split_3x5_3( - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, - KC_LGUI, KC_BSPC, KC_SPC, KC_SPC, KC_ENT, KC_RALT - ) -}; diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/config.h b/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/config.h deleted file mode 100644 index 783a2c46b1..0000000000 --- a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/config.h +++ /dev/null @@ -1,105 +0,0 @@ -/* -Copyright 2012 Jun Wako -Copyright 2021 @dlford -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 . -*/ - -#pragma once - -//#define USE_MATRIX_I2C - -/* Select hand configuration */ - -// #define MASTER_LEFT -// #define MASTER_RIGHT -#define EE_HANDS // ./util/docker_build.sh crkbd:dlford:dfu-split-[left|right] (or avrdude-split[left|right]) - -#define TAPPING_TOGGLE 2 // number of taps to toggle TT -#define TAPPING_TERM_PER_KEY // milliseconds from tap to hold for mod tap per key -#define PERMISSIVE_HOLD_PER_KEY // activate mod top hold earlier if another key is pressed AND released per key -#define QUICK_TAP_TERM_PER_KEY // disable double tap hold key repeat per key -#undef MOUSEKEY_INTERVAL -#undef MOUSEKEY_DELAY -#undef MOUSEKEY_TIME_TO_MAX -#undef MOUSEKEY_MAX_SPEED -#undef MOUSEKEY_WHEEL_DELAY -#define MK_KINETIC_SPEED -#define MOUSEKEY_DELAY 100 -#define MOUSEKEY_INTERVAL 35 -#define MOUSEKEY_MOVE_DELTA 5 -#define MOUSEKEY_INITIAL_SPEED 1 -#define MOUSEKEY_DECELERATED_SPEED 10 -#define MOUSEKEY_BASE_SPEED 1200 -#define MOUSEKEY_ACCELERATED_SPEED 4800 - -#ifdef RGB_MATRIX_ENABLE -// # define RGB_MATRIX_TIMEOUT 300000 // number of milliseconds to wait until disabling effects -// # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended -# define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) -# define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) -# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. -# define RGB_MATRIX_HUE_STEP 8 -# define RGB_MATRIX_SAT_STEP 8 -# define RGB_MATRIX_VAL_STEP 8 -# define RGB_MATRIX_SPD_STEP 10 - -// Enable animations -// # define ENABLE_RGB_MATRIX_ALPHAS_MODS // Static dual hue speed is hue for secondary hue -// # define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Static gradient top to bottom speed controls how much gradient changes -// # define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Static gradient left to right speed controls how much gradient changes -// # define ENABLE_RGB_MATRIX_BREATHING // Single hue brightness cycling animation -// # define ENABLE_RGB_MATRIX_BAND_SAT // Single hue band fading saturation scrolling left to right -// # define ENABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right -// # define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades saturation -// # define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness -// # define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT // Single hue spinning spiral fades saturation -// # define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Single hue spinning spiral fades brightness -// # define ENABLE_RGB_MATRIX_CYCLE_ALL // Full keyboard solid hue cycling through full gradient -// # define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Full gradient scrolling left to right -// # define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN // Full gradient scrolling top to bottom -// # define ENABLE_RGB_MATRIX_CYCLE_OUT_IN // Full gradient scrolling out to in -// # define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Full dual gradients scrolling out to in -// # define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Full gradent Chevron shapped scrolling left to right -// # define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL // Full gradient spinning pinwheel around center of keyboard -# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard -// # define ENABLE_RGB_MATRIX_DUAL_BEACON // Full gradient spinning around center of keyboard -// # define ENABLE_RGB_MATRIX_RAINBOW_BEACON // Full tighter gradient spinning around center of keyboard -// # define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Full dual gradients spinning two halfs of keyboard -// # define ENABLE_RGB_MATRIX_RAINDROPS // Randomly changes a single key's hue -// # define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Randomly changes a single key's hue and saturation -// # define ENABLE_RGB_MATRIX_HUE_BREATHING // Hue shifts up a slight ammount at the same time then shifts back -// # define ENABLE_RGB_MATRIX_HUE_PENDULUM // Hue shifts up a slight ammount in a wave to the right then back to the left -# define ENABLE_RGB_MATRIX_HUE_WAVE // Hue shifts up a slight ammount and then back down in a wave to the right -// # define RGB_MATRIX_FRAMEBUFFER_EFFECTS // Required for the following two effects -// # define ENABLE_RGB_MATRIX_TYPING_HEATMAP // How hot is your WPM! -// # define ENABLE_RGB_MATRIX_DIGITAL_RAIN // That famous computer simulation -// # define RGB_MATRIX_KEYPRESSES // reacts to keypresses, required for the remaining effects -// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) -// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Pulses keys hit to hue & value then fades value out -// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE // Static single hue pulses keys hit to shifted hue then fades to current hue -// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out -// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Hue & value pulse near multiple key hits then fades value out -// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out -// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Hue & value pulse the same column and row of multiple key hits then fades value out -// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of a single key hit then fades value out -// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multiple key hits then fades value out -// # define ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out -// # define ENABLE_RGB_MATRIX_MULTISPLASH // Full gradient & value pulse away from multiple key hits then fades value out -// # define ENABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out -// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out -#endif - -// Features I don't want, remove to save space -// #define NO_ACTION_ONESHOT // Used by caps word -#define NO_ACTION_FUNCTION -#define NO_ACTION_MACRO -#define NO_USB_STARTUP_CHECK diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/features/caps_word.c b/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/features/caps_word.c deleted file mode 100644 index ee295c7305..0000000000 --- a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/features/caps_word.c +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2021 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// -// For full documentation, see -// https://getreuer.info/posts/keyboards/caps-word - -#include "caps_word.h" -bool caps_word_enabled = false; - -bool process_caps_word(uint16_t keycode, keyrecord_t* record) { - static bool shifted = false; - - if (!caps_word_enabled) { - // Pressing both shift keys at the same time enables caps word. - if (((get_mods() | get_oneshot_mods()) & MOD_MASK_SHIFT) - == MOD_MASK_SHIFT) { - clear_mods(); - clear_oneshot_mods(); - shifted = false; - caps_word_enabled = true; - return false; - } - return true; - } - - if (!record->event.pressed) { return true; } - - if (!((get_mods() | get_oneshot_mods()) & ~MOD_MASK_SHIFT)) { - switch (keycode) { - case QK_MOD_TAP ... QK_MOD_TAP_MAX: - case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: - // Earlier return if this has not been considered tapped yet. - if (record->tap.count == 0) { return true; } - // Get the base tapping keycode of a mod- or layer-tap key. - keycode &= 0xff; - } - - switch (keycode) { - // Letter keys should be shifted. - case KC_A ... KC_Z: - if (!shifted) { register_code(KC_LSFT); } - shifted = true; - return true; - - // Keycodes that continue caps word but shouldn't get shifted. - case KC_1 ... KC_0: - case KC_BSPC: - case KC_MINS: - case KC_UNDS: - if (shifted) { unregister_code(KC_LSFT); } - shifted = false; - return true; - - // Any other keycode disables caps word. - } - } - - // Disable caps word. - caps_word_enabled = false; - if (shifted) { unregister_code(KC_LSFT); } - shifted = false; - return true; -} - diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/features/caps_word.h b/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/features/caps_word.h deleted file mode 100644 index a609a32544..0000000000 --- a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/features/caps_word.h +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2021 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// -// Caps Word, activated by pressing both shift keys at the same time. -// -// This library implements "Caps Word", which is like conventional Caps Lock, -// but automatically disables itself at the end of the word. This is useful for -// typing all-caps identifiers like `MOD_MASK_ALT`. -// -// Caps Word is activated by pressing the left and right shift keys at the same -// time. This way you don't need a dedicated key for using Caps Word. I've -// tested that this works as expected with one-shot mods and Space Cadet Shift. -// If your shift keys are mod-taps, activate Caps Word by holding both shift -// mod-tap keys until the tapping term, release them, then begin typing. -// -// For full documentation, see -// https://getreuer.info/posts/keyboards/caps-word - -#pragma once - -#include QMK_KEYBOARD_H - -bool process_caps_word(uint16_t keycode, keyrecord_t* record); -extern bool caps_word_enabled; diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/keymap.c b/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/keymap.c deleted file mode 100644 index bdacde1a85..0000000000 --- a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/keymap.c +++ /dev/null @@ -1,386 +0,0 @@ -/* -Copyright 2019 @foostan -Copyright 2020 Drashna Jaelre <@drashna> -Copyright 2021 @dlford - -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 . -*/ - -#include QMK_KEYBOARD_H -#include "features/caps_word.h" - -// Layers -enum layers { - _QWERTY = 0, - _COLEMAK, - _NAVIGATION, - _SPECIAL, - _MOUSE, -}; - -static uint16_t default_animation = RGB_MATRIX_CYCLE_SPIRAL; -static int default_speed = 50; -static uint16_t secondary_animation = RGB_MATRIX_HUE_WAVE; -static int secondary_speed = 150; -static bool is_macro_recording = false; - -// Init -void keyboard_post_init_user(void) { - rgb_matrix_sethsv_noeeprom(HSV_PURPLE); - rgb_matrix_mode_noeeprom(default_animation); - rgb_matrix_set_speed_noeeprom(default_speed); -} - -// Permissive hold per key -bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case LT(3, KC_SPC): - return true; // Enable permissive hold - case LT(2, KC_TAB): - return true; - default: - return false; // Disable permissive hold - } -} - -// Tapping force hold per key -uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case LT(3, KC_SPC): - return 0; // Enable force hold - case LT(2, KC_TAB): - return 0; - default: - return QUICK_TAP_TERM; // Disable force hold - } -} - -// Tapping term per key -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case C_S_T(KC_E): - case C_S_T(KC_I): - return 215; - default: - return 190; - } -} - -// RGB timeout -#define RGB_CUSTOM_TIMEOUT 5 // in minutes -static uint16_t idle_timer = 0; -static uint8_t halfmin_counter = 0; -static bool led_on = true; -void matrix_scan_user(void) { - if (is_keyboard_master()) { - // idle_timer needs to be set one time - if (idle_timer == 0) idle_timer = timer_read(); - - if (led_on && timer_elapsed(idle_timer) > 30000) { - halfmin_counter++; - idle_timer = timer_read(); - } - - if (led_on && halfmin_counter >= RGB_CUSTOM_TIMEOUT * 2) { - rgb_matrix_disable_noeeprom(); - led_on = false; - halfmin_counter = 0; - } - } -} - -// Macros -enum macro_events { - M_KEYMAP = SAFE_RANGE, - M_COMM, - M_DOT, -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - // RGB resume - if (is_keyboard_master()) { - if (record->event.pressed) { - if (led_on == false) { - rgb_matrix_enable_noeeprom(); - led_on = true; - } - idle_timer = timer_read(); - halfmin_counter = 0; - } - } - - // Caps word - if (!process_caps_word(keycode, record)) { return false; } - - // Macros - const uint8_t mods = get_mods(); - static uint8_t backstepCounter = 0; - static bool keyDown = false; - switch (keycode) { - case M_KEYMAP: - if (record->event.pressed) { - SEND_STRING("https://raw.githubusercontent.com/dlford/qmk_firmware/master/keyboards/crkbd/keymaps/dlford/legends.svg"); - } - return false; - case M_COMM: - if (record->event.pressed) { - if ((mods & MOD_BIT(KC_LCTL)) && (mods & MOD_BIT(KC_LSFT) && (mods & MOD_BIT(KC_LALT)))) { - backstepCounter = 1; - clear_mods(); - SEND_STRING("<>"); - } else if ((mods & MOD_BIT(KC_LCTL)) && (mods & MOD_BIT(KC_LALT))) { - backstepCounter = 1; - clear_mods(); - SEND_STRING("()"); - } else if ((mods & MOD_BIT(KC_LCTL)) && (mods & MOD_BIT(KC_LSFT))) { - backstepCounter = 2; - clear_mods(); - SEND_STRING("{};"); - } else if (mods & MOD_BIT(KC_LCTL)) { - backstepCounter = 1; - clear_mods(); - SEND_STRING("{}"); - } else if ((mods & MOD_BIT(KC_LALT)) && (mods & MOD_BIT(KC_LSFT))) { - backstepCounter = 2; - clear_mods(); - SEND_STRING("[];"); - } else if (mods & MOD_BIT(KC_LALT)) { - backstepCounter = 1; - clear_mods(); - SEND_STRING("[]"); - } else { - keyDown = true; - register_code(KC_COMM); - return true; - } - if (backstepCounter) { - while (backstepCounter > 0) { - tap_code(KC_LEFT); - backstepCounter--; - } - set_mods(mods); - } - } else { - if (keyDown) { - unregister_code(KC_COMM); - keyDown = false; - return true; - } - } - return false; - case M_DOT: - if (record->event.pressed) { - if (mods & MOD_BIT(KC_LCTL)) { - clear_mods(); - SEND_STRING("=>"); - } else if (mods & MOD_BIT(KC_LALT)) { - clear_mods(); - SEND_STRING("->"); - } else { - keyDown = true; - register_code(KC_DOT); - return true; - } - } else { - if (keyDown) { - unregister_code(KC_DOT); - keyDown = false; - return true; - } - } - set_mods(mods); - return false; - } - - return true; -} - -// RGB Layers (Enable animations in config.h) -layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { - case _SPECIAL: - rgb_matrix_sethsv_noeeprom(HSV_ORANGE); - rgb_matrix_set_speed_noeeprom(secondary_speed); - rgb_matrix_mode_noeeprom(secondary_animation); - break; - case _NAVIGATION: - rgb_matrix_sethsv_noeeprom(HSV_BLUE); - rgb_matrix_set_speed_noeeprom(secondary_speed); - rgb_matrix_mode_noeeprom(secondary_animation); - break; - case _MOUSE: - rgb_matrix_sethsv_noeeprom(HSV_GREEN); - rgb_matrix_set_speed_noeeprom(secondary_speed); - rgb_matrix_mode_noeeprom(secondary_animation); - break; - default: - rgb_matrix_sethsv_noeeprom(HSV_PURPLE); - rgb_matrix_set_speed_noeeprom(default_speed); - rgb_matrix_mode_noeeprom(default_animation); - break; - } - return state; -} - -// Dynamic Macro Recording Backlight -void dynamic_macro_record_start_user(int8_t direction) { - is_macro_recording = true; -} - -void dynamic_macro_record_end_user(int8_t direction) { - is_macro_recording = false; -} - -// Indicators -bool rgb_matrix_indicators_user(void) { - if (host_keyboard_led_state().caps_lock || caps_word_enabled) { - // Left master - rgb_matrix_set_color(3, RGB_RED); - // Right master - rgb_matrix_set_color(21, RGB_RED); - } - if (is_macro_recording) { - // Left master - rgb_matrix_set_color(4, RGB_ORANGE); - // Right master - rgb_matrix_set_color(22, RGB_ORANGE); - } - if (default_layer_state - 1 == _COLEMAK) { - // Left master - rgb_matrix_set_color(5, RGB_GREEN); - // Right master - rgb_matrix_set_color(23, RGB_GREEN); - } - return false; -} - -// Quantum keys / Abbreviations -enum custom_keycodes { - VVV = KC_TRNS, - XXX = KC_NO, - CSA_Q = MEH_T(KC_Q), - CSA_F1 = MEH_T(KC_F1), - CSA_1 = MEH_T(KC_1), - CA_W = LCA_T(KC_W), - CA_F2 = LCA_T(KC_F2), - CA_2 = LCA_T(KC_2), - CS_E = C_S_T(KC_E), - CS_F = C_S_T(KC_F), - CS_I = C_S_T(KC_I), - CS_U = C_S_T(KC_U), - CS_F3 = C_S_T(KC_F3), - CS_3 = C_S_T(KC_3), - CS_F8 = C_S_T(KC_F8), - CS_8 = C_S_T(KC_8), - CA_O = LCA_T(KC_O), - CA_Y = LCA_T(KC_Y), - CA_F9 = LCA_T(KC_F9), - CA_9 = LCA_T(KC_9), - CSA_P = MEH_T(KC_P), - CSA_SCLN = MEH_T(KC_SCLN), - CSA_F10 = MEH_T(KC_F10), - CSA_0 = MEH_T(KC_0), - LGUI_A = LGUI_T(KC_A), - LGUI_FIND = LGUI_T(KC_FIND), - LGUI_GRV = LGUI_T(KC_GRV), - LALT_S = LALT_T(KC_S), - LALT_R = LALT_T(KC_R), - LALT_HOME = LALT_T(KC_HOME), - LCTL_D = LCTL_T(KC_D), - LCTL_S = LCTL_T(KC_S), - LCTL_PGUP = LCTL_T(KC_PGUP), - LCTL_LBRC = LCTL_T(KC_LBRC), - LSFT_F = LSFT_T(KC_F), - _LSFT_T = LSFT_T(KC_T), - LSFT_PGDN = LSFT_T(KC_PGDN), - LSFT_RBRC = LSFT_T(KC_RBRC), - RSFT_J = RSFT_T(KC_J), - RSFT_N = RSFT_T(KC_N), - RSFT_DOWN = RSFT_T(KC_DOWN), - RSFT_MINS = RSFT_T(KC_MINS), - RCTL_K = RCTL_T(KC_K), - RCTL_E = RCTL_T(KC_E), - RCTL_UP = RCTL_T(KC_UP), - RCTL_EQL = RCTL_T(KC_EQL), - RALT_L = RALT_T(KC_L), - RALT_I = RALT_T(KC_I), - RALT_RGHT = RALT_T(KC_RGHT), - RALT_BSLS = RALT_T(KC_BSLS), - RGUI_SCLN = RGUI_T(KC_SCLN), - RGUI_O = RGUI_T(KC_O), - RGUI_F11 = RGUI_T(KC_F11), - RGUI_QUOT = RGUI_T(KC_QUOT), - LT3_SPC = LT(3,KC_SPC), - LT2_TAB = LT(2,KC_TAB), - DF_QWERTY = DF(0), - DF_COLEMAK = DF(1), -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_split_3x5_3( - //|--------------------------------------------| |--------------------------------------------| - CSA_Q, CA_W, CS_E, KC_R, KC_T, KC_Y, KC_U, CS_I, CA_O, CSA_P, - //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| - LGUI_A, LALT_S, LCTL_D, LSFT_F, KC_G, KC_H, RSFT_J, RCTL_K, RALT_L, RGUI_SCLN, - //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, M_COMM, M_DOT, KC_SLSH, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_ESC, LT3_SPC, KC_BSPC, KC_DEL, LT2_TAB, KC_ENT - // |--------+--------+--------| |--------+--------+--------| - ), - [_COLEMAK] = LAYOUT_split_3x5_3( - //|--------------------------------------------| |--------------------------------------------| - CSA_Q, CA_W, CS_F, KC_P, KC_G, KC_J, KC_L, CS_U, CA_Y, CSA_SCLN, - //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| - LGUI_A, LALT_R, LCTL_S, _LSFT_T, KC_D, KC_H, RSFT_N, RCTL_E, RALT_I, RGUI_O, - //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, M_COMM, M_DOT, KC_SLSH, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_ESC, LT3_SPC, KC_BSPC, KC_DEL, LT2_TAB, KC_ENT - // |--------+--------+--------| |--------+--------+--------| - ), - [_NAVIGATION] = LAYOUT_split_3x5_3( - //|--------------------------------------------| |--------------------------------------------| - CSA_F1, CA_F2, CS_F3, KC_F4, KC_F5, KC_F6, KC_F7, CS_F8, CA_F9, CSA_F10, - //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| - LGUI_FIND,LALT_HOME,LCTL_PGUP,LSFT_PGDN,KC_END, KC_LEFT,RSFT_DOWN,RCTL_UP,RALT_RGHT,RGUI_F11, - //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| - DF_QWERTY,DF_COLEMAK,KC_VOLD, KC_VOLU, QK_BOOT, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, KC_F12, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - VVV, TG(4), VVV, VVV, VVV, VVV - // |--------+--------+--------| |--------+--------+--------| - ), - [_SPECIAL] = LAYOUT_split_3x5_3( - //|--------------------------------------------| |--------------------------------------------| - CSA_1, CA_2, CS_3, KC_4, KC_5, KC_6, KC_7, CS_8, CA_9, CSA_0, - //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| - LGUI_GRV,KC_LALT,LCTL_LBRC,LSFT_RBRC,KC_LPRN, KC_RPRN,RSFT_MINS,RCTL_EQL,RALT_BSLS,RGUI_QUOT, - //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| - KC_TILD, KC_CAPS, KC_LCBR, KC_RCBR,TG(_MOUSE), EE_CLR, KC_UNDS, KC_PLUS, KC_PIPE, KC_DQUO, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - VVV, VVV, VVV, VVV, TG(4), VVV - // |--------+--------+--------| |--------+--------+--------| - ), - [_MOUSE] = LAYOUT_split_3x5_3( - //|--------------------------------------------| |--------------------------------------------| - KC_WH_U, KC_WH_L, KC_MS_U, KC_WH_R, DM_REC1, KC_WSTP, KC_ACL2, KC_ACL1, KC_ACL0, KC_WFWD, - //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| - KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, DM_PLY1, KC_WREF, KC_BTN1, KC_BTN2, KC_BTN3, KC_WBAK, - //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| - M_KEYMAP,KC_BTN3, KC_BTN2, KC_BTN1, XXX, XXX, XXX, XXX, XXX, XXX, - //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - VVV, TG(4), VVV, VVV, TG(4), VVV - // |--------+--------+--------| |--------+--------+--------| - ), -}; diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/rules.mk b/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/rules.mk deleted file mode 100644 index f40ace9606..0000000000 --- a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/rules.mk +++ /dev/null @@ -1,17 +0,0 @@ -# Includes -SRC += features/caps_word.c - -# Build Options -# change yes to no to disable -# -# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -DYNAMIC_MACRO_ENABLE = yes # Create macros on the fly -RGB_MATRIX_DRIVER = WS2812 -INDICATOR_LIGHTS = yes # Enable indicator lights for caps lock, etc. -# TAP_DANCE_ENABLE = yes # Send different keycodes if tapped multiple times -# KEY_OVERRIDE_ENABLE = yes # Override key combos -# COMBO_ENABLE = yes # Custom key combos - -LTO_ENABLE = yes -RGBLIGHT_SUPPORTED = yes -RGB_MATRIX_SUPPORTED = yes diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/rules.mk b/keyboards/handwired/dactyl_manuform/3x5_3/rules.mk deleted file mode 100644 index 38ee6f4252..0000000000 --- a/keyboards/handwired/dactyl_manuform/3x5_3/rules.mk +++ /dev/null @@ -1,18 +0,0 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # 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 = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -# AUDIO_ENABLE = yes # Audio output - -RGB_MATRIX_ENABLE = yes # Enable WS2812 RGB matrix -SPLIT_KEYBOARD = yes - -RGBLIGHT_SUPPORTED = yes -RGB_MATRIX_SUPPORTED = yes diff --git a/keyboards/handwired/dactyl_minidox/3x5_3.c b/keyboards/handwired/dactyl_minidox/3x5_3.c new file mode 100644 index 0000000000..5afb908d02 --- /dev/null +++ b/keyboards/handwired/dactyl_minidox/3x5_3.c @@ -0,0 +1,66 @@ +/* +Copyright 2021 @dlford + +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 . +*/ +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE + +// LED Layout +// Columns +// 0 1 2 3 4 5 6 7 8 9 10 11 +// Physical (Center: 133) +// 20 41 61 81 102 122 143 163 183 204 224 244 +// Rows Physical (Center: 54) +// 17 12 11 06 05 23 24 29 30 35 0 21 +// 16 13 10 07 04 22 25 28 31 34 1 43 +// 15 14 09 08 03 21 26 27 32 33 2 64 +// 02 01 00 18 19 20 3 85 + +led_config_t g_led_config = { { + // Key matrix to LED index + // Left 1-18 + {17, 12, 11, 6, 5}, + {16, 13, 10, 7, 4}, + {15, 14, 9, 8, 3}, + {NO_LED, NO_LED, 2, 1, 0}, + // Right 1-18 + {23, 24, 29, 30, 35}, + {22, 25, 28, 31, 34}, + {21, 26, 27, 32, 33}, + {18, 19, 20, NO_LED, NO_LED}, +}, { + // LED index to physical position + // Left 1-18 + {122,85},{102,85},{81,85},{102,64},{102,43},{102,21}, + {81,21},{81,43},{81,64},{61,64},{61,43},{61,21}, + {41,21},{41,43},{41,64},{20,64},{20,43},{20,21}, + // Right 1-18 + {143,85},{163,85},{183,85},{163,64},{163,43},{163,21}, + {183,21},{183,43},{183,64},{204,64},{204,43},{204,21}, + {224,21},{224,43},{224,64},{244,64},{244,43},{244,21} +}, { + // LED index to flag + // Left 1-18 + 4,4,4,4,4,4, + 4,4,4,4,4,4, + 4,4,4,4,4,4, + // Right 1-18 + 4,4,4,4,4,4, + 4,4,4,4,4,4, + 4,4,4,4,4,4 +} }; + +#endif diff --git a/keyboards/handwired/dactyl_minidox/config.h b/keyboards/handwired/dactyl_minidox/config.h new file mode 100644 index 0000000000..d84e9b6440 --- /dev/null +++ b/keyboards/handwired/dactyl_minidox/config.h @@ -0,0 +1,30 @@ +/* +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert +Copyright 2021 @dlford +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 . +*/ + +#pragma once + +// WS2812 RGB LED strip input and number of LEDs +#define RGB_MATRIX_LED_COUNT 36 +#define RGB_MATRIX_SPLIT { 18, 18 } +#define RGB_MATRIX_CENTER { 133, 54 } + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#undef LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#undef LOCKING_RESYNC_ENABLE + +/* Enables This makes it easier for fast typists to use dual-function keys */ +#undef PERMISSIVE_HOLD diff --git a/keyboards/handwired/dactyl_minidox/info.json b/keyboards/handwired/dactyl_minidox/info.json new file mode 100644 index 0000000000..0a1c6a56bb --- /dev/null +++ b/keyboards/handwired/dactyl_minidox/info.json @@ -0,0 +1,80 @@ +{ + "keyboard_name": "Dactyl Minidox", + "manufacturer": "dlford", + "url": "https://www.dlford.io/keyboard-build-guide-per-key-rgb-leds/", + "maintainer": "dlford", + "usb": { + "vid": "0x444D", + "pid": "0x3536", + "device_version": "0.0.3" + }, + "ws2812": { + "pin": "D3" + }, + "rgb_matrix": { + "driver": "WS2812" + }, + "matrix_pins": { + "cols": ["C6", "D7", "E6", "B4", "B5"], + "rows": ["B1", "B3", "B2", "B6"] + }, + "diode_direction": "ROW2COL", + "split": { + "enabled": true, + "soft_serial_pin": "D0" + }, + "development_board": "promicro", + "layout_aliases": { + "LAYOUT": "LAYOUT_split_3x5_3" + }, + "community_layouts": ["split_3x5_3"], + "layouts": { + "LAYOUT_split_3x5_3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + + {"matrix": [4, 0], "x": 10, "y": 0}, + {"matrix": [4, 1], "x": 11, "y": 0}, + {"matrix": [4, 2], "x": 12, "y": 0}, + {"matrix": [4, 3], "x": 13, "y": 0}, + {"matrix": [4, 4], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + + {"matrix": [5, 0], "x": 10, "y": 1}, + {"matrix": [5, 1], "x": 11, "y": 1}, + {"matrix": [5, 2], "x": 12, "y": 1}, + {"matrix": [5, 3], "x": 13, "y": 1}, + {"matrix": [5, 4], "x": 14, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + + {"matrix": [6, 0], "x": 10, "y": 2}, + {"matrix": [6, 1], "x": 11, "y": 2}, + {"matrix": [6, 2], "x": 12, "y": 2}, + {"matrix": [6, 3], "x": 13, "y": 2}, + {"matrix": [6, 4], "x": 14, "y": 2}, + + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + + {"matrix": [7, 0], "x": 10, "y": 3}, + {"matrix": [7, 1], "x": 11, "y": 3}, + {"matrix": [7, 2], "x": 12, "y": 3} + ] + } + } +} diff --git a/keyboards/handwired/dactyl_minidox/keymaps/default/keymap.c b/keyboards/handwired/dactyl_minidox/keymaps/default/keymap.c new file mode 100644 index 0000000000..abd6433558 --- /dev/null +++ b/keyboards/handwired/dactyl_minidox/keymaps/default/keymap.c @@ -0,0 +1,26 @@ +// Copyright 2022 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + * │ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │ + * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ + * │ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ + * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ + * │ Z │ X │ C │ V │ B │ │ N │ M │ , │ . │ / │ + * └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + * ┌───┐ ┌───┐ + * │GUI├───┐ ┌───┤Alt│ + * └───┤Bsp├───┐ ┌───┤Ent├───┘ + * └───┤ │ │ ├───┘ + * └───┘ └───┘ + */ + [0] = LAYOUT_split_3x5_3( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_LGUI, KC_BSPC, KC_SPC, KC_SPC, KC_ENT, KC_RALT + ) +}; diff --git a/keyboards/handwired/dactyl_minidox/keymaps/dlford/config.h b/keyboards/handwired/dactyl_minidox/keymaps/dlford/config.h new file mode 100644 index 0000000000..783a2c46b1 --- /dev/null +++ b/keyboards/handwired/dactyl_minidox/keymaps/dlford/config.h @@ -0,0 +1,105 @@ +/* +Copyright 2012 Jun Wako +Copyright 2021 @dlford +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 . +*/ + +#pragma once + +//#define USE_MATRIX_I2C + +/* Select hand configuration */ + +// #define MASTER_LEFT +// #define MASTER_RIGHT +#define EE_HANDS // ./util/docker_build.sh crkbd:dlford:dfu-split-[left|right] (or avrdude-split[left|right]) + +#define TAPPING_TOGGLE 2 // number of taps to toggle TT +#define TAPPING_TERM_PER_KEY // milliseconds from tap to hold for mod tap per key +#define PERMISSIVE_HOLD_PER_KEY // activate mod top hold earlier if another key is pressed AND released per key +#define QUICK_TAP_TERM_PER_KEY // disable double tap hold key repeat per key +#undef MOUSEKEY_INTERVAL +#undef MOUSEKEY_DELAY +#undef MOUSEKEY_TIME_TO_MAX +#undef MOUSEKEY_MAX_SPEED +#undef MOUSEKEY_WHEEL_DELAY +#define MK_KINETIC_SPEED +#define MOUSEKEY_DELAY 100 +#define MOUSEKEY_INTERVAL 35 +#define MOUSEKEY_MOVE_DELTA 5 +#define MOUSEKEY_INITIAL_SPEED 1 +#define MOUSEKEY_DECELERATED_SPEED 10 +#define MOUSEKEY_BASE_SPEED 1200 +#define MOUSEKEY_ACCELERATED_SPEED 4800 + +#ifdef RGB_MATRIX_ENABLE +// # define RGB_MATRIX_TIMEOUT 300000 // number of milliseconds to wait until disabling effects +// # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +# define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +# define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. +# define RGB_MATRIX_HUE_STEP 8 +# define RGB_MATRIX_SAT_STEP 8 +# define RGB_MATRIX_VAL_STEP 8 +# define RGB_MATRIX_SPD_STEP 10 + +// Enable animations +// # define ENABLE_RGB_MATRIX_ALPHAS_MODS // Static dual hue speed is hue for secondary hue +// # define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Static gradient top to bottom speed controls how much gradient changes +// # define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Static gradient left to right speed controls how much gradient changes +// # define ENABLE_RGB_MATRIX_BREATHING // Single hue brightness cycling animation +// # define ENABLE_RGB_MATRIX_BAND_SAT // Single hue band fading saturation scrolling left to right +// # define ENABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right +// # define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades saturation +// # define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness +// # define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT // Single hue spinning spiral fades saturation +// # define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Single hue spinning spiral fades brightness +// # define ENABLE_RGB_MATRIX_CYCLE_ALL // Full keyboard solid hue cycling through full gradient +// # define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Full gradient scrolling left to right +// # define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN // Full gradient scrolling top to bottom +// # define ENABLE_RGB_MATRIX_CYCLE_OUT_IN // Full gradient scrolling out to in +// # define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Full dual gradients scrolling out to in +// # define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Full gradent Chevron shapped scrolling left to right +// # define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL // Full gradient spinning pinwheel around center of keyboard +# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard +// # define ENABLE_RGB_MATRIX_DUAL_BEACON // Full gradient spinning around center of keyboard +// # define ENABLE_RGB_MATRIX_RAINBOW_BEACON // Full tighter gradient spinning around center of keyboard +// # define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Full dual gradients spinning two halfs of keyboard +// # define ENABLE_RGB_MATRIX_RAINDROPS // Randomly changes a single key's hue +// # define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Randomly changes a single key's hue and saturation +// # define ENABLE_RGB_MATRIX_HUE_BREATHING // Hue shifts up a slight ammount at the same time then shifts back +// # define ENABLE_RGB_MATRIX_HUE_PENDULUM // Hue shifts up a slight ammount in a wave to the right then back to the left +# define ENABLE_RGB_MATRIX_HUE_WAVE // Hue shifts up a slight ammount and then back down in a wave to the right +// # define RGB_MATRIX_FRAMEBUFFER_EFFECTS // Required for the following two effects +// # define ENABLE_RGB_MATRIX_TYPING_HEATMAP // How hot is your WPM! +// # define ENABLE_RGB_MATRIX_DIGITAL_RAIN // That famous computer simulation +// # define RGB_MATRIX_KEYPRESSES // reacts to keypresses, required for the remaining effects +// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Pulses keys hit to hue & value then fades value out +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE // Static single hue pulses keys hit to shifted hue then fades to current hue +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Hue & value pulse near multiple key hits then fades value out +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Hue & value pulse the same column and row of multiple key hits then fades value out +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of a single key hit then fades value out +// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multiple key hits then fades value out +// # define ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out +// # define ENABLE_RGB_MATRIX_MULTISPLASH // Full gradient & value pulse away from multiple key hits then fades value out +// # define ENABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out +// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out +#endif + +// Features I don't want, remove to save space +// #define NO_ACTION_ONESHOT // Used by caps word +#define NO_ACTION_FUNCTION +#define NO_ACTION_MACRO +#define NO_USB_STARTUP_CHECK diff --git a/keyboards/handwired/dactyl_minidox/keymaps/dlford/features/caps_word.c b/keyboards/handwired/dactyl_minidox/keymaps/dlford/features/caps_word.c new file mode 100644 index 0000000000..ee295c7305 --- /dev/null +++ b/keyboards/handwired/dactyl_minidox/keymaps/dlford/features/caps_word.c @@ -0,0 +1,76 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// For full documentation, see +// https://getreuer.info/posts/keyboards/caps-word + +#include "caps_word.h" +bool caps_word_enabled = false; + +bool process_caps_word(uint16_t keycode, keyrecord_t* record) { + static bool shifted = false; + + if (!caps_word_enabled) { + // Pressing both shift keys at the same time enables caps word. + if (((get_mods() | get_oneshot_mods()) & MOD_MASK_SHIFT) + == MOD_MASK_SHIFT) { + clear_mods(); + clear_oneshot_mods(); + shifted = false; + caps_word_enabled = true; + return false; + } + return true; + } + + if (!record->event.pressed) { return true; } + + if (!((get_mods() | get_oneshot_mods()) & ~MOD_MASK_SHIFT)) { + switch (keycode) { + case QK_MOD_TAP ... QK_MOD_TAP_MAX: + case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: + // Earlier return if this has not been considered tapped yet. + if (record->tap.count == 0) { return true; } + // Get the base tapping keycode of a mod- or layer-tap key. + keycode &= 0xff; + } + + switch (keycode) { + // Letter keys should be shifted. + case KC_A ... KC_Z: + if (!shifted) { register_code(KC_LSFT); } + shifted = true; + return true; + + // Keycodes that continue caps word but shouldn't get shifted. + case KC_1 ... KC_0: + case KC_BSPC: + case KC_MINS: + case KC_UNDS: + if (shifted) { unregister_code(KC_LSFT); } + shifted = false; + return true; + + // Any other keycode disables caps word. + } + } + + // Disable caps word. + caps_word_enabled = false; + if (shifted) { unregister_code(KC_LSFT); } + shifted = false; + return true; +} + diff --git a/keyboards/handwired/dactyl_minidox/keymaps/dlford/features/caps_word.h b/keyboards/handwired/dactyl_minidox/keymaps/dlford/features/caps_word.h new file mode 100644 index 0000000000..a609a32544 --- /dev/null +++ b/keyboards/handwired/dactyl_minidox/keymaps/dlford/features/caps_word.h @@ -0,0 +1,36 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// Caps Word, activated by pressing both shift keys at the same time. +// +// This library implements "Caps Word", which is like conventional Caps Lock, +// but automatically disables itself at the end of the word. This is useful for +// typing all-caps identifiers like `MOD_MASK_ALT`. +// +// Caps Word is activated by pressing the left and right shift keys at the same +// time. This way you don't need a dedicated key for using Caps Word. I've +// tested that this works as expected with one-shot mods and Space Cadet Shift. +// If your shift keys are mod-taps, activate Caps Word by holding both shift +// mod-tap keys until the tapping term, release them, then begin typing. +// +// For full documentation, see +// https://getreuer.info/posts/keyboards/caps-word + +#pragma once + +#include QMK_KEYBOARD_H + +bool process_caps_word(uint16_t keycode, keyrecord_t* record); +extern bool caps_word_enabled; diff --git a/keyboards/handwired/dactyl_minidox/keymaps/dlford/keymap.c b/keyboards/handwired/dactyl_minidox/keymaps/dlford/keymap.c new file mode 100644 index 0000000000..bdacde1a85 --- /dev/null +++ b/keyboards/handwired/dactyl_minidox/keymaps/dlford/keymap.c @@ -0,0 +1,386 @@ +/* +Copyright 2019 @foostan +Copyright 2020 Drashna Jaelre <@drashna> +Copyright 2021 @dlford + +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 . +*/ + +#include QMK_KEYBOARD_H +#include "features/caps_word.h" + +// Layers +enum layers { + _QWERTY = 0, + _COLEMAK, + _NAVIGATION, + _SPECIAL, + _MOUSE, +}; + +static uint16_t default_animation = RGB_MATRIX_CYCLE_SPIRAL; +static int default_speed = 50; +static uint16_t secondary_animation = RGB_MATRIX_HUE_WAVE; +static int secondary_speed = 150; +static bool is_macro_recording = false; + +// Init +void keyboard_post_init_user(void) { + rgb_matrix_sethsv_noeeprom(HSV_PURPLE); + rgb_matrix_mode_noeeprom(default_animation); + rgb_matrix_set_speed_noeeprom(default_speed); +} + +// Permissive hold per key +bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case LT(3, KC_SPC): + return true; // Enable permissive hold + case LT(2, KC_TAB): + return true; + default: + return false; // Disable permissive hold + } +} + +// Tapping force hold per key +uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case LT(3, KC_SPC): + return 0; // Enable force hold + case LT(2, KC_TAB): + return 0; + default: + return QUICK_TAP_TERM; // Disable force hold + } +} + +// Tapping term per key +uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case C_S_T(KC_E): + case C_S_T(KC_I): + return 215; + default: + return 190; + } +} + +// RGB timeout +#define RGB_CUSTOM_TIMEOUT 5 // in minutes +static uint16_t idle_timer = 0; +static uint8_t halfmin_counter = 0; +static bool led_on = true; +void matrix_scan_user(void) { + if (is_keyboard_master()) { + // idle_timer needs to be set one time + if (idle_timer == 0) idle_timer = timer_read(); + + if (led_on && timer_elapsed(idle_timer) > 30000) { + halfmin_counter++; + idle_timer = timer_read(); + } + + if (led_on && halfmin_counter >= RGB_CUSTOM_TIMEOUT * 2) { + rgb_matrix_disable_noeeprom(); + led_on = false; + halfmin_counter = 0; + } + } +} + +// Macros +enum macro_events { + M_KEYMAP = SAFE_RANGE, + M_COMM, + M_DOT, +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // RGB resume + if (is_keyboard_master()) { + if (record->event.pressed) { + if (led_on == false) { + rgb_matrix_enable_noeeprom(); + led_on = true; + } + idle_timer = timer_read(); + halfmin_counter = 0; + } + } + + // Caps word + if (!process_caps_word(keycode, record)) { return false; } + + // Macros + const uint8_t mods = get_mods(); + static uint8_t backstepCounter = 0; + static bool keyDown = false; + switch (keycode) { + case M_KEYMAP: + if (record->event.pressed) { + SEND_STRING("https://raw.githubusercontent.com/dlford/qmk_firmware/master/keyboards/crkbd/keymaps/dlford/legends.svg"); + } + return false; + case M_COMM: + if (record->event.pressed) { + if ((mods & MOD_BIT(KC_LCTL)) && (mods & MOD_BIT(KC_LSFT) && (mods & MOD_BIT(KC_LALT)))) { + backstepCounter = 1; + clear_mods(); + SEND_STRING("<>"); + } else if ((mods & MOD_BIT(KC_LCTL)) && (mods & MOD_BIT(KC_LALT))) { + backstepCounter = 1; + clear_mods(); + SEND_STRING("()"); + } else if ((mods & MOD_BIT(KC_LCTL)) && (mods & MOD_BIT(KC_LSFT))) { + backstepCounter = 2; + clear_mods(); + SEND_STRING("{};"); + } else if (mods & MOD_BIT(KC_LCTL)) { + backstepCounter = 1; + clear_mods(); + SEND_STRING("{}"); + } else if ((mods & MOD_BIT(KC_LALT)) && (mods & MOD_BIT(KC_LSFT))) { + backstepCounter = 2; + clear_mods(); + SEND_STRING("[];"); + } else if (mods & MOD_BIT(KC_LALT)) { + backstepCounter = 1; + clear_mods(); + SEND_STRING("[]"); + } else { + keyDown = true; + register_code(KC_COMM); + return true; + } + if (backstepCounter) { + while (backstepCounter > 0) { + tap_code(KC_LEFT); + backstepCounter--; + } + set_mods(mods); + } + } else { + if (keyDown) { + unregister_code(KC_COMM); + keyDown = false; + return true; + } + } + return false; + case M_DOT: + if (record->event.pressed) { + if (mods & MOD_BIT(KC_LCTL)) { + clear_mods(); + SEND_STRING("=>"); + } else if (mods & MOD_BIT(KC_LALT)) { + clear_mods(); + SEND_STRING("->"); + } else { + keyDown = true; + register_code(KC_DOT); + return true; + } + } else { + if (keyDown) { + unregister_code(KC_DOT); + keyDown = false; + return true; + } + } + set_mods(mods); + return false; + } + + return true; +} + +// RGB Layers (Enable animations in config.h) +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + case _SPECIAL: + rgb_matrix_sethsv_noeeprom(HSV_ORANGE); + rgb_matrix_set_speed_noeeprom(secondary_speed); + rgb_matrix_mode_noeeprom(secondary_animation); + break; + case _NAVIGATION: + rgb_matrix_sethsv_noeeprom(HSV_BLUE); + rgb_matrix_set_speed_noeeprom(secondary_speed); + rgb_matrix_mode_noeeprom(secondary_animation); + break; + case _MOUSE: + rgb_matrix_sethsv_noeeprom(HSV_GREEN); + rgb_matrix_set_speed_noeeprom(secondary_speed); + rgb_matrix_mode_noeeprom(secondary_animation); + break; + default: + rgb_matrix_sethsv_noeeprom(HSV_PURPLE); + rgb_matrix_set_speed_noeeprom(default_speed); + rgb_matrix_mode_noeeprom(default_animation); + break; + } + return state; +} + +// Dynamic Macro Recording Backlight +void dynamic_macro_record_start_user(int8_t direction) { + is_macro_recording = true; +} + +void dynamic_macro_record_end_user(int8_t direction) { + is_macro_recording = false; +} + +// Indicators +bool rgb_matrix_indicators_user(void) { + if (host_keyboard_led_state().caps_lock || caps_word_enabled) { + // Left master + rgb_matrix_set_color(3, RGB_RED); + // Right master + rgb_matrix_set_color(21, RGB_RED); + } + if (is_macro_recording) { + // Left master + rgb_matrix_set_color(4, RGB_ORANGE); + // Right master + rgb_matrix_set_color(22, RGB_ORANGE); + } + if (default_layer_state - 1 == _COLEMAK) { + // Left master + rgb_matrix_set_color(5, RGB_GREEN); + // Right master + rgb_matrix_set_color(23, RGB_GREEN); + } + return false; +} + +// Quantum keys / Abbreviations +enum custom_keycodes { + VVV = KC_TRNS, + XXX = KC_NO, + CSA_Q = MEH_T(KC_Q), + CSA_F1 = MEH_T(KC_F1), + CSA_1 = MEH_T(KC_1), + CA_W = LCA_T(KC_W), + CA_F2 = LCA_T(KC_F2), + CA_2 = LCA_T(KC_2), + CS_E = C_S_T(KC_E), + CS_F = C_S_T(KC_F), + CS_I = C_S_T(KC_I), + CS_U = C_S_T(KC_U), + CS_F3 = C_S_T(KC_F3), + CS_3 = C_S_T(KC_3), + CS_F8 = C_S_T(KC_F8), + CS_8 = C_S_T(KC_8), + CA_O = LCA_T(KC_O), + CA_Y = LCA_T(KC_Y), + CA_F9 = LCA_T(KC_F9), + CA_9 = LCA_T(KC_9), + CSA_P = MEH_T(KC_P), + CSA_SCLN = MEH_T(KC_SCLN), + CSA_F10 = MEH_T(KC_F10), + CSA_0 = MEH_T(KC_0), + LGUI_A = LGUI_T(KC_A), + LGUI_FIND = LGUI_T(KC_FIND), + LGUI_GRV = LGUI_T(KC_GRV), + LALT_S = LALT_T(KC_S), + LALT_R = LALT_T(KC_R), + LALT_HOME = LALT_T(KC_HOME), + LCTL_D = LCTL_T(KC_D), + LCTL_S = LCTL_T(KC_S), + LCTL_PGUP = LCTL_T(KC_PGUP), + LCTL_LBRC = LCTL_T(KC_LBRC), + LSFT_F = LSFT_T(KC_F), + _LSFT_T = LSFT_T(KC_T), + LSFT_PGDN = LSFT_T(KC_PGDN), + LSFT_RBRC = LSFT_T(KC_RBRC), + RSFT_J = RSFT_T(KC_J), + RSFT_N = RSFT_T(KC_N), + RSFT_DOWN = RSFT_T(KC_DOWN), + RSFT_MINS = RSFT_T(KC_MINS), + RCTL_K = RCTL_T(KC_K), + RCTL_E = RCTL_T(KC_E), + RCTL_UP = RCTL_T(KC_UP), + RCTL_EQL = RCTL_T(KC_EQL), + RALT_L = RALT_T(KC_L), + RALT_I = RALT_T(KC_I), + RALT_RGHT = RALT_T(KC_RGHT), + RALT_BSLS = RALT_T(KC_BSLS), + RGUI_SCLN = RGUI_T(KC_SCLN), + RGUI_O = RGUI_T(KC_O), + RGUI_F11 = RGUI_T(KC_F11), + RGUI_QUOT = RGUI_T(KC_QUOT), + LT3_SPC = LT(3,KC_SPC), + LT2_TAB = LT(2,KC_TAB), + DF_QWERTY = DF(0), + DF_COLEMAK = DF(1), +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT_split_3x5_3( + //|--------------------------------------------| |--------------------------------------------| + CSA_Q, CA_W, CS_E, KC_R, KC_T, KC_Y, KC_U, CS_I, CA_O, CSA_P, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + LGUI_A, LALT_S, LCTL_D, LSFT_F, KC_G, KC_H, RSFT_J, RCTL_K, RALT_L, RGUI_SCLN, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, M_COMM, M_DOT, KC_SLSH, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_ESC, LT3_SPC, KC_BSPC, KC_DEL, LT2_TAB, KC_ENT + // |--------+--------+--------| |--------+--------+--------| + ), + [_COLEMAK] = LAYOUT_split_3x5_3( + //|--------------------------------------------| |--------------------------------------------| + CSA_Q, CA_W, CS_F, KC_P, KC_G, KC_J, KC_L, CS_U, CA_Y, CSA_SCLN, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + LGUI_A, LALT_R, LCTL_S, _LSFT_T, KC_D, KC_H, RSFT_N, RCTL_E, RALT_I, RGUI_O, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, M_COMM, M_DOT, KC_SLSH, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_ESC, LT3_SPC, KC_BSPC, KC_DEL, LT2_TAB, KC_ENT + // |--------+--------+--------| |--------+--------+--------| + ), + [_NAVIGATION] = LAYOUT_split_3x5_3( + //|--------------------------------------------| |--------------------------------------------| + CSA_F1, CA_F2, CS_F3, KC_F4, KC_F5, KC_F6, KC_F7, CS_F8, CA_F9, CSA_F10, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + LGUI_FIND,LALT_HOME,LCTL_PGUP,LSFT_PGDN,KC_END, KC_LEFT,RSFT_DOWN,RCTL_UP,RALT_RGHT,RGUI_F11, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + DF_QWERTY,DF_COLEMAK,KC_VOLD, KC_VOLU, QK_BOOT, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, KC_F12, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + VVV, TG(4), VVV, VVV, VVV, VVV + // |--------+--------+--------| |--------+--------+--------| + ), + [_SPECIAL] = LAYOUT_split_3x5_3( + //|--------------------------------------------| |--------------------------------------------| + CSA_1, CA_2, CS_3, KC_4, KC_5, KC_6, KC_7, CS_8, CA_9, CSA_0, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + LGUI_GRV,KC_LALT,LCTL_LBRC,LSFT_RBRC,KC_LPRN, KC_RPRN,RSFT_MINS,RCTL_EQL,RALT_BSLS,RGUI_QUOT, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + KC_TILD, KC_CAPS, KC_LCBR, KC_RCBR,TG(_MOUSE), EE_CLR, KC_UNDS, KC_PLUS, KC_PIPE, KC_DQUO, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + VVV, VVV, VVV, VVV, TG(4), VVV + // |--------+--------+--------| |--------+--------+--------| + ), + [_MOUSE] = LAYOUT_split_3x5_3( + //|--------------------------------------------| |--------------------------------------------| + KC_WH_U, KC_WH_L, KC_MS_U, KC_WH_R, DM_REC1, KC_WSTP, KC_ACL2, KC_ACL1, KC_ACL0, KC_WFWD, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, DM_PLY1, KC_WREF, KC_BTN1, KC_BTN2, KC_BTN3, KC_WBAK, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + M_KEYMAP,KC_BTN3, KC_BTN2, KC_BTN1, XXX, XXX, XXX, XXX, XXX, XXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + VVV, TG(4), VVV, VVV, TG(4), VVV + // |--------+--------+--------| |--------+--------+--------| + ), +}; diff --git a/keyboards/handwired/dactyl_minidox/keymaps/dlford/rules.mk b/keyboards/handwired/dactyl_minidox/keymaps/dlford/rules.mk new file mode 100644 index 0000000000..f40ace9606 --- /dev/null +++ b/keyboards/handwired/dactyl_minidox/keymaps/dlford/rules.mk @@ -0,0 +1,17 @@ +# Includes +SRC += features/caps_word.c + +# Build Options +# change yes to no to disable +# +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +DYNAMIC_MACRO_ENABLE = yes # Create macros on the fly +RGB_MATRIX_DRIVER = WS2812 +INDICATOR_LIGHTS = yes # Enable indicator lights for caps lock, etc. +# TAP_DANCE_ENABLE = yes # Send different keycodes if tapped multiple times +# KEY_OVERRIDE_ENABLE = yes # Override key combos +# COMBO_ENABLE = yes # Custom key combos + +LTO_ENABLE = yes +RGBLIGHT_SUPPORTED = yes +RGB_MATRIX_SUPPORTED = yes diff --git a/keyboards/handwired/dactyl_minidox/keymaps/via/config.h b/keyboards/handwired/dactyl_minidox/keymaps/via/config.h new file mode 100644 index 0000000000..bb5b0bf6af --- /dev/null +++ b/keyboards/handwired/dactyl_minidox/keymaps/via/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert +Copyright 2021 @dlford +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 . +*/ + +#pragma once + +/* Select hand configuration */ +// #define MASTER_LEFT +// #define MASTER_RIGHT + +#define EE_HANDS diff --git a/keyboards/handwired/dactyl_minidox/keymaps/via/keymap.c b/keyboards/handwired/dactyl_minidox/keymaps/via/keymap.c new file mode 100644 index 0000000000..80b9b62b53 --- /dev/null +++ b/keyboards/handwired/dactyl_minidox/keymaps/via/keymap.c @@ -0,0 +1,37 @@ +// Copyright 2022 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +enum layers{ + _BASE, + _RAISE, + _LOWER, + _BLANK +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_split_3x5_3( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_LGUI, KC_BSPC, KC_SPC, KC_SPC, KC_ENT, KC_RALT + ), + [_RAISE] = LAYOUT_split_3x5_3( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______ + ), + [_LOWER] = LAYOUT_split_3x5_3( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______ + ), + [_BLANK] = LAYOUT_split_3x5_3( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/handwired/dactyl_minidox/keymaps/via/rules.mk b/keyboards/handwired/dactyl_minidox/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/handwired/dactyl_minidox/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/handwired/dactyl_minidox/readme.md b/keyboards/handwired/dactyl_minidox/readme.md new file mode 100644 index 0000000000..5826403a80 --- /dev/null +++ b/keyboards/handwired/dactyl_minidox/readme.md @@ -0,0 +1,27 @@ +# Dactyl Minidox + +![DactylMinidox](https://i.imgur.com/PqjgeRfh.jpg) + +A 36 key (3x5+3), split bodied keyboard derived from the [Dactyl ManuForm](/keyboards/handwired/dactyl_manuform/). + +* Keyboard Maintainer: [Dan Ford](https://github.com/dlford) +* Hardware Supported: Pro Micro controller, or clone of +* Hardware Availability: [Build Guide](https://www.dlford.io/keyboard-build-guide-per-key-rgb-leds/) + +Make example for this keyboard (after setting up your build environment): + + make handwired/dactyl_minidox:default + +Flashing example for this keyboard: + + make handwired/dactyl_minidox:default:flash + +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). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/dactyl_minidox/rules.mk b/keyboards/handwired/dactyl_minidox/rules.mk new file mode 100644 index 0000000000..e22ac7f3ff --- /dev/null +++ b/keyboards/handwired/dactyl_minidox/rules.mk @@ -0,0 +1,12 @@ +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # 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 = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +# AUDIO_ENABLE = yes # Audio output -- cgit v1.3.1 From ba6a49612a7790b44f6f7bf294c05a08170dbea2 Mon Sep 17 00:00:00 2001 From: Joe Scotto Date: Mon, 24 Jul 2023 22:56:52 -0400 Subject: [Keyboard] Delete jscotto directory (#21157) --- data/mappings/keyboard_aliases.hjson | 15 + keyboards/handwired/jscotto/scotto36/info.json | 76 --- .../jscotto/scotto36/keymaps/default/config.h | 23 - .../jscotto/scotto36/keymaps/default/keymap.c | 281 ----------- .../jscotto/scotto36/keymaps/default/rules.mk | 4 - keyboards/handwired/jscotto/scotto36/readme.md | 30 -- keyboards/handwired/jscotto/scotto36/rules.mk | 1 - keyboards/handwired/jscotto/scotto40/info.json | 180 ------- .../jscotto/scotto40/keymaps/default/config.h | 23 - .../jscotto/scotto40/keymaps/default/keymap.c | 114 ----- .../jscotto/scotto40/keymaps/default/rules.mk | 1 - keyboards/handwired/jscotto/scotto40/readme.md | 25 - keyboards/handwired/jscotto/scotto40/rules.mk | 1 - keyboards/handwired/jscotto/scotto9/info.json | 47 -- .../jscotto/scotto9/keymaps/default/keymap.c | 27 -- keyboards/handwired/jscotto/scotto9/readme.md | 25 - keyboards/handwired/jscotto/scotto9/rules.mk | 1 - keyboards/handwired/jscotto/scottocmd/config.h | 21 - keyboards/handwired/jscotto/scottocmd/info.json | 86 ---- .../jscotto/scottocmd/keymaps/default/config.h | 23 - .../jscotto/scottocmd/keymaps/default/keymap.c | 515 --------------------- .../jscotto/scottocmd/keymaps/default/rules.mk | 2 - keyboards/handwired/jscotto/scottocmd/readme.md | 25 - keyboards/handwired/jscotto/scottocmd/rules.mk | 2 - .../handwired/jscotto/scottostarter/info.json | 95 ---- .../jscotto/scottostarter/keymaps/default/config.h | 23 - .../jscotto/scottostarter/keymaps/default/keymap.c | 52 --- .../handwired/jscotto/scottostarter/readme.md | 25 - keyboards/handwired/jscotto/scottostarter/rules.mk | 1 - 29 files changed, 15 insertions(+), 1729 deletions(-) delete mode 100644 keyboards/handwired/jscotto/scotto36/info.json delete mode 100644 keyboards/handwired/jscotto/scotto36/keymaps/default/config.h delete mode 100644 keyboards/handwired/jscotto/scotto36/keymaps/default/keymap.c delete mode 100644 keyboards/handwired/jscotto/scotto36/keymaps/default/rules.mk delete mode 100644 keyboards/handwired/jscotto/scotto36/readme.md delete mode 100644 keyboards/handwired/jscotto/scotto36/rules.mk delete mode 100644 keyboards/handwired/jscotto/scotto40/info.json delete mode 100644 keyboards/handwired/jscotto/scotto40/keymaps/default/config.h delete mode 100644 keyboards/handwired/jscotto/scotto40/keymaps/default/keymap.c delete mode 100644 keyboards/handwired/jscotto/scotto40/keymaps/default/rules.mk delete mode 100644 keyboards/handwired/jscotto/scotto40/readme.md delete mode 100644 keyboards/handwired/jscotto/scotto40/rules.mk delete mode 100644 keyboards/handwired/jscotto/scotto9/info.json delete mode 100644 keyboards/handwired/jscotto/scotto9/keymaps/default/keymap.c delete mode 100644 keyboards/handwired/jscotto/scotto9/readme.md delete mode 100644 keyboards/handwired/jscotto/scotto9/rules.mk delete mode 100644 keyboards/handwired/jscotto/scottocmd/config.h delete mode 100644 keyboards/handwired/jscotto/scottocmd/info.json delete mode 100644 keyboards/handwired/jscotto/scottocmd/keymaps/default/config.h delete mode 100644 keyboards/handwired/jscotto/scottocmd/keymaps/default/keymap.c delete mode 100644 keyboards/handwired/jscotto/scottocmd/keymaps/default/rules.mk delete mode 100644 keyboards/handwired/jscotto/scottocmd/readme.md delete mode 100644 keyboards/handwired/jscotto/scottocmd/rules.mk delete mode 100644 keyboards/handwired/jscotto/scottostarter/info.json delete mode 100644 keyboards/handwired/jscotto/scottostarter/keymaps/default/config.h delete mode 100644 keyboards/handwired/jscotto/scottostarter/keymaps/default/keymap.c delete mode 100644 keyboards/handwired/jscotto/scottostarter/readme.md delete mode 100644 keyboards/handwired/jscotto/scottostarter/rules.mk (limited to 'data') diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 2d735f18f4..1f275a2f16 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -227,6 +227,21 @@ "handwired/p1800fl": { "target": "team0110/p1800fl" }, + "handwired/jscotto/scotto9": { + "target": "handwired/scottokeebs/scotto9" + }, + "handwired/jscotto/scotto36": { + "target": "handwired/scottokeebs/scotto36" + }, + "handwired/jscotto/scotto40": { + "target": "handwired/scottokeebs/scotto40" + }, + "handwired/jscotto/scottocmd": { + "target": "handwired/scottokeebs/scottocmd" + }, + "handwired/jscotto/scottostarter": { + "target": "handwired/scottokeebs/scottostarter" + }, "helix/pico/sc/back": { "target": "helix/pico/sc" }, diff --git a/keyboards/handwired/jscotto/scotto36/info.json b/keyboards/handwired/jscotto/scotto36/info.json deleted file mode 100644 index 3247b4019b..0000000000 --- a/keyboards/handwired/jscotto/scotto36/info.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "manufacturer": "Joe Scotto", - "keyboard_name": "Scotto36", - "maintainer": "joe-scotto", - "bootloader": "caterina", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "command": false, - "console": false, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - // 4, 5, 6, 7, 8, 9, A3, A2, A1, A0 - "cols": ["D4", "C6", "D7", "E6", "B4", "B5", "F4", "F5", "F6", "F7"], - // 15, 14, 16, 10 - "rows": ["B1", "B3", "B2", "B6"] - }, - "processor": "atmega32u4", - "url": "", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, - "layouts": { - "LAYOUT_ortho_3x10_6": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - - // Row 2 - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - - // Row 3 - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2}, - {"matrix": [2, 5], "x": 5, "y": 2}, - {"matrix": [2, 6], "x": 6, "y": 2}, - {"matrix": [2, 7], "x": 7, "y": 2}, - {"matrix": [2, 8], "x": 8, "y": 2}, - {"matrix": [2, 9], "x": 9, "y": 2}, - - // Row 4 - {"matrix": [3, 2], "x": 2, "y": 3}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3}, - {"matrix": [3, 5], "x": 5, "y": 3}, - {"matrix": [3, 6], "x": 6, "y": 3}, - {"matrix": [3, 7], "x": 7, "y": 3} - ] - } - } -} diff --git a/keyboards/handwired/jscotto/scotto36/keymaps/default/config.h b/keyboards/handwired/jscotto/scotto36/keymaps/default/config.h deleted file mode 100644 index 1a6512052c..0000000000 --- a/keyboards/handwired/jscotto/scotto36/keymaps/default/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -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 . -*/ - -#pragma once - -// Define options -#define TAPPING_TERM 135 -#define PERMISSIVE_HOLD -#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/jscotto/scotto36/keymaps/default/keymap.c b/keyboards/handwired/jscotto/scotto36/keymaps/default/keymap.c deleted file mode 100644 index ad8451ac09..0000000000 --- a/keyboards/handwired/jscotto/scotto36/keymaps/default/keymap.c +++ /dev/null @@ -1,281 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -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 . -*/ - -#include QMK_KEYBOARD_H - -#include -char wpm_str[10]; - -// Tap Dance declarations -enum { - TD_ESC_SPOTLIGHT_EMOJI, - TD_ESC_WINDOWS_EMOJI -}; - -void td_esc_spotlight_emoji (tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - tap_code(KC_ESC); - } else if (state->count == 2) { - tap_code16(G(KC_SPC)); - } else if (state->count == 3) { - tap_code16(C(G(KC_SPC))); - } -} - -void td_esc_windows_emoji (tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - tap_code(KC_ESC); - } else if (state->count == 2) { - tap_code(KC_LGUI); - } else if (state->count == 3) { - tap_code16(G(KC_DOT)); - } -}; - - // Tap Dance definitions -tap_dance_action_t tap_dance_actions[] = { - [TD_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_spotlight_emoji), - [TD_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_windows_emoji) -}; - -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case TD(TD_ESC_SPOTLIGHT_EMOJI) : - case TD(TD_ESC_WINDOWS_EMOJI) : - case LGUI_T(KC_SPC) : - case LT(1, KC_TAB) : - case LT(2, KC_ENT) : - return 200; - default: - return TAPPING_TERM; - } -}; - -// Layer Names -enum layer_names { - _MAC_DEFAULT, - _MAC_CODE, - _MAC_NUM, - _MAC_FUNC, - _WIN_DEFAULT, - _WIN_CODE, - _WIN_NUM, - _WIN_FUNC -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ortho_3x10_6( - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), TD(TD_ESC_SPOTLIGHT_EMOJI) - ), - [1] = LAYOUT_ortho_3x10_6( - KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) - ), - [2] = LAYOUT_ortho_3x10_6( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) - ), - [3] = LAYOUT_ortho_3x10_6( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) - ), - [4] = LAYOUT_ortho_3x10_6( - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI) - ), - [5] = LAYOUT_ortho_3x10_6( - KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE,KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI) - ), - [6] = LAYOUT_ortho_3x10_6( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI) - ), - [7] = LAYOUT_ortho_3x10_6( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI) - ) -}; - -// OLED -#ifdef OLED_ENABLE -// WPM responsiveness -#define IDLE_FRAMES 5 -#define IDLE_SPEED 20 // Speed at which animation goes into idle -#define TAP_FRAMES 2 -#define TAP_SPEED 40 // WPM to trigger Bongo -#define ANIM_FRAME_DURATION 200 // Frame MS -#define ANIM_SIZE 636 // Number of bytes in array, max 1024 - -uint32_t anim_timer = 0; -uint32_t anim_sleep = 0; -uint8_t current_idle_frame = 0; -uint8_t current_tap_frame = 0; - -static void render_animation(void) { - static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x82, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x01, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x34, 0xc4, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0d, 0x31, 0xc1, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; - static const char PROGMEM prep[][ANIM_SIZE] = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; - static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = { - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x98, 0xc0, 0x88, 0x88, 0x8c, 0x9c, 0x1c, 0x1e, 0x0e, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0f, 0x0f, 0x07, 0x03, 0x03, 0x61, 0xf0, 0xf8, 0xfc, 0x60, 0x01, 0x01, 0x01, 0x3c, 0x78, 0xf8, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - }; - - void animation_phase(void) { - if (get_current_wpm() <= IDLE_SPEED) { - current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES; - oled_write_raw_P(idle[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIM_SIZE); - } - - if (get_current_wpm() > IDLE_SPEED && get_current_wpm() < TAP_SPEED) { - oled_write_raw_P(prep[0], ANIM_SIZE); - } - - if (get_current_wpm() >= TAP_SPEED) { - current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES; - oled_write_raw_P(tap[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIM_SIZE); - } - } - if (get_current_wpm() != 000) { - oled_on(); // Enables OLED on any alpha keypress - - if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { - anim_timer = timer_read32(); - animation_phase(); - } - - anim_sleep = timer_read32(); - } else { - if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) { - oled_off(); - } else { - if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { - anim_timer = timer_read32(); - animation_phase(); - } - } - } -} - -// Draw to OLED -bool oled_task_user(void) { - // Render Bongo Cat - render_animation(); - - // WPM text - oled_set_cursor(0, 0); - sprintf(wpm_str, "%03d", get_current_wpm()); // %03d defines digits to display - oled_write(wpm_str, false); - - // Layer text - oled_set_cursor(0, 1); - switch (get_highest_layer(layer_state)) { - case _MAC_DEFAULT : - oled_write_P(PSTR("MAC"), false); - oled_set_cursor(0, 2); - oled_write_P(PSTR("MAIN"), false); - break; - case _MAC_CODE : - oled_write_P(PSTR("MAC"), false); - oled_set_cursor(0, 2); - oled_write_P(PSTR("CODE"), false); - break; - case _MAC_NUM : - oled_write_P(PSTR("MAC"), false); - oled_set_cursor(0, 2); - oled_write_P(PSTR("NUM"), false); - break; - case _MAC_FUNC : - oled_write_P(PSTR("MAC"), false); - oled_set_cursor(0, 2); - oled_write_P(PSTR("FUNC"), false); - break; - case _WIN_DEFAULT : - oled_write_P(PSTR("WIN"), false); - oled_set_cursor(0, 2); - oled_write_P(PSTR("MAIN"), false); - break; - case _WIN_CODE : - oled_write_P(PSTR("WIN"), false); - oled_set_cursor(0, 2); - oled_write_P(PSTR("CODE"), false); - break; - case _WIN_NUM : - oled_write_P(PSTR("WIN"), false); - oled_set_cursor(0, 2); - oled_write_P(PSTR("NUM"), false); - break; - case _WIN_FUNC : - oled_write_P(PSTR("WIN"), false); - oled_set_cursor(0, 2); - oled_write_P(PSTR("FUNC"), false); - break; - } - - // Caps lock text - led_t led_state = host_keyboard_led_state(); - oled_set_cursor(0, 3); - oled_write_P(led_state.caps_lock ? PSTR("CAPS") : PSTR(""), false); - - return false; -} -#endif - diff --git a/keyboards/handwired/jscotto/scotto36/keymaps/default/rules.mk b/keyboards/handwired/jscotto/scotto36/keymaps/default/rules.mk deleted file mode 100644 index 6e339da6c6..0000000000 --- a/keyboards/handwired/jscotto/scotto36/keymaps/default/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -OLED_ENABLE = yes -WPM_ENABLE = yes -LTO_ENABLE = yes -TAP_DANCE_ENABLE = yes \ No newline at end of file diff --git a/keyboards/handwired/jscotto/scotto36/readme.md b/keyboards/handwired/jscotto/scotto36/readme.md deleted file mode 100644 index ba40ed9d05..0000000000 --- a/keyboards/handwired/jscotto/scotto36/readme.md +++ /dev/null @@ -1,30 +0,0 @@ -# Scotto36 - -![Scotto36](https://i.imgur.com/MCGv0ZHh.jpeg) - -A 36-key split monoblock ergonomic ortholinear keyboard with 15° of angle on each half. Case files available [here](https://github.com/joe-scotto/keyboards.git). - -* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) -* Hardware Supported: ATmega32U4, 0.91” 128x32 I2C OLED -* Hardware Availability: [Amazon](https://amazon.com) - - -# Compiling - -Make example for this keyboard (after setting up your build environment): - - make handwired/jscotto/scotto36:default - -Flashing example for this keyboard: - - make handwired/jscotto/scotto36:default - -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). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/handwired/jscotto/scotto36/rules.mk b/keyboards/handwired/jscotto/scotto36/rules.mk deleted file mode 100644 index 6e7633bfe0..0000000000 --- a/keyboards/handwired/jscotto/scotto36/rules.mk +++ /dev/null @@ -1 +0,0 @@ -# This file intentionally left blank diff --git a/keyboards/handwired/jscotto/scotto40/info.json b/keyboards/handwired/jscotto/scotto40/info.json deleted file mode 100644 index 767ff1de54..0000000000 --- a/keyboards/handwired/jscotto/scotto40/info.json +++ /dev/null @@ -1,180 +0,0 @@ -{ - "manufacturer": "Joe Scotto", - "keyboard_name": "Scotto40", - "maintainer": "joe-scotto", - "bootloader": "caterina", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "command": false, - "console": false, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - "cols": ["D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5", "F4", "F5"], - "rows": ["B1", "B3", "B2", "B6"] - }, - "processor": "atmega32u4", - "url": "", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, - "layouts": { - "LAYOUT_ortho_3x10_7": { - "layout": [ - // Row 1 - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - - // Row 2 - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - - // Row 3 - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2}, - {"matrix": [2, 5], "x": 5, "y": 2}, - {"matrix": [2, 6], "x": 6, "y": 2}, - {"matrix": [2, 7], "x": 7, "y": 2}, - {"matrix": [2, 8], "x": 8, "y": 2}, - {"matrix": [2, 9], "x": 9, "y": 2}, - - // Row 4 - {"matrix": [3, 0], "x": 0, "y": 3}, - - {"matrix": [3, 2], "x": 2, "y": 3}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3, "w": 2}, - {"matrix": [3, 6], "x": 6, "y": 3}, - {"matrix": [3, 7], "x": 7, "y": 3}, - - {"matrix": [3, 9], "x": 9, "y": 3} - ] - }, - "LAYOUT_ortho_3x10_8": { - "layout": [ - // Row 1 - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - - // Row 2 - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - - // Row 3 - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2}, - {"matrix": [2, 5], "x": 5, "y": 2}, - {"matrix": [2, 6], "x": 6, "y": 2}, - {"matrix": [2, 7], "x": 7, "y": 2}, - {"matrix": [2, 8], "x": 8, "y": 2}, - {"matrix": [2, 9], "x": 9, "y": 2}, - - // Row 4 - {"matrix": [3, 0], "x": 0, "y": 3}, - - {"matrix": [3, 2], "x": 2, "y": 3}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3}, - {"matrix": [3, 5], "x": 5, "y": 3}, - {"matrix": [3, 6], "x": 6, "y": 3}, - {"matrix": [3, 7], "x": 7, "y": 3}, - - {"matrix": [3, 9], "x": 9, "y": 3} - ] - }, - "LAYOUT_ortho_4x10": { - "layout": [ - // Row 1 - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - - // Row 2 - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - - // Row 3 - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2}, - {"matrix": [2, 5], "x": 5, "y": 2}, - {"matrix": [2, 6], "x": 6, "y": 2}, - {"matrix": [2, 7], "x": 7, "y": 2}, - {"matrix": [2, 8], "x": 8, "y": 2}, - {"matrix": [2, 9], "x": 9, "y": 2}, - - // Row 4 - {"matrix": [3, 0], "x": 0, "y": 3}, - {"matrix": [3, 1], "x": 1, "y": 3}, - {"matrix": [3, 2], "x": 2, "y": 3}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3}, - {"matrix": [3, 5], "x": 5, "y": 3}, - {"matrix": [3, 6], "x": 6, "y": 3}, - {"matrix": [3, 7], "x": 7, "y": 3}, - {"matrix": [3, 8], "x": 8, "y": 3}, - {"matrix": [3, 9], "x": 9, "y": 3} - ] - } - } -} diff --git a/keyboards/handwired/jscotto/scotto40/keymaps/default/config.h b/keyboards/handwired/jscotto/scotto40/keymaps/default/config.h deleted file mode 100644 index 1a6512052c..0000000000 --- a/keyboards/handwired/jscotto/scotto40/keymaps/default/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -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 . -*/ - -#pragma once - -// Define options -#define TAPPING_TERM 135 -#define PERMISSIVE_HOLD -#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/jscotto/scotto40/keymaps/default/keymap.c b/keyboards/handwired/jscotto/scotto40/keymaps/default/keymap.c deleted file mode 100644 index ba5f7bc7a8..0000000000 --- a/keyboards/handwired/jscotto/scotto40/keymaps/default/keymap.c +++ /dev/null @@ -1,114 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -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 . -*/ - -#include QMK_KEYBOARD_H - -// Tap Dance declarations -enum { - TD_ESC_SPOTLIGHT_EMOJI, - TD_ESC_WINDOWS_EMOJI -}; - -void td_esc_spotlight_emoji (tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - tap_code(KC_ESC); - } else if (state->count == 2) { - tap_code16(G(KC_SPC)); - } else if (state->count == 3) { - tap_code16(C(G(KC_SPC))); - } -} - -void td_esc_windows_emoji (tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - tap_code(KC_ESC); - } else if (state->count == 2) { - tap_code(KC_LGUI); - } else if (state->count == 3) { - tap_code16(G(KC_DOT)); - } -}; - - // Tap Dance definitions -tap_dance_action_t tap_dance_actions[] = { - [TD_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_spotlight_emoji), - [TD_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_windows_emoji) -}; - -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case TD(TD_ESC_SPOTLIGHT_EMOJI) : - case TD(TD_ESC_WINDOWS_EMOJI) : - case LGUI_T(KC_SPC) : - case LT(1, KC_TAB) : - case LT(2, KC_ENT) : - return 200; - default: - return TAPPING_TERM; - } -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ortho_3x10_7( - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), TD(TD_ESC_SPOTLIGHT_EMOJI) - ), - [1] = LAYOUT_ortho_3x10_7( - KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) - ), - [2] = LAYOUT_ortho_3x10_7( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) - ), - [3] = LAYOUT_ortho_3x10_7( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) - ), - [4] = LAYOUT_ortho_3x10_7( - KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI) - ), - [5] = LAYOUT_ortho_3x10_7( - KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI) - ), - [6] = LAYOUT_ortho_3x10_7( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI) - ), - [7] = LAYOUT_ortho_3x10_7( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI) - ) -}; diff --git a/keyboards/handwired/jscotto/scotto40/keymaps/default/rules.mk b/keyboards/handwired/jscotto/scotto40/keymaps/default/rules.mk deleted file mode 100644 index e5ddcae8d9..0000000000 --- a/keyboards/handwired/jscotto/scotto40/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/jscotto/scotto40/readme.md b/keyboards/handwired/jscotto/scotto40/readme.md deleted file mode 100644 index 867313ecfc..0000000000 --- a/keyboards/handwired/jscotto/scotto40/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# Scotto40 - -![Scotto40](https://i.imgur.com/wtW5xOth.jpeg) - -A 37, 38, or 40 key handwired ortholinear keyboard. Case files available [here](https://github.com/joe-scotto/keyboards). - -- Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) -- Hardware Supported: ATmega32U4 -- Hardware Availability: [Amazon](https://amazon.com) - -# Compiling - -Make example for this keyboard (after setting up your build environment): - - make handwired/jscotto/scotto40:default - -Flashing example for this keyboard: - - make handwired/jscotto/scotto40:default - -# Bootloader - -Uses [bootmagic](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_bootmagic.md) allowing you to hold the top left key (0, 0) when plugging the board in to enter bootloader mode. - -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). diff --git a/keyboards/handwired/jscotto/scotto40/rules.mk b/keyboards/handwired/jscotto/scotto40/rules.mk deleted file mode 100644 index 6e7633bfe0..0000000000 --- a/keyboards/handwired/jscotto/scotto40/rules.mk +++ /dev/null @@ -1 +0,0 @@ -# This file intentionally left blank diff --git a/keyboards/handwired/jscotto/scotto9/info.json b/keyboards/handwired/jscotto/scotto9/info.json deleted file mode 100644 index 8bd393bd43..0000000000 --- a/keyboards/handwired/jscotto/scotto9/info.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "manufacturer": "Joe Scotto", - "keyboard_name": "Scotto9", - "maintainer": "joe-scotto", - "bootloader": "caterina", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "command": false, - "console": false, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - // 4, 5, 6 - "cols": ["D4", "C6", "D7"], - // 15, 14, 16 - "rows": ["B1", "B3", "B2"] - }, - "processor": "atmega32u4", - "url": "", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, - "layouts": { - "LAYOUT_ortho_3x3": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - - // Row 2 - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - - // Row 3 - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2} - ] - } - } -} diff --git a/keyboards/handwired/jscotto/scotto9/keymaps/default/keymap.c b/keyboards/handwired/jscotto/scotto9/keymaps/default/keymap.c deleted file mode 100644 index eec8d684ad..0000000000 --- a/keyboards/handwired/jscotto/scotto9/keymaps/default/keymap.c +++ /dev/null @@ -1,27 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -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 . -*/ - -#include QMK_KEYBOARD_H - -// Keymap -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ortho_3x3( - KC_1, KC_2, KC_3, - KC_4, KC_5, KC_6, - KC_7, KC_8, KC_9 - ) -}; diff --git a/keyboards/handwired/jscotto/scotto9/readme.md b/keyboards/handwired/jscotto/scotto9/readme.md deleted file mode 100644 index 2e5291cba7..0000000000 --- a/keyboards/handwired/jscotto/scotto9/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# Scotto9 - -![Scotto9](https://imgur.com/inbmNSEh.jpeg) - -A 9 key handwired macropad. Case files available [here](https://github.com/joe-scotto/keyboards.git). - -- Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) -- Hardware Supported: ATmega32U4 -- Hardware Availability: [Amazon](https://amazon.com) - -# Compiling - -Make example for this keyboard (after setting up your build environment): - - make handwired/jscotto/scotto9:default - -Flashing example for this keyboard: - - make handwired/jscotto/scotto9:default - -# Bootloader - -Uses [bootmagic](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_bootmagic.md) allowing you to hold the top left key (0, 0) when plugging the board in to enter bootloader mode. - -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). diff --git a/keyboards/handwired/jscotto/scotto9/rules.mk b/keyboards/handwired/jscotto/scotto9/rules.mk deleted file mode 100644 index 6e7633bfe0..0000000000 --- a/keyboards/handwired/jscotto/scotto9/rules.mk +++ /dev/null @@ -1 +0,0 @@ -# This file intentionally left blank diff --git a/keyboards/handwired/jscotto/scottocmd/config.h b/keyboards/handwired/jscotto/scottocmd/config.h deleted file mode 100644 index a168f0ef21..0000000000 --- a/keyboards/handwired/jscotto/scottocmd/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -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 . -*/ - -#pragma once - -// OLED -#define OLED_DISPLAY_128X64 \ No newline at end of file diff --git a/keyboards/handwired/jscotto/scottocmd/info.json b/keyboards/handwired/jscotto/scottocmd/info.json deleted file mode 100644 index 991be93b52..0000000000 --- a/keyboards/handwired/jscotto/scottocmd/info.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "manufacturer": "Joe Scotto", - "keyboard_name": "ScottoCMD", - "maintainer": "joe-scotto", - "bootloader": "caterina", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "command": false, - "console": false, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - // TX0, RX1, 4, 5, 6, 7, 8, 9, A3, A2, A1 - "cols": ["D3", "D2", "D4", "C6", "D7", "E6", "B4", "B5", "F4", "F5", "F6"], - // A0, 15, 14, 16, 10 - "rows": ["F7", "B1", "B3", "B2", "B6"] - }, - "processor": "atmega32u4", - "url": "", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, - "bootmagic": { - "matrix": [1, 0] - }, - "layouts": { - "LAYOUT_ortho_4_3x10_4": { - "layout": [ - // Row 1 (Macros) - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - - // Row 2 - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - {"matrix": [1, 10], "x": 10, "y": 1}, - - // Row 3 - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2}, - {"matrix": [2, 5], "x": 5, "y": 2}, - {"matrix": [2, 6], "x": 6, "y": 2}, - {"matrix": [2, 7], "x": 7, "y": 2}, - {"matrix": [2, 8], "x": 8, "y": 2}, - {"matrix": [2, 9], "x": 9, "y": 2}, - {"matrix": [2, 10], "x": 10, "y": 2}, - - // Row 4 - {"matrix": [3, 1], "x": 1, "y": 3}, - {"matrix": [3, 2], "x": 2, "y": 3}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3}, - {"matrix": [3, 5], "x": 5, "y": 3}, - {"matrix": [3, 6], "x": 6, "y": 3}, - {"matrix": [3, 7], "x": 7, "y": 3}, - {"matrix": [3, 8], "x": 8, "y": 3}, - {"matrix": [3, 9], "x": 9, "y": 3}, - {"matrix": [3, 10], "x": 10, "y": 3}, - - // Row 5 - {"matrix": [4, 1], "x": 1, "y": 4}, - {"matrix": [4, 5], "x": 5, "y": 4}, - {"matrix": [4, 9], "x": 9, "y": 4}, - {"matrix": [4, 10], "x": 10, "y": 4} - ] - } - } -} diff --git a/keyboards/handwired/jscotto/scottocmd/keymaps/default/config.h b/keyboards/handwired/jscotto/scottocmd/keymaps/default/config.h deleted file mode 100644 index 1a6512052c..0000000000 --- a/keyboards/handwired/jscotto/scottocmd/keymaps/default/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -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 . -*/ - -#pragma once - -// Define options -#define TAPPING_TERM 135 -#define PERMISSIVE_HOLD -#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/jscotto/scottocmd/keymaps/default/keymap.c b/keyboards/handwired/jscotto/scottocmd/keymaps/default/keymap.c deleted file mode 100644 index b1c77ae944..0000000000 --- a/keyboards/handwired/jscotto/scottocmd/keymaps/default/keymap.c +++ /dev/null @@ -1,515 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -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 . -*/ - -#include QMK_KEYBOARD_H - -#include -char wpm_str[10]; - -// Tap Dance declarations -enum { - TD_ESC_SPOTLIGHT_EMOJI, - TD_ESC_WINDOWS_EMOJI -}; - -void td_esc_spotlight_emoji (tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - tap_code(KC_ESC); - } else if (state->count == 2) { - tap_code16(G(KC_SPC)); - } else if (state->count == 3) { - tap_code16(C(G(KC_SPC))); - } -} - -void td_esc_windows_emoji (tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - tap_code(KC_ESC); - } else if (state->count == 2) { - tap_code(KC_LGUI); - } else if (state->count == 3) { - tap_code16(G(KC_DOT)); - } -}; - - // Tap Dance definitions -tap_dance_action_t tap_dance_actions[] = { - [TD_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_spotlight_emoji), - [TD_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_windows_emoji) -}; - -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case TD(TD_ESC_SPOTLIGHT_EMOJI) : - case TD(TD_ESC_WINDOWS_EMOJI) : - case LGUI_T(KC_SPC) : - case LT(1, KC_TAB) : - case LT(2, KC_ENT) : - return 200; - default: - return TAPPING_TERM; - } -}; - -// Layer Names -enum layer_names { - _MAC_DEFAULT, - _MAC_CODE, - _MAC_NUM, - _MAC_FUNC, - _WIN_DEFAULT, - _WIN_CODE, - _WIN_NUM, - _WIN_FUNC -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ortho_4_3x10_4( - KC_LCTL, KC_2, KC_3, TD(TD_ESC_SPOTLIGHT_EMOJI), - KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_ENT, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT) - ), - [1] = LAYOUT_ortho_4_3x10_4( - KC_LCTL, KC_2, KC_3, TD(TD_ESC_SPOTLIGHT_EMOJI), - KC_TAB, KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_ENT, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS - ), - [2] = LAYOUT_ortho_4_3x10_4( - KC_LCTL, KC_2, KC_3, TD(TD_ESC_SPOTLIGHT_EMOJI), - KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_ENT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS - ), - [3] = LAYOUT_ortho_4_3x10_4( - KC_LCTL, KC_2, KC_3, TD(TD_ESC_SPOTLIGHT_EMOJI), - KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), - KC_ENT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS - ), - [4] = LAYOUT_ortho_4_3x10_4( - KC_1, KC_2, KC_3, TD(TD_ESC_WINDOWS_EMOJI), - KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, - KC_ENT, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), - KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT) - ), - [5] = LAYOUT_ortho_4_3x10_4( - KC_1, KC_2, KC_3, TD(TD_ESC_WINDOWS_EMOJI), - KC_TAB, KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, - KC_ENT, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), - KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS - ), - [6] = LAYOUT_ortho_4_3x10_4( - KC_1, KC_2, KC_3, TD(TD_ESC_WINDOWS_EMOJI), - KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, - KC_ENT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), - KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS - ), - [7] = LAYOUT_ortho_4_3x10_4( - KC_1, KC_2, KC_3, TD(TD_ESC_WINDOWS_EMOJI), - KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), - KC_ENT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, - KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS - ) -}; - -// OLED -#ifdef OLED_ENABLE -// WPM responsiveness -#define IDLE_FRAMES 5 // How many idle frames in animation -#define IDLE_SPEED 20 // Speed at which animation idles -#define TAP_FRAMES 2 // How many tapping frames -#define TAP_SPEED 40 // WPM to trigger Bongo -#define ANIMATION_FRAME_DURATION 200 // MS duration of each frame -#define ANIMATION_SIZE 256 // Number of bytes per animation frame - -uint32_t anim_timer = 0; -uint32_t anim_sleep = 0; -uint8_t current_idle_frame = 0; -uint8_t current_tap_frame = 0; - -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return OLED_ROTATION_90; // flips the display 180 degrees if offhand -} - -static void render_animation(void) { - static const char PROGMEM idle[IDLE_FRAMES][ANIMATION_SIZE] = { - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, - 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0d, 0x31, 0xc1, 0x01, 0x01, 0x01, 0x02, 0x02, - 0x02, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, - 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, - 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, - 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, - 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, - 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, - 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x34, 0xc4, 0x04, 0x04, 0x04, 0x08, 0x08, - 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, - 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, - 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, - 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, - 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, - 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, - 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x82, 0x02, 0x02, 0x04, 0x04, 0x08, - 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x01, 0x01, 0x02, 0x04, 0x04, 0x08, - 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, - 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, - 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, - 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x10, 0x08, - 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, - 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, - 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, - 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, - 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, - 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, - 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, - 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, - 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, - 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, - 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, - 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, - 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - } - }; - static const char PROGMEM prep[][ANIMATION_SIZE] = { - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, - 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, - 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, - 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, - 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, - 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, - 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, - 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, - 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - } - }; - static const char PROGMEM tap[TAP_FRAMES][ANIMATION_SIZE] = { - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, - 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, - 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, - 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, - 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, - 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, - 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, - 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x98, 0xc0, 0x88, 0x88, 0x8c, 0x9c, - 0x1c, 0x1e, 0x0e, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, - 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, - 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, - 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, - 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, - 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, - 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, - 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, - 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0f, 0x0f, 0x07, 0x03, 0x03, 0x61, - 0xf0, 0xf8, 0xfc, 0x60, 0x01, 0x01, 0x01, 0x3c, 0x78, 0xf8, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00 - } - }; - - void animation_phase(void) { - // Set cursor to draw from the bottom up - oled_set_cursor(128, 0); - - if (get_current_wpm() <= IDLE_SPEED) { - current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES; - oled_write_raw_P(idle[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIMATION_SIZE); - } - - // Start prep image - if (get_current_wpm() > IDLE_SPEED && get_current_wpm() < TAP_SPEED) { - oled_write_raw_P(prep[0], ANIMATION_SIZE); - } - - // Start tap animation - if (get_current_wpm() >= TAP_SPEED) { - current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES; - oled_write_raw_P(tap[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIMATION_SIZE); - } - } - if (get_current_wpm() != 000) { - oled_on(); // Enables OLED on any alpha keypress - - if (timer_elapsed32(anim_timer) > ANIMATION_FRAME_DURATION) { - anim_timer = timer_read32(); - animation_phase(); - } - - anim_sleep = timer_read32(); - } else { - if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) { - oled_off(); - } else { - if (timer_elapsed32(anim_timer) > ANIMATION_FRAME_DURATION) { - anim_timer = timer_read32(); - animation_phase(); - } - } - } -} - -// Draw to OLED -bool oled_task_user(void) { - // Caps lock text - led_t led_state = host_keyboard_led_state(); - oled_set_cursor(0,1); - oled_write_P(led_state.caps_lock ? PSTR(" Caps Lock "): PSTR(" ScottoCMD "), false); - - //WPM text - oled_set_cursor(0, 9); - oled_write(get_u8_str(get_current_wpm(), '0'), false); - oled_write_P(PSTR(" WPM"), false); - - static const char PROGMEM logos[][256] = { - // Apple - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x70, 0x78, 0x7c, 0x3e, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, - 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3e, 0x0e, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x7f, - 0x7f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x3f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - }, - - // Windows - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, - 0xf8, 0xf8, 0x00, 0x80, 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc0, 0x40, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xb8, 0x9f, 0x9f, 0x9f, 0x9f, 0x8f, 0x9f, 0x9f, 0x9f, 0x1f, 0x3f, 0x3f, - 0x07, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x07, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xe0, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x03, 0xe0, - 0xfc, 0xfc, 0xf9, 0xf9, 0xf9, 0xf3, 0xf3, 0xf3, 0xfb, 0xfb, 0xf9, 0x19, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x07, 0x01, 0x00, 0x1e, 0x1f, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x1f, 0x1f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - }, - - // Code - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x80, 0xc0, 0xe0, 0xf0, 0x78, 0x3c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, - 0xf8, 0xfc, 0x3f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x3c, 0x78, 0xf0, 0xe0, 0xc0, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x03, 0x07, 0x0f, 0x3e, 0x3c, 0x38, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xfc, 0x7e, 0x1f, 0x07, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x3c, 0x3e, 0x0f, 0x07, 0x03, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }, - - // Number - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x1f, - 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x1e, 0x1e, 0x1e, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x1e, - 0x1e, 0x1e, 0xbe, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x78, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x78, 0x78, - 0x78, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x78, 0x78, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, - 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - }, - - // Function - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, - 0xf8, 0xfc, 0xfe, 0xfe, 0xff, 0x9f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0x8f, 0x3f, - 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf8, 0xfc, 0xfe, 0x7f, 0x3f, 0x0f, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3e, - 0x1e, 0x0c, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x78, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }, - - // Caps Lock - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, - 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xe0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x03, 0x03, 0x07, 0x07, 0x0f, 0x0f, 0x1f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7f, 0x7f, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf8, 0xf8, 0xf0, 0xe0, 0xe0, 0xc0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x01, 0x03, 0x03, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - } - }; - - // Layer images - oled_set_cursor(32, 0); - switch (get_highest_layer(layer_state)) { - case _MAC_DEFAULT : - oled_write_raw_P(logos[0], sizeof(logos[0])); - break; - case _WIN_DEFAULT : - oled_write_raw_P(logos[1], sizeof(logos[1])); - break; - case _MAC_CODE : - case _WIN_CODE : - oled_write_raw_P(logos[2], sizeof(logos[2])); - break; - case _MAC_NUM : - case _WIN_NUM : - oled_write_raw_P(logos[3], sizeof(logos[3])); - break; - case _MAC_FUNC : - case _WIN_FUNC : - oled_write_raw_P(logos[4], sizeof(logos[4])); - break; - } - - // Render Bongo Cat - render_animation(); - - return false; -} -#endif diff --git a/keyboards/handwired/jscotto/scottocmd/keymaps/default/rules.mk b/keyboards/handwired/jscotto/scottocmd/keymaps/default/rules.mk deleted file mode 100644 index bcee933e75..0000000000 --- a/keyboards/handwired/jscotto/scottocmd/keymaps/default/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -WPM_ENABLE = yes -TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/jscotto/scottocmd/readme.md b/keyboards/handwired/jscotto/scottocmd/readme.md deleted file mode 100644 index b08d02d678..0000000000 --- a/keyboards/handwired/jscotto/scottocmd/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# ScottoCMD - -![ScottoCMD](https://i.imgur.com/rxiMZNnh.jpg) - -A 40 key handwired ortholinear keyboard with non-ortho bottom row. Featuring a 128x64 OLED display along with a 6.25u spacebar. Case files available [here](https://github.com/joe-scotto/keyboards.git). - -- Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) -- Hardware Supported: ATmega32U4 -- Hardware Availability: [Amazon](https://amazon.com) - -# Compiling - -Make example for this keyboard (after setting up your build environment): - - make handwired/jscotto/scottocmd:default - -Flashing example for this keyboard: - - make handwired/jscotto/scottocmd:default - -# Bootloader - -Uses [bootmagic](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_bootmagic.md) allowing you to hold the top left key (1, 0) when plugging the board in to enter bootloader mode. - -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). diff --git a/keyboards/handwired/jscotto/scottocmd/rules.mk b/keyboards/handwired/jscotto/scottocmd/rules.mk deleted file mode 100644 index 9f00574d5d..0000000000 --- a/keyboards/handwired/jscotto/scottocmd/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -OLED_ENABLE = yes -LTO_ENABLE = yes diff --git a/keyboards/handwired/jscotto/scottostarter/info.json b/keyboards/handwired/jscotto/scottostarter/info.json deleted file mode 100644 index 65fe2d9310..0000000000 --- a/keyboards/handwired/jscotto/scottostarter/info.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "manufacturer": "Joe Scotto", - "keyboard_name": "ScottoStarter", - "maintainer": "joe-scotto", - "bootloader": "caterina", - "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "command": false, - "console": false, - "extrakey": true, - "mousekey": true, - "nkro": true - }, - "matrix_pins": { - // RX1, 4, 5, 6, 7, 8, 9, A3, A2, A1, TX0 - "cols": ["D2", "D4", "C6", "D7", "E6", "B4", "B5", "F4", "F5", "F6", "D3"], - // A0, 15, 14, 16, 10 - "rows": ["F7", "B1", "B3", "B2", "B6"] - }, - "processor": "atmega32u4", - "url": "", - "usb": { - "device_version": "1.0.0", - "pid": "0x0000", - "vid": "0xFEED" - }, - "layouts": { - "LAYOUT_ortho_4x11_8": { - "layout": [ - // Row 1 - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - - // Row 2 - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - {"matrix": [1, 10], "x": 10, "y": 1}, - - // Row 3 - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2}, - {"matrix": [2, 4], "x": 4, "y": 2}, - {"matrix": [2, 5], "x": 5, "y": 2}, - {"matrix": [2, 6], "x": 6, "y": 2}, - {"matrix": [2, 7], "x": 7, "y": 2}, - {"matrix": [2, 8], "x": 8, "y": 2}, - {"matrix": [2, 9], "x": 9, "y": 2}, - {"matrix": [2, 10], "x": 10, "y": 2}, - - // Row 4 - {"matrix": [3, 0], "x": 0, "y": 3}, - {"matrix": [3, 1], "x": 1, "y": 3}, - {"matrix": [3, 2], "x": 2, "y": 3}, - {"matrix": [3, 3], "x": 3, "y": 3}, - {"matrix": [3, 4], "x": 4, "y": 3}, - {"matrix": [3, 5], "x": 5, "y": 3}, - {"matrix": [3, 6], "x": 6, "y": 3}, - {"matrix": [3, 7], "x": 7, "y": 3}, - {"matrix": [3, 8], "x": 8, "y": 3}, - {"matrix": [3, 9], "x": 9, "y": 3}, - {"matrix": [3, 10], "x": 10, "y": 3}, - - // Row 5 - {"matrix": [4, 0], "x": 0, "y": 4}, - {"matrix": [4, 1], "x": 1, "y": 4}, - {"matrix": [4, 2], "x": 2, "y": 4}, - {"matrix": [4, 4], "x": 4, "y": 4}, - {"matrix": [4, 7], "x": 7, "y": 4}, - {"matrix": [4, 8], "x": 8, "y": 4}, - {"matrix": [4, 9], "x": 9, "y": 4}, - {"matrix": [4, 10], "x": 10, "y": 4} - ] - } - } -} diff --git a/keyboards/handwired/jscotto/scottostarter/keymaps/default/config.h b/keyboards/handwired/jscotto/scottostarter/keymaps/default/config.h deleted file mode 100644 index 1a6512052c..0000000000 --- a/keyboards/handwired/jscotto/scottostarter/keymaps/default/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -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 . -*/ - -#pragma once - -// Define options -#define TAPPING_TERM 135 -#define PERMISSIVE_HOLD -#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/jscotto/scottostarter/keymaps/default/keymap.c b/keyboards/handwired/jscotto/scottostarter/keymaps/default/keymap.c deleted file mode 100644 index fb47637f18..0000000000 --- a/keyboards/handwired/jscotto/scottostarter/keymaps/default/keymap.c +++ /dev/null @@ -1,52 +0,0 @@ -/* -Copyright 2022 Joe Scotto - -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 . -*/ - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ortho_4x11_8( - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TAB, - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), KC_ENT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), MO(2), KC_ESC, KC_CAPS - ), - [1] = LAYOUT_ortho_4x11_8( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, - KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_NO, KC_TAB, - KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_QUOT, - LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILD, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), KC_ENT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_TRNS, KC_TRNS, KC_ESC, KC_CAPS - ), - [2] = LAYOUT_ortho_4x11_8( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSPC, - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, KC_TAB, - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_QUOT, - KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), KC_ENT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_TRNS, KC_TRNS, KC_ESC, KC_CAPS - ), - [3] = LAYOUT_ortho_4x11_8( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSPC, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), KC_TAB, - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_QUOT, - KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_ENT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_TRNS, KC_TRNS, KC_ESC, KC_CAPS - ) -}; - - - diff --git a/keyboards/handwired/jscotto/scottostarter/readme.md b/keyboards/handwired/jscotto/scottostarter/readme.md deleted file mode 100644 index 5886bc9d3b..0000000000 --- a/keyboards/handwired/jscotto/scottostarter/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# ScottoStarter - -![ScottoStarter](https://i.imgur.com/bspbVPah.jpg) - -A 52 key ortholinear keyboard that is designed to help transition you into smaller layouts. Case files available [here](https://github.com/joe-scotto/keyboards.git). - -- Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) -- Hardware Supported: ATmega32U4 -- Hardware Availability: [Amazon](https://amazon.com) - -# Compiling - -Make example for this keyboard (after setting up your build environment): - - make handwired/jscotto/scottostarter:default - -Flashing example for this keyboard: - - make handwired/jscotto/scottostarter:default - -# Bootloader - -Uses [bootmagic](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_bootmagic.md) allowing you to hold the top left key (0, 0) when plugging the board in to enter bootloader mode. - -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). diff --git a/keyboards/handwired/jscotto/scottostarter/rules.mk b/keyboards/handwired/jscotto/scottostarter/rules.mk deleted file mode 100644 index 7ff128fa69..0000000000 --- a/keyboards/handwired/jscotto/scottostarter/rules.mk +++ /dev/null @@ -1 +0,0 @@ -# This file intentionally left blank \ No newline at end of file -- cgit v1.3.1 From b4a7b9253a996484b10b4762f7b2fff7c9105c34 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 29 Jul 2023 15:16:14 +1000 Subject: Bluetooth: driver naming cleanups (#21624) --- builddefs/common_features.mk | 6 +++--- builddefs/show_options.mk | 1 - data/schemas/keyboard.jsonschema | 2 +- docs/config_options.md | 2 +- docs/feature_bluetooth.md | 10 +++++----- keyboards/10bleoledhub/info.json | 3 +++ keyboards/10bleoledhub/rules.mk | 1 - keyboards/40percentclub/mf68/keymaps/mf68_ble/rules.mk | 2 +- keyboards/atreus/feather/info.json | 5 ++++- keyboards/atreus/feather/rules.mk | 1 - keyboards/bioi/g60/info.json | 3 +++ keyboards/bioi/g60/rules.mk | 1 - keyboards/bioi/g60ble/info.json | 3 +++ keyboards/bioi/g60ble/rules.mk | 1 - keyboards/bioi/morgan65/info.json | 3 +++ keyboards/bioi/morgan65/rules.mk | 1 - keyboards/converter/m0110_usb/readme.md | 2 +- keyboards/converter/usb_usb/ble/info.json | 5 ++++- keyboards/converter/usb_usb/ble/rules.mk | 1 - keyboards/dtisaac/dosa40rgb/info.json | 3 +++ keyboards/dtisaac/dosa40rgb/rules.mk | 1 - keyboards/handwired/42/info.json | 3 +++ keyboards/handwired/42/rules.mk | 1 - keyboards/handwired/bdn9_ble/info.json | 3 +++ keyboards/handwired/bdn9_ble/rules.mk | 1 - keyboards/handwired/fruity60/info.json | 3 +++ keyboards/handwired/fruity60/rules.mk | 1 - keyboards/handwired/hacked_motospeed/info.json | 3 +++ keyboards/handwired/hacked_motospeed/rules.mk | 1 - keyboards/handwired/osborne1/info.json | 3 +++ keyboards/handwired/osborne1/rules.mk | 1 - keyboards/handwired/prkl30/feather/info.json | 3 +++ keyboards/handwired/prkl30/feather/rules.mk | 1 - keyboards/handwired/promethium/info.json | 3 +++ keyboards/handwired/promethium/rules.mk | 1 - keyboards/handwired/pterodactyl/info.json | 3 +++ keyboards/handwired/pterodactyl/rules.mk | 1 - keyboards/handwired/slash/info.json | 3 +++ keyboards/handwired/slash/rules.mk | 1 - keyboards/hhkb/yang/info.json | 3 +++ keyboards/hhkb/yang/rules.mk | 3 --- keyboards/latincompass/latin47ble/info.json | 3 +++ keyboards/latincompass/latin47ble/rules.mk | 1 - keyboards/latincompass/latin64ble/info.json | 3 +++ keyboards/latincompass/latin64ble/rules.mk | 1 - keyboards/latincompass/latinpadble/info.json | 2 +- keyboards/nek_type_a/info.json | 3 +++ keyboards/nek_type_a/rules.mk | 1 - keyboards/spaceman/pancake/rev1/feather/info.json | 5 ++++- keyboards/spaceman/pancake/rev1/feather/rules.mk | 1 - keyboards/tokyokeyboard/alix40/info.json | 3 +++ keyboards/tokyokeyboard/alix40/rules.mk | 1 - keyboards/woodkeys/meira/featherble/info.json | 5 +++++ keyboards/woodkeys/meira/featherble/rules.mk | 1 - users/wanleg/rules.mk | 2 +- 55 files changed, 88 insertions(+), 43 deletions(-) create mode 100644 keyboards/woodkeys/meira/featherble/info.json (limited to 'data') diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 2de2bdd56b..dd7e93d780 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -903,7 +903,7 @@ ifeq ($(strip $(USBPD_ENABLE)), yes) endif BLUETOOTH_ENABLE ?= no -VALID_BLUETOOTH_DRIVER_TYPES := BluefruitLE RN42 custom +VALID_BLUETOOTH_DRIVER_TYPES := bluefruit_le custom rn42 ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) ifeq ($(filter $(strip $(BLUETOOTH_DRIVER)),$(VALID_BLUETOOTH_DRIVER_TYPES)),) $(call CATASTROPHIC_ERROR,Invalid BLUETOOTH_DRIVER,BLUETOOTH_DRIVER="$(BLUETOOTH_DRIVER)" is not a valid Bluetooth driver type) @@ -913,7 +913,7 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) COMMON_VPATH += $(DRIVER_PATH)/bluetooth SRC += outputselect.c - ifeq ($(strip $(BLUETOOTH_DRIVER)), BluefruitLE) + ifeq ($(strip $(BLUETOOTH_DRIVER)), bluefruit_le) OPT_DEFS += -DBLUETOOTH_BLUEFRUIT_LE -DHAL_USE_SPI=TRUE SRC += $(DRIVER_PATH)/bluetooth/bluetooth.c SRC += $(DRIVER_PATH)/bluetooth/bluefruit_le.cpp @@ -921,7 +921,7 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) QUANTUM_LIB_SRC += spi_master.c endif - ifeq ($(strip $(BLUETOOTH_DRIVER)), RN42) + ifeq ($(strip $(BLUETOOTH_DRIVER)), rn42) OPT_DEFS += -DBLUETOOTH_RN42 -DHAL_USE_SERIAL=TRUE SRC += $(DRIVER_PATH)/bluetooth/bluetooth.c SRC += $(DRIVER_PATH)/bluetooth/rn42.c diff --git a/builddefs/show_options.mk b/builddefs/show_options.mk index 8bcc02083b..c21f907881 100644 --- a/builddefs/show_options.mk +++ b/builddefs/show_options.mk @@ -60,7 +60,6 @@ OTHER_OPTION_NAMES = \ ENCODER_ENABLE_CUSTOM \ GERMAN_ENABLE \ HAPTIC_ENABLE \ - HHKB_RN42_ENABLE \ ISSI_ENABLE \ KEYLOGGER_ENABLE \ LCD_BACKLIGHT_ENABLE \ diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 2051a7b8ba..cdea662192 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -148,7 +148,7 @@ "properties": { "driver": { "type": "string", - "enum": ["BluefruitLE", "RN42", "custom"] + "enum": ["bluefruit_le", "custom", "rn42"] } } }, diff --git a/docs/config_options.md b/docs/config_options.md index 4698260118..8119b9e356 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -439,7 +439,7 @@ Use these to enable or disable building certain features. The more you have enab * `UNICODE_ENABLE` * Unicode * `BLUETOOTH_ENABLE` - * Current options are BluefruitLE, RN42 + * Current options are bluefruit_le, rn42 * `SPLIT_KEYBOARD` * Enables split keyboard support (dual MCU like the let's split and bakingpy's boards) and includes all necessary files located at quantum/split_common * `CUSTOM_MATRIX` diff --git a/docs/feature_bluetooth.md b/docs/feature_bluetooth.md index f7ded84d86..5fac06fba7 100644 --- a/docs/feature_bluetooth.md +++ b/docs/feature_bluetooth.md @@ -4,10 +4,10 @@ Currently Bluetooth support is limited to AVR based chips. For Bluetooth 2.1, QMK has support for RN-42 modules. For more recent BLE protocols, currently only the Adafruit Bluefruit SPI Friend is directly supported. BLE is needed to connect to iOS devices. Note iOS does not support mouse input. -|Board |Bluetooth Protocol |Connection Type|rules.mk |Bluetooth Chip| -|----------------------------------------------------------------|--------------------|---------------|--------------------------------|--------------| -|Roving Networks RN-42 (Sparkfun Bluesmirf) |Bluetooth Classic |UART |`BLUETOOTH_DRIVER = RN42` |RN-42 | -|[Bluefruit LE SPI Friend](https://www.adafruit.com/product/2633)|Bluetooth Low Energy|SPI |`BLUETOOTH_DRIVER = BluefruitLE`|nRF51822 | +|Board |Bluetooth Protocol |Connection Type|rules.mk |Bluetooth Chip| +|----------------------------------------------------------------|--------------------|---------------|---------------------------------|--------------| +|Roving Networks RN-42 (Sparkfun Bluesmirf) |Bluetooth Classic |UART |`BLUETOOTH_DRIVER = rn42` |RN-42 | +|[Bluefruit LE SPI Friend](https://www.adafruit.com/product/2633)|Bluetooth Low Energy|SPI |`BLUETOOTH_DRIVER = bluefruit_le`|nRF51822 | Not Supported Yet but possible: * [Bluefruit LE UART Friend](https://www.adafruit.com/product/2479). [Possible tmk implementation found in](https://github.com/tmk/tmk_keyboard/issues/514) @@ -32,7 +32,7 @@ Add the following to your `rules.mk`: ```make BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE # or RN42 +BLUETOOTH_DRIVER = bluefruit_le # or rn42 ``` ## Bluetooth Keycodes diff --git a/keyboards/10bleoledhub/info.json b/keyboards/10bleoledhub/info.json index 15d4702427..2251fad834 100644 --- a/keyboards/10bleoledhub/info.json +++ b/keyboards/10bleoledhub/info.json @@ -8,6 +8,9 @@ "pid": "0x7C99", "device_version": "0.0.1" }, + "bluetooth": { + "driver": "bluefruit_le" + }, "rgblight": { "led_count": 4 }, diff --git a/keyboards/10bleoledhub/rules.mk b/keyboards/10bleoledhub/rules.mk index e30794f68e..2c0b66f84d 100644 --- a/keyboards/10bleoledhub/rules.mk +++ b/keyboards/10bleoledhub/rules.mk @@ -14,7 +14,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE OLED_ENABLE = yes OLED_DRIVER = SSD1306 ENCODER_ENABLE = yes diff --git a/keyboards/40percentclub/mf68/keymaps/mf68_ble/rules.mk b/keyboards/40percentclub/mf68/keymaps/mf68_ble/rules.mk index 975c581883..dedd62afcb 100644 --- a/keyboards/40percentclub/mf68/keymaps/mf68_ble/rules.mk +++ b/keyboards/40percentclub/mf68/keymaps/mf68_ble/rules.mk @@ -5,5 +5,5 @@ F_CPU = 8000000 # change yes to no to disable # BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE +BLUETOOTH_DRIVER = bluefruit_le BACKLIGHT_ENABLE = no diff --git a/keyboards/atreus/feather/info.json b/keyboards/atreus/feather/info.json index 1f70534b7f..b0d7d55443 100644 --- a/keyboards/atreus/feather/info.json +++ b/keyboards/atreus/feather/info.json @@ -5,5 +5,8 @@ }, "diode_direction": "COL2ROW", "processor": "atmega32u4", - "bootloader": "caterina" + "bootloader": "caterina", + "bluetooth": { + "driver": "bluefruit_le" + } } diff --git a/keyboards/atreus/feather/rules.mk b/keyboards/atreus/feather/rules.mk index 5e7d24b055..c93cad9080 100644 --- a/keyboards/atreus/feather/rules.mk +++ b/keyboards/atreus/feather/rules.mk @@ -5,5 +5,4 @@ F_CPU = 8000000 # change yes to no to disable # BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE CONSOLE_ENABLE = no diff --git a/keyboards/bioi/g60/info.json b/keyboards/bioi/g60/info.json index 16341aff48..17510f0ae1 100644 --- a/keyboards/bioi/g60/info.json +++ b/keyboards/bioi/g60/info.json @@ -25,6 +25,9 @@ "ws2812": { "pin": "B1" }, + "bluetooth": { + "driver": "custom" + }, "processor": "atmega32u4", "bootloader": "qmk-dfu", "layouts": { diff --git a/keyboards/bioi/g60/rules.mk b/keyboards/bioi/g60/rules.mk index a22a56ecec..2b955ce793 100644 --- a/keyboards/bioi/g60/rules.mk +++ b/keyboards/bioi/g60/rules.mk @@ -15,7 +15,6 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output LTO_ENABLE = yes # Reduce firmware size BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = custom VIA_ENABLE = yes # VIA support should be enabled here due to the main() loop will be compiled first. diff --git a/keyboards/bioi/g60ble/info.json b/keyboards/bioi/g60ble/info.json index 69643ae60f..ba97d9965a 100644 --- a/keyboards/bioi/g60ble/info.json +++ b/keyboards/bioi/g60ble/info.json @@ -25,6 +25,9 @@ "ws2812": { "pin": "B1" }, + "bluetooth": { + "driver": "custom" + }, "processor": "atmega32u4", "bootloader": "qmk-dfu", "community_layouts": ["60_ansi", "60_iso", "60_hhkb", "60_ansi_split_bs_rshift", "60_tsangan_hhkb"], diff --git a/keyboards/bioi/g60ble/rules.mk b/keyboards/bioi/g60ble/rules.mk index d1edb6882d..31cc2c22b6 100644 --- a/keyboards/bioi/g60ble/rules.mk +++ b/keyboards/bioi/g60ble/rules.mk @@ -15,7 +15,6 @@ LTO_ENABLE = yes # these lines are all for bluetooth BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = custom SRC += usart.c ble.c OPT_DEFS += -DUART_RX1_BUFFER_SIZE=16 -DUART_TX1_BUFFER_SIZE=16 OPT_DEFS += -DUSART1_ENABLED diff --git a/keyboards/bioi/morgan65/info.json b/keyboards/bioi/morgan65/info.json index db1c74474d..d67e5c397b 100644 --- a/keyboards/bioi/morgan65/info.json +++ b/keyboards/bioi/morgan65/info.json @@ -25,6 +25,9 @@ "ws2812": { "pin": "B1" }, + "bluetooth": { + "driver": "custom" + }, "processor": "atmega32u4", "bootloader": "qmk-dfu", "community_layouts": [ diff --git a/keyboards/bioi/morgan65/rules.mk b/keyboards/bioi/morgan65/rules.mk index a22a56ecec..2b955ce793 100644 --- a/keyboards/bioi/morgan65/rules.mk +++ b/keyboards/bioi/morgan65/rules.mk @@ -15,7 +15,6 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output LTO_ENABLE = yes # Reduce firmware size BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = custom VIA_ENABLE = yes # VIA support should be enabled here due to the main() loop will be compiled first. diff --git a/keyboards/converter/m0110_usb/readme.md b/keyboards/converter/m0110_usb/readme.md index d066aa5a7c..1eb051f000 100644 --- a/keyboards/converter/m0110_usb/readme.md +++ b/keyboards/converter/m0110_usb/readme.md @@ -5,7 +5,7 @@ This is a port of the original M0110 converter from TMK to QMK. The original con ## Enabling Bluetooth for the Adafruit Feather 32U4 BLE -Simply add `BLUETOOTH = BluefruitLE` to your `rules.mk` file. This enables code specifically for the Adafruit Feather 32U4 BLE. If enabled, the device will use the `PRODUCT` value from `config.h` for the device name displayed by the Feather on host devices. You can simply change these values to change the device name. +Simply add `BLUETOOTH = bluefruit_le` to your `rules.mk` file. This enables code specifically for the Adafruit Feather 32U4 BLE. If enabled, the device will use the `PRODUCT` value from `config.h` for the device name displayed by the Feather on host devices. You can simply change these values to change the device name. ## Pins diff --git a/keyboards/converter/usb_usb/ble/info.json b/keyboards/converter/usb_usb/ble/info.json index 56062f7ad3..18edf5f577 100644 --- a/keyboards/converter/usb_usb/ble/info.json +++ b/keyboards/converter/usb_usb/ble/info.json @@ -1,3 +1,6 @@ { - "bootloader": "caterina" + "bootloader": "caterina", + "bluetooth": { + "driver": "bluefruit_le" + } } diff --git a/keyboards/converter/usb_usb/ble/rules.mk b/keyboards/converter/usb_usb/ble/rules.mk index 86a4e15ffe..5b0435372b 100644 --- a/keyboards/converter/usb_usb/ble/rules.mk +++ b/keyboards/converter/usb_usb/ble/rules.mk @@ -3,5 +3,4 @@ F_CPU = 8000000 EXTRAKEY_ENABLE = no BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE LTO_ENABLE = yes diff --git a/keyboards/dtisaac/dosa40rgb/info.json b/keyboards/dtisaac/dosa40rgb/info.json index 35a7311112..27b5240194 100644 --- a/keyboards/dtisaac/dosa40rgb/info.json +++ b/keyboards/dtisaac/dosa40rgb/info.json @@ -8,6 +8,9 @@ "pid": "0x4973", "device_version": "0.0.4" }, + "bluetooth": { + "driver": "bluefruit_le" + }, "ws2812": { "pin": "D0" }, diff --git a/keyboards/dtisaac/dosa40rgb/rules.mk b/keyboards/dtisaac/dosa40rgb/rules.mk index 5cc9ef68e4..265652de50 100644 --- a/keyboards/dtisaac/dosa40rgb/rules.mk +++ b/keyboards/dtisaac/dosa40rgb/rules.mk @@ -11,7 +11,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output BLUETOOTH_ENABLE = yes # Enable Bluetooth -BLUETOOTH_DRIVER = BluefruitLE RGB_MATRIX_ENABLE = yes LTO_ENABLE = yes diff --git a/keyboards/handwired/42/info.json b/keyboards/handwired/42/info.json index fae660de93..e2cc8dbf71 100644 --- a/keyboards/handwired/42/info.json +++ b/keyboards/handwired/42/info.json @@ -8,6 +8,9 @@ "pid": "0x0000", "device_version": "0.0.3" }, + "bluetooth": { + "driver": "bluefruit_le" + }, "tapping": { "term": 100 }, diff --git a/keyboards/handwired/42/rules.mk b/keyboards/handwired/42/rules.mk index 15cf817e7e..0c5b506f63 100644 --- a/keyboards/handwired/42/rules.mk +++ b/keyboards/handwired/42/rules.mk @@ -15,4 +15,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE diff --git a/keyboards/handwired/bdn9_ble/info.json b/keyboards/handwired/bdn9_ble/info.json index bb8258c7cf..e5c9479453 100644 --- a/keyboards/handwired/bdn9_ble/info.json +++ b/keyboards/handwired/bdn9_ble/info.json @@ -8,6 +8,9 @@ "pid": "0x1134", "device_version": "1.0.0" }, + "bluetooth": { + "driver": "bluefruit_le" + }, "backlight": { "driver": "timer", "pin": "F6", diff --git a/keyboards/handwired/bdn9_ble/rules.mk b/keyboards/handwired/bdn9_ble/rules.mk index c9d3996b93..0dafe2f289 100644 --- a/keyboards/handwired/bdn9_ble/rules.mk +++ b/keyboards/handwired/bdn9_ble/rules.mk @@ -15,4 +15,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output ENCODER_ENABLE = no BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE diff --git a/keyboards/handwired/fruity60/info.json b/keyboards/handwired/fruity60/info.json index dab7f609a8..34b1edc820 100644 --- a/keyboards/handwired/fruity60/info.json +++ b/keyboards/handwired/fruity60/info.json @@ -8,6 +8,9 @@ "pid": "0xB170", "device_version": "0.0.1" }, + "bluetooth": { + "driver": "bluefruit_le" + }, "matrix_pins": { "cols": ["F7", "F6", "F5", "F4", "F1", "F0", "D2", "D3", "B7", "D6", "C7"], "rows": ["B6", "B5", "D7", "C6", "D0", "D1"] diff --git a/keyboards/handwired/fruity60/rules.mk b/keyboards/handwired/fruity60/rules.mk index 61260f5e39..79e2ef4eff 100644 --- a/keyboards/handwired/fruity60/rules.mk +++ b/keyboards/handwired/fruity60/rules.mk @@ -14,4 +14,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE diff --git a/keyboards/handwired/hacked_motospeed/info.json b/keyboards/handwired/hacked_motospeed/info.json index 86736773ec..899bd58bcb 100644 --- a/keyboards/handwired/hacked_motospeed/info.json +++ b/keyboards/handwired/hacked_motospeed/info.json @@ -8,6 +8,9 @@ "pid": "0x0690", "device_version": "0.0.1" }, + "bluetooth": { + "driver": "rn42" + }, "matrix_pins": { "cols": ["F7", "F6", "F5", "F4", "F3", "F2", "E0", "E1", "C0", "C1", "C2", "C3"], "rows": ["B3", "B4", "F1", "B5", "B6", "D5", "D4", "D6", "D7", "C4"] diff --git a/keyboards/handwired/hacked_motospeed/rules.mk b/keyboards/handwired/hacked_motospeed/rules.mk index 50716e356f..362a7fadbe 100644 --- a/keyboards/handwired/hacked_motospeed/rules.mk +++ b/keyboards/handwired/hacked_motospeed/rules.mk @@ -12,4 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output NO_USB_STARTUP_CHECK = yes # Disable initialization only when usb is plugged in BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = RN42 diff --git a/keyboards/handwired/osborne1/info.json b/keyboards/handwired/osborne1/info.json index d226b4dd71..2f613b5876 100644 --- a/keyboards/handwired/osborne1/info.json +++ b/keyboards/handwired/osborne1/info.json @@ -12,6 +12,9 @@ "mousekey": false, "nkro": false }, + "bluetooth": { + "driver": "bluefruit_le" + }, "matrix_pins": { "cols": ["D3", "D2", "F0", "F1", "F4", "F5", "F6", "F7"], "rows": ["D0", "B7", "B5", "C6", "D1", "B6", "D7", "D6"] diff --git a/keyboards/handwired/osborne1/rules.mk b/keyboards/handwired/osborne1/rules.mk index 2bf3fe5811..9ccac102c7 100644 --- a/keyboards/handwired/osborne1/rules.mk +++ b/keyboards/handwired/osborne1/rules.mk @@ -1,2 +1 @@ BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE diff --git a/keyboards/handwired/prkl30/feather/info.json b/keyboards/handwired/prkl30/feather/info.json index e0570d71bf..f57926060b 100644 --- a/keyboards/handwired/prkl30/feather/info.json +++ b/keyboards/handwired/prkl30/feather/info.json @@ -7,6 +7,9 @@ "ws2812": { "pin": "D1" }, + "bluetooth": { + "driver": "bluefruit_le" + }, "matrix_pins": { "cols": ["D3", "D1", "B7", "D6", "C7", "B6", "B5", "D7", "C6", "D0"], "rows": ["F4", "F1", "F0", "D2"] diff --git a/keyboards/handwired/prkl30/feather/rules.mk b/keyboards/handwired/prkl30/feather/rules.mk index 6b109855a5..aaab95b9e0 100644 --- a/keyboards/handwired/prkl30/feather/rules.mk +++ b/keyboards/handwired/prkl30/feather/rules.mk @@ -16,4 +16,3 @@ AUDIO_ENABLE = no # This can be enabled if a speaker is connected to t RGBLIGHT_ENABLE = no # This can be enabled if a ws2812 strip is connected to the expansion port. BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE diff --git a/keyboards/handwired/promethium/info.json b/keyboards/handwired/promethium/info.json index 6daf5dd0c6..c26325069b 100644 --- a/keyboards/handwired/promethium/info.json +++ b/keyboards/handwired/promethium/info.json @@ -11,6 +11,9 @@ "ws2812": { "pin": "B5" }, + "bluetooth": { + "driver": "bluefruit_le" + }, "processor": "atmega32u4", "bootloader": "caterina", "layouts": { diff --git a/keyboards/handwired/promethium/rules.mk b/keyboards/handwired/promethium/rules.mk index a0be87690e..609c4d0e7e 100644 --- a/keyboards/handwired/promethium/rules.mk +++ b/keyboards/handwired/promethium/rules.mk @@ -18,7 +18,6 @@ PS2_ENABLE = yes PS2_DRIVER = interrupt CUSTOM_MATRIX = yes BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE WS2812_DRIVER_REQUIRED = yes SRC += rgbsps.c diff --git a/keyboards/handwired/pterodactyl/info.json b/keyboards/handwired/pterodactyl/info.json index 3598b39b8d..ad83f34999 100644 --- a/keyboards/handwired/pterodactyl/info.json +++ b/keyboards/handwired/pterodactyl/info.json @@ -14,6 +14,9 @@ "tapping": { "toggle": 1 }, + "bluetooth": { + "driver": "bluefruit_le" + }, "layouts": { "LAYOUT_pterodactyl": { "layout": [ diff --git a/keyboards/handwired/pterodactyl/rules.mk b/keyboards/handwired/pterodactyl/rules.mk index eb2487d410..9f0cabc750 100644 --- a/keyboards/handwired/pterodactyl/rules.mk +++ b/keyboards/handwired/pterodactyl/rules.mk @@ -16,7 +16,6 @@ AUDIO_ENABLE = no # Audio output UNICODE_ENABLE = yes CUSTOM_MATRIX = yes BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE SRC += matrix.c QUANTUM_LIB_SRC += i2c_master.c diff --git a/keyboards/handwired/slash/info.json b/keyboards/handwired/slash/info.json index 070cbb2c75..95abaeb9c7 100644 --- a/keyboards/handwired/slash/info.json +++ b/keyboards/handwired/slash/info.json @@ -8,6 +8,9 @@ "pid": "0x0000", "device_version": "0.0.1" }, + "bluetooth": { + "driver": "bluefruit_le" + }, "matrix_pins": { "cols": ["D2", "F0", "F1", "F4", "F5", "F6", "F7", "D3"], "rows": ["C7", "D6", "B7", "B6", "B5", "D7", "C6", "D0"] diff --git a/keyboards/handwired/slash/rules.mk b/keyboards/handwired/slash/rules.mk index c99c2847ce..ca7f6f843f 100644 --- a/keyboards/handwired/slash/rules.mk +++ b/keyboards/handwired/slash/rules.mk @@ -14,4 +14,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE diff --git a/keyboards/hhkb/yang/info.json b/keyboards/hhkb/yang/info.json index bfff105e90..24cd750e09 100644 --- a/keyboards/hhkb/yang/info.json +++ b/keyboards/hhkb/yang/info.json @@ -11,6 +11,9 @@ "indicators": { "caps_lock": "F4" }, + "bluetooth": { + "driver": "bluefruit_le" + }, "processor": "atmega32u4", "bootloader": "lufa-ms", "debounce": 0, diff --git a/keyboards/hhkb/yang/rules.mk b/keyboards/hhkb/yang/rules.mk index 71ec705822..99f77d0c16 100644 --- a/keyboards/hhkb/yang/rules.mk +++ b/keyboards/hhkb/yang/rules.mk @@ -11,9 +11,6 @@ CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = no # USB Nkey Rollover -# Disable bluetooth until the UART code is merged -BLUETOOTH_DRIVER = BluefruitLE - # Custom matrix file for the HHKB CUSTOM_MATRIX = lite SRC += matrix.c diff --git a/keyboards/latincompass/latin47ble/info.json b/keyboards/latincompass/latin47ble/info.json index befa51fdab..44c8b47555 100644 --- a/keyboards/latincompass/latin47ble/info.json +++ b/keyboards/latincompass/latin47ble/info.json @@ -21,6 +21,9 @@ "tapping": { "term": 250 }, + "bluetooth": { + "driver": "bluefruit_le" + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/latincompass/latin47ble/rules.mk b/keyboards/latincompass/latin47ble/rules.mk index 77af9dc3da..1c65d3584e 100644 --- a/keyboards/latincompass/latin47ble/rules.mk +++ b/keyboards/latincompass/latin47ble/rules.mk @@ -14,4 +14,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE diff --git a/keyboards/latincompass/latin64ble/info.json b/keyboards/latincompass/latin64ble/info.json index e36572a1d0..314b5ff04b 100644 --- a/keyboards/latincompass/latin64ble/info.json +++ b/keyboards/latincompass/latin64ble/info.json @@ -8,6 +8,9 @@ "pid": "0x6C71", "device_version": "0.0.1" }, + "bluetooth": { + "driver": "bluefruit_le" + }, "rgblight": { "brightness_steps": 25, "led_count": 2 diff --git a/keyboards/latincompass/latin64ble/rules.mk b/keyboards/latincompass/latin64ble/rules.mk index 5fdb1567a4..6ad854a5a2 100644 --- a/keyboards/latincompass/latin64ble/rules.mk +++ b/keyboards/latincompass/latin64ble/rules.mk @@ -14,4 +14,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE diff --git a/keyboards/latincompass/latinpadble/info.json b/keyboards/latincompass/latinpadble/info.json index 70575f7381..fe35f74e79 100644 --- a/keyboards/latincompass/latinpadble/info.json +++ b/keyboards/latincompass/latinpadble/info.json @@ -50,7 +50,7 @@ } }, "bluetooth": { - "driver": "BluefruitLE" + "driver": "bluefruit_le" }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/nek_type_a/info.json b/keyboards/nek_type_a/info.json index b81bb4b2ce..6cb972b17f 100644 --- a/keyboards/nek_type_a/info.json +++ b/keyboards/nek_type_a/info.json @@ -8,6 +8,9 @@ "pid": "0x0000", "device_version": "0.0.1" }, + "bluetooth": { + "driver": "bluefruit_le" + }, "processor": "atmega32u4", "bootloader": "caterina", "layouts": { diff --git a/keyboards/nek_type_a/rules.mk b/keyboards/nek_type_a/rules.mk index ca61554f78..f79051ebce 100644 --- a/keyboards/nek_type_a/rules.mk +++ b/keyboards/nek_type_a/rules.mk @@ -16,6 +16,5 @@ AUDIO_ENABLE = no # Audio output CUSTOM_MATRIX = yes DEBUG_ENABLE = yes BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE SRC += matrix.c mcp23017.c diff --git a/keyboards/spaceman/pancake/rev1/feather/info.json b/keyboards/spaceman/pancake/rev1/feather/info.json index 2d8072e7f1..85f95a011b 100644 --- a/keyboards/spaceman/pancake/rev1/feather/info.json +++ b/keyboards/spaceman/pancake/rev1/feather/info.json @@ -3,5 +3,8 @@ "cols": ["C7", "D6", "B7", "B6", "F0", "D2", "D3", "F1", "F4", "F5", "F6", "F7"], "rows": ["B5", "D7", "C6", "D0"] }, - "diode_direction": "COL2ROW" + "diode_direction": "COL2ROW", + "bluetooth": { + "driver": "bluefruit_le" + } } diff --git a/keyboards/spaceman/pancake/rev1/feather/rules.mk b/keyboards/spaceman/pancake/rev1/feather/rules.mk index 822ab9971b..35ad61d4a1 100644 --- a/keyboards/spaceman/pancake/rev1/feather/rules.mk +++ b/keyboards/spaceman/pancake/rev1/feather/rules.mk @@ -14,7 +14,6 @@ BACKLIGHT_ENABLE = no # Custom backlighting code is used, so this should not b AUDIO_ENABLE = no # This can be enabled if a speaker is connected to the expansion port. Not compatible with RGBLIGHT below RGBLIGHT_ENABLE = no # This can be enabled if a ws2812 strip is connected to the expansion port. BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE # Disable unsupported hardware RGBLIGHT_SUPPORTED = no diff --git a/keyboards/tokyokeyboard/alix40/info.json b/keyboards/tokyokeyboard/alix40/info.json index 1c2c6fcd6a..19c289450d 100644 --- a/keyboards/tokyokeyboard/alix40/info.json +++ b/keyboards/tokyokeyboard/alix40/info.json @@ -13,6 +13,9 @@ "rows": ["D7", "C6", "C7", "B5"] }, "diode_direction": "ROW2COL", + "bluetooth": { + "driver": "bluefruit_le" + }, "backlight": { "pin": "B7", "levels": 31, diff --git a/keyboards/tokyokeyboard/alix40/rules.mk b/keyboards/tokyokeyboard/alix40/rules.mk index 2c7a275847..5d6d78ae10 100644 --- a/keyboards/tokyokeyboard/alix40/rules.mk +++ b/keyboards/tokyokeyboard/alix40/rules.mk @@ -14,4 +14,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE diff --git a/keyboards/woodkeys/meira/featherble/info.json b/keyboards/woodkeys/meira/featherble/info.json new file mode 100644 index 0000000000..2ce28918df --- /dev/null +++ b/keyboards/woodkeys/meira/featherble/info.json @@ -0,0 +1,5 @@ +{ + "bluetooth": { + "driver": "bluefruit_le" + } +} diff --git a/keyboards/woodkeys/meira/featherble/rules.mk b/keyboards/woodkeys/meira/featherble/rules.mk index 01f1af1ae8..174947ff39 100644 --- a/keyboards/woodkeys/meira/featherble/rules.mk +++ b/keyboards/woodkeys/meira/featherble/rules.mk @@ -2,4 +2,3 @@ F_CPU = 8000000 BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE diff --git a/users/wanleg/rules.mk b/users/wanleg/rules.mk index de4decf78a..cb447a1792 100644 --- a/users/wanleg/rules.mk +++ b/users/wanleg/rules.mk @@ -22,7 +22,7 @@ ifeq ($(strip $(BT)), yes) OPT_DEFS += -DBLUEFRUIT #Adafruit Bluefruit controller settings BLUETOOTH_ENABLE = yes - BLUETOOTH_DRIVER = BluefruitLE + BLUETOOTH_DRIVER = bluefruit_le F_CPU = 8000000 CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = no # Commands for debug and configuration -- cgit v1.3.1 From 27ff1d4153ebe1476fdb011a5a136811e600412b Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 1 Aug 2023 01:54:28 +0100 Subject: Remove layout aliases from keyboard_aliases.hjson (#21658) --- data/mappings/keyboard_aliases.hjson | 66 +++---------------------------- keyboards/coarse/vinta/info.json | 3 ++ keyboards/doro67/multi/info.json | 3 ++ keyboards/doro67/regular/info.json | 3 ++ keyboards/doro67/rgb/info.json | 3 ++ keyboards/jaykeeb/kamigakushi/info.json | 3 ++ keyboards/kbdfans/kbd67/mkiirgb/info.json | 5 ++- keyboards/noxary/268_2/info.json | 3 ++ lib/python/qmk/commands.py | 3 -- 9 files changed, 27 insertions(+), 65 deletions(-) (limited to 'data') diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 1f275a2f16..60c5deaad5 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -1,13 +1,9 @@ { // Format for each entry: // "": { - // "target": "", - // "layouts": { - // "": "" - // } + // "target": "" // } // - // Both target and layouts are optional. "2_milk": { "target": "spaceman/2_milk" }, @@ -140,21 +136,6 @@ "daisy": { "target": "ktec/daisy" }, - "doro67/multi": { - "layouts": { - "LAYOUT_ansi": "LAYOUT_65_ansi_blocker" - } - }, - "doro67/regular": { - "layouts": { - "LAYOUT": "LAYOUT_65_ansi_blocker" - } - }, - "doro67/rgb": { - "layouts": { - "LAYOUT": "LAYOUT_65_ansi_blocker" - } - }, "drakon": { "target": "jagdpietr/drakon" }, @@ -285,10 +266,7 @@ "target": "keyhive/honeycomb" }, "idb_60": { - "target": "idb/idb_60", - "layouts": { - "LAYOUT": "LAYOUT_all" - } + "target": "idb/idb_60" }, "idobo": { "target": "idobao/id75" @@ -309,19 +287,13 @@ "target": "jones/v03_1" }, "kamigakushi": { - "target": "jaykeeb/kamigakushi", - "layouts": { - "LAYOUT": "LAYOUT_65_ansi_blocker_tsangan" - } + "target": "jaykeeb/kamigakushi" }, "katana60": { "target": "rominronin/katana60/rev1" }, "kbdfans/kbd67mkiirgb": { - "target": "kbdfans/kbd67/mkiirgb", - "layouts": { - "LAYOUT": "LAYOUT_65_ansi_blocker" - } + "target": "kbdfans/kbd67/mkiirgb" }, "kbdfans/kbd67/mkiirgb": { "target": "kbdfans/kbd67/mkiirgb/v1" @@ -467,11 +439,6 @@ "mschwingen/modelm": { "target": "ibm/model_m/mschwingen" }, - "noxary/268_2": { - "layouts": { - "LAYOUT": "LAYOUT_65_ansi_blocker" - } - }, "oddball": { "target": "oddball/v1" }, @@ -496,11 +463,6 @@ "peiorisboards/ixora": { "target": "coarse/ixora" }, - "percent/canoe": { - "layouts": { - "LAYOUT_iso": "LAYOUT_65_iso_blocker" - } - }, "plaid": { "target": "dm9records/plaid" }, @@ -513,21 +475,6 @@ "polilla": { "target": "polilla/rev1" }, - "preonic/rev1": { - "layouts": { - "LAYOUT_preonic_grid": "LAYOUT_ortho_5x12" - } - }, - "preonic/rev2": { - "layouts": { - "LAYOUT_preonic_grid": "LAYOUT_ortho_5x12" - } - }, - "preonic/rev3": { - "layouts": { - "LAYOUT_preonic_grid": "LAYOUT_ortho_5x12" - } - }, "primekb/prime_l": { "target": "primekb/prime_l/v1" }, @@ -619,10 +566,7 @@ "target": "underscore33/rev1" }, "vinta": { - "target": "coarse/vinta", - "layouts": { - "LAYOUT_67_ansi": "LAYOUT_65_ansi_blocker" - } + "target": "coarse/vinta" }, "wasdat": { "target": "maartenwut/wasdat" diff --git a/keyboards/coarse/vinta/info.json b/keyboards/coarse/vinta/info.json index a430ea36b7..3dd9898f1a 100644 --- a/keyboards/coarse/vinta/info.json +++ b/keyboards/coarse/vinta/info.json @@ -17,6 +17,9 @@ "bootloader": "stm32-dfu", "debounce": 0, "community_layouts": ["65_ansi_blocker"], + "layout_aliases": { + "LAYOUT_67_ansi": "LAYOUT_65_ansi_blocker" + }, "layouts": { "LAYOUT_69_ansi": { "layout": [ diff --git a/keyboards/doro67/multi/info.json b/keyboards/doro67/multi/info.json index db8da861c1..10cd3bb652 100644 --- a/keyboards/doro67/multi/info.json +++ b/keyboards/doro67/multi/info.json @@ -24,6 +24,9 @@ "processor": "atmega32u4", "bootloader": "atmel-dfu", "community_layouts": ["65_ansi_blocker"], + "layout_aliases": { + "LAYOUT_ansi": "LAYOUT_65_ansi_blocker" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [ diff --git a/keyboards/doro67/regular/info.json b/keyboards/doro67/regular/info.json index 70997d3e1a..863d935b0a 100644 --- a/keyboards/doro67/regular/info.json +++ b/keyboards/doro67/regular/info.json @@ -19,6 +19,9 @@ "processor": "atmega32u4", "bootloader": "atmel-dfu", "community_layouts": ["65_ansi_blocker"], + "layout_aliases": { + "LAYOUT": "LAYOUT_65_ansi_blocker" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [ diff --git a/keyboards/doro67/rgb/info.json b/keyboards/doro67/rgb/info.json index f4a7d40dce..83d642ab0b 100644 --- a/keyboards/doro67/rgb/info.json +++ b/keyboards/doro67/rgb/info.json @@ -26,6 +26,9 @@ "processor": "atmega32u4", "bootloader": "atmel-dfu", "community_layouts": ["65_ansi_blocker"], + "layout_aliases": { + "LAYOUT": "LAYOUT_65_ansi_blocker" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [ diff --git a/keyboards/jaykeeb/kamigakushi/info.json b/keyboards/jaykeeb/kamigakushi/info.json index a421019a4a..7ab02d2c66 100644 --- a/keyboards/jaykeeb/kamigakushi/info.json +++ b/keyboards/jaykeeb/kamigakushi/info.json @@ -51,6 +51,9 @@ "pid": "0x0765", "vid": "0x414C" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_65_ansi_blocker_tsangan" + }, "layouts": { "LAYOUT_65_ansi_blocker_tsangan": { "layout": [ diff --git a/keyboards/kbdfans/kbd67/mkiirgb/info.json b/keyboards/kbdfans/kbd67/mkiirgb/info.json index 023c6ff5db..683503b4ee 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/info.json +++ b/keyboards/kbdfans/kbd67/mkiirgb/info.json @@ -5,5 +5,8 @@ "usb": { "vid": "0x4B42" }, - "community_layouts": ["65_ansi_blocker"] + "community_layouts": ["65_ansi_blocker"], + "layout_aliases": { + "LAYOUT": "LAYOUT_65_ansi_blocker" + } } diff --git a/keyboards/noxary/268_2/info.json b/keyboards/noxary/268_2/info.json index b96500aa31..a652276c6d 100644 --- a/keyboards/noxary/268_2/info.json +++ b/keyboards/noxary/268_2/info.json @@ -19,6 +19,9 @@ "processor": "atmega32u4", "bootloader": "atmel-dfu", "community_layouts": ["65_ansi_blocker"], + "layout_aliases": { + "LAYOUT": "LAYOUT_65_ansi_blocker" + }, "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [ diff --git a/lib/python/qmk/commands.py b/lib/python/qmk/commands.py index ab8e323edf..660b2ff72e 100644 --- a/lib/python/qmk/commands.py +++ b/lib/python/qmk/commands.py @@ -219,9 +219,6 @@ def parse_configurator_json(configurator_file): if 'target' in aliases[orig_keyboard]: user_keymap['keyboard'] = aliases[orig_keyboard]['target'] - if 'layouts' in aliases[orig_keyboard] and user_keymap['layout'] in aliases[orig_keyboard]['layouts']: - user_keymap['layout'] = aliases[orig_keyboard]['layouts'][user_keymap['layout']] - return user_keymap -- cgit v1.3.1 From 1c069b13b9c410d30cb3b0126b21b984284c405c Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 15 Aug 2023 20:06:57 +1000 Subject: rgblight: driver selection cleanups (#21558) --- builddefs/common_features.mk | 12 ++++-------- builddefs/show_options.mk | 2 +- data/mappings/info_rules.hjson | 1 + data/schemas/keyboard.jsonschema | 4 ++++ docs/feature_rgblight.md | 2 +- keyboards/capsunlocked/cu75/info.json | 1 + keyboards/capsunlocked/cu75/keymaps/default/rules.mk | 1 - keyboards/capsunlocked/cu75/keymaps/iso/rules.mk | 1 - keyboards/handwired/onekey/keymaps/apa102/rules.mk | 2 +- keyboards/handwired/uthol/rev2/rules.mk | 1 - keyboards/handwired/uthol/rev3/rules.mk | 1 - keyboards/kprepublic/jj40/keymaps/fun40/rules.mk | 4 ---- keyboards/kprepublic/jj40/keymaps/waples/rules.mk | 1 - keyboards/lfkeyboards/lfk78/keymaps/ca178858/rules.mk | 1 - keyboards/lfkeyboards/lfk78/revb/info.json | 1 + keyboards/lfkeyboards/lfk78/revc/info.json | 1 + keyboards/lfkeyboards/lfk78/revj/info.json | 1 + keyboards/lfkeyboards/lfk78/rules.mk | 1 - keyboards/lfkeyboards/lfk87/info.json | 3 +++ keyboards/lfkeyboards/lfk87/keymaps/ca178858/rules.mk | 1 - keyboards/lfkeyboards/lfk87/keymaps/default/rules.mk | 1 - keyboards/lfkeyboards/lfk87/keymaps/gbchk/rules.mk | 1 - keyboards/lfkeyboards/lfk87/keymaps/iso/rules.mk | 1 - keyboards/lfkeyboards/lfk87/rules.mk | 1 - keyboards/lfkeyboards/lfkpad/info.json | 1 + keyboards/lfkeyboards/lfkpad/rules.mk | 1 - keyboards/lfkeyboards/mini1800/info.json | 1 + keyboards/lfkeyboards/mini1800/reva/rules.mk | 3 --- keyboards/lfkeyboards/mini1800/revc/rules.mk | 3 --- keyboards/lfkeyboards/smk65/revb/info.json | 1 + keyboards/lfkeyboards/smk65/revb/rules.mk | 1 - keyboards/lfkeyboards/smk65/revf/info.json | 1 + keyboards/lfkeyboards/smk65/revf/rules.mk | 1 - keyboards/matrix/noah/info.json | 1 + keyboards/matrix/noah/rules.mk | 1 - keyboards/pearl/keymaps/cijanzen/rules.mk | 1 - keyboards/prototypist/oceanographer/rules.mk | 1 - keyboards/v60_type_r/info.json | 1 + keyboards/v60_type_r/keymaps/ifohancroft/readme.md | 2 +- keyboards/v60_type_r/keymaps/ifohancroft/rules.mk | 1 - keyboards/v60_type_r/rules.mk | 1 - keyboards/yandrstudio/buff67v3/rules.mk | 1 - layouts/community/60_iso/unxmaal/rules.mk | 2 +- 43 files changed, 27 insertions(+), 44 deletions(-) (limited to 'data') diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 47fe56e4aa..906a793df7 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -317,14 +317,10 @@ ifneq ($(strip $(FLASH_DRIVER)), none) endif RGBLIGHT_ENABLE ?= no -VALID_RGBLIGHT_TYPES := WS2812 APA102 custom - -ifeq ($(strip $(RGBLIGHT_CUSTOM_DRIVER)), yes) - RGBLIGHT_DRIVER ?= custom -endif +VALID_RGBLIGHT_TYPES := ws2812 apa102 custom ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) - RGBLIGHT_DRIVER ?= WS2812 + RGBLIGHT_DRIVER ?= ws2812 ifeq ($(filter $(RGBLIGHT_DRIVER),$(VALID_RGBLIGHT_TYPES)),) $(call CATASTROPHIC_ERROR,Invalid RGBLIGHT_DRIVER,RGBLIGHT_DRIVER="$(RGBLIGHT_DRIVER)" is not a valid RGB type) @@ -338,11 +334,11 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) RGB_KEYCODES_ENABLE := yes endif - ifeq ($(strip $(RGBLIGHT_DRIVER)), WS2812) + ifeq ($(strip $(RGBLIGHT_DRIVER)), ws2812) WS2812_DRIVER_REQUIRED := yes endif - ifeq ($(strip $(RGBLIGHT_DRIVER)), APA102) + ifeq ($(strip $(RGBLIGHT_DRIVER)), apa102) APA102_DRIVER_REQUIRED := yes endif diff --git a/builddefs/show_options.mk b/builddefs/show_options.mk index c21f907881..563d089880 100644 --- a/builddefs/show_options.mk +++ b/builddefs/show_options.mk @@ -17,7 +17,7 @@ HARDWARE_OPTION_NAMES = \ BACKLIGHT_ENABLE \ BACKLIGHT_DRIVER \ RGBLIGHT_ENABLE \ - RGBLIGHT_CUSTOM_DRIVER \ + RGBLIGHT_DRIVER \ RGB_MATRIX_ENABLE \ RGB_MATRIX_DRIVER \ CIE1931_CURVE \ diff --git a/data/mappings/info_rules.hjson b/data/mappings/info_rules.hjson index bf8ec05cb2..07191551da 100644 --- a/data/mappings/info_rules.hjson +++ b/data/mappings/info_rules.hjson @@ -35,6 +35,7 @@ "PS2_ENABLE": {"info_key": "ps2.enabled", "value_type": "bool"}, "PS2_MOUSE_ENABLE": {"info_key": "ps2.mouse_enabled", "value_type": "bool"}, "RGB_MATRIX_DRIVER": {"info_key": "rgb_matrix.driver"}, + "RGBLIGHT_DRIVER": {"info_key": "rgblight.driver"}, "SECURE_ENABLE": {"info_key": "secure.enabled", "value_type": "bool"}, "SPLIT_KEYBOARD": {"info_key": "split.enabled", "value_type": "bool"}, "SPLIT_TRANSPORT": {"info_key": "split.transport.protocol", "to_c": false}, diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index cdea662192..aea76af50a 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -477,6 +477,10 @@ } }, "brightness_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "driver": { + "type": "string", + "enum": ["apa102", "custom", "ws2812"] + }, "hue_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "layers": { "type": "object", diff --git a/docs/feature_rgblight.md b/docs/feature_rgblight.md index fef856f7df..39b7e6a6f1 100644 --- a/docs/feature_rgblight.md +++ b/docs/feature_rgblight.md @@ -28,7 +28,7 @@ For APA102 LEDs, add the following to your `rules.mk`: ```make RGBLIGHT_ENABLE = yes -RGBLIGHT_DRIVER = APA102 +RGBLIGHT_DRIVER = apa102 ``` At minimum you must define the data pin your LED strip is connected to, and the number of LEDs in the strip, in your `config.h`. For APA102 LEDs, you must also define the clock pin. If your keyboard has onboard RGB LEDs, and you are simply creating a keymap, you usually won't need to modify these. diff --git a/keyboards/capsunlocked/cu75/info.json b/keyboards/capsunlocked/cu75/info.json index 5698fc101e..aa738d1f75 100644 --- a/keyboards/capsunlocked/cu75/info.json +++ b/keyboards/capsunlocked/cu75/info.json @@ -18,6 +18,7 @@ "levels": 8 }, "rgblight": { + "driver": "custom", "hue_steps": 10, "led_count": 24 }, diff --git a/keyboards/capsunlocked/cu75/keymaps/default/rules.mk b/keyboards/capsunlocked/cu75/keymaps/default/rules.mk index aefb10a8b1..483baa7993 100644 --- a/keyboards/capsunlocked/cu75/keymaps/default/rules.mk +++ b/keyboards/capsunlocked/cu75/keymaps/default/rules.mk @@ -7,7 +7,6 @@ NKRO_ENABLE = yes BACKLIGHT_ENABLE = yes # Disable keyboard backlight functionality AUDIO_ENABLE = no # Audio output RGBLIGHT_ENABLE = yes # Disable RGB underlight -RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812 SLEEP_LED_ENABLE = yes ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled diff --git a/keyboards/capsunlocked/cu75/keymaps/iso/rules.mk b/keyboards/capsunlocked/cu75/keymaps/iso/rules.mk index 26239f265e..0058113605 100644 --- a/keyboards/capsunlocked/cu75/keymaps/iso/rules.mk +++ b/keyboards/capsunlocked/cu75/keymaps/iso/rules.mk @@ -7,7 +7,6 @@ NKRO_ENABLE = yes # BACKLIGHT_ENABLE = no # Disable keyboard backlight functionality AUDIO_ENABLE = no # Audio output RGBLIGHT_ENABLE = no # Disable RGB underlight -RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812 SLEEP_LED_ENABLE = yes ISSI_ENABLE = no # If the I2C pullup resistors aren't install this must be disabled diff --git a/keyboards/handwired/onekey/keymaps/apa102/rules.mk b/keyboards/handwired/onekey/keymaps/apa102/rules.mk index 70932cb751..5f15fa9e70 100644 --- a/keyboards/handwired/onekey/keymaps/apa102/rules.mk +++ b/keyboards/handwired/onekey/keymaps/apa102/rules.mk @@ -1,2 +1,2 @@ RGBLIGHT_ENABLE = yes -RGBLIGHT_DRIVER = APA102 +RGBLIGHT_DRIVER = apa102 diff --git a/keyboards/handwired/uthol/rev2/rules.mk b/keyboards/handwired/uthol/rev2/rules.mk index 445e503d0b..c6e22b8dd2 100644 --- a/keyboards/handwired/uthol/rev2/rules.mk +++ b/keyboards/handwired/uthol/rev2/rules.mk @@ -6,4 +6,3 @@ EXTRAKEY_ENABLE = yes NKRO_ENABLE = yes LTO_ENABLE = yes RGBLIGHT_ENABLE = yes -RGBLIGHT_DRIVER = WS2812 diff --git a/keyboards/handwired/uthol/rev3/rules.mk b/keyboards/handwired/uthol/rev3/rules.mk index f0f9be4985..1577cf8a77 100644 --- a/keyboards/handwired/uthol/rev3/rules.mk +++ b/keyboards/handwired/uthol/rev3/rules.mk @@ -9,4 +9,3 @@ WPM_ENABLE = yes EXTRAKEY_ENABLE = yes ENCODER_ENABLE = yes RGBLIGHT_ENABLE = yes -RGBLIGHT_DRIVER = WS2812 diff --git a/keyboards/kprepublic/jj40/keymaps/fun40/rules.mk b/keyboards/kprepublic/jj40/keymaps/fun40/rules.mk index cc9508d7d6..9018bddfe3 100644 --- a/keyboards/kprepublic/jj40/keymaps/fun40/rules.mk +++ b/keyboards/kprepublic/jj40/keymaps/fun40/rules.mk @@ -13,9 +13,5 @@ UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = yes -RGBLIGHT_CUSTOM_DRIVER = yes -DISABLE_WS2812 = yes - SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - diff --git a/keyboards/kprepublic/jj40/keymaps/waples/rules.mk b/keyboards/kprepublic/jj40/keymaps/waples/rules.mk index b9b67d1c73..8f678e6b59 100644 --- a/keyboards/kprepublic/jj40/keymaps/waples/rules.mk +++ b/keyboards/kprepublic/jj40/keymaps/waples/rules.mk @@ -6,5 +6,4 @@ CONSOLE_ENABLE = no COMMAND_ENABLE = yes BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes -RGBLIGHT_CUSTOM_DRIVER = yes KEY_LOCK_ENABLE = yes diff --git a/keyboards/lfkeyboards/lfk78/keymaps/ca178858/rules.mk b/keyboards/lfkeyboards/lfk78/keymaps/ca178858/rules.mk index f1836baa27..481ff1407b 100644 --- a/keyboards/lfkeyboards/lfk78/keymaps/ca178858/rules.mk +++ b/keyboards/lfkeyboards/lfk78/keymaps/ca178858/rules.mk @@ -10,7 +10,6 @@ AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Disable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = no # Enable RGB underlight -RGBLIGHT_CUSTOM_DRIVER = no # RGB code is implemented in lefkeyboards, not WS2812 SLEEP_LED_ENABLE = yes TAP_DANCE_ENABLE = yes diff --git a/keyboards/lfkeyboards/lfk78/revb/info.json b/keyboards/lfkeyboards/lfk78/revb/info.json index bee0a0305b..f4319acd16 100644 --- a/keyboards/lfkeyboards/lfk78/revb/info.json +++ b/keyboards/lfkeyboards/lfk78/revb/info.json @@ -18,6 +18,7 @@ "levels": 8 }, "rgblight": { + "driver": "custom", "hue_steps": 10, "led_count": 31 }, diff --git a/keyboards/lfkeyboards/lfk78/revc/info.json b/keyboards/lfkeyboards/lfk78/revc/info.json index a0f3327dda..742289e796 100644 --- a/keyboards/lfkeyboards/lfk78/revc/info.json +++ b/keyboards/lfkeyboards/lfk78/revc/info.json @@ -18,6 +18,7 @@ "levels": 8 }, "rgblight": { + "driver": "custom", "hue_steps": 10, "led_count": 27 }, diff --git a/keyboards/lfkeyboards/lfk78/revj/info.json b/keyboards/lfkeyboards/lfk78/revj/info.json index 3bfbcc147a..72494c71eb 100644 --- a/keyboards/lfkeyboards/lfk78/revj/info.json +++ b/keyboards/lfkeyboards/lfk78/revj/info.json @@ -18,6 +18,7 @@ "levels": 8 }, "rgblight": { + "driver": "custom", "hue_steps": 10, "led_count": 27 }, diff --git a/keyboards/lfkeyboards/lfk78/rules.mk b/keyboards/lfkeyboards/lfk78/rules.mk index 6c0b7f6d8d..4e3f7b9256 100644 --- a/keyboards/lfkeyboards/lfk78/rules.mk +++ b/keyboards/lfkeyboards/lfk78/rules.mk @@ -10,7 +10,6 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. -RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lfkeyboards, not qmk base SLEEP_LED_ENABLE = yes ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled diff --git a/keyboards/lfkeyboards/lfk87/info.json b/keyboards/lfkeyboards/lfk87/info.json index d76ee0c693..6a2d5eb796 100644 --- a/keyboards/lfkeyboards/lfk87/info.json +++ b/keyboards/lfkeyboards/lfk87/info.json @@ -12,6 +12,9 @@ "driver": "custom", "levels": 10 }, + "rgblight": { + "driver": "custom" + }, "ws2812": { "pin": "F4" }, diff --git a/keyboards/lfkeyboards/lfk87/keymaps/ca178858/rules.mk b/keyboards/lfkeyboards/lfk87/keymaps/ca178858/rules.mk index ab5bc0930d..8d2c18f6dd 100644 --- a/keyboards/lfkeyboards/lfk87/keymaps/ca178858/rules.mk +++ b/keyboards/lfkeyboards/lfk87/keymaps/ca178858/rules.mk @@ -10,7 +10,6 @@ AUDIO_ENABLE = yes # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Disable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = yes # Enable RGB underlight -RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812 SLEEP_LED_ENABLE = yes TAP_DANCE_ENABLE = yes diff --git a/keyboards/lfkeyboards/lfk87/keymaps/default/rules.mk b/keyboards/lfkeyboards/lfk87/keymaps/default/rules.mk index 9babefffc8..ec4ce1afba 100644 --- a/keyboards/lfkeyboards/lfk87/keymaps/default/rules.mk +++ b/keyboards/lfkeyboards/lfk87/keymaps/default/rules.mk @@ -7,7 +7,6 @@ NKRO_ENABLE = yes BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality AUDIO_ENABLE = yes # Audio output RGBLIGHT_ENABLE = yes # Enable RGB underlight -RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812 SLEEP_LED_ENABLE = yes ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled diff --git a/keyboards/lfkeyboards/lfk87/keymaps/gbchk/rules.mk b/keyboards/lfkeyboards/lfk87/keymaps/gbchk/rules.mk index 9a6b4ff65a..01b8506d3a 100644 --- a/keyboards/lfkeyboards/lfk87/keymaps/gbchk/rules.mk +++ b/keyboards/lfkeyboards/lfk87/keymaps/gbchk/rules.mk @@ -10,7 +10,6 @@ AUDIO_ENABLE = yes # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = yes # Enable RGB underlight -RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812 SLEEP_LED_ENABLE = yes ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled diff --git a/keyboards/lfkeyboards/lfk87/keymaps/iso/rules.mk b/keyboards/lfkeyboards/lfk87/keymaps/iso/rules.mk index 0e7008aa20..7baa40317a 100644 --- a/keyboards/lfkeyboards/lfk87/keymaps/iso/rules.mk +++ b/keyboards/lfkeyboards/lfk87/keymaps/iso/rules.mk @@ -7,7 +7,6 @@ NKRO_ENABLE = yes BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality AUDIO_ENABLE = yes # Audio output RGBLIGHT_ENABLE = yes # Enable RGB underlight -RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812 SLEEP_LED_ENABLE = yes ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled diff --git a/keyboards/lfkeyboards/lfk87/rules.mk b/keyboards/lfkeyboards/lfk87/rules.mk index 2dc08f71f6..154e03fe77 100644 --- a/keyboards/lfkeyboards/lfk87/rules.mk +++ b/keyboards/lfkeyboards/lfk87/rules.mk @@ -11,7 +11,6 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality AUDIO_ENABLE = yes # Audio output RGBLIGHT_ENABLE = yes # Enable RGB underlight -RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812 SLEEP_LED_ENABLE = yes ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled diff --git a/keyboards/lfkeyboards/lfkpad/info.json b/keyboards/lfkeyboards/lfkpad/info.json index 5a9ee2bdaa..b1970fe28c 100644 --- a/keyboards/lfkeyboards/lfkpad/info.json +++ b/keyboards/lfkeyboards/lfkpad/info.json @@ -9,6 +9,7 @@ "device_version": "0.0.1" }, "rgblight": { + "driver": "custom", "hue_steps": 10, "led_count": 28 }, diff --git a/keyboards/lfkeyboards/lfkpad/rules.mk b/keyboards/lfkeyboards/lfkpad/rules.mk index b60f4b532f..ec8efa88bf 100644 --- a/keyboards/lfkeyboards/lfkpad/rules.mk +++ b/keyboards/lfkeyboards/lfkpad/rules.mk @@ -9,7 +9,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = no # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lfkeyboards, not qmk base AUDIO_ENABLE = no # Audio output SLEEP_LED_ENABLE = yes diff --git a/keyboards/lfkeyboards/mini1800/info.json b/keyboards/lfkeyboards/mini1800/info.json index 5d877ea6fd..019789bee0 100644 --- a/keyboards/lfkeyboards/mini1800/info.json +++ b/keyboards/lfkeyboards/mini1800/info.json @@ -18,6 +18,7 @@ "levels": 10 }, "rgblight": { + "driver": "custom", "hue_steps": 10, "led_count": 26 }, diff --git a/keyboards/lfkeyboards/mini1800/reva/rules.mk b/keyboards/lfkeyboards/mini1800/reva/rules.mk index edd26e498d..473bcb10ae 100644 --- a/keyboards/lfkeyboards/mini1800/reva/rules.mk +++ b/keyboards/lfkeyboards/mini1800/reva/rules.mk @@ -10,9 +10,6 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = yes # Audio output - -# RGB code is implemented in lfkeyboards, not WS2812 -RGBLIGHT_CUSTOM_DRIVER = yes SLEEP_LED_ENABLE = yes ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled diff --git a/keyboards/lfkeyboards/mini1800/revc/rules.mk b/keyboards/lfkeyboards/mini1800/revc/rules.mk index edd26e498d..473bcb10ae 100644 --- a/keyboards/lfkeyboards/mini1800/revc/rules.mk +++ b/keyboards/lfkeyboards/mini1800/revc/rules.mk @@ -10,9 +10,6 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = yes # Audio output - -# RGB code is implemented in lfkeyboards, not WS2812 -RGBLIGHT_CUSTOM_DRIVER = yes SLEEP_LED_ENABLE = yes ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled diff --git a/keyboards/lfkeyboards/smk65/revb/info.json b/keyboards/lfkeyboards/smk65/revb/info.json index 85c853cba0..3f92ea3b27 100644 --- a/keyboards/lfkeyboards/smk65/revb/info.json +++ b/keyboards/lfkeyboards/smk65/revb/info.json @@ -6,6 +6,7 @@ "levels": 8 }, "rgblight": { + "driver": "custom", "hue_steps": 10, "led_count": 20 }, diff --git a/keyboards/lfkeyboards/smk65/revb/rules.mk b/keyboards/lfkeyboards/smk65/revb/rules.mk index 57bf01d4cf..1bd6ebc6a6 100644 --- a/keyboards/lfkeyboards/smk65/revb/rules.mk +++ b/keyboards/lfkeyboards/smk65/revb/rules.mk @@ -3,7 +3,6 @@ # BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812 AUDIO_ENABLE = no # Audio output # Extra source files for IS3731 lighting diff --git a/keyboards/lfkeyboards/smk65/revf/info.json b/keyboards/lfkeyboards/smk65/revf/info.json index 086e7e38c8..50c039b76c 100644 --- a/keyboards/lfkeyboards/smk65/revf/info.json +++ b/keyboards/lfkeyboards/smk65/revf/info.json @@ -5,6 +5,7 @@ "processor": "atmega32u4", "bootloader": "halfkay", "rgblight": { + "driver": "custom", "led_count": 28 }, "layouts": { diff --git a/keyboards/lfkeyboards/smk65/revf/rules.mk b/keyboards/lfkeyboards/smk65/revf/rules.mk index 2545747959..e372473a50 100644 --- a/keyboards/lfkeyboards/smk65/revf/rules.mk +++ b/keyboards/lfkeyboards/smk65/revf/rules.mk @@ -2,4 +2,3 @@ # change yes to no to disable # RGBLIGHT_ENABLE = no # TODO: Enable keyboard RGB underglow -RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812 diff --git a/keyboards/matrix/noah/info.json b/keyboards/matrix/noah/info.json index 67c5fe0221..4550f7d70a 100644 --- a/keyboards/matrix/noah/info.json +++ b/keyboards/matrix/noah/info.json @@ -9,6 +9,7 @@ "device_version": "0.0.1" }, "rgblight": { + "driver": "custom", "led_count": 7 }, "ws2812": { diff --git a/keyboards/matrix/noah/rules.mk b/keyboards/matrix/noah/rules.mk index 55ea2f42b0..3b75264222 100644 --- a/keyboards/matrix/noah/rules.mk +++ b/keyboards/matrix/noah/rules.mk @@ -27,7 +27,6 @@ NO_USB_STARTUP_CHECK = yes # Disable initialization only when usb is plugged in RGB_MATRIX_ENABLE = yes RGBLIGHT_ENABLE = yes -RGBLIGHT_CUSTOM_DRIVER = yes WS2812_DRIVER_REQUIRED = yes CUSTOM_MATRIX = yes diff --git a/keyboards/pearl/keymaps/cijanzen/rules.mk b/keyboards/pearl/keymaps/cijanzen/rules.mk index c800dc98f8..900468e149 100644 --- a/keyboards/pearl/keymaps/cijanzen/rules.mk +++ b/keyboards/pearl/keymaps/cijanzen/rules.mk @@ -6,6 +6,5 @@ CONSOLE_ENABLE = no COMMAND_ENABLE = yes BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes -RGBLIGHT_CUSTOM_DRIVER = yes # TAP_DANCE_ENABLE = yes AUTO_SHIFT_ENABLE = yes diff --git a/keyboards/prototypist/oceanographer/rules.mk b/keyboards/prototypist/oceanographer/rules.mk index 5f37eac2f6..e18a6cecee 100644 --- a/keyboards/prototypist/oceanographer/rules.mk +++ b/keyboards/prototypist/oceanographer/rules.mk @@ -2,5 +2,4 @@ OLED_ENABLE = yes AUDIO_ENABLE = yes LTO_ENABLE = yes RGBLIGHT_ENABLE = yes -RGBLIGHT_DRIVER = WS2812 ENCODER_ENABLE = yes diff --git a/keyboards/v60_type_r/info.json b/keyboards/v60_type_r/info.json index 760a4f7356..1d7c104f4f 100644 --- a/keyboards/v60_type_r/info.json +++ b/keyboards/v60_type_r/info.json @@ -19,6 +19,7 @@ "on_state": 0 }, "rgblight": { + "driver": "custom", "led_count": 1 }, "processor": "atmega32u4", diff --git a/keyboards/v60_type_r/keymaps/ifohancroft/readme.md b/keyboards/v60_type_r/keymaps/ifohancroft/readme.md index b2d2249081..c8106ae0cd 100644 --- a/keyboards/v60_type_r/keymaps/ifohancroft/readme.md +++ b/keyboards/v60_type_r/keymaps/ifohancroft/readme.md @@ -7,7 +7,7 @@ - Layer 3: An empty layer in-case I need something on-the-fly so I can remap with VIA. - Layer 4: An empty layer in-case I need something on-the-fly so I can remap with VIA. -This keymap also sets the polling rate of the keyboard to 1ms, disables the MOUSEKEY, EXTRAKEY, BACKLIGHT, RGBLIGHT and RGBLIGHT_CUSTOM_DRIVER features, and enables the following features: +This keymap also sets the polling rate of the keyboard to 1ms, disables the MOUSEKEY, EXTRAKEY, BACKLIGHT, and RGBLIGHT features, and enables the following features: - NKRO (forced on) - VIA diff --git a/keyboards/v60_type_r/keymaps/ifohancroft/rules.mk b/keyboards/v60_type_r/keymaps/ifohancroft/rules.mk index b7d5bb5198..03be782d45 100644 --- a/keyboards/v60_type_r/keymaps/ifohancroft/rules.mk +++ b/keyboards/v60_type_r/keymaps/ifohancroft/rules.mk @@ -2,6 +2,5 @@ MOUSEKEY_ENABLE = no EXTRAKEY_ENABLE = no BACKLIGHT_ENABLE = no RGBLIGHT_ENABLE = no -RGBLIGHT_CUSTOM_DRIVER = no NKRO_ENABLE = yes VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/v60_type_r/rules.mk b/keyboards/v60_type_r/rules.mk index 77b555c20c..d6654ffea6 100644 --- a/keyboards/v60_type_r/rules.mk +++ b/keyboards/v60_type_r/rules.mk @@ -9,7 +9,6 @@ COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = no # Enable N-Key Rollover BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable the RGB Underglow -RGBLIGHT_CUSTOM_DRIVER = yes AUDIO_ENABLE = no # Audio output LTO_ENABLE = yes diff --git a/keyboards/yandrstudio/buff67v3/rules.mk b/keyboards/yandrstudio/buff67v3/rules.mk index 663aac2420..421ae9fce1 100644 --- a/keyboards/yandrstudio/buff67v3/rules.mk +++ b/keyboards/yandrstudio/buff67v3/rules.mk @@ -12,5 +12,4 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -RGBLIGHT_DRIVER = WS2812 # RGB driver support AUDIO_ENABLE = no # Audio output diff --git a/layouts/community/60_iso/unxmaal/rules.mk b/layouts/community/60_iso/unxmaal/rules.mk index c2d3c6b075..5c9eb2a26d 100644 --- a/layouts/community/60_iso/unxmaal/rules.mk +++ b/layouts/community/60_iso/unxmaal/rules.mk @@ -1,7 +1,7 @@ # Only enable RGBLIGHT on avr boards ifeq ($(strip $(PLATFORM_KEY)),avr) # ...that are at least prepared for it - ifdef RGBLIGHT_DRIVER + ifeq ($(strip $(RGBLIGHT_SUPPORTED)),yes) RGBLIGHT_ENABLE = yes # Enable RGB Underglow endif endif -- cgit v1.3.1 From a9e2f6a25aeb0a3d69dcdeb33be0b364f9c37beb Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 25 Aug 2023 00:47:12 +0100 Subject: Remove `led_matrix.hue_steps` and `led_matrix.sat_steps` from schema (#21827) --- data/mappings/info_config.hjson | 2 -- data/schemas/keyboard.jsonschema | 2 -- 2 files changed, 4 deletions(-) (limited to 'data') diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index 56d6216c42..cc1787b8c2 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -64,9 +64,7 @@ // LED Matrix "LED_MATRIX_CENTER": {"info_key": "led_matrix.center_point", "value_type": "array.int"}, - "LED_MATRIX_HUE_STEP": {"info_key": "led_matrix.hue_steps", "value_type": "int"}, "LED_MATRIX_MAXIMUM_BRIGHTNESS": {"info_key": "led_matrix.max_brightness", "value_type": "int"}, - "LED_MATRIX_SAT_STEP": {"info_key": "led_matrix.sat_steps", "value_type": "int"}, "LED_MATRIX_SPD_STEP": {"info_key": "led_matrix.speed_steps", "value_type": "int"}, "LED_MATRIX_SPLIT": {"info_key": "led_matrix.split_count", "value_type": "array.int"}, "LED_MATRIX_TIMEOUT": {"info_key": "led_matrix.timeout", "value_type": "int"}, diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index aea76af50a..4beaa57a23 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -382,8 +382,6 @@ }, "max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}, - "hue_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, - "sat_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "val_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "split_count": { -- cgit v1.3.1 From 5cd47f50946c68a38bcfba70be7ebf123062d207 Mon Sep 17 00:00:00 2001 From: HiryKun <1951086367@qq.com> Date: Sun, 27 Aug 2023 02:31:59 +0800 Subject: Add "apm32-dfu" in keyboard.jsonschema (#21842) --- data/schemas/keyboard.jsonschema | 1 + 1 file changed, 1 insertion(+) (limited to 'data') diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 4beaa57a23..901caa75fe 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -176,6 +176,7 @@ "bootloader": { "type": "string", "enum": [ + "apm32-dfu", "atmel-dfu", "bootloadhid", "caterina", -- cgit v1.3.1 From 95681b8ff4a92aacd0249e124d34cf16e510175e Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 27 Aug 2023 04:00:14 +0100 Subject: Add *_MATRIX_LED_COUNT generation (#21110) --- data/mappings/info_config.hjson | 2 ++ lib/python/qmk/cli/info.py | 4 ++++ lib/python/qmk/info.py | 3 +++ 3 files changed, 9 insertions(+) (limited to 'data') diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index cc1787b8c2..ab9a4a0e45 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -69,6 +69,7 @@ "LED_MATRIX_SPLIT": {"info_key": "led_matrix.split_count", "value_type": "array.int"}, "LED_MATRIX_TIMEOUT": {"info_key": "led_matrix.timeout", "value_type": "int"}, "LED_MATRIX_VAL_STEP": {"info_key": "led_matrix.val_steps", "value_type": "int"}, + "LED_MATRIX_LED_COUNT": {"info_key": "led_matrix.led_count", "value_type": "int", "to_json": false}, // LUFA Bootloader "QMK_ESC_INPUT": {"info_key": "qmk_lufa_bootloader.esc_input"}, @@ -107,6 +108,7 @@ "RGB_MATRIX_SPLIT": {"info_key": "rgb_matrix.split_count", "value_type": "array.int"}, "RGB_MATRIX_TIMEOUT": {"info_key": "rgb_matrix.timeout", "value_type": "int"}, "RGB_MATRIX_VAL_STEP": {"info_key": "rgb_matrix.val_steps", "value_type": "int"}, + "RGB_MATRIX_LED_COUNT": {"info_key": "rgb_matrix.led_count", "value_type": "int", "to_json": false}, // RGBLight "RGBLED_NUM": {"info_key": "rgblight.led_count", "value_type": "int"}, diff --git a/lib/python/qmk/cli/info.py b/lib/python/qmk/cli/info.py index 02cc6051ec..e662407474 100755 --- a/lib/python/qmk/cli/info.py +++ b/lib/python/qmk/cli/info.py @@ -38,6 +38,10 @@ def _strip_api_content(info_json): if 'matrix_pins' in info_json: info_json.pop('matrix_size', None) + for feature in ['rgb_matrix', 'led_matrix']: + if info_json.get(feature, {}).get("layout", None): + info_json[feature].pop('led_count', None) + return info_json diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index dbd26153d8..9c8521a2a3 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -706,6 +706,9 @@ def _extract_led_config(info_data, keyboard): except Exception as e: _log_warning(info_data, f'led_config: {file.name}: {e}') + if info_data[feature].get("layout", None) and not info_data[feature].get("led_count", None): + info_data[feature]["led_count"] = len(info_data[feature]["layout"]) + return info_data -- cgit v1.3.1