From 4c1d8a0eb33e5738f305191dfb7a56f8b0275827 Mon Sep 17 00:00:00 2001 From: Richard Nash Date: Sun, 13 Nov 2022 10:49:59 -0500 Subject: [PATCH 01/30] Fix oled_render to render all dirty blocks. (#18887) --- drivers/oled/ssd1306_sh1106.c | 100 +++++++++++++++++----------------- 1 file changed, 49 insertions(+), 51 deletions(-) diff --git a/drivers/oled/ssd1306_sh1106.c b/drivers/oled/ssd1306_sh1106.c index 30cfeb5648d..9fc8c2d2adf 100644 --- a/drivers/oled/ssd1306_sh1106.c +++ b/drivers/oled/ssd1306_sh1106.c @@ -291,65 +291,63 @@ static void rotate_90(const uint8_t *src, uint8_t *dest) { } void oled_render(void) { - if (!oled_initialized) { - return; - } - // Do we have work to do? oled_dirty &= OLED_ALL_BLOCKS_MASK; - if (!oled_dirty || oled_scrolling) { + if (!oled_dirty || !oled_initialized || oled_scrolling) { return; } - // Find first dirty block - uint8_t update_start = 0; - while (!(oled_dirty & ((OLED_BLOCK_TYPE)1 << update_start))) { - ++update_start; - } - - // Set column & page position - static uint8_t display_start[] = {I2C_CMD, COLUMN_ADDR, 0, OLED_DISPLAY_WIDTH - 1, PAGE_ADDR, 0, OLED_DISPLAY_HEIGHT / 8 - 1}; - if (!HAS_FLAGS(oled_rotation, OLED_ROTATION_90)) { - calc_bounds(update_start, &display_start[1]); // Offset from I2C_CMD byte at the start - } else { - calc_bounds_90(update_start, &display_start[1]); // Offset from I2C_CMD byte at the start - } - - // Send column & page position - if (I2C_TRANSMIT(display_start) != I2C_STATUS_SUCCESS) { - print("oled_render offset command failed\n"); - return; - } - - if (!HAS_FLAGS(oled_rotation, OLED_ROTATION_90)) { - // Send render data chunk as is - if (I2C_WRITE_REG(I2C_DATA, &oled_buffer[OLED_BLOCK_SIZE * update_start], OLED_BLOCK_SIZE) != I2C_STATUS_SUCCESS) { - print("oled_render data failed\n"); - return; - } - } else { - // Rotate the render chunks - const static uint8_t source_map[] = OLED_SOURCE_MAP; - const static uint8_t target_map[] = OLED_TARGET_MAP; - - static uint8_t temp_buffer[OLED_BLOCK_SIZE]; - memset(temp_buffer, 0, sizeof(temp_buffer)); - for (uint8_t i = 0; i < sizeof(source_map); ++i) { - rotate_90(&oled_buffer[OLED_BLOCK_SIZE * update_start + source_map[i]], &temp_buffer[target_map[i]]); - } - - // Send render data chunk after rotating - if (I2C_WRITE_REG(I2C_DATA, &temp_buffer[0], OLED_BLOCK_SIZE) != I2C_STATUS_SUCCESS) { - print("oled_render90 data failed\n"); - return; - } - } - // Turn on display if it is off oled_on(); - // Clear dirty flag - oled_dirty &= ~((OLED_BLOCK_TYPE)1 << update_start); + uint8_t update_start = 0; + while (oled_dirty) { // render all dirty blocks + // Find next dirty block + while (!(oled_dirty & ((OLED_BLOCK_TYPE)1 << update_start))) { + ++update_start; + } + + // Set column & page position + static uint8_t display_start[] = {I2C_CMD, COLUMN_ADDR, 0, OLED_DISPLAY_WIDTH - 1, PAGE_ADDR, 0, OLED_DISPLAY_HEIGHT / 8 - 1}; + if (!HAS_FLAGS(oled_rotation, OLED_ROTATION_90)) { + calc_bounds(update_start, &display_start[1]); // Offset from I2C_CMD byte at the start + } else { + calc_bounds_90(update_start, &display_start[1]); // Offset from I2C_CMD byte at the start + } + + // Send column & page position + if (I2C_TRANSMIT(display_start) != I2C_STATUS_SUCCESS) { + print("oled_render offset command failed\n"); + return; + } + + if (!HAS_FLAGS(oled_rotation, OLED_ROTATION_90)) { + // Send render data chunk as is + if (I2C_WRITE_REG(I2C_DATA, &oled_buffer[OLED_BLOCK_SIZE * update_start], OLED_BLOCK_SIZE) != I2C_STATUS_SUCCESS) { + print("oled_render data failed\n"); + return; + } + } else { + // Rotate the render chunks + const static uint8_t source_map[] = OLED_SOURCE_MAP; + const static uint8_t target_map[] = OLED_TARGET_MAP; + + static uint8_t temp_buffer[OLED_BLOCK_SIZE]; + memset(temp_buffer, 0, sizeof(temp_buffer)); + for (uint8_t i = 0; i < sizeof(source_map); ++i) { + rotate_90(&oled_buffer[OLED_BLOCK_SIZE * update_start + source_map[i]], &temp_buffer[target_map[i]]); + } + + // Send render data chunk after rotating + if (I2C_WRITE_REG(I2C_DATA, &temp_buffer[0], OLED_BLOCK_SIZE) != I2C_STATUS_SUCCESS) { + print("oled_render90 data failed\n"); + return; + } + } + + // Clear dirty flag of just rendered block + oled_dirty &= ~((OLED_BLOCK_TYPE)1 << update_start); + } } void oled_set_cursor(uint8_t col, uint8_t line) { From 8812872794b5fb09e6bbbe47a58cc7dbcaca18a7 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sun, 13 Nov 2022 07:51:19 -0800 Subject: [PATCH 02/30] Only trigger encoder callbacks on primary side (#18467) Co-authored-by: zvecr --- quantum/encoder.c | 14 +- .../encoder/tests/config_mock_split_role.h | 26 ++++ .../tests/encoder_tests_split_role.cpp | 122 ++++++++++++++++++ quantum/encoder/tests/mock.c | 4 + quantum/encoder/tests/mock_split.c | 4 + quantum/encoder/tests/rules.mk | 10 ++ quantum/encoder/tests/testlist.mk | 3 +- 7 files changed, 180 insertions(+), 3 deletions(-) create mode 100644 quantum/encoder/tests/config_mock_split_role.h create mode 100644 quantum/encoder/tests/encoder_tests_split_role.cpp diff --git a/quantum/encoder.c b/quantum/encoder.c index 1393e34868c..3aee3402499 100644 --- a/quantum/encoder.c +++ b/quantum/encoder.c @@ -80,6 +80,10 @@ __attribute__((weak)) bool encoder_update_kb(uint8_t index, bool clockwise) { return encoder_update_user(index, clockwise); } +__attribute__((weak)) bool should_process_encoder(void) { + return is_keyboard_master(); +} + void encoder_init(void) { #ifdef SPLIT_KEYBOARD thisHand = isLeftHand ? 0 : NUM_ENCODERS_LEFT; @@ -179,8 +183,11 @@ static bool encoder_update(uint8_t index, uint8_t state) { encoder_value[index]++; changed = true; +#ifdef SPLIT_KEYBOARD + if (should_process_encoder()) +#endif // SPLIT_KEYBOARD #ifdef ENCODER_MAP_ENABLE - encoder_exec_mapping(index, ENCODER_COUNTER_CLOCKWISE); + encoder_exec_mapping(index, ENCODER_COUNTER_CLOCKWISE); #else // ENCODER_MAP_ENABLE encoder_update_kb(index, ENCODER_COUNTER_CLOCKWISE); #endif // ENCODER_MAP_ENABLE @@ -193,8 +200,11 @@ static bool encoder_update(uint8_t index, uint8_t state) { #endif encoder_value[index]--; changed = true; +#ifdef SPLIT_KEYBOARD + if (should_process_encoder()) +#endif // SPLIT_KEYBOARD #ifdef ENCODER_MAP_ENABLE - encoder_exec_mapping(index, ENCODER_CLOCKWISE); + encoder_exec_mapping(index, ENCODER_CLOCKWISE); #else // ENCODER_MAP_ENABLE encoder_update_kb(index, ENCODER_CLOCKWISE); #endif // ENCODER_MAP_ENABLE diff --git a/quantum/encoder/tests/config_mock_split_role.h b/quantum/encoder/tests/config_mock_split_role.h new file mode 100644 index 00000000000..c80ac4d5198 --- /dev/null +++ b/quantum/encoder/tests/config_mock_split_role.h @@ -0,0 +1,26 @@ +// Copyright 2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define MATRIX_ROWS 1 +#define MATRIX_COLS 1 + +/* Here, "pins" from 0 to 31 are allowed. */ +#define ENCODERS_PAD_A \ + { 0, 2 } +#define ENCODERS_PAD_B \ + { 1, 3 } +#define ENCODERS_PAD_A_RIGHT \ + { 4, 6 } +#define ENCODERS_PAD_B_RIGHT \ + { 5, 7 } + +#ifdef __cplusplus +extern "C" { +#endif + +#include "mock_split.h" + +#ifdef __cplusplus +}; +#endif diff --git a/quantum/encoder/tests/encoder_tests_split_role.cpp b/quantum/encoder/tests/encoder_tests_split_role.cpp new file mode 100644 index 00000000000..02264067f4c --- /dev/null +++ b/quantum/encoder/tests/encoder_tests_split_role.cpp @@ -0,0 +1,122 @@ +/* Copyright 2021 Balz Guenat + * + * 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 "gtest/gtest.h" +#include "gmock/gmock.h" +#include +#include +#include + +extern "C" { +#include "encoder.h" +#include "encoder/tests/mock_split.h" +} + +struct update { + int8_t index; + bool clockwise; +}; + +uint8_t num_updates = 0; + +bool isMaster; +bool isLeftHand; + +bool is_keyboard_master(void) { + return isMaster; +} + +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!isMaster) { + ADD_FAILURE() << "We shouldn't get here."; + } + num_updates++; + return true; +} + +bool setAndRead(pin_t pin, bool val) { + setPin(pin, val); + return encoder_read(); +} + +class EncoderSplitTestRole : public ::testing::Test { + protected: + void SetUp() override { + num_updates = 0; + for (int i = 0; i < 32; i++) { + pinIsInputHigh[i] = 0; + pins[i] = 0; + } + } +}; + +TEST_F(EncoderSplitTestRole, TestPrimaryLeft) { + isMaster = true; + isLeftHand = true; + encoder_init(); + // send 4 pulses. with resolution 4, that's one step and we should get 1 update. + setAndRead(0, false); + setAndRead(1, false); + setAndRead(0, true); + setAndRead(1, true); + + EXPECT_EQ(num_updates, 1); // one update received +} + +TEST_F(EncoderSplitTestRole, TestPrimaryRight) { + isMaster = true; + isLeftHand = false; + encoder_init(); + // send 4 pulses. with resolution 4, that's one step and we should get 1 update. + setAndRead(6, false); + setAndRead(7, false); + setAndRead(6, true); + setAndRead(7, true); + + uint8_t slave_state[32] = {0}; + encoder_state_raw(slave_state); + + EXPECT_EQ(num_updates, 1); // one update received +} + +TEST_F(EncoderSplitTestRole, TestNotPrimaryLeft) { + isMaster = false; + isLeftHand = true; + encoder_init(); + // send 4 pulses. with resolution 4, that's one step and we should get 1 update. + setAndRead(0, false); + setAndRead(1, false); + setAndRead(0, true); + setAndRead(1, true); + + EXPECT_EQ(num_updates, 0); // zero updates received +} + +TEST_F(EncoderSplitTestRole, TestNotPrimaryRight) { + isMaster = false; + isLeftHand = false; + encoder_init(); + // send 4 pulses. with resolution 4, that's one step and we should get 1 update. + setAndRead(6, false); + setAndRead(7, false); + setAndRead(6, true); + setAndRead(7, true); + + uint8_t slave_state[32] = {0}; + encoder_state_raw(slave_state); + + EXPECT_EQ(num_updates, 0); // zero updates received +} diff --git a/quantum/encoder/tests/mock.c b/quantum/encoder/tests/mock.c index 10a00cb8f2c..61f2f8294df 100644 --- a/quantum/encoder/tests/mock.c +++ b/quantum/encoder/tests/mock.c @@ -34,3 +34,7 @@ bool setPin(pin_t pin, bool val) { pins[pin] = val; return val; } + +__attribute__((weak)) bool is_keyboard_master(void) { + return true; +} diff --git a/quantum/encoder/tests/mock_split.c b/quantum/encoder/tests/mock_split.c index dd3c26d9584..5cc6cd19e17 100644 --- a/quantum/encoder/tests/mock_split.c +++ b/quantum/encoder/tests/mock_split.c @@ -36,3 +36,7 @@ bool setPin(pin_t pin, bool val) { } void last_encoder_activity_trigger(void) {} + +__attribute__((weak)) bool is_keyboard_master(void) { + return true; +} diff --git a/quantum/encoder/tests/rules.mk b/quantum/encoder/tests/rules.mk index 6a2611952cd..d01c1c66ee5 100644 --- a/quantum/encoder/tests/rules.mk +++ b/quantum/encoder/tests/rules.mk @@ -56,3 +56,13 @@ encoder_split_no_right_SRC := \ $(QUANTUM_PATH)/encoder/tests/mock_split.c \ $(QUANTUM_PATH)/encoder/tests/encoder_tests_split_no_right.cpp \ $(QUANTUM_PATH)/encoder.c + +encoder_split_role_DEFS := -DENCODER_TESTS -DENCODER_ENABLE -DENCODER_MOCK_SPLIT +encoder_split_role_INC := $(QUANTUM_PATH)/split_common +encoder_split_role_CONFIG := $(QUANTUM_PATH)/encoder/tests/config_mock_split_role.h + +encoder_split_role_SRC := \ + platforms/test/timer.c \ + $(QUANTUM_PATH)/encoder/tests/mock_split.c \ + $(QUANTUM_PATH)/encoder/tests/encoder_tests_split_role.cpp \ + $(QUANTUM_PATH)/encoder.c diff --git a/quantum/encoder/tests/testlist.mk b/quantum/encoder/tests/testlist.mk index 6b2fd84d966..a407f1faddf 100644 --- a/quantum/encoder/tests/testlist.mk +++ b/quantum/encoder/tests/testlist.mk @@ -4,4 +4,5 @@ TEST_LIST += \ encoder_split_left_gt_right \ encoder_split_left_lt_right \ encoder_split_no_left \ - encoder_split_no_right + encoder_split_no_right \ + encoder_split_role \ From d3073ef4943c70a3942ac91bb46fdc1a90f9e566 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sun, 13 Nov 2022 08:05:46 -0800 Subject: [PATCH 03/30] Add pointing device support to data driven config (#18215) Co-authored-by: Joel Challis --- data/mappings/info_config.hjson | 18 +++++++ data/mappings/info_rules.hjson | 2 + data/schemas/keyboard.jsonschema | 63 +++++++++++++++++++++++++ lib/python/qmk/cli/generate/config_h.py | 13 +++++ 4 files changed, 96 insertions(+) diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index a013e98b346..a80d5cff6f0 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -11,6 +11,10 @@ // invalid: Default `false`. Set to `true` to generate errors when a value exists // replace_with: use with a key marked deprecated or invalid to designate a replacement "AUDIO_VOICES": {"info_key": "audio.voices", "value_type": "bool"}, + "AUTO_MOUSE_DEFAULT_LAYER": {"info_key": "pointing_device.auto_mouse.default_layer"}, + "AUTO_MOUSE_TIME": {"info_key": "pointing_device.auto_mouse.time"}, + "AUTO_MOUSE_DELAY": {"info_key": "pointing_device.auto_mouse.delay"}, + "AUTO_MOUSE_DEBOUNCE": {"info_key": "pointing_device.auto_mouse.debounce"}, "BACKLIGHT_BREATHING": {"info_key": "backlight.breathing", "value_type": "bool"}, "BREATHING_PERIOD": {"info_key": "backlight.breathing_period", "value_type": "int"}, "BACKLIGHT_LEVELS": {"info_key": "backlight.levels", "value_type": "int"}, @@ -87,6 +91,19 @@ "RGB_MATRIX_VAL_STEP": {"info_key": "rgb_matrix.val_steps", "value_type": "int"}, "RGB_MATRIX_SPD_STEP": {"info_key": "rgb_matrix.speed_steps", "value_type": "int"}, "RGBW": {"info_key": "rgblight.rgbw", "value_type": "bool"}, + "POINTING_DEVICE_AUTO_MOUSE_ENABLE": {"info_key": "pointing_device.auto_mouse.enabled"}, + "POINTING_DEVICE_CS_PIN": {"info_key": "pointing_device.pins.cs"}, + "POINTING_DEVICE_INVERT_X": {"info_key": "pointing_device.invert_x", "value_type": "bool"}, + "POINTING_DEVICE_INVERT_X_RIGHT": {"info_key": "split.pointing_device.right.invert_x", "value_type": "bool"}, + "POINTING_DEVICE_INVERT_Y": {"info_key": "pointing_device.invert_y", "value_type": "bool"}, + "POINTING_DEVICE_INVERT_Y_RIGHT": {"info_key": "split.pointing_device.right.invert_y", "value_type": "bool"}, + "POINTING_DEVICE_MOTION_PIN": {"info_key": "pointing_device.pins.motion"}, + "POINTING_DEVICE_SDIO_PIN": {"info_key": "pointing_device.pins.sdio"}, + "POINTING_DEVICE_SCLK_PIN": {"info_key": "pointing_device.pins.sclk"}, + "POINTING_DEVICE_TASK_THROTTLE_MS": {"info_key": "pointing_device.throttle", "value_type": "int"}, + "POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE": {"info_key": "pointing_device.gestures.cursor_glide", "value_type": "bool"}, + "POINTING_DEVICE_GESTURES_SCROLL_ENABLE": {"info_key": "pointing_device.gestures.scroll", "value_type": "bool"}, + "PRODUCT": {"info_key": "keyboard_name", "warn_duplicate": false, "value_type": "str"}, "PRODUCT_ID": {"info_key": "usb.pid", "value_type": "hex"}, "VENDOR_ID": {"info_key": "usb.vid", "value_type": "hex"}, @@ -99,6 +116,7 @@ "SECURE_IDLE_TIMEOUT": {"info_key": "secure.idle_timeout", "value_type": "int"}, "SENDSTRING_BELL": {"info_key": "audio.macro_beep", "value_type": "bool"}, "SPLIT_MODS_ENABLE": {"info_key": "split.transport.sync_modifiers", "value_type": "bool"}, + "SPLIT_POINTING_ENABLE": {"info_key": "split.transport.sync_pointing", "value_type": "bool"}, "SPLIT_TRANSPORT_MIRROR": {"info_key": "split.transport.sync_matrix_state", "value_type": "bool"}, "SPLIT_USB_DETECT": {"info_key": "split.usb_detect.enabled", "value_type": "bool"}, "SPLIT_USB_TIMEOUT": {"info_key": "split.usb_detect.timeout", "value_type": "int"}, diff --git a/data/mappings/info_rules.hjson b/data/mappings/info_rules.hjson index 2f8656c4bf8..2cc465f30d6 100644 --- a/data/mappings/info_rules.hjson +++ b/data/mappings/info_rules.hjson @@ -36,6 +36,8 @@ "PS2_ENABLE": {"info_key": "ps2.enabled", "value_type": "bool"}, "PS2_MOUSE_ENABLE": {"info_key": "ps2.mouse_enabled", "value_type": "bool"}, "PS2_DRIVER": {"info_key": "ps2.driver"}, + "POINTING_DEVICE_ENABLE": {"info_key": "pointing_device.enabled", "value_type": "bool"}, + "POINTING_DEVICE_DRIVER": {"info_key": "pointing_device.driver"}, // Items we want flagged in lint "CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"}, diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index daf54141a87..d5f4f392d71 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -363,6 +363,48 @@ } } }, + "pointing_device": { + "type": "object", + "properties": { + "enabled": {"type": "boolean"}, + "driver": {"type": "string"}, + "auto_mouse": { + "type": "object", + "properties": { + "enabled": {"type": "boolean"}, + "default_layer": {"type": "qmk.definitions.v1#/unsigned_int_8"}, + "time": {"type": "qmk.definitions.v1#/unsigned_int"}, + "delay": {"type": "qmk.definitions.v1#/unsigned_int"}, + "debounce": {"type": "qmk.definitions.v1#/unsigned_int"} + } + } + "pins": { + "type": "object", + "additionalProperties": false, + "properties": { + "motion": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "cs": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "sdio": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "sclk": {"$ref": "qmk.definitions.v1#/mcu_pin"} + } + }, + "throttle": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "invert_x": {"type": "boolean"}, + "invert_y": {"type": "boolean"}, + "gestures": { + "type": "object", + "properties": { + "cursor_glide": {"type": "boolean"}, + "scroll": {"type": "boolean"} + } + }, + "rotation": { + "type": "integer", + "minimum": 0, + "enum": [0, 90, 180, 270] + } + } + }, "rgb_matrix": { "type": "object", "properties": { @@ -544,6 +586,26 @@ "type": "string", "enum": ["eeprom", "left", "matrix_grid", "pin", "right"] }, + "pointing_device": { + "right": { + "type": "object", + "additionalProperties": false, + "type": "object", + "properties": { + "side": { + "type": "string", + "enum": ["left", "right", "combined"] + }, + "invert_x": {"type": "boolean"}, + "invert_y": {"type": "boolean"}, + "rotation": { + "type": "integer", + "minimum": 0, + "enum": [0, 90, 180, 270] + } + } + } + }, "soft_serial_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, "soft_serial_speed": { "type": "integer", @@ -560,6 +622,7 @@ }, "sync_matrix_state": {"type": "boolean"}, "sync_modifiers": {"type": "boolean"}, + "sync_pointing": {"type": "boolean"}, "watchdog": {"type": "boolean"}, "watchdog_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"} } diff --git a/lib/python/qmk/cli/generate/config_h.py b/lib/python/qmk/cli/generate/config_h.py index 31b8d706351..51051ef610e 100755 --- a/lib/python/qmk/cli/generate/config_h.py +++ b/lib/python/qmk/cli/generate/config_h.py @@ -126,6 +126,13 @@ def generate_encoder_config(encoder_json, config_h_lines, postfix=''): config_h_lines.append(generate_define(f'ENCODER_RESOLUTIONS{postfix}', f'{{ {", ".join(map(str,resolutions))} }}')) +def generate_pointing_device_config(pointing_device_json, config_h_lines, postfix=''): + + rotation = pointing_device_json.get('rotation', 0) + + generate_define(f'POINTING_DEVICE_ROTATION_{rotation}{postfix}') + + def generate_split_config(kb_info_json, config_h_lines): """Generate the config.h lines for split boards.""" if 'primary' in kb_info_json['split']: @@ -156,6 +163,9 @@ def generate_split_config(kb_info_json, config_h_lines): if 'right' in kb_info_json['split'].get('encoder', {}): generate_encoder_config(kb_info_json['split']['encoder']['right'], config_h_lines, '_RIGHT') + if 'right' in kb_info_json['split'].get('pointing_device', {}): + generate_pointing_device_config(kb_info_json['split']['pointing_device']['right'], config_h_lines, '_RIGHT') + def generate_led_animations_config(led_feature_json, config_h_lines, prefix): for animation in led_feature_json.get('animations', {}): @@ -207,5 +217,8 @@ def generate_config_h(cli): if 'rgblight' in kb_info_json: generate_led_animations_config(kb_info_json['rgblight'], config_h_lines, 'RGBLIGHT_EFFECT_') + if 'pointing_device' in kb_info_json: + generate_pointing_device_config(kb_info_json['pointing_device'], config_h_lines) + # Show the results dump_lines(cli.args.output, config_h_lines, cli.args.quiet) From 133fe1c013d712522fc8ae159567629ef7760ed6 Mon Sep 17 00:00:00 2001 From: Klesh Wong Date: Mon, 14 Nov 2022 00:07:08 +0800 Subject: [PATCH 04/30] fix: mousekey doesn't work with trackpoint (#18474) Co-authored-by: Nick Brassel --- drivers/ps2/ps2_mouse.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/ps2/ps2_mouse.c b/drivers/ps2/ps2_mouse.c index 66b48bb3c3d..b32ad1e222d 100644 --- a/drivers/ps2/ps2_mouse.c +++ b/drivers/ps2/ps2_mouse.c @@ -80,7 +80,7 @@ void ps2_mouse_task(void) { uint8_t rcv; rcv = ps2_host_send(PS2_MOUSE_READ_DATA); if (rcv == PS2_ACK) { - mouse_report.buttons = ps2_host_recv_response() | tp_buttons; + mouse_report.buttons = ps2_host_recv_response(); mouse_report.x = ps2_host_recv_response() * PS2_MOUSE_X_MULTIPLIER; mouse_report.y = ps2_host_recv_response() * PS2_MOUSE_Y_MULTIPLIER; # ifdef PS2_MOUSE_ENABLE_SCROLLING @@ -88,11 +88,10 @@ void ps2_mouse_task(void) { # endif } else { if (debug_mouse) print("ps2_mouse: fail to get mouse packet\n"); - return; } #else if (pbuf_has_data()) { - mouse_report.buttons = ps2_host_recv_response() | tp_buttons; + mouse_report.buttons = ps2_host_recv_response(); mouse_report.x = ps2_host_recv_response() * PS2_MOUSE_X_MULTIPLIER; mouse_report.y = ps2_host_recv_response() * PS2_MOUSE_Y_MULTIPLIER; # ifdef PS2_MOUSE_ENABLE_SCROLLING @@ -100,10 +99,10 @@ void ps2_mouse_task(void) { # endif } else { if (debug_mouse) print("ps2_mouse: fail to get mouse packet\n"); - return; } #endif + mouse_report.buttons |= tp_buttons; /* if mouse moves or buttons state changes */ if (mouse_report.x || mouse_report.y || mouse_report.v || ((mouse_report.buttons ^ buttons_prev) & PS2_MOUSE_BTN_MASK)) { #ifdef PS2_MOUSE_DEBUG_RAW From e273df8b93b743bce0b25688373d40945e6556fd Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 13 Nov 2022 16:31:29 +0000 Subject: [PATCH 05/30] Fix duplicate key in keyboard.jsonschema (#19058) --- data/schemas/keyboard.jsonschema | 1 - 1 file changed, 1 deletion(-) diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index d5f4f392d71..353d9469d10 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -590,7 +590,6 @@ "right": { "type": "object", "additionalProperties": false, - "type": "object", "properties": { "side": { "type": "string", From d627609f5e7a1a810b5cd492222754f5b2e65030 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Mon, 14 Nov 2022 03:31:47 +1100 Subject: [PATCH 06/30] Fixup. (#19059) From c1ef943ce0dccacd222b66cffaac43417c840373 Mon Sep 17 00:00:00 2001 From: nicknimchuk <32887909+nicknimchuk@users.noreply.github.com> Date: Sun, 13 Nov 2022 10:34:59 -0600 Subject: [PATCH 07/30] Add missing prototype for get_hold_on_other_key_press to resolve #18855 (#19056) Closes undefined --- quantum/action_tapping.h | 1 + 1 file changed, 1 insertion(+) diff --git a/quantum/action_tapping.h b/quantum/action_tapping.h index 9b64c931200..bcccc7ac45a 100644 --- a/quantum/action_tapping.h +++ b/quantum/action_tapping.h @@ -40,6 +40,7 @@ bool get_permissive_hold(uint16_t keycode, keyrecord_t *record); bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record); bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record); bool get_retro_tapping(uint16_t keycode, keyrecord_t *record); +bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record); #ifdef DYNAMIC_TAPPING_TERM_ENABLE extern uint16_t g_tapping_term; From 9a488a44f665eeaf7e34f5c5a0dcca186fe21ba6 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 13 Nov 2022 16:37:07 +0000 Subject: [PATCH 08/30] Fix up laser_ninja/pumpkin_pad (#19060) --- keyboards/laser_ninja/pumpkin_pad/config.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/keyboards/laser_ninja/pumpkin_pad/config.h b/keyboards/laser_ninja/pumpkin_pad/config.h index 926d8788c14..7dbd24e3413 100644 --- a/keyboards/laser_ninja/pumpkin_pad/config.h +++ b/keyboards/laser_ninja/pumpkin_pad/config.h @@ -20,9 +20,8 @@ #ifdef RGB_MATRIX_ENABLE # define RGB_DI_PIN A10 -# define RGBLED_NUM 28 -# define DRIVER_LED_TOTAL RGBLED_NUM -# define BACKLIGHT_LIMIT_VAL 200 +# define RGB_MATRIX_LED_COUNT 28 +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 # define ENABLE_RGB_MATRIX_ALPHAS_MODS # define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN # define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT From 3f579c5ef369d177547c6a68bd4c7658c4175e10 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Mon, 14 Nov 2022 03:58:37 +1100 Subject: [PATCH 09/30] Cleanup. (#19061) --- keyboards/nixkeyboards/day_off/readme.md | 2 +- keyboards/synthandkeys/the_debit_card/readme.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/nixkeyboards/day_off/readme.md b/keyboards/nixkeyboards/day_off/readme.md index 5525de91cfe..78871fe49de 100644 --- a/keyboards/nixkeyboards/day_off/readme.md +++ b/keyboards/nixkeyboards/day_off/readme.md @@ -1,4 +1,4 @@ -# Day Off Vial Support +# Day Off Support [More info at nixkeyboards.com](https://nixkeyboards.com/) diff --git a/keyboards/synthandkeys/the_debit_card/readme.md b/keyboards/synthandkeys/the_debit_card/readme.md index 6e1b2e0ac32..e6812bba893 100644 --- a/keyboards/synthandkeys/the_debit_card/readme.md +++ b/keyboards/synthandkeys/the_debit_card/readme.md @@ -2,7 +2,7 @@ ![synthandkeys/the_debit_card](https://i.imgur.com/8dpEv73.jpeg) -The Debit Card is a 10-key programmable mechanical keyboard that could fit in your wallet. The ultra-thin, ultra-portable macropad is powered by the XIAO RP2040 and can support KMK, QMK, or VIAL open-source keyboard firmware. +The Debit Card is a 10-key programmable mechanical keyboard that could fit in your wallet. The ultra-thin, ultra-portable macropad is powered by the XIAO RP2040 and can support KMK, or QMK open-source keyboard firmware. * Keyboard Maintainer: [Synth and Keys](https://github.com/Synth-and-Keys) * Hardware Supported: The Debit Card PCB, Seeed XIAO MCU From a30964b3c5680a92154a9fe682a1d85e3ccd700e Mon Sep 17 00:00:00 2001 From: jack <0x6A73@pm.me> Date: Sun, 13 Nov 2022 15:40:51 -0700 Subject: [PATCH 10/30] Add missing `manufacturer` fields (#19065) --- keyboards/cannonkeys/serenity/info.json | 1 + keyboards/handwired/dactyl_manuform/5x6_6/info.json | 1 + .../handwired/dactyl_manuform/5x6_6/keymaps/default/keymap.c | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/keyboards/cannonkeys/serenity/info.json b/keyboards/cannonkeys/serenity/info.json index cd154a30035..281defab6e7 100644 --- a/keyboards/cannonkeys/serenity/info.json +++ b/keyboards/cannonkeys/serenity/info.json @@ -1,4 +1,5 @@ { + "manufacturer": "Cannon Keys", "keyboard_name": "Serenity", "usb": { "vid": "0xCA04", diff --git a/keyboards/handwired/dactyl_manuform/5x6_6/info.json b/keyboards/handwired/dactyl_manuform/5x6_6/info.json index 2774cec1181..dc2a78f4db7 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_6/info.json +++ b/keyboards/handwired/dactyl_manuform/5x6_6/info.json @@ -1,4 +1,5 @@ { + "manufacturer": "QMK", "keyboard_name": "Dactyl Manuform 5x6+6", "url": "https://github.com/fgoodwin/dactyl-manuform-5x6_6/tree/main/5x6_6", "maintainer": "fgoodwin", diff --git a/keyboards/handwired/dactyl_manuform/5x6_6/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform/5x6_6/keymaps/default/keymap.c index 74fe44702e9..013c9867386 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_6/keymaps/default/keymap.c +++ b/keyboards/handwired/dactyl_manuform/5x6_6/keymaps/default/keymap.c @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, KC_TRNS, KC_TRNS, KC_PSCR, KC_DOWN, KC_UP, KC_HOME, KC_END, KC_LEFT, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS, KC_TRNS, - RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(1), LCTL(KC_C), KC_TRNS, MO(1), KC_TRNS, LCTL(KC_V), KC_TRNS, KC_TRNS ) From ee7426e7b19c25ddfc53d0b50db68a457d8f992b Mon Sep 17 00:00:00 2001 From: jack <0x6A73@pm.me> Date: Sun, 13 Nov 2022 15:48:31 -0700 Subject: [PATCH 11/30] Fixup day_off (#19067) --- keyboards/nixkeyboards/day_off/day_off.c | 0 keyboards/nixkeyboards/day_off/day_off.h | 0 keyboards/nixkeyboards/day_off/info.json | 0 .../day_off/keymaps/default/keymap.c | 16 ++++++++-------- keyboards/nixkeyboards/day_off/readme.md | 2 +- keyboards/nixkeyboards/day_off/rules.mk | 0 6 files changed, 9 insertions(+), 9 deletions(-) mode change 100755 => 100644 keyboards/nixkeyboards/day_off/day_off.c mode change 100755 => 100644 keyboards/nixkeyboards/day_off/day_off.h mode change 100755 => 100644 keyboards/nixkeyboards/day_off/info.json mode change 100755 => 100644 keyboards/nixkeyboards/day_off/rules.mk diff --git a/keyboards/nixkeyboards/day_off/day_off.c b/keyboards/nixkeyboards/day_off/day_off.c old mode 100755 new mode 100644 diff --git a/keyboards/nixkeyboards/day_off/day_off.h b/keyboards/nixkeyboards/day_off/day_off.h old mode 100755 new mode 100644 diff --git a/keyboards/nixkeyboards/day_off/info.json b/keyboards/nixkeyboards/day_off/info.json old mode 100755 new mode 100644 diff --git a/keyboards/nixkeyboards/day_off/keymaps/default/keymap.c b/keyboards/nixkeyboards/day_off/keymaps/default/keymap.c index 61e879eb4f9..4718f49798e 100644 --- a/keyboards/nixkeyboards/day_off/keymaps/default/keymap.c +++ b/keyboards/nixkeyboards/day_off/keymaps/default/keymap.c @@ -17,35 +17,35 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( - KC_GESC, 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, + QK_GESC, 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_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_BSPC, KC_MPLY, 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_BSLS, KC_ENT, KC_MNXT, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_BSLS, - KC_MPRV, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_APP, KC_RCTL, RESET + KC_MPRV, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_APP, KC_RCTL, QK_BOOT ), [1] = LAYOUT_all( - RESET, 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, + QK_BOOT, 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_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_BSPC, KC_MPLY, 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_BSLS, KC_ENT, KC_MNXT, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_BSLS, - KC_MPRV, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_APP, KC_RCTL, RESET + KC_MPRV, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_APP, KC_RCTL, QK_BOOT ), [2] = LAYOUT_all( - KC_GESC, 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, + QK_GESC, 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_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_BSPC, KC_MPLY, 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_BSLS, KC_ENT, KC_MNXT, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_BSLS, - KC_MPRV, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_APP, KC_RCTL, RESET + KC_MPRV, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_APP, KC_RCTL, QK_BOOT ), [3] = LAYOUT_all( - KC_GESC, 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, + QK_GESC, 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_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_BSPC, KC_MPLY, 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_BSLS, KC_ENT, KC_MNXT, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_BSLS, - KC_MPRV, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_APP, KC_RCTL, RESET + KC_MPRV, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_APP, KC_RCTL, QK_BOOT ), }; diff --git a/keyboards/nixkeyboards/day_off/readme.md b/keyboards/nixkeyboards/day_off/readme.md index 78871fe49de..74d48ca60ec 100644 --- a/keyboards/nixkeyboards/day_off/readme.md +++ b/keyboards/nixkeyboards/day_off/readme.md @@ -20,4 +20,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at (0,1) 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 `RESET` if it is available +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/nixkeyboards/day_off/rules.mk b/keyboards/nixkeyboards/day_off/rules.mk old mode 100755 new mode 100644 From 7901ba431a4a6248aeb4b16c570e96ce44e56a42 Mon Sep 17 00:00:00 2001 From: jack <0x6A73@pm.me> Date: Sun, 13 Nov 2022 15:49:06 -0700 Subject: [PATCH 12/30] Fixup keychron/q6 (#19066) --- keyboards/keychron/q6/ansi/ansi.c | 2 +- keyboards/keychron/q6/ansi/config.h | 2 +- keyboards/keychron/q6/ansi_encoder/ansi_encoder.c | 2 +- keyboards/keychron/q6/ansi_encoder/config.h | 2 +- keyboards/keychron/q6/iso/config.h | 2 +- keyboards/keychron/q6/iso/iso.c | 2 +- keyboards/keychron/q6/iso_encoder/config.h | 2 +- keyboards/keychron/q6/iso_encoder/iso_encoder.c | 2 +- keyboards/keychron/q6/q6.c | 6 +++++- 9 files changed, 13 insertions(+), 9 deletions(-) diff --git a/keyboards/keychron/q6/ansi/ansi.c b/keyboards/keychron/q6/ansi/ansi.c index dc27c9a82d0..982996d347d 100644 --- a/keyboards/keychron/q6/ansi/ansi.c +++ b/keyboards/keychron/q6/ansi/ansi.c @@ -20,7 +20,7 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[DRIVER_LED_TOTAL] = { +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/keychron/q6/ansi/config.h b/keyboards/keychron/q6/ansi/config.h index 148f8d4c45b..703da35636f 100644 --- a/keyboards/keychron/q6/ansi/config.h +++ b/keyboards/keychron/q6/ansi/config.h @@ -27,7 +27,7 @@ /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 60 #define DRIVER_2_LED_TOTAL 48 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) /* Enable caps-lock LED*/ #define CAPS_LOCK_LED_INDEX 61 diff --git a/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c index bb1044bd09a..6cf593dd252 100644 --- a/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c @@ -20,7 +20,7 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[DRIVER_LED_TOTAL] = { +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/keychron/q6/ansi_encoder/config.h b/keyboards/keychron/q6/ansi_encoder/config.h index 31d801430fa..1949be399b0 100644 --- a/keyboards/keychron/q6/ansi_encoder/config.h +++ b/keyboards/keychron/q6/ansi_encoder/config.h @@ -28,7 +28,7 @@ /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 60 #define DRIVER_2_LED_TOTAL 48 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) /* Encoder Configuration */ #define ENCODERS_PAD_A { C14 } diff --git a/keyboards/keychron/q6/iso/config.h b/keyboards/keychron/q6/iso/config.h index 3c1164be6d1..46c9e1c33a2 100644 --- a/keyboards/keychron/q6/iso/config.h +++ b/keyboards/keychron/q6/iso/config.h @@ -27,7 +27,7 @@ /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 60 #define DRIVER_2_LED_TOTAL 49 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) /* Enable caps-lock LED*/ #define CAPS_LOCK_LED_INDEX 60 diff --git a/keyboards/keychron/q6/iso/iso.c b/keyboards/keychron/q6/iso/iso.c index 497efc2d11a..d8c4add8672 100644 --- a/keyboards/keychron/q6/iso/iso.c +++ b/keyboards/keychron/q6/iso/iso.c @@ -20,7 +20,7 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[DRIVER_LED_TOTAL] = { +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/keychron/q6/iso_encoder/config.h b/keyboards/keychron/q6/iso_encoder/config.h index 442fd35efd0..63fe3a83c14 100644 --- a/keyboards/keychron/q6/iso_encoder/config.h +++ b/keyboards/keychron/q6/iso_encoder/config.h @@ -28,7 +28,7 @@ /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 60 #define DRIVER_2_LED_TOTAL 49 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) /* Encoder Configuration */ #define ENCODERS_PAD_A { C14 } diff --git a/keyboards/keychron/q6/iso_encoder/iso_encoder.c b/keyboards/keychron/q6/iso_encoder/iso_encoder.c index 3ad47b7b0f5..c6a21a6223c 100644 --- a/keyboards/keychron/q6/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q6/iso_encoder/iso_encoder.c @@ -20,7 +20,7 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[DRIVER_LED_TOTAL] = { +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/keychron/q6/q6.c b/keyboards/keychron/q6/q6.c index 85018004e0a..d2f9d2aa4e5 100644 --- a/keyboards/keychron/q6/q6.c +++ b/keyboards/keychron/q6/q6.c @@ -67,7 +67,10 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { return true; } -__attribute__((weak)) void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +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; + } // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); # if defined(CAPS_LOCK_LED_INDEX) if (host_keyboard_led_state().caps_lock) { @@ -87,6 +90,7 @@ __attribute__((weak)) void rgb_matrix_indicators_advanced_user(uint8_t led_min, } } # endif // NUM_LOCK_LED_INDEX + return true; } #endif // RGB_MATRIX_ENABLE... From a42ab90220ce01c2aebdebb09aa458f383d26892 Mon Sep 17 00:00:00 2001 From: David Hoelscher Date: Sun, 13 Nov 2022 17:59:01 -0600 Subject: [PATCH 13/30] Add Bonsai C4 as a platform board file (#18901) * Set up Bonsai C4 as a platform board file * corrections and improvements based on testing and feedback * Added VBUS sensing as default capability for improved split support using Bonsai C4 * Update clock divisor for SPI flash Co-authored-by: Nick Brassel Co-authored-by: Nick Brassel --- data/mappings/defaults.hjson | 2 +- docs/feature_converters.md | 2 - .../bonsai_c4_template/bonsai_c4_template.c | 23 -- .../custommk/bonsai_c4_template/config.h | 79 ------ .../custommk/bonsai_c4_template/halconf.h | 35 --- .../custommk/bonsai_c4_template/mcuconf.h | 35 --- .../custommk/bonsai_c4_template/readme.md | 10 - .../chibios/boards/BONSAI_C4/board/board.mk | 9 + .../chibios/boards/BONSAI_C4/configs/board.h | 20 ++ .../chibios/boards/BONSAI_C4/configs/config.h | 92 +++++++ .../boards/BONSAI_C4/configs/halconf.h | 49 ++++ .../boards/BONSAI_C4/configs/mcuconf.h | 249 ++++++++++++++++++ .../promicro_to_bonsai_c4/converter.mk | 4 +- .../promicro_to_bonsai_c4/post_converter.mk | 5 + 14 files changed, 427 insertions(+), 187 deletions(-) delete mode 100644 keyboards/custommk/bonsai_c4_template/bonsai_c4_template.c delete mode 100644 keyboards/custommk/bonsai_c4_template/config.h delete mode 100644 keyboards/custommk/bonsai_c4_template/halconf.h delete mode 100644 keyboards/custommk/bonsai_c4_template/mcuconf.h delete mode 100644 keyboards/custommk/bonsai_c4_template/readme.md create mode 100644 platforms/chibios/boards/BONSAI_C4/board/board.mk create mode 100644 platforms/chibios/boards/BONSAI_C4/configs/board.h create mode 100644 platforms/chibios/boards/BONSAI_C4/configs/config.h create mode 100644 platforms/chibios/boards/BONSAI_C4/configs/halconf.h create mode 100644 platforms/chibios/boards/BONSAI_C4/configs/mcuconf.h create mode 100644 platforms/chibios/converters/promicro_to_bonsai_c4/post_converter.mk diff --git a/data/mappings/defaults.hjson b/data/mappings/defaults.hjson index ea9f6972c5a..10657e5aa06 100644 --- a/data/mappings/defaults.hjson +++ b/data/mappings/defaults.hjson @@ -70,7 +70,7 @@ "bonsai_c4": { "processor": "STM32F411", "bootloader": "stm32-dfu", - "board": "GENERIC_STM32_F411XE", + "board": "BONSAI_C4", "pin_compatible": "promicro" } } diff --git a/docs/feature_converters.md b/docs/feature_converters.md index 3dabae915d5..0fa677f8732 100644 --- a/docs/feature_converters.md +++ b/docs/feature_converters.md @@ -157,8 +157,6 @@ The Bonsai C4 only has one on-board LED (B2), and by default, both the Pro Micro #define B0 PAL_LINE(GPIOA, 9) ``` -No peripherals are enabled by default at this time, but example code to enable SPI, I2C, PWM, and Serial communications can be found [here](/keyboards/custommk/bonsai_c4_template). - ## Elite-C If a board currently supported in QMK uses an [Elite-C](https://keeb.io/products/elite-c-low-profile-version-usb-c-pro-micro-replacement-atmega32u4), the supported alternative controllers are: diff --git a/keyboards/custommk/bonsai_c4_template/bonsai_c4_template.c b/keyboards/custommk/bonsai_c4_template/bonsai_c4_template.c deleted file mode 100644 index 2129a712cf3..00000000000 --- a/keyboards/custommk/bonsai_c4_template/bonsai_c4_template.c +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright 2022 customMK - * - * 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 . - */ - -// Set up SPI slave select pin -void keyboard_post_init_kb(void) { - #ifdef EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN - setPinOutput(EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN); - writePinHigh(EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN); - #endif -} diff --git a/keyboards/custommk/bonsai_c4_template/config.h b/keyboards/custommk/bonsai_c4_template/config.h deleted file mode 100644 index 192e9b07556..00000000000 --- a/keyboards/custommk/bonsai_c4_template/config.h +++ /dev/null @@ -1,79 +0,0 @@ -/* Copyright 2022 customMK - * - * 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 "config_common.h" - -// This file includes example #defines to enable commonly-used functionality -// (SPI, PWM backlight, etc.) on specific pins. Capabilities you want to include -// should be added to the config.h for your keyboard. Not all capabilities are -// shown; for example: -// I2C is not shown because the QMK defaults are sufficient for SCL on B6 and SDA on B7 -// Serial communications (for split keyboards) is not shown because QMK defaults work -// for either pins A15 or B6 - -// If you need to change pins for PWM, SPI, I2C, or Serial communications, be aware that -// doing this may require changing the driver, channel, PAL (Pin ALternate function) mode, -// DMA stream, and/or DMA channel. - - -// Bonsai C4 wires up pin A9 for Vbus sensing pin by default. For spilt keyboards, this -// can be used to determine which half of the keyboard is plugged into USB. -// For boards using Bonsai C4 merely as a reference design, the VBUS sense pin A9 -// can be used for purposes other than Vbus sensing (e.g. the switch -// matrix). -// -// If A9 is needed for Vbus sensing, uncomment the line -// below. Most keyboards using Bonsai C4 can leave the line below -// commented out. -// -// #undef BOARD_OTG_NOVBUSSENS - -// FRAM configuration -#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A0 -#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 8 // 96MHz / 8 = 12MHz; max supported by MB85R64 is 20MHz -#define EXTERNAL_EEPROM_PAGE_SIZE 64 // does not matter for FRAM, just sets the RAM buffer size in STM32F chip -#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 8191 - -// External flash configuration -#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B12 -#define EXTERNAL_FLASH_SPI_CLOCK_DIVISOR 1 // 96MHz; max supported by W25Q128JV is 133MHz -#define EXTERNAL_FLASH_BYTE_COUNT (16 * 1024 * 1024) //128Mbit or 16MByte -#define EXTERNAL_FLASH_PAGE_SIZE 256 -#define EXTERNAL_FLASH_SPI_TIMEOUT 200000 //datasheet max is 200 seconds for flash chip erase - -// SPI Configuration (needed for FRAM and FLASH) -#define SPI_DRIVER SPID1 -#define SPI_SCK_PIN B3 -#define SPI_MOSI_PIN B5 -#define SPI_MISO_PIN B4 - -// Example code to set up PWM backlight on pin A6 -// If a different pin is used, a different PWM driver/channel settings may be necessary -#define BACKLIGHT_PIN A6 -#define BACKLIGHT_PWM_DRIVER PWMD3 -#define BACKLIGHT_PWM_CHANNEL 1 - -// Example code for WS2812 underglow -// Only pin A10 is wired to send 5V signals to the WS2812 -// This also usually requires adding special wiring during board assembly -#define RGB_DI_PIN A10 -#define WS2812_PWM_DRIVER PWMD1 -#define WS2812_PWM_CHANNEL 3 -#define WS2812_PWM_PAL_MODE 1 -#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 -#define WS2812_DMA_CHANNEL 6 diff --git a/keyboards/custommk/bonsai_c4_template/halconf.h b/keyboards/custommk/bonsai_c4_template/halconf.h deleted file mode 100644 index a90ea163f36..00000000000 --- a/keyboards/custommk/bonsai_c4_template/halconf.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright 2021 customMK - * - * 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 - -// If you are using I2C (e.g. for OLED), include this line -#define HAL_USE_I2C TRUE - -// If you are using PWM (e.g. for WS2812, backlight, etc.) include this line -#define HAL_USE_PWM TRUE - -// If you are using serial comms for split communications, include these lines -#define HAL_USE_SERIAL TRUE -#define SERIAL_BUFFERS_SIZE 256 - -// If you are using SPI (e.g. for FRAM, flash, etc.) include these lines -#define HAL_USE_SPI TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -// This enables interrupt-driven mode -#define SPI_USE_WAIT TRUE - -#include_next \ No newline at end of file diff --git a/keyboards/custommk/bonsai_c4_template/mcuconf.h b/keyboards/custommk/bonsai_c4_template/mcuconf.h deleted file mode 100644 index 4f926bd7deb..00000000000 --- a/keyboards/custommk/bonsai_c4_template/mcuconf.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright 2022 customMK - * - * 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 - -// Used for underglow in example code -#undef STM32_PWM_USE_TIM1 //timer 1 channel 3 -#define STM32_PWM_USE_TIM1 TRUE - -// Used for backlight in examples -#undef STM32_PWM_USE_TIM3 //timer 3 channel 1 -#define STM32_PWM_USE_TIM3 TRUE - -// Used for FRAM and flash in example code -#undef STM32_SPI_USE_SPI1 -#define STM32_SPI_USE_SPI1 TRUE - -// Used for Split comms in example code -#undef STM32_SERIAL_USE_USART1 -#define STM32_SERIAL_USE_USART1 TRUE \ No newline at end of file diff --git a/keyboards/custommk/bonsai_c4_template/readme.md b/keyboards/custommk/bonsai_c4_template/readme.md deleted file mode 100644 index 0c0fd8ed0ce..00000000000 --- a/keyboards/custommk/bonsai_c4_template/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# Bonsai C4 template code - -Currently, the converter for Pro Micro to Bonsai C4 only does pin mapping. This is sufficient for simple keyboards and also a good start for -incorporating into more advanced keyboards with other features (like RGB, OLED, backlighting, split communiciations, etc.). However, to make -use of the more advanced features--including using the FRAM and flash memory chip included on Bonsai C4--various peripheral hardware must -be configured. Pro Micro does not requrie such configuration because such functionality is more limited and hard-wired to specific pins. - -The code here provides examples that can be used to operate SPI, I2C, PWM, and Serial comms. In addition to using the converter, you will -need to take code (as-needed) and add it to existing config.h files, or add in new halconf.h and mcuconf.h files. If you are changing which -pins are used for certain functions, you should verify the new pins support that functionality, and check all assingments to ensure the correct settings are used (including as-applicable driver, channel, PAL (Pin ALternate function) mode, DMA stream, and/or DMA channel). diff --git a/platforms/chibios/boards/BONSAI_C4/board/board.mk b/platforms/chibios/boards/BONSAI_C4/board/board.mk new file mode 100644 index 00000000000..bb00b1a2b0d --- /dev/null +++ b/platforms/chibios/boards/BONSAI_C4/board/board.mk @@ -0,0 +1,9 @@ +# List of all the board related files. +BOARDSRC = $(CHIBIOS)/os/hal/boards/ST_NUCLEO64_F411RE/board.c + +# Required include directories +BOARDINC = $(CHIBIOS)/os/hal/boards/ST_NUCLEO64_F411RE + +# Shared variables +ALLCSRC += $(BOARDSRC) +ALLINC += $(BOARDINC) diff --git a/platforms/chibios/boards/BONSAI_C4/configs/board.h b/platforms/chibios/boards/BONSAI_C4/configs/board.h new file mode 100644 index 00000000000..f1ee51c91f5 --- /dev/null +++ b/platforms/chibios/boards/BONSAI_C4/configs/board.h @@ -0,0 +1,20 @@ +/* Copyright 2020 Nick Brassel (tzarc) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include_next "board.h" + +#undef STM32_HSE_BYPASS \ No newline at end of file diff --git a/platforms/chibios/boards/BONSAI_C4/configs/config.h b/platforms/chibios/boards/BONSAI_C4/configs/config.h new file mode 100644 index 00000000000..e412f73d3d7 --- /dev/null +++ b/platforms/chibios/boards/BONSAI_C4/configs/config.h @@ -0,0 +1,92 @@ +/* Copyright 2022 David Hoelscher, customMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +// Bonsai C4 includes Vbus sensing; derived designs that use PA9 for other purposes +// may disable Vbus sensing with #define BOARD_OTG_NOVBUSSENS 1 + +#ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP +# define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE +#endif + +// FRAM configuration +#ifndef EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN +# define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN PAL_LINE(GPIOA, 0) +# define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 8 // 96MHz / 8 = 12MHz; max supported by MB85R64 is 20MHz +# define EXTERNAL_EEPROM_BYTE_COUNT 8192 +# define EXTERNAL_EEPROM_PAGE_SIZE 64 // does not matter for FRAM, just sets the RAM buffer size in STM32F chip +# define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 8191 +#endif + +// External flash configuration +#ifndef EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN +# define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN PAL_LINE(GPIOB, 12) +# define EXTERNAL_FLASH_SPI_CLOCK_DIVISOR 2 // 48MHz; max supported by W25Q128JV is 133MHz +# define EXTERNAL_FLASH_BYTE_COUNT (16 * 1024 * 1024) //128Mbit or 16MByte +# define EXTERNAL_FLASH_PAGE_SIZE 256 +# define EXTERNAL_FLASH_SPI_TIMEOUT 200000 //datasheet max is 200 seconds for flash chip erase +#endif + +// SPI Configuration (needed for FRAM and FLASH) +#ifndef SPI_DRIVER +# define SPI_DRIVER SPID1 +#endif +#ifndef SPI_SCK_PIN +# define SPI_SCK_PIN PAL_LINE(GPIOB, 3) +#endif +#ifndef SPI_MOSI_PIN +# define SPI_MOSI_PIN PAL_LINE(GPIOB, 5) +#endif +#ifndef SPI_MISO_PIN +# define SPI_MISO_PIN PAL_LINE(GPIOB, 4) +#endif + + +// I2C Configuration +#ifdef CONVERT_TO_BONSAI_C4 +# ifndef I2C1_SCL_PIN +# define I2C1_SCL_PIN PAL_LINE(GPIOB, 6) +# endif +# ifndef I2C1_SDA_PIN +# define I2C1_SDA_PIN PAL_LINE(GPIOB, 9) +# endif +#endif + +// WS2812-style LED control on pin A10 +#ifdef WS2812_DRIVER_PWM +# ifndef RGB_DI_PIN +# define RGB_DI_PIN PAL_LINE(GPIOA, 10) +# endif +# ifndef WS2812_PWM_DRIVER +# define WS2812_PWM_DRIVER PWMD1 +# endif +# ifndef WS2812_PWM_CHANNEL +# define WS2812_PWM_CHANNEL 3 +# endif +# ifndef WS2812_PWM_PAL_MODE +# define WS2812_PWM_PAL_MODE 1 +# endif +# ifndef WS2812_DMA_STREAM +# define WS2812_DMA_STREAM STM32_DMA2_STREAM5 +# endif +# ifndef WS2812_DMA_CHANNEL +# define WS2812_DMA_CHANNEL 6 +# endif +#endif + +#ifndef USB_VBUS_PIN +# define USB_VBUS_PIN PAL_LINE(GPIOA, 9) +#endif \ No newline at end of file diff --git a/platforms/chibios/boards/BONSAI_C4/configs/halconf.h b/platforms/chibios/boards/BONSAI_C4/configs/halconf.h new file mode 100644 index 00000000000..7887e7c9ba5 --- /dev/null +++ b/platforms/chibios/boards/BONSAI_C4/configs/halconf.h @@ -0,0 +1,49 @@ +/* Copyright 2022 David Hoelscher, customMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#ifndef HAL_USE_SPI +# define HAL_USE_SPI TRUE +#endif + +#ifndef HAL_USE_I2C +# define HAL_USE_I2C TRUE +#endif + +#ifdef SPLIT_KEYBOARD +# ifndef HAL_USE_SERIAL +# define HAL_USE_SERIAL TRUE +# endif +# ifndef SERIAL_BUFFERS_SIZE +# define SERIAL_BUFFERS_SIZE 256 +# endif +#endif + +#ifdef WS2812_DRIVER_PWM +# ifndef HAL_USE_PWM +# define HAL_USE_PWM TRUE +# endif +#endif + +#ifndef SPI_SELECT_MODE +# define SPI_SELECT_MODE SPI_SELECT_MODE_PAD +#endif + +#ifndef SPI_USE_WAIT +# define SPI_USE_WAIT TRUE +#endif + +#include_next \ No newline at end of file diff --git a/platforms/chibios/boards/BONSAI_C4/configs/mcuconf.h b/platforms/chibios/boards/BONSAI_C4/configs/mcuconf.h new file mode 100644 index 00000000000..2f9e627c7e5 --- /dev/null +++ b/platforms/chibios/boards/BONSAI_C4/configs/mcuconf.h @@ -0,0 +1,249 @@ +/* + 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 + +/* + * STM32F4xx 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 STM32F4xx_MCUCONF +#define STM32F411_MCUCONF + +/* + * HAL driver system settings. + */ +#define STM32_NO_INIT FALSE +#define STM32_PVD_ENABLE FALSE +#define STM32_PLS STM32_PLS_LEV0 +#define STM32_BKPRAM_ENABLE FALSE +#define STM32_HSI_ENABLED TRUE +#define STM32_LSI_ENABLED TRUE +#define STM32_HSE_ENABLED TRUE +#define STM32_LSE_ENABLED FALSE +#define STM32_CLOCK48_REQUIRED TRUE +#define STM32_SW STM32_SW_PLL +#define STM32_PLLSRC STM32_PLLSRC_HSE +#define STM32_PLLM_VALUE 4 +#define STM32_PLLN_VALUE 96 +#define STM32_PLLP_VALUE 2 +#define STM32_PLLQ_VALUE 4 +#define STM32_HPRE STM32_HPRE_DIV1 +#define STM32_PPRE1 STM32_PPRE1_DIV2 +#define STM32_PPRE2 STM32_PPRE2_DIV1 +#define STM32_RTCSEL STM32_RTCSEL_LSI +#define STM32_RTCPRE_VALUE 8 +#define STM32_MCO1SEL STM32_MCO1SEL_HSI +#define STM32_MCO1PRE STM32_MCO1PRE_DIV1 +#define STM32_MCO2SEL STM32_MCO2SEL_SYSCLK +#define STM32_MCO2PRE STM32_MCO2PRE_DIV5 +#define STM32_I2SSRC STM32_I2SSRC_CKIN +#define STM32_PLLI2SN_VALUE 192 +#define STM32_PLLI2SR_VALUE 5 + +/* + * 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 15 +#define STM32_IRQ_EXTI18_PRIORITY 6 +#define STM32_IRQ_EXTI19_PRIORITY 6 +#define STM32_IRQ_EXTI20_PRIORITY 6 +#define STM32_IRQ_EXTI21_PRIORITY 15 +#define STM32_IRQ_EXTI22_PRIORITY 15 + +#define STM32_IRQ_TIM1_BRK_TIM9_PRIORITY 7 +#define STM32_IRQ_TIM1_UP_TIM10_PRIORITY 7 +#define STM32_IRQ_TIM1_TRGCO_TIM11_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_USART1_PRIORITY 12 +#define STM32_IRQ_USART2_PRIORITY 12 +#define STM32_IRQ_USART6_PRIORITY 12 + +/* + * ADC driver system settings. + */ +#define STM32_ADC_ADCPRE ADC_CCR_ADCPRE_DIV4 +#define STM32_ADC_USE_ADC1 FALSE +#define STM32_ADC_ADC1_DMA_STREAM STM32_DMA_STREAM_ID(2, 4) +#define STM32_ADC_ADC1_DMA_PRIORITY 2 +#define STM32_ADC_IRQ_PRIORITY 6 +#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 6 + +/* + * 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_TIM9 FALSE +#define STM32_GPT_USE_TIM10 FALSE +#define STM32_GPT_USE_TIM11 FALSE + +/* + * I2C driver system settings. + */ +#define STM32_I2C_USE_I2C1 TRUE +#define STM32_I2C_USE_I2C2 FALSE +#define STM32_I2C_USE_I2C3 FALSE +#define STM32_I2C_BUSY_TIMEOUT 50 +#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) +#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) +#define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2) +#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) +#define STM32_I2C_I2C3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2) +#define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) +#define STM32_I2C_I2C1_IRQ_PRIORITY 5 +#define STM32_I2C_I2C2_IRQ_PRIORITY 5 +#define STM32_I2C_I2C3_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_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") + +/* + * I2S driver system settings. + */ +#define STM32_I2S_USE_SPI2 FALSE +#define STM32_I2S_USE_SPI3 FALSE +#define STM32_I2S_SPI2_IRQ_PRIORITY 10 +#define STM32_I2S_SPI3_IRQ_PRIORITY 10 +#define STM32_I2S_SPI2_DMA_PRIORITY 1 +#define STM32_I2S_SPI3_DMA_PRIORITY 1 +#define STM32_I2S_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3) +#define STM32_I2S_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) +#define STM32_I2S_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) +#define STM32_I2S_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) +#define STM32_I2S_DMA_ERROR_HOOK(i2sp) 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_TIM9 FALSE +#define STM32_ICU_USE_TIM10 FALSE +#define STM32_ICU_USE_TIM11 FALSE + +/* + * PWM driver system settings. + */ +#define STM32_PWM_USE_TIM1 TRUE +#define STM32_PWM_USE_TIM2 FALSE +#define STM32_PWM_USE_TIM3 TRUE +#define STM32_PWM_USE_TIM4 FALSE +#define STM32_PWM_USE_TIM5 FALSE +#define STM32_PWM_USE_TIM9 FALSE +#define STM32_PWM_USE_TIM10 FALSE +#define STM32_PWM_USE_TIM11 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 + +/* + * SERIAL driver system settings. + */ +#define STM32_SERIAL_USE_USART1 TRUE +#define STM32_SERIAL_USE_USART2 FALSE +#define STM32_SERIAL_USE_USART6 FALSE + +/* + * SPI driver system settings. + */ +#define STM32_SPI_USE_SPI1 TRUE +#define STM32_SPI_USE_SPI2 FALSE +#define STM32_SPI_USE_SPI3 FALSE +#define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 0) +#define STM32_SPI_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 3) +#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3) +#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) +#define STM32_SPI_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) +#define STM32_SPI_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7) +#define STM32_SPI_SPI1_DMA_PRIORITY 1 +#define STM32_SPI_SPI2_DMA_PRIORITY 1 +#define STM32_SPI_SPI3_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_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") + +/* + * ST driver system settings. + */ +#define STM32_ST_IRQ_PRIORITY 8 +#define STM32_ST_USE_TIMER 2 + +/* + * UART driver system settings. + */ +#define STM32_UART_USE_USART1 FALSE +#define STM32_UART_USE_USART2 FALSE +#define STM32_UART_USE_USART6 FALSE +#define STM32_UART_USART1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 5) +#define STM32_UART_USART1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 7) +#define STM32_UART_USART2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) +#define STM32_UART_USART2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) +#define STM32_UART_USART6_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 2) +#define STM32_UART_USART6_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 7) +#define STM32_UART_USART1_DMA_PRIORITY 0 +#define STM32_UART_USART2_DMA_PRIORITY 0 +#define STM32_UART_USART6_DMA_PRIORITY 0 +#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") + +/* + * USB driver system settings. + */ +#define STM32_USB_USE_OTG1 TRUE +#define STM32_USB_OTG1_IRQ_PRIORITY 14 +#define STM32_USB_OTG1_RX_FIFO_SIZE 512 +#define STM32_USB_HOST_WAKEUP_DURATION 2 + +/* + * WDG driver system settings. + */ +#define STM32_WDG_USE_IWDG FALSE + +#endif /* MCUCONF_H */ \ No newline at end of file diff --git a/platforms/chibios/converters/promicro_to_bonsai_c4/converter.mk b/platforms/chibios/converters/promicro_to_bonsai_c4/converter.mk index 7410209b670..005b7a81601 100644 --- a/platforms/chibios/converters/promicro_to_bonsai_c4/converter.mk +++ b/platforms/chibios/converters/promicro_to_bonsai_c4/converter.mk @@ -1,4 +1,4 @@ # Proton C MCU settings for converting AVR projects MCU := STM32F411 -BOARD := GENERIC_STM32_F411XE -BOOTLOADER := stm32-dfu \ No newline at end of file +BOARD := BONSAI_C4 +BOOTLOADER := stm32-dfu diff --git a/platforms/chibios/converters/promicro_to_bonsai_c4/post_converter.mk b/platforms/chibios/converters/promicro_to_bonsai_c4/post_converter.mk new file mode 100644 index 00000000000..5f49b17f8a6 --- /dev/null +++ b/platforms/chibios/converters/promicro_to_bonsai_c4/post_converter.mk @@ -0,0 +1,5 @@ +BACKLIGHT_DRIVER ?= pwm +WS2812_DRIVER ?= pwm +SERIAL_DRIVER ?= usart +FLASH_DRIVER ?= spi +EEPROM_DRIVER ?= spi \ No newline at end of file From 0719d68b205ecffd8f93dee07b7dd07d8bc8c615 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 14 Nov 2022 01:49:58 +0000 Subject: [PATCH 14/30] Add default limit to OLED dirty processing (#19068) --- drivers/oled/oled_driver.h | 4 ++++ drivers/oled/ssd1306_sh1106.c | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/oled/oled_driver.h b/drivers/oled/oled_driver.h index e9b8c5b4e87..291049e36bd 100644 --- a/drivers/oled/oled_driver.h +++ b/drivers/oled/oled_driver.h @@ -170,6 +170,10 @@ along with this program. If not, see . # define OLED_UPDATE_INTERVAL 50 #endif +#if !defined(OLED_UPDATE_PROCESS_LIMIT) +# define OLED_UPDATE_PROCESS_LIMIT 1 +#endif + typedef struct __attribute__((__packed__)) { uint8_t *current_element; uint16_t remaining_element_count; diff --git a/drivers/oled/ssd1306_sh1106.c b/drivers/oled/ssd1306_sh1106.c index 9fc8c2d2adf..342920572e3 100644 --- a/drivers/oled/ssd1306_sh1106.c +++ b/drivers/oled/ssd1306_sh1106.c @@ -300,8 +300,9 @@ void oled_render(void) { // Turn on display if it is off oled_on(); - uint8_t update_start = 0; - while (oled_dirty) { // render all dirty blocks + uint8_t update_start = 0; + uint8_t num_processed = 0; + while (oled_dirty && num_processed++ < OLED_UPDATE_PROCESS_LIMIT) { // render all dirty blocks (up to the configured limit) // Find next dirty block while (!(oled_dirty & ((OLED_BLOCK_TYPE)1 << update_start))) { ++update_start; From 05540eb6681dab073f61a7d81e4e36e426e8a1aa Mon Sep 17 00:00:00 2001 From: jack <0x6A73@pm.me> Date: Mon, 14 Nov 2022 08:44:07 -0700 Subject: [PATCH 15/30] Fixup handwired/alcor_dactyl (#19072) --- keyboards/handwired/alcor_dactyl/config.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/keyboards/handwired/alcor_dactyl/config.h b/keyboards/handwired/alcor_dactyl/config.h index f8ffe4d6a32..58a4ec558ed 100644 --- a/keyboards/handwired/alcor_dactyl/config.h +++ b/keyboards/handwired/alcor_dactyl/config.h @@ -27,7 +27,6 @@ #define SERIAL_USART_TX_PIN GP10 #define SERIAL_USART_RX_PIN GP9 #define RGB_DI_PIN GP16 -#define DRIVER_LED_TOTAL 2 +#define RGB_MATRIX_LED_COUNT 2 #define RGB_MATRIX_SPLIT { 1, 1 } -#define RGBLED_NUM 1 #define EE_HANDS From 1a3f2130d5feeeccada90ebb1d96cde5232459e0 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Mon, 14 Nov 2022 22:44:09 -0800 Subject: [PATCH 16/30] Revert "Add pointing device support to data driven config (#18215)" (#19063) --- data/mappings/info_config.hjson | 18 ------- data/mappings/info_rules.hjson | 2 - data/schemas/keyboard.jsonschema | 62 ------------------------- lib/python/qmk/cli/generate/config_h.py | 13 ------ 4 files changed, 95 deletions(-) diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index a80d5cff6f0..a013e98b346 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -11,10 +11,6 @@ // invalid: Default `false`. Set to `true` to generate errors when a value exists // replace_with: use with a key marked deprecated or invalid to designate a replacement "AUDIO_VOICES": {"info_key": "audio.voices", "value_type": "bool"}, - "AUTO_MOUSE_DEFAULT_LAYER": {"info_key": "pointing_device.auto_mouse.default_layer"}, - "AUTO_MOUSE_TIME": {"info_key": "pointing_device.auto_mouse.time"}, - "AUTO_MOUSE_DELAY": {"info_key": "pointing_device.auto_mouse.delay"}, - "AUTO_MOUSE_DEBOUNCE": {"info_key": "pointing_device.auto_mouse.debounce"}, "BACKLIGHT_BREATHING": {"info_key": "backlight.breathing", "value_type": "bool"}, "BREATHING_PERIOD": {"info_key": "backlight.breathing_period", "value_type": "int"}, "BACKLIGHT_LEVELS": {"info_key": "backlight.levels", "value_type": "int"}, @@ -91,19 +87,6 @@ "RGB_MATRIX_VAL_STEP": {"info_key": "rgb_matrix.val_steps", "value_type": "int"}, "RGB_MATRIX_SPD_STEP": {"info_key": "rgb_matrix.speed_steps", "value_type": "int"}, "RGBW": {"info_key": "rgblight.rgbw", "value_type": "bool"}, - "POINTING_DEVICE_AUTO_MOUSE_ENABLE": {"info_key": "pointing_device.auto_mouse.enabled"}, - "POINTING_DEVICE_CS_PIN": {"info_key": "pointing_device.pins.cs"}, - "POINTING_DEVICE_INVERT_X": {"info_key": "pointing_device.invert_x", "value_type": "bool"}, - "POINTING_DEVICE_INVERT_X_RIGHT": {"info_key": "split.pointing_device.right.invert_x", "value_type": "bool"}, - "POINTING_DEVICE_INVERT_Y": {"info_key": "pointing_device.invert_y", "value_type": "bool"}, - "POINTING_DEVICE_INVERT_Y_RIGHT": {"info_key": "split.pointing_device.right.invert_y", "value_type": "bool"}, - "POINTING_DEVICE_MOTION_PIN": {"info_key": "pointing_device.pins.motion"}, - "POINTING_DEVICE_SDIO_PIN": {"info_key": "pointing_device.pins.sdio"}, - "POINTING_DEVICE_SCLK_PIN": {"info_key": "pointing_device.pins.sclk"}, - "POINTING_DEVICE_TASK_THROTTLE_MS": {"info_key": "pointing_device.throttle", "value_type": "int"}, - "POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE": {"info_key": "pointing_device.gestures.cursor_glide", "value_type": "bool"}, - "POINTING_DEVICE_GESTURES_SCROLL_ENABLE": {"info_key": "pointing_device.gestures.scroll", "value_type": "bool"}, - "PRODUCT": {"info_key": "keyboard_name", "warn_duplicate": false, "value_type": "str"}, "PRODUCT_ID": {"info_key": "usb.pid", "value_type": "hex"}, "VENDOR_ID": {"info_key": "usb.vid", "value_type": "hex"}, @@ -116,7 +99,6 @@ "SECURE_IDLE_TIMEOUT": {"info_key": "secure.idle_timeout", "value_type": "int"}, "SENDSTRING_BELL": {"info_key": "audio.macro_beep", "value_type": "bool"}, "SPLIT_MODS_ENABLE": {"info_key": "split.transport.sync_modifiers", "value_type": "bool"}, - "SPLIT_POINTING_ENABLE": {"info_key": "split.transport.sync_pointing", "value_type": "bool"}, "SPLIT_TRANSPORT_MIRROR": {"info_key": "split.transport.sync_matrix_state", "value_type": "bool"}, "SPLIT_USB_DETECT": {"info_key": "split.usb_detect.enabled", "value_type": "bool"}, "SPLIT_USB_TIMEOUT": {"info_key": "split.usb_detect.timeout", "value_type": "int"}, diff --git a/data/mappings/info_rules.hjson b/data/mappings/info_rules.hjson index 2cc465f30d6..2f8656c4bf8 100644 --- a/data/mappings/info_rules.hjson +++ b/data/mappings/info_rules.hjson @@ -36,8 +36,6 @@ "PS2_ENABLE": {"info_key": "ps2.enabled", "value_type": "bool"}, "PS2_MOUSE_ENABLE": {"info_key": "ps2.mouse_enabled", "value_type": "bool"}, "PS2_DRIVER": {"info_key": "ps2.driver"}, - "POINTING_DEVICE_ENABLE": {"info_key": "pointing_device.enabled", "value_type": "bool"}, - "POINTING_DEVICE_DRIVER": {"info_key": "pointing_device.driver"}, // Items we want flagged in lint "CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"}, diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 353d9469d10..daf54141a87 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -363,48 +363,6 @@ } } }, - "pointing_device": { - "type": "object", - "properties": { - "enabled": {"type": "boolean"}, - "driver": {"type": "string"}, - "auto_mouse": { - "type": "object", - "properties": { - "enabled": {"type": "boolean"}, - "default_layer": {"type": "qmk.definitions.v1#/unsigned_int_8"}, - "time": {"type": "qmk.definitions.v1#/unsigned_int"}, - "delay": {"type": "qmk.definitions.v1#/unsigned_int"}, - "debounce": {"type": "qmk.definitions.v1#/unsigned_int"} - } - } - "pins": { - "type": "object", - "additionalProperties": false, - "properties": { - "motion": {"$ref": "qmk.definitions.v1#/mcu_pin"}, - "cs": {"$ref": "qmk.definitions.v1#/mcu_pin"}, - "sdio": {"$ref": "qmk.definitions.v1#/mcu_pin"}, - "sclk": {"$ref": "qmk.definitions.v1#/mcu_pin"} - } - }, - "throttle": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, - "invert_x": {"type": "boolean"}, - "invert_y": {"type": "boolean"}, - "gestures": { - "type": "object", - "properties": { - "cursor_glide": {"type": "boolean"}, - "scroll": {"type": "boolean"} - } - }, - "rotation": { - "type": "integer", - "minimum": 0, - "enum": [0, 90, 180, 270] - } - } - }, "rgb_matrix": { "type": "object", "properties": { @@ -586,25 +544,6 @@ "type": "string", "enum": ["eeprom", "left", "matrix_grid", "pin", "right"] }, - "pointing_device": { - "right": { - "type": "object", - "additionalProperties": false, - "properties": { - "side": { - "type": "string", - "enum": ["left", "right", "combined"] - }, - "invert_x": {"type": "boolean"}, - "invert_y": {"type": "boolean"}, - "rotation": { - "type": "integer", - "minimum": 0, - "enum": [0, 90, 180, 270] - } - } - } - }, "soft_serial_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, "soft_serial_speed": { "type": "integer", @@ -621,7 +560,6 @@ }, "sync_matrix_state": {"type": "boolean"}, "sync_modifiers": {"type": "boolean"}, - "sync_pointing": {"type": "boolean"}, "watchdog": {"type": "boolean"}, "watchdog_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"} } diff --git a/lib/python/qmk/cli/generate/config_h.py b/lib/python/qmk/cli/generate/config_h.py index 51051ef610e..31b8d706351 100755 --- a/lib/python/qmk/cli/generate/config_h.py +++ b/lib/python/qmk/cli/generate/config_h.py @@ -126,13 +126,6 @@ def generate_encoder_config(encoder_json, config_h_lines, postfix=''): config_h_lines.append(generate_define(f'ENCODER_RESOLUTIONS{postfix}', f'{{ {", ".join(map(str,resolutions))} }}')) -def generate_pointing_device_config(pointing_device_json, config_h_lines, postfix=''): - - rotation = pointing_device_json.get('rotation', 0) - - generate_define(f'POINTING_DEVICE_ROTATION_{rotation}{postfix}') - - def generate_split_config(kb_info_json, config_h_lines): """Generate the config.h lines for split boards.""" if 'primary' in kb_info_json['split']: @@ -163,9 +156,6 @@ def generate_split_config(kb_info_json, config_h_lines): if 'right' in kb_info_json['split'].get('encoder', {}): generate_encoder_config(kb_info_json['split']['encoder']['right'], config_h_lines, '_RIGHT') - if 'right' in kb_info_json['split'].get('pointing_device', {}): - generate_pointing_device_config(kb_info_json['split']['pointing_device']['right'], config_h_lines, '_RIGHT') - def generate_led_animations_config(led_feature_json, config_h_lines, prefix): for animation in led_feature_json.get('animations', {}): @@ -217,8 +207,5 @@ def generate_config_h(cli): if 'rgblight' in kb_info_json: generate_led_animations_config(kb_info_json['rgblight'], config_h_lines, 'RGBLIGHT_EFFECT_') - if 'pointing_device' in kb_info_json: - generate_pointing_device_config(kb_info_json['pointing_device'], config_h_lines) - # Show the results dump_lines(cli.args.output, config_h_lines, cli.args.quiet) From 30b2dbe369b3a61d1d6681b0a689dbcdd41fc221 Mon Sep 17 00:00:00 2001 From: Charly Delay <0xcharly@users.noreply.github.com> Date: Tue, 15 Nov 2022 17:51:44 +0900 Subject: [PATCH 17/30] Bastard Keyboards: upstream recent changes (#18903) * bastardkb: cleanup blackpill configuration Fixes #17 * bastardkb: fix splinky configuration The pinout of the splinky changed between the last beta batch, and the production one. This commit updates the keyboard definition to support the new pinout by default, while offering backward compatibility. Define `SPLINKY_BETA_PINOUT` to build the firmware with pre-production pinout. Fixes #15 * bastardkb: add support for STeMCell * Update scylla/tbkmini/skeletyl outdated readmes * bastardkb/dilemma: enable circular scroll * bastardkb/dilemma: add initial version of the `via` keymap * bastardkb/dilemma/assembled: add new keyboard Fixes #20 * bastardkb/dilemma: remove elite-c * Initial support for the Dilemma 3x5+3 Assembled RGB * Address code review comments * Address more comments * Address review comments * Address more nits * bastardkb: split splinky-based keyboards to distinguish between Splinky v2 and v3 pinout --- .../charybdis/3x5/blackpill/config.h | 2 +- .../charybdis/3x5/blackpill/halconf.h | 4 +- .../charybdis/3x5/blackpill/mcuconf.h | 16 -- .../charybdis/3x5/blackpill/rules.mk | 4 +- .../keymaps/bstiq/{README.md => readme.md} | 0 .../charybdis/3x5/keymaps/default/keymap.c | 1 + .../charybdis/3x5/v1/elitec/config.h | 2 +- .../charybdis/3x5/v2/elitec/config.h | 2 +- .../charybdis/3x5/v2/splinky/config.h | 70 +++++- .../charybdis/3x5/v2/splinky/readme.md | 6 + .../3x5/v2/splinky/v2/config.h} | 22 +- .../charybdis/3x5/v2/splinky/v2/rules.mk | 2 + .../charybdis/3x5/v2/splinky/v3/config.h | 27 +++ .../charybdis/3x5/v2/splinky/v3/rules.mk | 2 + .../charybdis/3x5/v2/stemcell/config.h | 63 +++++ .../charybdis/3x5/v2/stemcell/halconf.h | 24 ++ .../charybdis/3x5/v2/stemcell/info.json | 6 + .../charybdis/3x5/v2/stemcell/mcuconf.h | 32 +++ .../charybdis/3x5/v2/stemcell/rules.mk | 38 +++ .../charybdis/3x6/blackpill/config.h | 2 +- .../charybdis/3x6/blackpill/halconf.h | 3 +- .../charybdis/3x6/blackpill/mcuconf.h | 2 + .../charybdis/3x6/v1/elitec/config.h | 2 +- .../charybdis/3x6/v2/elitec/config.h | 2 +- .../charybdis/3x6/v2/splinky/config.h | 5 - .../charybdis/3x6/v2/splinky/readme.md | 6 + .../charybdis/3x6/v2/splinky/v2/config.h | 27 +++ .../charybdis/3x6/v2/splinky/v2/rules.mk | 2 + .../charybdis/3x6/v2/splinky/v3/config.h | 27 +++ .../charybdis/3x6/v2/splinky/v3/rules.mk | 2 + .../charybdis/3x6/v2/stemcell/config.h | 63 +++++ .../charybdis/3x6/v2/stemcell/halconf.h | 24 ++ .../charybdis/3x6/v2/stemcell/info.json | 6 + .../charybdis/3x6/v2/stemcell/mcuconf.h | 32 +++ .../charybdis/3x6/v2/stemcell/rules.mk | 38 +++ .../charybdis/4x6/blackpill/config.h | 2 +- .../charybdis/4x6/blackpill/halconf.h | 4 +- .../charybdis/4x6/blackpill/mcuconf.h | 16 -- .../charybdis/4x6/blackpill/rules.mk | 2 - .../charybdis/4x6/v1/elitec/config.h | 2 +- .../charybdis/4x6/v2/elitec/config.h | 2 +- .../charybdis/4x6/v2/splinky/config.h | 5 - .../charybdis/4x6/v2/splinky/readme.md | 6 + .../charybdis/4x6/v2/splinky/v2/config.h | 27 +++ .../charybdis/4x6/v2/splinky/v2/rules.mk | 2 + .../charybdis/4x6/v2/splinky/v3/config.h | 27 +++ .../charybdis/4x6/v2/splinky/v3/rules.mk | 2 + .../charybdis/4x6/v2/stemcell/config.h | 63 +++++ .../charybdis/4x6/v2/stemcell/halconf.h | 24 ++ .../charybdis/4x6/v2/stemcell/info.json | 6 + .../charybdis/4x6/v2/stemcell/mcuconf.h | 32 +++ .../charybdis/4x6/v2/stemcell/rules.mk | 37 +++ keyboards/bastardkb/charybdis/readme.md | 19 +- keyboards/bastardkb/dilemma/3x5_2/3x5_2.h | 37 +++ .../dilemma/3x5_2/assembled/config.h | 46 ++++ .../dilemma/3x5_2/assembled/halconf.h | 22 ++ .../dilemma/3x5_2/assembled/info.json | 4 + .../dilemma/3x5_2/assembled/mcuconf.h | 23 ++ .../dilemma/3x5_2/assembled/rules.mk | 34 +++ keyboards/bastardkb/dilemma/3x5_2/info.json | 46 ++++ .../{ => 3x5_2}/keymaps/bstiq/config.h | 0 .../{ => 3x5_2}/keymaps/bstiq/keymap.c | 0 .../keymaps/bstiq/readme.md} | 0 .../{ => 3x5_2}/keymaps/default/keymap.c | 0 .../{ => 3x5_2}/keymaps/drashna/config.h | 0 .../{ => 3x5_2}/keymaps/drashna/keymap.c | 0 .../{ => 3x5_2}/keymaps/drashna/rules.mk | 0 .../dilemma/3x5_2/keymaps/via/config.h | 91 +++++++ .../dilemma/3x5_2/keymaps/via/keymap.c | 229 ++++++++++++++++++ .../dilemma/3x5_2/keymaps/via/readme.md | 67 +++++ .../dilemma/3x5_2/keymaps/via/rules.mk | 1 + .../dilemma/{ => 3x5_2}/splinky/config.h | 2 +- .../dilemma/{ => 3x5_2}/splinky/halconf.h | 0 .../bastardkb/dilemma/3x5_2/splinky/info.json | 3 + .../dilemma/{ => 3x5_2}/splinky/mcuconf.h | 0 .../dilemma/{ => 3x5_2/splinky}/rules.mk | 13 +- keyboards/bastardkb/dilemma/3x5_3/3x5_3.c | 83 +++++++ keyboards/bastardkb/dilemma/3x5_3/3x5_3.h | 39 +++ keyboards/bastardkb/dilemma/3x5_3/config.h | 71 ++++++ keyboards/bastardkb/dilemma/3x5_3/halconf.h | 23 ++ keyboards/bastardkb/dilemma/3x5_3/info.json | 49 ++++ .../dilemma/3x5_3/keymaps/bstiq/config.h | 145 +++++++++++ .../dilemma/3x5_3/keymaps/bstiq/keymap.c | 223 +++++++++++++++++ .../dilemma/3x5_3/keymaps/bstiq/readme.md | 3 + .../dilemma/3x5_3/keymaps/default/keymap.c | 84 +++++++ keyboards/bastardkb/dilemma/3x5_3/mcuconf.h | 26 ++ keyboards/bastardkb/dilemma/3x5_3/readme.md | 5 + keyboards/bastardkb/dilemma/3x5_3/rules.mk | 36 +++ keyboards/bastardkb/dilemma/config.h | 1 + keyboards/bastardkb/dilemma/dilemma.c | 18 +- keyboards/bastardkb/dilemma/dilemma.h | 27 +-- keyboards/bastardkb/dilemma/elitec/info.json | 6 - keyboards/bastardkb/dilemma/elitec/rules.mk | 5 - keyboards/bastardkb/dilemma/info.json | 43 ---- keyboards/bastardkb/dilemma/readme.md | 8 +- keyboards/bastardkb/dilemma/splinky/info.json | 6 - keyboards/bastardkb/dilemma/splinky/rules.mk | 9 - .../bastardkb/scylla/blackpill/halconf.h | 4 +- .../bastardkb/scylla/blackpill/mcuconf.h | 28 +-- keyboards/bastardkb/scylla/readme.md | 25 +- .../bastardkb/scylla/v2/splinky/config.h | 2 - .../bastardkb/scylla/v2/splinky/readme.md | 6 + .../bastardkb/scylla/v2/splinky/v2/config.h | 22 ++ .../bastardkb/scylla/v2/splinky/v2/rules.mk | 2 + .../bastardkb/scylla/v2/splinky/v3/config.h | 22 ++ .../bastardkb/scylla/v2/splinky/v3/rules.mk | 2 + .../bastardkb/scylla/v2/stemcell/config.h | 48 ++++ .../bastardkb/scylla/v2/stemcell/halconf.h | 23 ++ .../bastardkb/scylla/v2/stemcell/info.json | 6 + .../bastardkb/scylla/v2/stemcell/mcuconf.h | 29 +++ .../bastardkb/scylla/v2/stemcell/rules.mk | 32 +++ .../bastardkb/skeletyl/blackpill/halconf.h | 4 +- .../bastardkb/skeletyl/blackpill/mcuconf.h | 28 +-- keyboards/bastardkb/skeletyl/readme.md | 20 +- .../bastardkb/skeletyl/v2/splinky/config.h | 2 - .../bastardkb/skeletyl/v2/splinky/readme.md | 6 + .../bastardkb/skeletyl/v2/splinky/v2/config.h | 22 ++ .../bastardkb/skeletyl/v2/splinky/v2/rules.mk | 2 + .../bastardkb/skeletyl/v2/splinky/v3/config.h | 22 ++ .../bastardkb/skeletyl/v2/splinky/v3/rules.mk | 2 + .../elitec => skeletyl/v2/stemcell}/config.h | 25 +- .../bastardkb/skeletyl/v2/stemcell/halconf.h | 23 ++ .../bastardkb/skeletyl/v2/stemcell/info.json | 6 + .../bastardkb/skeletyl/v2/stemcell/mcuconf.h | 29 +++ .../bastardkb/skeletyl/v2/stemcell/rules.mk | 33 +++ .../bastardkb/tbkmini/blackpill/halconf.h | 4 +- .../bastardkb/tbkmini/blackpill/mcuconf.h | 28 +-- keyboards/bastardkb/tbkmini/readme.md | 20 +- .../bastardkb/tbkmini/v2/splinky/config.h | 2 - .../bastardkb/tbkmini/v2/splinky/readme.md | 6 + .../bastardkb/tbkmini/v2/splinky/v2/config.h | 22 ++ .../bastardkb/tbkmini/v2/splinky/v2/rules.mk | 2 + .../bastardkb/tbkmini/v2/splinky/v3/config.h | 22 ++ .../bastardkb/tbkmini/v2/splinky/v3/rules.mk | 2 + .../bastardkb/tbkmini/v2/stemcell/config.h | 48 ++++ .../bastardkb/tbkmini/v2/stemcell/halconf.h | 23 ++ .../bastardkb/tbkmini/v2/stemcell/info.json | 6 + .../bastardkb/tbkmini/v2/stemcell/mcuconf.h | 29 +++ .../bastardkb/tbkmini/v2/stemcell/rules.mk | 33 +++ 139 files changed, 2793 insertions(+), 301 deletions(-) rename keyboards/bastardkb/charybdis/3x5/keymaps/bstiq/{README.md => readme.md} (100%) create mode 100644 keyboards/bastardkb/charybdis/3x5/v2/splinky/readme.md rename keyboards/bastardkb/{dilemma/splinky/splinky.c => charybdis/3x5/v2/splinky/v2/config.h} (58%) create mode 100644 keyboards/bastardkb/charybdis/3x5/v2/splinky/v2/rules.mk create mode 100644 keyboards/bastardkb/charybdis/3x5/v2/splinky/v3/config.h create mode 100644 keyboards/bastardkb/charybdis/3x5/v2/splinky/v3/rules.mk create mode 100644 keyboards/bastardkb/charybdis/3x5/v2/stemcell/config.h create mode 100644 keyboards/bastardkb/charybdis/3x5/v2/stemcell/halconf.h create mode 100644 keyboards/bastardkb/charybdis/3x5/v2/stemcell/info.json create mode 100644 keyboards/bastardkb/charybdis/3x5/v2/stemcell/mcuconf.h create mode 100644 keyboards/bastardkb/charybdis/3x5/v2/stemcell/rules.mk create mode 100644 keyboards/bastardkb/charybdis/3x6/v2/splinky/readme.md create mode 100644 keyboards/bastardkb/charybdis/3x6/v2/splinky/v2/config.h create mode 100644 keyboards/bastardkb/charybdis/3x6/v2/splinky/v2/rules.mk create mode 100644 keyboards/bastardkb/charybdis/3x6/v2/splinky/v3/config.h create mode 100644 keyboards/bastardkb/charybdis/3x6/v2/splinky/v3/rules.mk create mode 100644 keyboards/bastardkb/charybdis/3x6/v2/stemcell/config.h create mode 100644 keyboards/bastardkb/charybdis/3x6/v2/stemcell/halconf.h create mode 100644 keyboards/bastardkb/charybdis/3x6/v2/stemcell/info.json create mode 100644 keyboards/bastardkb/charybdis/3x6/v2/stemcell/mcuconf.h create mode 100644 keyboards/bastardkb/charybdis/3x6/v2/stemcell/rules.mk create mode 100644 keyboards/bastardkb/charybdis/4x6/v2/splinky/readme.md create mode 100644 keyboards/bastardkb/charybdis/4x6/v2/splinky/v2/config.h create mode 100644 keyboards/bastardkb/charybdis/4x6/v2/splinky/v2/rules.mk create mode 100644 keyboards/bastardkb/charybdis/4x6/v2/splinky/v3/config.h create mode 100644 keyboards/bastardkb/charybdis/4x6/v2/splinky/v3/rules.mk create mode 100644 keyboards/bastardkb/charybdis/4x6/v2/stemcell/config.h create mode 100644 keyboards/bastardkb/charybdis/4x6/v2/stemcell/halconf.h create mode 100644 keyboards/bastardkb/charybdis/4x6/v2/stemcell/info.json create mode 100644 keyboards/bastardkb/charybdis/4x6/v2/stemcell/mcuconf.h create mode 100644 keyboards/bastardkb/charybdis/4x6/v2/stemcell/rules.mk create mode 100644 keyboards/bastardkb/dilemma/3x5_2/3x5_2.h create mode 100644 keyboards/bastardkb/dilemma/3x5_2/assembled/config.h create mode 100644 keyboards/bastardkb/dilemma/3x5_2/assembled/halconf.h create mode 100644 keyboards/bastardkb/dilemma/3x5_2/assembled/info.json create mode 100644 keyboards/bastardkb/dilemma/3x5_2/assembled/mcuconf.h create mode 100644 keyboards/bastardkb/dilemma/3x5_2/assembled/rules.mk create mode 100644 keyboards/bastardkb/dilemma/3x5_2/info.json rename keyboards/bastardkb/dilemma/{ => 3x5_2}/keymaps/bstiq/config.h (100%) rename keyboards/bastardkb/dilemma/{ => 3x5_2}/keymaps/bstiq/keymap.c (100%) rename keyboards/bastardkb/dilemma/{keymaps/bstiq/README.md => 3x5_2/keymaps/bstiq/readme.md} (100%) rename keyboards/bastardkb/dilemma/{ => 3x5_2}/keymaps/default/keymap.c (100%) rename keyboards/bastardkb/dilemma/{ => 3x5_2}/keymaps/drashna/config.h (100%) rename keyboards/bastardkb/dilemma/{ => 3x5_2}/keymaps/drashna/keymap.c (100%) rename keyboards/bastardkb/dilemma/{ => 3x5_2}/keymaps/drashna/rules.mk (100%) create mode 100644 keyboards/bastardkb/dilemma/3x5_2/keymaps/via/config.h create mode 100644 keyboards/bastardkb/dilemma/3x5_2/keymaps/via/keymap.c create mode 100644 keyboards/bastardkb/dilemma/3x5_2/keymaps/via/readme.md create mode 100644 keyboards/bastardkb/dilemma/3x5_2/keymaps/via/rules.mk rename keyboards/bastardkb/dilemma/{ => 3x5_2}/splinky/config.h (99%) rename keyboards/bastardkb/dilemma/{ => 3x5_2}/splinky/halconf.h (100%) create mode 100644 keyboards/bastardkb/dilemma/3x5_2/splinky/info.json rename keyboards/bastardkb/dilemma/{ => 3x5_2}/splinky/mcuconf.h (100%) rename keyboards/bastardkb/dilemma/{ => 3x5_2/splinky}/rules.mk (78%) create mode 100644 keyboards/bastardkb/dilemma/3x5_3/3x5_3.c create mode 100644 keyboards/bastardkb/dilemma/3x5_3/3x5_3.h create mode 100644 keyboards/bastardkb/dilemma/3x5_3/config.h create mode 100644 keyboards/bastardkb/dilemma/3x5_3/halconf.h create mode 100644 keyboards/bastardkb/dilemma/3x5_3/info.json create mode 100644 keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/config.h create mode 100644 keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/keymap.c create mode 100644 keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/readme.md create mode 100644 keyboards/bastardkb/dilemma/3x5_3/keymaps/default/keymap.c create mode 100644 keyboards/bastardkb/dilemma/3x5_3/mcuconf.h create mode 100644 keyboards/bastardkb/dilemma/3x5_3/readme.md create mode 100644 keyboards/bastardkb/dilemma/3x5_3/rules.mk delete mode 100644 keyboards/bastardkb/dilemma/elitec/info.json delete mode 100644 keyboards/bastardkb/dilemma/elitec/rules.mk delete mode 100644 keyboards/bastardkb/dilemma/splinky/info.json delete mode 100644 keyboards/bastardkb/dilemma/splinky/rules.mk create mode 100644 keyboards/bastardkb/scylla/v2/splinky/readme.md create mode 100644 keyboards/bastardkb/scylla/v2/splinky/v2/config.h create mode 100644 keyboards/bastardkb/scylla/v2/splinky/v2/rules.mk create mode 100644 keyboards/bastardkb/scylla/v2/splinky/v3/config.h create mode 100644 keyboards/bastardkb/scylla/v2/splinky/v3/rules.mk create mode 100644 keyboards/bastardkb/scylla/v2/stemcell/config.h create mode 100644 keyboards/bastardkb/scylla/v2/stemcell/halconf.h create mode 100644 keyboards/bastardkb/scylla/v2/stemcell/info.json create mode 100644 keyboards/bastardkb/scylla/v2/stemcell/mcuconf.h create mode 100644 keyboards/bastardkb/scylla/v2/stemcell/rules.mk create mode 100644 keyboards/bastardkb/skeletyl/v2/splinky/readme.md create mode 100644 keyboards/bastardkb/skeletyl/v2/splinky/v2/config.h create mode 100644 keyboards/bastardkb/skeletyl/v2/splinky/v2/rules.mk create mode 100644 keyboards/bastardkb/skeletyl/v2/splinky/v3/config.h create mode 100644 keyboards/bastardkb/skeletyl/v2/splinky/v3/rules.mk rename keyboards/bastardkb/{dilemma/elitec => skeletyl/v2/stemcell}/config.h (69%) create mode 100644 keyboards/bastardkb/skeletyl/v2/stemcell/halconf.h create mode 100644 keyboards/bastardkb/skeletyl/v2/stemcell/info.json create mode 100644 keyboards/bastardkb/skeletyl/v2/stemcell/mcuconf.h create mode 100644 keyboards/bastardkb/skeletyl/v2/stemcell/rules.mk create mode 100644 keyboards/bastardkb/tbkmini/v2/splinky/readme.md create mode 100644 keyboards/bastardkb/tbkmini/v2/splinky/v2/config.h create mode 100644 keyboards/bastardkb/tbkmini/v2/splinky/v2/rules.mk create mode 100644 keyboards/bastardkb/tbkmini/v2/splinky/v3/config.h create mode 100644 keyboards/bastardkb/tbkmini/v2/splinky/v3/rules.mk create mode 100644 keyboards/bastardkb/tbkmini/v2/stemcell/config.h create mode 100644 keyboards/bastardkb/tbkmini/v2/stemcell/halconf.h create mode 100644 keyboards/bastardkb/tbkmini/v2/stemcell/info.json create mode 100644 keyboards/bastardkb/tbkmini/v2/stemcell/mcuconf.h create mode 100644 keyboards/bastardkb/tbkmini/v2/stemcell/rules.mk diff --git a/keyboards/bastardkb/charybdis/3x5/blackpill/config.h b/keyboards/bastardkb/charybdis/3x5/blackpill/config.h index ddd5e83318b..ef99f3b6313 100644 --- a/keyboards/bastardkb/charybdis/3x5/blackpill/config.h +++ b/keyboards/bastardkb/charybdis/3x5/blackpill/config.h @@ -58,5 +58,5 @@ #define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4 /* PMW3360 settings. */ -#define PMW33XX_CS_PIN B14 +#define POINTING_DEVICE_CS_PIN B14 #define PMW33XX_CS_DIVISOR 64 diff --git a/keyboards/bastardkb/charybdis/3x5/blackpill/halconf.h b/keyboards/bastardkb/charybdis/3x5/blackpill/halconf.h index a89dff0cd33..0e5caa9f9a9 100644 --- a/keyboards/bastardkb/charybdis/3x5/blackpill/halconf.h +++ b/keyboards/bastardkb/charybdis/3x5/blackpill/halconf.h @@ -1,4 +1,4 @@ -/* +/** * Copyright 2020 Nick Brassel (tzarc) * Copyright 2021 Charly Delay (@0xcharly) * @@ -20,10 +20,8 @@ #define HAL_USE_PWM TRUE #define HAL_USE_SERIAL TRUE -//#define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE #define SPI_USE_WAIT TRUE #define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -//#define HAL_USE_GPT TRUE #include_next "halconf.h" diff --git a/keyboards/bastardkb/charybdis/3x5/blackpill/mcuconf.h b/keyboards/bastardkb/charybdis/3x5/blackpill/mcuconf.h index 1615d1bf46d..3b9c9056f8c 100644 --- a/keyboards/bastardkb/charybdis/3x5/blackpill/mcuconf.h +++ b/keyboards/bastardkb/charybdis/3x5/blackpill/mcuconf.h @@ -21,14 +21,6 @@ #include_next "mcuconf.h" -#undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE - -#undef STM32_I2C_I2C1_RX_DMA_STREAM -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) -#undef STM32_I2C_I2C1_TX_DMA_STREAM -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1) - #undef STM32_PWM_USE_TIM2 #define STM32_PWM_USE_TIM2 TRUE @@ -46,14 +38,6 @@ #undef STM32_SERIAL_USE_USART1 #define STM32_SERIAL_USE_USART1 TRUE -// #undef STM32_SERIAL_USE_USART2 -// #define STM32_SERIAL_USE_USART2 TRUE - -// #undef STM32_UART_USART2_RX_DMA_STREAM -// #define STM32_UART_USART2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -// #undef STM32_UART_USART2_TX_DMA_STREAM -// #define STM32_UART_USART2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) - #undef STM32_GPT_USE_TIM4 #define STM32_GPT_USE_TIM4 TRUE diff --git a/keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk b/keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk index 0f732c2cbd2..a21fd9e7ff8 100644 --- a/keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk +++ b/keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk @@ -24,10 +24,8 @@ RGBLIGHT_SUPPORTED = yes # RGB underglow is supported, but not enabled by def RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality RGB_MATRIX_DRIVER = WS2812 -# Charybdis nano is a split 3x5 keyboard with a maximum of 3 thumb keys (2 on -# the trackball side). SPLIT_KEYBOARD = yes -LAYOUTS = split_3x5_3 # Support community layout, in particular Manna-Harbour's Miryoku layout +LAYOUTS = split_3x5_3 POINTING_DEVICE_ENABLE = yes # Enable trackball POINTING_DEVICE_DRIVER = pmw3360 diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/bstiq/README.md b/keyboards/bastardkb/charybdis/3x5/keymaps/bstiq/readme.md similarity index 100% rename from keyboards/bastardkb/charybdis/3x5/keymaps/bstiq/README.md rename to keyboards/bastardkb/charybdis/3x5/keymaps/bstiq/readme.md diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/default/keymap.c b/keyboards/bastardkb/charybdis/3x5/keymaps/default/keymap.c index 148f0267400..aa7f1bb329c 100644 --- a/keyboards/bastardkb/charybdis/3x5/keymaps/default/keymap.c +++ b/keyboards/bastardkb/charybdis/3x5/keymaps/default/keymap.c @@ -14,6 +14,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ + #include QMK_KEYBOARD_H enum charybdis_keymap_layers { diff --git a/keyboards/bastardkb/charybdis/3x5/v1/elitec/config.h b/keyboards/bastardkb/charybdis/3x5/v1/elitec/config.h index 3e3d95174ce..8a9d40ac639 100644 --- a/keyboards/bastardkb/charybdis/3x5/v1/elitec/config.h +++ b/keyboards/bastardkb/charybdis/3x5/v1/elitec/config.h @@ -39,4 +39,4 @@ #define RGB_DI_PIN D3 /* PMW3360 settings. */ -#define PMW33XX_CS_PIN B0 +#define POINTING_DEVICE_CS_PIN B0 diff --git a/keyboards/bastardkb/charybdis/3x5/v2/elitec/config.h b/keyboards/bastardkb/charybdis/3x5/v2/elitec/config.h index 5c11fa31458..2667ee9e7e4 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/elitec/config.h +++ b/keyboards/bastardkb/charybdis/3x5/v2/elitec/config.h @@ -33,4 +33,4 @@ #define RGB_DI_PIN D3 /* PMW3360 settings. */ -#define PMW33XX_CS_PIN F0 +#define POINTING_DEVICE_CS_PIN F0 diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky/config.h b/keyboards/bastardkb/charybdis/3x5/v2/splinky/config.h index 2929d3dd1e7..d4688aef92e 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/splinky/config.h +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky/config.h @@ -20,8 +20,6 @@ /* Key matrix configuration. */ #define MATRIX_ROW_PINS \ { GP26, GP5, GP4, GP9 } -#define MATRIX_COL_PINS \ - { GP28, GP15, GP6, GP7, GP8 } /* Handedness. */ #define MASTER_RIGHT @@ -39,12 +37,74 @@ /* SPI & PMW3360 settings. */ #define SPI_DRIVER SPID0 -#define SPI_SCK_PIN GP18 -#define SPI_MOSI_PIN GP19 #define SPI_MISO_PIN GP20 -#define PMW33XX_CS_PIN GP14 /* Reset. */ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U + +/** RGB Matrix. */ + +#ifdef RGB_MATRIX_ENABLE +// Enable all animations on ARM boards since they have plenty of memory +// available for it. +# define ENABLE_RGB_MATRIX_ALPHAS_MODS +# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_BREATHING +# define ENABLE_RGB_MATRIX_BAND_SAT +# define ENABLE_RGB_MATRIX_BAND_VAL +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +# 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_RAINBOW_PINWHEELS +# define ENABLE_RGB_MATRIX_RAINDROPS +# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +# define ENABLE_RGB_MATRIX_HUE_BREATHING +# define ENABLE_RGB_MATRIX_HUE_PENDULUM +# define ENABLE_RGB_MATRIX_HUE_WAVE +# define ENABLE_RGB_MATRIX_TYPING_HEATMAP +# define ENABLE_RGB_MATRIX_DIGITAL_RAIN +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +# define ENABLE_RGB_MATRIX_SPLASH +# define ENABLE_RGB_MATRIX_MULTISPLASH +# define ENABLE_RGB_MATRIX_SOLID_SPLASH +# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH + +// Limit maximum brightness to keep power consumption reasonable, and avoid +// disconnects. +# undef RGB_MATRIX_MAXIMUM_BRIGHTNESS +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 64 + +// Rainbow swirl as startup mode. +# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT + +// Slow swirl at startup. +# define RGB_MATRIX_STARTUP_SPD 32 + +// Startup values. +# define RGB_MATRIX_STARTUP_HUE 0 +# define RGB_MATRIX_STARTUP_SAT 255 +# define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS +# define RGB_MATRIX_STARTUP_HSV RGB_MATRIX_STARTUP_HUE, RGB_MATRIX_STARTUP_SAT, RGB_MATRIX_STARTUP_VAL +#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky/readme.md b/keyboards/bastardkb/charybdis/3x5/v2/splinky/readme.md new file mode 100644 index 00000000000..22df77bbaa8 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky/readme.md @@ -0,0 +1,6 @@ +# Splinky controller + +The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040. + +See https://github.com/plut0nium/0xB2/#releases to figure out the right version +for you (v2 and v3) supported. diff --git a/keyboards/bastardkb/dilemma/splinky/splinky.c b/keyboards/bastardkb/charybdis/3x5/v2/splinky/v2/config.h similarity index 58% rename from keyboards/bastardkb/dilemma/splinky/splinky.c rename to keyboards/bastardkb/charybdis/3x5/v2/splinky/v2/config.h index 0100ae06ae4..70b65a97c7e 100644 --- a/keyboards/bastardkb/dilemma/splinky/splinky.c +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky/v2/config.h @@ -15,19 +15,13 @@ * along with this program. If not, see . */ -#include "quantum.h" +#pragma once -// Forward declare RP2040 SDK declaration. -void gpio_init(uint gpio); +/* Key matrix configuration. */ +#define MATRIX_COL_PINS \ + { GP28, GP15, GP6, GP7, GP8 } -void keyboard_pre_init_kb(void) { - // Ensures that GP26 through GP29 are initialized as digital inputs (as - // opposed to analog inputs). These GPIOs are shared with A0 through A3, - // respectively. On RP2040-B2 and later, the digital inputs are disabled by - // default (see RP2040-E6). - gpio_init(GP26); - gpio_init(GP27); - gpio_init(GP28); - gpio_init(GP29); - keyboard_pre_init_user(); -} +/* SPI & PMW3360 settings. */ +#define SPI_SCK_PIN GP18 +#define SPI_MOSI_PIN GP19 +#define POINTING_DEVICE_CS_PIN GP14 diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky/v2/rules.mk b/keyboards/bastardkb/charybdis/3x5/v2/splinky/v2/rules.mk new file mode 100644 index 00000000000..c9c50319dbb --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky/v2/rules.mk @@ -0,0 +1,2 @@ +# Intentionally blank so that QMK detects this folder as a valid keyboard +# parameter. diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky/v3/config.h b/keyboards/bastardkb/charybdis/3x5/v2/splinky/v3/config.h new file mode 100644 index 00000000000..d53c5a3c41d --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky/v3/config.h @@ -0,0 +1,27 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 + +/* Key matrix configuration. */ +#define MATRIX_COL_PINS \ + { GP28, GP21, GP6, GP7, GP8 } + +/* SPI & PMW3360 settings. */ +#define SPI_SCK_PIN GP22 +#define SPI_MOSI_PIN GP23 +#define POINTING_DEVICE_CS_PIN GP16 diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky/v3/rules.mk b/keyboards/bastardkb/charybdis/3x5/v2/splinky/v3/rules.mk new file mode 100644 index 00000000000..c9c50319dbb --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky/v3/rules.mk @@ -0,0 +1,2 @@ +# Intentionally blank so that QMK detects this folder as a valid keyboard +# parameter. diff --git a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/config.h b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/config.h new file mode 100644 index 00000000000..a06859b2154 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/config.h @@ -0,0 +1,63 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 + +/* Key matrix configuration. */ +#define MATRIX_ROW_PINS \ + { F7, C6, D4, B5 } +#define MATRIX_COL_PINS \ + { F5, B6, D7, E6, B4 } + +/* Handedness. */ +#define MASTER_RIGHT + +// To use the handedness pin, resistors need to be installed on the adapter PCB. +// If so, uncomment the following code, and undefine MASTER_RIGHT above. +// #define A0 PAL_LINE(GPIOA, 0) +// #define SPLIT_HAND_PIN A0 +// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* serial.c configuration (for split keyboard). */ +#define SOFT_SERIAL_PIN D2 + +/* RGB settings. */ +#define RGB_DI_PIN D3 +#define WS2812_PWM_DRIVER PWMD2 +#define WS2812_PWM_CHANNEL 4 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 +#define WS2812_DMA_CHANNEL 3 + +/* CRC. */ +#define CRC8_USE_TABLE +#define CRC8_OPTIMIZE_SPEED + +/* SPI config for pmw3360 sensor. */ +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN B1 +#define SPI_SCK_PAL_MODE 5 +#define SPI_MOSI_PIN B2 +#define SPI_MOSI_PAL_MODE 5 +#define SPI_MISO_PIN B3 +#define SPI_MISO_PAL_MODE 5 + +/* PMW3360 settings. */ +#define A1 PAL_LINE(GPIOA, 1) +#define POINTING_DEVICE_CS_PIN A1 +#define PMW3360_CS_MODE 3 +#define PMW3360_CS_DIVISOR 64 diff --git a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/halconf.h b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/halconf.h new file mode 100644 index 00000000000..0397de50b7b --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/halconf.h @@ -0,0 +1,24 @@ +/* + * Copyright 2021 Charly Delay (@0xcharly) + * + * 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_PWM TRUE +#define HAL_USE_SERIAL TRUE +#define HAL_USE_SPI TRUE + +#include_next diff --git a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/info.json b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/info.json new file mode 100644 index 00000000000..2aee1fe40b8 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/info.json @@ -0,0 +1,6 @@ +{ + "keyboard_name": "Charybdis Nano (3x5) STeMCell", + "usb": { + "device_version": "2.0.0" + } +} diff --git a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/mcuconf.h b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/mcuconf.h new file mode 100644 index 00000000000..17a46d8f95e --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/mcuconf.h @@ -0,0 +1,32 @@ +/* + * Copyright 2021 Charly Delay (@0xcharly) + * + * 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 STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE + +#undef STM32_SERIAL_USE_USART1 +#define STM32_SERIAL_USE_USART1 FALSE + +#undef STM32_PWM_USE_TIM2 +#define STM32_PWM_USE_TIM2 TRUE + +#undef STM32_ST_USE_TIMER +#define STM32_ST_USE_TIMER 5 diff --git a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/rules.mk b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/rules.mk new file mode 100644 index 00000000000..e4a9ce289c3 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/rules.mk @@ -0,0 +1,38 @@ +# MCU name +MCU = STM32F411 + +# Bootloader selection +BOOTLOADER = stm32-dfu +CONVERT_TO = stemcell + +# 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 = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +AUDIO_SUPPORTED = no # Audio is not supported +RGB_MATRIX_SUPPORTED = yes # RGB matrix is supported and enabled by default +RGBLIGHT_SUPPORTED = yes # RGB underglow is supported, but not enabled by default +RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality +RGB_MATRIX_DRIVER = WS2812 + +SPLIT_KEYBOARD = yes +LAYOUTS = split_3x5_3 + +POINTING_DEVICE_ENABLE = yes # Enable trackball +POINTING_DEVICE_DRIVER = pmw3360 +MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint +KEYBOARD_SHARED_EP = yes + +SERIAL_DRIVER = usart +WS2812_DRIVER = pwm + +DEBOUNCE_TYPE = asym_eager_defer_pk diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/config.h b/keyboards/bastardkb/charybdis/3x6/blackpill/config.h index 1b90a3076b4..93d897a4feb 100644 --- a/keyboards/bastardkb/charybdis/3x6/blackpill/config.h +++ b/keyboards/bastardkb/charybdis/3x6/blackpill/config.h @@ -56,5 +56,5 @@ #define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4 /* PMW3360 settings. */ -#define PMW33XX_CS_PIN B14 +#define POINTING_DEVICE_CS_PIN B14 #define PMW33XX_CS_DIVISOR 64 diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/halconf.h b/keyboards/bastardkb/charybdis/3x6/blackpill/halconf.h index 42d74999074..78885b68708 100644 --- a/keyboards/bastardkb/charybdis/3x6/blackpill/halconf.h +++ b/keyboards/bastardkb/charybdis/3x6/blackpill/halconf.h @@ -1,4 +1,5 @@ -/* +/** + * Copyright 2020 Nick Brassel (tzarc) * Copyright 2022 Charly Delay (@0xcharly) * * This program is free software: you can redistribute it and/or modify diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/mcuconf.h b/keyboards/bastardkb/charybdis/3x6/blackpill/mcuconf.h index 26645d8c1a4..7adcb837deb 100644 --- a/keyboards/bastardkb/charybdis/3x6/blackpill/mcuconf.h +++ b/keyboards/bastardkb/charybdis/3x6/blackpill/mcuconf.h @@ -1,4 +1,6 @@ /* + * Copyright 2020 Nick Brassel (tzarc) + * Copyright 2021 Stefan Kerkmann (@KarlK90) * Copyright 2022 Charly Delay (@0xcharly) * * This program is free software: you can redistribute it and/or modify diff --git a/keyboards/bastardkb/charybdis/3x6/v1/elitec/config.h b/keyboards/bastardkb/charybdis/3x6/v1/elitec/config.h index 05746cf17ef..fa1a1c01f7e 100644 --- a/keyboards/bastardkb/charybdis/3x6/v1/elitec/config.h +++ b/keyboards/bastardkb/charybdis/3x6/v1/elitec/config.h @@ -38,4 +38,4 @@ #define RGB_DI_PIN D3 /* PMW3360 settings. */ -#define PMW33XX_CS_PIN B0 +#define POINTING_DEVICE_CS_PIN B0 diff --git a/keyboards/bastardkb/charybdis/3x6/v2/elitec/config.h b/keyboards/bastardkb/charybdis/3x6/v2/elitec/config.h index edd167446b8..e9d45e6796f 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/elitec/config.h +++ b/keyboards/bastardkb/charybdis/3x6/v2/elitec/config.h @@ -33,4 +33,4 @@ #define RGB_DI_PIN D3 /* PMW3360 settings. */ -#define PMW33XX_CS_PIN F0 +#define POINTING_DEVICE_CS_PIN F0 diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky/config.h b/keyboards/bastardkb/charybdis/3x6/v2/splinky/config.h index 9c4ced817a4..e68bf722e4e 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/splinky/config.h +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky/config.h @@ -20,8 +20,6 @@ /* Key matrix configuration. */ #define MATRIX_ROW_PINS \ { GP26, GP5, GP4, GP9 } -#define MATRIX_COL_PINS \ - { GP27, GP28, GP15, GP6, GP7, GP8 } /* Handedness. */ #define MASTER_RIGHT @@ -39,10 +37,7 @@ /* SPI & PMW3360 settings. */ #define SPI_DRIVER SPID0 -#define SPI_SCK_PIN GP18 -#define SPI_MOSI_PIN GP19 #define SPI_MISO_PIN GP20 -#define PMW33XX_CS_PIN GP14 /* Reset. */ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky/readme.md b/keyboards/bastardkb/charybdis/3x6/v2/splinky/readme.md new file mode 100644 index 00000000000..22df77bbaa8 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky/readme.md @@ -0,0 +1,6 @@ +# Splinky controller + +The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040. + +See https://github.com/plut0nium/0xB2/#releases to figure out the right version +for you (v2 and v3) supported. diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky/v2/config.h b/keyboards/bastardkb/charybdis/3x6/v2/splinky/v2/config.h new file mode 100644 index 00000000000..7b7d94b3207 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky/v2/config.h @@ -0,0 +1,27 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 + +/* Key matrix configuration. */ +#define MATRIX_COL_PINS \ + { GP27, GP28, GP15, GP6, GP7, GP8 } + +/* SPI & PMW3360 settings. */ +#define SPI_SCK_PIN GP18 +#define SPI_MOSI_PIN GP19 +#define POINTING_DEVICE_CS_PIN GP14 diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky/v2/rules.mk b/keyboards/bastardkb/charybdis/3x6/v2/splinky/v2/rules.mk new file mode 100644 index 00000000000..c9c50319dbb --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky/v2/rules.mk @@ -0,0 +1,2 @@ +# Intentionally blank so that QMK detects this folder as a valid keyboard +# parameter. diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky/v3/config.h b/keyboards/bastardkb/charybdis/3x6/v2/splinky/v3/config.h new file mode 100644 index 00000000000..0e9f2257f02 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky/v3/config.h @@ -0,0 +1,27 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 + +/* Key matrix configuration. */ +#define MATRIX_COL_PINS \ + { GP27, GP28, GP21, GP6, GP7, GP8 } + +/* SPI & PMW3360 settings. */ +#define SPI_SCK_PIN GP22 +#define SPI_MOSI_PIN GP23 +#define POINTING_DEVICE_CS_PIN GP16 diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky/v3/rules.mk b/keyboards/bastardkb/charybdis/3x6/v2/splinky/v3/rules.mk new file mode 100644 index 00000000000..c9c50319dbb --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky/v3/rules.mk @@ -0,0 +1,2 @@ +# Intentionally blank so that QMK detects this folder as a valid keyboard +# parameter. diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/config.h b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/config.h new file mode 100644 index 00000000000..81c7e737a7c --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/config.h @@ -0,0 +1,63 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 + +/* Key matrix configuration. */ +#define MATRIX_ROW_PINS \ + { F7, C6, D4, B5 } +#define MATRIX_COL_PINS \ + { F6, F5, B6, D7, E6, B4 } + +/* Handedness. */ +#define MASTER_RIGHT + +// To use the handedness pin, resistors need to be installed on the adapter PCB. +// If so, uncomment the following code, and undefine MASTER_RIGHT above. +// #define A0 PAL_LINE(GPIOA, 0) +// #define SPLIT_HAND_PIN A0 +// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* serial.c configuration (for split keyboard). */ +#define SOFT_SERIAL_PIN D2 + +/* RGB settings. */ +#define RGB_DI_PIN D3 +#define WS2812_PWM_DRIVER PWMD2 +#define WS2812_PWM_CHANNEL 4 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 +#define WS2812_DMA_CHANNEL 3 + +/* CRC. */ +#define CRC8_USE_TABLE +#define CRC8_OPTIMIZE_SPEED + +/* SPI config for pmw3360 sensor. */ +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN B1 +#define SPI_SCK_PAL_MODE 5 +#define SPI_MOSI_PIN B2 +#define SPI_MOSI_PAL_MODE 5 +#define SPI_MISO_PIN B3 +#define SPI_MISO_PAL_MODE 5 + +/* PMW3360 settings. */ +#define A1 PAL_LINE(GPIOA, 1) +#define POINTING_DEVICE_CS_PIN A1 +#define PMW3360_CS_MODE 3 +#define PMW3360_CS_DIVISOR 64 diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/halconf.h b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/halconf.h new file mode 100644 index 00000000000..8141e0cf4b4 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/halconf.h @@ -0,0 +1,24 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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_PWM TRUE +#define HAL_USE_SERIAL TRUE +#define HAL_USE_SPI TRUE + +#include_next diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/info.json b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/info.json new file mode 100644 index 00000000000..516eb7dde31 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/info.json @@ -0,0 +1,6 @@ +{ + "keyboard_name": "Charybdis Mini (3x6) STeMCell", + "usb": { + "device_version": "2.0.0" + } +} diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/mcuconf.h b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/mcuconf.h new file mode 100644 index 00000000000..1a3c4433dbd --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/mcuconf.h @@ -0,0 +1,32 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE + +#undef STM32_SERIAL_USE_USART1 +#define STM32_SERIAL_USE_USART1 FALSE + +#undef STM32_PWM_USE_TIM2 +#define STM32_PWM_USE_TIM2 TRUE + +#undef STM32_ST_USE_TIMER +#define STM32_ST_USE_TIMER 5 diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/rules.mk b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/rules.mk new file mode 100644 index 00000000000..94cd8a0deb4 --- /dev/null +++ b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/rules.mk @@ -0,0 +1,38 @@ +# MCU name +MCU = STM32F411 + +# Bootloader selection +BOOTLOADER = stm32-dfu +CONVERT_TO = stemcell + +# 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 = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +AUDIO_SUPPORTED = no # Audio is not supported +RGB_MATRIX_SUPPORTED = yes # RGB matrix is supported and enabled by default +RGBLIGHT_SUPPORTED = yes # RGB underglow is supported, but not enabled by default +RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality +RGB_MATRIX_DRIVER = WS2812 + +SPLIT_KEYBOARD = yes +LAYOUTS = split_3x6_3 + +POINTING_DEVICE_ENABLE = yes # Enable trackball +POINTING_DEVICE_DRIVER = pmw3360 +MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint +KEYBOARD_SHARED_EP = yes + +SERIAL_DRIVER = usart +WS2812_DRIVER = pwm + +DEBOUNCE_TYPE = asym_eager_defer_pk diff --git a/keyboards/bastardkb/charybdis/4x6/blackpill/config.h b/keyboards/bastardkb/charybdis/4x6/blackpill/config.h index 2514a52fb00..e37df487fd8 100644 --- a/keyboards/bastardkb/charybdis/4x6/blackpill/config.h +++ b/keyboards/bastardkb/charybdis/4x6/blackpill/config.h @@ -58,5 +58,5 @@ #define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4 /* PMW3360 settings. */ -#define PMW33XX_CS_PIN B14 +#define POINTING_DEVICE_CS_PIN B14 #define PMW33XX_CS_DIVISOR 64 diff --git a/keyboards/bastardkb/charybdis/4x6/blackpill/halconf.h b/keyboards/bastardkb/charybdis/4x6/blackpill/halconf.h index a89dff0cd33..0e5caa9f9a9 100644 --- a/keyboards/bastardkb/charybdis/4x6/blackpill/halconf.h +++ b/keyboards/bastardkb/charybdis/4x6/blackpill/halconf.h @@ -1,4 +1,4 @@ -/* +/** * Copyright 2020 Nick Brassel (tzarc) * Copyright 2021 Charly Delay (@0xcharly) * @@ -20,10 +20,8 @@ #define HAL_USE_PWM TRUE #define HAL_USE_SERIAL TRUE -//#define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE #define SPI_USE_WAIT TRUE #define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -//#define HAL_USE_GPT TRUE #include_next "halconf.h" diff --git a/keyboards/bastardkb/charybdis/4x6/blackpill/mcuconf.h b/keyboards/bastardkb/charybdis/4x6/blackpill/mcuconf.h index 1615d1bf46d..3b9c9056f8c 100644 --- a/keyboards/bastardkb/charybdis/4x6/blackpill/mcuconf.h +++ b/keyboards/bastardkb/charybdis/4x6/blackpill/mcuconf.h @@ -21,14 +21,6 @@ #include_next "mcuconf.h" -#undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE - -#undef STM32_I2C_I2C1_RX_DMA_STREAM -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) -#undef STM32_I2C_I2C1_TX_DMA_STREAM -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1) - #undef STM32_PWM_USE_TIM2 #define STM32_PWM_USE_TIM2 TRUE @@ -46,14 +38,6 @@ #undef STM32_SERIAL_USE_USART1 #define STM32_SERIAL_USE_USART1 TRUE -// #undef STM32_SERIAL_USE_USART2 -// #define STM32_SERIAL_USE_USART2 TRUE - -// #undef STM32_UART_USART2_RX_DMA_STREAM -// #define STM32_UART_USART2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -// #undef STM32_UART_USART2_TX_DMA_STREAM -// #define STM32_UART_USART2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) - #undef STM32_GPT_USE_TIM4 #define STM32_GPT_USE_TIM4 TRUE diff --git a/keyboards/bastardkb/charybdis/4x6/blackpill/rules.mk b/keyboards/bastardkb/charybdis/4x6/blackpill/rules.mk index 6123ec58b7f..9015f3a8b2c 100644 --- a/keyboards/bastardkb/charybdis/4x6/blackpill/rules.mk +++ b/keyboards/bastardkb/charybdis/4x6/blackpill/rules.mk @@ -24,8 +24,6 @@ RGBLIGHT_SUPPORTED = yes # RGB underglow is supported, but not enabled by def RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality RGB_MATRIX_DRIVER = WS2812 -# Charybdis is a split 4x6 keyboard with a maximum of 5 thumb keys (3 on the -# trackball side). SPLIT_KEYBOARD = yes POINTING_DEVICE_ENABLE = yes # Enable trackball diff --git a/keyboards/bastardkb/charybdis/4x6/v1/elitec/config.h b/keyboards/bastardkb/charybdis/4x6/v1/elitec/config.h index 15044ef645d..710c4c35876 100644 --- a/keyboards/bastardkb/charybdis/4x6/v1/elitec/config.h +++ b/keyboards/bastardkb/charybdis/4x6/v1/elitec/config.h @@ -39,4 +39,4 @@ #define RGB_DI_PIN D3 /* PMW3360 settings. */ -#define PMW33XX_CS_PIN B0 +#define POINTING_DEVICE_CS_PIN B0 diff --git a/keyboards/bastardkb/charybdis/4x6/v2/elitec/config.h b/keyboards/bastardkb/charybdis/4x6/v2/elitec/config.h index 891e511ccb0..692a28b7bea 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/elitec/config.h +++ b/keyboards/bastardkb/charybdis/4x6/v2/elitec/config.h @@ -33,4 +33,4 @@ #define RGB_DI_PIN D3 /* PMW3360 settings. */ -#define PMW33XX_CS_PIN F0 +#define POINTING_DEVICE_CS_PIN F0 diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky/config.h b/keyboards/bastardkb/charybdis/4x6/v2/splinky/config.h index e17ec49726f..010de7c4807 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/splinky/config.h +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky/config.h @@ -20,8 +20,6 @@ /* Key matrix configuration. */ #define MATRIX_ROW_PINS \ { GP29, GP26, GP5, GP4, GP9 } -#define MATRIX_COL_PINS \ - { GP27, GP28, GP15, GP6, GP7, GP8 } /* Handedness. */ #define MASTER_RIGHT @@ -39,10 +37,7 @@ /* SPI & PMW3360 settings. */ #define SPI_DRIVER SPID0 -#define SPI_SCK_PIN GP18 -#define SPI_MOSI_PIN GP19 #define SPI_MISO_PIN GP20 -#define PMW33XX_CS_PIN GP14 /* Reset. */ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky/readme.md b/keyboards/bastardkb/charybdis/4x6/v2/splinky/readme.md new file mode 100644 index 00000000000..22df77bbaa8 --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky/readme.md @@ -0,0 +1,6 @@ +# Splinky controller + +The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040. + +See https://github.com/plut0nium/0xB2/#releases to figure out the right version +for you (v2 and v3) supported. diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky/v2/config.h b/keyboards/bastardkb/charybdis/4x6/v2/splinky/v2/config.h new file mode 100644 index 00000000000..7b7d94b3207 --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky/v2/config.h @@ -0,0 +1,27 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 + +/* Key matrix configuration. */ +#define MATRIX_COL_PINS \ + { GP27, GP28, GP15, GP6, GP7, GP8 } + +/* SPI & PMW3360 settings. */ +#define SPI_SCK_PIN GP18 +#define SPI_MOSI_PIN GP19 +#define POINTING_DEVICE_CS_PIN GP14 diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky/v2/rules.mk b/keyboards/bastardkb/charybdis/4x6/v2/splinky/v2/rules.mk new file mode 100644 index 00000000000..c9c50319dbb --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky/v2/rules.mk @@ -0,0 +1,2 @@ +# Intentionally blank so that QMK detects this folder as a valid keyboard +# parameter. diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky/v3/config.h b/keyboards/bastardkb/charybdis/4x6/v2/splinky/v3/config.h new file mode 100644 index 00000000000..0e9f2257f02 --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky/v3/config.h @@ -0,0 +1,27 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 + +/* Key matrix configuration. */ +#define MATRIX_COL_PINS \ + { GP27, GP28, GP21, GP6, GP7, GP8 } + +/* SPI & PMW3360 settings. */ +#define SPI_SCK_PIN GP22 +#define SPI_MOSI_PIN GP23 +#define POINTING_DEVICE_CS_PIN GP16 diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky/v3/rules.mk b/keyboards/bastardkb/charybdis/4x6/v2/splinky/v3/rules.mk new file mode 100644 index 00000000000..c9c50319dbb --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky/v3/rules.mk @@ -0,0 +1,2 @@ +# Intentionally blank so that QMK detects this folder as a valid keyboard +# parameter. diff --git a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/config.h b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/config.h new file mode 100644 index 00000000000..b1b432c3306 --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/config.h @@ -0,0 +1,63 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 + +/* Key matrix configuration. */ +#define MATRIX_ROW_PINS \ + { F4, F7, C6, D4, B5 } +#define MATRIX_COL_PINS \ + { F6, F5, B6, D7, E6, B4 } + +/* Handedness. */ +#define MASTER_RIGHT + +// To use the handedness pin, resistors need to be installed on the adapter PCB. +// If so, uncomment the following code, and undefine MASTER_RIGHT above. +// #define A0 PAL_LINE(GPIOA, 0) +// #define SPLIT_HAND_PIN A0 +// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* serial.c configuration (for split keyboard). */ +#define SOFT_SERIAL_PIN D2 + +/* RGB settings. */ +#define RGB_DI_PIN D3 +#define WS2812_PWM_DRIVER PWMD2 +#define WS2812_PWM_CHANNEL 4 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 +#define WS2812_DMA_CHANNEL 3 + +/* CRC. */ +#define CRC8_USE_TABLE +#define CRC8_OPTIMIZE_SPEED + +/* SPI config for pmw3360 sensor. */ +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN B1 +#define SPI_SCK_PAL_MODE 5 +#define SPI_MOSI_PIN B2 +#define SPI_MOSI_PAL_MODE 5 +#define SPI_MISO_PIN B3 +#define SPI_MISO_PAL_MODE 5 + +/* PMW3360 settings. */ +#define A1 PAL_LINE(GPIOA, 1) +#define POINTING_DEVICE_CS_PIN A1 +#define PMW3360_CS_MODE 3 +#define PMW3360_CS_DIVISOR 64 diff --git a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/halconf.h b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/halconf.h new file mode 100644 index 00000000000..0397de50b7b --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/halconf.h @@ -0,0 +1,24 @@ +/* + * Copyright 2021 Charly Delay (@0xcharly) + * + * 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_PWM TRUE +#define HAL_USE_SERIAL TRUE +#define HAL_USE_SPI TRUE + +#include_next diff --git a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/info.json b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/info.json new file mode 100644 index 00000000000..7d687319b39 --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/info.json @@ -0,0 +1,6 @@ +{ + "keyboard_name": "Charybdis (4x6) STeMCell", + "usb": { + "device_version": "2.0.0" + } +} diff --git a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/mcuconf.h b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/mcuconf.h new file mode 100644 index 00000000000..17a46d8f95e --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/mcuconf.h @@ -0,0 +1,32 @@ +/* + * Copyright 2021 Charly Delay (@0xcharly) + * + * 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 STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE + +#undef STM32_SERIAL_USE_USART1 +#define STM32_SERIAL_USE_USART1 FALSE + +#undef STM32_PWM_USE_TIM2 +#define STM32_PWM_USE_TIM2 TRUE + +#undef STM32_ST_USE_TIMER +#define STM32_ST_USE_TIMER 5 diff --git a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/rules.mk b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/rules.mk new file mode 100644 index 00000000000..0847e9ce1fa --- /dev/null +++ b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/rules.mk @@ -0,0 +1,37 @@ +# MCU name +MCU = STM32F411 + +# Bootloader selection +BOOTLOADER = stm32-dfu +CONVERT_TO = stemcell + +# 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 = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +AUDIO_SUPPORTED = no # Audio is not supported +RGB_MATRIX_SUPPORTED = yes # RGB matrix is supported and enabled by default +RGBLIGHT_SUPPORTED = yes # RGB underglow is supported, but not enabled by default +RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality +RGB_MATRIX_DRIVER = WS2812 + +SPLIT_KEYBOARD = yes + +POINTING_DEVICE_ENABLE = yes # Enable trackball +POINTING_DEVICE_DRIVER = pmw3360 +MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint +KEYBOARD_SHARED_EP = yes + +SERIAL_DRIVER = usart +WS2812_DRIVER = pwm + +DEBOUNCE_TYPE = asym_eager_defer_pk diff --git a/keyboards/bastardkb/charybdis/readme.md b/keyboards/bastardkb/charybdis/readme.md index c112c1150e0..dd0fca00155 100644 --- a/keyboards/bastardkb/charybdis/readme.md +++ b/keyboards/bastardkb/charybdis/readme.md @@ -21,6 +21,7 @@ Check out the [keyboard build guides](https://docs.bastardkb.com) for the Charyb **You must specify the shield version when compiling/flashing the firmware.** The template is: + ```shell qmk compile -kb bastardkb/charybdis/{LAYOUT}/{VERSION}/elitec -km {KEYMAP} ``` @@ -33,16 +34,16 @@ Check out the `via` layout if you're looking for VIA support. ### Charybdis (4x6) -| Shield Version | default | via | -|----------------|-----------------------------------------------------------------|-----------------------------------------------------------------| -| v1 | `qmk compile -kb bastardkb/charybdis/4x6/v1/elitec -km default` | `qmk compile -kb bastardkb/charybdis/4x6/v1/elitec -km via` | +| Shield Version | default | via | +| -------------- | --------------------------------------------------------------- | ----------------------------------------------------------- | +| v1 | `qmk compile -kb bastardkb/charybdis/4x6/v1/elitec -km default` | `qmk compile -kb bastardkb/charybdis/4x6/v1/elitec -km via` | | v2 | `qmk compile -kb bastardkb/charybdis/4x6/v2/elitec -km default` | `qmk compile -kb bastardkb/charybdis/4x6/v2/elitec -km via` | ### Charybdis (3x5) -| Shield Version | default | via | -|----------------|-----------------------------------------------------------------|-----------------------------------------------------------------| -| v1 | `qmk compile -kb bastardkb/charybdis/3x5/v1/elitec -km default` | `qmk compile -kb bastardkb/charybdis/3x5/v1/elitec -km via` | +| Shield Version | default | via | +| -------------- | --------------------------------------------------------------- | ----------------------------------------------------------- | +| v1 | `qmk compile -kb bastardkb/charybdis/3x5/v1/elitec -km default` | `qmk compile -kb bastardkb/charybdis/3x5/v1/elitec -km via` | | v2 | `qmk compile -kb bastardkb/charybdis/3x5/v2/elitec -km default` | `qmk compile -kb bastardkb/charybdis/3x5/v2/elitec -km via` | ## Customizing the firmware @@ -164,17 +165,17 @@ To disable the custom keycodes, and reduce binary size, simply add a definition ### Configuration Syncing -If you want/need to enable syncing of the charybdis config, such as to read the sniping or drag scroll modes on the other half (such as for displaying the status via rgb matrix, or added on screens, or what not), you can enabled this. To do so, add this to your `config.h`: +If you want/need to enable syncing of the charybdis config, such as to read the sniping or drag scroll modes on the other half (such as for displaying the status via rgb matrix, or added on screens, or what not), you can enabled this. To do so, add this to your `config.h`: ```c #define CHARYBDIS_CONFIG_SYNC ``` -Note that you will need to reflash both sides when enabling this. +Note that you will need to reflash both sides when enabling this. ### Enable Large Mouse Reports -By default, the X and Y motion for the pointing device/mouse reports is -127 to 127. You can definitely hit the limit for that with the sensors. You can enable support for -32767 to 32767 by adding this to your `config.h`: +By default, the X and Y motion for the pointing device/mouse reports is -127 to 127. You can definitely hit the limit for that with the sensors. You can enable support for -32767 to 32767 by adding this to your `config.h`: ```c #define MOUSE_EXTENDED_REPORT diff --git a/keyboards/bastardkb/dilemma/3x5_2/3x5_2.h b/keyboards/bastardkb/dilemma/3x5_2/3x5_2.h new file mode 100644 index 00000000000..7deb32d9173 --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_2/3x5_2.h @@ -0,0 +1,37 @@ +/** + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 + +// clang-format off +#define LAYOUT_split_3x5_2( \ + k00, k01, k02, k03, k04, k44, k43, k42, k41, k40, \ + k10, k11, k12, k13, k14, k54, k53, k52, k51, k50, \ + k20, k21, k22, k23, k24, k64, k63, k62, k61, k60, \ + k30, k32, k72, k70 \ +) \ +{ \ + { k00, k01, k02, k03, k04 }, \ + { k10, k11, k12, k13, k14 }, \ + { k20, k21, k22, k23, k24 }, \ + { k30, KC_NO, k32, KC_NO, KC_NO }, \ + { k40, k41, k42, k43, k44 }, \ + { k50, k51, k52, k53, k54 }, \ + { k60, k61, k62, k63, k64 }, \ + { k70, KC_NO, k72, KC_NO, KC_NO }, \ +} +// clang-format on diff --git a/keyboards/bastardkb/dilemma/3x5_2/assembled/config.h b/keyboards/bastardkb/dilemma/3x5_2/assembled/config.h new file mode 100644 index 00000000000..8420898f4ed --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_2/assembled/config.h @@ -0,0 +1,46 @@ +/** + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 + +/* Key matrix configuration. */ +#define MATRIX_ROW_PINS \ + { GP4, GP5, GP28, GP26 } +#define MATRIX_COL_PINS \ + { GP8, GP9, GP7, GP6, GP27 } + +/* Handedness. */ +#define SPLIT_HAND_PIN GP29 +#define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* serial.c configuration (for split keyboard). */ +#define SOFT_SERIAL_PIN GP1 + +/* CRC. */ +#define CRC8_USE_TABLE +#define CRC8_OPTIMIZE_SPEED + +/* Cirque trackpad. */ +#define SPI_SCK_PIN GP22 +#define SPI_MOSI_PIN GP23 +#define SPI_MISO_PIN GP20 +#define POINTING_DEVICE_CS_PIN GP21 + +/* Reset. */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U diff --git a/keyboards/bastardkb/dilemma/3x5_2/assembled/halconf.h b/keyboards/bastardkb/dilemma/3x5_2/assembled/halconf.h new file mode 100644 index 00000000000..7a79bec953f --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_2/assembled/halconf.h @@ -0,0 +1,22 @@ +/** + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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_SPI TRUE + +#include_next "halconf.h" diff --git a/keyboards/bastardkb/dilemma/3x5_2/assembled/info.json b/keyboards/bastardkb/dilemma/3x5_2/assembled/info.json new file mode 100644 index 00000000000..aae8dfc1798 --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_2/assembled/info.json @@ -0,0 +1,4 @@ +{ + "keyboard_name": "Dilemma (3x5+2) Assembled" +} + diff --git a/keyboards/bastardkb/dilemma/3x5_2/assembled/mcuconf.h b/keyboards/bastardkb/dilemma/3x5_2/assembled/mcuconf.h new file mode 100644 index 00000000000..b54d705b542 --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_2/assembled/mcuconf.h @@ -0,0 +1,23 @@ +/** + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 "mcuconf.h" + +#undef RP_SPI_USE_SPI1 +#define RP_SPI_USE_SPI1 TRUE diff --git a/keyboards/bastardkb/dilemma/3x5_2/assembled/rules.mk b/keyboards/bastardkb/dilemma/3x5_2/assembled/rules.mk new file mode 100644 index 00000000000..df2f94792de --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_2/assembled/rules.mk @@ -0,0 +1,34 @@ +# MCU name +MCU = RP2040 + +# Bootloader selection +BOOTLOADER = rp2040 + +# 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 = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +AUDIO_SUPPORTED = no # Audio is not supported +RGB_MATRIX_SUPPORTED = no # RGB matrix is supported and enabled by default +RGBLIGHT_SUPPORTED = no # RGB underglow is supported, but not enabled by default +RGB_MATRIX_ENABLE = no # Enable keyboard RGB matrix functionality + +SERIAL_DRIVER = vendor + +POINTING_DEVICE_ENABLE = yes +POINTING_DEVICE_DRIVER = cirque_pinnacle_spi # Assembled version uses SPI. + +SPLIT_KEYBOARD = yes +LAYOUTS = split_3x5_2 + +# RP2040-specific options +PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS. diff --git a/keyboards/bastardkb/dilemma/3x5_2/info.json b/keyboards/bastardkb/dilemma/3x5_2/info.json new file mode 100644 index 00000000000..5aa89bcdedf --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_2/info.json @@ -0,0 +1,46 @@ +{ + "usb": { + "device_version": "1.0.0", + "pid": "0x1835" + }, + "layouts": { + "LAYOUT_split_3x5_2": { + "layout": [ + {"label":"L00", "x":0, "y":0}, + {"label":"L01", "x":1, "y":0}, + {"label":"L02", "x":2, "y":0}, + {"label":"L03", "x":3, "y":0}, + {"label":"L04", "x":4, "y":0}, + {"label":"R00", "x":11, "y":0}, + {"label":"R01", "x":12, "y":0}, + {"label":"R02", "x":13, "y":0}, + {"label":"R03", "x":14, "y":0}, + {"label":"R04", "x":15, "y":0}, + {"label":"L10", "x":0, "y":1}, + {"label":"L11", "x":1, "y":1}, + {"label":"L12", "x":2, "y":1}, + {"label":"L13", "x":3, "y":1}, + {"label":"L14", "x":4, "y":1}, + {"label":"R10", "x":11, "y":1}, + {"label":"R11", "x":12, "y":1}, + {"label":"R12", "x":13, "y":1}, + {"label":"R13", "x":14, "y":1}, + {"label":"R14", "x":15, "y":1}, + {"label":"L20", "x":0, "y":2}, + {"label":"L21", "x":1, "y":2}, + {"label":"L22", "x":2, "y":2}, + {"label":"L23", "x":3, "y":2}, + {"label":"L24", "x":4, "y":2}, + {"label":"R20", "x":11, "y":2}, + {"label":"R21", "x":12, "y":2}, + {"label":"R22", "x":13, "y":2}, + {"label":"R23", "x":14, "y":2}, + {"label":"R24", "x":15, "y":2}, + {"label":"L30", "x":4, "y":3}, + {"label":"L32", "x":5, "y":3}, + {"label":"R32", "x":10, "y":3}, + {"label":"R30", "x":11, "y":3} + ] + } + } +} diff --git a/keyboards/bastardkb/dilemma/keymaps/bstiq/config.h b/keyboards/bastardkb/dilemma/3x5_2/keymaps/bstiq/config.h similarity index 100% rename from keyboards/bastardkb/dilemma/keymaps/bstiq/config.h rename to keyboards/bastardkb/dilemma/3x5_2/keymaps/bstiq/config.h diff --git a/keyboards/bastardkb/dilemma/keymaps/bstiq/keymap.c b/keyboards/bastardkb/dilemma/3x5_2/keymaps/bstiq/keymap.c similarity index 100% rename from keyboards/bastardkb/dilemma/keymaps/bstiq/keymap.c rename to keyboards/bastardkb/dilemma/3x5_2/keymaps/bstiq/keymap.c diff --git a/keyboards/bastardkb/dilemma/keymaps/bstiq/README.md b/keyboards/bastardkb/dilemma/3x5_2/keymaps/bstiq/readme.md similarity index 100% rename from keyboards/bastardkb/dilemma/keymaps/bstiq/README.md rename to keyboards/bastardkb/dilemma/3x5_2/keymaps/bstiq/readme.md diff --git a/keyboards/bastardkb/dilemma/keymaps/default/keymap.c b/keyboards/bastardkb/dilemma/3x5_2/keymaps/default/keymap.c similarity index 100% rename from keyboards/bastardkb/dilemma/keymaps/default/keymap.c rename to keyboards/bastardkb/dilemma/3x5_2/keymaps/default/keymap.c diff --git a/keyboards/bastardkb/dilemma/keymaps/drashna/config.h b/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/config.h similarity index 100% rename from keyboards/bastardkb/dilemma/keymaps/drashna/config.h rename to keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/config.h diff --git a/keyboards/bastardkb/dilemma/keymaps/drashna/keymap.c b/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/keymap.c similarity index 100% rename from keyboards/bastardkb/dilemma/keymaps/drashna/keymap.c rename to keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/keymap.c diff --git a/keyboards/bastardkb/dilemma/keymaps/drashna/rules.mk b/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/rules.mk similarity index 100% rename from keyboards/bastardkb/dilemma/keymaps/drashna/rules.mk rename to keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/rules.mk diff --git a/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/config.h b/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/config.h new file mode 100644 index 00000000000..fbe61df03ba --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/config.h @@ -0,0 +1,91 @@ +/** + * Copyright 2021 Charly Delay (@0xcharly) + * + * 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 + +#ifdef VIA_ENABLE +/* VIA configuration. */ +# define DYNAMIC_KEYMAP_LAYER_COUNT 6 +#endif // VIA_ENABLE + +/* Disable unused features. */ +#define NO_ACTION_ONESHOT + +#ifndef TAPPING_TERM +/** + * \brief Configure the global tapping term (default: 200ms). + * + * If you have a lot of accidental mod activations, crank up the tapping term. + * + * See docs.qmk.fm/using-qmk/software-features/tap_hold#tapping-term + */ +# define TAPPING_TERM 200 +#endif // TAPPING_TERM + +/** + * \brief Enable rapid switch from tap to hold. + * + * Note that a side-effect of this setting is to disable auto-repeat when + * pressing key twice, except for one-shot keys. + * + * See docs.qmk.fm/using-qmk/software-features/tap_hold#tapping-force-hold + */ +#define TAPPING_FORCE_HOLD + +/* + * Tap-or-Hold decision modes. + * + * Note that the following flags behave differently when combined (ie. when 2 or + * more are enabled). + * + * See bit.ly/tap-or-hold for a visual explanation of the following tap-or-hold + * decision modes. + */ + +/** + * \brief Faster tap-hold trigger. + * + * Without `PERMISSIVE_HOLD`, within `TAPPING_TERM`: + * Mod(a)🠗 e🠗 e🠕 Mod(a)🠕 ➞ ae + * With `PERMISSIVE_HOLD`, within `TAPPING_TERM`: + * Mod(a)🠗 e🠗 e🠕 Mod(a)🠕 ➞ Mod+e + * + * See docs.qmk.fm/using-qmk/software-features/tap_hold#permissive-hold + */ +#define PERMISSIVE_HOLD + +/** + * \brief Prevent normal rollover on alphas from accidentally triggering mods. + * + * Ignores key presses that interrupt a mod-tap. Must-have for Home Row mod. + * + * Without `IGNORE_MOD_TAP_INTERRUPT`, within `TAPPING_TERM`: + * Mod(a)🠗 e🠗 Mod(a)🠕 e🠕 ➞ Mod+e + * With `IGNORE_MOD_TAP_INTERRUPT`, within `TAPPING_TERM`: + * Mod(a)🠗 e🠗 Mod(a)🠕 e🠕 ➞ ae + * + * See docs.qmk.fm/using-qmk/software-features/tap_hold#ignore-mod-tap-interrupt + */ +#define IGNORE_MOD_TAP_INTERRUPT + +/* Charybdis-specific features. */ + +#ifdef POINTING_DEVICE_ENABLE +// Automatically enable the pointer layer when moving the trackball. See also: +// - `DILEMMA_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS` +// - `DILEMMA_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD` +// #define DILEMMA_AUTO_POINTER_LAYER_TRIGGER_ENABLE +#endif // POINTING_DEVICE_ENABLE diff --git a/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/keymap.c b/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/keymap.c new file mode 100644 index 00000000000..082a1516741 --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/keymap.c @@ -0,0 +1,229 @@ +/** + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 + +#ifdef DILEMMA_AUTO_POINTER_LAYER_TRIGGER_ENABLE +# include "timer.h" +#endif // DILEMMA_AUTO_POINTER_LAYER_TRIGGER_ENABLE + +enum dilemma_keymap_layers { + LAYER_BASE = 0, + LAYER_FUNCTION, + LAYER_NAVIGATION, + LAYER_POINTER, + LAYER_NUMERAL, + LAYER_SYMBOLS, +}; + +// Automatically enable sniping-mode on the pointer layer. +#define DILEMMA_AUTO_SNIPING_ON_LAYER LAYER_POINTER + +#ifdef DILEMMA_AUTO_POINTER_LAYER_TRIGGER_ENABLE +static uint16_t auto_pointer_layer_timer = 0; + +# ifndef DILEMMA_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS +# define DILEMMA_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS 1000 +# endif // DILEMMA_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS + +# ifndef DILEMMA_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD +# define DILEMMA_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD 8 +# endif // DILEMMA_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD +#endif // DILEMMA_AUTO_POINTER_LAYER_TRIGGER_ENABLE + +#define SPC_NAV LT(LAYER_NAVIGATION, KC_SPC) +#define TAB_FUN LT(LAYER_FUNCTION, KC_TAB) +#define ENT_SYM LT(LAYER_SYMBOLS, KC_ENT) +#define BSP_NUM LT(LAYER_NUMERAL, KC_BSPC) +#define _L_PTR(KC) LT(LAYER_POINTER, KC) + +#ifndef POINTING_DEVICE_ENABLE +# define DRGSCRL KC_NO +# define DPI_MOD KC_NO +# define S_D_MOD KC_NO +# define SNIPING KC_NO +#endif // !POINTING_DEVICE_ENABLE + +// clang-format off +/** \brief QWERTY layout (3 rows, 10 columns). */ +#define LAYOUT_LAYER_BASE \ + 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_QUOT, \ + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \ + TAB_FUN, SPC_NAV, ENT_SYM, BSP_NUM + +/** Convenience row shorthands. */ +#define _______________DEAD_HALF_ROW_______________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +#define ______________HOME_ROW_GACS_L______________ KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX +#define ______________HOME_ROW_GACS_R______________ XXXXXXX, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI + +/* + * Layers used on the Dilemma. + * + * These layers started off heavily inspired by the Miryoku layout, but trimmed + * down and tailored for a stock experience that is meant to be fundation for + * further personalization. + * + * See https://github.com/manna-harbour/miryoku for the original layout. + */ + +/** + * \brief Function layer. + * + * Secondary right-hand layer has function keys mirroring the numerals on the + * primary layer with extras on the pinkie column, plus system keys on the inner + * column. App is on the tertiary thumb key and other thumb keys are duplicated + * from the base layer to enable auto-repeat. + */ +#define LAYOUT_LAYER_FUNCTION \ + _______________DEAD_HALF_ROW_______________, KC_PSCR, KC_F7, KC_F8, KC_F9, KC_F12, \ + ______________HOME_ROW_GACS_L______________, KC_SLCK, KC_F4, KC_F5, KC_F6, KC_F11, \ + _______________DEAD_HALF_ROW_______________, KC_PAUS, KC_F1, KC_F2, KC_F3, KC_F10, \ + _______, XXXXXXX, XXXXXXX, XXXXXXX + +/** \brief Mouse emulation and pointer functions. */ +#define LAYOUT_LAYER_POINTER \ + QK_BOOT, XXXXXXX, XXXXXXX, DPI_MOD, S_D_MOD, S_D_MOD, DPI_MOD, XXXXXXX, XXXXXXX, QK_BOOT, \ + ______________HOME_ROW_GACS_L______________, ______________HOME_ROW_GACS_R______________, \ + _______, DRGSCRL, SNIPING, KC_BTN3, XXXXXXX, XXXXXXX, KC_BTN3, SNIPING, DRGSCRL, _______, \ + KC_BTN2, KC_BTN1, KC_BTN1, KC_BTN2 + +/** + * \brief Navigation layer. + * + * Primary right-hand layer (left home thumb) is navigation and editing. Cursor + * keys are on the home position, line and page movement below, clipboard above, + * caps lock and insert on the inner column. Thumb keys are duplicated from the + * base layer to avoid having to layer change mid edit and to enable auto-repeat. + */ +#define LAYOUT_LAYER_NAVIGATION \ + _______________DEAD_HALF_ROW_______________, _______________DEAD_HALF_ROW_______________, \ + ______________HOME_ROW_GACS_L______________, KC_CLCK, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, \ + _______________DEAD_HALF_ROW_______________, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, \ + XXXXXXX, _______, KC_ENT, KC_BSPC + +/** + * \brief Numeral layout. + * + * Primary left-hand layer (right home thumb) is numerals and symbols. Numerals + * are in the standard numpad locations with symbols in the remaining positions. + * `KC_DOT` is duplicated from the base layer. + */ +#define LAYOUT_LAYER_NUMERAL \ + KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, _______________DEAD_HALF_ROW_______________, \ + KC_SCLN, KC_4, KC_5, KC_6, KC_EQL, ______________HOME_ROW_GACS_R______________, \ + KC_DOT, KC_1, KC_2, KC_3, KC_BSLS, _______________DEAD_HALF_ROW_______________, \ + KC_MINS, KC_0, XXXXXXX, _______ + +/** + * \brief Symbols layer. + * + * Secondary left-hand layer has shifted symbols in the same locations to reduce + * chording when using mods with shifted symbols. `KC_LPRN` is duplicated next to + * `KC_RPRN`. + */ +#define LAYOUT_LAYER_SYMBOLS \ + KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, _______________DEAD_HALF_ROW_______________, \ + KC_COLN, KC_DLR, KC_PERC, KC_CIRC, KC_PLUS, ______________HOME_ROW_GACS_R______________, \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_PIPE, _______________DEAD_HALF_ROW_______________, \ + KC_GRV, KC_UNDS, _______, XXXXXXX + +/** + * \brief Add Home Row mod to a layout. + * + * Expects a 10-key per row layout. Adds support for GACS (Gui, Alt, Ctl, Shift) + * home row. The layout passed in parameter must contain at least 20 keycodes. + * + * This is meant to be used with `LAYER_ALPHAS_QWERTY` defined above, eg.: + * + * HOME_ROW_MOD_GACS(LAYER_ALPHAS_QWERTY) + */ +#define _HOME_ROW_MOD_GACS( \ + L00, L01, L02, L03, L04, R05, R06, R07, R08, R09, \ + L10, L11, L12, L13, L14, R15, R16, R17, R18, R19, \ + ...) \ + L00, L01, L02, L03, L04, \ + R05, R06, R07, R08, R09, \ + LGUI_T(L10), LALT_T(L11), LCTL_T(L12), LSFT_T(L13), L14, \ + R15, RSFT_T(R16), RCTL_T(R17), LALT_T(R18), RGUI_T(R19), \ + __VA_ARGS__ +#define HOME_ROW_MOD_GACS(...) _HOME_ROW_MOD_GACS(__VA_ARGS__) + +/** + * \brief Add pointer layer keys to a layout. + * + * Expects a 10-key per row layout. The layout passed in parameter must contain + * at least 30 keycodes. + * + * This is meant to be used with `LAYER_ALPHAS_QWERTY` defined above, eg.: + * + * POINTER_MOD(LAYER_ALPHAS_QWERTY) + */ +#define _POINTER_MOD( \ + L00, L01, L02, L03, L04, R05, R06, R07, R08, R09, \ + L10, L11, L12, L13, L14, R15, R16, R17, R18, R19, \ + L20, L21, L22, L23, L24, R25, R26, R27, R28, R29, \ + ...) \ + L00, L01, L02, L03, L04, \ + R05, R06, R07, R08, R09, \ + L10, L11, L12, L13, L14, \ + R15, R16, R17, R18, R19, \ + _L_PTR(L20), L21, L22, L23, L24, \ + R25, R26, R27, R28, _L_PTR(R29), \ + __VA_ARGS__ +#define POINTER_MOD(...) _POINTER_MOD(__VA_ARGS__) + +#define LAYOUT_wrapper(...) LAYOUT_split_3x5_2(__VA_ARGS__) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [LAYER_BASE] = LAYOUT_wrapper( + POINTER_MOD(HOME_ROW_MOD_GACS(LAYOUT_LAYER_BASE)) + ), + [LAYER_FUNCTION] = LAYOUT_wrapper(LAYOUT_LAYER_FUNCTION), + [LAYER_NAVIGATION] = LAYOUT_wrapper(LAYOUT_LAYER_NAVIGATION), + [LAYER_NUMERAL] = LAYOUT_wrapper(LAYOUT_LAYER_NUMERAL), + [LAYER_POINTER] = LAYOUT_wrapper(LAYOUT_LAYER_POINTER), + [LAYER_SYMBOLS] = LAYOUT_wrapper(LAYOUT_LAYER_SYMBOLS), +}; +// clang-format on + +#ifdef POINTING_DEVICE_ENABLE +# ifdef DILEMMA_AUTO_POINTER_LAYER_TRIGGER_ENABLE +report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) { + if (abs(mouse_report.x) > DILEMMA_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD || abs(mouse_report.y) > DILEMMA_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD) { + if (auto_pointer_layer_timer == 0) { + layer_on(LAYER_POINTER); + } + auto_pointer_layer_timer = timer_read(); + } + return mouse_report; +} + +void matrix_scan_user(void) { + if (auto_pointer_layer_timer != 0 && TIMER_DIFF_16(timer_read(), auto_pointer_layer_timer) >= DILEMMA_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS) { + auto_pointer_layer_timer = 0; + layer_off(LAYER_POINTER); + } +} +# endif // DILEMMA_AUTO_POINTER_LAYER_TRIGGER_ENABLE + +# ifdef DILEMMA_AUTO_SNIPING_ON_LAYER +layer_state_t layer_state_set_user(layer_state_t state) { + dilemma_set_pointer_sniping_enabled(layer_state_cmp(state, DILEMMA_AUTO_SNIPING_ON_LAYER)); + return state; +} +# endif // DILEMMA_AUTO_SNIPING_ON_LAYER +#endif // POINTING_DEVICE_ENABLE diff --git a/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/readme.md b/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/readme.md new file mode 100644 index 00000000000..df40677f4df --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/readme.md @@ -0,0 +1,67 @@ +# Dilemma `via` keymap + +The Dilemma `via` keymap is based on a QWERTY layout with [home row mods](https://precondition.github.io/home-row-mods) and [Miryoku-inspired layers](https://github.com/manna-harbour/miryoku), and some features and changes specific to the Dilemma. + +This layout also supports VIA. + +## Customizing the keymap + +### Dynamic DPI scaling + +Use the following keycodes to change the default DPI: + +- `POINTER_DEFAULT_DPI_FORWARD`: increases the DPI; decreases when shifted; +- `POINTER_DEFAULT_DPI_REVERSE`: decreases the DPI; increases when shifted. + +There's a maximum of 16 possible values for the sniping mode DPI. See the [Dilemma documentation](../../README.md) for more information. + +Use the following keycodes to change the sniping mode DPI: + +- `POINTER_SNIPING_DPI_FORWARD`: increases the DPI; decreases when shifted; +- `POINTER_SNIPING_DPI_REVERSE`: decreases the DPI; increases when shifted. + +There's a maximum of 4 possible values for the sniping mode DPI. See the [Dilemma documentation](../../README.md) for more information. + +### Drag-scroll + +Use the `DRAGSCROLL_MODE` keycode to enable drag-scroll on hold. Use the `DRAGSCROLL_TOGGLE` keycode to enable/disable drag-scroll on key press. + +### Circular scroll + +By default, the firmware is configured to enable the circular scroll feature on Cirque trackpad. + +To disable this, add the following to your keymap: + +```c +#undef POINTING_DEVICE_GESTURES_SCROLL_ENABLE +``` + +### Sniping + +Use the `SNIPING_MODE` keycode to enable sniping mode on hold. Use the `SNIPING_TOGGLE` keycode to enable/disable sniping mode on key press. + +Change the value of `DILEMMA_AUTO_SNIPING_ON_LAYER` to automatically enable sniping mode on layer change. By default, sniping mode is enabled on the pointer layer: + +```c +#define DILEMMA_AUTO_SNIPING_ON_LAYER LAYER_POINTER +``` + +### Auto pointer layer + +The pointer layer can be automatically enabled when moving the trackball. To enable or disable this behavior, add or remove the following define: + +```c +#define DILEMMA_AUTO_POINTER_LAYER_TRIGGER_ENABLE +``` + +By default, the layer is turned off 1 second after the last registered trackball movement: + +```c +#define DILEMMA_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS 1000 +``` + +The trigger sensibility can also be tuned. The lower the value, the more sensible the trigger: + +```c +#define DILEMMA_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD 8 +``` diff --git a/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/rules.mk b/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/bastardkb/dilemma/splinky/config.h b/keyboards/bastardkb/dilemma/3x5_2/splinky/config.h similarity index 99% rename from keyboards/bastardkb/dilemma/splinky/config.h rename to keyboards/bastardkb/dilemma/3x5_2/splinky/config.h index 80c9e422248..4ac28ed1f90 100644 --- a/keyboards/bastardkb/dilemma/splinky/config.h +++ b/keyboards/bastardkb/dilemma/3x5_2/splinky/config.h @@ -1,4 +1,4 @@ -/* +/** * Copyright 2022 Charly Delay (@0xcharly) * * This program is free software: you can redistribute it and/or modify diff --git a/keyboards/bastardkb/dilemma/splinky/halconf.h b/keyboards/bastardkb/dilemma/3x5_2/splinky/halconf.h similarity index 100% rename from keyboards/bastardkb/dilemma/splinky/halconf.h rename to keyboards/bastardkb/dilemma/3x5_2/splinky/halconf.h diff --git a/keyboards/bastardkb/dilemma/3x5_2/splinky/info.json b/keyboards/bastardkb/dilemma/3x5_2/splinky/info.json new file mode 100644 index 00000000000..38ce4738f9a --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_2/splinky/info.json @@ -0,0 +1,3 @@ +{ + "keyboard_name": "Dilemma (3x5+2) Splinky" +} diff --git a/keyboards/bastardkb/dilemma/splinky/mcuconf.h b/keyboards/bastardkb/dilemma/3x5_2/splinky/mcuconf.h similarity index 100% rename from keyboards/bastardkb/dilemma/splinky/mcuconf.h rename to keyboards/bastardkb/dilemma/3x5_2/splinky/mcuconf.h diff --git a/keyboards/bastardkb/dilemma/rules.mk b/keyboards/bastardkb/dilemma/3x5_2/splinky/rules.mk similarity index 78% rename from keyboards/bastardkb/dilemma/rules.mk rename to keyboards/bastardkb/dilemma/3x5_2/splinky/rules.mk index 499eadfdfbe..292b71fe8b4 100644 --- a/keyboards/bastardkb/dilemma/rules.mk +++ b/keyboards/bastardkb/dilemma/3x5_2/splinky/rules.mk @@ -1,3 +1,9 @@ +# MCU name +MCU = RP2040 + +# Bootloader selection +BOOTLOADER = rp2040 + # Build Options # change yes to no to disable # @@ -16,10 +22,13 @@ RGB_MATRIX_SUPPORTED = no # RGB matrix is supported and enabled by default RGBLIGHT_SUPPORTED = no # RGB underglow is supported, but not enabled by default RGB_MATRIX_ENABLE = no # Enable keyboard RGB matrix functionality +SERIAL_DRIVER = vendor + POINTING_DEVICE_ENABLE = yes -POINTING_DEVICE_DRIVER = cirque_pinnacle_i2c +POINTING_DEVICE_DRIVER = cirque_pinnacle_i2c # DIY version uses I2C. SPLIT_KEYBOARD = yes LAYOUTS = split_3x5_2 -DEFAULT_FOLDER = bastardkb/dilemma/splinky +# RP2040-specific options +PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS. diff --git a/keyboards/bastardkb/dilemma/3x5_3/3x5_3.c b/keyboards/bastardkb/dilemma/3x5_3/3x5_3.c new file mode 100644 index 00000000000..0b6c657fdae --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_3/3x5_3.c @@ -0,0 +1,83 @@ +/** + * Copyright 2020 Christopher Courtney (@drashna) + * Copyright 2021 Quentin LEBASTARD + * Copyright 2022 Charly Delay (@0xcharly) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Publicw 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 "3x5_3.h" + +/** + * LEDs index. + * + * ╭────────────────────╮ ╭────────────────────╮ + * 2 3 8 9 12 30 27 26 21 20 + * ├────────────────────┤ ├────────────────────┤ + * 1 4 7 10 13 31 28 25 22 19 + * ├────────────────────┤ ├────────────────────┤ + * 0 5 6 11 14 32 29 24 23 18 + * ╰────────────────────╯ ╰────────────────────╯ + * 15 16 17 35 34 33 + * ╰────────────╯ ╰────────────╯ + */ +// clang-format off +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + /* Key Matrix to LED index. */ + // Left split. + { 2, 3, 8, 9, 12 }, // Top row + { 1, 4, 7, 10, 13 }, // Middle row + { 0, 5, 6, 11, 14 }, // Bottom row + { 17, NO_LED, 15, 16, NO_LED }, // Thumb cluster + // Right split. + { 20, 21, 26, 27, 30 }, // Top row + { 19, 22, 25, 28, 31 }, // Middle row + { 18, 23, 24, 29, 32 }, // Bottom row + { 35, NO_LED, 33, 34, NO_LED }, // Thumb cluster +}, { + /* LED index to physical position. */ + // Left split. + /* index=0 */ { 0, 42 }, { 0, 21 }, { 0, 0 }, // col 1 (left most) + /* index=3 */ { 18, 0 }, { 18, 21 }, { 18, 42 }, // col 2 + /* index=6 */ { 36, 42 }, { 36, 21 }, { 36, 0 }, + /* index=9 */ { 54, 0 }, { 54, 21 }, { 54, 42 }, + /* index=12 */ { 72, 0 }, { 72, 21 }, { 72, 42 }, + /* index=15 */ { 72, 64 }, { 90, 64 }, { 108, 64 }, // Thumb cluster + // Right split. + /* index=18 */ { 224, 42 }, { 224, 21 }, { 224, 0 }, // col 10 (right most) + /* index=21 */ { 206, 0 }, { 206, 21 }, { 206, 42 }, // col 9 + /* index=24 */ { 188, 42 }, { 188, 21 }, { 188, 0 }, + /* index=27 */ { 170, 0 }, { 170, 21 }, { 170, 42 }, + /* index=30 */ { 152, 0 }, { 152, 21 }, { 152, 42 }, + /* index=33 */ { 152, 64 }, { 134, 64 }, { 116, 64 }, // Thumb cluster +}, { + /* LED index to flag. */ + // Left split. + /* index=0 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 1 + /* index=3 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 2 + /* index=6 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=9 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=12 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=15 */ LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, // Thumb cluster + // Right split. + /* index=18 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 10 + /* index=21 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 9 + /* index=24 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=27 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=30 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, + /* index=33 */ LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, // Thumb cluster +} }; +#endif +// clang-format on diff --git a/keyboards/bastardkb/dilemma/3x5_3/3x5_3.h b/keyboards/bastardkb/dilemma/3x5_3/3x5_3.h new file mode 100644 index 00000000000..566d5b81d23 --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_3/3x5_3.h @@ -0,0 +1,39 @@ +/** + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 "dilemma.h" + +// clang-format off +#define LAYOUT_split_3x5_3( \ + k00, k01, k02, k03, k04, k44, k43, k42, k41, k40, \ + k10, k11, k12, k13, k14, k54, k53, k52, k51, k50, \ + k20, k21, k22, k23, k24, k64, k63, k62, k61, k60, \ + k32, k30, k31, k71, k70, k72 \ +) \ +{ \ + { k00, k01, k02, k03, k04 }, \ + { k10, k11, k12, k13, k14 }, \ + { k20, k21, k22, k23, k24 }, \ + { k30, k31, k32, KC_NO, KC_NO }, \ + { k40, k41, k42, k43, k44 }, \ + { k50, k51, k52, k53, k54 }, \ + { k60, k61, k62, k63, k64 }, \ + { k70, k71, k72, KC_NO, KC_NO }, \ +} +// clang-format on diff --git a/keyboards/bastardkb/dilemma/3x5_3/config.h b/keyboards/bastardkb/dilemma/3x5_3/config.h new file mode 100644 index 00000000000..30bce4369bd --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_3/config.h @@ -0,0 +1,71 @@ +/** + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 + +/* Key matrix configuration. */ +#define MATRIX_ROW_PINS \ + { GP4, GP5, GP27, GP26 } +#define MATRIX_COL_PINS \ + { GP8, GP9, GP7, GP6, GP28 } + +/* Handedness. */ +#define SPLIT_HAND_PIN GP29 +#define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* serial.c configuration (for split keyboard). */ +#define SOFT_SERIAL_PIN GP1 + +/* RGB settings. */ +#define RGB_DI_PIN GP0 // Per-key. +// #define RGB_DI_PIN GP10 // Underglow. + +/* CRC. */ +#define CRC8_USE_TABLE +#define CRC8_OPTIMIZE_SPEED + +/* Cirque trackpad over SPI. */ +#define SPI_SCK_PIN GP22 +#define SPI_MOSI_PIN GP23 +#define SPI_MISO_PIN GP20 +#define POINTING_DEVICE_CS_PIN GP21 + +/* OLED over i2c. */ +#define I2C1_CLOCK_SPEED 400000 +#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_16_9 +#define OLED_DISPLAY_HEIGHT 128 + +/* Reset. */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U + +/* RGB settings. */ +#define RGBLED_NUM 36 +#define RGBLED_SPLIT \ + { 18, 18 } + +/* RGB matrix support. */ +#ifdef RGB_MATRIX_ENABLE +# define SPLIT_TRANSPORT_MIRROR +# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_SPLIT RGBLED_SPLIT +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50 +# define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS +# define RGB_DISABLE_WHEN_USB_SUSPENDED +# define RGB_MATRIX_KEYPRESSES +#endif diff --git a/keyboards/bastardkb/dilemma/3x5_3/halconf.h b/keyboards/bastardkb/dilemma/3x5_3/halconf.h new file mode 100644 index 00000000000..a3774605a8f --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_3/halconf.h @@ -0,0 +1,23 @@ +/** + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 + +#include_next "halconf.h" diff --git a/keyboards/bastardkb/dilemma/3x5_3/info.json b/keyboards/bastardkb/dilemma/3x5_3/info.json new file mode 100644 index 00000000000..2c1a68888b4 --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_3/info.json @@ -0,0 +1,49 @@ +{ + "keyboard_name": "Dilemma (3x5+3) Assembled", + "usb": { + "device_version": "2.0.0", + "pid": "0x1835" + }, + "layouts": { + "LAYOUT_split_3x5_3": { + "layout": [ + { "label": "L00", "x": 0, "y": 0 }, + { "label": "L01", "x": 1, "y": 0 }, + { "label": "L02", "x": 2, "y": 0 }, + { "label": "L03", "x": 3, "y": 0 }, + { "label": "L04", "x": 4, "y": 0 }, + { "label": "R00", "x": 11, "y": 0 }, + { "label": "R01", "x": 12, "y": 0 }, + { "label": "R02", "x": 13, "y": 0 }, + { "label": "R03", "x": 14, "y": 0 }, + { "label": "R04", "x": 15, "y": 0 }, + { "label": "L10", "x": 0, "y": 1 }, + { "label": "L11", "x": 1, "y": 1 }, + { "label": "L12", "x": 2, "y": 1 }, + { "label": "L13", "x": 3, "y": 1 }, + { "label": "L14", "x": 4, "y": 1 }, + { "label": "R10", "x": 11, "y": 1 }, + { "label": "R11", "x": 12, "y": 1 }, + { "label": "R12", "x": 13, "y": 1 }, + { "label": "R13", "x": 14, "y": 1 }, + { "label": "R14", "x": 15, "y": 1 }, + { "label": "L20", "x": 0, "y": 2 }, + { "label": "L21", "x": 1, "y": 2 }, + { "label": "L22", "x": 2, "y": 2 }, + { "label": "L23", "x": 3, "y": 2 }, + { "label": "L24", "x": 4, "y": 2 }, + { "label": "R20", "x": 11, "y": 2 }, + { "label": "R21", "x": 12, "y": 2 }, + { "label": "R22", "x": 13, "y": 2 }, + { "label": "R23", "x": 14, "y": 2 }, + { "label": "R24", "x": 15, "y": 2 }, + { "label": "L32", "x": 4, "y": 3 }, + { "label": "L33", "x": 5, "y": 3 }, + { "label": "L34", "x": 6, "y": 3 }, + { "label": "R32", "x": 11, "y": 3 }, + { "label": "R33", "x": 10, "y": 3 }, + { "label": "R34", "x": 9, "y": 3 } + ] + } + } +} diff --git a/keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/config.h b/keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/config.h new file mode 100644 index 00000000000..507cd6a2250 --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/config.h @@ -0,0 +1,145 @@ +/** + * Copyright 2021 Quentin LEBASTARD + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 + +#ifdef VIA_ENABLE +/* Via configuration. */ +# define DYNAMIC_KEYMAP_LAYER_COUNT 8 +#endif // VIA_ENABLE + +/** + * Configure the global tapping term (default: 200ms). + * If you have a lot of accidental mod activations, crank up the tapping term. + */ +#ifndef TAPPING_TERM +# define TAPPING_TERM 160 +#endif // TAPPING_TERM + +// disable trackpad taps +// #define CIRQUE_PINNACLE_TAPPING_TERM 0 + +/** + * Enable rapid switch from tap to hold. Disable auto-repeat when pressing key + * twice, except for one-shot keys. + */ +#define TAPPING_FORCE_HOLD + +/* + * Tap-or-Hold decision modes. + * + * Note that the following flags behave differently when combined (ie. when 2 or + * more are enabled). + * + * See bit.ly/tap-or-hold for a visual explanation of the following tap-or-hold + * decision modes. + */ + +/** + * Faster tap-hold trigger. + * + * Without `PERMISSIVE_HOLD`, within `TAPPING_TERM`: + * Mod(a)🠗 e🠗 e🠕 Mod(a)🠕 ➞ ae + * With `PERMISSIVE_HOLD`, within `TAPPING_TERM`: + * Mod(a)🠗 e🠗 e🠕 Mod(a)🠕 ➞ Mod+e + */ +#define PERMISSIVE_HOLD + +/** + * Prevent normal rollover on alphas from accidentally triggering mods. + * + * Ignores key presses that interrupt a mod-tap. Must-have for Home Row mod. + * + * Without `IGNORE_MOD_TAP_INTERRUPT`, within `TAPPING_TERM`: + * Mod(a)🠗 e🠗 Mod(a)🠕 e🠕 ➞ Mod+e + * With `IGNORE_MOD_TAP_INTERRUPT`, within `TAPPING_TERM`: + * Mod(a)🠗 e🠗 Mod(a)🠕 e🠕 ➞ ae + */ +#define IGNORE_MOD_TAP_INTERRUPT + +/** Dilemma-specific features. */ + +#ifdef POINTING_DEVICE_ENABLE +// Flip horizontal direction for drag-scroll. +# define DILEMMA_DRAGSCROLL_REVERSE_X +// #define DILEMMA_DRAGSCROLL_REVERSE_Y +#endif // POINTING_DEVICE_ENABLE + +/** RGB Matrix. */ + +#ifdef RGB_MATRIX_ENABLE +// Enable all animations on ARM boards since they have plenty of memory +// available for it. +# define ENABLE_RGB_MATRIX_ALPHAS_MODS +# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_BREATHING +# define ENABLE_RGB_MATRIX_BAND_SAT +# define ENABLE_RGB_MATRIX_BAND_VAL +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +# 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_RAINBOW_PINWHEELS +# define ENABLE_RGB_MATRIX_RAINDROPS +# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +# define ENABLE_RGB_MATRIX_HUE_BREATHING +# define ENABLE_RGB_MATRIX_HUE_PENDULUM +# define ENABLE_RGB_MATRIX_HUE_WAVE +# define ENABLE_RGB_MATRIX_TYPING_HEATMAP +# define ENABLE_RGB_MATRIX_DIGITAL_RAIN +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +# define ENABLE_RGB_MATRIX_SPLASH +# define ENABLE_RGB_MATRIX_MULTISPLASH +# define ENABLE_RGB_MATRIX_SOLID_SPLASH +# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH + +// Limit maximum brightness to keep power consumption reasonable, and avoid +// disconnects. +# undef RGB_MATRIX_MAXIMUM_BRIGHTNESS +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 64 + +// Rainbow swirl as startup mode. +# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT + +// Slow swirl at startup. +# define RGB_MATRIX_STARTUP_SPD 32 + +// Startup values. +# define RGB_MATRIX_STARTUP_HUE 0 +# define RGB_MATRIX_STARTUP_SAT 255 +# define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS +# define RGB_MATRIX_STARTUP_HSV RGB_MATRIX_STARTUP_HUE, RGB_MATRIX_STARTUP_SAT, RGB_MATRIX_STARTUP_VAL +#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/keymap.c b/keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/keymap.c new file mode 100644 index 00000000000..e8e5ccd83b0 --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/keymap.c @@ -0,0 +1,223 @@ +/** + * Copyright 2021 Quentin LEBASTARD + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 + +enum bstiq_layers { + LAYER_BASE = 0, + LAYER_MBO, + LAYER_MEDIA, + LAYER_NAV, + LAYER_MOUSE, + LAYER_SYM, + LAYER_NUM, + LAYER_FUN, +}; + +// Automatically enable sniping when the mouse layer is on. +#define DILEMMA_AUTO_SNIPING_ON_LAYER LAYER_MOUSE + +#define BSP_NAV LT(LAYER_NAV, KC_BSPC) +#define ENT_MBO LT(LAYER_MBO, KC_ENT) +#define TAB_MED LT(LAYER_MEDIA, KC_TAB) +#define ESC_SYM LT(LAYER_SYM, KC_ESC) +#define SPC_NUM LT(LAYER_NUM, KC_SPC) +#define SPC_MBO LT(LAYER_MBO, KC_SPC) +#define MOUSE(KC) LT(LAYER_MOUSE, KC) + +#define USR_RDO KC_AGAIN +#define USR_PST S(KC_INS) +#define USR_CPY C(KC_INS) +#define USR_CUT S(KC_DEL) +#define USR_UND KC_UNDO + +#define MS_L KC_MS_LEFT +#define MS_R KC_MS_RIGHT +#define MS_D KC_MS_DOWN +#define MS_U KC_MS_UP + +#define WH_L KC_MS_WH_LEFT +#define WH_R KC_MS_WH_RIGHT +#define WH_D KC_MS_WH_DOWN +#define WH_U KC_MS_WH_UP + +// clang-format off +/** Convenience macro. */ +#define _KC_LAYOUT_wrapper( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \ + ...) \ + KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, \ + KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, \ + KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26, KC_##k27, KC_##k28, KC_##k29, \ + __VA_ARGS__ +#define KC_LAYOUT_wrapper(...) _KC_LAYOUT_wrapper(__VA_ARGS__) + +/** Base layer with BÉPO layout. */ +#define LAYOUT_LAYER_BASE_BEPO KC_LAYOUT_wrapper( \ + B, W, P, O, QUOT, DOT, V, D, L, J, \ + A, U, I, E, COMM, C, T, S, R, N, \ + Z, Y, X, SLSH, K, M, Q, G, H, F, \ + KC_A, SPC_MBO, TAB_MED, ESC_SYM, SPC_NUM, KC_A) + +/** Convenience key shorthands. */ +#define U_NA KC_NO // Present but not available for use. +#define U_NU KC_NO // Available but not used. + +/** Convenience row shorthands. */ +#define ________________HOME_ROW_NA________________ U_NA, U_NA, U_NA, U_NA, U_NA +#define ______________HOME_ROW_GASC_L______________ KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, U_NA +#define ______________HOME_ROW_ALGR_L______________ U_NA, KC_ALGR, U_NA, U_NA, U_NA +#define ______________HOME_ROW_GASC_R______________ U_NA, KC_LCTL, KC_LSFT, KC_LALT, KC_LGUI +#define ______________HOME_ROW_ALGR_R______________ U_NA, U_NA, U_NA, KC_ALGR, U_NA + +/** Layers. */ + +// Buttons. +#define LAYOUT_LAYER_MBO \ + ________________HOME_ROW_NA________________, USR_RDO, USR_PST, USR_CPY, USR_CUT, USR_UND, \ + ______________HOME_ROW_GASC_L______________, KC_BSPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, \ + KC_BTN3, KC_ALGR, KC_BTN2, KC_BTN1, U_NA, KC_DEL, KC_HOME, KC_PGDN, KC_PGUP, KC_END, \ + U_NA, U_NA, U_NA, KC_ENT, KC_ENT, KC_ENT + +// Media. +#define LAYOUT_LAYER_MEDIA \ + ________________HOME_ROW_NA________________, USR_RDO, USR_PST, USR_CPY, USR_CUT, USR_UND, \ + ______________HOME_ROW_GASC_L______________, U_NU, MS_L, MS_D, MS_U, MS_R, \ + ______________HOME_ROW_ALGR_L______________, U_NU, WH_L, WH_D, WH_U, WH_R, \ + U_NA, U_NA, U_NA, KC_BTN1, KC_BTN3, KC_BTN2 + +// Navigation. +#define LAYOUT_LAYER_NAV \ + ________________HOME_ROW_NA________________, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, \ + ______________HOME_ROW_GASC_L______________, U_NU, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, \ + ______________HOME_ROW_ALGR_L______________, U_NU, U_NU, U_NU, U_NU, U_NU, \ + U_NA, U_NA, U_NA, KC_MSTP, KC_MPLY, U_NA + +// Mouse. +#define LAYOUT_LAYER_MOUSE \ + S_D_MOD, USR_PST, USR_CPY, USR_CUT, USR_UND, USR_RDO, USR_PST, USR_CPY, USR_CUT, USR_UND, \ + DPI_MOD, DRGSCRL, KC_LSFT, DRGSCRL, _______, U_NU, MS_L, MS_D, MS_U, MS_R, \ + USR_RDO, USR_PST, USR_CPY, KC_BTN3, USR_UND, U_NU, WH_L, WH_D, WH_U, WH_R, \ + KC_BTN3, KC_BTN1, KC_BTN2, KC_BTN1, KC_BTN3, KC_BTN2 + +// Symbols. +#define LAYOUT_LAYER_SYM \ + KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, ________________HOME_ROW_NA________________, \ + KC_COLN, KC_DLR, KC_PERC, KC_CIRC, KC_PLUS, ______________HOME_ROW_GASC_R______________, \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_MINS, ______________HOME_ROW_ALGR_R______________, \ + U_NA, KC_RPRN, KC_LPRN, U_NA, U_NA, U_NA + +// Numerals. +#define LAYOUT_LAYER_NUM \ + KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, ________________HOME_ROW_NA________________, \ + KC_SCLN, KC_4, KC_5, KC_6, KC_EQL, ______________HOME_ROW_GASC_R______________, \ + KC_GRV, KC_1, KC_2, KC_3, KC_UNDS, ______________HOME_ROW_ALGR_R______________, \ + U_NA, KC_0, KC_MINS, U_NA, U_NA, U_NA + +// Function keys. +#define LAYOUT_LAYER_FUN \ + KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, ________________HOME_ROW_NA________________, \ + KC_F11, KC_F4, KC_F5, KC_F6, KC_SLCK, ______________HOME_ROW_GASC_R______________, \ + KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUS, ______________HOME_ROW_ALGR_R______________,\ + U_NA, KC_APP, KC_TAB, U_NA, U_NA, U_NA + +/** + * Add Home Row mod to a layout. + * + * Expects a 10-key per row layout. Adds support for GASC (Gui, Alt, Shift, Ctl) + * home row. The layout passed in parameter must contain at least 20 keycodes. + * + * This is meant to be used with `LAYOUT_LAYER_BASE_BEPO` defined above, eg.: + * + * HOME_ROW_MOD_GASC(LAYOUT_LAYER_BASE_BEPO) + */ +#define _HOME_ROW_MOD_GASC( \ + L00, L01, L02, L03, L04, R05, R06, R07, R08, R09, \ + L10, L11, L12, L13, L14, R15, R16, R17, R18, R19, \ + ...) \ + L00, L01, L02, L03, L04, \ + R05, R06, R07, R08, R09, \ + LGUI_T(L10), LALT_T(L11), LSFT_T(L12), LCTL_T(L13), L14, \ + R15, RCTL_T(R16), RSFT_T(R17), LALT_T(R18), RGUI_T(R19), \ + __VA_ARGS__ +#define HOME_ROW_MOD_GASC(...) _HOME_ROW_MOD_GASC(__VA_ARGS__) + +/** + * Add mouse layer keys to a layout. + * + * Expects a 10-key per row layout. The layout passed in parameter must contain + * at least 30 keycodes. + * + * This is meant to be used with `LAYOUT_LAYER_BASE_BEPO` defined above, eg.: + * + * MOUSE_MOD(LAYOUT_LAYER_BASE_BEPO) + */ +#define _MOUSE_MOD( \ + L00, L01, L02, L03, L04, R05, R06, R07, R08, R09, \ + L10, L11, L12, L13, L14, R15, R16, R17, R18, R19, \ + L20, L21, L22, L23, L24, R25, R26, R27, R28, R29, \ + ...) \ + L00, L01, L02, L03, L04, \ + R05, R06, R07, R08, R09, \ + L10, L11, L12, L13, L14, \ + R15, R16, R17, R18, R19, \ + L20, MOUSE(L21), L22, L23, L24, \ + R25, R26, R27, R28, MOUSE(R29), \ + __VA_ARGS__ +#define MOUSE_MOD(...) _MOUSE_MOD(__VA_ARGS__) + +#define LAYOUT_wrapper(...) LAYOUT_split_3x5_3(__VA_ARGS__) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [LAYER_BASE] = LAYOUT_wrapper( + MOUSE_MOD(HOME_ROW_MOD_GASC(LAYOUT_LAYER_BASE_BEPO)) + ), + [LAYER_MBO] = LAYOUT_wrapper(LAYOUT_LAYER_MBO), + [LAYER_MEDIA] = LAYOUT_wrapper(LAYOUT_LAYER_MEDIA), + [LAYER_NAV] = LAYOUT_wrapper(LAYOUT_LAYER_NAV), + [LAYER_MOUSE] = LAYOUT_wrapper(LAYOUT_LAYER_MOUSE), + [LAYER_SYM] = LAYOUT_wrapper(LAYOUT_LAYER_SYM), + [LAYER_NUM] = LAYOUT_wrapper(LAYOUT_LAYER_NUM), + [LAYER_FUN] = LAYOUT_wrapper(LAYOUT_LAYER_FUN), +}; +// clang-format on + +#if defined(POINTING_DEVICE_ENABLE) && defined(DILEMMA_AUTO_SNIPING_ON_LAYER) +layer_state_t layer_state_set_user(layer_state_t state) { + dilemma_set_pointer_sniping_enabled(layer_state_cmp(state, DILEMMA_AUTO_SNIPING_ON_LAYER)); + return state; +} +#endif // POINTING_DEVICE_ENABLE && DILEMMA_AUTO_SNIPING_ON_LAYER + +#ifdef RGB_MATRIX_ENABLE +// Forward-declare this helper function since it is defined in rgb_matrix.c. +void rgb_matrix_update_pwm_buffers(void); +#endif + +void shutdown_user(void) { +#ifdef RGBLIGHT_ENABLE + rgblight_enable_noeeprom(); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + rgblight_setrgb_red(); +#endif // RGBLIGHT_ENABLE +#ifdef RGB_MATRIX_ENABLE + rgb_matrix_set_color_all(RGB_RED); + rgb_matrix_update_pwm_buffers(); +#endif // RGB_MATRIX_ENABLE +} diff --git a/keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/readme.md b/keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/readme.md new file mode 100644 index 00000000000..df1f43cbcb3 --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/readme.md @@ -0,0 +1,3 @@ +# Dilemma @bstiq keymap + +Inspired from Miryoku, using home-rows. diff --git a/keyboards/bastardkb/dilemma/3x5_3/keymaps/default/keymap.c b/keyboards/bastardkb/dilemma/3x5_3/keymaps/default/keymap.c new file mode 100644 index 00000000000..cbee085f261 --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_3/keymaps/default/keymap.c @@ -0,0 +1,84 @@ +/** + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 + +enum dilemma_keymap_layers { + LAYER_BASE = 0, + LAYER_NAV, + LAYER_SYM, + LAYER_NUM, +}; + +#define NAV MO(LAYER_NAV) +#define SYM MO(LAYER_SYM) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [LAYER_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_A, NAV, CAPSWRD, KC_SPC, SYM, KC_A + // ╰───────────────────────────╯ ╰──────────────────────────╯ + ), + + [LAYER_NAV] = LAYOUT_split_3x5_3( + // ╭─────────────────────────────────────────────╮ ╭─────────────────────────────────────────────╮ + KC_TAB, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, XXXXXXX, KC_HOME, KC_UP, KC_END, KC_DEL, + // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤ + KC_LSFT, KC_LCTL, KC_LALT, KC_RGUI, KC_VOLD, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC, + // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤ + QK_BOOT, EEP_RST, KC_MPRV, KC_MNXT, KC_MPLY, XXXXXXX, KC_PGDN, KC_PGUP, XXXXXXX, KC_ENT, + // ╰─────────────────────────────────────────────┤ ├─────────────────────────────────────────────╯ + KC_A, _______, KC_LSFT, KC_SPC, _______, KC_A + // ╰───────────────────────────╯ ╰──────────────────────────╯ + ), + + [LAYER_SYM] = LAYOUT_split_3x5_3( + // ╭─────────────────────────────────────────────╮ ╭─────────────────────────────────────────────╮ + KC_ESC, KC_LBRC, KC_LCBR, KC_LPRN, KC_TILD, KC_CIRC, KC_RPRN, KC_RCBR, KC_RBRC, KC_GRV, + // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤ + KC_MINS, KC_ASTR, KC_EQL, KC_UNDS, KC_DLR, KC_HASH, KC_RGUI, KC_RALT, KC_RCTL, KC_RSFT, + // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤ + KC_PLUS, KC_PIPE, KC_AT, KC_SLSH, KC_PERC, _______, KC_BSLS, KC_AMPR, KC_QUES, KC_EXLM, + // ╰─────────────────────────────────────────────┤ ├─────────────────────────────────────────────╯ + KC_A, _______, KC_LSFT, KC_SPC, _______, KC_A + // ╰───────────────────────────╯ ╰──────────────────────────╯ + ), + + [LAYER_NUM] = LAYOUT_split_3x5_3( + // ╭─────────────────────────────────────────────╮ ╭─────────────────────────────────────────────╮ + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤ + KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, KC_F11, KC_F12, KC_RGUI, KC_RALT, KC_RCTL, KC_RSFT, + // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + // ╰─────────────────────────────────────────────┤ ├─────────────────────────────────────────────╯ + KC_A, _______, KC_LSFT, KC_SPC, _______, KC_A + // ╰───────────────────────────╯ ╰──────────────────────────╯ + ), +}; +// clang-format on + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, LAYER_NAV, LAYER_SYM, LAYER_NUM); +} diff --git a/keyboards/bastardkb/dilemma/3x5_3/mcuconf.h b/keyboards/bastardkb/dilemma/3x5_3/mcuconf.h new file mode 100644 index 00000000000..f9aa8946657 --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_3/mcuconf.h @@ -0,0 +1,26 @@ +/** + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 "mcuconf.h" + +#undef RP_SPI_USE_SPI1 +#define RP_SPI_USE_SPI1 TRUE + +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C1 TRUE diff --git a/keyboards/bastardkb/dilemma/3x5_3/readme.md b/keyboards/bastardkb/dilemma/3x5_3/readme.md new file mode 100644 index 00000000000..bfddbc9efc3 --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_3/readme.md @@ -0,0 +1,5 @@ +# Next generation Dilemma keyboard + +This keyboard is an updated version of the [3x5+2 Dilemma](../3x5_2/). + +This is still under active development, and not available publicly yet. diff --git a/keyboards/bastardkb/dilemma/3x5_3/rules.mk b/keyboards/bastardkb/dilemma/3x5_3/rules.mk new file mode 100644 index 00000000000..73ee4ab1e00 --- /dev/null +++ b/keyboards/bastardkb/dilemma/3x5_3/rules.mk @@ -0,0 +1,36 @@ +# MCU name +MCU = RP2040 + +# Bootloader selection +BOOTLOADER = rp2040 + +# 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 = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +AUDIO_SUPPORTED = no # Audio is not supported +RGB_MATRIX_SUPPORTED = yes # RGB matrix is supported and enabled by default +RGBLIGHT_SUPPORTED = no # RGB underglow is supported, but not enabled by default +RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality +RGB_MATRIX_DRIVER = WS2812 + +SERIAL_DRIVER = vendor +WS2812_DRIVER = vendor + +POINTING_DEVICE_ENABLE = yes +POINTING_DEVICE_DRIVER = cirque_pinnacle_spi + +SPLIT_KEYBOARD = yes +LAYOUTS = split_3x5_3 + +# RP2040-specific options +PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS. diff --git a/keyboards/bastardkb/dilemma/config.h b/keyboards/bastardkb/dilemma/config.h index af59efb7090..7f0b5c266f1 100644 --- a/keyboards/bastardkb/dilemma/config.h +++ b/keyboards/bastardkb/dilemma/config.h @@ -47,3 +47,4 @@ // Configure for the Cirque model used on the Dilemma. #define CIRQUE_PINNACLE_DIAMETER_MM 35 #define CIRQUE_PINNACLE_CURVED_OVERLAY +#define POINTING_DEVICE_GESTURES_SCROLL_ENABLE // Circular scroll. diff --git a/keyboards/bastardkb/dilemma/dilemma.c b/keyboards/bastardkb/dilemma/dilemma.c index e710f3aab7f..793f27d2b59 100644 --- a/keyboards/bastardkb/dilemma/dilemma.c +++ b/keyboards/bastardkb/dilemma/dilemma.c @@ -1,4 +1,4 @@ -/* +/** * Copyright 2020 Christopher Courtney (@drashna) * Copyright 2021 Quentin LEBASTARD * Copyright 2022 Charly Delay (@0xcharly) @@ -316,7 +316,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record) { void eeconfig_init_kb(void) { g_dilemma_config.raw = 0; - g_dilemma_config.pointer_default_dpi = 4; + g_dilemma_config.pointer_default_dpi = 3; // DPI=1000 write_dilemma_config_to_eeprom(&g_dilemma_config); maybe_update_pointing_device_cpi(&g_dilemma_config); eeconfig_init_user(); @@ -327,3 +327,17 @@ void matrix_init_kb(void) { matrix_init_user(); } #endif // POINTING_DEVICE_ENABLE + +// Forward declare RP2040 SDK declaration. +void gpio_init(uint gpio); + +void keyboard_pre_init_user(void) { + // Ensures that GP26 through GP29 are initialized as digital inputs (as + // opposed to analog inputs). These GPIOs are shared with A0 through A3, + // respectively. On RP2040-B2 and later, the digital inputs are disabled by + // default (see RP2040-E6). + gpio_init(GP26); + gpio_init(GP27); + gpio_init(GP28); + gpio_init(GP29); +} diff --git a/keyboards/bastardkb/dilemma/dilemma.h b/keyboards/bastardkb/dilemma/dilemma.h index fbf54c804bb..68d86b03ce9 100644 --- a/keyboards/bastardkb/dilemma/dilemma.h +++ b/keyboards/bastardkb/dilemma/dilemma.h @@ -17,27 +17,18 @@ #pragma once -#include "quantum.h" - // clang-format off -#define LAYOUT_split_3x5_2( \ - k00, k01, k02, k03, k04, k44, k43, k42, k41, k40, \ - k10, k11, k12, k13, k14, k54, k53, k52, k51, k50, \ - k20, k21, k22, k23, k24, k64, k63, k62, k61, k60, \ - k30, k32, k72, k70 \ -) \ -{ \ - { k00, k01, k02, k03, k04 }, \ - { k10, k11, k12, k13, k14 }, \ - { k20, k21, k22, k23, k24 }, \ - { k30, KC_NO, k32, KC_NO, KC_NO }, \ - { k40, k41, k42, k43, k44 }, \ - { k50, k51, k52, k53, k54 }, \ - { k60, k61, k62, k63, k64 }, \ - { k70, KC_NO, k72, KC_NO, KC_NO }, \ -} +#if defined(KEYBOARD_bastardkb_dilemma_3x5_2_splinky) || defined (KEYBOARD_bastardkb_dilemma_3x5_2_assembled) +# include "3x5_2.h" +#elif defined(KEYBOARD_bastardkb_dilemma_3x5_3) +# include "3x5_3.h" +#else +# error "Unsuported format" +#endif // clang-format on +#include "quantum.h" + #ifdef POINTING_DEVICE_ENABLE # ifndef NO_DILEMMA_KEYCODES enum dilemma_keycodes { diff --git a/keyboards/bastardkb/dilemma/elitec/info.json b/keyboards/bastardkb/dilemma/elitec/info.json deleted file mode 100644 index f5916f3ab1e..00000000000 --- a/keyboards/bastardkb/dilemma/elitec/info.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "keyboard_name": "Dilemma Elite-C", - "usb": { - "device_version": "1.0.0", - }, -} diff --git a/keyboards/bastardkb/dilemma/elitec/rules.mk b/keyboards/bastardkb/dilemma/elitec/rules.mk deleted file mode 100644 index e8326bcf099..00000000000 --- a/keyboards/bastardkb/dilemma/elitec/rules.mk +++ /dev/null @@ -1,5 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu diff --git a/keyboards/bastardkb/dilemma/info.json b/keyboards/bastardkb/dilemma/info.json index 67642199691..989d66a177c 100644 --- a/keyboards/bastardkb/dilemma/info.json +++ b/keyboards/bastardkb/dilemma/info.json @@ -1,46 +1,3 @@ { "url": "https://bastardkb.com/dilemma", - "usb": { - "pid": "0x1835", - }, - "layouts": { - "LAYOUT_split_3x5_2": { - "layout": [ - {"label":"L00", "x":0, "y":0}, - {"label":"L01", "x":1, "y":0}, - {"label":"L02", "x":2, "y":0}, - {"label":"L03", "x":3, "y":0}, - {"label":"L04", "x":4, "y":0}, - {"label":"R00", "x":11, "y":0}, - {"label":"R01", "x":12, "y":0}, - {"label":"R02", "x":13, "y":0}, - {"label":"R03", "x":14, "y":0}, - {"label":"R04", "x":15, "y":0}, - {"label":"L10", "x":0, "y":1}, - {"label":"L11", "x":1, "y":1}, - {"label":"L12", "x":2, "y":1}, - {"label":"L13", "x":3, "y":1}, - {"label":"L14", "x":4, "y":1}, - {"label":"R10", "x":11, "y":1}, - {"label":"R11", "x":12, "y":1}, - {"label":"R12", "x":13, "y":1}, - {"label":"R13", "x":14, "y":1}, - {"label":"R14", "x":15, "y":1}, - {"label":"L20", "x":0, "y":2}, - {"label":"L21", "x":1, "y":2}, - {"label":"L22", "x":2, "y":2}, - {"label":"L23", "x":3, "y":2}, - {"label":"L24", "x":4, "y":2}, - {"label":"R20", "x":11, "y":2}, - {"label":"R21", "x":12, "y":2}, - {"label":"R22", "x":13, "y":2}, - {"label":"R23", "x":14, "y":2}, - {"label":"R24", "x":15, "y":2}, - {"label":"L30", "x":4, "y":3}, - {"label":"L32", "x":5, "y":3}, - {"label":"R32", "x":10, "y":3}, - {"label":"R30", "x":11, "y":3} - ] - } - } } diff --git a/keyboards/bastardkb/dilemma/readme.md b/keyboards/bastardkb/dilemma/readme.md index ecd1f9f1c91..ac3c818bd6f 100644 --- a/keyboards/bastardkb/dilemma/readme.md +++ b/keyboards/bastardkb/dilemma/readme.md @@ -3,12 +3,14 @@ A very small keyboard made for ergonomic enthusiasts. - Keyboard Maintainer: [Bastard Keyboards](https://github.com/Bastardkb/) -- Hardware Supported: elite-C V4, Splinky +- Hardware Supported: RP2040-based controller (_eg._ Splinky, Elite-c, ...) - Hardware Availability: [Bastardkb.com](https://bastardkb.com/) +A pre-assembled version (with embedded controller) is also available. + Make example for this keyboard (after setting up your build environment): - make bastardkb/dilemma/elitec:default - make bastardkb/dilemma/splinky:default + make bastardkb/dilemma/3x5_2/splinky:default + make bastardkb/dilemma/3x5_2/assembled:default See the [keyboard build instructions](http://docs.bastardkb.com/) diff --git a/keyboards/bastardkb/dilemma/splinky/info.json b/keyboards/bastardkb/dilemma/splinky/info.json deleted file mode 100644 index 07ee320bb90..00000000000 --- a/keyboards/bastardkb/dilemma/splinky/info.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "keyboard_name": "Dilemma Splinky", - "usb": { - "device_version": "1.0.0", - }, -} diff --git a/keyboards/bastardkb/dilemma/splinky/rules.mk b/keyboards/bastardkb/dilemma/splinky/rules.mk deleted file mode 100644 index 9c593c6ed83..00000000000 --- a/keyboards/bastardkb/dilemma/splinky/rules.mk +++ /dev/null @@ -1,9 +0,0 @@ -# MCU name -MCU = RP2040 - -# Bootloader selection -BOOTLOADER = rp2040 - -# RP2040-specific options -PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS. -SERIAL_DRIVER = vendor diff --git a/keyboards/bastardkb/scylla/blackpill/halconf.h b/keyboards/bastardkb/scylla/blackpill/halconf.h index 0d4b7b5dc50..1ba700a80fa 100644 --- a/keyboards/bastardkb/scylla/blackpill/halconf.h +++ b/keyboards/bastardkb/scylla/blackpill/halconf.h @@ -1,4 +1,4 @@ -/* +/** * Copyright 2020 Nick Brassel (tzarc) * Copyright 2022 Charly Delay (@0xcharly) * @@ -20,10 +20,8 @@ #define HAL_USE_PWM TRUE #define HAL_USE_SERIAL TRUE -//#define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE #define SPI_USE_WAIT TRUE #define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#define HAL_USE_GPT TRUE #include_next diff --git a/keyboards/bastardkb/scylla/blackpill/mcuconf.h b/keyboards/bastardkb/scylla/blackpill/mcuconf.h index e7cf3681fd3..2b3f30cbfe7 100644 --- a/keyboards/bastardkb/scylla/blackpill/mcuconf.h +++ b/keyboards/bastardkb/scylla/blackpill/mcuconf.h @@ -21,39 +21,15 @@ #include_next -#undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 FALSE - -//#undef STM32_I2C_I2C1_RX_DMA_STREAM -//#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) -//#undef STM32_I2C_I2C1_TX_DMA_STREAM -//#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1) +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE #undef STM32_PWM_USE_TIM2 #define STM32_PWM_USE_TIM2 TRUE -//#undef STM32_PWM_USE_TIM3 -//#define STM32_PWM_USE_TIM3 TRUE - -#undef STM32_SPI_USE_SPI1 -#define STM32_SPI_USE_SPI1 TRUE - -//#undef STM32_SPI_SPI1_RX_DMA_STREAM -//#define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 0) -//#undef STM32_SPI_SPI1_TX_DMA_STREAM -//#define STM32_SPI_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 3) - #undef STM32_SERIAL_USE_USART1 #define STM32_SERIAL_USE_USART1 TRUE -//#undef STM32_SERIAL_USE_USART2 -//#define STM32_SERIAL_USE_USART2 TRUE - -//#undef STM32_UART_USART2_RX_DMA_STREAM -//#define STM32_UART_USART2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -//#undef STM32_UART_USART2_TX_DMA_STREAM -//#define STM32_UART_USART2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) - #undef STM32_GPT_USE_TIM3 #define STM32_GPT_USE_TIM3 TRUE diff --git a/keyboards/bastardkb/scylla/readme.md b/keyboards/bastardkb/scylla/readme.md index 5a83083b96c..830b8eacdad 100644 --- a/keyboards/bastardkb/scylla/readme.md +++ b/keyboards/bastardkb/scylla/readme.md @@ -6,17 +6,24 @@ A modern, low-profile split ergonomic keyboard * Hardware Supported: elite-C V4 * Hardware Availability: [Bastard Keyboards](https://bastardkb.com/) -Make example for this keyboard (after setting up your build environment): +## Building the firmware - make bastardkb/scylla:default +**You must specify the shield version when compiling/flashing the firmware.** + +The template is: + +```shell +qmk compile -kb bastardkb/scylla/{VERSION}/elitec -km {KEYMAP} +``` + +| Shield Version | default | via | +| --------------- | ------------------------------------------------------------- | --------------------------------------------------------- | +| v1 (Elite-C) | `qmk compile -kb bastardkb/scylla/v1/elitec -km default` | `qmk compile -kb bastardkb/scylla/v1/elitec -km via` | +| v2 (Elite-C) | `qmk compile -kb bastardkb/scylla/v2/elitec -km default` | `qmk compile -kb bastardkb/scylla/v2/elitec -km via` | +| v2 (Splinky v2) | `qmk compile -kb bastardkb/scylla/v2/splinky/v2 -km default` | `qmk compile -kb bastardkb/scylla/v2/splinky/v2 -km via` | +| v2 (Splinky v3) | `qmk compile -kb bastardkb/scylla/v2/splinky/v3 -km default` | `qmk compile -kb bastardkb/scylla/v2/splinky/v3 -km via` | +| v2 (STeMCell) | `qmk compile -kb bastardkb/scylla/v2/stemcell -km default` | `qmk compile -kb bastardkb/scylla/v2/stemcell -km via` | See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). See the [keyboard build instructions](https://docs.bastardkb.com) - - -## Important information regarding the reset - -If you modify this firmware, make sure to always have a `QK_BOOT` key that can be triggered using only the master side ! This way you ensure that you can always flash the keyboard, even if you mess up. - -Otherwise if you're stuck, open the case and reset manually by shorting Gnd and Rst, or pressing the RST button. diff --git a/keyboards/bastardkb/scylla/v2/splinky/config.h b/keyboards/bastardkb/scylla/v2/splinky/config.h index 5f678fb331a..8bfd59d28c2 100644 --- a/keyboards/bastardkb/scylla/v2/splinky/config.h +++ b/keyboards/bastardkb/scylla/v2/splinky/config.h @@ -20,8 +20,6 @@ /* Key matrix configuration. */ #define MATRIX_ROW_PINS \ { GP29, GP26, GP5, GP4, GP9 } -#define MATRIX_COL_PINS \ - { GP27, GP28, GP15, GP6, GP7, GP8 } /* Handedness. */ #define MASTER_RIGHT diff --git a/keyboards/bastardkb/scylla/v2/splinky/readme.md b/keyboards/bastardkb/scylla/v2/splinky/readme.md new file mode 100644 index 00000000000..22df77bbaa8 --- /dev/null +++ b/keyboards/bastardkb/scylla/v2/splinky/readme.md @@ -0,0 +1,6 @@ +# Splinky controller + +The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040. + +See https://github.com/plut0nium/0xB2/#releases to figure out the right version +for you (v2 and v3) supported. diff --git a/keyboards/bastardkb/scylla/v2/splinky/v2/config.h b/keyboards/bastardkb/scylla/v2/splinky/v2/config.h new file mode 100644 index 00000000000..be0e2fb9591 --- /dev/null +++ b/keyboards/bastardkb/scylla/v2/splinky/v2/config.h @@ -0,0 +1,22 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 + +/* Key matrix configuration. */ +#define MATRIX_COL_PINS \ + { GP27, GP28, GP15, GP6, GP7, GP8 } diff --git a/keyboards/bastardkb/scylla/v2/splinky/v2/rules.mk b/keyboards/bastardkb/scylla/v2/splinky/v2/rules.mk new file mode 100644 index 00000000000..c9c50319dbb --- /dev/null +++ b/keyboards/bastardkb/scylla/v2/splinky/v2/rules.mk @@ -0,0 +1,2 @@ +# Intentionally blank so that QMK detects this folder as a valid keyboard +# parameter. diff --git a/keyboards/bastardkb/scylla/v2/splinky/v3/config.h b/keyboards/bastardkb/scylla/v2/splinky/v3/config.h new file mode 100644 index 00000000000..72f5c0ffa81 --- /dev/null +++ b/keyboards/bastardkb/scylla/v2/splinky/v3/config.h @@ -0,0 +1,22 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 + +/* Key matrix configuration. */ +#define MATRIX_COL_PINS \ + { GP27, GP28, GP21, GP6, GP7, GP8 } diff --git a/keyboards/bastardkb/scylla/v2/splinky/v3/rules.mk b/keyboards/bastardkb/scylla/v2/splinky/v3/rules.mk new file mode 100644 index 00000000000..c9c50319dbb --- /dev/null +++ b/keyboards/bastardkb/scylla/v2/splinky/v3/rules.mk @@ -0,0 +1,2 @@ +# Intentionally blank so that QMK detects this folder as a valid keyboard +# parameter. diff --git a/keyboards/bastardkb/scylla/v2/stemcell/config.h b/keyboards/bastardkb/scylla/v2/stemcell/config.h new file mode 100644 index 00000000000..578e23f40ac --- /dev/null +++ b/keyboards/bastardkb/scylla/v2/stemcell/config.h @@ -0,0 +1,48 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 + +/* Key matrix configuration. */ +#define MATRIX_ROW_PINS \ + { F4, F7, C6, D4, B5 } +#define MATRIX_COL_PINS \ + { F6, F5, B6, D7, E6, B4 } + +/* Handedness. */ +#define MASTER_RIGHT + +// To use the handedness pin, resistors need to be installed on the adapter PCB. +// If so, uncomment the following code, and undefine MASTER_RIGHT above. +// #define A0 PAL_LINE(GPIOA, 0) +// #define SPLIT_HAND_PIN A0 +// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* serial.c configuration (for split keyboard). */ +#define SOFT_SERIAL_PIN D2 + +/* RGB settings. */ +#define RGB_DI_PIN D3 +#define WS2812_PWM_DRIVER PWMD2 +#define WS2812_PWM_CHANNEL 4 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 +#define WS2812_DMA_CHANNEL 3 + +/* CRC. */ +#define CRC8_USE_TABLE +#define CRC8_OPTIMIZE_SPEED diff --git a/keyboards/bastardkb/scylla/v2/stemcell/halconf.h b/keyboards/bastardkb/scylla/v2/stemcell/halconf.h new file mode 100644 index 00000000000..dbeb6aeaa07 --- /dev/null +++ b/keyboards/bastardkb/scylla/v2/stemcell/halconf.h @@ -0,0 +1,23 @@ +/* + * Copyright 2021 Charly Delay (@0xcharly) + * + * 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_PWM TRUE +#define HAL_USE_SERIAL TRUE + +#include_next diff --git a/keyboards/bastardkb/scylla/v2/stemcell/info.json b/keyboards/bastardkb/scylla/v2/stemcell/info.json new file mode 100644 index 00000000000..46e33a828c1 --- /dev/null +++ b/keyboards/bastardkb/scylla/v2/stemcell/info.json @@ -0,0 +1,6 @@ +{ + "keyboard_name": "Scylla STeMCell", + "usb": { + "device_version": "2.0.0" + } +} diff --git a/keyboards/bastardkb/scylla/v2/stemcell/mcuconf.h b/keyboards/bastardkb/scylla/v2/stemcell/mcuconf.h new file mode 100644 index 00000000000..6afebade36c --- /dev/null +++ b/keyboards/bastardkb/scylla/v2/stemcell/mcuconf.h @@ -0,0 +1,29 @@ +/* + * Copyright 2021 Charly Delay (@0xcharly) + * + * 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 STM32_SERIAL_USE_USART1 +#define STM32_SERIAL_USE_USART1 FALSE + +#undef STM32_PWM_USE_TIM2 +#define STM32_PWM_USE_TIM2 TRUE + +#undef STM32_ST_USE_TIMER +#define STM32_ST_USE_TIMER 5 diff --git a/keyboards/bastardkb/scylla/v2/stemcell/rules.mk b/keyboards/bastardkb/scylla/v2/stemcell/rules.mk new file mode 100644 index 00000000000..39fc183e1dd --- /dev/null +++ b/keyboards/bastardkb/scylla/v2/stemcell/rules.mk @@ -0,0 +1,32 @@ +# MCU name +MCU = STM32F411 + +# Bootloader selection +BOOTLOADER = stm32-dfu +CONVERT_TO = stemcell + +# 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 = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +AUDIO_SUPPORTED = no # Audio is not supported +RGB_MATRIX_SUPPORTED = yes # RGB matrix is supported and enabled by default +RGBLIGHT_SUPPORTED = yes # RGB underglow is supported, but not enabled by default +RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality +RGB_MATRIX_DRIVER = WS2812 + +SPLIT_KEYBOARD = yes + +SERIAL_DRIVER = usart +WS2812_DRIVER = pwm + +DEBOUNCE_TYPE = asym_eager_defer_pk diff --git a/keyboards/bastardkb/skeletyl/blackpill/halconf.h b/keyboards/bastardkb/skeletyl/blackpill/halconf.h index 0d4b7b5dc50..1ba700a80fa 100644 --- a/keyboards/bastardkb/skeletyl/blackpill/halconf.h +++ b/keyboards/bastardkb/skeletyl/blackpill/halconf.h @@ -1,4 +1,4 @@ -/* +/** * Copyright 2020 Nick Brassel (tzarc) * Copyright 2022 Charly Delay (@0xcharly) * @@ -20,10 +20,8 @@ #define HAL_USE_PWM TRUE #define HAL_USE_SERIAL TRUE -//#define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE #define SPI_USE_WAIT TRUE #define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#define HAL_USE_GPT TRUE #include_next diff --git a/keyboards/bastardkb/skeletyl/blackpill/mcuconf.h b/keyboards/bastardkb/skeletyl/blackpill/mcuconf.h index e7cf3681fd3..2b3f30cbfe7 100644 --- a/keyboards/bastardkb/skeletyl/blackpill/mcuconf.h +++ b/keyboards/bastardkb/skeletyl/blackpill/mcuconf.h @@ -21,39 +21,15 @@ #include_next -#undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 FALSE - -//#undef STM32_I2C_I2C1_RX_DMA_STREAM -//#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) -//#undef STM32_I2C_I2C1_TX_DMA_STREAM -//#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1) +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE #undef STM32_PWM_USE_TIM2 #define STM32_PWM_USE_TIM2 TRUE -//#undef STM32_PWM_USE_TIM3 -//#define STM32_PWM_USE_TIM3 TRUE - -#undef STM32_SPI_USE_SPI1 -#define STM32_SPI_USE_SPI1 TRUE - -//#undef STM32_SPI_SPI1_RX_DMA_STREAM -//#define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 0) -//#undef STM32_SPI_SPI1_TX_DMA_STREAM -//#define STM32_SPI_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 3) - #undef STM32_SERIAL_USE_USART1 #define STM32_SERIAL_USE_USART1 TRUE -//#undef STM32_SERIAL_USE_USART2 -//#define STM32_SERIAL_USE_USART2 TRUE - -//#undef STM32_UART_USART2_RX_DMA_STREAM -//#define STM32_UART_USART2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -//#undef STM32_UART_USART2_TX_DMA_STREAM -//#define STM32_UART_USART2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) - #undef STM32_GPT_USE_TIM3 #define STM32_GPT_USE_TIM3 TRUE diff --git a/keyboards/bastardkb/skeletyl/readme.md b/keyboards/bastardkb/skeletyl/readme.md index 6c36b583564..5a595d338f3 100644 --- a/keyboards/bastardkb/skeletyl/readme.md +++ b/keyboards/bastardkb/skeletyl/readme.md @@ -6,10 +6,24 @@ A very small keyboard made for ergonomic enthusiasts. * Hardware Supported: elite-C V4 * Hardware Availability: [Bastardkb.com](https://bastardkb.com/) -Make example for this keyboard (after setting up your build environment): +## Building the firmware + +**You must specify the shield version when compiling/flashing the firmware.** + +The template is: + +```shell +qmk compile -kb bastardkb/skeletyl/{VERSION}/elitec -km {KEYMAP} +``` + +| Shield Version | default | via | +| --------------- | --------------------------------------------------------------- | ----------------------------------------------------------- | +| v1 (Elite-C) | `qmk compile -kb bastardkb/skeletyl/v1/elitec -km default` | `qmk compile -kb bastardkb/skeletyl/v1/elitec -km via` | +| v2 (Elite-C) | `qmk compile -kb bastardkb/skeletyl/v2/elitec -km default` | `qmk compile -kb bastardkb/skeletyl/v2/elitec -km via` | +| v2 (Splinky v2) | `qmk compile -kb bastardkb/skeletyl/v2/splinky/v2 -km default` | `qmk compile -kb bastardkb/skeletyl/v2/splinky/v2 -km via` | +| v2 (Splinky v3) | `qmk compile -kb bastardkb/skeletyl/v2/splinky/v3 -km default` | `qmk compile -kb bastardkb/skeletyl/v2/splinky/v3 -km via` | +| v2 (STeMCell) | `qmk compile -kb bastardkb/skeletyl/v2/stemcell -km default` | `qmk compile -kb bastardkb/skeletyl/v2/stemcell -km via` | - make bastardkb/skeletyl:default - This keyboard is made to be used with the Miryoku layout, do not use the default keymap. 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/bastardkb/skeletyl/v2/splinky/config.h b/keyboards/bastardkb/skeletyl/v2/splinky/config.h index 02a8bd6551a..c4e5b3ff906 100644 --- a/keyboards/bastardkb/skeletyl/v2/splinky/config.h +++ b/keyboards/bastardkb/skeletyl/v2/splinky/config.h @@ -20,8 +20,6 @@ /* Key matrix configuration. */ #define MATRIX_ROW_PINS \ { GP26, GP5, GP4, GP9 } -#define MATRIX_COL_PINS \ - { GP28, GP15, GP6, GP7, GP8 } /* Handedness. */ #define MASTER_RIGHT diff --git a/keyboards/bastardkb/skeletyl/v2/splinky/readme.md b/keyboards/bastardkb/skeletyl/v2/splinky/readme.md new file mode 100644 index 00000000000..22df77bbaa8 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v2/splinky/readme.md @@ -0,0 +1,6 @@ +# Splinky controller + +The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040. + +See https://github.com/plut0nium/0xB2/#releases to figure out the right version +for you (v2 and v3) supported. diff --git a/keyboards/bastardkb/skeletyl/v2/splinky/v2/config.h b/keyboards/bastardkb/skeletyl/v2/splinky/v2/config.h new file mode 100644 index 00000000000..ac86fa83e6f --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v2/splinky/v2/config.h @@ -0,0 +1,22 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 + +/* Key matrix configuration. */ +#define MATRIX_COL_PINS \ + { GP28, GP15, GP6, GP7, GP8 } diff --git a/keyboards/bastardkb/skeletyl/v2/splinky/v2/rules.mk b/keyboards/bastardkb/skeletyl/v2/splinky/v2/rules.mk new file mode 100644 index 00000000000..c9c50319dbb --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v2/splinky/v2/rules.mk @@ -0,0 +1,2 @@ +# Intentionally blank so that QMK detects this folder as a valid keyboard +# parameter. diff --git a/keyboards/bastardkb/skeletyl/v2/splinky/v3/config.h b/keyboards/bastardkb/skeletyl/v2/splinky/v3/config.h new file mode 100644 index 00000000000..d78a36c97ff --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v2/splinky/v3/config.h @@ -0,0 +1,22 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 + +/* Key matrix configuration. */ +#define MATRIX_COL_PINS \ + { GP28, GP21, GP6, GP7, GP8 } diff --git a/keyboards/bastardkb/skeletyl/v2/splinky/v3/rules.mk b/keyboards/bastardkb/skeletyl/v2/splinky/v3/rules.mk new file mode 100644 index 00000000000..c9c50319dbb --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v2/splinky/v3/rules.mk @@ -0,0 +1,2 @@ +# Intentionally blank so that QMK detects this folder as a valid keyboard +# parameter. diff --git a/keyboards/bastardkb/dilemma/elitec/config.h b/keyboards/bastardkb/skeletyl/v2/stemcell/config.h similarity index 69% rename from keyboards/bastardkb/dilemma/elitec/config.h rename to keyboards/bastardkb/skeletyl/v2/stemcell/config.h index 0f26e46fdbb..44acd40e7b8 100644 --- a/keyboards/bastardkb/dilemma/elitec/config.h +++ b/keyboards/bastardkb/skeletyl/v2/stemcell/config.h @@ -19,19 +19,30 @@ /* Key matrix configuration. */ #define MATRIX_ROW_PINS \ - { D4, C6, F5, F7 } + { F7, C6, D4, B5 } #define MATRIX_COL_PINS \ - { B4, B5, E6, D7, F6 } + { F5, B6, D7, E6, B4 } /* Handedness. */ #define MASTER_RIGHT -// To use the handedness pin, resistors need to be installed on the PCB. +// To use the handedness pin, resistors need to be installed on the adapter PCB. // If so, uncomment the following code, and undefine MASTER_RIGHT above. -//#define SPLIT_HAND_PIN F4 -// If you've soldered the handedness pull-up on the upper side instead of the -// left one, uncomment the following line. -//#define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. +// #define A0 PAL_LINE(GPIOA, 0) +// #define SPLIT_HAND_PIN A0 +// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. /* serial.c configuration (for split keyboard). */ #define SOFT_SERIAL_PIN D2 + +/* RGB settings. */ +#define RGB_DI_PIN D3 +#define WS2812_PWM_DRIVER PWMD2 +#define WS2812_PWM_CHANNEL 4 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 +#define WS2812_DMA_CHANNEL 3 + +/* CRC. */ +#define CRC8_USE_TABLE +#define CRC8_OPTIMIZE_SPEED diff --git a/keyboards/bastardkb/skeletyl/v2/stemcell/halconf.h b/keyboards/bastardkb/skeletyl/v2/stemcell/halconf.h new file mode 100644 index 00000000000..dbeb6aeaa07 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v2/stemcell/halconf.h @@ -0,0 +1,23 @@ +/* + * Copyright 2021 Charly Delay (@0xcharly) + * + * 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_PWM TRUE +#define HAL_USE_SERIAL TRUE + +#include_next diff --git a/keyboards/bastardkb/skeletyl/v2/stemcell/info.json b/keyboards/bastardkb/skeletyl/v2/stemcell/info.json new file mode 100644 index 00000000000..df805a62292 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v2/stemcell/info.json @@ -0,0 +1,6 @@ +{ + "keyboard_name": "Skeletyl STeMCell", + "usb": { + "device_version": "2.0.0" + } +} diff --git a/keyboards/bastardkb/skeletyl/v2/stemcell/mcuconf.h b/keyboards/bastardkb/skeletyl/v2/stemcell/mcuconf.h new file mode 100644 index 00000000000..6afebade36c --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v2/stemcell/mcuconf.h @@ -0,0 +1,29 @@ +/* + * Copyright 2021 Charly Delay (@0xcharly) + * + * 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 STM32_SERIAL_USE_USART1 +#define STM32_SERIAL_USE_USART1 FALSE + +#undef STM32_PWM_USE_TIM2 +#define STM32_PWM_USE_TIM2 TRUE + +#undef STM32_ST_USE_TIMER +#define STM32_ST_USE_TIMER 5 diff --git a/keyboards/bastardkb/skeletyl/v2/stemcell/rules.mk b/keyboards/bastardkb/skeletyl/v2/stemcell/rules.mk new file mode 100644 index 00000000000..ff20b0c7421 --- /dev/null +++ b/keyboards/bastardkb/skeletyl/v2/stemcell/rules.mk @@ -0,0 +1,33 @@ +# MCU name +MCU = STM32F411 + +# Bootloader selection +BOOTLOADER = stm32-dfu +CONVERT_TO = stemcell + +# 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 = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +AUDIO_SUPPORTED = no # Audio is not supported +RGB_MATRIX_SUPPORTED = yes # RGB matrix is supported and enabled by default +RGBLIGHT_SUPPORTED = yes # RGB underglow is supported, but not enabled by default +RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality +RGB_MATRIX_DRIVER = WS2812 + +SPLIT_KEYBOARD = yes +LAYOUTS = split_3x5_3 + +SERIAL_DRIVER = usart +WS2812_DRIVER = pwm + +DEBOUNCE_TYPE = asym_eager_defer_pk diff --git a/keyboards/bastardkb/tbkmini/blackpill/halconf.h b/keyboards/bastardkb/tbkmini/blackpill/halconf.h index 0d4b7b5dc50..1ba700a80fa 100644 --- a/keyboards/bastardkb/tbkmini/blackpill/halconf.h +++ b/keyboards/bastardkb/tbkmini/blackpill/halconf.h @@ -1,4 +1,4 @@ -/* +/** * Copyright 2020 Nick Brassel (tzarc) * Copyright 2022 Charly Delay (@0xcharly) * @@ -20,10 +20,8 @@ #define HAL_USE_PWM TRUE #define HAL_USE_SERIAL TRUE -//#define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE #define SPI_USE_WAIT TRUE #define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#define HAL_USE_GPT TRUE #include_next diff --git a/keyboards/bastardkb/tbkmini/blackpill/mcuconf.h b/keyboards/bastardkb/tbkmini/blackpill/mcuconf.h index e7cf3681fd3..2b3f30cbfe7 100644 --- a/keyboards/bastardkb/tbkmini/blackpill/mcuconf.h +++ b/keyboards/bastardkb/tbkmini/blackpill/mcuconf.h @@ -21,39 +21,15 @@ #include_next -#undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 FALSE - -//#undef STM32_I2C_I2C1_RX_DMA_STREAM -//#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0) -//#undef STM32_I2C_I2C1_TX_DMA_STREAM -//#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1) +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE #undef STM32_PWM_USE_TIM2 #define STM32_PWM_USE_TIM2 TRUE -//#undef STM32_PWM_USE_TIM3 -//#define STM32_PWM_USE_TIM3 TRUE - -#undef STM32_SPI_USE_SPI1 -#define STM32_SPI_USE_SPI1 TRUE - -//#undef STM32_SPI_SPI1_RX_DMA_STREAM -//#define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 0) -//#undef STM32_SPI_SPI1_TX_DMA_STREAM -//#define STM32_SPI_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 3) - #undef STM32_SERIAL_USE_USART1 #define STM32_SERIAL_USE_USART1 TRUE -//#undef STM32_SERIAL_USE_USART2 -//#define STM32_SERIAL_USE_USART2 TRUE - -//#undef STM32_UART_USART2_RX_DMA_STREAM -//#define STM32_UART_USART2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -//#undef STM32_UART_USART2_TX_DMA_STREAM -//#define STM32_UART_USART2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6) - #undef STM32_GPT_USE_TIM3 #define STM32_GPT_USE_TIM3 TRUE diff --git a/keyboards/bastardkb/tbkmini/readme.md b/keyboards/bastardkb/tbkmini/readme.md index 8be8200ff9a..74e24ff5069 100644 --- a/keyboards/bastardkb/tbkmini/readme.md +++ b/keyboards/bastardkb/tbkmini/readme.md @@ -6,10 +6,24 @@ A split, compact ergonomic keyboard. * Hardware Supported: elite-C V4 * Hardware Availability: [Bastardkb.com](https://bastardkb.com/) -Make example for this keyboard (after setting up your build environment): +## Building the firmware - make bastardkb/tbkmini:default +**You must specify the shield version when compiling/flashing the firmware.** + +The template is: + +```shell +qmk compile -kb bastardkb/tbkmini/{VERSION}/elitec -km {KEYMAP} +``` + +| Shield Version | default | via | +| --------------- | -------------------------------------------------------------- | ---------------------------------------------------------- | +| v1 (Elite-C) | `qmk compile -kb bastardkb/tbkmini/v1/elitec -km default` | `qmk compile -kb bastardkb/tbkmini/v1/elitec -km via` | +| v2 (Elite-C) | `qmk compile -kb bastardkb/tbkmini/v2/elitec -km default` | `qmk compile -kb bastardkb/tbkmini/v2/elitec -km via` | +| v2 (Splinky v2) | `qmk compile -kb bastardkb/tbkmini/v2/splinky/v2 -km default` | `qmk compile -kb bastardkb/tbkmini/v2/splinky/v2 -km via` | +| v2 (Splinky v3) | `qmk compile -kb bastardkb/tbkmini/v2/splinky/v3 -km default` | `qmk compile -kb bastardkb/tbkmini/v2/splinky/v3 -km via` | +| v2 (STeMCell) | `qmk compile -kb bastardkb/tbkmini/v2/stemcell -km default` | `qmk compile -kb bastardkb/tbkmini/v2/stemcell -km via` | See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). -See the [keyboard build instructions](http://docs.bastardkb.com/) \ No newline at end of file +See the [keyboard build instructions](http://docs.bastardkb.com/) diff --git a/keyboards/bastardkb/tbkmini/v2/splinky/config.h b/keyboards/bastardkb/tbkmini/v2/splinky/config.h index ed0b4a6a548..c4e5b3ff906 100644 --- a/keyboards/bastardkb/tbkmini/v2/splinky/config.h +++ b/keyboards/bastardkb/tbkmini/v2/splinky/config.h @@ -20,8 +20,6 @@ /* Key matrix configuration. */ #define MATRIX_ROW_PINS \ { GP26, GP5, GP4, GP9 } -#define MATRIX_COL_PINS \ - { GP27, GP28, GP15, GP6, GP7, GP8 } /* Handedness. */ #define MASTER_RIGHT diff --git a/keyboards/bastardkb/tbkmini/v2/splinky/readme.md b/keyboards/bastardkb/tbkmini/v2/splinky/readme.md new file mode 100644 index 00000000000..22df77bbaa8 --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v2/splinky/readme.md @@ -0,0 +1,6 @@ +# Splinky controller + +The splinky is a Pro-Micro/Elite-C replacement with USB-C and RP2040. + +See https://github.com/plut0nium/0xB2/#releases to figure out the right version +for you (v2 and v3) supported. diff --git a/keyboards/bastardkb/tbkmini/v2/splinky/v2/config.h b/keyboards/bastardkb/tbkmini/v2/splinky/v2/config.h new file mode 100644 index 00000000000..be0e2fb9591 --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v2/splinky/v2/config.h @@ -0,0 +1,22 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 + +/* Key matrix configuration. */ +#define MATRIX_COL_PINS \ + { GP27, GP28, GP15, GP6, GP7, GP8 } diff --git a/keyboards/bastardkb/tbkmini/v2/splinky/v2/rules.mk b/keyboards/bastardkb/tbkmini/v2/splinky/v2/rules.mk new file mode 100644 index 00000000000..c9c50319dbb --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v2/splinky/v2/rules.mk @@ -0,0 +1,2 @@ +# Intentionally blank so that QMK detects this folder as a valid keyboard +# parameter. diff --git a/keyboards/bastardkb/tbkmini/v2/splinky/v3/config.h b/keyboards/bastardkb/tbkmini/v2/splinky/v3/config.h new file mode 100644 index 00000000000..72f5c0ffa81 --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v2/splinky/v3/config.h @@ -0,0 +1,22 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 + +/* Key matrix configuration. */ +#define MATRIX_COL_PINS \ + { GP27, GP28, GP21, GP6, GP7, GP8 } diff --git a/keyboards/bastardkb/tbkmini/v2/splinky/v3/rules.mk b/keyboards/bastardkb/tbkmini/v2/splinky/v3/rules.mk new file mode 100644 index 00000000000..c9c50319dbb --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v2/splinky/v3/rules.mk @@ -0,0 +1,2 @@ +# Intentionally blank so that QMK detects this folder as a valid keyboard +# parameter. diff --git a/keyboards/bastardkb/tbkmini/v2/stemcell/config.h b/keyboards/bastardkb/tbkmini/v2/stemcell/config.h new file mode 100644 index 00000000000..0c66a8075b1 --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v2/stemcell/config.h @@ -0,0 +1,48 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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 + +/* Key matrix configuration. */ +#define MATRIX_ROW_PINS \ + { F7, C6, D4, B5 } +#define MATRIX_COL_PINS \ + { F6, F5, B6, D7, E6, B4 } + +/* Handedness. */ +#define MASTER_RIGHT + +// To use the handedness pin, resistors need to be installed on the adapter PCB. +// If so, uncomment the following code, and undefine MASTER_RIGHT above. +// #define A0 PAL_LINE(GPIOA, 0) +// #define SPLIT_HAND_PIN A0 +// #define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left. + +/* serial.c configuration (for split keyboard). */ +#define SOFT_SERIAL_PIN D2 + +/* RGB settings. */ +#define RGB_DI_PIN D3 +#define WS2812_PWM_DRIVER PWMD2 +#define WS2812_PWM_CHANNEL 4 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 +#define WS2812_DMA_CHANNEL 3 + +/* CRC. */ +#define CRC8_USE_TABLE +#define CRC8_OPTIMIZE_SPEED diff --git a/keyboards/bastardkb/tbkmini/v2/stemcell/halconf.h b/keyboards/bastardkb/tbkmini/v2/stemcell/halconf.h new file mode 100644 index 00000000000..dbeb6aeaa07 --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v2/stemcell/halconf.h @@ -0,0 +1,23 @@ +/* + * Copyright 2021 Charly Delay (@0xcharly) + * + * 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_PWM TRUE +#define HAL_USE_SERIAL TRUE + +#include_next diff --git a/keyboards/bastardkb/tbkmini/v2/stemcell/info.json b/keyboards/bastardkb/tbkmini/v2/stemcell/info.json new file mode 100644 index 00000000000..b56c455ae35 --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v2/stemcell/info.json @@ -0,0 +1,6 @@ +{ + "keyboard_name": "TBK Mini STeMCell", + "usb": { + "device_version": "2.0.0" + } +} diff --git a/keyboards/bastardkb/tbkmini/v2/stemcell/mcuconf.h b/keyboards/bastardkb/tbkmini/v2/stemcell/mcuconf.h new file mode 100644 index 00000000000..6afebade36c --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v2/stemcell/mcuconf.h @@ -0,0 +1,29 @@ +/* + * Copyright 2021 Charly Delay (@0xcharly) + * + * 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 STM32_SERIAL_USE_USART1 +#define STM32_SERIAL_USE_USART1 FALSE + +#undef STM32_PWM_USE_TIM2 +#define STM32_PWM_USE_TIM2 TRUE + +#undef STM32_ST_USE_TIMER +#define STM32_ST_USE_TIMER 5 diff --git a/keyboards/bastardkb/tbkmini/v2/stemcell/rules.mk b/keyboards/bastardkb/tbkmini/v2/stemcell/rules.mk new file mode 100644 index 00000000000..9b36bf7ed58 --- /dev/null +++ b/keyboards/bastardkb/tbkmini/v2/stemcell/rules.mk @@ -0,0 +1,33 @@ +# MCU name +MCU = STM32F411 + +# Bootloader selection +BOOTLOADER = stm32-dfu +CONVERT_TO = stemcell + +# 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 = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +AUDIO_SUPPORTED = no # Audio is not supported +RGB_MATRIX_SUPPORTED = yes # RGB matrix is supported and enabled by default +RGBLIGHT_SUPPORTED = yes # RGB underglow is supported, but not enabled by default +RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality +RGB_MATRIX_DRIVER = WS2812 + +SPLIT_KEYBOARD = yes +LAYOUTS = split_3x6_3 + +SERIAL_DRIVER = usart +WS2812_DRIVER = pwm + +DEBOUNCE_TYPE = asym_eager_defer_pk From ed70f42638284449b95786479e16c0bd8026331d Mon Sep 17 00:00:00 2001 From: Sean Jasin Date: Tue, 15 Nov 2022 03:33:37 -0600 Subject: [PATCH 18/30] [Keyboard] change BT LEDs so no longer hard coded in Anne Pro (#18934) --- keyboards/annepro2/annepro2.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/annepro2/annepro2.c b/keyboards/annepro2/annepro2.c index 4edafe07022..b4dc03db6ee 100644 --- a/keyboards/annepro2/annepro2.c +++ b/keyboards/annepro2/annepro2.c @@ -155,22 +155,22 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { case KC_AP2_BT1: annepro2_ble_broadcast(0); /* FIXME: This hardcodes col/row position */ - ap2_led_blink(0, 1, blue, 8, 50); + ap2_led_blink(record->event.key.row, record->event.key.col, blue, 8, 50); return false; case KC_AP2_BT2: annepro2_ble_broadcast(1); - ap2_led_blink(0, 2, blue, 8, 50); + ap2_led_blink(record->event.key.row, record->event.key.col, blue, 8, 50); return false; case KC_AP2_BT3: annepro2_ble_broadcast(2); - ap2_led_blink(0, 3, blue, 8, 50); + ap2_led_blink(record->event.key.row, record->event.key.col, blue, 8, 50); return false; case KC_AP2_BT4: annepro2_ble_broadcast(3); - ap2_led_blink(0, 4, blue, 8, 50); + ap2_led_blink(record->event.key.row, record->event.key.col, blue, 8, 50); return false; case KC_AP2_USB: From 4e7f533998a3b2caefb1d12e86b29b07e285a1ce Mon Sep 17 00:00:00 2001 From: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Tue, 15 Nov 2022 20:33:58 +1100 Subject: [PATCH 19/30] [Keyboard] Add Constellation Rev3 (#18868) Co-authored-by: Ryan --- .../aeboards/constellation/constellation.h | 2 + .../aeboards/constellation/rev3/config.h | 40 +++++++++ .../aeboards/constellation/rev3/info.json | 89 +++++++++++++++++++ .../aeboards/constellation/rev3/readme.md | 18 ++++ keyboards/aeboards/constellation/rev3/rev3.c | 18 ++++ keyboards/aeboards/constellation/rev3/rev3.h | 36 ++++++++ .../aeboards/constellation/rev3/rules.mk | 18 ++++ 7 files changed, 221 insertions(+) create mode 100755 keyboards/aeboards/constellation/rev3/config.h create mode 100644 keyboards/aeboards/constellation/rev3/info.json create mode 100755 keyboards/aeboards/constellation/rev3/readme.md create mode 100755 keyboards/aeboards/constellation/rev3/rev3.c create mode 100755 keyboards/aeboards/constellation/rev3/rev3.h create mode 100755 keyboards/aeboards/constellation/rev3/rules.mk diff --git a/keyboards/aeboards/constellation/constellation.h b/keyboards/aeboards/constellation/constellation.h index a467327712c..3724b29d6ac 100755 --- a/keyboards/aeboards/constellation/constellation.h +++ b/keyboards/aeboards/constellation/constellation.h @@ -23,4 +23,6 @@ #include "rev1.h" #elif defined(KEYBOARD_aeboards_constellation_rev2) #include "rev2.h" +#elif defined(KEYBOARD_aeboards_constellation_rev3) + #include "rev3.h" #endif diff --git a/keyboards/aeboards/constellation/rev3/config.h b/keyboards/aeboards/constellation/rev3/config.h new file mode 100755 index 00000000000..bd4614f8b22 --- /dev/null +++ b/keyboards/aeboards/constellation/rev3/config.h @@ -0,0 +1,40 @@ +/* Copyright 2018 Jason Williams (Wilba) + * Copyright 2021 Harrison Chan (Xelus) + * + * 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 "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B0, B1, F0, F1, F4 } +#define MATRIX_COL_PINS { E6, D5, B2, B3, D3, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* 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 diff --git a/keyboards/aeboards/constellation/rev3/info.json b/keyboards/aeboards/constellation/rev3/info.json new file mode 100644 index 00000000000..d6fbbac789b --- /dev/null +++ b/keyboards/aeboards/constellation/rev3/info.json @@ -0,0 +1,89 @@ +{ + "keyboard_name": "Constellation Rev3", + "manufacturer": "AEBoards", + "url": "", + "maintainer": "Xelus22", + "usb": { + "vid": "0x4145", + "pid": "0x065D", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"label":"\"", "x":11.75, "y":2}, + {"x":12.75, "y":2, "w":2.25}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":2.25}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.5}, + {"x":11.5, "y":4, "w":1.5}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + } + } +} diff --git a/keyboards/aeboards/constellation/rev3/readme.md b/keyboards/aeboards/constellation/rev3/readme.md new file mode 100755 index 00000000000..06c3593e07f --- /dev/null +++ b/keyboards/aeboards/constellation/rev3/readme.md @@ -0,0 +1,18 @@ +# CONSTELLATION REV3 + +A gasket 65% keyboard by [aeboards](https://aeboards.com/) + +* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22) +* Hardware Supported: CONSTELLATION +* Hardware Availability: Custom keyboard group buys + +Make example for this keyboard (after setting up your build environment): + + make aeboards/constellation/rev3:default + +Reset your keyboard in 3 ways: +* Software reset on Fn + Backspace +* Bootmagic reset: hold down the top left key (usually escape) and plugin the keyboard +* Physical reset: on the back of the PCB, there is a ISP header which you should short the RST and GND together + +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/aeboards/constellation/rev3/rev3.c b/keyboards/aeboards/constellation/rev3/rev3.c new file mode 100755 index 00000000000..5c4257c9b9c --- /dev/null +++ b/keyboards/aeboards/constellation/rev3/rev3.c @@ -0,0 +1,18 @@ +/* Copyright 2018 Jason Williams (Wilba) + * Copyright 2022 Harrison Chan (Xelus) + * + * 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 "rev3.h" diff --git a/keyboards/aeboards/constellation/rev3/rev3.h b/keyboards/aeboards/constellation/rev3/rev3.h new file mode 100755 index 00000000000..15f37b7c205 --- /dev/null +++ b/keyboards/aeboards/constellation/rev3/rev3.h @@ -0,0 +1,36 @@ +/* Copyright 2018 Jason Williams (Wilba) + * Copyright 2022 Harrison Chan (Xelus) + * + * 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 ____ KC_NO + +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K213, K014, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K312, K313, K314, \ + K400, K401, K402, K405, K409, K410, K412, K413, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, ____, K312, K313, K314 }, \ + { K400, K401, K402, ____, ____, K405, ____, ____, ____, K409, K410, ____, K412, K413, K414 } \ +} diff --git a/keyboards/aeboards/constellation/rev3/rules.mk b/keyboards/aeboards/constellation/rev3/rules.mk new file mode 100755 index 00000000000..d2950ac2b28 --- /dev/null +++ b/keyboards/aeboards/constellation/rev3/rules.mk @@ -0,0 +1,18 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +AUDIO_ENABLE = no # Audio output +LTO_ENABLE = yes From de66797705ef0e490e5deca0545f009c351f5f45 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 16 Nov 2022 03:52:01 +1100 Subject: [PATCH 20/30] Fix some old keycodes (#19086) --- keyboards/a_dux/keymaps/daliusd/keymap.c | 4 ++-- keyboards/bastardkb/dilemma/3x5_2/keymaps/via/keymap.c | 4 ++-- keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/keymap.c | 2 +- keyboards/bastardkb/dilemma/3x5_3/keymaps/default/keymap.c | 2 +- keyboards/crkbd/keymaps/nimishgautam/keymap.c | 2 +- keyboards/crkbd/keymaps/sharkby7e/keymap.c | 2 +- keyboards/crkbd/keymaps/thunderbird2086/layers_block.h | 2 +- keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/mike1808.h | 2 +- keyboards/handwired/twig/twig50/keymaps/default/keymap.c | 2 +- keyboards/keyboardio/model01/keymaps/pugmajere/keymap.c | 4 ++-- .../mechbrewery/mb65s/keymaps/iso_blocker_tsangan/keymap.c | 2 +- keyboards/planck/keymaps/rennerom/keymap.c | 2 +- keyboards/preonic/keymaps/rmeli/keymap.c | 2 +- keyboards/rocketboard_16/keycode_lookup.c | 2 +- .../minivan/keymaps/talljoe-minivan/config.h | 4 ++-- users/callum/callum.c | 2 +- users/curry/process_records.h | 2 +- users/cwebster2/my_miryoku.h | 2 +- users/ericgebhart/extensions/oneshot.c | 4 ++-- users/ericgebhart/layers/edge_keys.h | 4 ++-- users/ericgebhart/layers/toprows.h | 4 ++-- users/ericgebhart/layers/utility.h | 2 +- users/gary/gary.h | 2 +- users/jarred/jarred.h | 2 +- users/jjerrell/wrappers.h | 2 +- users/kageurufu/layouts.h | 2 +- users/kuchosauronad0/process_records.h | 2 +- users/mattly/mattly.c | 2 +- users/miles2go/milestogo.h | 2 +- users/muppetjones/wrappers.h | 2 +- users/pdl/pdl.h | 2 +- users/ridingqwerty/wrappers.h | 2 +- users/rmeli/config.h | 2 +- users/romus/romus.h | 2 +- users/rs/rs.h | 2 +- users/rupa/wrappers.h | 6 +++--- users/talljoe/talljoe.h | 6 +++--- users/tominabox1/wrappers.h | 2 +- users/wanleg/wanleg.c | 2 +- users/wanleg/wanleg.h | 4 ++-- users/xulkal/layouts.h | 4 ++-- users/xulkal/process_records.c | 2 +- users/yet-another-developer/process_records.h | 2 +- 43 files changed, 56 insertions(+), 56 deletions(-) diff --git a/keyboards/a_dux/keymaps/daliusd/keymap.c b/keyboards/a_dux/keymaps/daliusd/keymap.c index 3da9b76057d..72f24172784 100644 --- a/keyboards/a_dux/keymaps/daliusd/keymap.c +++ b/keyboards/a_dux/keymaps/daliusd/keymap.c @@ -189,9 +189,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_MISC] = LAYOUT( //┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐ - RESET ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , KC_BRID ,KC_BRIU ,KC_PSCR ,XXXXXXX ,K_PRINT , + QK_BOOT ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , KC_BRID ,KC_BRIU ,KC_PSCR ,XXXXXXX ,K_PRINT , //├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ - XXXXXXX ,XXXXXXX ,DEBUG ,LT_OSLNX,XXXXXXX , KC_MPRV ,KC_MPLY ,KC_MNXT ,XXXXXXX ,K_VIDEO , + XXXXXXX ,XXXXXXX ,DB_TOGG ,LT_OSLNX,XXXXXXX , KC_MPRV ,KC_MPLY ,KC_MNXT ,XXXXXXX ,K_VIDEO , //├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , KC_VOLD ,KC_VOLU ,XXXXXXX ,XXXXXXX ,XXXXXXX , //└────────┴────────┴────────┴────┬───┴────┬───┼────────┐ ┌────────┼───┬────┴───┬────┴────────┴────────┴────────┘ diff --git a/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/keymap.c b/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/keymap.c index 082a1516741..b3aeaf014f6 100644 --- a/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/keymap.c +++ b/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/keymap.c @@ -90,7 +90,7 @@ static uint16_t auto_pointer_layer_timer = 0; */ #define LAYOUT_LAYER_FUNCTION \ _______________DEAD_HALF_ROW_______________, KC_PSCR, KC_F7, KC_F8, KC_F9, KC_F12, \ - ______________HOME_ROW_GACS_L______________, KC_SLCK, KC_F4, KC_F5, KC_F6, KC_F11, \ + ______________HOME_ROW_GACS_L______________, KC_SCRL, KC_F4, KC_F5, KC_F6, KC_F11, \ _______________DEAD_HALF_ROW_______________, KC_PAUS, KC_F1, KC_F2, KC_F3, KC_F10, \ _______, XXXXXXX, XXXXXXX, XXXXXXX @@ -111,7 +111,7 @@ static uint16_t auto_pointer_layer_timer = 0; */ #define LAYOUT_LAYER_NAVIGATION \ _______________DEAD_HALF_ROW_______________, _______________DEAD_HALF_ROW_______________, \ - ______________HOME_ROW_GACS_L______________, KC_CLCK, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, \ + ______________HOME_ROW_GACS_L______________, KC_CAPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, \ _______________DEAD_HALF_ROW_______________, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, \ XXXXXXX, _______, KC_ENT, KC_BSPC diff --git a/keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/keymap.c b/keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/keymap.c index e8e5ccd83b0..2c262521bc8 100644 --- a/keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/keymap.c +++ b/keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/keymap.c @@ -133,7 +133,7 @@ enum bstiq_layers { // Function keys. #define LAYOUT_LAYER_FUN \ KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, ________________HOME_ROW_NA________________, \ - KC_F11, KC_F4, KC_F5, KC_F6, KC_SLCK, ______________HOME_ROW_GASC_R______________, \ + KC_F11, KC_F4, KC_F5, KC_F6, KC_SCRL, ______________HOME_ROW_GASC_R______________, \ KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUS, ______________HOME_ROW_ALGR_R______________,\ U_NA, KC_APP, KC_TAB, U_NA, U_NA, U_NA diff --git a/keyboards/bastardkb/dilemma/3x5_3/keymaps/default/keymap.c b/keyboards/bastardkb/dilemma/3x5_3/keymaps/default/keymap.c index cbee085f261..461976b2764 100644 --- a/keyboards/bastardkb/dilemma/3x5_3/keymaps/default/keymap.c +++ b/keyboards/bastardkb/dilemma/3x5_3/keymaps/default/keymap.c @@ -47,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤ KC_LSFT, KC_LCTL, KC_LALT, KC_RGUI, KC_VOLD, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC, // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤ - QK_BOOT, EEP_RST, KC_MPRV, KC_MNXT, KC_MPLY, XXXXXXX, KC_PGDN, KC_PGUP, XXXXXXX, KC_ENT, + QK_BOOT, EE_CLR, KC_MPRV, KC_MNXT, KC_MPLY, XXXXXXX, KC_PGDN, KC_PGUP, XXXXXXX, KC_ENT, // ╰─────────────────────────────────────────────┤ ├─────────────────────────────────────────────╯ KC_A, _______, KC_LSFT, KC_SPC, _______, KC_A // ╰───────────────────────────╯ ╰──────────────────────────╯ diff --git a/keyboards/crkbd/keymaps/nimishgautam/keymap.c b/keyboards/crkbd/keymaps/nimishgautam/keymap.c index 508388d442a..e8a476cfc5f 100644 --- a/keyboards/crkbd/keymaps/nimishgautam/keymap.c +++ b/keyboards/crkbd/keymaps/nimishgautam/keymap.c @@ -137,7 +137,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_TEXT_NAV] = LAYOUT_split_3x6_3( //text nav and special navigation (lock screen, adjust layer, etc) //,-----------------------------------------------------. ,-----------------------------------------------------. - LOCK_SCREEN, KC_PSCR, SELECT_LEFT_LINE, KC_UP, SELECT_RIGHT_LINE, TD(TD_MOVE_BEGIN_LINE), TD(TD_MOVE_END_LINE), KC_MS_WH_UP, EMOJI_KBD, KC_TRANSPARENT, KC_TRANSPARENT, RESET, + LOCK_SCREEN, KC_PSCR, SELECT_LEFT_LINE, KC_UP, SELECT_RIGHT_LINE, TD(TD_MOVE_BEGIN_LINE), TD(TD_MOVE_END_LINE), KC_MS_WH_UP, EMOJI_KBD, KC_TRANSPARENT, KC_TRANSPARENT, QK_BOOT, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| TO(_BASE), SELECT_LEFT_WD, KC_LEFT, KC_DOWN, KC_RIGHT,SELECT_RIGHT_WD, KC_MS_WH_LEFT, KC_RGUI, KC_RSFT, KC_RALT,KC_RCTL, KC_CAPS, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| diff --git a/keyboards/crkbd/keymaps/sharkby7e/keymap.c b/keyboards/crkbd/keymaps/sharkby7e/keymap.c index e37ef9881ba..9f483a27a44 100644 --- a/keyboards/crkbd/keymaps/sharkby7e/keymap.c +++ b/keyboards/crkbd/keymaps/sharkby7e/keymap.c @@ -59,7 +59,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [3] = LAYOUT_split_3x6_3( //,-----------------------------------------------------. ,-----------------------------------------------------. - XXXXXXX, RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| XXXXXXX, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| diff --git a/keyboards/crkbd/keymaps/thunderbird2086/layers_block.h b/keyboards/crkbd/keymaps/thunderbird2086/layers_block.h index f182a1a6d8b..ba41cd92234 100644 --- a/keyboards/crkbd/keymaps/thunderbird2086/layers_block.h +++ b/keyboards/crkbd/keymaps/thunderbird2086/layers_block.h @@ -44,7 +44,7 @@ #define ________________________SYMBOL_R2________________________ XXXXXXX , KC_LCBR , KC_RCBR , KC_LBRC , KC_RBRC , KC_PLUS -#define ________________________ADJUST_L1________________________ RESET , XXXXXXX , KC_PWR , KC_WAKE , KC_SLEP , XXXXXXX +#define ________________________ADJUST_L1________________________ QK_BOOT , XXXXXXX , KC_PWR , KC_WAKE , KC_SLEP , XXXXXXX #if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE) # define ________________________ADJUST_L2________________________ RGBRST , XXXXXXX , RGB_SPI , RGB_SAI , RGB_HUI , RGB_VAI diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/mike1808.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/mike1808.h index 30b1b389bc9..b35ad7590df 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/mike1808.h +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/mike1808.h @@ -90,7 +90,7 @@ enum combos { #define KC_LINX KC_LINUX -#define KC_RESET RESET +#define KC_RESET QK_BOOT #define KC_RST KC_RESET #define OS_GIT OSL(GIT) diff --git a/keyboards/handwired/twig/twig50/keymaps/default/keymap.c b/keyboards/handwired/twig/twig50/keymaps/default/keymap.c index 3d4b29e621f..1fb29d5a4ae 100644 --- a/keyboards/handwired/twig/twig50/keymaps/default/keymap.c +++ b/keyboards/handwired/twig/twig50/keymaps/default/keymap.c @@ -47,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Layer 1, Space-modifiers: Basic keys LAYOUT_diag_4x14( - RESET, KC_EXEC, KC_HELP, KC_MENU, KC_SLCT, KC_STOP, KC_BTN2, KC_INT1, KC_MINS, KC_EQL, KC_INT3, SFT_LBR, KC_TRNS, + QK_BOOT, KC_EXEC, KC_HELP, KC_MENU, KC_SLCT, KC_STOP, KC_BTN2, KC_INT1, KC_MINS, KC_EQL, KC_INT3, SFT_LBR, KC_TRNS, KC_TRNS, KC_AGIN, KC_FIND, KC_PGUP, KC_PGDN, KC_F19, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_ENT, SFT_7, SFT_2, KC_TRNS, KC_TRNS, KC_UNDO, KC_CUT, KC_COPY, KC_PSTE, KC_APP, KC_BSPC, KC_DEL, KC_RBRC, KC_BSLS, KC_HOME, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RCT_IN7, RGU_IN8, KC_TRNS, KC_INT2, KC_INT4, MU_MOD diff --git a/keyboards/keyboardio/model01/keymaps/pugmajere/keymap.c b/keyboards/keyboardio/model01/keymaps/pugmajere/keymap.c index b7043ef640d..9520a116fd8 100644 --- a/keyboards/keyboardio/model01/keymaps/pugmajere/keymap.c +++ b/keyboards/keyboardio/model01/keymaps/pugmajere/keymap.c @@ -179,8 +179,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case MACRO_KVM_TG: if (record->event.pressed) { register_code(KC_LSFT); - tap_code(KC_NUMLOCK); - tap_code(KC_NUMLOCK); + tap_code(KC_NUM); + tap_code(KC_NUM); unregister_code(KC_LSFT); tap_code(KC_LCTL); } diff --git a/keyboards/mechbrewery/mb65s/keymaps/iso_blocker_tsangan/keymap.c b/keyboards/mechbrewery/mb65s/keymaps/iso_blocker_tsangan/keymap.c index d4f49b209db..3412a843a22 100644 --- a/keyboards/mechbrewery/mb65s/keymaps/iso_blocker_tsangan/keymap.c +++ b/keyboards/mechbrewery/mb65s/keymaps/iso_blocker_tsangan/keymap.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ */ [0] = LAYOUT_65_iso_blocker_tsangan_split_bs( - KC_GESC, 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_BSPC, KC_HOME, + QK_GESC, 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_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_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_NUHS, KC_ENT, KC_PGDN, KC_LSFT, KC_NUBS, 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, diff --git a/keyboards/planck/keymaps/rennerom/keymap.c b/keyboards/planck/keymaps/rennerom/keymap.c index 6423d848ab9..67394b8964b 100644 --- a/keyboards/planck/keymaps/rennerom/keymap.c +++ b/keyboards/planck/keymaps/rennerom/keymap.c @@ -142,7 +142,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_planck_grid( - _______, KC_F1, KC_F2, KC_F3, KC_F4, RGB_TOG, _______, RGB_HUD, RGB_HUI, _______, DB_TOGG, RESET, + _______, KC_F1, KC_F2, KC_F3, KC_F4, RGB_TOG, _______, RGB_HUD, RGB_HUI, _______, DB_TOGG, QK_BOOT, _______, KC_F5, KC_F6, KC_F7, KC_F8, RGB_RMOD, RGB_MOD, RGB_SAD, RGB_SAI, _______, _______, _______, _______, KC_F9, KC_F10, KC_F11, KC_F12, RGB_SPD, RGB_SPI, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/preonic/keymaps/rmeli/keymap.c b/keyboards/preonic/keymaps/rmeli/keymap.c index da6269129e8..b12dffe4b06 100644 --- a/keyboards/preonic/keymaps/rmeli/keymap.c +++ b/keyboards/preonic/keymaps/rmeli/keymap.c @@ -82,7 +82,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_wrapper( QK_BOOT, _________________NONE_5x___________________, ______________________NONE_6x_______________________, XXXXXXX, MU_ON, AU_ON, MI_ON, XXXXXXX, XXXXXXX, _______________CONFIG_R1_x5________________, QWERTY, - RESET, MU_MOD, AU_TOG, MI_TOG, XXXXXXX, XXXXXXX, _______________CONFIG_R2_x5________________, XXXXXXX, + QK_BOOT, MU_MOD, AU_TOG, MI_TOG, XXXXXXX, XXXXXXX, _______________CONFIG_R2_x5________________, XXXXXXX, XXXXXXX, MU_OFF, AU_OFF, MI_OFF, XXXXXXX, XXXXXXX, _______________CONFIG_R3_x5________________, COLEMAK, ______________________BLANK_6x______________________, ______________________BLANK_6x______________________ ) diff --git a/keyboards/rocketboard_16/keycode_lookup.c b/keyboards/rocketboard_16/keycode_lookup.c index 59de0e64f39..3b9257068f7 100644 --- a/keyboards/rocketboard_16/keycode_lookup.c +++ b/keyboards/rocketboard_16/keycode_lookup.c @@ -287,7 +287,7 @@ lookup_table_t lookup_table[333] = {"KC_LT", KC_LT}, {"KC_GT", KC_GT}, {"KC_QUES", KC_QUES}, - {"RESET", QK_BOOT}, + {"QK_BOOT", QK_BOOT}, {"DB_TOGG", DB_TOGG}, {"MAGIC_TOGGLE_NKRO", MAGIC_TOGGLE_NKRO}, {"QK_GESC", QK_GESC}, diff --git a/keyboards/thevankeyboards/minivan/keymaps/talljoe-minivan/config.h b/keyboards/thevankeyboards/minivan/keymaps/talljoe-minivan/config.h index 89980614e10..7ecb2353dde 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/talljoe-minivan/config.h +++ b/keyboards/thevankeyboards/minivan/keymaps/talljoe-minivan/config.h @@ -59,7 +59,7 @@ ) #define TEMPLATE_RESET LAYOUT_arrow( \ - RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET, \ + QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET) + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT) diff --git a/users/callum/callum.c b/users/callum/callum.c index b3254a9cfaa..73367e8e571 100644 --- a/users/callum/callum.c +++ b/users/callum/callum.c @@ -48,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [NAV] = LAYOUT_callum( - KC_TAB, SW_WIN, TABL, TABR, KC_VOLU, RESET, HOME, KC_UP, END, KC_DEL, + KC_TAB, SW_WIN, TABL, TABR, KC_VOLU, QK_BOOT, HOME, KC_UP, END, KC_DEL, OS_SHFT, OS_CTRL, OS_ALT, OS_CMD, KC_VOLD, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC, SPCL, SPC_R, BACK, FWD, KC_MPLY, XXXXXXX, KC_PGDN, KC_PGUP, SW_LANG, KC_ENT, _______, _______, _______, _______ diff --git a/users/curry/process_records.h b/users/curry/process_records.h index 605abdfae20..4db25c34e19 100644 --- a/users/curry/process_records.h +++ b/users/curry/process_records.h @@ -62,7 +62,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record); # define WORKMAN KC_WORKMAN #endif -#define KC_RST RESET +#define KC_RST QK_BOOT #if defined(SWAP_HANDS_ENABLE) # define KC_C1R3 SH_T(KC_TAB) diff --git a/users/cwebster2/my_miryoku.h b/users/cwebster2/my_miryoku.h index 8b167cd619b..c4b4b59a1dd 100644 --- a/users/cwebster2/my_miryoku.h +++ b/users/cwebster2/my_miryoku.h @@ -35,7 +35,7 @@ #define _______NAKED_R___T____ KC_ENT, KC_BSPC, KC_DEL #define _______NAKED_L___T____ KC_ESC, KC_SPC, KC_TAB -#define _______INACTIVE_R1____ KC_LOCK, KC_TRNS, KC_TRNS, KC_TRNS, RESET +#define _______INACTIVE_R1____ KC_LOCK, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT #define _______INACTIVE_R2____ KC_TRNS, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI #define _______INACTIVE_R3____ KC_TRNS, KC_TRNS, KC_TRNS, KC_RALT, KC_TRNS diff --git a/users/ericgebhart/extensions/oneshot.c b/users/ericgebhart/extensions/oneshot.c index 83c8a04363a..55c2fa1ae3d 100644 --- a/users/ericgebhart/extensions/oneshot.c +++ b/users/ericgebhart/extensions/oneshot.c @@ -125,10 +125,10 @@ int8_t update_oneshot_modifiers(uint16_t keycode, keyrecord_t *record, int8_t ke // registers/unregisters a mod to the operating system on state change if necessary void update_modifier(oneshot_mod osmod, oneshot_state previous_state, oneshot_state current_state) { if (previous_state == ONESHOT_STATE_OFF) { - register_code(KC_LCTRL + osmod); + register_code(KC_LCTL + osmod); } else { if (current_state == ONESHOT_STATE_OFF) { - unregister_code(KC_LCTRL + osmod); + unregister_code(KC_LCTL + osmod); } } } diff --git a/users/ericgebhart/layers/edge_keys.h b/users/ericgebhart/layers/edge_keys.h index 0794b91a023..107434750b5 100644 --- a/users/ericgebhart/layers/edge_keys.h +++ b/users/ericgebhart/layers/edge_keys.h @@ -367,13 +367,13 @@ // all others are handled through macros. #define ___5_BOTTOM_LEFT___ ___X2___, KC_INS, KC_LEFT, KC_RIGHT -#define ___5_BOTTOM_RIGHT___ KC_UP, KC_DOWN, KC_BSLASH, ___X2___ +#define ___5_BOTTOM_RIGHT___ KC_UP, KC_DOWN, KC_BSLS, ___X2___ #define ___5_BOTTOM_LEFT_EN___ ___5_BOTTOM_LEFT___ #define ___5_BOTTOM_RIGHT_EN___ ___5_BOTTOM_RIGHT___ #define ___4_BOTTOM_LEFT___ LCTL(KC_V), KC_INS, KC_LEFT, KC_RIGHT -#define ___4_BOTTOM_RIGHT___ KC_UP, KC_DOWN, KC_BSLASH, LCTL(KC_C) +#define ___4_BOTTOM_RIGHT___ KC_UP, KC_DOWN, KC_BSLS, LCTL(KC_C) #define ___4_BOTTOM_LEFT_EN___ ___4___ //___4_BOTTOM_LEFT___ #define ___4_BOTTOM_RIGHT_EN___ ___4___ //___4_BOTTOM_RIGHT___ diff --git a/users/ericgebhart/layers/toprows.h b/users/ericgebhart/layers/toprows.h index 351df442ed7..3ae1c4665b8 100644 --- a/users/ericgebhart/layers/toprows.h +++ b/users/ericgebhart/layers/toprows.h @@ -25,8 +25,8 @@ /*******************************************************************/ // Kinesis function key row. I don't use them. but might as well define them. #define ___KINTFUNC_L___ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8 -// #define ___KINTFUNC_RIGHT___ KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_FN0, RESET -#define ___KINTFUNC_R___ KC_F9, KC_F10, KC_F11, KC_F12, XXX, XXX, XXX, XXX, RESET +// #define ___KINTFUNC_RIGHT___ KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, KC_FN0, QK_BOOT +#define ___KINTFUNC_R___ KC_F9, KC_F10, KC_F11, KC_F12, XXX, XXX, XXX, XXX, QK_BOOT // A TOPROWS Layer. // set it how you like it, if you like it. diff --git a/users/ericgebhart/layers/utility.h b/users/ericgebhart/layers/utility.h index a688f8196d9..dab0bb4f416 100644 --- a/users/ericgebhart/layers/utility.h +++ b/users/ericgebhart/layers/utility.h @@ -74,7 +74,7 @@ #define ___ADJUST_L3___ ___RGB_HUE_SAT_INT_DN___, KC_RGB_T #define ___ADJUST_R1___ ___, KC_MAKE, VRSN, MG_NKRO, KC_RESET -#define ___ADJUST_R2___ EEP_RST, ___PRV_PLAY_NXT_STOP___, +#define ___ADJUST_R2___ EE_CLR, ___PRV_PLAY_NXT_STOP___, #define ___ADJUST_R3___ MG_NKRO, ___VDN_MUTE_VUP___, RGB_IDL /********************************************************************************/ /* The Adjust LAYER Chunks */ diff --git a/users/gary/gary.h b/users/gary/gary.h index ce920cf7767..adf25b9a75c 100644 --- a/users/gary/gary.h +++ b/users/gary/gary.h @@ -16,7 +16,7 @@ enum custom_keycodes { RAISE, }; -#define KC_RST RESET +#define KC_RST QK_BOOT #define KC_ KC_TRNS #define KC_LOWR MO(_LOWER) // Lower layer diff --git a/users/jarred/jarred.h b/users/jarred/jarred.h index 49b1253be5f..cec407da7fc 100644 --- a/users/jarred/jarred.h +++ b/users/jarred/jarred.h @@ -110,7 +110,7 @@ enum { #define NUMPAD_L3 _______, _______, _______, _______, RGB_VAD, RGB_VAI #define NUMPAD_L4 _______, _______, _______, _______, RGB_SPD, RGB_SPI -#define NUMPAD_R1 DF(_QW),DF(_GAME), _______, _______, _______, RESET +#define NUMPAD_R1 DF(_QW),DF(_GAME), _______, _______, _______, QK_BOOT #define NUMPAD_R2 _______, _______, _______, _______, _______, _______ #define NUMPAD_R3 VRSN, _______, _______, _______, _______, _______ #define NUMPAD_R4 _______, _______, _______, _______, _______, _______ diff --git a/users/jjerrell/wrappers.h b/users/jjerrell/wrappers.h index 87aa8e250f3..39e579cbfa9 100644 --- a/users/jjerrell/wrappers.h +++ b/users/jjerrell/wrappers.h @@ -319,7 +319,7 @@ #define __________________RAISE_R3___________________ KC_AT, KC_QUOT, KC_DQUO, KC_PLUS, KC_CIRC // Adjust -#define __________________ADJUST_L1__________________ KC_MAKE, DB_TOGG, RESET, XXXXXXX, XXXXXXX +#define __________________ADJUST_L1__________________ KC_MAKE, DB_TOGG, QK_BOOT, XXXXXXX, XXXXXXX #define __________________ADJUST_L2__________________ KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_MNXT #define __________________ADJUST_L3__________________ KC_VRSN, AU_ON, AU_OFF, CG_SWAP, CG_NORM diff --git a/users/kageurufu/layouts.h b/users/kageurufu/layouts.h index eccfa0700ed..edf64c0b398 100644 --- a/users/kageurufu/layouts.h +++ b/users/kageurufu/layouts.h @@ -46,7 +46,7 @@ #define _________________ADJUST_L1_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6 -#define _________________ADJUST_L2_________________ _______, RGB_SAD, RGB_VAI, RGB_SAI, RESET, _______ +#define _________________ADJUST_L2_________________ _______, RGB_SAD, RGB_VAI, RGB_SAI, QK_BOOT, _______ #define _________________ADJUST_L3_________________ _______, RGB_HUD, RGB_VAD, RGB_HUI, RGBRST, _______ #define _________________ADJUST_L4_________________ _______, _______, _______, _______, _______, _______ #define _________________ADJUST_L5_________________ _______, _______, _______, _______, _______, _______ diff --git a/users/kuchosauronad0/process_records.h b/users/kuchosauronad0/process_records.h index d3d4c4fe83c..0e1c1ceadd8 100644 --- a/users/kuchosauronad0/process_records.h +++ b/users/kuchosauronad0/process_records.h @@ -84,7 +84,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record); #define WORKMAN KC_WORKMAN #define PLOVER KC_PLOVER -#define KC_RESET RESET +#define KC_RESET QK_BOOT #define KC_RST KC_RESET #define UC_IRNY UC(0x2E2E) diff --git a/users/mattly/mattly.c b/users/mattly/mattly.c index d097c8cd7b0..eb6536a7f1f 100644 --- a/users/mattly/mattly.c +++ b/users/mattly/mattly.c @@ -57,7 +57,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { set_lights_default(); #endif return true; - case RESET: + case QK_BOOT: #ifdef RGBLIGHT_ENABLE rgblight_sethsv_noeeprom(HSV_RESET); #endif diff --git a/users/miles2go/milestogo.h b/users/miles2go/milestogo.h index 81fc02ded12..c57c0cf7a2c 100644 --- a/users/miles2go/milestogo.h +++ b/users/miles2go/milestogo.h @@ -69,7 +69,7 @@ enum userspace_custom_keycodes { #define QWERTY KC_QWERTY #define COLEMAK KC_CDH -#define KC_RESET RESET +#define KC_RESET QK_BOOT #if (!defined(LAYOUT) && defined(KEYMAP)) # define LAYOUT KEYMAP diff --git a/users/muppetjones/wrappers.h b/users/muppetjones/wrappers.h index 7a6d702dad6..9bcf81857ce 100644 --- a/users/muppetjones/wrappers.h +++ b/users/muppetjones/wrappers.h @@ -65,7 +65,7 @@ * `----------------------------------' `----------------------------------' */ // NOTE: The "BACKLIT" keycode is planck specific -#define __ADJUST_L1________________________________ RESET, DB_TOGG, XXXXXXX, XXXXXXX, XXXXXXX +#define __ADJUST_L1________________________________ QK_BOOT, DB_TOGG, XXXXXXX, XXXXXXX, XXXXXXX #define __ADJUST_L2________________________________ RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD #define __ADJUST_L3________________________________ XXXXXXX, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX diff --git a/users/pdl/pdl.h b/users/pdl/pdl.h index 394f79f2f3f..4079ba9d339 100644 --- a/users/pdl/pdl.h +++ b/users/pdl/pdl.h @@ -128,7 +128,7 @@ enum userspace_layers { #define _________________FUNCTN_L1_________________ KC_ESC, KC_F1, KC_F2, KC_F3, MY_AF4 #define _________________FUNCTN_L2_________________ KC_APP, KC_F4, KC_F5, KC_F6, MY_CF5 -#define _________________FUNCTN_L3_________________ RESET, KC_F7, KC_F8, KC_F9, MY_CF4 +#define _________________FUNCTN_L3_________________ QK_BOOT, KC_F7, KC_F8, KC_F9, MY_CF4 #define _________________FUNCTN_R1_________________ KC_VOLU, KC_F10, KC_F11, KC_F12, KC_INS #define _________________FUNCTN_R2_________________ KC_VOLD, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT diff --git a/users/ridingqwerty/wrappers.h b/users/ridingqwerty/wrappers.h index f4f3de91f13..dbfd8ea0501 100644 --- a/users/ridingqwerty/wrappers.h +++ b/users/ridingqwerty/wrappers.h @@ -98,7 +98,7 @@ #define ________________DEBUG_L3___________________ _______, _______, _______, VERSION, _______ #define ________________DEBUG_R1___________________ VPRWAVE, STRAYA, _______, TESTING, _______ -#define ________________DEBUG_R2___________________ _______, _______, EE_CLR, RESET, MAKE +#define ________________DEBUG_R2___________________ _______, _______, EE_CLR, QK_BOOT, MAKE #define ________________DEBUG_R3___________________ QWERTY, DVORAK, COLEMAK, _______, _______ diff --git a/users/rmeli/config.h b/users/rmeli/config.h index 1a6db91d1b4..5c31462d359 100644 --- a/users/rmeli/config.h +++ b/users/rmeli/config.h @@ -20,7 +20,7 @@ along with this program. If not, see . #define TAPPING_TERM 200 #ifdef UNICODEMAP_ENABLE -# define UNICODE_SELECTED_MODES UC_MAC, UC_LNX +# define UNICODE_SELECTED_MODES UNICODE_MODE_MACOS, UNICODE_MODE_LINUX #endif #ifdef AUTO_SHIFT_ENABLED diff --git a/users/romus/romus.h b/users/romus/romus.h index f79777d91b1..a3d6db95235 100644 --- a/users/romus/romus.h +++ b/users/romus/romus.h @@ -231,7 +231,7 @@ enum { * |Musir| | | | |Vol +||Vol -| Prev| Stop|TogMu| Next| | * `------------------------------------------------------------------------' */ #define SETTINGS \ - BL_STEP,KC_F1, KC_F2, KC_F3, KC_F4, UNI_LI, UNI_WN, KC_WAKE,_______,RGB_HUD,RGB_HUI,RESET , \ + BL_STEP,KC_F1, KC_F2, KC_F3, KC_F4, UNI_LI, UNI_WN, KC_WAKE,_______,RGB_HUD,RGB_HUI,QK_BOOT, \ _______,KC_F5, KC_F6, KC_F7, KC_F8, _______,KC_MUTE,_______,RGB_TOG,RGB_SAD,RGB_SAI,_______, \ K_GAMES,KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE,_______,KC_PSCR,RGB_MOD,RGB_VAD,RGB_VAI,_______, \ MU_TOG, _______,_______,_______,_______,KC_VOLU,KC_VOLD,KC_MPRV,KC_MSTP,KC_MPLY,KC_MNXT,_______ diff --git a/users/rs/rs.h b/users/rs/rs.h index d19b887f487..ecd9a06de67 100644 --- a/users/rs/rs.h +++ b/users/rs/rs.h @@ -27,7 +27,7 @@ enum custom_keycodes { #define KC_CODE MO(_CODE) #define KC_BCOD LT(_CODE, KC_BSPC) #define KC_FN MO(_FN) -#define KC_RST RESET +#define KC_RST QK_BOOT #define KC_CTRA LCTL(KC_A) #define KC_CTRE LCTL(KC_E) #define KC_BLTG BL_TOGG diff --git a/users/rupa/wrappers.h b/users/rupa/wrappers.h index b5794c8fadc..dfc00b51200 100644 --- a/users/rupa/wrappers.h +++ b/users/rupa/wrappers.h @@ -109,14 +109,14 @@ along with this program. If not, see . * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ */ #define ____65_ADJUST______________ROW1 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______ -#define ____65_ADJUST______________ROW2 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______ +#define ____65_ADJUST______________ROW2 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______ #define ____65_ADJUST______________ROW3 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, _______ #define ____65_ADJUST______________ROW4 _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, UC_NEXT, _______, _______ #define ____65_ADJUST______________ROW5 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -#define ____65_ADJUST__________RGB_ROW2 _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, _______, _______, RESET, _______ +#define ____65_ADJUST__________RGB_ROW2 _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, _______, _______, QK_BOOT, _______ #define ____65_ADJUST__________RGB_ROW3 _______, RGB_M_P, RGB_M_B, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, _______ -#define ____65_ADJUST___________BL_ROW2 _______, BL_TOGG, BL_BRTG, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______ +#define ____65_ADJUST___________BL_ROW2 _______, BL_TOGG, BL_BRTG, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______ // clang-format on diff --git a/users/talljoe/talljoe.h b/users/talljoe/talljoe.h index cdb01a97449..23dabdd8834 100644 --- a/users/talljoe/talljoe.h +++ b/users/talljoe/talljoe.h @@ -176,9 +176,9 @@ enum layers { #ifndef TEMPLATE_RESET #define TEMPLATE_RESET TEMPLATE_ALT( \ - RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET , \ - RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET , \ + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, \ + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, \ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - RESET , XXXXXXX, XXXXXXX, XXXXXXX, RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX) + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX) #endif diff --git a/users/tominabox1/wrappers.h b/users/tominabox1/wrappers.h index c5aeadae389..f7f4c7fd237 100644 --- a/users/tominabox1/wrappers.h +++ b/users/tominabox1/wrappers.h @@ -49,7 +49,7 @@ expanded before being used as arguments to the LAYOUT_xxx macro. #define ___________________FKEY4___________________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO // Dimple Adjust layer -#define ___________________ADJST1__________________ RESET,RGBRST, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO +#define ___________________ADJST1__________________ QK_BOOT,RGBRST, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO #define ___________________ADJST2__________________ RGB_M_P, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO #define ___________________ADJST3__________________ RGB_MOD, RGB_HUI, RGB_HUD, RGB_M_SN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO #define ___________________ADJST4__________________ RGB_VAD, RGB_TOG, RGB_VAI, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO diff --git a/users/wanleg/wanleg.c b/users/wanleg/wanleg.c index b056f5dd960..c8ca77676b5 100644 --- a/users/wanleg/wanleg.c +++ b/users/wanleg/wanleg.c @@ -124,7 +124,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return false; break; //on RESET, underglow red if present - case RESET: + case QK_BOOT: if (record->event.pressed) { #if defined(RGBLIGHT_ENABLE) rgblight_enable_noeeprom(); // enables Rgb, without saving settings diff --git a/users/wanleg/wanleg.h b/users/wanleg/wanleg.h index 3c5901de41e..a9d1bbf6a61 100644 --- a/users/wanleg/wanleg.h +++ b/users/wanleg/wanleg.h @@ -169,7 +169,7 @@ enum { * | Sft//Cp| CAPS | | | | C-A-D | mScrL | mScrR | ALT | DEL | * '-----------------------------------------------------------------------------------------' */ -#define _______________Gherkin_ETC_0_______________ KC_GRV, KC_MS_U, _______,KC_ESC, RESET, KC_RSFT, KC_WH_D, KC_WH_U, _______, KC_BSLS +#define _______________Gherkin_ETC_0_______________ KC_GRV, KC_MS_U, _______,KC_ESC, QK_BOOT, KC_RSFT, KC_WH_D, KC_WH_U, _______, KC_BSLS #define _______________Gherkin_ETC_1_______________ KC_MS_L, KC_MS_D, KC_MS_R,_______, KC_LSFT, KC_BTN3, KC_BTN1, KC_BTN2, KC_SCLN, KC_QUOT #define _______________Gherkin_ETC_2_______________ TD(TD_SFT_CAPS),KC_CAPS, _______,_______, _______, LALT(LCTL(KC_DEL)), KC_WH_L, KC_WH_R, KC_LALT, KC_DEL @@ -219,7 +219,7 @@ enum { * | | | | | | | | | | | | | * '-----------------------------------------------------------------------------------------------------------' */ -#define ________________SUPRA_Row_0________________ RESET, KC_TAB, KC_UP, _______, KC_INS, KC_LCTL, KC_RSFT, KC_PGUP, KC_HOME, KC_MINS, KC_EQL, KC_DEL +#define ________________SUPRA_Row_0________________ QK_BOOT, KC_TAB, KC_UP, _______, KC_INS, KC_LCTL, KC_RSFT, KC_PGUP, KC_HOME, KC_MINS, KC_EQL, KC_DEL #define ________________SUPRA_Row_1________________ _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PSCR, KC_LSFT, KC_RCTL, KC_PGDN, KC_END, KC_LBRC, KC_RBRC, KC_BSLS #define ________________SUPRA_Row_2________________ _______, KC_PAUS, _______, _______, _______, _______, _______, _______, KC_RGUI, KC_RALT, _______, _______ #define ________________SUPRA_Row_3________________ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/users/xulkal/layouts.h b/users/xulkal/layouts.h index ccf466166ea..9eec97ac6ee 100644 --- a/users/xulkal/layouts.h +++ b/users/xulkal/layouts.h @@ -81,7 +81,7 @@ */ #define __________________LOWER_L1_________________ _______, RGB_RMOD, RGB_MOD, RGB_TOG, _______, _______ -#define __________________LOWER_L2_________________ RGB_SPI, RGB_SAI, RGB_VAI, RGB_HUI, RESET, _______ +#define __________________LOWER_L2_________________ RGB_SPI, RGB_SAI, RGB_VAI, RGB_HUI, QK_BOOT, _______ #define __________________LOWER_L3_________________ RGB_SPD, RGB_SAD, RGB_VAD, RGB_HUD, RGBRST, _______ #define __________________LOWER_L4_________________ _______, _______, _______, _______, _______, _______ #define __________________LOWER_L5_________________ _______, _______, _______, _______, _______, _______ @@ -107,7 +107,7 @@ */ #define _________________ADJUST_L1_________________ _______, _______, _______, _______, _______, _______ -#define _________________ADJUST_L2_________________ _______, RESET, DB_TOGG, _______, _______, _______ +#define _________________ADJUST_L2_________________ _______, QK_BOOT, DB_TOGG, _______, _______, _______ #define _________________ADJUST_L3_________________ _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM #define _________________ADJUST_L4_________________ _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON #define _________________ADJUST_L5_________________ _______, _______, _______, _______, _______, _______ diff --git a/users/xulkal/process_records.c b/users/xulkal/process_records.c index 47996110bbf..804dd4677ad 100644 --- a/users/xulkal/process_records.c +++ b/users/xulkal/process_records.c @@ -29,7 +29,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) rgb_reset(); #endif return false; - case RESET: + case QK_BOOT: { if (record->event.pressed) reset_timer = timer_read() + 500; diff --git a/users/yet-another-developer/process_records.h b/users/yet-another-developer/process_records.h index d4576f541e0..d4b9e213262 100644 --- a/users/yet-another-developer/process_records.h +++ b/users/yet-another-developer/process_records.h @@ -80,7 +80,7 @@ bool process_record_keymap( uint16_t keycode, keyrecord_t *record); #define WORKMAN KC_WORKMAN #define UNICODE KC_UNICODE -#define KC_RESET RESET +#define KC_RESET QK_BOOT #define KC_RST KC_RESET #define BK_LWER LT(_LOWER, KC_BSPC) From c21b77fbd2ef72c04894006fb16d6fd6f511114d Mon Sep 17 00:00:00 2001 From: David Kosorin Date: Tue, 15 Nov 2022 17:53:57 +0100 Subject: [PATCH 21/30] Fix typo (#19035) Swap Hands on/off - it's `SH_ON/OFF` not `SW_ON/OFF` --- docs/keycodes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/keycodes.md b/docs/keycodes.md index d0ba8e25bff..b172e133064 100644 --- a/docs/keycodes.md +++ b/docs/keycodes.md @@ -763,8 +763,8 @@ See also: [Swap Hands](feature_swap_hands.md) |Key |Description | |-----------|-------------------------------------------------------------------------| |`SH_T(key)`|Sends `key` with a tap; momentary swap when held. | -|`SW_ON` |Turns on swapping and leaves it on. | -|`SW_OFF` |Turn off swapping and leaves it off. Good for returning to a known state.| +|`SH_ON` |Turns on swapping and leaves it on. | +|`SH_OFF` |Turn off swapping and leaves it off. Good for returning to a known state.| |`SH_MON` |Swaps hands when pressed, returns to normal when released (momentary). | |`SH_MOFF` |Momentarily turns off swap. | |`SH_TG` |Toggles swap on and off with every key press. | From 7e843d0eca7c9189425b9ee9660d23b03342d03c Mon Sep 17 00:00:00 2001 From: Leon Anavi Date: Tue, 15 Nov 2022 18:54:45 +0200 Subject: [PATCH 22/30] keyboards/anavi: Add ANAVI Knob 1 (#18623) ANAVI Knob 1 is a mini mechanical keyboard with a clickable rotary encoder, USB-C, RP2040 microcontroller and I2C slot for a display. Signed-off-by: Leon Anavi Signed-off-by: Leon Anavi --- keyboards/anavi/knob1/config.h | 34 +++++++++++ keyboards/anavi/knob1/info.json | 60 +++++++++++++++++++ .../anavi/knob1/keymaps/default/keymap.c | 16 +++++ keyboards/anavi/knob1/knob1.c | 59 ++++++++++++++++++ keyboards/anavi/knob1/knob1.h | 30 ++++++++++ keyboards/anavi/knob1/mcuconf.h | 12 ++++ keyboards/anavi/knob1/readme.md | 21 +++++++ keyboards/anavi/knob1/rules.mk | 6 ++ 8 files changed, 238 insertions(+) create mode 100644 keyboards/anavi/knob1/config.h create mode 100644 keyboards/anavi/knob1/info.json create mode 100644 keyboards/anavi/knob1/keymaps/default/keymap.c create mode 100644 keyboards/anavi/knob1/knob1.c create mode 100644 keyboards/anavi/knob1/knob1.h create mode 100644 keyboards/anavi/knob1/mcuconf.h create mode 100644 keyboards/anavi/knob1/readme.md create mode 100644 keyboards/anavi/knob1/rules.mk diff --git a/keyboards/anavi/knob1/config.h b/keyboards/anavi/knob1/config.h new file mode 100644 index 00000000000..f677aa9b233 --- /dev/null +++ b/keyboards/anavi/knob1/config.h @@ -0,0 +1,34 @@ +// Copyright 2022 Leon Anavi +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 1 + +/* Keyboard Matrix Assignments */ +// clang-format off +#define DIRECT_PINS { \ + { GP26 } \ +} + +#define RGBLIGHT_DEFAULT_MODE 9 + +/* Double tap reset button to enter bootloader */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U + + +#define I2C_DRIVER I2CD2 +#define I2C1_SDA_PIN GP6 +#define I2C1_SCL_PIN GP7 + +#ifdef OLED_ENABLE +# define OLED_DISPLAY_128X64 +# define OLED_TIMEOUT 60000 +# define OLED_BRIGHTNESS 128 +#endif diff --git a/keyboards/anavi/knob1/info.json b/keyboards/anavi/knob1/info.json new file mode 100644 index 00000000000..7ed1767a243 --- /dev/null +++ b/keyboards/anavi/knob1/info.json @@ -0,0 +1,60 @@ +{ + "keyboard_name": "Knob 1", + "manufacturer": "ANAVI", + "url": "https://github.com/AnaviTechnology/anavi-knob-1", + "maintainer": "leon-anavi", + "processor": "RP2040", + "bootloader": "rp2040", + "debounce": 5, + "features": { + "bootmagic": false, + "command": false, + "console": false, + "extrakey": true, + "mousekey": false, + "nkro": true, + "rgblight": true + }, + "rgblight": { + "pin": "GP12", + "led_count": 1, + "hue_steps": 10, + "saturation_steps": 17, + "brightness_steps": 17, + "max_brightness": 255, + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + } + }, + "encoder": { + "enabled": true, + "rotary": [ + { + "pin_a": "GP27", + "pin_b": "GP28", + "resolution": 2 + } + ] + }, + "layouts": { + "LAYOUT_k1": { + "layout": [ + { "label":"Mute", "x": 0, "y": 0 } + ] + } + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x9A25", + "vid": "0xFEED" + } +} diff --git a/keyboards/anavi/knob1/keymaps/default/keymap.c b/keyboards/anavi/knob1/keymaps/default/keymap.c new file mode 100644 index 00000000000..a17be455e4c --- /dev/null +++ b/keyboards/anavi/knob1/keymaps/default/keymap.c @@ -0,0 +1,16 @@ +// Copyright 2022 Leon Anavi +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +//#include + +enum layer_names { + _BASE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_k1( + KC_MUTE + ) +}; diff --git a/keyboards/anavi/knob1/knob1.c b/keyboards/anavi/knob1/knob1.c new file mode 100644 index 00000000000..cfc3ac8a652 --- /dev/null +++ b/keyboards/anavi/knob1/knob1.c @@ -0,0 +1,59 @@ +// Copyright 2022 Leon Anavi +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "encoder.h" +#include + +void keyboard_post_init_kb(void) { + // Enable RGB LED + setPinOutput(GP11); + writePinHigh(GP11); + rgblight_enable(); + + // Offload to the user func + keyboard_post_init_user(); +} + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + return true; +} +#endif + +#ifdef OLED_ENABLE + +bool oled_task_kb(void) { + + if (!oled_task_user()) { + return false; + } + + // Host Keyboard Layer Status + oled_write_ln_P(PSTR("ANAVI Knob 1"), false); + oled_write_ln_P(PSTR("Keymap: Default"), false); + + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_P(PSTR("Num Lock: "), false); + oled_write_ln_P(led_state.num_lock ? PSTR("On") : PSTR("Off"), false); + oled_write_P(PSTR("Caps Lock: "), false); + oled_write_ln_P(led_state.caps_lock ? PSTR("On") : PSTR("Off"), false); + oled_write_P(PSTR("Scroll Lock: "), false); + oled_write_ln_P(led_state.scroll_lock ? PSTR("On") : PSTR("Off"), false); +#ifdef RGBLIGHT_ENABLE + static char rgbStatusLine1[26] = {0}; + snprintf(rgbStatusLine1, sizeof(rgbStatusLine1), "RGB Mode: %d", rgblight_get_mode()); + oled_write_ln(rgbStatusLine1, false); + static char rgbStatusLine2[26] = {0}; + snprintf(rgbStatusLine2, sizeof(rgbStatusLine2), "h:%d s:%d v:%d", rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val()); + oled_write_ln(rgbStatusLine2, false); +#endif + return false; +} +#endif diff --git a/keyboards/anavi/knob1/knob1.h b/keyboards/anavi/knob1/knob1.h new file mode 100644 index 00000000000..c48170928ca --- /dev/null +++ b/keyboards/anavi/knob1/knob1.h @@ -0,0 +1,30 @@ +/* Copyright 2022 Leon Anavi + * + * 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 ___ KC_NO + +// clang-format off + #define LAYOUT_k1( \ + K02 \ + ) \ + { \ + { K02 } \ + } +// clang-format on diff --git a/keyboards/anavi/knob1/mcuconf.h b/keyboards/anavi/knob1/mcuconf.h new file mode 100644 index 00000000000..eb1c98372fb --- /dev/null +++ b/keyboards/anavi/knob1/mcuconf.h @@ -0,0 +1,12 @@ +// Copyright 2022 Leon Anavi (@leon-anavi) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef RP_I2C_USE_I2C0 +#define RP_I2C_USE_I2C0 FALSE + +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C1 TRUE diff --git a/keyboards/anavi/knob1/readme.md b/keyboards/anavi/knob1/readme.md new file mode 100644 index 00000000000..08f8f921976 --- /dev/null +++ b/keyboards/anavi/knob1/readme.md @@ -0,0 +1,21 @@ +# ANAVI Knob 1 + +Mini mechanical keyboard with a clickable rotary encoder, USB-C, RP2040 microcontroller and I2C slot. + +* Keyboard Maintainer: [Leon Anavi](https://github.com/leon-anavi) +* Hardware Supported: ANAVI Knob 1 +* Hardware Availability: [Crowd Supply](https://www.crowdsupply.com/anavi-technology/anavi-macro-pad-10), [GitHub repository](https://github.com/AnaviTechnology/anavi-knob-1) + +Make example for this keyboard (after setting up your build environment): + + qmk compile -kb anavi/knob1 -km 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 top left key on the left half, or top right key on the right half, and then plug in the USB cable on that keyboard half. +* **Physical reset button**: Double tap the reset button on the XIAO RP2040. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/anavi/knob1/rules.mk b/keyboards/anavi/knob1/rules.mk new file mode 100644 index 00000000000..ed8acbe4ac1 --- /dev/null +++ b/keyboards/anavi/knob1/rules.mk @@ -0,0 +1,6 @@ +WS2812_DRIVER = vendor + +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 # Enable Support for SSD1306 or SH1106 OLED Displays; Communicating over I2C + +OPT_DEFS += -DHAL_USE_I2C=TRUE From cadf18c6d3c59c42cf717d56cfd9ccc829be59e1 Mon Sep 17 00:00:00 2001 From: trguhq <93248917+trguhq@users.noreply.github.com> Date: Tue, 15 Nov 2022 11:57:09 -0500 Subject: [PATCH 23/30] Planck unicode rune layout (#18674) * Furthark layout --- layouts/community/ortho_4x12/trguhq/config.h | 27 ++ layouts/community/ortho_4x12/trguhq/keymap.c | 29 ++ layouts/community/ortho_4x12/trguhq/readme.md | 36 ++ layouts/community/ortho_4x12/trguhq/rules.mk | 1 + .../community/ortho_4x12/trguhq/trguhq.json | 361 ++++++++++++++++++ 5 files changed, 454 insertions(+) create mode 100644 layouts/community/ortho_4x12/trguhq/config.h create mode 100644 layouts/community/ortho_4x12/trguhq/keymap.c create mode 100644 layouts/community/ortho_4x12/trguhq/readme.md create mode 100644 layouts/community/ortho_4x12/trguhq/rules.mk create mode 100644 layouts/community/ortho_4x12/trguhq/trguhq.json diff --git a/layouts/community/ortho_4x12/trguhq/config.h b/layouts/community/ortho_4x12/trguhq/config.h new file mode 100644 index 00000000000..476141e2321 --- /dev/null +++ b/layouts/community/ortho_4x12/trguhq/config.h @@ -0,0 +1,27 @@ +/* Ortho 4x12 Unicode Rune Layout + * + * Copyright 2021 trguhq + * + * 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 UNICODE_SELECTED_MODES UC_MAC, UC_LNX, UC_WIN, UC_WINC + +// #define UNICODE_SONG_MAC AUDIO_ON_SOUND +// #define UNICODE_SONG_LNX UNICODE_LINUX +// #define UNICODE_SONG_BSD TERMINAL_SOUND +// #define UNICODE_SONG_WIN UNICODE_WINDOWS +// #define UNICODE_SONG_WINC UNICODE_WINDOWS diff --git a/layouts/community/ortho_4x12/trguhq/keymap.c b/layouts/community/ortho_4x12/trguhq/keymap.c new file mode 100644 index 00000000000..fecf0157b86 --- /dev/null +++ b/layouts/community/ortho_4x12/trguhq/keymap.c @@ -0,0 +1,29 @@ +/* Ortho 4x12 Unicode Rune Layout + * + * Copyright 2021 trguhq + * + * 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_4x12(KC_ESC, KC_GRV, UC(0x16A0), UC(0x16A2), UC(0x16A6), UC(0x16A8), UC(0x16B1), UC(0x16B2), UC(0x16B7), UC(0x16B9), KC_QUOT, KC_BSPC, KC_TAB, KC_SCLN, UC(0x16BA), UC(0x16BE), UC(0x16C1), UC(0x16C3), UC(0x16C7), UC(0x16C8), UC(0x16C9), UC(0x16CA), KC_COMM, KC_DOT, KC_LSFT, KC_BSLS, UC(0x16CF), UC(0x16D2), UC(0x16D6), UC(0x16D7), UC(0x16DA), UC(0x16DC), UC(0x16DF), UC(0x16DE), KC_UP, KC_ENT, BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, MO(3), KC_SPC, KC_SPC, MO(4), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT), + [1] = LAYOUT_ortho_4x12(KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, MO(3), KC_SPC, KC_SPC, MO(4), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), + [2] = LAYOUT_ortho_4x12(KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT, BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, MO(3), KC_SPC, KC_SPC, MO(4), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), + [3] = LAYOUT_ortho_4x12(KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, LSFT(KC_NUHS), LSFT(KC_NUBS), KC_HOME, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(6), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), + [4] = LAYOUT_ortho_4x12(KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(6), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), + [5] = LAYOUT_ortho_4x12(KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, TO(0), KC_NO, KC_NO, KC_C, KC_V, KC_NO, KC_NO, KC_N, KC_M, KC_NO, KC_NO, KC_NO), + [6] = LAYOUT_ortho_4x12(UNICODE_MODE_MAC, QK_BOOT, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL, UNICODE_MODE_LNX, KC_TRNS, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, DF(0), DF(1), DF(2), TO(5), KC_TRNS, UNICODE_MODE_WIN, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, /* TERM_ON */ KC_TRNS, /* TERM_OFF */ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UNICODE_MODE_WINC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/layouts/community/ortho_4x12/trguhq/readme.md b/layouts/community/ortho_4x12/trguhq/readme.md new file mode 100644 index 00000000000..e0f5025a09b --- /dev/null +++ b/layouts/community/ortho_4x12/trguhq/readme.md @@ -0,0 +1,36 @@ +# Planck Ortho 4x12 Unicode Futhark Rune layout + +![Planck Futhark Layout Image](https://i.imgur.com/ocILTZ3.png) + +* Layout Maintainer: [trguhq](https://github.com/trguhq) + +Types unicode runes on ortholinear QMK keyboard. Legacy Latin letter +layers left for user but have been marked red as irrelevant. + +## OS specific + +With both modifiers (either side of spacebar) selected, layer 6 +lets you select which OS mode to use with the first vertical column +of keys: + +1. macOS +2. Linux +3. Windows Unicode +4. Windows WinCompose + +See [QMK docs](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_unicode.md) for details. + +### macOS + +On macOS this will have to be enabled in keyboard settings as a +Unicode Hex Input Keyboard Source and selected under the +keyboard layouts icon on the menu bar. + +### Linux + +Uses IBus or GTK. + +### Windows + +Either create the needed EnableHexNumpad registry key for Windows Unicode +entry, or (recommended) install WinCompose. diff --git a/layouts/community/ortho_4x12/trguhq/rules.mk b/layouts/community/ortho_4x12/trguhq/rules.mk new file mode 100644 index 00000000000..039f07c8e35 --- /dev/null +++ b/layouts/community/ortho_4x12/trguhq/rules.mk @@ -0,0 +1 @@ +UNICODE_ENABLE = yes diff --git a/layouts/community/ortho_4x12/trguhq/trguhq.json b/layouts/community/ortho_4x12/trguhq/trguhq.json new file mode 100644 index 00000000000..cade25899a5 --- /dev/null +++ b/layouts/community/ortho_4x12/trguhq/trguhq.json @@ -0,0 +1,361 @@ +{ + "version": 1, + "notes": "", + "documentation": "\"This file is a QMK Configurator export. You can import this at . It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: \n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n", + "keyboard": "planck/rev6_drop", + "keymap": "trguhq", + "layout": "LAYOUT_ortho_4x12", + "layers": [ + [ + "KC_ESC", + "KC_GRV", + "ANY(UC(0x16A0))", + "ANY(UC(0x16A2))", + "ANY(UC(0x16A6))", + "ANY(UC(0x16A8))", + "ANY(UC(0x16B1))", + "ANY(UC(0x16B2))", + "ANY(UC(0x16B7))", + "ANY(UC(0x16B9))", + "KC_QUOT", + "KC_BSPC", + "KC_TAB", + "KC_SCLN", + "ANY(UC(0x16BA))", + "ANY(UC(0x16BE))", + "ANY(UC(0x16C1))", + "ANY(UC(0x16C3))", + "ANY(UC(0x16C7))", + "ANY(UC(0x16C8))", + "ANY(UC(0x16C9))", + "ANY(UC(0x16CA))", + "KC_COMM", + "KC_DOT", + "KC_LSFT", + "KC_BSLS", + "ANY(UC(0x16CF))", + "ANY(UC(0x16D2))", + "ANY(UC(0x16D6))", + "ANY(UC(0x16D7))", + "ANY(UC(0x16DA))", + "ANY(UC(0x16DC))", + "ANY(UC(0x16DF))", + "ANY(UC(0x16DE))", + "KC_UP", + "KC_ENT", + "BL_STEP", + "KC_LCTL", + "KC_LALT", + "KC_LGUI", + "MO(3)", + "KC_SPC", + "KC_SPC", + "MO(4)", + "KC_SLSH", + "KC_LEFT", + "KC_DOWN", + "KC_RGHT" + ], + [ + "KC_TAB", + "KC_Q", + "KC_W", + "KC_F", + "KC_P", + "KC_G", + "KC_J", + "KC_L", + "KC_U", + "KC_Y", + "KC_SCLN", + "KC_BSPC", + "KC_ESC", + "KC_A", + "KC_R", + "KC_S", + "KC_T", + "KC_D", + "KC_H", + "KC_N", + "KC_E", + "KC_I", + "KC_O", + "KC_QUOT", + "KC_LSFT", + "KC_Z", + "KC_X", + "KC_C", + "KC_V", + "KC_B", + "KC_K", + "KC_M", + "KC_COMM", + "KC_DOT", + "KC_SLSH", + "KC_ENT", + "BL_STEP", + "KC_LCTL", + "KC_LALT", + "KC_LGUI", + "MO(3)", + "KC_SPC", + "KC_SPC", + "MO(4)", + "KC_LEFT", + "KC_DOWN", + "KC_UP", + "KC_RGHT" + ], + [ + "KC_TAB", + "KC_QUOT", + "KC_COMM", + "KC_DOT", + "KC_P", + "KC_Y", + "KC_F", + "KC_G", + "KC_C", + "KC_R", + "KC_L", + "KC_BSPC", + "KC_ESC", + "KC_A", + "KC_O", + "KC_E", + "KC_U", + "KC_I", + "KC_D", + "KC_H", + "KC_T", + "KC_N", + "KC_S", + "KC_SLSH", + "KC_LSFT", + "KC_SCLN", + "KC_Q", + "KC_J", + "KC_K", + "KC_X", + "KC_B", + "KC_M", + "KC_W", + "KC_V", + "KC_Z", + "KC_ENT", + "BL_STEP", + "KC_LCTL", + "KC_LALT", + "KC_LGUI", + "MO(3)", + "KC_SPC", + "KC_SPC", + "MO(4)", + "KC_LEFT", + "KC_DOWN", + "KC_UP", + "KC_RGHT" + ], + [ + "KC_TILD", + "KC_EXLM", + "KC_AT", + "KC_HASH", + "KC_DLR", + "KC_PERC", + "KC_CIRC", + "KC_AMPR", + "KC_ASTR", + "KC_LPRN", + "KC_RPRN", + "KC_BSPC", + "KC_DEL", + "KC_F1", + "KC_F2", + "KC_F3", + "KC_F4", + "KC_F5", + "KC_F6", + "KC_UNDS", + "KC_PLUS", + "KC_LCBR", + "KC_RCBR", + "KC_PIPE", + "KC_TRNS", + "KC_F7", + "KC_F8", + "KC_F9", + "KC_F10", + "KC_F11", + "KC_F12", + "LSFT(KC_NUHS)", + "LSFT(KC_NUBS)", + "KC_HOME", + "KC_END", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "MO(6)", + "KC_MNXT", + "KC_VOLD", + "KC_VOLU", + "KC_MPLY" + ], + [ + "KC_GRV", + "KC_1", + "KC_2", + "KC_3", + "KC_4", + "KC_5", + "KC_6", + "KC_7", + "KC_8", + "KC_9", + "KC_0", + "KC_BSPC", + "KC_DEL", + "KC_F1", + "KC_F2", + "KC_F3", + "KC_F4", + "KC_F5", + "KC_F6", + "KC_MINS", + "KC_EQL", + "KC_LBRC", + "KC_RBRC", + "KC_BSLS", + "KC_TRNS", + "KC_F7", + "KC_F8", + "KC_F9", + "KC_F10", + "KC_F11", + "KC_F12", + "KC_NUHS", + "KC_NUBS", + "KC_PGUP", + "KC_PGDN", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "MO(6)", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_MNXT", + "KC_VOLD", + "KC_VOLU", + "KC_MPLY" + ], + [ + "KC_1", + "KC_1", + "KC_1", + "KC_1", + "KC_1", + "KC_1", + "KC_1", + "KC_1", + "KC_1", + "KC_1", + "KC_1", + "KC_1", + "KC_NO", + "KC_Q", + "KC_W", + "KC_E", + "KC_R", + "KC_T", + "KC_Y", + "KC_U", + "KC_I", + "KC_O", + "KC_P", + "KC_LBRC", + "KC_NO", + "KC_A", + "KC_S", + "KC_D", + "KC_F", + "KC_G", + "KC_H", + "KC_J", + "KC_K", + "KC_L", + "KC_SCLN", + "KC_QUOT", + "TO(0)", + "KC_NO", + "KC_NO", + "KC_C", + "KC_V", + "KC_NO", + "KC_NO", + "KC_N", + "KC_M", + "KC_NO", + "KC_NO", + "KC_NO" + ], + [ + "ANY(UNICODE_MODE_MAC)", + "QK_BOOT", + "DEBUG", + "RGB_TOG", + "RGB_MOD", + "RGB_HUI", + "RGB_HUD", + "RGB_SAI", + "RGB_SAD", + "RGB_VAI", + "RGB_VAD", + "KC_DEL", + "ANY(UNICODE_MODE_LNX)", + "KC_TRNS", + "ANY(MU_MOD)", + "ANY(AU_ON)", + "ANY(AU_OFF)", + "AG_NORM", + "AG_SWAP", + "DF(0)", + "DF(1)", + "DF(2)", + "TO(5)", + "KC_TRNS", + "ANY(UNICODE_MODE_WIN)", + "ANY(MUV_DE)", + "ANY(MUV_IN)", + "ANY(MU_ON)", + "ANY(MU_OFF)", + "ANY(MI_ON)", + "ANY(MI_OFF)", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "ANY(UNICODE_MODE_WINC)", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS" + ] + ], + "author": "" +} From 538dbb5b8ebf70063a5228068aa6a65e806ce639 Mon Sep 17 00:00:00 2001 From: bghull <35785950+bghull@users.noreply.github.com> Date: Tue, 15 Nov 2022 17:23:03 +0000 Subject: [PATCH 24/30] Personal keymap updates (#18763) * Latest updates * Aligning and cleaning up planck and babyv layouts * Added license, cleaned up errors --- .../babyv/keymaps/bghull/combos.def | 14 ++ .../babyv/keymaps/bghull/config.h | 7 + .../babyv/keymaps/bghull/keymap.c | 122 ++++++++++++++++++ .../babyv/keymaps/bghull/rules.mk | 8 ++ keyboards/planck/keymaps/bghull/combos.def | 14 ++ keyboards/planck/keymaps/bghull/config.h | 7 + keyboards/planck/keymaps/bghull/keymap.c | 120 ++++++++--------- keyboards/planck/keymaps/bghull/rules.mk | 5 +- 8 files changed, 235 insertions(+), 62 deletions(-) create mode 100644 keyboards/eyeohdesigns/babyv/keymaps/bghull/combos.def create mode 100644 keyboards/eyeohdesigns/babyv/keymaps/bghull/config.h create mode 100644 keyboards/eyeohdesigns/babyv/keymaps/bghull/keymap.c create mode 100644 keyboards/eyeohdesigns/babyv/keymaps/bghull/rules.mk create mode 100644 keyboards/planck/keymaps/bghull/combos.def create mode 100644 keyboards/planck/keymaps/bghull/config.h diff --git a/keyboards/eyeohdesigns/babyv/keymaps/bghull/combos.def b/keyboards/eyeohdesigns/babyv/keymaps/bghull/combos.def new file mode 100644 index 00000000000..a525113a093 --- /dev/null +++ b/keyboards/eyeohdesigns/babyv/keymaps/bghull/combos.def @@ -0,0 +1,14 @@ +// name result chord keys +COMB(QW_ESC, KC_ESC, KC_Q, KC_W) +COMB(CV_DEL, KC_DEL, KC_C, KC_V) +COMB(XC_BSPC, KC_BSPC, KC_X, KC_C) +COMB(WE_LBRC, KC_LBRC, KC_W, KC_E) +COMB(ER_RBRC, KC_RBRC, KC_E, KC_R) +COMB(SD_LPRN, KC_LPRN, KC_S, KC_D) +COMB(DF_RPRN, KC_RPRN, KC_D, KC_F) +COMB(FG_BSLS, KC_BSLS, KC_F, KC_G) +COMB(HJ_SLSH, KC_SLSH, KC_H, KC_J) +COMB(DQ_LGUI, KC_LGUI, KC_DOT, KC_QUOT) +COMB(CD_LALT, KC_LALT, KC_COMM, KC_DOT) +COMB(MC_LSFT, KC_LSFT, KC_M, KC_COMM) +COMB(NM_LCTL, KC_LCTL, KC_N, KC_M) \ No newline at end of file diff --git a/keyboards/eyeohdesigns/babyv/keymaps/bghull/config.h b/keyboards/eyeohdesigns/babyv/keymaps/bghull/config.h new file mode 100644 index 00000000000..96a6aefb0e5 --- /dev/null +++ b/keyboards/eyeohdesigns/babyv/keymaps/bghull/config.h @@ -0,0 +1,7 @@ +// Copyright 2021 Your Name (@bghull) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once +#define AUTO_SHIFT_TIMEOUT 135 +#define ONESHOT_TIMEOUT 1000 +#define COMBO_TERM 20 diff --git a/keyboards/eyeohdesigns/babyv/keymaps/bghull/keymap.c b/keyboards/eyeohdesigns/babyv/keymaps/bghull/keymap.c new file mode 100644 index 00000000000..21a0200925b --- /dev/null +++ b/keyboards/eyeohdesigns/babyv/keymaps/bghull/keymap.c @@ -0,0 +1,122 @@ +/* Copyright 2020 Eye Oh! Designs + * + * 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 + */ + +#include QMK_KEYBOARD_H +#include "keymap_steno.h" +#include "g/keymap_combo.h" + + +#define COMBO_ONLY_FROM_LAYER QWERTY + +enum layer_names { + QWERTY, + COLMAK, + NAVNUM, + FUNC, + STENO +}; + +#define BspNAV LT(NAVNUM, KC_BSPC) +#define SpcFUN LT(FUNC, KC_SPC) +#define OneSFT OSM(MOD_LSFT) +#define OneALT OSM(MOD_LALT) +#define OneCTL OSM(MOD_LCTL) +#define OneWIN OSM(MOD_LGUI) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* QWERTY + * ,-----------------------------------------------------------------------------------. + * | 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 | , < | . > | ' " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Ctrl |NAVNUM| |Space |BspNAV| | + * `-----------------------------------------------------------------------------------' + */ +[QWERTY] = LAYOUT_2u( + 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_QUOT, + _______, KC_LCTL, MO(NAVNUM), KC_SPC, BspNAV, _______ +), + +[COLMAK] = LAYOUT_2u( + KC_Q, KC_W, KC_F, KC_P, KC_B, _______, _______, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, + KC_A, KC_R, KC_S, KC_T, KC_G, _______, _______, KC_M, KC_N, KC_E, KC_I, KC_O, + KC_Z, KC_X, KC_C, KC_D, KC_V, _______, _______, KC_K, KC_H, KC_COMM, KC_DOT, KC_QUOT, + _______, KC_LCTL, MO(NAVNUM), KC_SPC, BspNAV, _______ + +), +/* NAVNUM + * ,-----------------------------------------------------------------------------------. + * |Enter | Home | Up | End | | RST | - | 7 | 8 | 9 | 0 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |OneSFT| Left | Down |Right | ` ~ | CLMK | + | 4 | 5 | 6 |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |OneCTL|OneALT| Tab | _ |OneWIN| QWER | = | 1 | 2 | 3 | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | |SpcFUN| Ctrl | | + * `-----------------------------------------------------------------------------------' + */ +[NAVNUM] = LAYOUT_2u( + KC_ENT, KC_HOME, KC_UP, KC_END, _______, _______, RESET, KC_PMNS, KC_7, KC_8, KC_9, KC_0, + OneSFT, KC_LEFT, KC_DOWN, KC_RGHT, KC_GRV, _______, DF(COLMAK), KC_PPLS, KC_4, KC_5, KC_6, KC_ENT, + OneCTL, OneALT, KC_TAB, KC_UNDS, OneWIN, _______, DF(QWERTY), KC_EQL, KC_1, KC_2, KC_3, _______, + _______, _______, _______, SpcFUN, KC_LCTL, _______ +), +/* FUNC: Mousekeys + F keys + * ,-----------------------------------------------------------------------------------. + * | |Rclick| MsUp |Lclick| WhUp | | | F7 | F8 | F9 | F10 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | MsLt | MsDn | MsRt | WhDn | |OneALT| F4 | F5 | F6 | F11 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | |Mclick| | | | | F1 | F2 | F3 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[FUNC] = LAYOUT_2u( + _______, KC_BTN2, KC_MS_U, KC_BTN1, KC_WH_U, _______, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, + _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, _______, OneALT , KC_F4, KC_F5, KC_F6, KC_F11, + _______, _______, KC_BTN3, _______, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F12, + _______, _______, _______, _______, _______, DF(STENO) +), + +/* STENO + * ,----------------------------------------------------------------------------------------. + * | | # | # | # | # | # / \ # | # | # | # | # | | + * |------+------+------+------+------+-------- -------+------+------+------+------+------| + * | | S | T | P ! H ! * / \ * ! F ! P | L | T | D | + * |------+------+------+------+------+------- ------+------+------+------+------+------| + * | | S | K | W | R | * / \ * | R | B | G | S | Z | + * |------+------+------+------+------+------ -----+------+------+------+------+------| + * | | | A | O | | E | U | |QWERTY| + * `----------------------------------------------------------------------------------------' +*/ +[STENO] = LAYOUT_2u( + STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, STN_NB, STN_NC , + STN_FN, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR , + XXXXXXX, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR , + XXXXXXX, STN_A, STN_O, STN_E, STN_U, DF(QWERTY) + ), +}; + + +void matrix_init_user() { + steno_set_mode(STENO_MODE_GEMINI); +}; + diff --git a/keyboards/eyeohdesigns/babyv/keymaps/bghull/rules.mk b/keyboards/eyeohdesigns/babyv/keymaps/bghull/rules.mk new file mode 100644 index 00000000000..db78b5957b4 --- /dev/null +++ b/keyboards/eyeohdesigns/babyv/keymaps/bghull/rules.mk @@ -0,0 +1,8 @@ +NKRO_ENABLE = yes +AUTO_SHIFT_ENABLE = yes +MOUSEKEY_ENABLE = yes +STENO_ENABLE = yes +COMBO_ENABLE = yes +BACKLIGHT_ENABLE = no +RGBLIGHT_ENABLE = no +VPATH += keyboards/gboards \ No newline at end of file diff --git a/keyboards/planck/keymaps/bghull/combos.def b/keyboards/planck/keymaps/bghull/combos.def new file mode 100644 index 00000000000..a525113a093 --- /dev/null +++ b/keyboards/planck/keymaps/bghull/combos.def @@ -0,0 +1,14 @@ +// name result chord keys +COMB(QW_ESC, KC_ESC, KC_Q, KC_W) +COMB(CV_DEL, KC_DEL, KC_C, KC_V) +COMB(XC_BSPC, KC_BSPC, KC_X, KC_C) +COMB(WE_LBRC, KC_LBRC, KC_W, KC_E) +COMB(ER_RBRC, KC_RBRC, KC_E, KC_R) +COMB(SD_LPRN, KC_LPRN, KC_S, KC_D) +COMB(DF_RPRN, KC_RPRN, KC_D, KC_F) +COMB(FG_BSLS, KC_BSLS, KC_F, KC_G) +COMB(HJ_SLSH, KC_SLSH, KC_H, KC_J) +COMB(DQ_LGUI, KC_LGUI, KC_DOT, KC_QUOT) +COMB(CD_LALT, KC_LALT, KC_COMM, KC_DOT) +COMB(MC_LSFT, KC_LSFT, KC_M, KC_COMM) +COMB(NM_LCTL, KC_LCTL, KC_N, KC_M) \ No newline at end of file diff --git a/keyboards/planck/keymaps/bghull/config.h b/keyboards/planck/keymaps/bghull/config.h new file mode 100644 index 00000000000..96a6aefb0e5 --- /dev/null +++ b/keyboards/planck/keymaps/bghull/config.h @@ -0,0 +1,7 @@ +// Copyright 2021 Your Name (@bghull) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once +#define AUTO_SHIFT_TIMEOUT 135 +#define ONESHOT_TIMEOUT 1000 +#define COMBO_TERM 20 diff --git a/keyboards/planck/keymaps/bghull/keymap.c b/keyboards/planck/keymaps/bghull/keymap.c index 8abdc884dde..cae278e3e2f 100644 --- a/keyboards/planck/keymaps/bghull/keymap.c +++ b/keyboards/planck/keymaps/bghull/keymap.c @@ -16,86 +16,86 @@ #include QMK_KEYBOARD_H #include "keymap_steno.h" +#include "g/keymap_combo.h" +#include "muse.h" + +#define COMBO_ONLY_FROM_LAYER QWERTY enum planck_layers { - _QWERTY, - _STENO, - _NUMPAD, - _FUNC + QWERTY, + COLMAK, + NAVNUM, + FUNC + }; +#define BspNAV LT(NAVNUM, KC_BSPC) +#define SpcFUN LT(FUNC, KC_SPC) +#define OneSFT OSM(MOD_LSFT) +#define OneALT OSM(MOD_LALT) +#define OneCTL OSM(MOD_LCTL) +#define OneWIN OSM(MOD_LGUI) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* Qwerty +/* QWERTY * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * | Q | W | E | R | T | | Y | U | I | O | P | * |------+------+------+------+------+-------------+------+------+------+------+------| - * |NUMPAD| A | S | D | F | G | H | J | K | L | ; : | Enter| - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , < | . > | up | / ? | + * | A | S | D | F | G | | H | J | K | L | ; : | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Z | X | C | V | B | | N | M | , < | . > | ' " | * |------+------+------+------+------+------+------+------+------+------+------+------| - * |Es/Ctl|MACROS|STENO | Alt | Bspc | Space | Ctrl | ' " | lt | dn | rt | + * | | Ctrl |NAVNUM| |Space |BspNAV| | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = LAYOUT_planck_grid( - LGUI_T(KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, - MO(_NUMPAD), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, - LCTL_T(KC_ESC),MO(_FUNC),DF(_STENO), KC_LALT, KC_BSPC, KC_SPC ,_______ , KC_LCTL, KC_QUOT, KC_LEFT, KC_DOWN, KC_RGHT +[QWERTY] = LAYOUT_planck_grid( + 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_QUOT, + _______, _______, _______, KC_LCTL, MO(NAVNUM),_______, _______, KC_SPC, BspNAV, _______, _______, _______ ), -/* Plover layer (http://opensteno.org) - * ,-----------------------------------------------------------------------------------. - * | # | # | # | # | # | # | # | # | # | # | # | # | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | FN | S | T | P | H | * | * | F | P | L | T | D | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | S | K | W | R | * | * | R | B | G | S | Z | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | |QWERTY| A | O | | E | U | PWR | RES1 | RES2 | - * `-----------------------------------------------------------------------------------' - */ -[_STENO] = LAYOUT_planck_grid( - STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, STN_NB, STN_NC , - STN_FN, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR , - XXXXXXX, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR , - XXXXXXX, XXXXXXX, DF(_QWERTY),STN_A,STN_O, XXXXXXX, XXXXXXX, STN_E, STN_U, STN_PWR, STN_RE1, STN_RE2 -), +[COLMAK] = LAYOUT_planck_grid( + KC_Q, KC_W, KC_F, KC_P, KC_B, _______, _______, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, + KC_A, KC_R, KC_S, KC_T, KC_G, _______, _______, KC_M, KC_N, KC_E, KC_I, KC_O, + KC_Z, KC_X, KC_C, KC_D, KC_V, _______, _______, KC_K, KC_H, KC_COMM, KC_DOT, KC_QUOT, + _______, _______, _______, KC_LCTL, MO(NAVNUM),_______, _______, KC_SPC, BspNAV, _______, _______, _______ -/* - * ,-----------------------------------------------------------------------------------. - * | |RClick| MsU |LClick|WheelU| ( | ) | 7 | 8 | 9 | 0 | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | MsL | MsD | MsR |WheelD| [{ | ]} | 4 | 5 | 6 | + | -_ | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | Mute | VolD | VolU | `~ | _ | = | 1 | 2 | 3 | PgUp | \ | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | |QK_BOOT | | | | | . | Home | PgDn | End | - * `-----------------------------------------------------------------------------------' - */ -[_NUMPAD] = LAYOUT_planck_grid( - _______, KC_BTN2, KC_MS_U, KC_BTN1, KC_WH_U, KC_LPRN, KC_RPRN, KC_7, KC_8, KC_9, KC_0, _______, - _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, KC_LBRC, KC_RBRC, KC_4, KC_5, KC_6, KC_PPLS, KC_MINS, - _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_GRAVE, KC_UNDS, KC_EQL, KC_1, KC_2, KC_3, KC_PGUP, KC_BSLS, - _______, XXXXXXX, QK_BOOT, _______, _______, _______, _______, _______, KC_PDOT, KC_HOME, KC_PGDN, KC_END ), - -/* Dynamic macros + Winkey combos +/* NAVNUM * ,-----------------------------------------------------------------------------------. - * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |Enter | Home | Up | End | | RST | - | 7 | 8 | 9 | 0 | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | W2 | | | | | | | | | | | QK_BOOT| + * |OneSFT| Left | Down |Right | ` ~ | CLMK | + | 4 | 5 | 6 |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | W3 | | | | | | | | | | | | + * |OneCTL|OneALT| Tab | _ |OneWIN| QWER | = | 1 | 2 | 3 | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | W4 | | | | | | | | | | | + * | | | | |SpcFUN| Ctrl | | * `-----------------------------------------------------------------------------------' */ -[_FUNC] = LAYOUT_planck_grid( - KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12, - LGUI(KC_2), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, - LGUI(KC_3), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - LGUI(KC_4), _______, DM_REC1, DM_PLY1, DM_RSTP, _______, _______, _______, _______, _______, _______, _______ +[NAVNUM] = LAYOUT_planck_grid( + KC_ENT, KC_HOME, KC_UP, KC_END, _______, _______, RESET, KC_PMNS, KC_7, KC_8, KC_9, KC_0, + OneSFT, KC_LEFT, KC_DOWN, KC_RGHT, KC_GRV, _______, DF(COLMAK), KC_PPLS, KC_4, KC_5, KC_6, KC_ENT, + OneCTL, OneALT, KC_TAB, KC_UNDS, OneWIN, _______, DF(QWERTY), KC_EQL, KC_1, KC_2, KC_3, _______, + _______, _______, _______, _______, _______, _______, _______, SpcFUN, KC_LCTL, _______, _______, _______ +), +/* FUNC: Mousekeys + F keys + * ,-----------------------------------------------------------------------------------. + * | |Rclick| MsUp |Lclick| WhUp | | | F7 | F8 | F9 | F10 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | MsLt | MsDn | MsRt | WhDn | |OneALT| F4 | F5 | F6 | F11 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | |Mclick| | | | | F1 | F2 | F3 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[FUNC] = LAYOUT_planck_grid( + _______, KC_BTN2, KC_MS_U, KC_BTN1, KC_WH_U, _______, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, + _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, _______, OneALT , KC_F4, KC_F5, KC_F6, KC_F11, + _______, _______, KC_BTN3, _______, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F12, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; + diff --git a/keyboards/planck/keymaps/bghull/rules.mk b/keyboards/planck/keymaps/bghull/rules.mk index 9711c485d7a..664ed740781 100644 --- a/keyboards/planck/keymaps/bghull/rules.mk +++ b/keyboards/planck/keymaps/bghull/rules.mk @@ -1,5 +1,6 @@ SRC += muse.c AUTO_SHIFT_ENABLE = yes MOUSEKEY_ENABLE = yes -STENO_ENABLE = yes -AUDIO_ENABLE = no \ No newline at end of file +AUDIO_ENABLE = no +COMBO_ENABLE = yes +VPATH += keyboards/gboards \ No newline at end of file From df5689ed06cc08713f1d097de7436c466f4c0261 Mon Sep 17 00:00:00 2001 From: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Wed, 16 Nov 2022 02:40:28 +0800 Subject: [PATCH 25/30] [Docs] Note default value for TAP_CODE_DELAY (#19078) --- docs/config_options.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/config_options.md b/docs/config_options.md index cc732de7d26..676db3b62dd 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -207,7 +207,7 @@ If you define these options you will enable the associated feature, which may in * `#define COMBO_NO_TIMER` * Disable the combo timer completely for relaxed combos. * `#define TAP_CODE_DELAY 100` - * Sets the delay between `register_code` and `unregister_code`, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds. + * Sets the delay between `register_code` and `unregister_code`, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds and defaults to `0`. * `#define TAP_HOLD_CAPS_DELAY 80` * Sets the delay for Tap Hold keys (`LT`, `MT`) when using `KC_CAPS_LOCK` keycode, as this has some special handling on MacOS. The value is in milliseconds, and defaults to 80 ms if not defined. For macOS, you may want to set this to 200 or higher. * `#define KEY_OVERRIDE_REPEAT_DELAY 500` From 81a6407dcaf32e4b2115daccc7c0658add4de7d4 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 16 Nov 2022 05:59:09 +1100 Subject: [PATCH 26/30] Update more `DRIVER_LED_TOTAL` defines to `RGB_MATRIX_LED_COUNT` (#19089) --- keyboards/bastardkb/dilemma/3x5_3/config.h | 2 +- keyboards/controllerworks/mini36/keymaps/default/config.h | 2 +- keyboards/controllerworks/mini36/keymaps/via/config.h | 2 +- keyboards/controllerworks/mini42/keymaps/default/config.h | 2 +- keyboards/controllerworks/mini42/keymaps/via/config.h | 4 +--- keyboards/crkbd/keymaps/nimishgautam/config.h | 2 +- keyboards/kprepublic/bm40hsrgb/keymaps/coffee/keymap.c | 2 +- keyboards/tzarc/ghoul/config.h | 3 +-- keyboards/work_louder/numpad/config.h | 3 +-- keyboards/yandrstudio/buff67v3/config.h | 1 - keyboards/yandrstudio/eau_r2/config.h | 1 - keyboards/yandrstudio/nightstar75/config.h | 1 - keyboards/yandrstudio/yr6095/config.h | 1 - 13 files changed, 9 insertions(+), 17 deletions(-) diff --git a/keyboards/bastardkb/dilemma/3x5_3/config.h b/keyboards/bastardkb/dilemma/3x5_3/config.h index 30bce4369bd..d89f2500636 100644 --- a/keyboards/bastardkb/dilemma/3x5_3/config.h +++ b/keyboards/bastardkb/dilemma/3x5_3/config.h @@ -62,7 +62,7 @@ /* RGB matrix support. */ #ifdef RGB_MATRIX_ENABLE # define SPLIT_TRANSPORT_MIRROR -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM # define RGB_MATRIX_SPLIT RGBLED_SPLIT # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50 # define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS diff --git a/keyboards/controllerworks/mini36/keymaps/default/config.h b/keyboards/controllerworks/mini36/keymaps/default/config.h index e1d162ef3ee..77da61828c1 100644 --- a/keyboards/controllerworks/mini36/keymaps/default/config.h +++ b/keyboards/controllerworks/mini36/keymaps/default/config.h @@ -23,7 +23,7 @@ // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended # define RGB_MATRIX_FRAMEBUFFER_EFFECTS -// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # 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 diff --git a/keyboards/controllerworks/mini36/keymaps/via/config.h b/keyboards/controllerworks/mini36/keymaps/via/config.h index e1d162ef3ee..77da61828c1 100644 --- a/keyboards/controllerworks/mini36/keymaps/via/config.h +++ b/keyboards/controllerworks/mini36/keymaps/via/config.h @@ -23,7 +23,7 @@ // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended # define RGB_MATRIX_FRAMEBUFFER_EFFECTS -// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # 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 diff --git a/keyboards/controllerworks/mini42/keymaps/default/config.h b/keyboards/controllerworks/mini42/keymaps/default/config.h index e1d162ef3ee..77da61828c1 100644 --- a/keyboards/controllerworks/mini42/keymaps/default/config.h +++ b/keyboards/controllerworks/mini42/keymaps/default/config.h @@ -23,7 +23,7 @@ // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended # define RGB_MATRIX_FRAMEBUFFER_EFFECTS -// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # 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 diff --git a/keyboards/controllerworks/mini42/keymaps/via/config.h b/keyboards/controllerworks/mini42/keymaps/via/config.h index 94eb482c86f..e11d5aa37fa 100644 --- a/keyboards/controllerworks/mini42/keymaps/via/config.h +++ b/keyboards/controllerworks/mini42/keymaps/via/config.h @@ -16,8 +16,6 @@ */ #pragma once #ifdef RGB_MATRIX_ENABLE -# define RGBLED_NUM 54 // Number of LEDs -# define DRIVER_LED_TOTAL RGBLED_NUM # define RGB_MATRIX_SPLIT \ { 27, 27 } //# define SPLIT_TRANSPORT_MIRROR @@ -26,7 +24,7 @@ // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended # define RGB_MATRIX_FRAMEBUFFER_EFFECTS -// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # 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 diff --git a/keyboards/crkbd/keymaps/nimishgautam/config.h b/keyboards/crkbd/keymaps/nimishgautam/config.h index 38146abb436..b09d8588986 100644 --- a/keyboards/crkbd/keymaps/nimishgautam/config.h +++ b/keyboards/crkbd/keymaps/nimishgautam/config.h @@ -61,7 +61,7 @@ #define RGB_MATRIX_VAL_STEP 8 #define RGB_MATRIX_SPD_STEP 10 #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended - #define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) + #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 ENABLE_RGB_MATRIX_SOLID_SPLASH diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/keymap.c index f9889564514..1949eeb1505 100644 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/keymap.c +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/keymap.c @@ -73,7 +73,7 @@ const uint16_t PROGMEM keymaps[_END][MATRIX_ROWS][MATRIX_COLS] = { #ifdef UNDERGLOW_DISABLE void keyboard_pre_init_user(void) { - for (int key_id = 0; key_id < DRIVER_LED_TOTAL; key_id++ ) { + for (int key_id = 0; key_id < RGB_MATRIX_LED_COUNT; key_id++ ) { if (g_led_config.flags[key_id] == LED_FLAG_UNDERGLOW) { g_led_config.flags[key_id] = LED_FLAG_NONE; } diff --git a/keyboards/tzarc/ghoul/config.h b/keyboards/tzarc/ghoul/config.h index c3897e7ada3..57068ef6cb6 100644 --- a/keyboards/tzarc/ghoul/config.h +++ b/keyboards/tzarc/ghoul/config.h @@ -15,5 +15,4 @@ // RGB configuration #define RGB_MATRIX_LED_COUNT 40 -#define RGBLED_NUM 40 // TBD: Once convergence with these defines occurs, remove. -#define DRIVER_LED_TOTAL 40 // TBD: Once convergence with these defines occurs, remove. +#define RGBLED_NUM 40 diff --git a/keyboards/work_louder/numpad/config.h b/keyboards/work_louder/numpad/config.h index 7cf84a7d183..762e5e654b8 100644 --- a/keyboards/work_louder/numpad/config.h +++ b/keyboards/work_louder/numpad/config.h @@ -21,8 +21,7 @@ // #define RGB_DI_PIN D1 -#define DRIVER_LED_TOTAL 16 -#define RGB_MATRIX_LED_COUNT DRIVER_LED_TOTAL +#define RGB_MATRIX_LED_COUNT 16 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255 #define RGB_MATRIX_DISABLE_KEYCODES #define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/yandrstudio/buff67v3/config.h b/keyboards/yandrstudio/buff67v3/config.h index 81d5654e57f..0e7392f0e68 100644 --- a/keyboards/yandrstudio/buff67v3/config.h +++ b/keyboards/yandrstudio/buff67v3/config.h @@ -35,7 +35,6 @@ # define RGB_DI_PIN B4 # define RGBLED_NUM 1 -# define DRIVER_LED_TOTAL RGBLED_NUM # define RGBLIGHT_EFFECT_BREATHING # define RGBLIGHT_EFFECT_RAINBOW_MOOD # define RGBLIGHT_EFFECT_RAINBOW_SWIRL diff --git a/keyboards/yandrstudio/eau_r2/config.h b/keyboards/yandrstudio/eau_r2/config.h index 3fdb79256ec..28cb9106bc9 100644 --- a/keyboards/yandrstudio/eau_r2/config.h +++ b/keyboards/yandrstudio/eau_r2/config.h @@ -33,7 +33,6 @@ # define RGB_DI_PIN A8 # define RGBLED_NUM 12 -# define DRIVER_LED_TOTAL RGBLED_NUM # define RGBLIGHT_SLEEP # define RGBLIGHT_VAL_STEP 5 # define RGBLIGHT_LIMIT_VAL 200 diff --git a/keyboards/yandrstudio/nightstar75/config.h b/keyboards/yandrstudio/nightstar75/config.h index 767628fc3f4..6f2942042ae 100644 --- a/keyboards/yandrstudio/nightstar75/config.h +++ b/keyboards/yandrstudio/nightstar75/config.h @@ -30,7 +30,6 @@ # define RGB_DI_PIN A7 # define RGBLED_NUM 4 -# define DRIVER_LED_TOTAL RGBLED_NUM # define RGBLIGHT_LIMIT_VAL 180 # define RGBLIGHT_EFFECT_BREATHING diff --git a/keyboards/yandrstudio/yr6095/config.h b/keyboards/yandrstudio/yr6095/config.h index 3905967b9e3..1e51826d942 100644 --- a/keyboards/yandrstudio/yr6095/config.h +++ b/keyboards/yandrstudio/yr6095/config.h @@ -31,7 +31,6 @@ # define RGB_DI_PIN B5 # define RGBLED_NUM 1 -# define DRIVER_LED_TOTAL RGBLED_NUM # define RGBLIGHT_LAYERS # define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF From 57ac917b4366cbd25044ed59496e6b4f3bb9a17a Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 16 Nov 2022 07:06:49 +0000 Subject: [PATCH 27/30] Extend eeconfig kb/user datablock API (#19094) --- quantum/eeconfig.c | 42 ++++++++++++++++++++++++++++++++++-------- quantum/eeconfig.h | 4 ++++ 2 files changed, 38 insertions(+), 8 deletions(-) diff --git a/quantum/eeconfig.c b/quantum/eeconfig.c index 3b4d690e42c..21bcce26545 100644 --- a/quantum/eeconfig.c +++ b/quantum/eeconfig.c @@ -71,15 +71,11 @@ void eeconfig_init_quantum(void) { #endif #if (EECONFIG_KB_DATA_SIZE) > 0 - eeprom_update_dword(EECONFIG_KEYBOARD, (EECONFIG_KB_DATA_VERSION)); - uint8_t dummy_kb[(EECONFIG_KB_DATA_SIZE)] = {0}; - eeprom_update_block(EECONFIG_KB_DATABLOCK, dummy_kb, (EECONFIG_KB_DATA_SIZE)); + eeconfig_init_kb_datablock(); #endif #if (EECONFIG_USER_DATA_SIZE) > 0 - eeprom_update_dword(EECONFIG_USER, (EECONFIG_USER_DATA_VERSION)); - uint8_t dummy_user[(EECONFIG_USER_DATA_SIZE)] = {0}; - eeprom_update_block(EECONFIG_USER_DATABLOCK, dummy_user, (EECONFIG_USER_DATA_SIZE)); + eeconfig_init_user_datablock(); #endif #if defined(VIA_ENABLE) @@ -273,12 +269,19 @@ void eeconfig_update_handedness(bool val) { } #if (EECONFIG_KB_DATA_SIZE) > 0 +/** \brief eeconfig assert keyboard data block version + * + * FIXME: needs doc + */ +bool eeconfig_is_kb_datablock_valid(void) { + return eeprom_read_dword(EECONFIG_KEYBOARD) == (EECONFIG_KB_DATA_VERSION); +} /** \brief eeconfig read keyboard data block * * FIXME: needs doc */ void eeconfig_read_kb_datablock(void *data) { - if (eeprom_read_dword(EECONFIG_KEYBOARD) == (EECONFIG_KB_DATA_VERSION)) { + if (eeconfig_is_kb_datablock_valid()) { eeprom_read_block(data, EECONFIG_KB_DATABLOCK, (EECONFIG_KB_DATA_SIZE)); } else { memset(data, 0, (EECONFIG_KB_DATA_SIZE)); @@ -292,15 +295,30 @@ void eeconfig_update_kb_datablock(const void *data) { eeprom_update_dword(EECONFIG_KEYBOARD, (EECONFIG_KB_DATA_VERSION)); eeprom_update_block(data, EECONFIG_KB_DATABLOCK, (EECONFIG_KB_DATA_SIZE)); } +/** \brief eeconfig init keyboard data block + * + * FIXME: needs doc + */ +__attribute__((weak)) void eeconfig_init_kb_datablock(void) { + uint8_t dummy_kb[(EECONFIG_KB_DATA_SIZE)] = {0}; + eeconfig_update_kb_datablock(dummy_kb); +} #endif // (EECONFIG_KB_DATA_SIZE) > 0 #if (EECONFIG_USER_DATA_SIZE) > 0 +/** \brief eeconfig assert user data block version + * + * FIXME: needs doc + */ +bool eeconfig_is_user_datablock_valid(void) { + return eeprom_read_dword(EECONFIG_USER) == (EECONFIG_USER_DATA_VERSION); +} /** \brief eeconfig read user data block * * FIXME: needs doc */ void eeconfig_read_user_datablock(void *data) { - if (eeprom_read_dword(EECONFIG_USER) == (EECONFIG_USER_DATA_VERSION)) { + if (eeconfig_is_user_datablock_valid()) { eeprom_read_block(data, EECONFIG_USER_DATABLOCK, (EECONFIG_USER_DATA_SIZE)); } else { memset(data, 0, (EECONFIG_USER_DATA_SIZE)); @@ -314,4 +332,12 @@ void eeconfig_update_user_datablock(const void *data) { eeprom_update_dword(EECONFIG_USER, (EECONFIG_USER_DATA_VERSION)); eeprom_update_block(data, EECONFIG_USER_DATABLOCK, (EECONFIG_USER_DATA_SIZE)); } +/** \brief eeconfig init user data block + * + * FIXME: needs doc + */ +__attribute__((weak)) void eeconfig_init_user_datablock(void) { + uint8_t dummy_user[(EECONFIG_USER_DATA_SIZE)] = {0}; + eeconfig_update_user_datablock(dummy_user); +} #endif // (EECONFIG_USER_DATA_SIZE) > 0 diff --git a/quantum/eeconfig.h b/quantum/eeconfig.h index 9fc563d09c2..ee8e9add8b1 100644 --- a/quantum/eeconfig.h +++ b/quantum/eeconfig.h @@ -134,13 +134,17 @@ bool eeconfig_read_handedness(void); void eeconfig_update_handedness(bool val); #if (EECONFIG_KB_DATA_SIZE) > 0 +bool eeconfig_is_kb_datablock_valid(void); void eeconfig_read_kb_datablock(void *data); void eeconfig_update_kb_datablock(const void *data); +void eeconfig_init_kb_datablock(void); #endif // (EECONFIG_KB_DATA_SIZE) > 0 #if (EECONFIG_USER_DATA_SIZE) > 0 +bool eeconfig_is_user_datablock_valid(void); void eeconfig_read_user_datablock(void *data); void eeconfig_update_user_datablock(const void *data); +void eeconfig_init_user_datablock(void); #endif // (EECONFIG_USER_DATA_SIZE) > 0 // Any "checked" debounce variant used requires implementation of: From d6956668e33ef993d9114a31c0b6c79bebc9ad2c Mon Sep 17 00:00:00 2001 From: Charly Delay <0xcharly@users.noreply.github.com> Date: Wed, 16 Nov 2022 16:07:51 +0900 Subject: [PATCH 28/30] Specify `DEFAULT_FOLDER` for `v2/splinky` (#19093) --- keyboards/bastardkb/charybdis/3x5/v2/splinky/rules.mk | 2 ++ keyboards/bastardkb/charybdis/3x6/v2/splinky/rules.mk | 2 ++ keyboards/bastardkb/charybdis/4x6/v2/splinky/rules.mk | 2 ++ keyboards/bastardkb/scylla/v2/splinky/rules.mk | 2 ++ keyboards/bastardkb/skeletyl/v2/splinky/rules.mk | 2 ++ keyboards/bastardkb/tbkmini/v2/splinky/rules.mk | 2 ++ 6 files changed, 12 insertions(+) diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky/rules.mk b/keyboards/bastardkb/charybdis/3x5/v2/splinky/rules.mk index 21a95060771..7e38f33d5d4 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/splinky/rules.mk +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky/rules.mk @@ -35,3 +35,5 @@ POINTING_DEVICE_DRIVER = pmw3360 SERIAL_DRIVER = vendor WS2812_DRIVER = vendor + +DEFAULT_FOLDER = bastardkb/charybdis/3x5/v2/splinky/v3 diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky/rules.mk b/keyboards/bastardkb/charybdis/3x6/v2/splinky/rules.mk index 6ab474a76fc..4dfff6dfd6a 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/splinky/rules.mk +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky/rules.mk @@ -35,3 +35,5 @@ POINTING_DEVICE_DRIVER = pmw3360 SERIAL_DRIVER = vendor WS2812_DRIVER = vendor + +DEFAULT_FOLDER = bastardkb/charybdis/3x6/v2/splinky/v3 diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky/rules.mk b/keyboards/bastardkb/charybdis/4x6/v2/splinky/rules.mk index 13c1b399610..34ef782d2f6 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/splinky/rules.mk +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky/rules.mk @@ -34,3 +34,5 @@ POINTING_DEVICE_DRIVER = pmw3360 SERIAL_DRIVER = vendor WS2812_DRIVER = vendor + +DEFAULT_FOLDER = bastardkb/charybdis/4x6/v2/splinky/v3 diff --git a/keyboards/bastardkb/scylla/v2/splinky/rules.mk b/keyboards/bastardkb/scylla/v2/splinky/rules.mk index 8dfc0256ab5..67846c1ab38 100644 --- a/keyboards/bastardkb/scylla/v2/splinky/rules.mk +++ b/keyboards/bastardkb/scylla/v2/splinky/rules.mk @@ -31,3 +31,5 @@ SPLIT_KEYBOARD = yes SERIAL_DRIVER = vendor WS2812_DRIVER = vendor + +DEFAULT_FOLDER = bastardkb/scylla/v2/splinky/v3 diff --git a/keyboards/bastardkb/skeletyl/v2/splinky/rules.mk b/keyboards/bastardkb/skeletyl/v2/splinky/rules.mk index 1ce16352dde..2749d4fc2cb 100644 --- a/keyboards/bastardkb/skeletyl/v2/splinky/rules.mk +++ b/keyboards/bastardkb/skeletyl/v2/splinky/rules.mk @@ -32,3 +32,5 @@ LAYOUTS = split_3x5_3 SERIAL_DRIVER = vendor WS2812_DRIVER = vendor + +DEFAULT_FOLDER = bastardkb/skeletyl/v2/splinky/v3 diff --git a/keyboards/bastardkb/tbkmini/v2/splinky/rules.mk b/keyboards/bastardkb/tbkmini/v2/splinky/rules.mk index 6b55f6e5954..7bf3459d045 100644 --- a/keyboards/bastardkb/tbkmini/v2/splinky/rules.mk +++ b/keyboards/bastardkb/tbkmini/v2/splinky/rules.mk @@ -32,3 +32,5 @@ LAYOUTS = split_3x6_3 SERIAL_DRIVER = vendor WS2812_DRIVER = vendor + +DEFAULT_FOLDER = bastardkb/tbkmini/v2/splinky/v3 From d86c0d372312dc72a384e166d4cc8653de670610 Mon Sep 17 00:00:00 2001 From: Charly Delay <0xcharly@users.noreply.github.com> Date: Thu, 17 Nov 2022 02:23:21 +0900 Subject: [PATCH 29/30] Use `keyboard_pre_init_kb(void)` at keyboard level (#19091) --- keyboards/bastardkb/dilemma/dilemma.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/keyboards/bastardkb/dilemma/dilemma.c b/keyboards/bastardkb/dilemma/dilemma.c index 793f27d2b59..b474a24e7f9 100644 --- a/keyboards/bastardkb/dilemma/dilemma.c +++ b/keyboards/bastardkb/dilemma/dilemma.c @@ -331,7 +331,7 @@ void matrix_init_kb(void) { // Forward declare RP2040 SDK declaration. void gpio_init(uint gpio); -void keyboard_pre_init_user(void) { +void keyboard_pre_init_kb(void) { // Ensures that GP26 through GP29 are initialized as digital inputs (as // opposed to analog inputs). These GPIOs are shared with A0 through A3, // respectively. On RP2040-B2 and later, the digital inputs are disabled by @@ -340,4 +340,6 @@ void keyboard_pre_init_user(void) { gpio_init(GP27); gpio_init(GP28); gpio_init(GP29); + + keyboard_pre_init_user(); } From 31fb55ae7b495508c2fd3d56616d11564a0c3f0c Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Wed, 16 Nov 2022 14:46:11 -0700 Subject: [PATCH 30/30] fixed MOUSEKEY_INERTIA on AVR (#19096) Co-authored-by: Selene ToyKeeper --- quantum/mousekey.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quantum/mousekey.c b/quantum/mousekey.c index b91db80de6b..703fb39fa6e 100644 --- a/quantum/mousekey.c +++ b/quantum/mousekey.c @@ -129,7 +129,7 @@ static int8_t move_unit(uint8_t axis) { // x**2 acceleration (quadratic, more precise for short movements) int16_t percent = (inertia << 8) / mk_time_to_max; - percent = (percent * percent) >> 8; + percent = ((int32_t)percent * percent) >> 8; if (inertia < 0) percent = -percent; // unit = sign(inertia) + (percent of max speed)