Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lotus58 Glow adding keyboard #18554

Closed
wants to merge 46 commits into from
Closed
Show file tree
Hide file tree
Changes from 38 commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
726992e
lsb 4 initial
TweetyDaBird Aug 8, 2022
a974ad4
Merge branch 'qmk:master' into TweetyDaBird
TweetyDaBird Aug 31, 2022
c2055bb
Merge branch 'qmk:master' into TweetyDaBird
TweetyDaBird Sep 1, 2022
188f0f1
Update Lotus
TweetyDaBird Sep 1, 2022
de3bcf2
Merge remote-tracking branch 'upstream/master' into TweetyDaBird
TweetyDaBird Sep 1, 2022
0fe0b7a
Merge branch 'TweetyDaBird' of https://github.com/TweetyDaBird/qmk_fi…
TweetyDaBird Sep 1, 2022
529b95e
tweaks to lotus
TweetyDaBird Sep 1, 2022
1f31aa7
Merge branch 'qmk:master' into TweetyDaBird
TweetyDaBird Sep 13, 2022
ea14e52
fixing default
TweetyDaBird Sep 16, 2022
6f18e82
Update keymap.c
TweetyDaBird Sep 16, 2022
2c57570
Update keymap.c
TweetyDaBird Sep 16, 2022
c3ab859
Update keymap.c
TweetyDaBird Sep 16, 2022
7a97b17
Update keymap.c
TweetyDaBird Sep 16, 2022
6e9c7dc
Update keymap.c
TweetyDaBird Sep 16, 2022
71e59b5
Merge branch 'qmk:master' into Lotus58Glow
TweetyDaBird Sep 23, 2022
c8d83b0
Merge branch 'qmk:master' into Lotus58Glow
TweetyDaBird Sep 28, 2022
c13ee7b
Merge remote-tracking branch 'upstream/master' into Lotus58Glow
TweetyDaBird Sep 30, 2022
af3191f
Migrated to .json
TweetyDaBird Sep 30, 2022
169b756
Update readme.md
TweetyDaBird Sep 30, 2022
07b52ec
Merge branch 'qmk:master' into Lotus58Glow
TweetyDaBird Sep 30, 2022
41cecd5
Update keyboards/tweetydabird/lotus58/info.json
TweetyDaBird Sep 30, 2022
5370da3
Update keyboards/tweetydabird/lotus58/info.json
TweetyDaBird Sep 30, 2022
d1439bd
Update keyboards/tweetydabird/lotus58/config.h
TweetyDaBird Sep 30, 2022
926bf40
Update keyboards/tweetydabird/lbs6/info.json
TweetyDaBird Sep 30, 2022
d079e0e
Update data/schemas/keyboard.jsonschema
TweetyDaBird Sep 30, 2022
6e23b95
Update config.h
TweetyDaBird Sep 30, 2022
e292549
Update keyboards/tweetydabird/lotus58/readme.md
TweetyDaBird Sep 30, 2022
1d5f8be
Requested changes
TweetyDaBird Oct 2, 2022
331727e
Merge branch 'qmk:master' into Lotus58Glow
TweetyDaBird Oct 2, 2022
3c3ea7e
Refactored for RGB
TweetyDaBird Oct 3, 2022
b4cb12a
Merge remote-tracking branch 'upstream/master' into Lotus58Glow
TweetyDaBird Oct 3, 2022
65ab2d2
Update keyboards/tweetydabird/lotus58/readme.md
TweetyDaBird Oct 7, 2022
8c6a61d
Update keyboards/tweetydabird/lotus58/rgb_full/readme.md
TweetyDaBird Oct 7, 2022
61c8bb6
Update keyboards/tweetydabird/lotus58/rgb_none/readme.md
TweetyDaBird Oct 7, 2022
b4cbc3a
Update keyboards/tweetydabird/lotus58/rgb_matrix/readme.md
TweetyDaBird Oct 7, 2022
d3c183c
Moved code from keymap
TweetyDaBird Oct 7, 2022
2264c6d
Merge branch 'Lotus58Glow' of https://github.com/TweetyDaBird/qmk_fir…
TweetyDaBird Oct 7, 2022
fe83a42
Removed RGB matrix
TweetyDaBird Oct 7, 2022
a6eb288
Update readme.md
TweetyDaBird Oct 29, 2022
bf41a51
Update readme.md
TweetyDaBird Oct 29, 2022
d13913b
Update readme.md
TweetyDaBird Oct 29, 2022
6725e79
Update readme.md
TweetyDaBird Nov 2, 2022
0d13bc2
Update readme.md
TweetyDaBird Nov 2, 2022
442e0cb
Update lotus58.c
TweetyDaBird Nov 3, 2022
6cdd3e4
Merge remote-tracking branch 'upstream/master' into Lotus58Glow
TweetyDaBird Nov 12, 2022
d6769ca
Fixed encoder mapping
TweetyDaBird Nov 25, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 23 additions & 15 deletions keyboards/tweetydabird/lbs4/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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": [
{
Expand All @@ -62,6 +57,19 @@
}
},

"matrix_pins": {
"direct": [
["E6", "D7", "F4"],
["B5", "B4", null]
]
},

"matrix_size": {
"cols": 3,
"rows": 2
},


"layouts": {
"LAYOUT": {
"layout": [
Expand Down
23 changes: 23 additions & 0 deletions keyboards/tweetydabird/lotus58/config.h
Original file line number Diff line number Diff line change
@@ -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
TweetyDaBird marked this conversation as resolved.
Show resolved Hide resolved

// 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
108 changes: 108 additions & 0 deletions keyboards/tweetydabird/lotus58/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
@@ -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



TweetyDaBird marked this conversation as resolved.
Show resolved Hide resolved
55 changes: 55 additions & 0 deletions keyboards/tweetydabird/lotus58/keymaps/tester/keymap.c
Original file line number Diff line number Diff line change
@@ -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 <http://www.gnu.org/licenses/>.
*/
#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
TweetyDaBird marked this conversation as resolved.
Show resolved Hide resolved
75 changes: 75 additions & 0 deletions keyboards/tweetydabird/lotus58/lotus58.c
Original file line number Diff line number Diff line change
@@ -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
TweetyDaBird marked this conversation as resolved.
Show resolved Hide resolved
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);
}
Comment on lines +72 to +75
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not a fan of this being in the kb level code, since there isn't an easy way to override it.

Also:

Suggested change
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);
}
layer_state_t layer_state_set_kb(layer_state_t state) {
// Allow switching to the 'hidden' layer
state = update_tri_layer_state(state, 1, 2, 3);
state = layer_state_set_user(state);
return state;
}

28 changes: 28 additions & 0 deletions keyboards/tweetydabird/lotus58/readme.md
Original file line number Diff line number Diff line change
@@ -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).
TweetyDaBird marked this conversation as resolved.
Show resolved Hide resolved

## 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)
Loading