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 new file mode 100644 index 000000000000..d78df0616d16 --- /dev/null +++ b/keyboards/tweetydabird/lotus58/config.h @@ -0,0 +1,23 @@ +// Copyright 2022 Markus Knutsson (@TweetyDaBird) +// SPDX-License-Identifier: GPL-2.0-or-later + +#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 +#define BOOTMAGIC_LITE_COLUMN 0 +#define BOOTMAGIC_LITE_ROW_RIGHT 5 +#define BOOTMAGIC_LITE_COLUMN_RIGHT 0 + +#define SPLIT_HAND_PIN B5 +#define SPLIT_LAYER_STATE_ENABLE +#define SPLIT_LED_STATE_ENABLE +#define SPLIT_OLED_ENABLE diff --git a/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c new file mode 100644 index 000000000000..d03c2f8541a4 --- /dev/null +++ b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c @@ -0,0 +1,108 @@ +// 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, + _______, _______, _______, _______, _______, _______, _______, _______ \ + ) +}; + +#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 + + + diff --git a/keyboards/tweetydabird/lotus58/keymaps/tester/keymap.c b/keyboards/tweetydabird/lotus58/keymaps/tester/keymap.c new file mode 100644 index 000000000000..b53e561bb265 --- /dev/null +++ b/keyboards/tweetydabird/lotus58/keymaps/tester/keymap.c @@ -0,0 +1,55 @@ +/* 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 +// '--------'--------'--------'--------' '--------'--------'--------'--------' + ) +}; + +#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 diff --git a/keyboards/tweetydabird/lotus58/lotus58.c b/keyboards/tweetydabird/lotus58/lotus58.c new file mode 100644 index 000000000000..e9b7615cb83f --- /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("-Num \n"), false); + break; + case 2: + oled_write_P(PSTR("-Func\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/readme.md b/keyboards/tweetydabird/lotus58/readme.md new file mode 100644 index 000000000000..56b64a9d38df --- /dev/null +++ b/keyboards/tweetydabird/lotus58/readme.md @@ -0,0 +1,36 @@ +# 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: [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. + +* 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): + + make tweetydabird/lotus58/rgb_full:default + +Flashing example for this keyboard: + + 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). + +## 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) diff --git a/keyboards/tweetydabird/lotus58/rgb_full/info.json b/keyboards/tweetydabird/lotus58/rgb_full/info.json new file mode 100644 index 000000000000..6ae7fa733767 --- /dev/null +++ b/keyboards/tweetydabird/lotus58/rgb_full/info.json @@ -0,0 +1,170 @@ +{ + "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, + "encoder_map": 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": 58, + "pin": "D3", + "split": true, + "split_count": [ 29, 29 ], + "hue_steps": 17, + "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_full/readme.md b/keyboards/tweetydabird/lotus58/rgb_full/readme.md new file mode 100644 index 000000000000..d19774698308 --- /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: [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_full/rules.mk b/keyboards/tweetydabird/lotus58/rgb_full/rules.mk new file mode 100644 index 000000000000..7ff128fa692e --- /dev/null +++ b/keyboards/tweetydabird/lotus58/rgb_full/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/tweetydabird/lotus58/rgb_glow/info.json b/keyboards/tweetydabird/lotus58/rgb_glow/info.json new file mode 100644 index 000000000000..53dfb6ae3782 --- /dev/null +++ b/keyboards/tweetydabird/lotus58/rgb_glow/info.json @@ -0,0 +1,170 @@ +{ + "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, + "encoder_map": 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/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_none/info.json b/keyboards/tweetydabird/lotus58/rgb_none/info.json new file mode 100644 index 000000000000..db2698bc9b94 --- /dev/null +++ b/keyboards/tweetydabird/lotus58/rgb_none/info.json @@ -0,0 +1,154 @@ +{ + "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, + "encoder_map": 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/readme.md b/keyboards/tweetydabird/lotus58/rgb_none/readme.md new file mode 100644 index 000000000000..d19774698308 --- /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: [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_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