Refactor tweetydabird/lotus58 (#25547)

- Update aliases accordingly
- Remove unnecessary elite_c revision; an alternate bootloader or
  development board can easily be set by a user. The PCB is not
  dependant on an Elite-C pin compatible microcontroller
- Remove unnecessary nanoboot revision; any user going to the trouble of
  using this bootloader will have no trouble manually setting the size
  of their bootloader
- Move the promicro revision to be the "standard" for this keyboard
- Remove unnecessary rp2040_ce revision; the converter feature should be
  used here instead
This commit is contained in:
Jack Sangdahl 2025-08-17 10:50:59 -06:00 committed by GitHub
parent b834819a35
commit 7110708d0f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 120 additions and 210 deletions

View File

@ -2265,8 +2265,17 @@
"trnthsn/s6xty5neor2": {
"target": "trnthsn/s6xty5neor2/stm32f103"
},
"tweetydabird/lotus58": {
"target": "tweetydabird/lotus58/promicro"
"tweetydabird/lotus58/elite_c": {
"target": "tweetydabird/lotus58"
},
"tweetydabird/lotus58/nanoboot": {
"target": "tweetydabird/lotus58"
},
"tweetydabird/lotus58/promicro": {
"target": "tweetydabird/lotus58"
},
"tweetydabird/lotus58/rp2040_ce": {
"target": "tweetydabird/lotus58"
},
"unison": {
"target": "unison/v04"

View File

@ -1,34 +0,0 @@
{
"build": {
"lto": true
},
"development_board": "elite_c",
"pin_compatible": "elite_c",
"encoder": {
"rotary": [
{"pin_a": "F5", "pin_b": "F4", "resolution": 2}
]
},
"matrix_pins": {
"cols": ["B1", "B2", "B3", "B6", "F7", "F6"],
"rows": ["D4", "C6", "D7", "E6", "B4"]
},
"split": {
"encoder": {
"right": {
"rotary": [
{"pin_a": "F4", "pin_b": "F5", "resolution": 2}
]
}
},
"handedness": {
"pin": "B5"
},
"serial": {
"pin": "D2"
}
},
"ws2812": {
"pin": "D3"
}
}

View File

@ -3,7 +3,16 @@
"keyboard_name": "Lotus 58 Glow",
"maintainer": "TweetyDaBird",
"bootloader_instructions": "Short marked pads on PCB, or hold top-outer key when plugging in each hand.",
"build": {
"lto": true
},
"development_board": "promicro",
"diode_direction": "COL2ROW",
"encoder": {
"rotary": [
{"pin_a": "F5", "pin_b": "F4", "resolution": 2}
]
},
"features": {
"bootmagic": true,
"encoder": true,
@ -11,17 +20,94 @@
"mousekey": true,
"nkro": true,
"oled": true,
"rgblight": true,
"rgb_matrix": true,
"tri_layer": true
},
"rgblight": {
"host": {
"default": {
"val": 87
"nkro": true
}
},
"led_count": 70,
"matrix_pins": {
"cols": ["B1", "B2", "B3", "B6", "F7", "F6"],
"rows": ["D4", "C6", "D7", "E6", "B4"]
},
"rgb_matrix": {
"driver": "ws2812",
"layout": [
{"matrix": [0, 5], "x": 72, "y": 4, "flags": 4},
{"x": 65, "y": 4, "flags": 2},
{"matrix": [0, 4], "x": 58, "y": 2, "flags": 4},
{"matrix": [0, 3], "x": 43, "y": 0, "flags": 4},
{"x": 36, "y": 4, "flags": 2},
{"matrix": [0, 2], "x": 29, "y": 2, "flags": 4},
{"matrix": [0, 1], "x": 14, "y": 6, "flags": 4},
{"x": 7, "y": 4, "flags": 2},
{"matrix": [0, 0], "x": 0, "y": 8, "flags": 4},
{"matrix": [1, 0], "x": 0, "y": 23, "flags": 4},
{"matrix": [1, 1], "x": 14, "y": 21, "flags": 4},
{"matrix": [1, 2], "x": 29, "y": 17, "flags": 4},
{"matrix": [1, 3], "x": 43, "y": 15, "flags": 4},
{"matrix": [1, 4], "x": 58, "y": 17, "flags": 4},
{"matrix": [1, 5], "x": 72, "y": 19, "flags": 4},
{"matrix": [2, 5], "x": 72, "y": 34, "flags": 4},
{"matrix": [2, 4], "x": 58, "y": 32, "flags": 4},
{"matrix": [2, 3], "x": 43, "y": 30, "flags": 4},
{"matrix": [2, 2], "x": 29, "y": 32, "flags": 4},
{"matrix": [2, 1], "x": 14, "y": 36, "flags": 4},
{"matrix": [2, 0], "x": 0, "y": 38, "flags": 4},
{"matrix": [3, 0], "x": 0, "y": 53, "flags": 4},
{"x": 7, "y": 52, "flags": 2},
{"matrix": [3, 1], "x": 14, "y": 51, "flags": 4},
{"matrix": [3, 2], "x": 29, "y": 47, "flags": 4},
{"matrix": [3, 3], "x": 43, "y": 45, "flags": 4},
{"matrix": [3, 4], "x": 58, "y": 47, "flags": 4},
{"matrix": [3, 5], "x": 72, "y": 49, "flags": 4},
{"x": 79, "y": 45, "flags": 2},
{"matrix": [4, 5], "x": 87, "y": 41, "flags": 4},
{"matrix": [4, 4], "x": 87, "y": 64, "flags": 4},
{"matrix": [4, 3], "x": 65, "y": 64, "flags": 4},
{"matrix": [4, 2], "x": 51, "y": 62, "flags": 4},
{"x": 43, "y": 62, "flags": 2},
{"matrix": [4, 1], "x": 36, "y": 62, "flags": 4},
{"matrix": [5, 5], "x": 152, "y": 4, "flags": 4},
{"x": 159, "y": 4, "flags": 2},
{"matrix": [5, 4], "x": 166, "y": 2, "flags": 4},
{"matrix": [5, 3], "x": 181, "y": 0, "flags": 4},
{"x": 188, "y": 4, "flags": 2},
{"matrix": [5, 2], "x": 195, "y": 2, "flags": 4},
{"matrix": [5, 1], "x": 210, "y": 6, "flags": 4},
{"x": 217, "y": 4, "flags": 2},
{"matrix": [5, 0], "x": 224, "y": 8, "flags": 4},
{"matrix": [6, 0], "x": 224, "y": 23, "flags": 4},
{"matrix": [6, 1], "x": 210, "y": 21, "flags": 4},
{"matrix": [6, 2], "x": 195, "y": 17, "flags": 4},
{"matrix": [6, 3], "x": 181, "y": 15, "flags": 4},
{"matrix": [6, 4], "x": 166, "y": 17, "flags": 4},
{"matrix": [6, 5], "x": 152, "y": 19, "flags": 4},
{"matrix": [7, 5], "x": 152, "y": 34, "flags": 4},
{"matrix": [7, 4], "x": 166, "y": 32, "flags": 4},
{"matrix": [7, 3], "x": 181, "y": 30, "flags": 4},
{"matrix": [7, 2], "x": 195, "y": 32, "flags": 4},
{"matrix": [7, 1], "x": 210, "y": 36, "flags": 4},
{"matrix": [7, 0], "x": 224, "y": 38, "flags": 4},
{"matrix": [8, 0], "x": 224, "y": 53, "flags": 4},
{"x": 217, "y": 52, "flags": 2},
{"matrix": [8, 1], "x": 210, "y": 51, "flags": 4},
{"matrix": [8, 2], "x": 195, "y": 47, "flags": 4},
{"matrix": [8, 3], "x": 181, "y": 45, "flags": 4},
{"matrix": [8, 4], "x": 166, "y": 47, "flags": 4},
{"matrix": [8, 5], "x": 152, "y": 49, "flags": 4},
{"x": 159, "y": 45, "flags": 2},
{"matrix": [9, 5], "x": 137, "y": 41, "flags": 4},
{"matrix": [9, 4], "x": 137, "y": 64, "flags": 4},
{"matrix": [9, 3], "x": 159, "y": 64, "flags": 4},
{"matrix": [9, 2], "x": 173, "y": 62, "flags": 4},
{"x": 180, "y": 62, "flags": 2},
{"matrix": [9, 1], "x": 188, "y": 62, "flags": 4}
],
"max_brightness": 175,
"sleep": true,
"split": true,
"split_count": [35, 35]
},
"split": {
@ -29,6 +115,19 @@
"matrix": [5, 0]
},
"enabled": true,
"encoder": {
"right": {
"rotary": [
{"pin_a": "F4", "pin_b": "F5", "resolution": 2}
]
}
},
"handedness": {
"pin": "B5"
},
"serial": {
"pin": "D2"
},
"transport": {
"sync": {
"indicators": true,
@ -48,10 +147,8 @@
"pid": "0x23B0",
"vid": "0xFEED"
},
"host": {
"default": {
"nkro": true
}
"ws2812": {
"pin": "D3"
},
"layouts": {
"LAYOUT": {

View File

@ -1,34 +0,0 @@
{
"build": {
"lto": true
},
"pin_compatible": "promicro",
"processor": "atmega32u4",
"encoder": {
"rotary": [
{"pin_a": "F5", "pin_b": "F4", "resolution": 2}
]
},
"matrix_pins": {
"cols": ["B1", "B2", "B3", "B6", "F7", "F6"],
"rows": ["D4", "C6", "D7", "E6", "B4"]
},
"split": {
"encoder": {
"right": {
"rotary": [
{"pin_a": "F4", "pin_b": "F5", "resolution": 2}
]
}
},
"handedness": {
"pin": "B5"
},
"serial": {
"pin": "D2"
}
},
"ws2812": {
"pin": "D3"
}
}

View File

@ -1,2 +0,0 @@
BOOTLOADER = qmk-hid
BOOTLOADER_SIZE = 512

View File

@ -1,33 +0,0 @@
{
"build": {
"lto": true
},
"development_board": "promicro",
"encoder": {
"rotary": [
{"pin_a": "F5", "pin_b": "F4", "resolution": 2}
]
},
"matrix_pins": {
"cols": ["B1", "B2", "B3", "B6", "F7", "F6"],
"rows": ["D4", "C6", "D7", "E6", "B4"]
},
"split": {
"encoder": {
"right": {
"rotary": [
{"pin_a": "F4", "pin_b": "F5", "resolution": 2}
]
}
},
"handedness": {
"pin": "B5"
},
"serial": {
"pin": "D2"
}
},
"ws2812": {
"pin": "D3"
}
}

View File

@ -9,22 +9,13 @@
* 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 controller/bootloader.
* promicro - This uses the default Caterina bootloader.
* elite_c - This uses the Atmel-DFU bootloader.
* nanoBoot - A tiny 512 byte bootloader giving far more usable memory for features (can be used on both Elite C and Pro Micro).
Make example for this keyboard (after setting up your build environment):
make tweetydabird/lotus58/promicro:default
make tweetydabird/lotus58:default
Flashing example for this keyboard:
make tweetydabird/lotus58/elite_c:default:flash
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).

View File

@ -1,9 +0,0 @@
// Copyright 2024 Markus Knutsson (@TweetyDaBird)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define SERIAL_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the Serial implementation uses the PIO0 peripheral
#define I2C_DRIVER I2CD1
#define I2C1_SDA_PIN GP2
#define I2C1_SCL_PIN GP3

View File

@ -1,21 +0,0 @@
/* Copyright 2022 QMK
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* 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/>.
*/
#pragma once
#define HAL_USE_I2C TRUE
#include_next <halconf.h>

View File

@ -1,32 +0,0 @@
{
"development_board": "promicro_rp2040",
"encoder": {
"rotary": [
{"pin_a": "GP28", "pin_b": "GP29", "resolution": 2}
]
},
"matrix_pins": {
"cols": ["GP22", "GP23", "GP20", "GP21", "GP26", "GP27"],
"rows": ["GP4", "GP5", "GP6", "GP7", "GP8"]
},
"split": {
"encoder": {
"right": {
"rotary": [
{"pin_a": "GP29", "pin_b": "GP28", "resolution": 2}
]
}
},
"serial": {
"driver": "vendor",
"pin": "GP1"
},
"handedness": {
"pin": "GP9"
}
},
"ws2812": {
"driver": "vendor",
"pin": "GP0"
}
}

View File

@ -1,22 +0,0 @@
/* Copyright 2022 QMK
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* 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/>.
*/
#pragma once
#include_next <mcuconf.h>
#undef RP_I2C_USE_I2C1
#define RP_I2C_USE_I2C1 TRUE