From 726992e9692383a84e77e5dc2126605847aeb1dc Mon Sep 17 00:00:00 2001 From: Markus Knutsson Date: Mon, 8 Aug 2022 22:49:32 +0200 Subject: [PATCH 01/33] lsb 4 initial --- .../tweetydabird/littlebigscroll4/config.h | 93 +++++++++++++++++++ .../tweetydabird/littlebigscroll4/info.json | 17 ++++ .../littlebigscroll4/keymaps/default/keymap.c | 53 +++++++++++ .../keymaps/default/readme.md | 1 + .../littlebigscroll4/littlebigscroll4.c | 4 + .../littlebigscroll4/littlebigscroll4.h | 21 +++++ .../tweetydabird/littlebigscroll4/readme.md | 27 ++++++ .../tweetydabird/littlebigscroll4/rules.mk | 34 +++++++ 8 files changed, 250 insertions(+) create mode 100644 keyboards/tweetydabird/littlebigscroll4/config.h create mode 100644 keyboards/tweetydabird/littlebigscroll4/info.json create mode 100644 keyboards/tweetydabird/littlebigscroll4/keymaps/default/keymap.c create mode 100644 keyboards/tweetydabird/littlebigscroll4/keymaps/default/readme.md create mode 100644 keyboards/tweetydabird/littlebigscroll4/littlebigscroll4.c create mode 100644 keyboards/tweetydabird/littlebigscroll4/littlebigscroll4.h create mode 100644 keyboards/tweetydabird/littlebigscroll4/readme.md create mode 100644 keyboards/tweetydabird/littlebigscroll4/rules.mk diff --git a/keyboards/tweetydabird/littlebigscroll4/config.h b/keyboards/tweetydabird/littlebigscroll4/config.h new file mode 100644 index 000000000000..e5b61afa9508 --- /dev/null +++ b/keyboards/tweetydabird/littlebigscroll4/config.h @@ -0,0 +1,93 @@ +// Copyright 2022 Markus Knutsson (@TweetyDaBird) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x1212 +#define DEVICE_VER 0x0001 +#define MANUFACTURER TweetyDaBird +#define PRODUCT littlebigscroll4 + +/* key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 5 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +//#define DIRECT_PINS { E6, D7, B5, B4, F4 } +//#define UNUSED_PINS + +#define DIRECT_PINS { { E6, D7, B5, B4, F4 } } +#define UNUSED_PINS + +#define ENCODERS_PAD_A { B1 } +#define ENCODERS_PAD_B { F7 } +#define ENCODER_RESOLUTION 2 + +#define RGB_DI_PIN D2 +#define DRIVER_LED_TOTAL 6 + + +#ifdef RGB_DI_PIN +# define RGBLED_NUM 6 + +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 8 + +//# define RGBLIGHT_LIMIT_VAL 175 // The maximum brightness level +//# define RGBLIGHT_DEFAULT_VAL RGBLIGHT_LIMIT_VAL + +//# define RGBLIGHT_SLEEP // If defined, the RGB lighting will be switched off when the host goes to sleep +//# define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD + +//== all animations enable == +# define RGBLIGHT_ANIMATIONS +//== or choose animations == +//# define RGBLIGHT_EFFECT_BREATHING +//# define RGBLIGHT_EFFECT_RAINBOW_MOOD +//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL +//# define RGBLIGHT_EFFECT_SNAKE +//# define RGBLIGHT_EFFECT_KNIGHT +//# define RGBLIGHT_EFFECT_CHRISTMAS +//# define RGBLIGHT_EFFECT_STATIC_GRADIENT +//# define RGBLIGHT_EFFECT_RGB_TEST +//# define RGBLIGHT_EFFECT_ALTERNATING + + +#endif + +// Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed +#define DEBOUNCE 5 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +// disable debug print +//#define NO_DEBUG + +// disable print +//#define NO_PRINT + +// disable action features +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +// Bootmagic Lite key configuration +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/tweetydabird/littlebigscroll4/info.json b/keyboards/tweetydabird/littlebigscroll4/info.json new file mode 100644 index 000000000000..feea3b28d303 --- /dev/null +++ b/keyboards/tweetydabird/littlebigscroll4/info.json @@ -0,0 +1,17 @@ +{ + "keyboard_name": "littlebigscroll4", + "url": "", + "maintainer": "TweetyDaBird", + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "k00", "x": 0, "y": 0}, + {"label": "k01", "x": 1, "y": 0}, + {"label": "k02", "x": 2, "y": 0}, + + {"label": "k10", "x": 0, "y": 1, "w": 1.5}, + {"label": "k12", "x": 1.5, "y": 1, "w": 1.5} + ] + } + } +} diff --git a/keyboards/tweetydabird/littlebigscroll4/keymaps/default/keymap.c b/keyboards/tweetydabird/littlebigscroll4/keymaps/default/keymap.c new file mode 100644 index 000000000000..85e1eaabd603 --- /dev/null +++ b/keyboards/tweetydabird/littlebigscroll4/keymaps/default/keymap.c @@ -0,0 +1,53 @@ +// Copyright 2022 Markus Knutsson (@TweetyDaBird) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _RGB +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT( + TO(_RGB), KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY + ), + [_RGB] = LAYOUT( + TO(_BASE), RGB_VAI, RGB_TOG, RGB_VAD, RGB_TOG + ) +}; + +#ifdef ENCODER_ENABLE + +// switch(biton32(layer_state)) will get you the number of the current layer + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* First encoder */ + switch(biton32(layer_state)){ + case _RGB: + // rgb brightness up/down + if(clockwise){ + // tap_code(RGB_VAI); + //rgblight_increase_val(); + tap_code(KC_UP); + } else { + // tap_code(RGB_VAD); + //rgblight_decrease_val(); + tap_code(KC_DOWN); + } + break; + default: + //volume up/down + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + } + return true; +}; + +#endif \ No newline at end of file diff --git a/keyboards/tweetydabird/littlebigscroll4/keymaps/default/readme.md b/keyboards/tweetydabird/littlebigscroll4/keymaps/default/readme.md new file mode 100644 index 000000000000..dba84626579c --- /dev/null +++ b/keyboards/tweetydabird/littlebigscroll4/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for littlebigscroll4 diff --git a/keyboards/tweetydabird/littlebigscroll4/littlebigscroll4.c b/keyboards/tweetydabird/littlebigscroll4/littlebigscroll4.c new file mode 100644 index 000000000000..7bbc11f017eb --- /dev/null +++ b/keyboards/tweetydabird/littlebigscroll4/littlebigscroll4.c @@ -0,0 +1,4 @@ +// Copyright 2022 Markus Knutsson (@TweetyDaBird) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "littlebigscroll4.h" diff --git a/keyboards/tweetydabird/littlebigscroll4/littlebigscroll4.h b/keyboards/tweetydabird/littlebigscroll4/littlebigscroll4.h new file mode 100644 index 000000000000..6f13e31c69ac --- /dev/null +++ b/keyboards/tweetydabird/littlebigscroll4/littlebigscroll4.h @@ -0,0 +1,21 @@ +// Copyright 2022 Markus Knutsson (@TweetyDaBird) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + K00, K01, \ + K02, K03, EN0 \ +) { \ + { K00, K01, K02, K03, EN0 } \ +} diff --git a/keyboards/tweetydabird/littlebigscroll4/readme.md b/keyboards/tweetydabird/littlebigscroll4/readme.md new file mode 100644 index 000000000000..05bb43de1e6d --- /dev/null +++ b/keyboards/tweetydabird/littlebigscroll4/readme.md @@ -0,0 +1,27 @@ +# littlebigscroll4 + +![littlebigscroll4](imgur.com image replace me!) + +*A simple, easy to build, low cost macro pad with 4 Cherry MX hot swap keys and a clickable encoder wheel* + + +* Keyboard Maintainer: [Markus Knutsson](https://github.com/TweetyDaBird) +* Hardware Supported: LittleBigScroll 4 PCB, Pro Micro +* Hardware Availability: https://www.tindie.com/stores/tweetydabird/ + +Make example for this keyboard (after setting up your build environment): + + make tweetydabird\littlebigscroll\littlebigscroll4:default + +Flashing example for this keyboard: + + make tweetydabird\littlebigscroll\littlebigscroll4:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Bootmagic reset**: Hold down the top left key and plug in the keyboard +* **Physical reset button**: Briefly short the two pads on the top right of the PCB, next to the USB cable diff --git a/keyboards/tweetydabird/littlebigscroll4/rules.mk b/keyboards/tweetydabird/littlebigscroll4/rules.mk new file mode 100644 index 000000000000..fd1a6cb65001 --- /dev/null +++ b/keyboards/tweetydabird/littlebigscroll4/rules.mk @@ -0,0 +1,34 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina # Caterina is the correct bootloader for a standard Pro Micro + +# Link Time Optimization +LTO_ENABLE = yes # Optimize size at compile (takes longer time) + +# Debug otions +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration + +# Build Options +BOOTMAGIC_ENABLE = yes # Bootmagic Lite allows reset from key on plug-in + +MOUSEKEY_ENABLE = no # Mouse keys +AUDIO_ENABLE = no # Audio output + +EXTRAKEY_ENABLE = yes # Audio control and System control +ENCODER_ENABLE = yes # Rotary encoder + +NKRO_ENABLE = no # USB Nkey Rollover, if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work + +# RGB and Backlight +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +RGB_MATRIX_ENABLE = yes # Enable RGB matrix +RGB_MATRIX_DRIVER = WS2812 # Define matrix type + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + + From 188f0f11cd8e603a98ef9a65cf33162027b2f45a Mon Sep 17 00:00:00 2001 From: Markus Knutsson Date: Thu, 1 Sep 2022 11:09:12 +0200 Subject: [PATCH 02/33] Update Lotus Default and tester updated --- .../tweetydabird/littlebigscroll4/config.h | 28 +-- .../tweetydabird/littlebigscroll4/rules.mk | 7 +- keyboards/tweetydabird/lotus58/config.h | 115 +++++++++ keyboards/tweetydabird/lotus58/info.json | 18 ++ .../lotus58/keymaps/default/keymap.c | 234 ++++++++++++++++++ .../lotus58/keymaps/tester/keymap.c | 107 ++++++++ keyboards/tweetydabird/lotus58/lotus58.c | 17 ++ keyboards/tweetydabird/lotus58/lotus58.h | 39 +++ keyboards/tweetydabird/lotus58/readme.md | 19 ++ keyboards/tweetydabird/lotus58/rules.mk | 33 +++ 10 files changed, 594 insertions(+), 23 deletions(-) create mode 100644 keyboards/tweetydabird/lotus58/config.h create mode 100644 keyboards/tweetydabird/lotus58/info.json create mode 100644 keyboards/tweetydabird/lotus58/keymaps/default/keymap.c create mode 100644 keyboards/tweetydabird/lotus58/keymaps/tester/keymap.c create mode 100644 keyboards/tweetydabird/lotus58/lotus58.c create mode 100644 keyboards/tweetydabird/lotus58/lotus58.h create mode 100644 keyboards/tweetydabird/lotus58/readme.md create mode 100644 keyboards/tweetydabird/lotus58/rules.mk diff --git a/keyboards/tweetydabird/littlebigscroll4/config.h b/keyboards/tweetydabird/littlebigscroll4/config.h index e5b61afa9508..c4a6d43952cc 100644 --- a/keyboards/tweetydabird/littlebigscroll4/config.h +++ b/keyboards/tweetydabird/littlebigscroll4/config.h @@ -5,37 +5,27 @@ #include "config_common.h" -/* USB Device descriptor parameter */ +// USB Device descriptor parameter #define VENDOR_ID 0xFEED #define PRODUCT_ID 0x1212 #define DEVICE_VER 0x0001 #define MANUFACTURER TweetyDaBird #define PRODUCT littlebigscroll4 -/* key matrix size */ +// key matrix size #define MATRIX_ROWS 1 #define MATRIX_COLS 5 -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * - */ -//#define DIRECT_PINS { E6, D7, B5, B4, F4 } -//#define UNUSED_PINS - +// Keyboard Matrix Assignments #define DIRECT_PINS { { E6, D7, B5, B4, F4 } } #define UNUSED_PINS +// Encoder Assignments #define ENCODERS_PAD_A { B1 } #define ENCODERS_PAD_B { F7 } #define ENCODER_RESOLUTION 2 +// RGB Assignments #define RGB_DI_PIN D2 #define DRIVER_LED_TOTAL 6 @@ -47,11 +37,11 @@ # define RGBLIGHT_SAT_STEP 8 # define RGBLIGHT_VAL_STEP 8 -//# define RGBLIGHT_LIMIT_VAL 175 // The maximum brightness level -//# define RGBLIGHT_DEFAULT_VAL RGBLIGHT_LIMIT_VAL +# define RGBLIGHT_LIMIT_VAL 175 // The maximum brightness level +# define RGBLIGHT_DEFAULT_VAL RGBLIGHT_LIMIT_VAL -//# define RGBLIGHT_SLEEP // If defined, the RGB lighting will be switched off when the host goes to sleep -//# define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD +# define RGBLIGHT_SLEEP // If defined, the RGB lighting will be switched off when the host goes to sleep +# define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD //== all animations enable == # define RGBLIGHT_ANIMATIONS diff --git a/keyboards/tweetydabird/littlebigscroll4/rules.mk b/keyboards/tweetydabird/littlebigscroll4/rules.mk index fd1a6cb65001..befc6105de6d 100644 --- a/keyboards/tweetydabird/littlebigscroll4/rules.mk +++ b/keyboards/tweetydabird/littlebigscroll4/rules.mk @@ -24,11 +24,10 @@ NKRO_ENABLE = no # USB Nkey Rollover, if this doesn't work, see here: # RGB and Backlight BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -RGB_MATRIX_ENABLE = yes # Enable RGB matrix -RGB_MATRIX_DRIVER = WS2812 # Define matrix type +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +RGB_MATRIX_ENABLE = no # Enable RGB matrix +#RGB_MATRIX_DRIVER = WS2812 # Define matrix type # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - diff --git a/keyboards/tweetydabird/lotus58/config.h b/keyboards/tweetydabird/lotus58/config.h new file mode 100644 index 000000000000..2e1d8333aef2 --- /dev/null +++ b/keyboards/tweetydabird/lotus58/config.h @@ -0,0 +1,115 @@ +/* +Copyright 2021 TweetyDaBird + +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" + +// USB Device descriptor parameter +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0058 +#define DEVICE_VER 0x0001 +#define MANUFACTURER TweetyDaBird +#define PRODUCT Lotus 58 Glow + +// Keyboard Matrix (Rows are doubled) +#define MATRIX_ROWS 10 +#define MATRIX_COLS 6 + +#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 } +#define MATRIX_COL_PINS { B1, B2, B3, B6, F7, F6 } +#define DIODE_DIRECTION COL2ROW + +/* Encoder support */ +#define ENCODERS_PAD_A { F5 } +#define ENCODERS_PAD_B { F4 } +#define ENCODERS_PAD_A_RIGHT { F4 } +#define ENCODERS_PAD_B_RIGHT { F5 } +#define ENCODER_RESOLUTION 1 + +// Define Communication +#define SOFT_SERIAL_PIN D2 +#define USE_SERIAL +#define SERIAL_USE_MULTI_TRANSACTION +//#define SPLIT_MODS_ENABLE +//#define SPLIT_TRANSPORT_MIRROR + +/* Basic RGB configuration */ +#define RGB_DI_PIN D3 +// Underglow LEDs +//#define RGBLED_SPLIT { 6, 6 } +//#define RGBLED_NUM 12 +// Full backlight +//#define RGBLED_SPLIT { 29, 29 } +//#define RGBLED_NUM 58 +// Full backlight + underglow +#define RGBLED_SPLIT { 35, 35 } +#define RGBLED_NUM 70 +#define RGBLIGHT_SPLIT + +#define RGBLIGHT_EFFECT_BREATHING + +// +#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_BREATHING +#define RGBLIGHT_LAYERS_RETAIN_VAL +#define RGBLIGHT_LIMIT_VAL 255 +#define RGBLIGHT_DEFAULT_VAL ( RGBLIGHT_LIMIT_VAL / 2 ) + +#define SPLIT_USB_DETECT +#define SPLIT_USB_TIMEOUT 2000 +#define SPLIT_USB_TIMEOUT_POLL 10 + +#define SPLIT_HAND_PIN B5 +//#define MASTER_RIGHT + +#define TAPPING_TERM 175 +#define TAPPING_TOGGLE 2 +#define TAP_CODE_DELAY 10 + +//#define NO_AUTO_SHIFT_SPECIAL +//#define NO_AUTO_SHIFT_NUMERIC + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is useful for the Windows task manager shortcut (ctrl+shift+esc). + */ +#define GRAVE_ESC_CTRL_OVERRIDE + + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +#define NO_ACTION_ONESHOT + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 + +#undef LOCKING_SUPPORT_ENABLE +#undef LOCKING_RESYNC_ENABLE +#define LAYER_STATE_8BIT diff --git a/keyboards/tweetydabird/lotus58/info.json b/keyboards/tweetydabird/lotus58/info.json new file mode 100644 index 000000000000..90ec57a3bd72 --- /dev/null +++ b/keyboards/tweetydabird/lotus58/info.json @@ -0,0 +1,18 @@ +{ + "keyboard_name": "lotus58", + "url": "https://github.com/TweetyDaBird/Lotus58/", + "maintainer": "TweetyDaBird", + "width": 16.5, + "height": 5.25, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0.5}, {"x":1, "y":0.375}, {"x":2, "y":0.125}, {"x":3, "y":0}, {"x":4, "y":0.125}, {"x":5, "y":0.25}, {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125}, {"x":12.5, "y":0}, {"x":13.5, "y":0.125}, {"x":14.5, "y":0.375}, {"x":15.5, "y":0.5}, + {"x":0, "y":1.5}, {"x":1, "y":1.375}, {"x":2, "y":1.125}, {"x":3, "y":1}, {"x":4, "y":1.125}, {"x":5, "y":1.25}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.125}, {"x":12.5, "y":1}, {"x":13.5, "y":1.125}, {"x":14.5, "y":1.375}, {"x":15.5, "y":1.5}, + {"x":0, "y":2.5}, {"x":1, "y":2.375}, {"x":2, "y":2.125}, {"x":3, "y":2}, {"x":4, "y":2.125}, {"x":5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.125}, {"x":12.5, "y":2}, {"x":13.5, "y":2.125}, {"x":14.5, "y":2.375}, {"x":15.5, "y":2.5}, + {"x":0, "y":3.5}, {"x":1, "y":3.375}, {"x":2, "y":3.125}, {"x":3, "y":3}, {"x":4, "y":3.125}, {"x":5, "y":3.25}, {"x":6, "y":2.75}, {"x":9.5, "y":2.75}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.125}, {"x":12.5, "y":3}, {"x":13.5, "y":3.125}, {"x":14.5, "y":3.375}, {"x":15.5, "y":3.5}, + {"x":1.5, "y":4.375}, {"x":2.5, "y":4.125}, {"x":3.5, "y":4.15}, {"x":4.5, "y":4.25}, {"x":6, "y":4.25, "h":1.5}, {"x":9.5, "y":4.25, "h":1.5}, {"x":11, "y":4.25}, {"x":12, "y":4.15}, {"x":13, "y":4.125}, {"x":14, "y":4.375} + ] + } + } +} diff --git a/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c new file mode 100644 index 000000000000..5b9662c2213b --- /dev/null +++ b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c @@ -0,0 +1,234 @@ +/* Copyright 2021 TweetyDaBird + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H +#include "quantum.h" + +bool autoshift; + +enum layers { + _QWERTY, + _NUM, + _FN, + _SYS, +}; + +enum custom_keycodes { + KC_QWERTY = SAFE_RANGE, + KC_NUMERIC, + KC_FUNCTION, + KC_SYSTEM, +}; + +/* Tap Dance declarations +enum { + MEDIA_SCROLL, + PG_UP, + PG_DN, + DEL_INS, + ESC_PIPE, +};*/ + +/* Tap Dance definitions +qk_tap_dance_action_t tap_dance_actions[] = { + [PG_DN] = ACTION_TAP_DANCE_DOUBLE(KC_DOWN, KC_PGDN), + [PG_UP] = ACTION_TAP_DANCE_DOUBLE(KC_UP, KC_PGUP), + [DEL_INS] = ACTION_TAP_DANCE_DOUBLE(KC_DEL, KC_INS), +}; + +#define CK_LCTRL MT(MOD_LCTL, KC_LEFT) +#define CK_LALT MT(MOD_LALT, KC_RGUI) +#define CK_LSPC MT(MOD_LSFT, KC_SPC) +#define CK_DELINS TD(DEL_INS) +#define CK_ENT MT(MOD_RSFT, KC_ENT) +#define CK_RALT MT(MOD_RALT, KC_APP) +#define CK_RCTRL MT(MOD_RCTL, KC_RIGHT) +*/ + +/* Legend _____ _____ + * .--------.-------.-------.-------.-------.-------. / \ / \ .-------.-------.-------.-------.-------.--------. + * | Esc | 1 | 2 | 3 | 4 | 5 | ( Media ) ( Media ) | 6 | 7 | 8 | 9 | 0 | - | + * |--------+-------+-------+-------+-------+-------| \_____/ \_____/ |-------+-------+-------+-------+-------+--------| + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | + * |--------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+--------| + * | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | + * |--------+-------+-------+-------+-------+-------+----------. .----------+-------+-------+-------+-------+-------+--------| + * | Ctrl | Z | X | C | V | B | RGB | | RGB | N | M | , | . | / | Ctrl | + * '--------'-------'-------+-------+-------+-------+-.--------' '--------.-+-------+-------+-------+-------'-------'--------' + * | Win | Down | Alt |/ Space / \ Enter \| AltGr | Up | Bksp | + * '-------'-------'-------'--------' '--------'-------'-------'-------' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QWERTY] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, KC_MPLY, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + 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_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, RGB_TOG, RGB_TOG, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTRL, + KC_LGUI, KC_DOWN, KC_LALT, KC_SPC, KC_ENT, KC_RALT, KC_UP, KC_BSPC + ), + +[_NUM] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_CIRC, KC_KP_7, KC_KP_8, KC_KP_9, XXXXXXX, XXXXXXX, + _______, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, KC_HASH, KC_KP_4, KC_KP_5, KC_KP_6, XXXXXXX, XXXXXXX, + XXXXXXX, KC_LEFT, KC_DOWN, KC_RIGHT, KC_LBRC, KC_RBRC, KC_AMPR, KC_KP_1, KC_KP_2, KC_KP_3, XXXXXXX, XXXXXXX, + _______, XXXXXXX, KC_PAST, KC_PPLS, KC_PSLS, KC_EQL, _______, _______, KC_DLR, KC_KP_0, KC_KP_DOT, KC_COLN, KC_PMNS, _______, + _______, _______, _______, _______, _______, _______, _______, _______ +), + +[_FN] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_TOG +), + +[_SYS] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + QK_BOOT, XXXXXXX, KC_QWERTY, XXXXXXX, XXXXXXX, KC_ASTG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, _______, _______, _______, _______ \ + ) +}; + +#ifdef OLED_ENABLE + + +static void render_logo(void) { + static const char PROGMEM qmk_logo[] = { + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, + 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, + 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0 + }; + + oled_write_P(qmk_logo, false); +} + + +static void print_status_narrow(void) { + // Print current mode + oled_write_P(PSTR("\n"), false); + oled_write_P(PSTR(""), false); + oled_write_P(PSTR("Lotus -58-"), false); + oled_write_P(PSTR("\n"), false); + + /* switch (get_highest_layer(default_layer_state)) { + case _QWERTY: + oled_write_P(PSTR("Qwrty"), false); + break; + default: + oled_write_P(PSTR("Undef"), false); + } + oled_write_P(PSTR("\n"), false); +*/ + // Print current layer + oled_write_P(PSTR("Layer"), false); + switch (get_highest_layer(layer_state)) { + case _QWERTY: + oled_write_P(PSTR("-Base\n"), false); + break; + case _FN: + oled_write_P(PSTR("-Func\n"), false); + break; + case _NUM: + oled_write_P(PSTR("-Num \n"), false); + break; + case _SYS: + oled_write_P(PSTR("-Sys \n"), false); + break; + default: + oled_write_P(PSTR("Undef"), false); + } + oled_write_P(PSTR("\n"), false); + led_t led_usb_state = host_keyboard_led_state(); + oled_write_ln_P(PSTR("Caps- lock"), led_usb_state.caps_lock); + + + +/* not working! + + autoshift = get_autoshift_state(); + + oled_write_P(PSTR("\n"), false); + oled_write_P(PSTR("Auto-Shift"), autoshift); + oled_write_P(PSTR("\n"), false); + */ + +} + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (is_keyboard_master()) { + return OLED_ROTATION_90; + } + return rotation; +} + +bool oled_task_user(void) { + if (is_keyboard_master()) { + print_status_narrow(); + } else { + render_logo(); + } + return false; +} + +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + } + return true; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _NUM, _FN, _SYS); +} + +#ifdef ENCODER_ENABLE + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } /* else if (index == 1) { + if (clockwise) { + if (get_mods() & MOD_MASK_CTRL) { + tap_code(KC_MPRV); + } else { + tap_code(KC_VOLD); + } + + } else { + if (get_mods() & MOD_MASK_CTRL) { + tap_code(KC_MNXT); + } else { + tap_code(KC_VOLU); + } + } + }*/ + return true; +} + +#endif diff --git a/keyboards/tweetydabird/lotus58/keymaps/tester/keymap.c b/keyboards/tweetydabird/lotus58/keymaps/tester/keymap.c new file mode 100644 index 000000000000..a7eab101b74d --- /dev/null +++ b/keyboards/tweetydabird/lotus58/keymaps/tester/keymap.c @@ -0,0 +1,107 @@ +/* Copyright 2021 TweetyDaBird + * + * 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 layers { + _QWERTY +}; + +enum custom_keycodes { + KC_QWERTY = SAFE_RANGE +}; + +/* Legend _____ _____ + * .--------.-------.-------.-------.-------.-------. / \ / \ .-------.-------.-------.-------.-------.--------. + * | Esc | 1 | 2 | 3 | 4 | 5 | ( Media ) ( Media ) | 6 | 7 | 8 | 9 | 0 | - | + * |--------+-------+-------+-------+-------+-------| \_____/ \_____/ |-------+-------+-------+-------+-------+--------| + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | + * |--------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+--------| + * | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | + * |--------+-------+-------+-------+-------+-------+----------. .----------+-------+-------+-------+-------+-------+--------| + * | Ctrl | Z | X | C | V | B | RGB | | RGB | N | M | , | . | / | Ctrl | + * '--------'-------'-------+-------+-------+-------+-.--------' '--------.-+-------+-------+-------+-------'-------'--------' + * | Win | Down | Alt |/ Space / \ Enter \| AltGr | Up | Bksp | + * '-------'-------'-------'--------' '--------'-------'-------'-------' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QWERTY] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, KC_MPLY, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + 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_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, RGB_TOG, RGB_TOG, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTRL, + KC_LGUI, KC_DOWN, KC_LALT, KC_SPC, KC_ENT, KC_RALT, KC_UP, KC_BSPC + ) +}; + +#ifdef OLED_ENABLE + +static void render_logo(void) { + static const char PROGMEM qmk_logo[] = { + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, + 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, + 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0 + }; + + oled_write_P(qmk_logo, false); +} + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (!is_keyboard_left()) { + return OLED_ROTATION_180; + } + return rotation; +} + +bool oled_task_user(void) { + render_logo(); + return false; +} + +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + } + return true; +} + +#ifdef ENCODER_ENABLE + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } else if (index == 1) { + if (clockwise) { + tap_code(KC_LEFT); + } else { + tap_code(KC_RIGHT); + + } + } + return true; +} + +#endif diff --git a/keyboards/tweetydabird/lotus58/lotus58.c b/keyboards/tweetydabird/lotus58/lotus58.c new file mode 100644 index 000000000000..230118bbf27a --- /dev/null +++ b/keyboards/tweetydabird/lotus58/lotus58.c @@ -0,0 +1,17 @@ +/* Copyright 2021 TweetyDaBird + * + * 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 "lotus58.h" diff --git a/keyboards/tweetydabird/lotus58/lotus58.h b/keyboards/tweetydabird/lotus58/lotus58.h new file mode 100644 index 000000000000..d8badc6eea79 --- /dev/null +++ b/keyboards/tweetydabird/lotus58/lotus58.h @@ -0,0 +1,39 @@ +/* Copyright 2021 TweetyDaBird + * + * 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 LAYOUT( \ + L00, L01, L02, L03, L04, L05, LEN, REN, R00, R01, R02, R03, R04, R05, \ + L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ + L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ + L30, L31, L32, L33, L34, L35, L45, R40, R30, R31, R32, R33, R34, R35, \ + L41, L42, L43, L44, R41, R42, R43, R44 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15 }, \ + { L20, L21, L22, L23, L24, L25 }, \ + { L30, L31, L32, L33, L34, L35 }, \ + { LEN, L41, L42, L43, L44, L45 }, \ + { R05, R04, R03, R02, R01, R00 }, \ + { R15, R14, R13, R12, R11, R10 }, \ + { R25, R24, R23, R22, R21, R20 }, \ + { R35, R34, R33, R32, R31, R30 }, \ + { REN, R44, R43, R42, R41, R40 } \ + } diff --git a/keyboards/tweetydabird/lotus58/readme.md b/keyboards/tweetydabird/lotus58/readme.md new file mode 100644 index 000000000000..b95d0c228063 --- /dev/null +++ b/keyboards/tweetydabird/lotus58/readme.md @@ -0,0 +1,19 @@ +# lotus58 + +![lotus58](imgur.com image replace me!) + +*A short description of the keyboard/project* + +* Keyboard Maintainer: [TweetyDaBird](https://github.com/TweetyDaBird) +* Hardware Supported: *The PCBs, controllers supported* +* Hardware Availability: *Links to where you can find this hardware* + +Make example for this keyboard (after setting up your build environment): + + make tweetydabird/lotus58:default + +Flashing example for this keyboard: + + make tweetydabird/lotus58:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/tweetydabird/lotus58/rules.mk b/keyboards/tweetydabird/lotus58/rules.mk new file mode 100644 index 000000000000..a8b9c970060b --- /dev/null +++ b/keyboards/tweetydabird/lotus58/rules.mk @@ -0,0 +1,33 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +LTO_ENABLE = yes # Optimize size when compiling +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +SPLIT_KEYBOARD = yes # Split keyboard is neccesary! + +EXTRAKEY_ENABLE = yes # Audio control and System control + +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration + +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow + +NKRO_ENABLE = yes # USB Nkey Rollover (needed for gaming) + +ENCODER_ENABLE = yes # Support for OLED screens +OLED_ENABLE = yes # Support for Rotary Encoders + +TAP_DANCE_ENABLE = no # Used in keymap +AUTO_SHIFT_ENABLE = no # Used in keymap + +AUDIO_ENABLE = no # Audio output +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SPACE_CADET_ENABLE = no +GRAVE_ESC_ENABLE = no +MAGIC_ENABLE = no From 529b95e0019106eb4c7d68d6e8c6b152dd94368a Mon Sep 17 00:00:00 2001 From: Markus Knutsson Date: Thu, 1 Sep 2022 11:18:42 +0200 Subject: [PATCH 03/33] tweaks to lotus --- keyboards/tweetydabird/lotus58/config.h | 33 +++++++------------ .../lotus58/keymaps/default/keymap.c | 2 +- keyboards/tweetydabird/lotus58/rules.mk | 2 ++ 3 files changed, 14 insertions(+), 23 deletions(-) diff --git a/keyboards/tweetydabird/lotus58/config.h b/keyboards/tweetydabird/lotus58/config.h index 2e1d8333aef2..cc01e96dd4dd 100644 --- a/keyboards/tweetydabird/lotus58/config.h +++ b/keyboards/tweetydabird/lotus58/config.h @@ -34,7 +34,9 @@ along with this program. If not, see . #define MATRIX_COL_PINS { B1, B2, B3, B6, F7, F6 } #define DIODE_DIRECTION COL2ROW -/* Encoder support */ +#define SPLIT_HAND_PIN B5 + +// Encoder support #define ENCODERS_PAD_A { F5 } #define ENCODERS_PAD_B { F4 } #define ENCODERS_PAD_A_RIGHT { F4 } @@ -48,14 +50,17 @@ along with this program. If not, see . //#define SPLIT_MODS_ENABLE //#define SPLIT_TRANSPORT_MIRROR -/* Basic RGB configuration */ +// Basic RGB configuration #define RGB_DI_PIN D3 + // Underglow LEDs //#define RGBLED_SPLIT { 6, 6 } //#define RGBLED_NUM 12 + // Full backlight //#define RGBLED_SPLIT { 29, 29 } //#define RGBLED_NUM 58 + // Full backlight + underglow #define RGBLED_SPLIT { 35, 35 } #define RGBLED_NUM 70 @@ -63,19 +68,15 @@ along with this program. If not, see . #define RGBLIGHT_EFFECT_BREATHING -// #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_BREATHING #define RGBLIGHT_LAYERS_RETAIN_VAL -#define RGBLIGHT_LIMIT_VAL 255 +#define RGBLIGHT_LIMIT_VAL 175 #define RGBLIGHT_DEFAULT_VAL ( RGBLIGHT_LIMIT_VAL / 2 ) #define SPLIT_USB_DETECT #define SPLIT_USB_TIMEOUT 2000 #define SPLIT_USB_TIMEOUT_POLL 10 -#define SPLIT_HAND_PIN B5 -//#define MASTER_RIGHT - #define TAPPING_TERM 175 #define TAPPING_TOGGLE 2 #define TAP_CODE_DELAY 10 @@ -83,7 +84,7 @@ along with this program. If not, see . //#define NO_AUTO_SHIFT_SPECIAL //#define NO_AUTO_SHIFT_NUMERIC -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +// Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed #define DEBOUNCE 5 /* If defined, GRAVE_ESC will always act as ESC when CTRL is held. @@ -91,22 +92,10 @@ along with this program. If not, see . */ #define GRAVE_ESC_CTRL_OVERRIDE - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ +// disable action features #define NO_ACTION_ONESHOT -/* Bootmagic Lite key configuration */ +// Bootmagic Lite key configuration #define BOOTMAGIC_LITE_ROW 0 #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c index 5b9662c2213b..cff0ef7825b8 100644 --- a/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c +++ b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2021 TweetyDaBird +/* Copyright021 TweetyDaBird * * 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 diff --git a/keyboards/tweetydabird/lotus58/rules.mk b/keyboards/tweetydabird/lotus58/rules.mk index a8b9c970060b..c86b22eaa80a 100644 --- a/keyboards/tweetydabird/lotus58/rules.mk +++ b/keyboards/tweetydabird/lotus58/rules.mk @@ -28,6 +28,8 @@ AUTO_SHIFT_ENABLE = no # Used in keymap AUDIO_ENABLE = no # Audio output SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE + +# Saving space SPACE_CADET_ENABLE = no GRAVE_ESC_ENABLE = no MAGIC_ENABLE = no From ea14e529bd6f802d00e1b5ca5f9a18b91a77ee6b Mon Sep 17 00:00:00 2001 From: TweetyDaBird Date: Fri, 16 Sep 2022 10:19:32 +0200 Subject: [PATCH 04/33] fixing default --- .../tweetydabird/littlebigscroll4/config.h | 83 ------------------- .../tweetydabird/littlebigscroll4/info.json | 17 ---- .../littlebigscroll4/keymaps/default/keymap.c | 53 ------------ .../keymaps/default/readme.md | 1 - .../littlebigscroll4/littlebigscroll4.c | 4 - .../littlebigscroll4/littlebigscroll4.h | 21 ----- .../tweetydabird/littlebigscroll4/readme.md | 27 ------ .../tweetydabird/littlebigscroll4/rules.mk | 33 -------- .../lotus58/keymaps/default/keymap.c | 70 ++++------------ keyboards/tweetydabird/lotus58/rules.mk | 3 +- 10 files changed, 16 insertions(+), 296 deletions(-) delete mode 100644 keyboards/tweetydabird/littlebigscroll4/config.h delete mode 100644 keyboards/tweetydabird/littlebigscroll4/info.json delete mode 100644 keyboards/tweetydabird/littlebigscroll4/keymaps/default/keymap.c delete mode 100644 keyboards/tweetydabird/littlebigscroll4/keymaps/default/readme.md delete mode 100644 keyboards/tweetydabird/littlebigscroll4/littlebigscroll4.c delete mode 100644 keyboards/tweetydabird/littlebigscroll4/littlebigscroll4.h delete mode 100644 keyboards/tweetydabird/littlebigscroll4/readme.md delete mode 100644 keyboards/tweetydabird/littlebigscroll4/rules.mk diff --git a/keyboards/tweetydabird/littlebigscroll4/config.h b/keyboards/tweetydabird/littlebigscroll4/config.h deleted file mode 100644 index c4a6d43952cc..000000000000 --- a/keyboards/tweetydabird/littlebigscroll4/config.h +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright 2022 Markus Knutsson (@TweetyDaBird) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include "config_common.h" - -// USB Device descriptor parameter -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x1212 -#define DEVICE_VER 0x0001 -#define MANUFACTURER TweetyDaBird -#define PRODUCT littlebigscroll4 - -// key matrix size -#define MATRIX_ROWS 1 -#define MATRIX_COLS 5 - -// Keyboard Matrix Assignments -#define DIRECT_PINS { { E6, D7, B5, B4, F4 } } -#define UNUSED_PINS - -// Encoder Assignments -#define ENCODERS_PAD_A { B1 } -#define ENCODERS_PAD_B { F7 } -#define ENCODER_RESOLUTION 2 - -// RGB Assignments -#define RGB_DI_PIN D2 -#define DRIVER_LED_TOTAL 6 - - -#ifdef RGB_DI_PIN -# define RGBLED_NUM 6 - -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 - -# define RGBLIGHT_LIMIT_VAL 175 // The maximum brightness level -# define RGBLIGHT_DEFAULT_VAL RGBLIGHT_LIMIT_VAL - -# define RGBLIGHT_SLEEP // If defined, the RGB lighting will be switched off when the host goes to sleep -# define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD - -//== all animations enable == -# define RGBLIGHT_ANIMATIONS -//== or choose animations == -//# define RGBLIGHT_EFFECT_BREATHING -//# define RGBLIGHT_EFFECT_RAINBOW_MOOD -//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -//# define RGBLIGHT_EFFECT_SNAKE -//# define RGBLIGHT_EFFECT_KNIGHT -//# define RGBLIGHT_EFFECT_CHRISTMAS -//# define RGBLIGHT_EFFECT_STATIC_GRADIENT -//# define RGBLIGHT_EFFECT_RGB_TEST -//# define RGBLIGHT_EFFECT_ALTERNATING - - -#endif - -// Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed -#define DEBOUNCE 5 - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -// disable debug print -//#define NO_DEBUG - -// disable print -//#define NO_PRINT - -// disable action features -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT - -// Bootmagic Lite key configuration -#define BOOTMAGIC_LITE_ROW 0 -#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/tweetydabird/littlebigscroll4/info.json b/keyboards/tweetydabird/littlebigscroll4/info.json deleted file mode 100644 index feea3b28d303..000000000000 --- a/keyboards/tweetydabird/littlebigscroll4/info.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "keyboard_name": "littlebigscroll4", - "url": "", - "maintainer": "TweetyDaBird", - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "k00", "x": 0, "y": 0}, - {"label": "k01", "x": 1, "y": 0}, - {"label": "k02", "x": 2, "y": 0}, - - {"label": "k10", "x": 0, "y": 1, "w": 1.5}, - {"label": "k12", "x": 1.5, "y": 1, "w": 1.5} - ] - } - } -} diff --git a/keyboards/tweetydabird/littlebigscroll4/keymaps/default/keymap.c b/keyboards/tweetydabird/littlebigscroll4/keymaps/default/keymap.c deleted file mode 100644 index 85e1eaabd603..000000000000 --- a/keyboards/tweetydabird/littlebigscroll4/keymaps/default/keymap.c +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2022 Markus Knutsson (@TweetyDaBird) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -// Defines names for use in layer keycodes and the keymap -enum layer_names { - _BASE, - _RGB -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Base */ - [_BASE] = LAYOUT( - TO(_RGB), KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY - ), - [_RGB] = LAYOUT( - TO(_BASE), RGB_VAI, RGB_TOG, RGB_VAD, RGB_TOG - ) -}; - -#ifdef ENCODER_ENABLE - -// switch(biton32(layer_state)) will get you the number of the current layer - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { /* First encoder */ - switch(biton32(layer_state)){ - case _RGB: - // rgb brightness up/down - if(clockwise){ - // tap_code(RGB_VAI); - //rgblight_increase_val(); - tap_code(KC_UP); - } else { - // tap_code(RGB_VAD); - //rgblight_decrease_val(); - tap_code(KC_DOWN); - } - break; - default: - //volume up/down - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } - } - return true; -}; - -#endif \ No newline at end of file diff --git a/keyboards/tweetydabird/littlebigscroll4/keymaps/default/readme.md b/keyboards/tweetydabird/littlebigscroll4/keymaps/default/readme.md deleted file mode 100644 index dba84626579c..000000000000 --- a/keyboards/tweetydabird/littlebigscroll4/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for littlebigscroll4 diff --git a/keyboards/tweetydabird/littlebigscroll4/littlebigscroll4.c b/keyboards/tweetydabird/littlebigscroll4/littlebigscroll4.c deleted file mode 100644 index 7bbc11f017eb..000000000000 --- a/keyboards/tweetydabird/littlebigscroll4/littlebigscroll4.c +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2022 Markus Knutsson (@TweetyDaBird) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "littlebigscroll4.h" diff --git a/keyboards/tweetydabird/littlebigscroll4/littlebigscroll4.h b/keyboards/tweetydabird/littlebigscroll4/littlebigscroll4.h deleted file mode 100644 index 6f13e31c69ac..000000000000 --- a/keyboards/tweetydabird/littlebigscroll4/littlebigscroll4.h +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2022 Markus Knutsson (@TweetyDaBird) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include "quantum.h" - -/* This is a shortcut to help you visually see your layout. - * - * The first section contains all of the arguments representing the physical - * layout of the board and position of the keys. - * - * The second converts the arguments into a two-dimensional array which - * represents the switch matrix. - */ -#define LAYOUT( \ - K00, K01, \ - K02, K03, EN0 \ -) { \ - { K00, K01, K02, K03, EN0 } \ -} diff --git a/keyboards/tweetydabird/littlebigscroll4/readme.md b/keyboards/tweetydabird/littlebigscroll4/readme.md deleted file mode 100644 index 05bb43de1e6d..000000000000 --- a/keyboards/tweetydabird/littlebigscroll4/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# littlebigscroll4 - -![littlebigscroll4](imgur.com image replace me!) - -*A simple, easy to build, low cost macro pad with 4 Cherry MX hot swap keys and a clickable encoder wheel* - - -* Keyboard Maintainer: [Markus Knutsson](https://github.com/TweetyDaBird) -* Hardware Supported: LittleBigScroll 4 PCB, Pro Micro -* Hardware Availability: https://www.tindie.com/stores/tweetydabird/ - -Make example for this keyboard (after setting up your build environment): - - make tweetydabird\littlebigscroll\littlebigscroll4:default - -Flashing example for this keyboard: - - make tweetydabird\littlebigscroll\littlebigscroll4:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 2 ways: - -* **Bootmagic reset**: Hold down the top left key and plug in the keyboard -* **Physical reset button**: Briefly short the two pads on the top right of the PCB, next to the USB cable diff --git a/keyboards/tweetydabird/littlebigscroll4/rules.mk b/keyboards/tweetydabird/littlebigscroll4/rules.mk deleted file mode 100644 index befc6105de6d..000000000000 --- a/keyboards/tweetydabird/littlebigscroll4/rules.mk +++ /dev/null @@ -1,33 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = caterina # Caterina is the correct bootloader for a standard Pro Micro - -# Link Time Optimization -LTO_ENABLE = yes # Optimize size at compile (takes longer time) - -# Debug otions -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration - -# Build Options -BOOTMAGIC_ENABLE = yes # Bootmagic Lite allows reset from key on plug-in - -MOUSEKEY_ENABLE = no # Mouse keys -AUDIO_ENABLE = no # Audio output - -EXTRAKEY_ENABLE = yes # Audio control and System control -ENCODER_ENABLE = yes # Rotary encoder - -NKRO_ENABLE = no # USB Nkey Rollover, if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work - -# RGB and Backlight -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -RGB_MATRIX_ENABLE = no # Enable RGB matrix -#RGB_MATRIX_DRIVER = WS2812 # Define matrix type - -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - diff --git a/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c index cff0ef7825b8..893f699e496d 100644 --- a/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c +++ b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c @@ -32,31 +32,6 @@ enum custom_keycodes { KC_SYSTEM, }; -/* Tap Dance declarations -enum { - MEDIA_SCROLL, - PG_UP, - PG_DN, - DEL_INS, - ESC_PIPE, -};*/ - -/* Tap Dance definitions -qk_tap_dance_action_t tap_dance_actions[] = { - [PG_DN] = ACTION_TAP_DANCE_DOUBLE(KC_DOWN, KC_PGDN), - [PG_UP] = ACTION_TAP_DANCE_DOUBLE(KC_UP, KC_PGUP), - [DEL_INS] = ACTION_TAP_DANCE_DOUBLE(KC_DEL, KC_INS), -}; - -#define CK_LCTRL MT(MOD_LCTL, KC_LEFT) -#define CK_LALT MT(MOD_LALT, KC_RGUI) -#define CK_LSPC MT(MOD_LSFT, KC_SPC) -#define CK_DELINS TD(DEL_INS) -#define CK_ENT MT(MOD_RSFT, KC_ENT) -#define CK_RALT MT(MOD_RALT, KC_APP) -#define CK_RCTRL MT(MOD_RCTL, KC_RIGHT) -*/ - /* Legend _____ _____ * .--------.-------.-------.-------.-------.-------. / \ / \ .-------.-------.-------.-------.-------.--------. * | Esc | 1 | 2 | 3 | 4 | 5 | ( Media ) ( Media ) | 6 | 7 | 8 | 9 | 0 | - | @@ -67,7 +42,7 @@ qk_tap_dance_action_t tap_dance_actions[] = { * |--------+-------+-------+-------+-------+-------+----------. .----------+-------+-------+-------+-------+-------+--------| * | Ctrl | Z | X | C | V | B | RGB | | RGB | N | M | , | . | / | Ctrl | * '--------'-------'-------+-------+-------+-------+-.--------' '--------.-+-------+-------+-------+-------'-------'--------' - * | Win | Down | Alt |/ Space / \ Enter \| AltGr | Up | Bksp | + * | Win | Lower | Alt |/ Space / \ Enter \| AltGr | Raise | Bksp | * '-------'-------'-------'--------' '--------'-------'-------'-------' */ @@ -76,8 +51,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, KC_MPLY, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, 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_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, RGB_TOG, RGB_TOG, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTRL, - KC_LGUI, KC_DOWN, KC_LALT, KC_SPC, KC_ENT, KC_RALT, KC_UP, KC_BSPC + KC_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DOWN, KC_UP, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTRL, + KC_LGUI, TO(_FN), KC_LALT, KC_SPC, KC_ENT, KC_RALT, TO(_NUM), KC_BSPC ), [_NUM] = LAYOUT( @@ -93,7 +68,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, RGB_TOG + _______, _______, _______, _______, _______, _______, _______, _______ ), [_SYS] = LAYOUT( @@ -120,21 +95,13 @@ static void render_logo(void) { static void print_status_narrow(void) { - // Print current mode + // Print header oled_write_P(PSTR("\n"), false); oled_write_P(PSTR(""), false); oled_write_P(PSTR("Lotus -58-"), false); oled_write_P(PSTR("\n"), false); - /* switch (get_highest_layer(default_layer_state)) { - case _QWERTY: - oled_write_P(PSTR("Qwrty"), false); - break; - default: - oled_write_P(PSTR("Undef"), false); - } - oled_write_P(PSTR("\n"), false); -*/ + // Print current layer oled_write_P(PSTR("Layer"), false); switch (get_highest_layer(layer_state)) { @@ -153,14 +120,13 @@ static void print_status_narrow(void) { default: oled_write_P(PSTR("Undef"), false); } + +/* not working! + oled_write_P(PSTR("\n"), false); led_t led_usb_state = host_keyboard_led_state(); oled_write_ln_P(PSTR("Caps- lock"), led_usb_state.caps_lock); - - - -/* not working! - + autoshift = get_autoshift_state(); oled_write_P(PSTR("\n"), false); @@ -208,26 +174,18 @@ layer_state_t layer_state_set_user(layer_state_t state) { bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { if (clockwise) { - tap_code(KC_PGDN); + tap_code(KC_VOLD); } else { - tap_code(KC_PGUP); + tap_code(KC_VOLU); } - } /* else if (index == 1) { + } else if (index == 1) { if (clockwise) { - if (get_mods() & MOD_MASK_CTRL) { tap_code(KC_MPRV); - } else { - tap_code(KC_VOLD); - } - - } else { - if (get_mods() & MOD_MASK_CTRL) { - tap_code(KC_MNXT); } else { tap_code(KC_VOLU); } } - }*/ + } return true; } diff --git a/keyboards/tweetydabird/lotus58/rules.mk b/keyboards/tweetydabird/lotus58/rules.mk index c86b22eaa80a..22d1ffea0e11 100644 --- a/keyboards/tweetydabird/lotus58/rules.mk +++ b/keyboards/tweetydabird/lotus58/rules.mk @@ -2,7 +2,8 @@ MCU = atmega32u4 # Bootloader selection -BOOTLOADER = caterina +BOOTLOADER = caterina # Used for ProMicro +# BOOTLOADER = qmk-dfu # Used for Elite C # Build Options # change yes to no to disable From 6f18e82302c6ef6fa66dbec337c847854e0fae98 Mon Sep 17 00:00:00 2001 From: TweetyDaBird Date: Fri, 16 Sep 2022 10:24:10 +0200 Subject: [PATCH 05/33] Update keymap.c typo --- keyboards/tweetydabird/lotus58/keymaps/default/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c index 893f699e496d..3a57c95e2e9e 100644 --- a/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c +++ b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c @@ -180,7 +180,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } } else if (index == 1) { if (clockwise) { - tap_code(KC_MPRV); + tap_code(KC_VOLD); } else { tap_code(KC_VOLU); } From 2c57570e0273f493b6b38e971844410b2b844ccf Mon Sep 17 00:00:00 2001 From: TweetyDaBird Date: Fri, 16 Sep 2022 13:16:49 +0200 Subject: [PATCH 06/33] Update keymap.c Layer toggle --- keyboards/tweetydabird/lotus58/keymaps/default/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c index 3a57c95e2e9e..1fb33965979a 100644 --- a/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c +++ b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c @@ -52,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DOWN, KC_UP, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTRL, - KC_LGUI, TO(_FN), KC_LALT, KC_SPC, KC_ENT, KC_RALT, TO(_NUM), KC_BSPC + KC_LGUI, TG(_FN), KC_LALT, KC_SPC, KC_ENT, KC_RALT, TG(_NUM), KC_BSPC ), [_NUM] = LAYOUT( From c3ab859d46391ea90ec9f37e4f84248d2dc42e7a Mon Sep 17 00:00:00 2001 From: TweetyDaBird Date: Fri, 16 Sep 2022 13:28:02 +0200 Subject: [PATCH 07/33] Update keymap.c typo --- keyboards/tweetydabird/lotus58/keymaps/default/keymap.c | 1 - 1 file changed, 1 deletion(-) diff --git a/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c index 1fb33965979a..90652766b917 100644 --- a/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c +++ b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c @@ -185,7 +185,6 @@ bool encoder_update_user(uint8_t index, bool clockwise) { tap_code(KC_VOLU); } } - } return true; } From 7a97b17ad8ecfe090c665d910b852886ac7320a6 Mon Sep 17 00:00:00 2001 From: TweetyDaBird Date: Fri, 16 Sep 2022 13:45:00 +0200 Subject: [PATCH 08/33] Update keymap.c added thumb shift --- keyboards/tweetydabird/lotus58/keymaps/default/keymap.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c index 90652766b917..ef81e4737b28 100644 --- a/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c +++ b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c @@ -40,10 +40,11 @@ enum custom_keycodes { * |--------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+--------| * | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | * |--------+-------+-------+-------+-------+-------+----------. .----------+-------+-------+-------+-------+-------+--------| - * | Ctrl | Z | X | C | V | B | RGB | | RGB | N | M | , | . | / | Ctrl | + * | Ctrl | Z | X | C | V | B | Down | | Up | N | M | , | . | / | Ctrl | * '--------'-------'-------+-------+-------+-------+-.--------' '--------.-+-------+-------+-------+-------'-------'--------' * | Win | Lower | Alt |/ Space / \ Enter \| AltGr | Raise | Bksp | - * '-------'-------'-------'--------' '--------'-------'-------'-------' + | | | | Shift / \ Shift | | | | + * '-------'-------'-------'-------' '-------'-------'-------'-------' */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -52,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DOWN, KC_UP, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTRL, - KC_LGUI, TG(_FN), KC_LALT, KC_SPC, KC_ENT, KC_RALT, TG(_NUM), KC_BSPC + KC_LGUI, TG(_FN), KC_LALT, LSFT_T(KC_SPC), RSFT_T(KC_ENT), KC_RALT, TG(_NUM), KC_BSPC ), [_NUM] = LAYOUT( From 6e9c7dc8a0112a4fe45e248606ce3e2b148e0541 Mon Sep 17 00:00:00 2001 From: TweetyDaBird Date: Fri, 16 Sep 2022 14:12:43 +0200 Subject: [PATCH 09/33] Update keymap.c Added CTRL arrow ModTap --- .../lotus58/keymaps/default/keymap.c | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c index ef81e4737b28..030f0f393b11 100644 --- a/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c +++ b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c @@ -32,19 +32,19 @@ enum custom_keycodes { KC_SYSTEM, }; -/* Legend _____ _____ - * .--------.-------.-------.-------.-------.-------. / \ / \ .-------.-------.-------.-------.-------.--------. - * | Esc | 1 | 2 | 3 | 4 | 5 | ( Media ) ( Media ) | 6 | 7 | 8 | 9 | 0 | - | - * |--------+-------+-------+-------+-------+-------| \_____/ \_____/ |-------+-------+-------+-------+-------+--------| - * | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | - * |--------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+--------| - * | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | - * |--------+-------+-------+-------+-------+-------+----------. .----------+-------+-------+-------+-------+-------+--------| - * | Ctrl | Z | X | C | V | B | Down | | Up | N | M | , | . | / | Ctrl | - * '--------'-------'-------+-------+-------+-------+-.--------' '--------.-+-------+-------+-------+-------'-------'--------' - * | Win | Lower | Alt |/ Space / \ Enter \| AltGr | Raise | Bksp | - | | | | Shift / \ Shift | | | | - * '-------'-------'-------'-------' '-------'-------'-------'-------' +/* Legend _____ _____ + * .---------.-------.-------.-------.-------.-------. / \ / \ .-------.-------.-------.-------.-------.---------. + * | Esc | 1 | 2 | 3 | 4 | 5 | ( Media ) ( Media ) | 6 | 7 | 8 | 9 | 0 | - | + * |---------+-------+-------+-------+-------+-------| \_____/ \_____/ |-------+-------+-------+-------+-------+---------| + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | + * |---------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+---------| + * | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | + * |---------+-------+-------+-------+-------+-------+----------. .----------+-------+-------+-------+-------+-------+---------| + * | <- Ctrl | Z | X | C | V | B | Down | | Up | N | M | , | . | / | Ctrl -> | + * '---------'-------'-------+-------+-------+-------+-.--------' '--------.-+-------+-------+-------+-------'-------'---------' + * | Win | Lower | Alt |/ Space / \ Enter \| AltGr | Raise | Bksp | + | | | | Shift / \ Shift | | | | + * '-------'-------'-------'-------' '-------'-------'-------'-------' */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -52,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, KC_MPLY, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, 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_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DOWN, KC_UP, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTRL, + LCTL_T(KC_LEFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DOWN, KC_UP, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RCTL_T(KC_RGHT), KC_LGUI, TG(_FN), KC_LALT, LSFT_T(KC_SPC), RSFT_T(KC_ENT), KC_RALT, TG(_NUM), KC_BSPC ), From af3191fd3ba2b9f886b60426c67b3d67f16357c3 Mon Sep 17 00:00:00 2001 From: TweetyDaBird Date: Fri, 30 Sep 2022 23:15:43 +0200 Subject: [PATCH 10/33] Migrated to .json --- data/schemas/keyboard.jsonschema | 2 +- keyboards/tweetydabird/lbs6/info.json | 2 +- keyboards/tweetydabird/lotus58/config.h | 87 +------- keyboards/tweetydabird/lotus58/info.json | 196 ++++++++++++++++-- .../lotus58/keymaps/default/keymap.c | 52 ++--- .../lotus58/keymaps/tester/keymap.c | 38 ++-- keyboards/tweetydabird/lotus58/lotus58.c | 17 -- keyboards/tweetydabird/lotus58/lotus58.h | 39 ---- keyboards/tweetydabird/lotus58/readme.md | 10 +- keyboards/tweetydabird/lotus58/rules.mk | 37 +--- 10 files changed, 239 insertions(+), 241 deletions(-) delete mode 100644 keyboards/tweetydabird/lotus58/lotus58.c delete mode 100644 keyboards/tweetydabird/lotus58/lotus58.h diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 0308f451167e..9298282dfb97 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -1,4 +1,4 @@ -{ + { "$schema": "https://json-schema.org/draft/2020-12/schema#", "$id": "qmk.keyboard.v1", "title": "Keyboard Information", diff --git a/keyboards/tweetydabird/lbs6/info.json b/keyboards/tweetydabird/lbs6/info.json index ac1b57422067..49e9573699ed 100644 --- a/keyboards/tweetydabird/lbs6/info.json +++ b/keyboards/tweetydabird/lbs6/info.json @@ -59,7 +59,7 @@ }, "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [ { "label": "Play", "matrix": [0, 1], "x": 1, "y": 0, "w": 1, "h": 1 }, diff --git a/keyboards/tweetydabird/lotus58/config.h b/keyboards/tweetydabird/lotus58/config.h index cc01e96dd4dd..18bc7cfc18cc 100644 --- a/keyboards/tweetydabird/lotus58/config.h +++ b/keyboards/tweetydabird/lotus58/config.h @@ -16,89 +16,24 @@ along with this program. If not, see . */ #pragma once - #include "config_common.h" -// USB Device descriptor parameter -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0058 -#define DEVICE_VER 0x0001 -#define MANUFACTURER TweetyDaBird -#define PRODUCT Lotus 58 Glow - -// Keyboard Matrix (Rows are doubled) -#define MATRIX_ROWS 10 -#define MATRIX_COLS 6 - -#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 } -#define MATRIX_COL_PINS { B1, B2, B3, B6, F7, F6 } -#define DIODE_DIRECTION COL2ROW - -#define SPLIT_HAND_PIN B5 - -// Encoder support -#define ENCODERS_PAD_A { F5 } -#define ENCODERS_PAD_B { F4 } -#define ENCODERS_PAD_A_RIGHT { F4 } -#define ENCODERS_PAD_B_RIGHT { F5 } -#define ENCODER_RESOLUTION 1 - -// Define Communication -#define SOFT_SERIAL_PIN D2 -#define USE_SERIAL -#define SERIAL_USE_MULTI_TRANSACTION -//#define SPLIT_MODS_ENABLE -//#define SPLIT_TRANSPORT_MIRROR - -// Basic RGB configuration -#define RGB_DI_PIN D3 - -// Underglow LEDs -//#define RGBLED_SPLIT { 6, 6 } -//#define RGBLED_NUM 12 - -// Full backlight -//#define RGBLED_SPLIT { 29, 29 } -//#define RGBLED_NUM 58 - -// Full backlight + underglow -#define RGBLED_SPLIT { 35, 35 } -#define RGBLED_NUM 70 -#define RGBLIGHT_SPLIT - -#define RGBLIGHT_EFFECT_BREATHING - -#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_BREATHING -#define RGBLIGHT_LAYERS_RETAIN_VAL -#define RGBLIGHT_LIMIT_VAL 175 -#define RGBLIGHT_DEFAULT_VAL ( RGBLIGHT_LIMIT_VAL / 2 ) - +/* #define SPLIT_USB_DETECT #define SPLIT_USB_TIMEOUT 2000 #define SPLIT_USB_TIMEOUT_POLL 10 - -#define TAPPING_TERM 175 -#define TAPPING_TOGGLE 2 -#define TAP_CODE_DELAY 10 - -//#define NO_AUTO_SHIFT_SPECIAL -//#define NO_AUTO_SHIFT_NUMERIC - -// Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed -#define DEBOUNCE 5 - -/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. - * This is useful for the Windows task manager shortcut (ctrl+shift+esc). - */ -#define GRAVE_ESC_CTRL_OVERRIDE - -// disable action features -#define NO_ACTION_ONESHOT +*/ // Bootmagic Lite key configuration #define BOOTMAGIC_LITE_ROW 0 #define BOOTMAGIC_LITE_COLUMN 0 +#define BOOTMAGIC_LITE_ROW_RIGHT 5 +#define BOOTMAGIC_LITE_COLUMN_RIGHT 0 + +// Not yet supported in json +#define SPLIT_HAND_PIN B5 +#define SERIAL_USE_MULTI_TRANSACTION -#undef LOCKING_SUPPORT_ENABLE -#undef LOCKING_RESYNC_ENABLE -#define LAYER_STATE_8BIT +#define SPLIT_LAYER_STATE_ENABLE +#define SPLIT_LED_STATE_ENABLE +#define SPLIT_OLED_ENABLE diff --git a/keyboards/tweetydabird/lotus58/info.json b/keyboards/tweetydabird/lotus58/info.json index 90ec57a3bd72..694464e074a3 100644 --- a/keyboards/tweetydabird/lotus58/info.json +++ b/keyboards/tweetydabird/lotus58/info.json @@ -1,18 +1,184 @@ { - "keyboard_name": "lotus58", - "url": "https://github.com/TweetyDaBird/Lotus58/", - "maintainer": "TweetyDaBird", - "width": 16.5, - "height": 5.25, - "layouts": { - "LAYOUT": { - "layout": [ - {"x":0, "y":0.5}, {"x":1, "y":0.375}, {"x":2, "y":0.125}, {"x":3, "y":0}, {"x":4, "y":0.125}, {"x":5, "y":0.25}, {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125}, {"x":12.5, "y":0}, {"x":13.5, "y":0.125}, {"x":14.5, "y":0.375}, {"x":15.5, "y":0.5}, - {"x":0, "y":1.5}, {"x":1, "y":1.375}, {"x":2, "y":1.125}, {"x":3, "y":1}, {"x":4, "y":1.125}, {"x":5, "y":1.25}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.125}, {"x":12.5, "y":1}, {"x":13.5, "y":1.125}, {"x":14.5, "y":1.375}, {"x":15.5, "y":1.5}, - {"x":0, "y":2.5}, {"x":1, "y":2.375}, {"x":2, "y":2.125}, {"x":3, "y":2}, {"x":4, "y":2.125}, {"x":5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.125}, {"x":12.5, "y":2}, {"x":13.5, "y":2.125}, {"x":14.5, "y":2.375}, {"x":15.5, "y":2.5}, - {"x":0, "y":3.5}, {"x":1, "y":3.375}, {"x":2, "y":3.125}, {"x":3, "y":3}, {"x":4, "y":3.125}, {"x":5, "y":3.25}, {"x":6, "y":2.75}, {"x":9.5, "y":2.75}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.125}, {"x":12.5, "y":3}, {"x":13.5, "y":3.125}, {"x":14.5, "y":3.375}, {"x":15.5, "y":3.5}, - {"x":1.5, "y":4.375}, {"x":2.5, "y":4.125}, {"x":3.5, "y":4.15}, {"x":4.5, "y":4.25}, {"x":6, "y":4.25, "h":1.5}, {"x":9.5, "y":4.25, "h":1.5}, {"x":11, "y":4.25}, {"x":12, "y":4.15}, {"x":13, "y":4.125}, {"x":14, "y":4.375} - ] + "keyboard_name": "Lotus 58 Glow", + "manufacturer": "Tweetys Wild Thinking", + "url": "https://lectronz.com/stores/tweetys-wild-thinking", + "maintainer": "TweetyDaBird", + + "development_board": "promicro", + "bootloader_instructions": "Short marked pads on PCB, or hold top-outer key when plugging in each hand.", + + "debounce": 5, + + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": false, + "nkro": true, + "rgblight": true, + "encoder": true, + "oled": true, + "audio": false, + "split": true, + "magic": false, + "grave_esc": false, + "space_cadet": false + "tap_dance": false, + "auto_shift": true + }, + + "build": { + "lto": true + }, + + "usb": { + "vid": "0xFEED", + "pid": "0x23B0", + "device_version": "1.2.3", + "force_nkro": true + }, + + "split": { + "enabled": true, + "main": "pin", + "soft_serial_pin": "D2", + + "usb_detect": { + "enabled": true, + "polling_interval": 2000, + "timeout": 25 + }, + + "transport": { + "protocol": "serial", + "sync_matrix_state": true, + "sync_modifiers": true + }, + }, + + "encoder": { + "rotary": [ + { "pin_a": "F5", "pin_b": "F4", "resolution": 2 } + { "pin_a": "F4", "pin_b": "F5", "resolution": 2 } + ] + }, + + "rgblight": { + "led_count": 58, + "pin": "D3", + "split": true, + "split_count": [ 29, 29 ], + "hue_steps": 8, + "saturation_steps": 17, + "brightness_steps": 17, + "max_brightness": 175, + "animations": { + "breathing": true, + "rainbow_mood": true, + "static_gradient": true } + }, + + "qmk": { + "tap_keycode_delay": 10 + }, + + "tapping": { + "term": 175, + "toggle": 2 + }, + + "matrix_size": { + "cols": 6, + "rows": 10 + }, + + "diode_direction": "COL2ROW", + "matrix_pins": { + "rows": ["D4", "C6", "D7", "E6", "B4"], + "cols": ["B1", "B2", "B3", "B6", "F7", "F6"] + }, + + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, + + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix":[0, 0], "x":0, "y":0.75, "label":"Esc"}, + {"matrix":[0, 1], "x":1, "y":0.5, "label":"1"}, + {"matrix":[0, 2], "x":2, "y":0.25, "label":"2"}, + {"matrix":[0, 3], "x":3, "y":0, "label":"3"}, + {"matrix":[0, 4], "x":4, "y":0.25, "label":"4"}, + {"matrix":[0, 5], "x":5, "y":0.5, "label":"5"}, + + {"matrix":[4, 0], "x":6.25, "y":0.75, "label":"Left ENC"}, + {"matrix":[9, 0], "x":7.75, "y":0.75, "label":"Right ENC"}, + + {"matrix":[5, 5], "x":9, "y":0.5, "label":"6"}, + {"matrix":[5, 4], "x":10, "y":0.25, "label":"7"}, + {"matrix":[5, 3], "x":11, "y":0, "label":"8"}, + {"matrix":[5, 2], "x":12, "y":0.25, "label":"9"}, + {"matrix":[5, 1], "x":13, "y":0.5, "label":"0"}, + {"matrix":[5, 0], "x":14, "y":0.75, "label":"-"}, + + {"matrix":[1, 0], "x":0, "y":1.75, "label":"Tab"}, + {"matrix":[1, 1], "x":1, "y":1.5, "label":"Q"}, + {"matrix":[1, 2], "x":2, "y":1.25, "label":"W"}, + {"matrix":[1, 3], "x":3, "y":1, "label":"E"}, + {"matrix":[1, 4], "x":4, "y":1.25, "label":"R"}, + {"matrix":[1, 5], "x":5, "y":1.5, "label":"T"}, + + {"matrix":[6, 5], "x":9, "y":1.5, "label":"Y"}, + {"matrix":[6, 4], "x":10, "y":1.25, "label":"U"}, + {"matrix":[6, 3], "x":11, "y":1, "label":"I"}, + {"matrix":[6, 2], "x":12, "y":1.25, "label":"O"}, + {"matrix":[6, 1], "x":13, "y":1.5, "label":"P"}, + {"matrix":[6, 0], "x":14, "y":1.75, "label":"{"}, + + {"matrix":[2, 0], "x":0, "y":2.75, "label":"Caps Lock"}, + {"matrix":[2, 1], "x":1, "y":2.5, "label":"A"}, + {"matrix":[2, 2], "x":2, "y":2.25, "label":"S"}, + {"matrix":[2, 3], "x":3, "y":2, "label":"D"}, + {"matrix":[2, 4], "x":4, "y":2.25, "label":"F"}, + {"matrix":[2, 5], "x":5, "y":2.5, "label":"G"}, + + {"matrix":[7, 5], "x":9, "y":2.5, "label":"H"}, + {"matrix":[7, 4], "x":10, "y":2.25, "label":"J"}, + {"matrix":[7, 3], "x":11, "y":2, "label":"K"}, + {"matrix":[7, 2], "x":12, "y":2.25, "label":"L"}, + {"matrix":[7, 1], "x":13, "y":2.5, "label":":"}, + {"matrix":[7, 0], "x":14, "y":2.75, "label":"\""}, + + {"matrix":[3, 0], "x":0, "y":3.75, "label":"L_Ctrl"}, + {"matrix":[3, 1], "x":1, "y":3.5, "label":"Z"}, + {"matrix":[3, 2], "x":2, "y":3.25, "label":"X"}, + {"matrix":[3, 3], "x":3, "y":3, "label":"C"}, + {"matrix":[3, 4], "x":4, "y":3.25, "label":"V"}, + {"matrix":[3, 5], "x":5, "y":3.5, "label":"B"}, + + {"matrix":[4, 5], "x":6, "y":3, "label":"Down"}, + {"matrix":[9, 5], "x":8, "y":3, "label":"Up"}, + + {"matrix":[8, 5], "x":9, "y":3.5, "label":"N"}, + {"matrix":[8, 4], "x":10, "y":3.25, "label":"M"}, + {"matrix":[8, 3], "x":11, "y":3, "label":","}, + {"matrix":[8, 2], "x":12, "y":3.25, "label":"."}, + {"matrix":[8, 1], "x":13, "y":3.5, "label":"?"}, + {"matrix":[8, 0], "x":14, "y":3.75, "label":"R_Ctrl"}, + + {"matrix":[4, 1], "x":2.5, "y":4.25, "label":"Win"}, + {"matrix":[4, 2], "x":3.5, "y":4.25, "label":"Lower"}, + {"matrix":[4, 3], "x":4.5, "y":4.5, "label":"Alt"}, + {"matrix":[4, 4], "x":6, "y":4.25, "h":1.25, "label":"Space"}, + + {"matrix":[9, 4], "x":8, "y":4.25, "h":1.25, "label":"Enter"}, + {"matrix":[9, 3], "x":9.5, "y":4.5, "label":"AltGr"}, + {"matrix":[9, 2], "x":10.5, "y":4.25, "label":"Raise"}, + {"matrix":[9, 1], "x":11.5, "y":4.25, "label":"BckSp"}, + ] + } } -} +} \ No newline at end of file diff --git a/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c index 030f0f393b11..7801d60d6f73 100644 --- a/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c +++ b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c @@ -1,22 +1,12 @@ -/* Copyright021 TweetyDaBird - * - * 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 . - */ +// Copyright 2022 Markus Knutsson (@TweetyDaBird) +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H -#include "quantum.h" -bool autoshift; +void keyboard_post_init_user(void) { + autoshift_disable(); +} + enum layers { _QWERTY, @@ -49,11 +39,11 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, KC_MPLY, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - LCTL_T(KC_LEFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DOWN, KC_UP, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RCTL_T(KC_RGHT), - KC_LGUI, TG(_FN), KC_LALT, LSFT_T(KC_SPC), RSFT_T(KC_ENT), KC_RALT, TG(_NUM), KC_BSPC + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, KC_MPLY, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + LCTL_T(KC_LEFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DOWN, KC_UP, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RCTL_T(KC_RGHT), + KC_LGUI, TG(_FN), KC_LALT, LSFT_T(KC_SPC), RSFT_T(KC_ENT), KC_RALT, TG(_NUM), MT(MOD_RGUI,KC_BSPC) ), [_NUM] = LAYOUT( @@ -73,10 +63,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_SYS] = LAYOUT( - XXXXXXX, XXXXXXX, XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_M_P, QK_BOOT, XXXXXXX, KC_QWERTY, XXXXXXX, XXXXXXX, KC_ASTG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CAPS, 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, KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_VAI, RGB_MOD, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUD, RGB_VAD, RGB_RMOD, _______, _______, _______, _______, _______, _______, _______, _______ \ ) }; @@ -122,26 +112,26 @@ static void print_status_narrow(void) { oled_write_P(PSTR("Undef"), false); } -/* not working! + //not working! oled_write_P(PSTR("\n"), false); led_t led_usb_state = host_keyboard_led_state(); oled_write_ln_P(PSTR("Caps- lock"), led_usb_state.caps_lock); - autoshift = get_autoshift_state(); + bool autoshift = get_autoshift_state(); oled_write_P(PSTR("\n"), false); oled_write_P(PSTR("Auto-Shift"), autoshift); oled_write_P(PSTR("\n"), false); - */ + } oled_rotation_t oled_init_user(oled_rotation_t rotation) { - if (is_keyboard_master()) { + if (is_keyboard_left()) { return OLED_ROTATION_90; - } - return rotation; + } + return OLED_ROTATION_270; } bool oled_task_user(void) { diff --git a/keyboards/tweetydabird/lotus58/keymaps/tester/keymap.c b/keyboards/tweetydabird/lotus58/keymaps/tester/keymap.c index a7eab101b74d..9d2e9edb8fee 100644 --- a/keyboards/tweetydabird/lotus58/keymaps/tester/keymap.c +++ b/keyboards/tweetydabird/lotus58/keymaps/tester/keymap.c @@ -23,27 +23,25 @@ enum custom_keycodes { KC_QWERTY = SAFE_RANGE }; -/* Legend _____ _____ - * .--------.-------.-------.-------.-------.-------. / \ / \ .-------.-------.-------.-------.-------.--------. - * | Esc | 1 | 2 | 3 | 4 | 5 | ( Media ) ( Media ) | 6 | 7 | 8 | 9 | 0 | - | - * |--------+-------+-------+-------+-------+-------| \_____/ \_____/ |-------+-------+-------+-------+-------+--------| - * | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | - * |--------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+--------| - * | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | - * |--------+-------+-------+-------+-------+-------+----------. .----------+-------+-------+-------+-------+-------+--------| - * | Ctrl | Z | X | C | V | B | RGB | | RGB | N | M | , | . | / | Ctrl | - * '--------'-------'-------+-------+-------+-------+-.--------' '--------.-+-------+-------+-------+-------'-------'--------' - * | Win | Down | Alt |/ Space / \ Enter \| AltGr | Up | Bksp | - * '-------'-------'-------'--------' '--------'-------'-------'-------' - */ - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, KC_MPLY, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, - 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_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, RGB_TOG, RGB_TOG, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTRL, - KC_LGUI, KC_DOWN, KC_LALT, KC_SPC, KC_ENT, KC_RALT, KC_UP, KC_BSPC +// _______ _______ +//.----------.--------.--------.--------.--------.--------. / \ / \ .--------.--------.--------.--------.--------.----------. +//| Esc | 1 | 2 | 3 | 4 | 5 || Media | | Media || 6 | 7 | 8 | 9 | 0 | - | + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, KC_MPLY, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, +//|----------+--------+--------+--------+--------+--------| \_______/ \_______/ |--------+--------+--------+--------+--------+----------| +//| Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, +//|----------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+----------| +//| Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, +//|----------+--------+--------+--------+--------+--------+----------. .----------+--------+--------+--------+--------+--------+----------| +//| Ctrl | Z | X | C | V | B | RGB | | RGB | N | M | , | . | / | Ctrl | + KC_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, RGB_TOG, RGB_TOG, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTRL, +//'----------'--------'--------+--------+--------+--------+-.--------' '--------.-+--------+--------+--------+--------'--------'----------' +// | Win | Down | Alt |/ Space / \ Enter \| AltGr | Up | Bksp | + KC_LGUI, KC_DOWN, KC_LALT, KC_SPC, KC_ENT, KC_RALT, KC_UP, KC_BSPC +// '--------'--------'--------'--------' '--------'--------'--------'--------' ) }; @@ -104,4 +102,4 @@ bool encoder_update_user(uint8_t index, bool clockwise) { return true; } -#endif +#endif \ No newline at end of file diff --git a/keyboards/tweetydabird/lotus58/lotus58.c b/keyboards/tweetydabird/lotus58/lotus58.c deleted file mode 100644 index 230118bbf27a..000000000000 --- a/keyboards/tweetydabird/lotus58/lotus58.c +++ /dev/null @@ -1,17 +0,0 @@ -/* Copyright 2021 TweetyDaBird - * - * 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 "lotus58.h" diff --git a/keyboards/tweetydabird/lotus58/lotus58.h b/keyboards/tweetydabird/lotus58/lotus58.h deleted file mode 100644 index d8badc6eea79..000000000000 --- a/keyboards/tweetydabird/lotus58/lotus58.h +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright 2021 TweetyDaBird - * - * 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 LAYOUT( \ - L00, L01, L02, L03, L04, L05, LEN, REN, R00, R01, R02, R03, R04, R05, \ - L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ - L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ - L30, L31, L32, L33, L34, L35, L45, R40, R30, R31, R32, R33, R34, R35, \ - L41, L42, L43, L44, R41, R42, R43, R44 \ - ) \ - { \ - { L00, L01, L02, L03, L04, L05 }, \ - { L10, L11, L12, L13, L14, L15 }, \ - { L20, L21, L22, L23, L24, L25 }, \ - { L30, L31, L32, L33, L34, L35 }, \ - { LEN, L41, L42, L43, L44, L45 }, \ - { R05, R04, R03, R02, R01, R00 }, \ - { R15, R14, R13, R12, R11, R10 }, \ - { R25, R24, R23, R22, R21, R20 }, \ - { R35, R34, R33, R32, R31, R30 }, \ - { REN, R44, R43, R42, R41, R40 } \ - } diff --git a/keyboards/tweetydabird/lotus58/readme.md b/keyboards/tweetydabird/lotus58/readme.md index b95d0c228063..ecf16ca89c5e 100644 --- a/keyboards/tweetydabird/lotus58/readme.md +++ b/keyboards/tweetydabird/lotus58/readme.md @@ -1,12 +1,12 @@ -# lotus58 +# Lotus 58 Glow -![lotus58](imgur.com image replace me!) +![lotus58](https://imgur.com/WWgpp0S) -*A short description of the keyboard/project* +* Lotus 58 Glow is a fully programmable 58-key split, ortho-columnar keyboard with a 4x6 main matrix and 4+1 thumb-keys per hand. Optional support for one OLED screen per hand/side showing information such as active layer, CapsLock/NumLock etc. as well as one Rotary Encoder per hand, with optional placement.* * Keyboard Maintainer: [TweetyDaBird](https://github.com/TweetyDaBird) -* Hardware Supported: *The PCBs, controllers supported* -* Hardware Availability: *Links to where you can find this hardware* +* Hardware Supported: *Lotus 58 Glow v1.11 - 1.24 PCB, Pro Micro or pin-compatible* +* Hardware Availability: [Lectronz Store]https://lectronz.com/stores/tweetys-wild-thinking Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/tweetydabird/lotus58/rules.mk b/keyboards/tweetydabird/lotus58/rules.mk index 22d1ffea0e11..7ff128fa692e 100644 --- a/keyboards/tweetydabird/lotus58/rules.mk +++ b/keyboards/tweetydabird/lotus58/rules.mk @@ -1,36 +1 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = caterina # Used for ProMicro -# BOOTLOADER = qmk-dfu # Used for Elite C - -# Build Options -# change yes to no to disable -# -LTO_ENABLE = yes # Optimize size when compiling -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration -SPLIT_KEYBOARD = yes # Split keyboard is neccesary! - -EXTRAKEY_ENABLE = yes # Audio control and System control - -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration - -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow - -NKRO_ENABLE = yes # USB Nkey Rollover (needed for gaming) - -ENCODER_ENABLE = yes # Support for OLED screens -OLED_ENABLE = yes # Support for Rotary Encoders - -TAP_DANCE_ENABLE = no # Used in keymap -AUTO_SHIFT_ENABLE = no # Used in keymap - -AUDIO_ENABLE = no # Audio output -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE - -# Saving space -SPACE_CADET_ENABLE = no -GRAVE_ESC_ENABLE = no -MAGIC_ENABLE = no +# This file intentionally left blank \ No newline at end of file From 169b7565006f6a3c49aa6b231ec403ca6851319c Mon Sep 17 00:00:00 2001 From: TweetyDaBird Date: Fri, 30 Sep 2022 23:18:15 +0200 Subject: [PATCH 11/33] Update readme.md --- keyboards/tweetydabird/lotus58/readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/keyboards/tweetydabird/lotus58/readme.md b/keyboards/tweetydabird/lotus58/readme.md index ecf16ca89c5e..3de9e018c8f0 100644 --- a/keyboards/tweetydabird/lotus58/readme.md +++ b/keyboards/tweetydabird/lotus58/readme.md @@ -7,6 +7,7 @@ * Keyboard Maintainer: [TweetyDaBird](https://github.com/TweetyDaBird) * Hardware Supported: *Lotus 58 Glow v1.11 - 1.24 PCB, Pro Micro or pin-compatible* * Hardware Availability: [Lectronz Store]https://lectronz.com/stores/tweetys-wild-thinking +* Hardware Design: https://github.com/TweetyDaBird/Lotus58 Make example for this keyboard (after setting up your build environment): From 41cecd52ccf16d78b07b6b42b77a9eedd4ccf379 Mon Sep 17 00:00:00 2001 From: Markus Knutsson Date: Sat, 1 Oct 2022 00:08:15 +0200 Subject: [PATCH 12/33] Update keyboards/tweetydabird/lotus58/info.json Co-authored-by: Joel Challis --- keyboards/tweetydabird/lotus58/info.json | 5 ----- 1 file changed, 5 deletions(-) diff --git a/keyboards/tweetydabird/lotus58/info.json b/keyboards/tweetydabird/lotus58/info.json index 694464e074a3..cb602ceba68f 100644 --- a/keyboards/tweetydabird/lotus58/info.json +++ b/keyboards/tweetydabird/lotus58/info.json @@ -89,11 +89,6 @@ "toggle": 2 }, - "matrix_size": { - "cols": 6, - "rows": 10 - }, - "diode_direction": "COL2ROW", "matrix_pins": { "rows": ["D4", "C6", "D7", "E6", "B4"], From 5370da3a61b41b7fe29a39ead6cb713a1e3686da Mon Sep 17 00:00:00 2001 From: Markus Knutsson Date: Sat, 1 Oct 2022 00:08:30 +0200 Subject: [PATCH 13/33] Update keyboards/tweetydabird/lotus58/info.json Co-authored-by: Joel Challis --- keyboards/tweetydabird/lotus58/info.json | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/keyboards/tweetydabird/lotus58/info.json b/keyboards/tweetydabird/lotus58/info.json index cb602ceba68f..3e1cd2271974 100644 --- a/keyboards/tweetydabird/lotus58/info.json +++ b/keyboards/tweetydabird/lotus58/info.json @@ -95,12 +95,8 @@ "cols": ["B1", "B2", "B3", "B6", "F7", "F6"] }, - "layout_aliases": { - "LAYOUT": "LAYOUT_all" - }, - "layouts": { - "LAYOUT_all": { + "LAYOUT": { "layout": [ {"matrix":[0, 0], "x":0, "y":0.75, "label":"Esc"}, {"matrix":[0, 1], "x":1, "y":0.5, "label":"1"}, From d1439bde0d15b1828ccf07e930b44c346cbda9d6 Mon Sep 17 00:00:00 2001 From: Markus Knutsson Date: Sat, 1 Oct 2022 00:08:40 +0200 Subject: [PATCH 14/33] Update keyboards/tweetydabird/lotus58/config.h Co-authored-by: Joel Challis --- keyboards/tweetydabird/lotus58/config.h | 1 - 1 file changed, 1 deletion(-) diff --git a/keyboards/tweetydabird/lotus58/config.h b/keyboards/tweetydabird/lotus58/config.h index 18bc7cfc18cc..598d67fe2ba4 100644 --- a/keyboards/tweetydabird/lotus58/config.h +++ b/keyboards/tweetydabird/lotus58/config.h @@ -32,7 +32,6 @@ along with this program. If not, see . // Not yet supported in json #define SPLIT_HAND_PIN B5 -#define SERIAL_USE_MULTI_TRANSACTION #define SPLIT_LAYER_STATE_ENABLE #define SPLIT_LED_STATE_ENABLE From 926bf4078164b9f75cb8e9fb5d916535bf5281fe Mon Sep 17 00:00:00 2001 From: Markus Knutsson Date: Sat, 1 Oct 2022 00:08:48 +0200 Subject: [PATCH 15/33] Update keyboards/tweetydabird/lbs6/info.json Co-authored-by: Joel Challis --- keyboards/tweetydabird/lbs6/info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/tweetydabird/lbs6/info.json b/keyboards/tweetydabird/lbs6/info.json index 49e9573699ed..ac1b57422067 100644 --- a/keyboards/tweetydabird/lbs6/info.json +++ b/keyboards/tweetydabird/lbs6/info.json @@ -59,7 +59,7 @@ }, "layouts": { - "LAYOUT_all": { + "LAYOUT": { "layout": [ { "label": "Play", "matrix": [0, 1], "x": 1, "y": 0, "w": 1, "h": 1 }, From d079e0e1eb926ceb13af5339e7396e0ece85220d Mon Sep 17 00:00:00 2001 From: Markus Knutsson Date: Sat, 1 Oct 2022 00:08:55 +0200 Subject: [PATCH 16/33] Update data/schemas/keyboard.jsonschema Co-authored-by: Joel Challis --- data/schemas/keyboard.jsonschema | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 9298282dfb97..0308f451167e 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -1,4 +1,4 @@ - { +{ "$schema": "https://json-schema.org/draft/2020-12/schema#", "$id": "qmk.keyboard.v1", "title": "Keyboard Information", From 6e23b9597f7b2b95961bf6815bf548b23fc01ef8 Mon Sep 17 00:00:00 2001 From: TweetyDaBird Date: Sat, 1 Oct 2022 00:18:46 +0200 Subject: [PATCH 17/33] Update config.h --- keyboards/tweetydabird/lotus58/config.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/keyboards/tweetydabird/lotus58/config.h b/keyboards/tweetydabird/lotus58/config.h index 598d67fe2ba4..3b36fd61b6ed 100644 --- a/keyboards/tweetydabird/lotus58/config.h +++ b/keyboards/tweetydabird/lotus58/config.h @@ -18,11 +18,12 @@ along with this program. If not, see . #pragma once #include "config_common.h" -/* +// Not working correct in json implementation #define SPLIT_USB_DETECT #define SPLIT_USB_TIMEOUT 2000 #define SPLIT_USB_TIMEOUT_POLL 10 -*/ + +// Not yet supported in json // Bootmagic Lite key configuration #define BOOTMAGIC_LITE_ROW 0 @@ -30,9 +31,7 @@ along with this program. If not, see . #define BOOTMAGIC_LITE_ROW_RIGHT 5 #define BOOTMAGIC_LITE_COLUMN_RIGHT 0 -// Not yet supported in json #define SPLIT_HAND_PIN B5 - #define SPLIT_LAYER_STATE_ENABLE #define SPLIT_LED_STATE_ENABLE #define SPLIT_OLED_ENABLE From e292549fab7d3585a412024cd5e9a9f7ac04f20e Mon Sep 17 00:00:00 2001 From: Markus Knutsson Date: Sat, 1 Oct 2022 01:04:15 +0200 Subject: [PATCH 18/33] Update keyboards/tweetydabird/lotus58/readme.md Co-authored-by: Drashna Jaelre --- keyboards/tweetydabird/lotus58/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/tweetydabird/lotus58/readme.md b/keyboards/tweetydabird/lotus58/readme.md index 3de9e018c8f0..35d6e0716399 100644 --- a/keyboards/tweetydabird/lotus58/readme.md +++ b/keyboards/tweetydabird/lotus58/readme.md @@ -1,6 +1,6 @@ # Lotus 58 Glow -![lotus58](https://imgur.com/WWgpp0S) +![lotus58](https://i.imgur.com/WWgpp0Sh.jpeg) * Lotus 58 Glow is a fully programmable 58-key split, ortho-columnar keyboard with a 4x6 main matrix and 4+1 thumb-keys per hand. Optional support for one OLED screen per hand/side showing information such as active layer, CapsLock/NumLock etc. as well as one Rotary Encoder per hand, with optional placement.* From 1d5f8be6643dbd972855ad0950fed5e20563a00a Mon Sep 17 00:00:00 2001 From: TweetyDaBird Date: Sun, 2 Oct 2022 23:21:59 +0200 Subject: [PATCH 19/33] Requested changes --- keyboards/tweetydabird/lotus58/info.json | 6 - .../lotus58/keymaps/default/keymap.c | 116 +++++++++++------- keyboards/tweetydabird/lotus58/readme.md | 8 ++ 3 files changed, 77 insertions(+), 53 deletions(-) diff --git a/keyboards/tweetydabird/lotus58/info.json b/keyboards/tweetydabird/lotus58/info.json index 3e1cd2271974..59973a8e25c9 100644 --- a/keyboards/tweetydabird/lotus58/info.json +++ b/keyboards/tweetydabird/lotus58/info.json @@ -44,12 +44,6 @@ "main": "pin", "soft_serial_pin": "D2", - "usb_detect": { - "enabled": true, - "polling_interval": 2000, - "timeout": 25 - }, - "transport": { "protocol": "serial", "sync_matrix_state": true, diff --git a/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c index 7801d60d6f73..d8853d377bd4 100644 --- a/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c +++ b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c @@ -1,13 +1,11 @@ // Copyright 2022 Markus Knutsson (@TweetyDaBird) // SPDX-License-Identifier: GPL-2.0-or-later - #include QMK_KEYBOARD_H void keyboard_post_init_user(void) { autoshift_disable(); } - enum layers { _QWERTY, _NUM, @@ -22,29 +20,42 @@ enum custom_keycodes { KC_SYSTEM, }; -/* Legend _____ _____ - * .---------.-------.-------.-------.-------.-------. / \ / \ .-------.-------.-------.-------.-------.---------. - * | Esc | 1 | 2 | 3 | 4 | 5 | ( Media ) ( Media ) | 6 | 7 | 8 | 9 | 0 | - | - * |---------+-------+-------+-------+-------+-------| \_____/ \_____/ |-------+-------+-------+-------+-------+---------| - * | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | - * |---------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+---------| - * | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | - * |---------+-------+-------+-------+-------+-------+----------. .----------+-------+-------+-------+-------+-------+---------| - * | <- Ctrl | Z | X | C | V | B | Down | | Up | N | M | , | . | / | Ctrl -> | - * '---------'-------'-------+-------+-------+-------+-.--------' '--------.-+-------+-------+-------+-------'-------'---------' - * | Win | Lower | Alt |/ Space / \ Enter \| AltGr | Raise | Bksp | - | | | | Shift / \ Shift | | | | - * '-------'-------'-------'-------' '-------'-------'-------'-------' - */ - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, KC_MPLY, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - LCTL_T(KC_LEFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DOWN, KC_UP, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RCTL_T(KC_RGHT), - KC_LGUI, TG(_FN), KC_LALT, LSFT_T(KC_SPC), RSFT_T(KC_ENT), KC_RALT, TG(_NUM), MT(MOD_RGUI,KC_BSPC) - ), +// _______ _______ +// .----------.----------.----------.----------.----------.----------. / \ / \ .----------.----------.----------.----------.----------.----------. +// | Esc | 1 | 2 | 3 | 4 | 5 |( Media ) ( Media )| 6 | 7 | 8 | 9 | 0 | - | + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, KC_MPLY, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, +// |----------+----------+----------+----------+----------+----------| \_______/ \_______/ |----------+----------+----------+----------+----------+----------| +// | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, +// |----------+----------+----------+----------+----------+----------| |----------+----------+----------+----------+----------+----------| +// | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, +// |----------+----------+----------+----------+----------+----------+-----------. .-----------+----------+----------+----------+----------+----------+----------| +// | <- Ctrl | Z | X | C | V | B | Down | | Up | N | M | , | . | / | Ctrl -> | +LCTL_T(KC_LEFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DOWN, KC_UP, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RCTL_T(KC_RGHT), +// '----------'----------'----------+----------+----------+----------+-.---------' '---------.-+----------+----------+----------+----------'----------'----------' +// | Win | Lower | Alt |/ Space / \ Enter \| AltGr | Raise | Bksp | +// | | | | Shift / \ Shift | | | | + KC_LGUI, TG(_FN), KC_LALT, LSFT_T(KC_SPC),RSFT_T(KC_ENT), KC_RALT, TG(_NUM), MT(MOD_RGUI,KC_BSPC) +// '----------'----------'----------'--------' '--------'----------'----------'----------' +), + +// _______ _______ +// .----------.----------.----------.----------.----------.----------. / \ / \ .----------.----------.----------.----------.----------.----------. +// | Esc | 1 | 2 | 3 | 4 | 5 |( Media ) ( Media )| 6 | 7 | 8 | 9 | 0 | - | +// |----------+----------+----------+----------+----------+----------| \_______/ \_______/ |----------+----------+----------+----------+----------+----------| +// | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | +// |----------+----------+----------+----------+----------+----------| |----------+----------+----------+----------+----------+----------| +// | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | +// |----------+----------+----------+----------+----------+----------+-----------. .-----------+----------+----------+----------+----------+----------+----------| +// | <- Ctrl | Z | X | C | V | B | Down | | Up | N | M | , | . | / | Ctrl -> | +// '----------'----------'----------+----------+----------+----------+-.---------' '---------.-+----------+----------+----------+----------'----------'----------' +// | Win | Lower | Alt |/ Space / \ Enter \| AltGr | Raise | Bksp | +// | | | | Shift / \ Shift | | | | +// '----------'----------'----------'--------' '--------'----------'----------'----------' + [_NUM] = LAYOUT( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_CIRC, KC_KP_7, KC_KP_8, KC_KP_9, XXXXXXX, XXXXXXX, @@ -55,43 +66,53 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_FN] = LAYOUT( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ +// _______ _______ +// .----------.----------.----------.----------.----------.----------. / \ / \ .----------.----------.----------.----------.----------.----------. +// | Esc | 1 | 2 | 3 | 4 | 5 |( Media ) ( Media )| 6 | 7 | 8 | 9 | 0 | - | + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, +// |----------+----------+----------+----------+----------+----------| \_______/ \_______/ |----------+----------+----------+----------+----------+----------| +// | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// |----------+----------+----------+----------+----------+----------| |----------+----------+----------+----------+----------+----------| +// | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// |----------+----------+----------+----------+----------+----------+-----------. .-----------+----------+----------+----------+----------+----------+----------| +// | <- Ctrl | Z | X | C | V | B | Down | | Up | N | M | , | . | / | Ctrl -> | + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// '----------'----------'----------+----------+----------+----------+-.---------' '---------.-+----------+----------+----------+----------'----------'----------' +// | Win | Lower | Alt |/ Space / \ Enter \| AltGr | Raise | Bksp | +// | | | | Shift / \ Shift | | | | + _______, _______, _______, _______, _______, _______, _______, _______ +// '----------'----------'----------'--------' '--------'----------'----------'----------' ), [_SYS] = LAYOUT( - XXXXXXX, XXXXXXX, XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_M_P, - QK_BOOT, XXXXXXX, KC_QWERTY, XXXXXXX, XXXXXXX, KC_ASTG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_VAI, RGB_MOD, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUD, RGB_VAD, RGB_RMOD, + XXXXXXX, XXXXXXX, XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_SAI, RGB_TOG, + QK_BOOT, XXXXXXX, KC_QWERTY, XXXXXXX, XXXXXXX, KC_ASTG, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RMOD, RGB_SAD, RGB_M_P, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_VAI, RGB_M_B, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUD, RGB_VAD, RGB_M_R, _______, _______, _______, _______, _______, _______, _______, _______ \ ) }; #ifdef OLED_ENABLE - static void render_logo(void) { static const char PROGMEM qmk_logo[] = { 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0 }; - oled_write_P(qmk_logo, false); } static void print_status_narrow(void) { - // Print header + // Create OLED content oled_write_P(PSTR("\n"), false); - oled_write_P(PSTR(""), false); + oled_write_P(PSTR(""), false); oled_write_P(PSTR("Lotus -58-"), false); - oled_write_P(PSTR("\n"), false); - + oled_write_P(PSTR("\n"), false); // Print current layer oled_write_P(PSTR("Layer"), false); @@ -111,23 +132,20 @@ static void print_status_narrow(void) { default: oled_write_P(PSTR("Undef"), false); } - - //not working! - + + // Display autoshift oled_write_P(PSTR("\n"), false); led_t led_usb_state = host_keyboard_led_state(); oled_write_ln_P(PSTR("Caps- lock"), led_usb_state.caps_lock); - bool autoshift = get_autoshift_state(); - - oled_write_P(PSTR("\n"), false); - oled_write_P(PSTR("Auto-Shift"), autoshift); - oled_write_P(PSTR("\n"), false); - + oled_write_P(PSTR("\n"), false); + oled_write_P(PSTR("Auto-Shift"), autoshift); + oled_write_P(PSTR("\n"), false); } oled_rotation_t oled_init_user(oled_rotation_t rotation) { + // Rotate OLED to fit if (is_keyboard_left()) { return OLED_ROTATION_90; } @@ -135,6 +153,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) { } bool oled_task_user(void) { + // Render the OLED if (is_keyboard_master()) { print_status_narrow(); } else { @@ -146,6 +165,7 @@ bool oled_task_user(void) { #endif bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // Set base layer switch (keycode) { case KC_QWERTY: if (record->event.pressed) { @@ -157,12 +177,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } layer_state_t layer_state_set_user(layer_state_t state) { + // Allow swithcing to the 'hidden' layer return update_tri_layer_state(state, _NUM, _FN, _SYS); } #ifdef ENCODER_ENABLE bool encoder_update_user(uint8_t index, bool clockwise) { + // Encoders if (index == 0) { if (clockwise) { tap_code(KC_VOLD); diff --git a/keyboards/tweetydabird/lotus58/readme.md b/keyboards/tweetydabird/lotus58/readme.md index 35d6e0716399..eb3d3d54a5b8 100644 --- a/keyboards/tweetydabird/lotus58/readme.md +++ b/keyboards/tweetydabird/lotus58/readme.md @@ -18,3 +18,11 @@ Flashing example for this keyboard: make tweetydabird/lotus58:default:flash See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top outer key for each hand and plug in the keyboard +* **Physical reset**: Briefly short the marked pads on PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if mapped (not in default keymap) \ No newline at end of file From 3c3ea7efa9b03b42a490cf8fad3ec813df2ec3fb Mon Sep 17 00:00:00 2001 From: TweetyDaBird Date: Mon, 3 Oct 2022 17:13:04 +0200 Subject: [PATCH 20/33] Refactored for RGB Allows different versions for the number of RGB LED's --- keyboards/tweetydabird/lotus58/config.h | 20 +- .../lotus58/{ => rgb_full}/info.json | 2 +- .../{ => rgb_full}/keymaps/default/keymap.c | 0 .../{ => rgb_full}/keymaps/tester/keymap.c | 0 .../tweetydabird/lotus58/rgb_full/readme.md | 28 ++ .../lotus58/{ => rgb_full}/rules.mk | 0 .../tweetydabird/lotus58/rgb_glow/info.json | 169 +++++++++++ .../lotus58/rgb_glow/keymaps/default/keymap.c | 204 +++++++++++++ .../lotus58/rgb_glow/keymaps/tester/keymap.c | 105 +++++++ .../tweetydabird/lotus58/rgb_glow/readme.md | 28 ++ .../tweetydabird/lotus58/rgb_glow/rules.mk | 1 + .../tweetydabird/lotus58/rgb_matrix/config.h | 30 ++ .../tweetydabird/lotus58/rgb_matrix/info.json | 161 +++++++++++ .../rgb_matrix/keymaps/default/keymap.c | 268 ++++++++++++++++++ .../tweetydabird/lotus58/rgb_matrix/readme.md | 28 ++ .../tweetydabird/lotus58/rgb_matrix/rules.mk | 1 + .../tweetydabird/lotus58/rgb_none/info.json | 153 ++++++++++ .../lotus58/rgb_none/keymaps/default/keymap.c | 204 +++++++++++++ .../tweetydabird/lotus58/rgb_none/readme.md | 28 ++ .../tweetydabird/lotus58/rgb_none/rules.mk | 1 + 20 files changed, 1413 insertions(+), 18 deletions(-) rename keyboards/tweetydabird/lotus58/{ => rgb_full}/info.json (99%) rename keyboards/tweetydabird/lotus58/{ => rgb_full}/keymaps/default/keymap.c (100%) rename keyboards/tweetydabird/lotus58/{ => rgb_full}/keymaps/tester/keymap.c (100%) create mode 100644 keyboards/tweetydabird/lotus58/rgb_full/readme.md rename keyboards/tweetydabird/lotus58/{ => rgb_full}/rules.mk (100%) create mode 100644 keyboards/tweetydabird/lotus58/rgb_glow/info.json create mode 100644 keyboards/tweetydabird/lotus58/rgb_glow/keymaps/default/keymap.c create mode 100644 keyboards/tweetydabird/lotus58/rgb_glow/keymaps/tester/keymap.c create mode 100644 keyboards/tweetydabird/lotus58/rgb_glow/readme.md create mode 100644 keyboards/tweetydabird/lotus58/rgb_glow/rules.mk create mode 100644 keyboards/tweetydabird/lotus58/rgb_matrix/config.h create mode 100644 keyboards/tweetydabird/lotus58/rgb_matrix/info.json create mode 100644 keyboards/tweetydabird/lotus58/rgb_matrix/keymaps/default/keymap.c create mode 100644 keyboards/tweetydabird/lotus58/rgb_matrix/readme.md create mode 100644 keyboards/tweetydabird/lotus58/rgb_matrix/rules.mk create mode 100644 keyboards/tweetydabird/lotus58/rgb_none/info.json create mode 100644 keyboards/tweetydabird/lotus58/rgb_none/keymaps/default/keymap.c create mode 100644 keyboards/tweetydabird/lotus58/rgb_none/readme.md create mode 100644 keyboards/tweetydabird/lotus58/rgb_none/rules.mk diff --git a/keyboards/tweetydabird/lotus58/config.h b/keyboards/tweetydabird/lotus58/config.h index 3b36fd61b6ed..1ffd870b8cd0 100644 --- a/keyboards/tweetydabird/lotus58/config.h +++ b/keyboards/tweetydabird/lotus58/config.h @@ -1,22 +1,8 @@ -/* -Copyright 2021 TweetyDaBird - -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 . -*/ +// Copyright 2022 Markus Knutsson (@TweetyDaBird) +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#include "config_common.h" +//#include "config_common.h" // Not working correct in json implementation #define SPLIT_USB_DETECT diff --git a/keyboards/tweetydabird/lotus58/info.json b/keyboards/tweetydabird/lotus58/rgb_full/info.json similarity index 99% rename from keyboards/tweetydabird/lotus58/info.json rename to keyboards/tweetydabird/lotus58/rgb_full/info.json index 59973a8e25c9..bd915dd52454 100644 --- a/keyboards/tweetydabird/lotus58/info.json +++ b/keyboards/tweetydabird/lotus58/rgb_full/info.json @@ -63,7 +63,7 @@ "pin": "D3", "split": true, "split_count": [ 29, 29 ], - "hue_steps": 8, + "hue_steps": 17, "saturation_steps": 17, "brightness_steps": 17, "max_brightness": 175, diff --git a/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c b/keyboards/tweetydabird/lotus58/rgb_full/keymaps/default/keymap.c similarity index 100% rename from keyboards/tweetydabird/lotus58/keymaps/default/keymap.c rename to keyboards/tweetydabird/lotus58/rgb_full/keymaps/default/keymap.c diff --git a/keyboards/tweetydabird/lotus58/keymaps/tester/keymap.c b/keyboards/tweetydabird/lotus58/rgb_full/keymaps/tester/keymap.c similarity index 100% rename from keyboards/tweetydabird/lotus58/keymaps/tester/keymap.c rename to keyboards/tweetydabird/lotus58/rgb_full/keymaps/tester/keymap.c diff --git a/keyboards/tweetydabird/lotus58/rgb_full/readme.md b/keyboards/tweetydabird/lotus58/rgb_full/readme.md new file mode 100644 index 000000000000..eb3d3d54a5b8 --- /dev/null +++ b/keyboards/tweetydabird/lotus58/rgb_full/readme.md @@ -0,0 +1,28 @@ +# Lotus 58 Glow + +![lotus58](https://i.imgur.com/WWgpp0Sh.jpeg) + +* Lotus 58 Glow is a fully programmable 58-key split, ortho-columnar keyboard with a 4x6 main matrix and 4+1 thumb-keys per hand. Optional support for one OLED screen per hand/side showing information such as active layer, CapsLock/NumLock etc. as well as one Rotary Encoder per hand, with optional placement.* + +* Keyboard Maintainer: [TweetyDaBird](https://github.com/TweetyDaBird) +* Hardware Supported: *Lotus 58 Glow v1.11 - 1.24 PCB, Pro Micro or pin-compatible* +* Hardware Availability: [Lectronz Store]https://lectronz.com/stores/tweetys-wild-thinking +* Hardware Design: https://github.com/TweetyDaBird/Lotus58 + +Make example for this keyboard (after setting up your build environment): + + make tweetydabird/lotus58:default + +Flashing example for this keyboard: + + make tweetydabird/lotus58:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top outer key for each hand and plug in the keyboard +* **Physical reset**: Briefly short the marked pads on PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if mapped (not in default keymap) \ No newline at end of file diff --git a/keyboards/tweetydabird/lotus58/rules.mk b/keyboards/tweetydabird/lotus58/rgb_full/rules.mk similarity index 100% rename from keyboards/tweetydabird/lotus58/rules.mk rename to keyboards/tweetydabird/lotus58/rgb_full/rules.mk diff --git a/keyboards/tweetydabird/lotus58/rgb_glow/info.json b/keyboards/tweetydabird/lotus58/rgb_glow/info.json new file mode 100644 index 000000000000..a32257fd9ce9 --- /dev/null +++ b/keyboards/tweetydabird/lotus58/rgb_glow/info.json @@ -0,0 +1,169 @@ +{ + "keyboard_name": "Lotus 58 Glow", + "manufacturer": "Tweetys Wild Thinking", + "url": "https://lectronz.com/stores/tweetys-wild-thinking", + "maintainer": "TweetyDaBird", + + "development_board": "promicro", + "bootloader_instructions": "Short marked pads on PCB, or hold top-outer key when plugging in each hand.", + + "debounce": 5, + + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": false, + "nkro": true, + "rgblight": true, + "encoder": true, + "oled": true, + "audio": false, + "split": true, + "magic": false, + "grave_esc": false, + "space_cadet": false + "tap_dance": false, + "auto_shift": true + }, + + "build": { + "lto": true + }, + + "usb": { + "vid": "0xFEED", + "pid": "0x23B0", + "device_version": "1.2.3", + "force_nkro": true + }, + + "split": { + "enabled": true, + "main": "pin", + "soft_serial_pin": "D2", + + "transport": { + "protocol": "serial", + "sync_matrix_state": true, + "sync_modifiers": true + }, + }, + + "encoder": { + "rotary": [ + { "pin_a": "F5", "pin_b": "F4", "resolution": 2 } + { "pin_a": "F4", "pin_b": "F5", "resolution": 2 } + ] + }, + + "rgblight": { + "led_count": 12, + "pin": "D3", + "split": true, + "split_count": [ 6, 6 ], + "hue_steps": 8, + "saturation_steps": 17, + "brightness_steps": 17, + "max_brightness": 175, + "animations": { + "breathing": true, + "rainbow_mood": true, + "static_gradient": true + } + }, + + "qmk": { + "tap_keycode_delay": 10 + }, + + "tapping": { + "term": 175, + "toggle": 2 + }, + + "diode_direction": "COL2ROW", + "matrix_pins": { + "rows": ["D4", "C6", "D7", "E6", "B4"], + "cols": ["B1", "B2", "B3", "B6", "F7", "F6"] + }, + + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix":[0, 0], "x":0, "y":0.75, "label":"Esc"}, + {"matrix":[0, 1], "x":1, "y":0.5, "label":"1"}, + {"matrix":[0, 2], "x":2, "y":0.25, "label":"2"}, + {"matrix":[0, 3], "x":3, "y":0, "label":"3"}, + {"matrix":[0, 4], "x":4, "y":0.25, "label":"4"}, + {"matrix":[0, 5], "x":5, "y":0.5, "label":"5"}, + + {"matrix":[4, 0], "x":6.25, "y":0.75, "label":"Left ENC"}, + {"matrix":[9, 0], "x":7.75, "y":0.75, "label":"Right ENC"}, + + {"matrix":[5, 5], "x":9, "y":0.5, "label":"6"}, + {"matrix":[5, 4], "x":10, "y":0.25, "label":"7"}, + {"matrix":[5, 3], "x":11, "y":0, "label":"8"}, + {"matrix":[5, 2], "x":12, "y":0.25, "label":"9"}, + {"matrix":[5, 1], "x":13, "y":0.5, "label":"0"}, + {"matrix":[5, 0], "x":14, "y":0.75, "label":"-"}, + + {"matrix":[1, 0], "x":0, "y":1.75, "label":"Tab"}, + {"matrix":[1, 1], "x":1, "y":1.5, "label":"Q"}, + {"matrix":[1, 2], "x":2, "y":1.25, "label":"W"}, + {"matrix":[1, 3], "x":3, "y":1, "label":"E"}, + {"matrix":[1, 4], "x":4, "y":1.25, "label":"R"}, + {"matrix":[1, 5], "x":5, "y":1.5, "label":"T"}, + + {"matrix":[6, 5], "x":9, "y":1.5, "label":"Y"}, + {"matrix":[6, 4], "x":10, "y":1.25, "label":"U"}, + {"matrix":[6, 3], "x":11, "y":1, "label":"I"}, + {"matrix":[6, 2], "x":12, "y":1.25, "label":"O"}, + {"matrix":[6, 1], "x":13, "y":1.5, "label":"P"}, + {"matrix":[6, 0], "x":14, "y":1.75, "label":"{"}, + + {"matrix":[2, 0], "x":0, "y":2.75, "label":"Caps Lock"}, + {"matrix":[2, 1], "x":1, "y":2.5, "label":"A"}, + {"matrix":[2, 2], "x":2, "y":2.25, "label":"S"}, + {"matrix":[2, 3], "x":3, "y":2, "label":"D"}, + {"matrix":[2, 4], "x":4, "y":2.25, "label":"F"}, + {"matrix":[2, 5], "x":5, "y":2.5, "label":"G"}, + + {"matrix":[7, 5], "x":9, "y":2.5, "label":"H"}, + {"matrix":[7, 4], "x":10, "y":2.25, "label":"J"}, + {"matrix":[7, 3], "x":11, "y":2, "label":"K"}, + {"matrix":[7, 2], "x":12, "y":2.25, "label":"L"}, + {"matrix":[7, 1], "x":13, "y":2.5, "label":":"}, + {"matrix":[7, 0], "x":14, "y":2.75, "label":"\""}, + + {"matrix":[3, 0], "x":0, "y":3.75, "label":"L_Ctrl"}, + {"matrix":[3, 1], "x":1, "y":3.5, "label":"Z"}, + {"matrix":[3, 2], "x":2, "y":3.25, "label":"X"}, + {"matrix":[3, 3], "x":3, "y":3, "label":"C"}, + {"matrix":[3, 4], "x":4, "y":3.25, "label":"V"}, + {"matrix":[3, 5], "x":5, "y":3.5, "label":"B"}, + + {"matrix":[4, 5], "x":6, "y":3, "label":"Down"}, + {"matrix":[9, 5], "x":8, "y":3, "label":"Up"}, + + {"matrix":[8, 5], "x":9, "y":3.5, "label":"N"}, + {"matrix":[8, 4], "x":10, "y":3.25, "label":"M"}, + {"matrix":[8, 3], "x":11, "y":3, "label":","}, + {"matrix":[8, 2], "x":12, "y":3.25, "label":"."}, + {"matrix":[8, 1], "x":13, "y":3.5, "label":"?"}, + {"matrix":[8, 0], "x":14, "y":3.75, "label":"R_Ctrl"}, + + {"matrix":[4, 1], "x":2.5, "y":4.25, "label":"Win"}, + {"matrix":[4, 2], "x":3.5, "y":4.25, "label":"Lower"}, + {"matrix":[4, 3], "x":4.5, "y":4.5, "label":"Alt"}, + {"matrix":[4, 4], "x":6, "y":4.25, "h":1.25, "label":"Space"}, + + {"matrix":[9, 4], "x":8, "y":4.25, "h":1.25, "label":"Enter"}, + {"matrix":[9, 3], "x":9.5, "y":4.5, "label":"AltGr"}, + {"matrix":[9, 2], "x":10.5, "y":4.25, "label":"Raise"}, + {"matrix":[9, 1], "x":11.5, "y":4.25, "label":"BckSp"}, + ] + } + } +} \ No newline at end of file diff --git a/keyboards/tweetydabird/lotus58/rgb_glow/keymaps/default/keymap.c b/keyboards/tweetydabird/lotus58/rgb_glow/keymaps/default/keymap.c new file mode 100644 index 000000000000..d8853d377bd4 --- /dev/null +++ b/keyboards/tweetydabird/lotus58/rgb_glow/keymaps/default/keymap.c @@ -0,0 +1,204 @@ +// Copyright 2022 Markus Knutsson (@TweetyDaBird) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +void keyboard_post_init_user(void) { + autoshift_disable(); +} + +enum layers { + _QWERTY, + _NUM, + _FN, + _SYS, +}; + +enum custom_keycodes { + KC_QWERTY = SAFE_RANGE, + KC_NUMERIC, + KC_FUNCTION, + KC_SYSTEM, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QWERTY] = LAYOUT( +// _______ _______ +// .----------.----------.----------.----------.----------.----------. / \ / \ .----------.----------.----------.----------.----------.----------. +// | Esc | 1 | 2 | 3 | 4 | 5 |( Media ) ( Media )| 6 | 7 | 8 | 9 | 0 | - | + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, KC_MPLY, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, +// |----------+----------+----------+----------+----------+----------| \_______/ \_______/ |----------+----------+----------+----------+----------+----------| +// | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, +// |----------+----------+----------+----------+----------+----------| |----------+----------+----------+----------+----------+----------| +// | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, +// |----------+----------+----------+----------+----------+----------+-----------. .-----------+----------+----------+----------+----------+----------+----------| +// | <- Ctrl | Z | X | C | V | B | Down | | Up | N | M | , | . | / | Ctrl -> | +LCTL_T(KC_LEFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DOWN, KC_UP, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RCTL_T(KC_RGHT), +// '----------'----------'----------+----------+----------+----------+-.---------' '---------.-+----------+----------+----------+----------'----------'----------' +// | Win | Lower | Alt |/ Space / \ Enter \| AltGr | Raise | Bksp | +// | | | | Shift / \ Shift | | | | + KC_LGUI, TG(_FN), KC_LALT, LSFT_T(KC_SPC),RSFT_T(KC_ENT), KC_RALT, TG(_NUM), MT(MOD_RGUI,KC_BSPC) +// '----------'----------'----------'--------' '--------'----------'----------'----------' +), + +// _______ _______ +// .----------.----------.----------.----------.----------.----------. / \ / \ .----------.----------.----------.----------.----------.----------. +// | Esc | 1 | 2 | 3 | 4 | 5 |( Media ) ( Media )| 6 | 7 | 8 | 9 | 0 | - | +// |----------+----------+----------+----------+----------+----------| \_______/ \_______/ |----------+----------+----------+----------+----------+----------| +// | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | +// |----------+----------+----------+----------+----------+----------| |----------+----------+----------+----------+----------+----------| +// | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | +// |----------+----------+----------+----------+----------+----------+-----------. .-----------+----------+----------+----------+----------+----------+----------| +// | <- Ctrl | Z | X | C | V | B | Down | | Up | N | M | , | . | / | Ctrl -> | +// '----------'----------'----------+----------+----------+----------+-.---------' '---------.-+----------+----------+----------+----------'----------'----------' +// | Win | Lower | Alt |/ Space / \ Enter \| AltGr | Raise | Bksp | +// | | | | Shift / \ Shift | | | | +// '----------'----------'----------'--------' '--------'----------'----------'----------' + + +[_NUM] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_CIRC, KC_KP_7, KC_KP_8, KC_KP_9, XXXXXXX, XXXXXXX, + _______, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, KC_HASH, KC_KP_4, KC_KP_5, KC_KP_6, XXXXXXX, XXXXXXX, + XXXXXXX, KC_LEFT, KC_DOWN, KC_RIGHT, KC_LBRC, KC_RBRC, KC_AMPR, KC_KP_1, KC_KP_2, KC_KP_3, XXXXXXX, XXXXXXX, + _______, XXXXXXX, KC_PAST, KC_PPLS, KC_PSLS, KC_EQL, _______, _______, KC_DLR, KC_KP_0, KC_KP_DOT, KC_COLN, KC_PMNS, _______, + _______, _______, _______, _______, _______, _______, _______, _______ +), + +[_FN] = LAYOUT( +// _______ _______ +// .----------.----------.----------.----------.----------.----------. / \ / \ .----------.----------.----------.----------.----------.----------. +// | Esc | 1 | 2 | 3 | 4 | 5 |( Media ) ( Media )| 6 | 7 | 8 | 9 | 0 | - | + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, +// |----------+----------+----------+----------+----------+----------| \_______/ \_______/ |----------+----------+----------+----------+----------+----------| +// | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// |----------+----------+----------+----------+----------+----------| |----------+----------+----------+----------+----------+----------| +// | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// |----------+----------+----------+----------+----------+----------+-----------. .-----------+----------+----------+----------+----------+----------+----------| +// | <- Ctrl | Z | X | C | V | B | Down | | Up | N | M | , | . | / | Ctrl -> | + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// '----------'----------'----------+----------+----------+----------+-.---------' '---------.-+----------+----------+----------+----------'----------'----------' +// | Win | Lower | Alt |/ Space / \ Enter \| AltGr | Raise | Bksp | +// | | | | Shift / \ Shift | | | | + _______, _______, _______, _______, _______, _______, _______, _______ +// '----------'----------'----------'--------' '--------'----------'----------'----------' +), + +[_SYS] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_SAI, RGB_TOG, + QK_BOOT, XXXXXXX, KC_QWERTY, XXXXXXX, XXXXXXX, KC_ASTG, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RMOD, RGB_SAD, RGB_M_P, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_VAI, RGB_M_B, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUD, RGB_VAD, RGB_M_R, + _______, _______, _______, _______, _______, _______, _______, _______ \ + ) +}; + +#ifdef OLED_ENABLE + +static void render_logo(void) { + static const char PROGMEM qmk_logo[] = { + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, + 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, + 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0 + }; + oled_write_P(qmk_logo, false); +} + + +static void print_status_narrow(void) { + // Create OLED content + oled_write_P(PSTR("\n"), false); + oled_write_P(PSTR(""), false); + oled_write_P(PSTR("Lotus -58-"), false); + oled_write_P(PSTR("\n"), false); + + // Print current layer + oled_write_P(PSTR("Layer"), false); + switch (get_highest_layer(layer_state)) { + case _QWERTY: + oled_write_P(PSTR("-Base\n"), false); + break; + case _FN: + oled_write_P(PSTR("-Func\n"), false); + break; + case _NUM: + oled_write_P(PSTR("-Num \n"), false); + break; + case _SYS: + oled_write_P(PSTR("-Sys \n"), false); + break; + default: + oled_write_P(PSTR("Undef"), false); + } + + // Display autoshift + oled_write_P(PSTR("\n"), false); + led_t led_usb_state = host_keyboard_led_state(); + oled_write_ln_P(PSTR("Caps- lock"), led_usb_state.caps_lock); + bool autoshift = get_autoshift_state(); + oled_write_P(PSTR("\n"), false); + oled_write_P(PSTR("Auto-Shift"), autoshift); + oled_write_P(PSTR("\n"), false); + +} + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + // Rotate OLED to fit + if (is_keyboard_left()) { + return OLED_ROTATION_90; + } + return OLED_ROTATION_270; +} + +bool oled_task_user(void) { + // Render the OLED + if (is_keyboard_master()) { + print_status_narrow(); + } else { + render_logo(); + } + return false; +} + +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // Set base layer + switch (keycode) { + case KC_QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + } + return true; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + // Allow swithcing to the 'hidden' layer + return update_tri_layer_state(state, _NUM, _FN, _SYS); +} + +#ifdef ENCODER_ENABLE + +bool encoder_update_user(uint8_t index, bool clockwise) { + // Encoders + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLD); + } else { + tap_code(KC_VOLU); + } + } else if (index == 1) { + if (clockwise) { + tap_code(KC_VOLD); + } else { + tap_code(KC_VOLU); + } + } + return true; +} + +#endif diff --git a/keyboards/tweetydabird/lotus58/rgb_glow/keymaps/tester/keymap.c b/keyboards/tweetydabird/lotus58/rgb_glow/keymaps/tester/keymap.c new file mode 100644 index 000000000000..9d2e9edb8fee --- /dev/null +++ b/keyboards/tweetydabird/lotus58/rgb_glow/keymaps/tester/keymap.c @@ -0,0 +1,105 @@ +/* Copyright 2021 TweetyDaBird + * + * 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 layers { + _QWERTY +}; + +enum custom_keycodes { + KC_QWERTY = SAFE_RANGE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QWERTY] = LAYOUT( +// _______ _______ +//.----------.--------.--------.--------.--------.--------. / \ / \ .--------.--------.--------.--------.--------.----------. +//| Esc | 1 | 2 | 3 | 4 | 5 || Media | | Media || 6 | 7 | 8 | 9 | 0 | - | + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, KC_MPLY, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, +//|----------+--------+--------+--------+--------+--------| \_______/ \_______/ |--------+--------+--------+--------+--------+----------| +//| Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, +//|----------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+----------| +//| Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, +//|----------+--------+--------+--------+--------+--------+----------. .----------+--------+--------+--------+--------+--------+----------| +//| Ctrl | Z | X | C | V | B | RGB | | RGB | N | M | , | . | / | Ctrl | + KC_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, RGB_TOG, RGB_TOG, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTRL, +//'----------'--------'--------+--------+--------+--------+-.--------' '--------.-+--------+--------+--------+--------'--------'----------' +// | Win | Down | Alt |/ Space / \ Enter \| AltGr | Up | Bksp | + KC_LGUI, KC_DOWN, KC_LALT, KC_SPC, KC_ENT, KC_RALT, KC_UP, KC_BSPC +// '--------'--------'--------'--------' '--------'--------'--------'--------' + ) +}; + +#ifdef OLED_ENABLE + +static void render_logo(void) { + static const char PROGMEM qmk_logo[] = { + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, + 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, + 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0 + }; + + oled_write_P(qmk_logo, false); +} + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (!is_keyboard_left()) { + return OLED_ROTATION_180; + } + return rotation; +} + +bool oled_task_user(void) { + render_logo(); + return false; +} + +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + } + return true; +} + +#ifdef ENCODER_ENABLE + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } else if (index == 1) { + if (clockwise) { + tap_code(KC_LEFT); + } else { + tap_code(KC_RIGHT); + + } + } + return true; +} + +#endif \ No newline at end of file diff --git a/keyboards/tweetydabird/lotus58/rgb_glow/readme.md b/keyboards/tweetydabird/lotus58/rgb_glow/readme.md new file mode 100644 index 000000000000..eb3d3d54a5b8 --- /dev/null +++ b/keyboards/tweetydabird/lotus58/rgb_glow/readme.md @@ -0,0 +1,28 @@ +# Lotus 58 Glow + +![lotus58](https://i.imgur.com/WWgpp0Sh.jpeg) + +* Lotus 58 Glow is a fully programmable 58-key split, ortho-columnar keyboard with a 4x6 main matrix and 4+1 thumb-keys per hand. Optional support for one OLED screen per hand/side showing information such as active layer, CapsLock/NumLock etc. as well as one Rotary Encoder per hand, with optional placement.* + +* Keyboard Maintainer: [TweetyDaBird](https://github.com/TweetyDaBird) +* Hardware Supported: *Lotus 58 Glow v1.11 - 1.24 PCB, Pro Micro or pin-compatible* +* Hardware Availability: [Lectronz Store]https://lectronz.com/stores/tweetys-wild-thinking +* Hardware Design: https://github.com/TweetyDaBird/Lotus58 + +Make example for this keyboard (after setting up your build environment): + + make tweetydabird/lotus58:default + +Flashing example for this keyboard: + + make tweetydabird/lotus58:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top outer key for each hand and plug in the keyboard +* **Physical reset**: Briefly short the marked pads on PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if mapped (not in default keymap) \ No newline at end of file diff --git a/keyboards/tweetydabird/lotus58/rgb_glow/rules.mk b/keyboards/tweetydabird/lotus58/rgb_glow/rules.mk new file mode 100644 index 000000000000..7ff128fa692e --- /dev/null +++ b/keyboards/tweetydabird/lotus58/rgb_glow/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/tweetydabird/lotus58/rgb_matrix/config.h b/keyboards/tweetydabird/lotus58/rgb_matrix/config.h new file mode 100644 index 000000000000..abf94c7239bd --- /dev/null +++ b/keyboards/tweetydabird/lotus58/rgb_matrix/config.h @@ -0,0 +1,30 @@ +// Copyright 2022 Markus Knutsson (@TweetyDaBird) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +# define RGBLED_NUM 58 +# define RGB_MATRIX_SPLIT {29, 29} +# define DRIVER_LED_TOTAL RGBLED_NUM + +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 175 +# 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_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_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT // Sets the default mode, if none has been set +# define RGB_MATRIX_KEYPRESSES // reacts to keypresses +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS // reacts to keyreleases (instead of keypresses) + +# ifdef RGB_MATRIX_FRAMEBUFFER_EFFECTS +# define ENABLE_RGB_MATRIX_TYPING_HEATMAP // How hot is your WPM! +# endif + +# ifdef RGB_MATRIX_KEYPRESSES + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Pulses keys hit to hue & value then fades value out + #endif + +# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +# define ENABLE_RGB_MATRIX_CYCLE_ALL +# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Static gradient left to right, speed controls how much gradient changes diff --git a/keyboards/tweetydabird/lotus58/rgb_matrix/info.json b/keyboards/tweetydabird/lotus58/rgb_matrix/info.json new file mode 100644 index 000000000000..4068c16bd87e --- /dev/null +++ b/keyboards/tweetydabird/lotus58/rgb_matrix/info.json @@ -0,0 +1,161 @@ +{ + "keyboard_name": "Lotus 58 Glow", + "manufacturer": "Tweetys Wild Thinking", + "url": "https://lectronz.com/stores/tweetys-wild-thinking", + "maintainer": "TweetyDaBird", + + "development_board": "promicro", + "bootloader_instructions": "Short marked pads on PCB, or hold top-outer key when plugging in each hand.", + + "debounce": 5, + + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": false, + "nkro": true, + "encoder": true, + "oled": true, + "audio": false, + "split": true, + "magic": false, + "grave_esc": false, + "space_cadet": false + "tap_dance": false, + "auto_shift": true, + "rgb_matrix": true, + }, + + "build": { + "lto": true + }, + + "usb": { + "vid": "0xFEED", + "pid": "0x23B0", + "device_version": "1.2.3", + "force_nkro": true + }, + + "split": { + "enabled": true, + "main": "pin", + "soft_serial_pin": "D2", + + "transport": { + "protocol": "serial", + "sync_matrix_state": true, + "sync_modifiers": true + }, + }, + + "rgb_matrix": { + "driver": "WS2812" + }, + + "rgblight": { + "pin": "D3" + }, + + "encoder": { + "rotary": [ + { "pin_a": "F5", "pin_b": "F4", "resolution": 2 } + { "pin_a": "F4", "pin_b": "F5", "resolution": 2 } + ] + }, + + "qmk": { + "tap_keycode_delay": 10 + }, + + "tapping": { + "term": 175, + "toggle": 2 + }, + + "diode_direction": "COL2ROW", + "matrix_pins": { + "rows": ["D4", "C6", "D7", "E6", "B4"], + "cols": ["B1", "B2", "B3", "B6", "F7", "F6"] + }, + + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix":[0, 0], "x":0, "y":0.75, "label":"Esc"}, + {"matrix":[0, 1], "x":1, "y":0.5, "label":"1"}, + {"matrix":[0, 2], "x":2, "y":0.25, "label":"2"}, + {"matrix":[0, 3], "x":3, "y":0, "label":"3"}, + {"matrix":[0, 4], "x":4, "y":0.25, "label":"4"}, + {"matrix":[0, 5], "x":5, "y":0.5, "label":"5"}, + + {"matrix":[4, 0], "x":6.25, "y":0.75, "label":"Left ENC"}, + {"matrix":[9, 0], "x":7.75, "y":0.75, "label":"Right ENC"}, + + {"matrix":[5, 5], "x":9, "y":0.5, "label":"6"}, + {"matrix":[5, 4], "x":10, "y":0.25, "label":"7"}, + {"matrix":[5, 3], "x":11, "y":0, "label":"8"}, + {"matrix":[5, 2], "x":12, "y":0.25, "label":"9"}, + {"matrix":[5, 1], "x":13, "y":0.5, "label":"0"}, + {"matrix":[5, 0], "x":14, "y":0.75, "label":"-"}, + + {"matrix":[1, 0], "x":0, "y":1.75, "label":"Tab"}, + {"matrix":[1, 1], "x":1, "y":1.5, "label":"Q"}, + {"matrix":[1, 2], "x":2, "y":1.25, "label":"W"}, + {"matrix":[1, 3], "x":3, "y":1, "label":"E"}, + {"matrix":[1, 4], "x":4, "y":1.25, "label":"R"}, + {"matrix":[1, 5], "x":5, "y":1.5, "label":"T"}, + + {"matrix":[6, 5], "x":9, "y":1.5, "label":"Y"}, + {"matrix":[6, 4], "x":10, "y":1.25, "label":"U"}, + {"matrix":[6, 3], "x":11, "y":1, "label":"I"}, + {"matrix":[6, 2], "x":12, "y":1.25, "label":"O"}, + {"matrix":[6, 1], "x":13, "y":1.5, "label":"P"}, + {"matrix":[6, 0], "x":14, "y":1.75, "label":"{"}, + + {"matrix":[2, 0], "x":0, "y":2.75, "label":"Caps Lock"}, + {"matrix":[2, 1], "x":1, "y":2.5, "label":"A"}, + {"matrix":[2, 2], "x":2, "y":2.25, "label":"S"}, + {"matrix":[2, 3], "x":3, "y":2, "label":"D"}, + {"matrix":[2, 4], "x":4, "y":2.25, "label":"F"}, + {"matrix":[2, 5], "x":5, "y":2.5, "label":"G"}, + + {"matrix":[7, 5], "x":9, "y":2.5, "label":"H"}, + {"matrix":[7, 4], "x":10, "y":2.25, "label":"J"}, + {"matrix":[7, 3], "x":11, "y":2, "label":"K"}, + {"matrix":[7, 2], "x":12, "y":2.25, "label":"L"}, + {"matrix":[7, 1], "x":13, "y":2.5, "label":":"}, + {"matrix":[7, 0], "x":14, "y":2.75, "label":"\""}, + + {"matrix":[3, 0], "x":0, "y":3.75, "label":"L_Ctrl"}, + {"matrix":[3, 1], "x":1, "y":3.5, "label":"Z"}, + {"matrix":[3, 2], "x":2, "y":3.25, "label":"X"}, + {"matrix":[3, 3], "x":3, "y":3, "label":"C"}, + {"matrix":[3, 4], "x":4, "y":3.25, "label":"V"}, + {"matrix":[3, 5], "x":5, "y":3.5, "label":"B"}, + + {"matrix":[4, 5], "x":6, "y":3, "label":"Down"}, + {"matrix":[9, 5], "x":8, "y":3, "label":"Up"}, + + {"matrix":[8, 5], "x":9, "y":3.5, "label":"N"}, + {"matrix":[8, 4], "x":10, "y":3.25, "label":"M"}, + {"matrix":[8, 3], "x":11, "y":3, "label":","}, + {"matrix":[8, 2], "x":12, "y":3.25, "label":"."}, + {"matrix":[8, 1], "x":13, "y":3.5, "label":"?"}, + {"matrix":[8, 0], "x":14, "y":3.75, "label":"R_Ctrl"}, + + {"matrix":[4, 1], "x":2.5, "y":4.25, "label":"Win"}, + {"matrix":[4, 2], "x":3.5, "y":4.25, "label":"Lower"}, + {"matrix":[4, 3], "x":4.5, "y":4.5, "label":"Alt"}, + {"matrix":[4, 4], "x":6, "y":4.25, "h":1.25, "label":"Space"}, + + {"matrix":[9, 4], "x":8, "y":4.25, "h":1.25, "label":"Enter"}, + {"matrix":[9, 3], "x":9.5, "y":4.5, "label":"AltGr"}, + {"matrix":[9, 2], "x":10.5, "y":4.25, "label":"Raise"}, + {"matrix":[9, 1], "x":11.5, "y":4.25, "label":"BckSp"}, + ] + } + } +} \ No newline at end of file diff --git a/keyboards/tweetydabird/lotus58/rgb_matrix/keymaps/default/keymap.c b/keyboards/tweetydabird/lotus58/rgb_matrix/keymaps/default/keymap.c new file mode 100644 index 000000000000..9ea1bf20e66d --- /dev/null +++ b/keyboards/tweetydabird/lotus58/rgb_matrix/keymaps/default/keymap.c @@ -0,0 +1,268 @@ +// Copyright 2022 Markus Knutsson (@TweetyDaBird) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +void keyboard_post_init_user(void) { + autoshift_disable(); +} + +enum layers { + _QWERTY, + _NUM, + _FN, + _SYS, +}; + +enum custom_keycodes { + KC_QWERTY = SAFE_RANGE, + KC_NUMERIC, + KC_FUNCTION, + KC_SYSTEM, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QWERTY] = LAYOUT( +// _______ _______ +// .----------.----------.----------.----------.----------.----------. / \ / \ .----------.----------.----------.----------.----------.----------. +// | Esc | 1 | 2 | 3 | 4 | 5 |( Media ) ( Media )| 6 | 7 | 8 | 9 | 0 | - | + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, KC_MPLY, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, +// |----------+----------+----------+----------+----------+----------| \_______/ \_______/ |----------+----------+----------+----------+----------+----------| +// | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, +// |----------+----------+----------+----------+----------+----------| |----------+----------+----------+----------+----------+----------| +// | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, +// |----------+----------+----------+----------+----------+----------+-----------. .-----------+----------+----------+----------+----------+----------+----------| +// | <- Ctrl | Z | X | C | V | B | Down | | Up | N | M | , | . | / | Ctrl -> | +LCTL_T(KC_LEFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DOWN, KC_UP, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RCTL_T(KC_RGHT), +// '----------'----------'----------+----------+----------+----------+-.---------' '---------.-+----------+----------+----------+----------'----------'----------' +// | Win | Lower | Alt |/ Space / \ Enter \| AltGr | Raise | Bksp | +// | | | | Shift / \ Shift | | | | + KC_LGUI, TG(_FN), KC_LALT, LSFT_T(KC_SPC),RSFT_T(KC_ENT), KC_RALT, TG(_NUM), MT(MOD_RGUI,KC_BSPC) +// '----------'----------'----------'--------' '--------'----------'----------'----------' +), + +// _______ _______ +// .----------.----------.----------.----------.----------.----------. / \ / \ .----------.----------.----------.----------.----------.----------. +// | Esc | 1 | 2 | 3 | 4 | 5 |( Media ) ( Media )| 6 | 7 | 8 | 9 | 0 | - | +// |----------+----------+----------+----------+----------+----------| \_______/ \_______/ |----------+----------+----------+----------+----------+----------| +// | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | +// |----------+----------+----------+----------+----------+----------| |----------+----------+----------+----------+----------+----------| +// | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | +// |----------+----------+----------+----------+----------+----------+-----------. .-----------+----------+----------+----------+----------+----------+----------| +// | <- Ctrl | Z | X | C | V | B | Down | | Up | N | M | , | . | / | Ctrl -> | +// '----------'----------'----------+----------+----------+----------+-.---------' '---------.-+----------+----------+----------+----------'----------'----------' +// | Win | Lower | Alt |/ Space / \ Enter \| AltGr | Raise | Bksp | +// | | | | Shift / \ Shift | | | | +// '----------'----------'----------'--------' '--------'----------'----------'----------' + + +[_NUM] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_CIRC, KC_KP_7, KC_KP_8, KC_KP_9, XXXXXXX, XXXXXXX, + _______, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, KC_HASH, KC_KP_4, KC_KP_5, KC_KP_6, XXXXXXX, XXXXXXX, + XXXXXXX, KC_LEFT, KC_DOWN, KC_RIGHT, KC_LBRC, KC_RBRC, KC_AMPR, KC_KP_1, KC_KP_2, KC_KP_3, XXXXXXX, XXXXXXX, + _______, XXXXXXX, KC_PAST, KC_PPLS, KC_PSLS, KC_EQL, _______, _______, KC_DLR, KC_KP_0, KC_KP_DOT, KC_COLN, KC_PMNS, _______, + _______, _______, _______, _______, _______, _______, _______, _______ +), + +[_FN] = LAYOUT( +// _______ _______ +// .----------.----------.----------.----------.----------.----------. / \ / \ .----------.----------.----------.----------.----------.----------. +// | Esc | 1 | 2 | 3 | 4 | 5 |( Media ) ( Media )| 6 | 7 | 8 | 9 | 0 | - | + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, +// |----------+----------+----------+----------+----------+----------| \_______/ \_______/ |----------+----------+----------+----------+----------+----------| +// | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// |----------+----------+----------+----------+----------+----------| |----------+----------+----------+----------+----------+----------| +// | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// |----------+----------+----------+----------+----------+----------+-----------. .-----------+----------+----------+----------+----------+----------+----------| +// | <- Ctrl | Z | X | C | V | B | Down | | Up | N | M | , | . | / | Ctrl -> | + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// '----------'----------'----------+----------+----------+----------+-.---------' '---------.-+----------+----------+----------+----------'----------'----------' +// | Win | Lower | Alt |/ Space / \ Enter \| AltGr | Raise | Bksp | +// | | | | Shift / \ Shift | | | | + _______, _______, _______, _______, _______, _______, _______, _______ +// '----------'----------'----------'--------' '--------'----------'----------'----------' +), + +[_SYS] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_SAI, RGB_TOG, + QK_BOOT, XXXXXXX, KC_QWERTY, XXXXXXX, XXXXXXX, KC_ASTG, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RMOD, RGB_SAD, RGB_M_P, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_VAI, RGB_M_B, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUD, RGB_VAD, RGB_M_R, + _______, _______, _______, _______, _______, _______, _______, _______ \ + ) +}; + +#ifdef OLED_ENABLE + +static void render_logo(void) { + static const char PROGMEM qmk_logo[] = { + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, + 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, + 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0 + }; + oled_write_P(qmk_logo, false); +} + + +static void print_status_narrow(void) { + // Create OLED content + oled_write_P(PSTR("\n"), false); + oled_write_P(PSTR(""), false); + oled_write_P(PSTR("Lotus -58-"), false); + oled_write_P(PSTR("\n"), false); + + // Print current layer + oled_write_P(PSTR("Layer"), false); + switch (get_highest_layer(layer_state)) { + case _QWERTY: + oled_write_P(PSTR("-Base\n"), false); + break; + case _FN: + oled_write_P(PSTR("-Func\n"), false); + break; + case _NUM: + oled_write_P(PSTR("-Num \n"), false); + break; + case _SYS: + oled_write_P(PSTR("-Sys \n"), false); + break; + default: + oled_write_P(PSTR("Undef"), false); + } + + // Display autoshift + oled_write_P(PSTR("\n"), false); + led_t led_usb_state = host_keyboard_led_state(); + oled_write_ln_P(PSTR("Caps- lock"), led_usb_state.caps_lock); + bool autoshift = get_autoshift_state(); + oled_write_P(PSTR("\n"), false); + oled_write_P(PSTR("Auto-Shift"), autoshift); + oled_write_P(PSTR("\n"), false); + +} + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + // Rotate OLED to fit + if (is_keyboard_left()) { + return OLED_ROTATION_90; + } + return OLED_ROTATION_270; +} + +bool oled_task_user(void) { + // Render the OLED + if (is_keyboard_master()) { + print_status_narrow(); + } else { + render_logo(); + } + return false; +} + +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // Set base layer + switch (keycode) { + case KC_QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + } + return true; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + // Allow swithcing to the 'hidden' layer + return update_tri_layer_state(state, _NUM, _FN, _SYS); +} + +#ifdef ENCODER_ENABLE + +bool encoder_update_user(uint8_t index, bool clockwise) { + // Encoders + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLD); + } else { + tap_code(KC_VOLU); + } + } else if (index == 1) { + if (clockwise) { + tap_code(KC_VOLD); + } else { + tap_code(KC_VOLU); + } + } + return true; +} + +#endif + +#ifdef RGB_MATRIX_ENABLE + +#define LED_MATRIX_CENTER {110, 21} + +led_config_t g_led_config = { + { + // Key Matrix to LED Index + { 5, 4, 3, 2, 1, 0}, + { 6, 7, 8, 9, 10, 11}, + {17, 16, 15, 14, 13, 12}, + {18, 19, 20, 21, 22, 23}, + {NO_LED, 28, 27, 26, 25, 24}, + + {34, 33, 32, 31, 30, 29}, + {35, 36, 37, 38, 39, 40}, + {46, 45, 44, 43, 42, 41}, + {47, 48, 49, 50, 51, 52}, + {NO_LED, 57, 56, 55, 54, 53} + }, { + // LED Index to Physical Position + // The default expected range of values for `{ x, y }` is the inclusive range `{ 0..224, 0..64 }` + // 224 / (14 real cols + 6 cols as buffer) ~= 11 per col + // 64 / (5 real rows + 1 row as buffer) ~= 10 per row + + // Left half + { 55, 2}, { 44, 1}, { 33, 0}, { 22, 1}, { 11, 3}, { 0, 4}, + { 0, 14}, { 11, 13}, { 22, 11}, { 33, 10}, { 44, 11}, { 55, 12}, + { 55, 22}, { 44, 21}, { 33, 20}, { 22, 21}, { 11, 23}, { 0, 24}, + { 0, 34}, { 11, 33}, { 22, 31}, { 33, 30}, { 44, 31}, { 55, 32}, + { 70, 27}, { 66, 40}, { 50, 42}, { 39, 41} ,{ 28, 40}, // bottom row, right to left, far outer right key is first + + // Right half + {165, 2}, {176, 1}, {187, 0}, {198, 1}, {209, 3}, {220, 4}, + {220, 14}, {209, 13}, {198, 11}, {187, 10}, {176, 11}, {165, 12}, + {165, 22}, {176, 21}, {187, 20}, {198, 21}, {209, 23}, {220, 24}, + {220, 34}, {209, 33}, {198, 31}, {187, 30}, {176, 31}, {165, 32}, + {150, 27}, {154, 40}, {170, 42}, {181, 41}, {192, 40}, // bottom row, left to right, far outer left key is first + }, { + // LED Index to Flag + 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, + + 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4 + } +}; + +void suspend_power_down_kb(void) { + rgb_matrix_set_suspend_state(true); + suspend_power_down_user(); +} + +void suspend_wakeup_init_kb(void) { + rgb_matrix_set_suspend_state(false); + suspend_wakeup_init_user(); +} +#endif \ No newline at end of file diff --git a/keyboards/tweetydabird/lotus58/rgb_matrix/readme.md b/keyboards/tweetydabird/lotus58/rgb_matrix/readme.md new file mode 100644 index 000000000000..eb3d3d54a5b8 --- /dev/null +++ b/keyboards/tweetydabird/lotus58/rgb_matrix/readme.md @@ -0,0 +1,28 @@ +# Lotus 58 Glow + +![lotus58](https://i.imgur.com/WWgpp0Sh.jpeg) + +* Lotus 58 Glow is a fully programmable 58-key split, ortho-columnar keyboard with a 4x6 main matrix and 4+1 thumb-keys per hand. Optional support for one OLED screen per hand/side showing information such as active layer, CapsLock/NumLock etc. as well as one Rotary Encoder per hand, with optional placement.* + +* Keyboard Maintainer: [TweetyDaBird](https://github.com/TweetyDaBird) +* Hardware Supported: *Lotus 58 Glow v1.11 - 1.24 PCB, Pro Micro or pin-compatible* +* Hardware Availability: [Lectronz Store]https://lectronz.com/stores/tweetys-wild-thinking +* Hardware Design: https://github.com/TweetyDaBird/Lotus58 + +Make example for this keyboard (after setting up your build environment): + + make tweetydabird/lotus58:default + +Flashing example for this keyboard: + + make tweetydabird/lotus58:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top outer key for each hand and plug in the keyboard +* **Physical reset**: Briefly short the marked pads on PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if mapped (not in default keymap) \ No newline at end of file diff --git a/keyboards/tweetydabird/lotus58/rgb_matrix/rules.mk b/keyboards/tweetydabird/lotus58/rgb_matrix/rules.mk new file mode 100644 index 000000000000..7ff128fa692e --- /dev/null +++ b/keyboards/tweetydabird/lotus58/rgb_matrix/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/tweetydabird/lotus58/rgb_none/info.json b/keyboards/tweetydabird/lotus58/rgb_none/info.json new file mode 100644 index 000000000000..96f813d72b54 --- /dev/null +++ b/keyboards/tweetydabird/lotus58/rgb_none/info.json @@ -0,0 +1,153 @@ +{ + "keyboard_name": "Lotus 58 Glow", + "manufacturer": "Tweetys Wild Thinking", + "url": "https://lectronz.com/stores/tweetys-wild-thinking", + "maintainer": "TweetyDaBird", + + "development_board": "promicro", + "bootloader_instructions": "Short marked pads on PCB, or hold top-outer key when plugging in each hand.", + + "debounce": 5, + + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": false, + "nkro": true, + "rgblight": false, + "encoder": true, + "oled": true, + "audio": false, + "split": true, + "magic": false, + "grave_esc": false, + "space_cadet": false + "tap_dance": false, + "auto_shift": true + }, + + "build": { + "lto": true + }, + + "usb": { + "vid": "0xFEED", + "pid": "0x23B0", + "device_version": "1.2.3", + "force_nkro": true + }, + + "split": { + "enabled": true, + "main": "pin", + "soft_serial_pin": "D2", + + "transport": { + "protocol": "serial", + "sync_matrix_state": true, + "sync_modifiers": true + }, + }, + + "encoder": { + "rotary": [ + { "pin_a": "F5", "pin_b": "F4", "resolution": 2 } + { "pin_a": "F4", "pin_b": "F5", "resolution": 2 } + ] + }, + + "qmk": { + "tap_keycode_delay": 10 + }, + + "tapping": { + "term": 175, + "toggle": 2 + }, + + "diode_direction": "COL2ROW", + "matrix_pins": { + "rows": ["D4", "C6", "D7", "E6", "B4"], + "cols": ["B1", "B2", "B3", "B6", "F7", "F6"] + }, + + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix":[0, 0], "x":0, "y":0.75, "label":"Esc"}, + {"matrix":[0, 1], "x":1, "y":0.5, "label":"1"}, + {"matrix":[0, 2], "x":2, "y":0.25, "label":"2"}, + {"matrix":[0, 3], "x":3, "y":0, "label":"3"}, + {"matrix":[0, 4], "x":4, "y":0.25, "label":"4"}, + {"matrix":[0, 5], "x":5, "y":0.5, "label":"5"}, + + {"matrix":[4, 0], "x":6.25, "y":0.75, "label":"Left ENC"}, + {"matrix":[9, 0], "x":7.75, "y":0.75, "label":"Right ENC"}, + + {"matrix":[5, 5], "x":9, "y":0.5, "label":"6"}, + {"matrix":[5, 4], "x":10, "y":0.25, "label":"7"}, + {"matrix":[5, 3], "x":11, "y":0, "label":"8"}, + {"matrix":[5, 2], "x":12, "y":0.25, "label":"9"}, + {"matrix":[5, 1], "x":13, "y":0.5, "label":"0"}, + {"matrix":[5, 0], "x":14, "y":0.75, "label":"-"}, + + {"matrix":[1, 0], "x":0, "y":1.75, "label":"Tab"}, + {"matrix":[1, 1], "x":1, "y":1.5, "label":"Q"}, + {"matrix":[1, 2], "x":2, "y":1.25, "label":"W"}, + {"matrix":[1, 3], "x":3, "y":1, "label":"E"}, + {"matrix":[1, 4], "x":4, "y":1.25, "label":"R"}, + {"matrix":[1, 5], "x":5, "y":1.5, "label":"T"}, + + {"matrix":[6, 5], "x":9, "y":1.5, "label":"Y"}, + {"matrix":[6, 4], "x":10, "y":1.25, "label":"U"}, + {"matrix":[6, 3], "x":11, "y":1, "label":"I"}, + {"matrix":[6, 2], "x":12, "y":1.25, "label":"O"}, + {"matrix":[6, 1], "x":13, "y":1.5, "label":"P"}, + {"matrix":[6, 0], "x":14, "y":1.75, "label":"{"}, + + {"matrix":[2, 0], "x":0, "y":2.75, "label":"Caps Lock"}, + {"matrix":[2, 1], "x":1, "y":2.5, "label":"A"}, + {"matrix":[2, 2], "x":2, "y":2.25, "label":"S"}, + {"matrix":[2, 3], "x":3, "y":2, "label":"D"}, + {"matrix":[2, 4], "x":4, "y":2.25, "label":"F"}, + {"matrix":[2, 5], "x":5, "y":2.5, "label":"G"}, + + {"matrix":[7, 5], "x":9, "y":2.5, "label":"H"}, + {"matrix":[7, 4], "x":10, "y":2.25, "label":"J"}, + {"matrix":[7, 3], "x":11, "y":2, "label":"K"}, + {"matrix":[7, 2], "x":12, "y":2.25, "label":"L"}, + {"matrix":[7, 1], "x":13, "y":2.5, "label":":"}, + {"matrix":[7, 0], "x":14, "y":2.75, "label":"\""}, + + {"matrix":[3, 0], "x":0, "y":3.75, "label":"L_Ctrl"}, + {"matrix":[3, 1], "x":1, "y":3.5, "label":"Z"}, + {"matrix":[3, 2], "x":2, "y":3.25, "label":"X"}, + {"matrix":[3, 3], "x":3, "y":3, "label":"C"}, + {"matrix":[3, 4], "x":4, "y":3.25, "label":"V"}, + {"matrix":[3, 5], "x":5, "y":3.5, "label":"B"}, + + {"matrix":[4, 5], "x":6, "y":3, "label":"Down"}, + {"matrix":[9, 5], "x":8, "y":3, "label":"Up"}, + + {"matrix":[8, 5], "x":9, "y":3.5, "label":"N"}, + {"matrix":[8, 4], "x":10, "y":3.25, "label":"M"}, + {"matrix":[8, 3], "x":11, "y":3, "label":","}, + {"matrix":[8, 2], "x":12, "y":3.25, "label":"."}, + {"matrix":[8, 1], "x":13, "y":3.5, "label":"?"}, + {"matrix":[8, 0], "x":14, "y":3.75, "label":"R_Ctrl"}, + + {"matrix":[4, 1], "x":2.5, "y":4.25, "label":"Win"}, + {"matrix":[4, 2], "x":3.5, "y":4.25, "label":"Lower"}, + {"matrix":[4, 3], "x":4.5, "y":4.5, "label":"Alt"}, + {"matrix":[4, 4], "x":6, "y":4.25, "h":1.25, "label":"Space"}, + + {"matrix":[9, 4], "x":8, "y":4.25, "h":1.25, "label":"Enter"}, + {"matrix":[9, 3], "x":9.5, "y":4.5, "label":"AltGr"}, + {"matrix":[9, 2], "x":10.5, "y":4.25, "label":"Raise"}, + {"matrix":[9, 1], "x":11.5, "y":4.25, "label":"BckSp"}, + ] + } + } +} \ No newline at end of file diff --git a/keyboards/tweetydabird/lotus58/rgb_none/keymaps/default/keymap.c b/keyboards/tweetydabird/lotus58/rgb_none/keymaps/default/keymap.c new file mode 100644 index 000000000000..d8853d377bd4 --- /dev/null +++ b/keyboards/tweetydabird/lotus58/rgb_none/keymaps/default/keymap.c @@ -0,0 +1,204 @@ +// Copyright 2022 Markus Knutsson (@TweetyDaBird) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +void keyboard_post_init_user(void) { + autoshift_disable(); +} + +enum layers { + _QWERTY, + _NUM, + _FN, + _SYS, +}; + +enum custom_keycodes { + KC_QWERTY = SAFE_RANGE, + KC_NUMERIC, + KC_FUNCTION, + KC_SYSTEM, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QWERTY] = LAYOUT( +// _______ _______ +// .----------.----------.----------.----------.----------.----------. / \ / \ .----------.----------.----------.----------.----------.----------. +// | Esc | 1 | 2 | 3 | 4 | 5 |( Media ) ( Media )| 6 | 7 | 8 | 9 | 0 | - | + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, KC_MPLY, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, +// |----------+----------+----------+----------+----------+----------| \_______/ \_______/ |----------+----------+----------+----------+----------+----------| +// | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, +// |----------+----------+----------+----------+----------+----------| |----------+----------+----------+----------+----------+----------| +// | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, +// |----------+----------+----------+----------+----------+----------+-----------. .-----------+----------+----------+----------+----------+----------+----------| +// | <- Ctrl | Z | X | C | V | B | Down | | Up | N | M | , | . | / | Ctrl -> | +LCTL_T(KC_LEFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DOWN, KC_UP, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RCTL_T(KC_RGHT), +// '----------'----------'----------+----------+----------+----------+-.---------' '---------.-+----------+----------+----------+----------'----------'----------' +// | Win | Lower | Alt |/ Space / \ Enter \| AltGr | Raise | Bksp | +// | | | | Shift / \ Shift | | | | + KC_LGUI, TG(_FN), KC_LALT, LSFT_T(KC_SPC),RSFT_T(KC_ENT), KC_RALT, TG(_NUM), MT(MOD_RGUI,KC_BSPC) +// '----------'----------'----------'--------' '--------'----------'----------'----------' +), + +// _______ _______ +// .----------.----------.----------.----------.----------.----------. / \ / \ .----------.----------.----------.----------.----------.----------. +// | Esc | 1 | 2 | 3 | 4 | 5 |( Media ) ( Media )| 6 | 7 | 8 | 9 | 0 | - | +// |----------+----------+----------+----------+----------+----------| \_______/ \_______/ |----------+----------+----------+----------+----------+----------| +// | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | +// |----------+----------+----------+----------+----------+----------| |----------+----------+----------+----------+----------+----------| +// | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | +// |----------+----------+----------+----------+----------+----------+-----------. .-----------+----------+----------+----------+----------+----------+----------| +// | <- Ctrl | Z | X | C | V | B | Down | | Up | N | M | , | . | / | Ctrl -> | +// '----------'----------'----------+----------+----------+----------+-.---------' '---------.-+----------+----------+----------+----------'----------'----------' +// | Win | Lower | Alt |/ Space / \ Enter \| AltGr | Raise | Bksp | +// | | | | Shift / \ Shift | | | | +// '----------'----------'----------'--------' '--------'----------'----------'----------' + + +[_NUM] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_CIRC, KC_KP_7, KC_KP_8, KC_KP_9, XXXXXXX, XXXXXXX, + _______, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, KC_HASH, KC_KP_4, KC_KP_5, KC_KP_6, XXXXXXX, XXXXXXX, + XXXXXXX, KC_LEFT, KC_DOWN, KC_RIGHT, KC_LBRC, KC_RBRC, KC_AMPR, KC_KP_1, KC_KP_2, KC_KP_3, XXXXXXX, XXXXXXX, + _______, XXXXXXX, KC_PAST, KC_PPLS, KC_PSLS, KC_EQL, _______, _______, KC_DLR, KC_KP_0, KC_KP_DOT, KC_COLN, KC_PMNS, _______, + _______, _______, _______, _______, _______, _______, _______, _______ +), + +[_FN] = LAYOUT( +// _______ _______ +// .----------.----------.----------.----------.----------.----------. / \ / \ .----------.----------.----------.----------.----------.----------. +// | Esc | 1 | 2 | 3 | 4 | 5 |( Media ) ( Media )| 6 | 7 | 8 | 9 | 0 | - | + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, +// |----------+----------+----------+----------+----------+----------| \_______/ \_______/ |----------+----------+----------+----------+----------+----------| +// | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// |----------+----------+----------+----------+----------+----------| |----------+----------+----------+----------+----------+----------| +// | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// |----------+----------+----------+----------+----------+----------+-----------. .-----------+----------+----------+----------+----------+----------+----------| +// | <- Ctrl | Z | X | C | V | B | Down | | Up | N | M | , | . | / | Ctrl -> | + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// '----------'----------'----------+----------+----------+----------+-.---------' '---------.-+----------+----------+----------+----------'----------'----------' +// | Win | Lower | Alt |/ Space / \ Enter \| AltGr | Raise | Bksp | +// | | | | Shift / \ Shift | | | | + _______, _______, _______, _______, _______, _______, _______, _______ +// '----------'----------'----------'--------' '--------'----------'----------'----------' +), + +[_SYS] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_SAI, RGB_TOG, + QK_BOOT, XXXXXXX, KC_QWERTY, XXXXXXX, XXXXXXX, KC_ASTG, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RMOD, RGB_SAD, RGB_M_P, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_VAI, RGB_M_B, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUD, RGB_VAD, RGB_M_R, + _______, _______, _______, _______, _______, _______, _______, _______ \ + ) +}; + +#ifdef OLED_ENABLE + +static void render_logo(void) { + static const char PROGMEM qmk_logo[] = { + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, + 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, + 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0 + }; + oled_write_P(qmk_logo, false); +} + + +static void print_status_narrow(void) { + // Create OLED content + oled_write_P(PSTR("\n"), false); + oled_write_P(PSTR(""), false); + oled_write_P(PSTR("Lotus -58-"), false); + oled_write_P(PSTR("\n"), false); + + // Print current layer + oled_write_P(PSTR("Layer"), false); + switch (get_highest_layer(layer_state)) { + case _QWERTY: + oled_write_P(PSTR("-Base\n"), false); + break; + case _FN: + oled_write_P(PSTR("-Func\n"), false); + break; + case _NUM: + oled_write_P(PSTR("-Num \n"), false); + break; + case _SYS: + oled_write_P(PSTR("-Sys \n"), false); + break; + default: + oled_write_P(PSTR("Undef"), false); + } + + // Display autoshift + oled_write_P(PSTR("\n"), false); + led_t led_usb_state = host_keyboard_led_state(); + oled_write_ln_P(PSTR("Caps- lock"), led_usb_state.caps_lock); + bool autoshift = get_autoshift_state(); + oled_write_P(PSTR("\n"), false); + oled_write_P(PSTR("Auto-Shift"), autoshift); + oled_write_P(PSTR("\n"), false); + +} + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + // Rotate OLED to fit + if (is_keyboard_left()) { + return OLED_ROTATION_90; + } + return OLED_ROTATION_270; +} + +bool oled_task_user(void) { + // Render the OLED + if (is_keyboard_master()) { + print_status_narrow(); + } else { + render_logo(); + } + return false; +} + +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // Set base layer + switch (keycode) { + case KC_QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + } + return true; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + // Allow swithcing to the 'hidden' layer + return update_tri_layer_state(state, _NUM, _FN, _SYS); +} + +#ifdef ENCODER_ENABLE + +bool encoder_update_user(uint8_t index, bool clockwise) { + // Encoders + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLD); + } else { + tap_code(KC_VOLU); + } + } else if (index == 1) { + if (clockwise) { + tap_code(KC_VOLD); + } else { + tap_code(KC_VOLU); + } + } + return true; +} + +#endif diff --git a/keyboards/tweetydabird/lotus58/rgb_none/readme.md b/keyboards/tweetydabird/lotus58/rgb_none/readme.md new file mode 100644 index 000000000000..eb3d3d54a5b8 --- /dev/null +++ b/keyboards/tweetydabird/lotus58/rgb_none/readme.md @@ -0,0 +1,28 @@ +# Lotus 58 Glow + +![lotus58](https://i.imgur.com/WWgpp0Sh.jpeg) + +* Lotus 58 Glow is a fully programmable 58-key split, ortho-columnar keyboard with a 4x6 main matrix and 4+1 thumb-keys per hand. Optional support for one OLED screen per hand/side showing information such as active layer, CapsLock/NumLock etc. as well as one Rotary Encoder per hand, with optional placement.* + +* Keyboard Maintainer: [TweetyDaBird](https://github.com/TweetyDaBird) +* Hardware Supported: *Lotus 58 Glow v1.11 - 1.24 PCB, Pro Micro or pin-compatible* +* Hardware Availability: [Lectronz Store]https://lectronz.com/stores/tweetys-wild-thinking +* Hardware Design: https://github.com/TweetyDaBird/Lotus58 + +Make example for this keyboard (after setting up your build environment): + + make tweetydabird/lotus58:default + +Flashing example for this keyboard: + + make tweetydabird/lotus58:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top outer key for each hand and plug in the keyboard +* **Physical reset**: Briefly short the marked pads on PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if mapped (not in default keymap) \ No newline at end of file diff --git a/keyboards/tweetydabird/lotus58/rgb_none/rules.mk b/keyboards/tweetydabird/lotus58/rgb_none/rules.mk new file mode 100644 index 000000000000..7ff128fa692e --- /dev/null +++ b/keyboards/tweetydabird/lotus58/rgb_none/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file From 65ab2d208556aaea31f638183ddcccb01f26e89b Mon Sep 17 00:00:00 2001 From: Markus Knutsson Date: Fri, 7 Oct 2022 08:52:01 +0200 Subject: [PATCH 21/33] Update keyboards/tweetydabird/lotus58/readme.md Co-authored-by: Drashna Jaelre --- keyboards/tweetydabird/lotus58/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/tweetydabird/lotus58/readme.md b/keyboards/tweetydabird/lotus58/readme.md index eb3d3d54a5b8..3d82afdca2c9 100644 --- a/keyboards/tweetydabird/lotus58/readme.md +++ b/keyboards/tweetydabird/lotus58/readme.md @@ -6,8 +6,8 @@ * Keyboard Maintainer: [TweetyDaBird](https://github.com/TweetyDaBird) * Hardware Supported: *Lotus 58 Glow v1.11 - 1.24 PCB, Pro Micro or pin-compatible* -* Hardware Availability: [Lectronz Store]https://lectronz.com/stores/tweetys-wild-thinking -* Hardware Design: https://github.com/TweetyDaBird/Lotus58 +* Hardware Availability: [Lectronz Store](https://lectronz.com/stores/tweetys-wild-thinking) +* Hardware Design: [link](https://github.com/TweetyDaBird/Lotus58) Make example for this keyboard (after setting up your build environment): From 8c6a61d46062b0809a1b95e9a578e740d5217932 Mon Sep 17 00:00:00 2001 From: Markus Knutsson Date: Fri, 7 Oct 2022 08:52:52 +0200 Subject: [PATCH 22/33] Update keyboards/tweetydabird/lotus58/rgb_full/readme.md Co-authored-by: Drashna Jaelre --- keyboards/tweetydabird/lotus58/rgb_full/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/tweetydabird/lotus58/rgb_full/readme.md b/keyboards/tweetydabird/lotus58/rgb_full/readme.md index eb3d3d54a5b8..d19774698308 100644 --- a/keyboards/tweetydabird/lotus58/rgb_full/readme.md +++ b/keyboards/tweetydabird/lotus58/rgb_full/readme.md @@ -6,8 +6,8 @@ * Keyboard Maintainer: [TweetyDaBird](https://github.com/TweetyDaBird) * Hardware Supported: *Lotus 58 Glow v1.11 - 1.24 PCB, Pro Micro or pin-compatible* -* Hardware Availability: [Lectronz Store]https://lectronz.com/stores/tweetys-wild-thinking -* Hardware Design: https://github.com/TweetyDaBird/Lotus58 +* Hardware Availability: [Lectronz Store](https://lectronz.com/stores/tweetys-wild-thinking) +* Hardware Design: [Link](https://github.com/TweetyDaBird/Lotus58) Make example for this keyboard (after setting up your build environment): From 61c8bb6755b6433881d64afd5dd4ede76553f401 Mon Sep 17 00:00:00 2001 From: Markus Knutsson Date: Fri, 7 Oct 2022 08:53:00 +0200 Subject: [PATCH 23/33] Update keyboards/tweetydabird/lotus58/rgb_none/readme.md Co-authored-by: Drashna Jaelre --- keyboards/tweetydabird/lotus58/rgb_none/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/tweetydabird/lotus58/rgb_none/readme.md b/keyboards/tweetydabird/lotus58/rgb_none/readme.md index eb3d3d54a5b8..d19774698308 100644 --- a/keyboards/tweetydabird/lotus58/rgb_none/readme.md +++ b/keyboards/tweetydabird/lotus58/rgb_none/readme.md @@ -6,8 +6,8 @@ * Keyboard Maintainer: [TweetyDaBird](https://github.com/TweetyDaBird) * Hardware Supported: *Lotus 58 Glow v1.11 - 1.24 PCB, Pro Micro or pin-compatible* -* Hardware Availability: [Lectronz Store]https://lectronz.com/stores/tweetys-wild-thinking -* Hardware Design: https://github.com/TweetyDaBird/Lotus58 +* Hardware Availability: [Lectronz Store](https://lectronz.com/stores/tweetys-wild-thinking) +* Hardware Design: [Link](https://github.com/TweetyDaBird/Lotus58) Make example for this keyboard (after setting up your build environment): From b4cbc3af71d3a53b474cb51c21bdf64f315e1105 Mon Sep 17 00:00:00 2001 From: Markus Knutsson Date: Fri, 7 Oct 2022 08:53:10 +0200 Subject: [PATCH 24/33] Update keyboards/tweetydabird/lotus58/rgb_matrix/readme.md Co-authored-by: Drashna Jaelre --- keyboards/tweetydabird/lotus58/rgb_matrix/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/tweetydabird/lotus58/rgb_matrix/readme.md b/keyboards/tweetydabird/lotus58/rgb_matrix/readme.md index eb3d3d54a5b8..d19774698308 100644 --- a/keyboards/tweetydabird/lotus58/rgb_matrix/readme.md +++ b/keyboards/tweetydabird/lotus58/rgb_matrix/readme.md @@ -6,8 +6,8 @@ * Keyboard Maintainer: [TweetyDaBird](https://github.com/TweetyDaBird) * Hardware Supported: *Lotus 58 Glow v1.11 - 1.24 PCB, Pro Micro or pin-compatible* -* Hardware Availability: [Lectronz Store]https://lectronz.com/stores/tweetys-wild-thinking -* Hardware Design: https://github.com/TweetyDaBird/Lotus58 +* Hardware Availability: [Lectronz Store](https://lectronz.com/stores/tweetys-wild-thinking) +* Hardware Design: [Link](https://github.com/TweetyDaBird/Lotus58) Make example for this keyboard (after setting up your build environment): From d3c183cca386daf46f3ba5e7491c6cff2ff9d7f5 Mon Sep 17 00:00:00 2001 From: TweetyDaBird Date: Fri, 7 Oct 2022 15:47:58 +0200 Subject: [PATCH 25/33] Moved code from keymap --- keyboards/tweetydabird/lbs4/info.json | 38 ++- keyboards/tweetydabird/lotus58/config.h | 2 +- .../{rgb_full => }/keymaps/default/keymap.c | 110 +------ .../{rgb_full => }/keymaps/tester/keymap.c | 0 keyboards/tweetydabird/lotus58/lotus58.c | 75 +++++ .../lotus58/rgb_glow/keymaps/default/keymap.c | 204 ------------- .../lotus58/rgb_glow/keymaps/tester/keymap.c | 105 ------- .../rgb_matrix/keymaps/default/keymap.c | 268 ------------------ .../lotus58/rgb_none/keymaps/default/keymap.c | 204 ------------- 9 files changed, 106 insertions(+), 900 deletions(-) rename keyboards/tweetydabird/lotus58/{rgb_full => }/keymaps/default/keymap.c (76%) rename keyboards/tweetydabird/lotus58/{rgb_full => }/keymaps/tester/keymap.c (100%) create mode 100644 keyboards/tweetydabird/lotus58/lotus58.c delete mode 100644 keyboards/tweetydabird/lotus58/rgb_glow/keymaps/default/keymap.c delete mode 100644 keyboards/tweetydabird/lotus58/rgb_glow/keymaps/tester/keymap.c delete mode 100644 keyboards/tweetydabird/lotus58/rgb_matrix/keymaps/default/keymap.c delete mode 100644 keyboards/tweetydabird/lotus58/rgb_none/keymaps/default/keymap.c diff --git a/keyboards/tweetydabird/lbs4/info.json b/keyboards/tweetydabird/lbs4/info.json index 4d495e8b2284..85fd10bee443 100644 --- a/keyboards/tweetydabird/lbs4/info.json +++ b/keyboards/tweetydabird/lbs4/info.json @@ -7,6 +7,16 @@ "development_board": "promicro", "bootloader_instructions": "Short marked pads on PCB, or hold top left key when plugging in.", + "keyboard_folder": "tweetydabird/lbs4", + + "usb": { + "vid": "0xFEED", + "pid": "0x23B0", + "device_version": "1.1.0" + }, + + "debounce": 5, + "features": { "bootmagic": true, "command": false, @@ -22,21 +32,6 @@ "lto": true }, - "debounce": 5, - - "usb": { - "vid": "0xFEED", - "pid": "0x23B0", - "device_version": "1.1.0" - }, - - "matrix_pins": { - "direct": [ - ["E6", "D7", "F4"], - ["B5", "B4", null] - ] - }, - "encoder": { "rotary": [ { @@ -62,6 +57,19 @@ } }, + "matrix_pins": { + "direct": [ + ["E6", "D7", "F4"], + ["B5", "B4", null] + ] + }, + + "matrix_size": { + "cols": 3, + "rows": 2 + }, + + "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/tweetydabird/lotus58/config.h b/keyboards/tweetydabird/lotus58/config.h index 1ffd870b8cd0..d78df0616d16 100644 --- a/keyboards/tweetydabird/lotus58/config.h +++ b/keyboards/tweetydabird/lotus58/config.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -//#include "config_common.h" +#include "config_common.h" // Not working correct in json implementation #define SPLIT_USB_DETECT diff --git a/keyboards/tweetydabird/lotus58/rgb_full/keymaps/default/keymap.c b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c similarity index 76% rename from keyboards/tweetydabird/lotus58/rgb_full/keymaps/default/keymap.c rename to keyboards/tweetydabird/lotus58/keymaps/default/keymap.c index d8853d377bd4..d03c2f8541a4 100644 --- a/keyboards/tweetydabird/lotus58/rgb_full/keymaps/default/keymap.c +++ b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c @@ -95,110 +95,14 @@ LCTL_T(KC_LEFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DOWN, ) }; -#ifdef OLED_ENABLE - -static void render_logo(void) { - static const char PROGMEM qmk_logo[] = { - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, - 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, - 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0 - }; - oled_write_P(qmk_logo, false); -} - - -static void print_status_narrow(void) { - // Create OLED content - oled_write_P(PSTR("\n"), false); - oled_write_P(PSTR(""), false); - oled_write_P(PSTR("Lotus -58-"), false); - oled_write_P(PSTR("\n"), false); - - // Print current layer - oled_write_P(PSTR("Layer"), false); - switch (get_highest_layer(layer_state)) { - case _QWERTY: - oled_write_P(PSTR("-Base\n"), false); - break; - case _FN: - oled_write_P(PSTR("-Func\n"), false); - break; - case _NUM: - oled_write_P(PSTR("-Num \n"), false); - break; - case _SYS: - oled_write_P(PSTR("-Sys \n"), false); - break; - default: - oled_write_P(PSTR("Undef"), false); - } - - // Display autoshift - oled_write_P(PSTR("\n"), false); - led_t led_usb_state = host_keyboard_led_state(); - oled_write_ln_P(PSTR("Caps- lock"), led_usb_state.caps_lock); - bool autoshift = get_autoshift_state(); - oled_write_P(PSTR("\n"), false); - oled_write_P(PSTR("Auto-Shift"), autoshift); - oled_write_P(PSTR("\n"), false); - -} - -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - // Rotate OLED to fit - if (is_keyboard_left()) { - return OLED_ROTATION_90; - } - return OLED_ROTATION_270; -} - -bool oled_task_user(void) { - // Render the OLED - if (is_keyboard_master()) { - print_status_narrow(); - } else { - render_logo(); - } - return false; -} - +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_QWERTY] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_NUM] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_FN] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_SYS] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } +}; #endif -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - // Set base layer - switch (keycode) { - case KC_QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - } - return true; -} -layer_state_t layer_state_set_user(layer_state_t state) { - // Allow swithcing to the 'hidden' layer - return update_tri_layer_state(state, _NUM, _FN, _SYS); -} -#ifdef ENCODER_ENABLE - -bool encoder_update_user(uint8_t index, bool clockwise) { - // Encoders - if (index == 0) { - if (clockwise) { - tap_code(KC_VOLD); - } else { - tap_code(KC_VOLU); - } - } else if (index == 1) { - if (clockwise) { - tap_code(KC_VOLD); - } else { - tap_code(KC_VOLU); - } - } - return true; -} - -#endif diff --git a/keyboards/tweetydabird/lotus58/rgb_full/keymaps/tester/keymap.c b/keyboards/tweetydabird/lotus58/keymaps/tester/keymap.c similarity index 100% rename from keyboards/tweetydabird/lotus58/rgb_full/keymaps/tester/keymap.c rename to keyboards/tweetydabird/lotus58/keymaps/tester/keymap.c diff --git a/keyboards/tweetydabird/lotus58/lotus58.c b/keyboards/tweetydabird/lotus58/lotus58.c new file mode 100644 index 000000000000..c25dc400e7de --- /dev/null +++ b/keyboards/tweetydabird/lotus58/lotus58.c @@ -0,0 +1,75 @@ +// Copyright 2022 Markus Knutsson (@TweetyDaBird) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + // Rotate OLED to fit + if (is_keyboard_left()) { + return OLED_ROTATION_90; + } + return OLED_ROTATION_270; +} + +void render_logo(void) { + // QMK Logo + static const char PROGMEM qmk_logo[] = { + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, + 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, + 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0 + }; + oled_write_P(qmk_logo, false); +} + +static void print_status_narrow(void) { + // Create OLED content + oled_write_P(PSTR("\n"), false); + oled_write_P(PSTR(""), false); + oled_write_P(PSTR("Lotus -58-"), false); + oled_write_P(PSTR("\n"), false); + + // Print current layer + oled_write_P(PSTR("Layer"), false); + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR("-Base\n"), false); + break; + case 1: + oled_write_P(PSTR("-Func\n"), false); + break; + case 2: + oled_write_P(PSTR("-Num \n"), false); + break; + case 3: + oled_write_P(PSTR("-Sys \n"), false); + break; + default: + oled_write_P(PSTR("Undef"), false); + } + + // Display autoshift + oled_write_P(PSTR("\n"), false); + led_t led_usb_state = host_keyboard_led_state(); + oled_write_ln_P(PSTR("Caps- lock"), led_usb_state.caps_lock); + bool autoshift = get_autoshift_state(); + oled_write_P(PSTR("\n"), false); + oled_write_P(PSTR("Auto-Shift"), autoshift); + oled_write_P(PSTR("\n"), false); + +} + +bool oled_task_kb(void) { + // Render the OLED + if (is_keyboard_master()) { + print_status_narrow(); + } else { + print_status_narrow(); + //render_logo(); + } + return false; +} + +layer_state_t layer_state_set_kb(layer_state_t state) { + // Allow switching to the 'hidden' layer + return update_tri_layer_state(state, 1, 2, 3); +} \ No newline at end of file diff --git a/keyboards/tweetydabird/lotus58/rgb_glow/keymaps/default/keymap.c b/keyboards/tweetydabird/lotus58/rgb_glow/keymaps/default/keymap.c deleted file mode 100644 index d8853d377bd4..000000000000 --- a/keyboards/tweetydabird/lotus58/rgb_glow/keymaps/default/keymap.c +++ /dev/null @@ -1,204 +0,0 @@ -// Copyright 2022 Markus Knutsson (@TweetyDaBird) -// SPDX-License-Identifier: GPL-2.0-or-later -#include QMK_KEYBOARD_H - -void keyboard_post_init_user(void) { - autoshift_disable(); -} - -enum layers { - _QWERTY, - _NUM, - _FN, - _SYS, -}; - -enum custom_keycodes { - KC_QWERTY = SAFE_RANGE, - KC_NUMERIC, - KC_FUNCTION, - KC_SYSTEM, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QWERTY] = LAYOUT( -// _______ _______ -// .----------.----------.----------.----------.----------.----------. / \ / \ .----------.----------.----------.----------.----------.----------. -// | Esc | 1 | 2 | 3 | 4 | 5 |( Media ) ( Media )| 6 | 7 | 8 | 9 | 0 | - | - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, KC_MPLY, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, -// |----------+----------+----------+----------+----------+----------| \_______/ \_______/ |----------+----------+----------+----------+----------+----------| -// | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, -// |----------+----------+----------+----------+----------+----------| |----------+----------+----------+----------+----------+----------| -// | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, -// |----------+----------+----------+----------+----------+----------+-----------. .-----------+----------+----------+----------+----------+----------+----------| -// | <- Ctrl | Z | X | C | V | B | Down | | Up | N | M | , | . | / | Ctrl -> | -LCTL_T(KC_LEFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DOWN, KC_UP, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RCTL_T(KC_RGHT), -// '----------'----------'----------+----------+----------+----------+-.---------' '---------.-+----------+----------+----------+----------'----------'----------' -// | Win | Lower | Alt |/ Space / \ Enter \| AltGr | Raise | Bksp | -// | | | | Shift / \ Shift | | | | - KC_LGUI, TG(_FN), KC_LALT, LSFT_T(KC_SPC),RSFT_T(KC_ENT), KC_RALT, TG(_NUM), MT(MOD_RGUI,KC_BSPC) -// '----------'----------'----------'--------' '--------'----------'----------'----------' -), - -// _______ _______ -// .----------.----------.----------.----------.----------.----------. / \ / \ .----------.----------.----------.----------.----------.----------. -// | Esc | 1 | 2 | 3 | 4 | 5 |( Media ) ( Media )| 6 | 7 | 8 | 9 | 0 | - | -// |----------+----------+----------+----------+----------+----------| \_______/ \_______/ |----------+----------+----------+----------+----------+----------| -// | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | -// |----------+----------+----------+----------+----------+----------| |----------+----------+----------+----------+----------+----------| -// | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | -// |----------+----------+----------+----------+----------+----------+-----------. .-----------+----------+----------+----------+----------+----------+----------| -// | <- Ctrl | Z | X | C | V | B | Down | | Up | N | M | , | . | / | Ctrl -> | -// '----------'----------'----------+----------+----------+----------+-.---------' '---------.-+----------+----------+----------+----------'----------'----------' -// | Win | Lower | Alt |/ Space / \ Enter \| AltGr | Raise | Bksp | -// | | | | Shift / \ Shift | | | | -// '----------'----------'----------'--------' '--------'----------'----------'----------' - - -[_NUM] = LAYOUT( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_CIRC, KC_KP_7, KC_KP_8, KC_KP_9, XXXXXXX, XXXXXXX, - _______, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, KC_HASH, KC_KP_4, KC_KP_5, KC_KP_6, XXXXXXX, XXXXXXX, - XXXXXXX, KC_LEFT, KC_DOWN, KC_RIGHT, KC_LBRC, KC_RBRC, KC_AMPR, KC_KP_1, KC_KP_2, KC_KP_3, XXXXXXX, XXXXXXX, - _______, XXXXXXX, KC_PAST, KC_PPLS, KC_PSLS, KC_EQL, _______, _______, KC_DLR, KC_KP_0, KC_KP_DOT, KC_COLN, KC_PMNS, _______, - _______, _______, _______, _______, _______, _______, _______, _______ -), - -[_FN] = LAYOUT( -// _______ _______ -// .----------.----------.----------.----------.----------.----------. / \ / \ .----------.----------.----------.----------.----------.----------. -// | Esc | 1 | 2 | 3 | 4 | 5 |( Media ) ( Media )| 6 | 7 | 8 | 9 | 0 | - | - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, -// |----------+----------+----------+----------+----------+----------| \_______/ \_______/ |----------+----------+----------+----------+----------+----------| -// | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// |----------+----------+----------+----------+----------+----------| |----------+----------+----------+----------+----------+----------| -// | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// |----------+----------+----------+----------+----------+----------+-----------. .-----------+----------+----------+----------+----------+----------+----------| -// | <- Ctrl | Z | X | C | V | B | Down | | Up | N | M | , | . | / | Ctrl -> | - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// '----------'----------'----------+----------+----------+----------+-.---------' '---------.-+----------+----------+----------+----------'----------'----------' -// | Win | Lower | Alt |/ Space / \ Enter \| AltGr | Raise | Bksp | -// | | | | Shift / \ Shift | | | | - _______, _______, _______, _______, _______, _______, _______, _______ -// '----------'----------'----------'--------' '--------'----------'----------'----------' -), - -[_SYS] = LAYOUT( - XXXXXXX, XXXXXXX, XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_SAI, RGB_TOG, - QK_BOOT, XXXXXXX, KC_QWERTY, XXXXXXX, XXXXXXX, KC_ASTG, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RMOD, RGB_SAD, RGB_M_P, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_VAI, RGB_M_B, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUD, RGB_VAD, RGB_M_R, - _______, _______, _______, _______, _______, _______, _______, _______ \ - ) -}; - -#ifdef OLED_ENABLE - -static void render_logo(void) { - static const char PROGMEM qmk_logo[] = { - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, - 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, - 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0 - }; - oled_write_P(qmk_logo, false); -} - - -static void print_status_narrow(void) { - // Create OLED content - oled_write_P(PSTR("\n"), false); - oled_write_P(PSTR(""), false); - oled_write_P(PSTR("Lotus -58-"), false); - oled_write_P(PSTR("\n"), false); - - // Print current layer - oled_write_P(PSTR("Layer"), false); - switch (get_highest_layer(layer_state)) { - case _QWERTY: - oled_write_P(PSTR("-Base\n"), false); - break; - case _FN: - oled_write_P(PSTR("-Func\n"), false); - break; - case _NUM: - oled_write_P(PSTR("-Num \n"), false); - break; - case _SYS: - oled_write_P(PSTR("-Sys \n"), false); - break; - default: - oled_write_P(PSTR("Undef"), false); - } - - // Display autoshift - oled_write_P(PSTR("\n"), false); - led_t led_usb_state = host_keyboard_led_state(); - oled_write_ln_P(PSTR("Caps- lock"), led_usb_state.caps_lock); - bool autoshift = get_autoshift_state(); - oled_write_P(PSTR("\n"), false); - oled_write_P(PSTR("Auto-Shift"), autoshift); - oled_write_P(PSTR("\n"), false); - -} - -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - // Rotate OLED to fit - if (is_keyboard_left()) { - return OLED_ROTATION_90; - } - return OLED_ROTATION_270; -} - -bool oled_task_user(void) { - // Render the OLED - if (is_keyboard_master()) { - print_status_narrow(); - } else { - render_logo(); - } - return false; -} - -#endif - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - // Set base layer - switch (keycode) { - case KC_QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - } - return true; -} - -layer_state_t layer_state_set_user(layer_state_t state) { - // Allow swithcing to the 'hidden' layer - return update_tri_layer_state(state, _NUM, _FN, _SYS); -} - -#ifdef ENCODER_ENABLE - -bool encoder_update_user(uint8_t index, bool clockwise) { - // Encoders - if (index == 0) { - if (clockwise) { - tap_code(KC_VOLD); - } else { - tap_code(KC_VOLU); - } - } else if (index == 1) { - if (clockwise) { - tap_code(KC_VOLD); - } else { - tap_code(KC_VOLU); - } - } - return true; -} - -#endif diff --git a/keyboards/tweetydabird/lotus58/rgb_glow/keymaps/tester/keymap.c b/keyboards/tweetydabird/lotus58/rgb_glow/keymaps/tester/keymap.c deleted file mode 100644 index 9d2e9edb8fee..000000000000 --- a/keyboards/tweetydabird/lotus58/rgb_glow/keymaps/tester/keymap.c +++ /dev/null @@ -1,105 +0,0 @@ -/* Copyright 2021 TweetyDaBird - * - * 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 layers { - _QWERTY -}; - -enum custom_keycodes { - KC_QWERTY = SAFE_RANGE -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QWERTY] = LAYOUT( -// _______ _______ -//.----------.--------.--------.--------.--------.--------. / \ / \ .--------.--------.--------.--------.--------.----------. -//| Esc | 1 | 2 | 3 | 4 | 5 || Media | | Media || 6 | 7 | 8 | 9 | 0 | - | - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, KC_MPLY, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, -//|----------+--------+--------+--------+--------+--------| \_______/ \_______/ |--------+--------+--------+--------+--------+----------| -//| Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, -//|----------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+----------| -//| Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, -//|----------+--------+--------+--------+--------+--------+----------. .----------+--------+--------+--------+--------+--------+----------| -//| Ctrl | Z | X | C | V | B | RGB | | RGB | N | M | , | . | / | Ctrl | - KC_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, RGB_TOG, RGB_TOG, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTRL, -//'----------'--------'--------+--------+--------+--------+-.--------' '--------.-+--------+--------+--------+--------'--------'----------' -// | Win | Down | Alt |/ Space / \ Enter \| AltGr | Up | Bksp | - KC_LGUI, KC_DOWN, KC_LALT, KC_SPC, KC_ENT, KC_RALT, KC_UP, KC_BSPC -// '--------'--------'--------'--------' '--------'--------'--------'--------' - ) -}; - -#ifdef OLED_ENABLE - -static void render_logo(void) { - static const char PROGMEM qmk_logo[] = { - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, - 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, - 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0 - }; - - oled_write_P(qmk_logo, false); -} - -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - if (!is_keyboard_left()) { - return OLED_ROTATION_180; - } - return rotation; -} - -bool oled_task_user(void) { - render_logo(); - return false; -} - -#endif - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case KC_QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - } - return true; -} - -#ifdef ENCODER_ENABLE - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { - if (clockwise) { - tap_code(KC_PGDN); - } else { - tap_code(KC_PGUP); - } - } else if (index == 1) { - if (clockwise) { - tap_code(KC_LEFT); - } else { - tap_code(KC_RIGHT); - - } - } - return true; -} - -#endif \ No newline at end of file diff --git a/keyboards/tweetydabird/lotus58/rgb_matrix/keymaps/default/keymap.c b/keyboards/tweetydabird/lotus58/rgb_matrix/keymaps/default/keymap.c deleted file mode 100644 index 9ea1bf20e66d..000000000000 --- a/keyboards/tweetydabird/lotus58/rgb_matrix/keymaps/default/keymap.c +++ /dev/null @@ -1,268 +0,0 @@ -// Copyright 2022 Markus Knutsson (@TweetyDaBird) -// SPDX-License-Identifier: GPL-2.0-or-later -#include QMK_KEYBOARD_H - -void keyboard_post_init_user(void) { - autoshift_disable(); -} - -enum layers { - _QWERTY, - _NUM, - _FN, - _SYS, -}; - -enum custom_keycodes { - KC_QWERTY = SAFE_RANGE, - KC_NUMERIC, - KC_FUNCTION, - KC_SYSTEM, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QWERTY] = LAYOUT( -// _______ _______ -// .----------.----------.----------.----------.----------.----------. / \ / \ .----------.----------.----------.----------.----------.----------. -// | Esc | 1 | 2 | 3 | 4 | 5 |( Media ) ( Media )| 6 | 7 | 8 | 9 | 0 | - | - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, KC_MPLY, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, -// |----------+----------+----------+----------+----------+----------| \_______/ \_______/ |----------+----------+----------+----------+----------+----------| -// | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, -// |----------+----------+----------+----------+----------+----------| |----------+----------+----------+----------+----------+----------| -// | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, -// |----------+----------+----------+----------+----------+----------+-----------. .-----------+----------+----------+----------+----------+----------+----------| -// | <- Ctrl | Z | X | C | V | B | Down | | Up | N | M | , | . | / | Ctrl -> | -LCTL_T(KC_LEFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DOWN, KC_UP, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RCTL_T(KC_RGHT), -// '----------'----------'----------+----------+----------+----------+-.---------' '---------.-+----------+----------+----------+----------'----------'----------' -// | Win | Lower | Alt |/ Space / \ Enter \| AltGr | Raise | Bksp | -// | | | | Shift / \ Shift | | | | - KC_LGUI, TG(_FN), KC_LALT, LSFT_T(KC_SPC),RSFT_T(KC_ENT), KC_RALT, TG(_NUM), MT(MOD_RGUI,KC_BSPC) -// '----------'----------'----------'--------' '--------'----------'----------'----------' -), - -// _______ _______ -// .----------.----------.----------.----------.----------.----------. / \ / \ .----------.----------.----------.----------.----------.----------. -// | Esc | 1 | 2 | 3 | 4 | 5 |( Media ) ( Media )| 6 | 7 | 8 | 9 | 0 | - | -// |----------+----------+----------+----------+----------+----------| \_______/ \_______/ |----------+----------+----------+----------+----------+----------| -// | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | -// |----------+----------+----------+----------+----------+----------| |----------+----------+----------+----------+----------+----------| -// | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | -// |----------+----------+----------+----------+----------+----------+-----------. .-----------+----------+----------+----------+----------+----------+----------| -// | <- Ctrl | Z | X | C | V | B | Down | | Up | N | M | , | . | / | Ctrl -> | -// '----------'----------'----------+----------+----------+----------+-.---------' '---------.-+----------+----------+----------+----------'----------'----------' -// | Win | Lower | Alt |/ Space / \ Enter \| AltGr | Raise | Bksp | -// | | | | Shift / \ Shift | | | | -// '----------'----------'----------'--------' '--------'----------'----------'----------' - - -[_NUM] = LAYOUT( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_CIRC, KC_KP_7, KC_KP_8, KC_KP_9, XXXXXXX, XXXXXXX, - _______, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, KC_HASH, KC_KP_4, KC_KP_5, KC_KP_6, XXXXXXX, XXXXXXX, - XXXXXXX, KC_LEFT, KC_DOWN, KC_RIGHT, KC_LBRC, KC_RBRC, KC_AMPR, KC_KP_1, KC_KP_2, KC_KP_3, XXXXXXX, XXXXXXX, - _______, XXXXXXX, KC_PAST, KC_PPLS, KC_PSLS, KC_EQL, _______, _______, KC_DLR, KC_KP_0, KC_KP_DOT, KC_COLN, KC_PMNS, _______, - _______, _______, _______, _______, _______, _______, _______, _______ -), - -[_FN] = LAYOUT( -// _______ _______ -// .----------.----------.----------.----------.----------.----------. / \ / \ .----------.----------.----------.----------.----------.----------. -// | Esc | 1 | 2 | 3 | 4 | 5 |( Media ) ( Media )| 6 | 7 | 8 | 9 | 0 | - | - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, -// |----------+----------+----------+----------+----------+----------| \_______/ \_______/ |----------+----------+----------+----------+----------+----------| -// | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// |----------+----------+----------+----------+----------+----------| |----------+----------+----------+----------+----------+----------| -// | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// |----------+----------+----------+----------+----------+----------+-----------. .-----------+----------+----------+----------+----------+----------+----------| -// | <- Ctrl | Z | X | C | V | B | Down | | Up | N | M | , | . | / | Ctrl -> | - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// '----------'----------'----------+----------+----------+----------+-.---------' '---------.-+----------+----------+----------+----------'----------'----------' -// | Win | Lower | Alt |/ Space / \ Enter \| AltGr | Raise | Bksp | -// | | | | Shift / \ Shift | | | | - _______, _______, _______, _______, _______, _______, _______, _______ -// '----------'----------'----------'--------' '--------'----------'----------'----------' -), - -[_SYS] = LAYOUT( - XXXXXXX, XXXXXXX, XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_SAI, RGB_TOG, - QK_BOOT, XXXXXXX, KC_QWERTY, XXXXXXX, XXXXXXX, KC_ASTG, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RMOD, RGB_SAD, RGB_M_P, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_VAI, RGB_M_B, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUD, RGB_VAD, RGB_M_R, - _______, _______, _______, _______, _______, _______, _______, _______ \ - ) -}; - -#ifdef OLED_ENABLE - -static void render_logo(void) { - static const char PROGMEM qmk_logo[] = { - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, - 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, - 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0 - }; - oled_write_P(qmk_logo, false); -} - - -static void print_status_narrow(void) { - // Create OLED content - oled_write_P(PSTR("\n"), false); - oled_write_P(PSTR(""), false); - oled_write_P(PSTR("Lotus -58-"), false); - oled_write_P(PSTR("\n"), false); - - // Print current layer - oled_write_P(PSTR("Layer"), false); - switch (get_highest_layer(layer_state)) { - case _QWERTY: - oled_write_P(PSTR("-Base\n"), false); - break; - case _FN: - oled_write_P(PSTR("-Func\n"), false); - break; - case _NUM: - oled_write_P(PSTR("-Num \n"), false); - break; - case _SYS: - oled_write_P(PSTR("-Sys \n"), false); - break; - default: - oled_write_P(PSTR("Undef"), false); - } - - // Display autoshift - oled_write_P(PSTR("\n"), false); - led_t led_usb_state = host_keyboard_led_state(); - oled_write_ln_P(PSTR("Caps- lock"), led_usb_state.caps_lock); - bool autoshift = get_autoshift_state(); - oled_write_P(PSTR("\n"), false); - oled_write_P(PSTR("Auto-Shift"), autoshift); - oled_write_P(PSTR("\n"), false); - -} - -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - // Rotate OLED to fit - if (is_keyboard_left()) { - return OLED_ROTATION_90; - } - return OLED_ROTATION_270; -} - -bool oled_task_user(void) { - // Render the OLED - if (is_keyboard_master()) { - print_status_narrow(); - } else { - render_logo(); - } - return false; -} - -#endif - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - // Set base layer - switch (keycode) { - case KC_QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - } - return true; -} - -layer_state_t layer_state_set_user(layer_state_t state) { - // Allow swithcing to the 'hidden' layer - return update_tri_layer_state(state, _NUM, _FN, _SYS); -} - -#ifdef ENCODER_ENABLE - -bool encoder_update_user(uint8_t index, bool clockwise) { - // Encoders - if (index == 0) { - if (clockwise) { - tap_code(KC_VOLD); - } else { - tap_code(KC_VOLU); - } - } else if (index == 1) { - if (clockwise) { - tap_code(KC_VOLD); - } else { - tap_code(KC_VOLU); - } - } - return true; -} - -#endif - -#ifdef RGB_MATRIX_ENABLE - -#define LED_MATRIX_CENTER {110, 21} - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 5, 4, 3, 2, 1, 0}, - { 6, 7, 8, 9, 10, 11}, - {17, 16, 15, 14, 13, 12}, - {18, 19, 20, 21, 22, 23}, - {NO_LED, 28, 27, 26, 25, 24}, - - {34, 33, 32, 31, 30, 29}, - {35, 36, 37, 38, 39, 40}, - {46, 45, 44, 43, 42, 41}, - {47, 48, 49, 50, 51, 52}, - {NO_LED, 57, 56, 55, 54, 53} - }, { - // LED Index to Physical Position - // The default expected range of values for `{ x, y }` is the inclusive range `{ 0..224, 0..64 }` - // 224 / (14 real cols + 6 cols as buffer) ~= 11 per col - // 64 / (5 real rows + 1 row as buffer) ~= 10 per row - - // Left half - { 55, 2}, { 44, 1}, { 33, 0}, { 22, 1}, { 11, 3}, { 0, 4}, - { 0, 14}, { 11, 13}, { 22, 11}, { 33, 10}, { 44, 11}, { 55, 12}, - { 55, 22}, { 44, 21}, { 33, 20}, { 22, 21}, { 11, 23}, { 0, 24}, - { 0, 34}, { 11, 33}, { 22, 31}, { 33, 30}, { 44, 31}, { 55, 32}, - { 70, 27}, { 66, 40}, { 50, 42}, { 39, 41} ,{ 28, 40}, // bottom row, right to left, far outer right key is first - - // Right half - {165, 2}, {176, 1}, {187, 0}, {198, 1}, {209, 3}, {220, 4}, - {220, 14}, {209, 13}, {198, 11}, {187, 10}, {176, 11}, {165, 12}, - {165, 22}, {176, 21}, {187, 20}, {198, 21}, {209, 23}, {220, 24}, - {220, 34}, {209, 33}, {198, 31}, {187, 30}, {176, 31}, {165, 32}, - {150, 27}, {154, 40}, {170, 42}, {181, 41}, {192, 40}, // bottom row, left to right, far outer left key is first - }, { - // LED Index to Flag - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, - - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4 - } -}; - -void suspend_power_down_kb(void) { - rgb_matrix_set_suspend_state(true); - suspend_power_down_user(); -} - -void suspend_wakeup_init_kb(void) { - rgb_matrix_set_suspend_state(false); - suspend_wakeup_init_user(); -} -#endif \ No newline at end of file diff --git a/keyboards/tweetydabird/lotus58/rgb_none/keymaps/default/keymap.c b/keyboards/tweetydabird/lotus58/rgb_none/keymaps/default/keymap.c deleted file mode 100644 index d8853d377bd4..000000000000 --- a/keyboards/tweetydabird/lotus58/rgb_none/keymaps/default/keymap.c +++ /dev/null @@ -1,204 +0,0 @@ -// Copyright 2022 Markus Knutsson (@TweetyDaBird) -// SPDX-License-Identifier: GPL-2.0-or-later -#include QMK_KEYBOARD_H - -void keyboard_post_init_user(void) { - autoshift_disable(); -} - -enum layers { - _QWERTY, - _NUM, - _FN, - _SYS, -}; - -enum custom_keycodes { - KC_QWERTY = SAFE_RANGE, - KC_NUMERIC, - KC_FUNCTION, - KC_SYSTEM, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QWERTY] = LAYOUT( -// _______ _______ -// .----------.----------.----------.----------.----------.----------. / \ / \ .----------.----------.----------.----------.----------.----------. -// | Esc | 1 | 2 | 3 | 4 | 5 |( Media ) ( Media )| 6 | 7 | 8 | 9 | 0 | - | - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, KC_MPLY, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, -// |----------+----------+----------+----------+----------+----------| \_______/ \_______/ |----------+----------+----------+----------+----------+----------| -// | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, -// |----------+----------+----------+----------+----------+----------| |----------+----------+----------+----------+----------+----------| -// | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, -// |----------+----------+----------+----------+----------+----------+-----------. .-----------+----------+----------+----------+----------+----------+----------| -// | <- Ctrl | Z | X | C | V | B | Down | | Up | N | M | , | . | / | Ctrl -> | -LCTL_T(KC_LEFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DOWN, KC_UP, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RCTL_T(KC_RGHT), -// '----------'----------'----------+----------+----------+----------+-.---------' '---------.-+----------+----------+----------+----------'----------'----------' -// | Win | Lower | Alt |/ Space / \ Enter \| AltGr | Raise | Bksp | -// | | | | Shift / \ Shift | | | | - KC_LGUI, TG(_FN), KC_LALT, LSFT_T(KC_SPC),RSFT_T(KC_ENT), KC_RALT, TG(_NUM), MT(MOD_RGUI,KC_BSPC) -// '----------'----------'----------'--------' '--------'----------'----------'----------' -), - -// _______ _______ -// .----------.----------.----------.----------.----------.----------. / \ / \ .----------.----------.----------.----------.----------.----------. -// | Esc | 1 | 2 | 3 | 4 | 5 |( Media ) ( Media )| 6 | 7 | 8 | 9 | 0 | - | -// |----------+----------+----------+----------+----------+----------| \_______/ \_______/ |----------+----------+----------+----------+----------+----------| -// | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | -// |----------+----------+----------+----------+----------+----------| |----------+----------+----------+----------+----------+----------| -// | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | -// |----------+----------+----------+----------+----------+----------+-----------. .-----------+----------+----------+----------+----------+----------+----------| -// | <- Ctrl | Z | X | C | V | B | Down | | Up | N | M | , | . | / | Ctrl -> | -// '----------'----------'----------+----------+----------+----------+-.---------' '---------.-+----------+----------+----------+----------'----------'----------' -// | Win | Lower | Alt |/ Space / \ Enter \| AltGr | Raise | Bksp | -// | | | | Shift / \ Shift | | | | -// '----------'----------'----------'--------' '--------'----------'----------'----------' - - -[_NUM] = LAYOUT( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_CIRC, KC_KP_7, KC_KP_8, KC_KP_9, XXXXXXX, XXXXXXX, - _______, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, KC_HASH, KC_KP_4, KC_KP_5, KC_KP_6, XXXXXXX, XXXXXXX, - XXXXXXX, KC_LEFT, KC_DOWN, KC_RIGHT, KC_LBRC, KC_RBRC, KC_AMPR, KC_KP_1, KC_KP_2, KC_KP_3, XXXXXXX, XXXXXXX, - _______, XXXXXXX, KC_PAST, KC_PPLS, KC_PSLS, KC_EQL, _______, _______, KC_DLR, KC_KP_0, KC_KP_DOT, KC_COLN, KC_PMNS, _______, - _______, _______, _______, _______, _______, _______, _______, _______ -), - -[_FN] = LAYOUT( -// _______ _______ -// .----------.----------.----------.----------.----------.----------. / \ / \ .----------.----------.----------.----------.----------.----------. -// | Esc | 1 | 2 | 3 | 4 | 5 |( Media ) ( Media )| 6 | 7 | 8 | 9 | 0 | - | - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, -// |----------+----------+----------+----------+----------+----------| \_______/ \_______/ |----------+----------+----------+----------+----------+----------| -// | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ (Å) | - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// |----------+----------+----------+----------+----------+----------| |----------+----------+----------+----------+----------+----------| -// | Capslk | A | S | D | F | G | | H | J | K | L | ; (Ö) | ' (Ä) | - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// |----------+----------+----------+----------+----------+----------+-----------. .-----------+----------+----------+----------+----------+----------+----------| -// | <- Ctrl | Z | X | C | V | B | Down | | Up | N | M | , | . | / | Ctrl -> | - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// '----------'----------'----------+----------+----------+----------+-.---------' '---------.-+----------+----------+----------+----------'----------'----------' -// | Win | Lower | Alt |/ Space / \ Enter \| AltGr | Raise | Bksp | -// | | | | Shift / \ Shift | | | | - _______, _______, _______, _______, _______, _______, _______, _______ -// '----------'----------'----------'--------' '--------'----------'----------'----------' -), - -[_SYS] = LAYOUT( - XXXXXXX, XXXXXXX, XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_SAI, RGB_TOG, - QK_BOOT, XXXXXXX, KC_QWERTY, XXXXXXX, XXXXXXX, KC_ASTG, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RMOD, RGB_SAD, RGB_M_P, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_VAI, RGB_M_B, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUD, RGB_VAD, RGB_M_R, - _______, _______, _______, _______, _______, _______, _______, _______ \ - ) -}; - -#ifdef OLED_ENABLE - -static void render_logo(void) { - static const char PROGMEM qmk_logo[] = { - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, - 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, - 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0 - }; - oled_write_P(qmk_logo, false); -} - - -static void print_status_narrow(void) { - // Create OLED content - oled_write_P(PSTR("\n"), false); - oled_write_P(PSTR(""), false); - oled_write_P(PSTR("Lotus -58-"), false); - oled_write_P(PSTR("\n"), false); - - // Print current layer - oled_write_P(PSTR("Layer"), false); - switch (get_highest_layer(layer_state)) { - case _QWERTY: - oled_write_P(PSTR("-Base\n"), false); - break; - case _FN: - oled_write_P(PSTR("-Func\n"), false); - break; - case _NUM: - oled_write_P(PSTR("-Num \n"), false); - break; - case _SYS: - oled_write_P(PSTR("-Sys \n"), false); - break; - default: - oled_write_P(PSTR("Undef"), false); - } - - // Display autoshift - oled_write_P(PSTR("\n"), false); - led_t led_usb_state = host_keyboard_led_state(); - oled_write_ln_P(PSTR("Caps- lock"), led_usb_state.caps_lock); - bool autoshift = get_autoshift_state(); - oled_write_P(PSTR("\n"), false); - oled_write_P(PSTR("Auto-Shift"), autoshift); - oled_write_P(PSTR("\n"), false); - -} - -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - // Rotate OLED to fit - if (is_keyboard_left()) { - return OLED_ROTATION_90; - } - return OLED_ROTATION_270; -} - -bool oled_task_user(void) { - // Render the OLED - if (is_keyboard_master()) { - print_status_narrow(); - } else { - render_logo(); - } - return false; -} - -#endif - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - // Set base layer - switch (keycode) { - case KC_QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - } - return true; -} - -layer_state_t layer_state_set_user(layer_state_t state) { - // Allow swithcing to the 'hidden' layer - return update_tri_layer_state(state, _NUM, _FN, _SYS); -} - -#ifdef ENCODER_ENABLE - -bool encoder_update_user(uint8_t index, bool clockwise) { - // Encoders - if (index == 0) { - if (clockwise) { - tap_code(KC_VOLD); - } else { - tap_code(KC_VOLU); - } - } else if (index == 1) { - if (clockwise) { - tap_code(KC_VOLD); - } else { - tap_code(KC_VOLU); - } - } - return true; -} - -#endif From fe83a421fba60e44537342f840f86edb3c35b2ba Mon Sep 17 00:00:00 2001 From: TweetyDaBird Date: Fri, 7 Oct 2022 16:21:42 +0200 Subject: [PATCH 26/33] Removed RGB matrix --- .../lotus58/keymaps/tester/keymap.c | 64 +------ .../tweetydabird/lotus58/rgb_matrix/config.h | 30 ---- .../tweetydabird/lotus58/rgb_matrix/info.json | 161 ------------------ .../tweetydabird/lotus58/rgb_matrix/readme.md | 28 --- .../tweetydabird/lotus58/rgb_matrix/rules.mk | 1 - 5 files changed, 7 insertions(+), 277 deletions(-) delete mode 100644 keyboards/tweetydabird/lotus58/rgb_matrix/config.h delete mode 100644 keyboards/tweetydabird/lotus58/rgb_matrix/info.json delete mode 100644 keyboards/tweetydabird/lotus58/rgb_matrix/readme.md delete mode 100644 keyboards/tweetydabird/lotus58/rgb_matrix/rules.mk diff --git a/keyboards/tweetydabird/lotus58/keymaps/tester/keymap.c b/keyboards/tweetydabird/lotus58/keymaps/tester/keymap.c index 9d2e9edb8fee..b53e561bb265 100644 --- a/keyboards/tweetydabird/lotus58/keymaps/tester/keymap.c +++ b/keyboards/tweetydabird/lotus58/keymaps/tester/keymap.c @@ -45,61 +45,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -#ifdef OLED_ENABLE - -static void render_logo(void) { - static const char PROGMEM qmk_logo[] = { - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, - 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, - 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0 - }; - - oled_write_P(qmk_logo, false); -} - -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - if (!is_keyboard_left()) { - return OLED_ROTATION_180; - } - return rotation; -} - -bool oled_task_user(void) { - render_logo(); - return false; -} - +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_QWERTY] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_NUM] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_FN] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_SYS] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } +}; #endif - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case KC_QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - } - return true; -} - -#ifdef ENCODER_ENABLE - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { - if (clockwise) { - tap_code(KC_PGDN); - } else { - tap_code(KC_PGUP); - } - } else if (index == 1) { - if (clockwise) { - tap_code(KC_LEFT); - } else { - tap_code(KC_RIGHT); - - } - } - return true; -} - -#endif \ No newline at end of file diff --git a/keyboards/tweetydabird/lotus58/rgb_matrix/config.h b/keyboards/tweetydabird/lotus58/rgb_matrix/config.h deleted file mode 100644 index abf94c7239bd..000000000000 --- a/keyboards/tweetydabird/lotus58/rgb_matrix/config.h +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2022 Markus Knutsson (@TweetyDaBird) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -# define RGBLED_NUM 58 -# define RGB_MATRIX_SPLIT {29, 29} -# define DRIVER_LED_TOTAL RGBLED_NUM - -# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 175 -# 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_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_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT // Sets the default mode, if none has been set -# define RGB_MATRIX_KEYPRESSES // reacts to keypresses -# define RGB_MATRIX_FRAMEBUFFER_EFFECTS // reacts to keyreleases (instead of keypresses) - -# ifdef RGB_MATRIX_FRAMEBUFFER_EFFECTS -# define ENABLE_RGB_MATRIX_TYPING_HEATMAP // How hot is your WPM! -# endif - -# ifdef RGB_MATRIX_KEYPRESSES - #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Pulses keys hit to hue & value then fades value out - #endif - -# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN -# define ENABLE_RGB_MATRIX_CYCLE_ALL -# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Static gradient left to right, speed controls how much gradient changes diff --git a/keyboards/tweetydabird/lotus58/rgb_matrix/info.json b/keyboards/tweetydabird/lotus58/rgb_matrix/info.json deleted file mode 100644 index 4068c16bd87e..000000000000 --- a/keyboards/tweetydabird/lotus58/rgb_matrix/info.json +++ /dev/null @@ -1,161 +0,0 @@ -{ - "keyboard_name": "Lotus 58 Glow", - "manufacturer": "Tweetys Wild Thinking", - "url": "https://lectronz.com/stores/tweetys-wild-thinking", - "maintainer": "TweetyDaBird", - - "development_board": "promicro", - "bootloader_instructions": "Short marked pads on PCB, or hold top-outer key when plugging in each hand.", - - "debounce": 5, - - "features": { - "bootmagic": true, - "command": false, - "console": false, - "extrakey": true, - "mousekey": false, - "nkro": true, - "encoder": true, - "oled": true, - "audio": false, - "split": true, - "magic": false, - "grave_esc": false, - "space_cadet": false - "tap_dance": false, - "auto_shift": true, - "rgb_matrix": true, - }, - - "build": { - "lto": true - }, - - "usb": { - "vid": "0xFEED", - "pid": "0x23B0", - "device_version": "1.2.3", - "force_nkro": true - }, - - "split": { - "enabled": true, - "main": "pin", - "soft_serial_pin": "D2", - - "transport": { - "protocol": "serial", - "sync_matrix_state": true, - "sync_modifiers": true - }, - }, - - "rgb_matrix": { - "driver": "WS2812" - }, - - "rgblight": { - "pin": "D3" - }, - - "encoder": { - "rotary": [ - { "pin_a": "F5", "pin_b": "F4", "resolution": 2 } - { "pin_a": "F4", "pin_b": "F5", "resolution": 2 } - ] - }, - - "qmk": { - "tap_keycode_delay": 10 - }, - - "tapping": { - "term": 175, - "toggle": 2 - }, - - "diode_direction": "COL2ROW", - "matrix_pins": { - "rows": ["D4", "C6", "D7", "E6", "B4"], - "cols": ["B1", "B2", "B3", "B6", "F7", "F6"] - }, - - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix":[0, 0], "x":0, "y":0.75, "label":"Esc"}, - {"matrix":[0, 1], "x":1, "y":0.5, "label":"1"}, - {"matrix":[0, 2], "x":2, "y":0.25, "label":"2"}, - {"matrix":[0, 3], "x":3, "y":0, "label":"3"}, - {"matrix":[0, 4], "x":4, "y":0.25, "label":"4"}, - {"matrix":[0, 5], "x":5, "y":0.5, "label":"5"}, - - {"matrix":[4, 0], "x":6.25, "y":0.75, "label":"Left ENC"}, - {"matrix":[9, 0], "x":7.75, "y":0.75, "label":"Right ENC"}, - - {"matrix":[5, 5], "x":9, "y":0.5, "label":"6"}, - {"matrix":[5, 4], "x":10, "y":0.25, "label":"7"}, - {"matrix":[5, 3], "x":11, "y":0, "label":"8"}, - {"matrix":[5, 2], "x":12, "y":0.25, "label":"9"}, - {"matrix":[5, 1], "x":13, "y":0.5, "label":"0"}, - {"matrix":[5, 0], "x":14, "y":0.75, "label":"-"}, - - {"matrix":[1, 0], "x":0, "y":1.75, "label":"Tab"}, - {"matrix":[1, 1], "x":1, "y":1.5, "label":"Q"}, - {"matrix":[1, 2], "x":2, "y":1.25, "label":"W"}, - {"matrix":[1, 3], "x":3, "y":1, "label":"E"}, - {"matrix":[1, 4], "x":4, "y":1.25, "label":"R"}, - {"matrix":[1, 5], "x":5, "y":1.5, "label":"T"}, - - {"matrix":[6, 5], "x":9, "y":1.5, "label":"Y"}, - {"matrix":[6, 4], "x":10, "y":1.25, "label":"U"}, - {"matrix":[6, 3], "x":11, "y":1, "label":"I"}, - {"matrix":[6, 2], "x":12, "y":1.25, "label":"O"}, - {"matrix":[6, 1], "x":13, "y":1.5, "label":"P"}, - {"matrix":[6, 0], "x":14, "y":1.75, "label":"{"}, - - {"matrix":[2, 0], "x":0, "y":2.75, "label":"Caps Lock"}, - {"matrix":[2, 1], "x":1, "y":2.5, "label":"A"}, - {"matrix":[2, 2], "x":2, "y":2.25, "label":"S"}, - {"matrix":[2, 3], "x":3, "y":2, "label":"D"}, - {"matrix":[2, 4], "x":4, "y":2.25, "label":"F"}, - {"matrix":[2, 5], "x":5, "y":2.5, "label":"G"}, - - {"matrix":[7, 5], "x":9, "y":2.5, "label":"H"}, - {"matrix":[7, 4], "x":10, "y":2.25, "label":"J"}, - {"matrix":[7, 3], "x":11, "y":2, "label":"K"}, - {"matrix":[7, 2], "x":12, "y":2.25, "label":"L"}, - {"matrix":[7, 1], "x":13, "y":2.5, "label":":"}, - {"matrix":[7, 0], "x":14, "y":2.75, "label":"\""}, - - {"matrix":[3, 0], "x":0, "y":3.75, "label":"L_Ctrl"}, - {"matrix":[3, 1], "x":1, "y":3.5, "label":"Z"}, - {"matrix":[3, 2], "x":2, "y":3.25, "label":"X"}, - {"matrix":[3, 3], "x":3, "y":3, "label":"C"}, - {"matrix":[3, 4], "x":4, "y":3.25, "label":"V"}, - {"matrix":[3, 5], "x":5, "y":3.5, "label":"B"}, - - {"matrix":[4, 5], "x":6, "y":3, "label":"Down"}, - {"matrix":[9, 5], "x":8, "y":3, "label":"Up"}, - - {"matrix":[8, 5], "x":9, "y":3.5, "label":"N"}, - {"matrix":[8, 4], "x":10, "y":3.25, "label":"M"}, - {"matrix":[8, 3], "x":11, "y":3, "label":","}, - {"matrix":[8, 2], "x":12, "y":3.25, "label":"."}, - {"matrix":[8, 1], "x":13, "y":3.5, "label":"?"}, - {"matrix":[8, 0], "x":14, "y":3.75, "label":"R_Ctrl"}, - - {"matrix":[4, 1], "x":2.5, "y":4.25, "label":"Win"}, - {"matrix":[4, 2], "x":3.5, "y":4.25, "label":"Lower"}, - {"matrix":[4, 3], "x":4.5, "y":4.5, "label":"Alt"}, - {"matrix":[4, 4], "x":6, "y":4.25, "h":1.25, "label":"Space"}, - - {"matrix":[9, 4], "x":8, "y":4.25, "h":1.25, "label":"Enter"}, - {"matrix":[9, 3], "x":9.5, "y":4.5, "label":"AltGr"}, - {"matrix":[9, 2], "x":10.5, "y":4.25, "label":"Raise"}, - {"matrix":[9, 1], "x":11.5, "y":4.25, "label":"BckSp"}, - ] - } - } -} \ No newline at end of file diff --git a/keyboards/tweetydabird/lotus58/rgb_matrix/readme.md b/keyboards/tweetydabird/lotus58/rgb_matrix/readme.md deleted file mode 100644 index d19774698308..000000000000 --- a/keyboards/tweetydabird/lotus58/rgb_matrix/readme.md +++ /dev/null @@ -1,28 +0,0 @@ -# Lotus 58 Glow - -![lotus58](https://i.imgur.com/WWgpp0Sh.jpeg) - -* Lotus 58 Glow is a fully programmable 58-key split, ortho-columnar keyboard with a 4x6 main matrix and 4+1 thumb-keys per hand. Optional support for one OLED screen per hand/side showing information such as active layer, CapsLock/NumLock etc. as well as one Rotary Encoder per hand, with optional placement.* - -* Keyboard Maintainer: [TweetyDaBird](https://github.com/TweetyDaBird) -* Hardware Supported: *Lotus 58 Glow v1.11 - 1.24 PCB, Pro Micro or pin-compatible* -* Hardware Availability: [Lectronz Store](https://lectronz.com/stores/tweetys-wild-thinking) -* Hardware Design: [Link](https://github.com/TweetyDaBird/Lotus58) - -Make example for this keyboard (after setting up your build environment): - - make tweetydabird/lotus58:default - -Flashing example for this keyboard: - - make tweetydabird/lotus58:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* **Bootmagic reset**: Hold down the top outer key for each hand and plug in the keyboard -* **Physical reset**: Briefly short the marked pads on PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if mapped (not in default keymap) \ No newline at end of file diff --git a/keyboards/tweetydabird/lotus58/rgb_matrix/rules.mk b/keyboards/tweetydabird/lotus58/rgb_matrix/rules.mk deleted file mode 100644 index 7ff128fa692e..000000000000 --- a/keyboards/tweetydabird/lotus58/rgb_matrix/rules.mk +++ /dev/null @@ -1 +0,0 @@ -# This file intentionally left blank \ No newline at end of file From a6eb2889437e7b69056b57d3d0e63d2267cad33a Mon Sep 17 00:00:00 2001 From: Markus Knutsson Date: Sat, 29 Oct 2022 10:33:18 +0200 Subject: [PATCH 27/33] Update readme.md --- keyboards/tweetydabird/lotus58/readme.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/keyboards/tweetydabird/lotus58/readme.md b/keyboards/tweetydabird/lotus58/readme.md index 3d82afdca2c9..0764ecf4ac1f 100644 --- a/keyboards/tweetydabird/lotus58/readme.md +++ b/keyboards/tweetydabird/lotus58/readme.md @@ -9,6 +9,14 @@ * Hardware Availability: [Lectronz Store](https://lectronz.com/stores/tweetys-wild-thinking) * Hardware Design: [link](https://github.com/TweetyDaBird/Lotus58) + +### This keyboard firmware contains three different versions, all for the same PCB/hardware, but depending on your choice of RGB configuration. + +* Full RGB - Uses 58 RGB LEDs under the keys. +* RGB Glow - Uses 12 RGB LEDs to create a nice glow effect between the plates. +* No RGB - + + Make example for this keyboard (after setting up your build environment): make tweetydabird/lotus58:default @@ -25,4 +33,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the top outer key for each hand and plug in the keyboard * **Physical reset**: Briefly short the marked pads on PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if mapped (not in default keymap) \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if mapped (not in default keymap) From bf41a51e0d03784b1a1d7795105d67b13c08bd70 Mon Sep 17 00:00:00 2001 From: Markus Knutsson Date: Sat, 29 Oct 2022 10:35:49 +0200 Subject: [PATCH 28/33] Update readme.md --- keyboards/tweetydabird/lotus58/readme.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/tweetydabird/lotus58/readme.md b/keyboards/tweetydabird/lotus58/readme.md index 0764ecf4ac1f..69c8b420ecde 100644 --- a/keyboards/tweetydabird/lotus58/readme.md +++ b/keyboards/tweetydabird/lotus58/readme.md @@ -10,11 +10,11 @@ * Hardware Design: [link](https://github.com/TweetyDaBird/Lotus58) -### This keyboard firmware contains three different versions, all for the same PCB/hardware, but depending on your choice of RGB configuration. +#### This keyboard firmware contains three different versions, all for the same PCB/hardware, but depending on your choice of RGB configuration. -* Full RGB - Uses 58 RGB LEDs under the keys. -* RGB Glow - Uses 12 RGB LEDs to create a nice glow effect between the plates. -* No RGB - +* RGB Full - Uses the 58 RGB LEDs under the keys, and is configured with RGB and a few effects. +* RGB Glow - Uses the 12 RGB LEDs underneath the PCB to create a nice glow effect between the plates. +* RGB None - Not configured with RGB. Make example for this keyboard (after setting up your build environment): From d13913bd83d5a694b784c1283a42198443aa63db Mon Sep 17 00:00:00 2001 From: Markus Knutsson Date: Sat, 29 Oct 2022 10:36:40 +0200 Subject: [PATCH 29/33] Update readme.md --- keyboards/tweetydabird/lotus58/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/tweetydabird/lotus58/readme.md b/keyboards/tweetydabird/lotus58/readme.md index 69c8b420ecde..08f4ea759d09 100644 --- a/keyboards/tweetydabird/lotus58/readme.md +++ b/keyboards/tweetydabird/lotus58/readme.md @@ -19,11 +19,11 @@ Make example for this keyboard (after setting up your build environment): - make tweetydabird/lotus58:default + make tweetydabird/lotus58/rgb_full:default Flashing example for this keyboard: - make tweetydabird/lotus58:default:flash + make tweetydabird/lotus58/rgb_none:default:flash See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). From 6725e794d685268104377be5992c67e142e372e4 Mon Sep 17 00:00:00 2001 From: Markus Knutsson Date: Wed, 2 Nov 2022 11:28:32 +0100 Subject: [PATCH 30/33] Update readme.md --- keyboards/tweetydabird/lotus58/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/tweetydabird/lotus58/readme.md b/keyboards/tweetydabird/lotus58/readme.md index 08f4ea759d09..17a43adaa096 100644 --- a/keyboards/tweetydabird/lotus58/readme.md +++ b/keyboards/tweetydabird/lotus58/readme.md @@ -2,7 +2,7 @@ ![lotus58](https://i.imgur.com/WWgpp0Sh.jpeg) -* Lotus 58 Glow is a fully programmable 58-key split, ortho-columnar keyboard with a 4x6 main matrix and 4+1 thumb-keys per hand. Optional support for one OLED screen per hand/side showing information such as active layer, CapsLock/NumLock etc. as well as one Rotary Encoder per hand, with optional placement.* +* Lotus 58 Glow is a fully programmable 58-key split, ortho-columnar keyboard with a 4x6 main matrix and 4+1 thumb-keys per hand. Optional support for one OLED screen per hand/side showing information such as active layer, CapsLock/NumLock etc. as well as one Rotary Encoder per hand, with optional placement. * Keyboard Maintainer: [TweetyDaBird](https://github.com/TweetyDaBird) * Hardware Supported: *Lotus 58 Glow v1.11 - 1.24 PCB, Pro Micro or pin-compatible* From 0d13bc2e2cafc6bf97cd63ae19f8ee82dfc9642e Mon Sep 17 00:00:00 2001 From: Markus Knutsson Date: Wed, 2 Nov 2022 11:29:28 +0100 Subject: [PATCH 31/33] Update readme.md --- keyboards/tweetydabird/lotus58/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/tweetydabird/lotus58/readme.md b/keyboards/tweetydabird/lotus58/readme.md index 17a43adaa096..56b64a9d38df 100644 --- a/keyboards/tweetydabird/lotus58/readme.md +++ b/keyboards/tweetydabird/lotus58/readme.md @@ -7,7 +7,7 @@ * Keyboard Maintainer: [TweetyDaBird](https://github.com/TweetyDaBird) * Hardware Supported: *Lotus 58 Glow v1.11 - 1.24 PCB, Pro Micro or pin-compatible* * Hardware Availability: [Lectronz Store](https://lectronz.com/stores/tweetys-wild-thinking) -* Hardware Design: [link](https://github.com/TweetyDaBird/Lotus58) +* Hardware Design: [GitHub](https://github.com/TweetyDaBird/Lotus58) #### This keyboard firmware contains three different versions, all for the same PCB/hardware, but depending on your choice of RGB configuration. From 442e0cbf1d6352337e8899b65305295316d58e63 Mon Sep 17 00:00:00 2001 From: TweetyDaBird Date: Thu, 3 Nov 2022 13:21:03 +0100 Subject: [PATCH 32/33] Update lotus58.c Fixed layer names --- keyboards/tweetydabird/lotus58/lotus58.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/tweetydabird/lotus58/lotus58.c b/keyboards/tweetydabird/lotus58/lotus58.c index c25dc400e7de..e9b7615cb83f 100644 --- a/keyboards/tweetydabird/lotus58/lotus58.c +++ b/keyboards/tweetydabird/lotus58/lotus58.c @@ -35,10 +35,10 @@ static void print_status_narrow(void) { oled_write_P(PSTR("-Base\n"), false); break; case 1: - oled_write_P(PSTR("-Func\n"), false); + oled_write_P(PSTR("-Num \n"), false); break; case 2: - oled_write_P(PSTR("-Num \n"), false); + oled_write_P(PSTR("-Func\n"), false); break; case 3: oled_write_P(PSTR("-Sys \n"), false); From d6769ca5e6c9bc35f07d0fc0b426a875f836c849 Mon Sep 17 00:00:00 2001 From: TweetyDaBird Date: Fri, 25 Nov 2022 12:29:59 +0100 Subject: [PATCH 33/33] Fixed encoder mapping --- keyboards/tweetydabird/lotus58/rgb_full/info.json | 3 ++- keyboards/tweetydabird/lotus58/rgb_glow/info.json | 1 + keyboards/tweetydabird/lotus58/rgb_none/info.json | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/keyboards/tweetydabird/lotus58/rgb_full/info.json b/keyboards/tweetydabird/lotus58/rgb_full/info.json index bd915dd52454..6ae7fa733767 100644 --- a/keyboards/tweetydabird/lotus58/rgb_full/info.json +++ b/keyboards/tweetydabird/lotus58/rgb_full/info.json @@ -18,7 +18,8 @@ "nkro": true, "rgblight": true, "encoder": true, - "oled": true, + "encoder_map": true, + "oled": true, "audio": false, "split": true, "magic": false, diff --git a/keyboards/tweetydabird/lotus58/rgb_glow/info.json b/keyboards/tweetydabird/lotus58/rgb_glow/info.json index a32257fd9ce9..53dfb6ae3782 100644 --- a/keyboards/tweetydabird/lotus58/rgb_glow/info.json +++ b/keyboards/tweetydabird/lotus58/rgb_glow/info.json @@ -18,6 +18,7 @@ "nkro": true, "rgblight": true, "encoder": true, + "encoder_map": true, "oled": true, "audio": false, "split": true, diff --git a/keyboards/tweetydabird/lotus58/rgb_none/info.json b/keyboards/tweetydabird/lotus58/rgb_none/info.json index 96f813d72b54..db2698bc9b94 100644 --- a/keyboards/tweetydabird/lotus58/rgb_none/info.json +++ b/keyboards/tweetydabird/lotus58/rgb_none/info.json @@ -18,6 +18,7 @@ "nkro": true, "rgblight": false, "encoder": true, + "encoder_map": true, "oled": true, "audio": false, "split": true,