Compare commits

...

21 Commits

Author SHA1 Message Date
Ryan
979ec4d9b6 Merge b6cdbaa45d050b5e1a11dc9f23d69054faa0a7b7 into d5a042498770050a3d2f002540413ba14dfaf8d1 2025-01-01 16:57:28 +11:00
QMK Bot
d5a0424987 [CI] Regenerate Files (#24772)
Regenerate Files
2025-01-01 02:22:28 +00:00
QMK Bot
1e6eb5e35c Merge remote-tracking branch 'origin/master' into develop 2025-01-01 02:09:51 +00:00
QMK Bot
57f89e5388 [CI] Regenerate Files (#24770)
Regenerate Files
2025-01-01 13:02:16 +11:00
QMK Bot
4d182ec117 Merge remote-tracking branch 'origin/master' into develop 2025-01-01 01:59:15 +00:00
Joel Challis
53680fa6da Fix g_led_config parse warning (#24769) 2025-01-01 01:58:41 +00:00
QMK Bot
08c1c045f9 Merge remote-tracking branch 'origin/master' into develop 2024-12-31 12:36:59 +00:00
Joel Challis
fe2200f73a Remove invalid "effect_max" animation from keyboards (#24767) 2024-12-31 12:36:24 +00:00
QMK Bot
efcd6187d1 Merge remote-tracking branch 'origin/master' into develop 2024-12-30 21:45:28 +00:00
chillKB
fd0a552fc1 [Keyboard] Ghoul TKL (#24762)
Co-authored-by: jack <jack@pngu.org>
2024-12-30 13:44:51 -08:00
QMK Bot
92534d8e3d Merge remote-tracking branch 'origin/master' into develop 2024-12-27 19:43:49 +00:00
Joel Challis
f549948bbd Skip parsing g_led_config when matrix_size is missing (#24739) 2024-12-28 06:42:54 +11:00
QMK Bot
4d3d8887e7 Merge remote-tracking branch 'origin/master' into develop 2024-12-27 19:25:25 +00:00
Nick Brassel
5593e73ba7 [bug] Djinn theme fix. (#24754)
Theme fix.
2024-12-28 06:24:53 +11:00
muge
93de533580 Move cxt_studio keyboard to own folder (#24748) 2024-12-26 08:58:26 +00:00
QMK Bot
fc4d9c63fb Merge remote-tracking branch 'origin/master' into develop 2024-12-25 02:58:06 +00:00
Drashna Jaelre
58323017ff Add ArteryTek AT32 dfu to udev rules (#24747) 2024-12-25 02:57:30 +00:00
fauxpark
b6cdbaa45d Format and tweak todo comment 2023-08-27 17:41:21 +10:00
fauxpark
3f645fdbeb Merge branch 'develop' into adafruitble-gatt-battery 2023-08-27 17:37:34 +10:00
fauxpark
0749aa2290 Formatting 2021-10-07 02:39:38 +11:00
fauxpark
56beb6a633 Initial AdafruitBLE GATT Battery Service support 2021-09-30 19:51:34 +10:00
96 changed files with 625 additions and 138 deletions

View File

@ -140,6 +140,9 @@
"custommk/genesis": {
"target": "custommk/genesis/rev1"
},
"cxt_studio":{
"target":"cxt_studio/12e4"
},
"daisy": {
"target": "ktec/daisy"
},

View File

@ -442,6 +442,8 @@ bool bluefruit_le_enable_keyboard(void) {
static const char kGapDevName[] PROGMEM = "AT+GAPDEVNAME=" PRODUCT;
// Turn on keyboard support
static const char kHidEnOn[] PROGMEM = "AT+BLEHIDEN=1";
// Turn on battery service
static const char kBattEnOn[] PROGMEM = "AT+BLEBATTEN=1";
// Adjust intervals to improve latency. This causes the "central"
// system (computer/tablet) to poll us every 10-30 ms. We can't
@ -456,7 +458,7 @@ bool bluefruit_le_enable_keyboard(void) {
// Turn down the power level a bit
static const char kPower[] PROGMEM = "AT+BLEPOWERLEVEL=-12";
static PGM_P const configure_commands[] PROGMEM = {
kEcho, kGapIntervals, kGapDevName, kHidEnOn, kPower, kATZ,
kEcho, kGapIntervals, kGapDevName, kHidEnOn, kBattEnOn, kPower, kATZ,
};
uint8_t i;
@ -555,6 +557,7 @@ void bluefruit_le_task(void) {
state.last_battery_update = timer_read();
state.vbat = analogReadPin(BATTERY_LEVEL_PIN);
bluefruit_le_set_battery_level(100); // TODO
}
#endif
}
@ -683,3 +686,13 @@ bool bluefruit_le_set_power_level(int8_t level) {
snprintf(cmd, sizeof(cmd), "AT+BLEPOWERLEVEL=%d", level);
return at_command(cmd, NULL, 0, false);
}
bool bluefruit_le_set_battery_level(uint8_t level) {
char cmd[18];
if (!state.configured) {
return false;
}
snprintf(cmd, sizeof(cmd), "AT+BLEBATTVAL=%d", level);
return at_command(cmd, NULL, 0, false);
}

View File

@ -51,6 +51,7 @@ extern uint32_t bluefruit_le_read_battery_voltage(void);
extern bool bluefruit_le_set_mode_leds(bool on);
extern bool bluefruit_le_set_power_level(int8_t level);
extern bool bluefruit_le_set_battery_level(uint8_t level);
#ifdef __cplusplus
}

View File

@ -0,0 +1,8 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define CH_CFG_ST_RESOLUTION 16
#define CH_CFG_ST_FREQUENCY 10000
#include_next <chconf.h>

View File

@ -0,0 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define BACKLIGHT_PWM_DRIVER PWMD2
#define BACKLIGHT_PWM_CHANNEL 2
#define BACKLIGHT_PAL_MODE 2

View File

@ -0,0 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define HAL_USE_PWM TRUE
#include_next <halconf.h>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,24 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
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_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_all(
_______, KC_VOLU, KC_VOLD, KC_MUTE, _______, KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, _______, _______, _______, KC_SLEP, _______, _______, _______,
BL_TOGG, BL_UP, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};

View File

@ -0,0 +1,11 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#include_next <mcuconf.h>
#undef STM32_PWM_USE_TIM2
#define STM32_PWM_USE_TIM2 TRUE
#undef STM32_ST_USE_TIMER
#define STM32_ST_USE_TIMER 14

View File

@ -0,0 +1,27 @@
# Ghoul TKL
![image](https://i.imgur.com/Y39mNA4.jpeg)
A modern replacement PCB for Filco TKLs, adding support for PCB-mount stabilizers and popular alternate layouts. In-switch backlight LEDs are also supported.
* Keyboard Maintainer: [chillKB](https://github.com/chillKB)
* Hardware Supported: Ghoul TKL PCB
* Hardware Availability: [Open source on GitHub](https://github.com/chillKB/ghoulTKL)
Make example for this keyboard (after setting up your build environment):
make chill/ghoul:default
Flashing example for this keyboard:
make chill/ghoul: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 left key (usually Escape) and plug in the keyboard
* **Physical reset button**: Hold the boot button and tap the reset button on the back of the PCB
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@ -0,0 +1,6 @@
// Copyright 2023 Colin Kinloch (@ColinKinloch)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define RGB_MATRIX_TYPING_HEATMAP_SPREAD 9

View File

@ -3,8 +3,6 @@
#include "quantum.h"
static uint8_t anim = 0;
#ifdef ENCODER_ENABLE
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) {
@ -21,32 +19,26 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
break;
case 1: {
if (clockwise) {
rgblight_increase_hue();
rgb_matrix_increase_hue();
} else {
rgblight_decrease_hue();
rgb_matrix_decrease_hue();
}
}
break;
case 2: {
if (clockwise) {
rgblight_increase_val();
rgb_matrix_increase_val();
} else {
rgblight_decrease_val();
rgb_matrix_decrease_val();
}
}
break;
case 3: {
if (clockwise) {
anim++;
rgb_matrix_step();
} else {
anim--;
rgb_matrix_step_reverse();
}
if (anim >= RGB_MATRIX_EFFECT_MAX) {
anim = 0;
} else if (anim < 0) {
anim = RGB_MATRIX_EFFECT_MAX - 1;
}
rgblight_mode(anim);
}
break;
}

View File

@ -1,6 +1,6 @@
{
"manufacturer": "CXT",
"keyboard_name": "cxt_studio",
"keyboard_name": "cxt_studio 12E4",
"maintainer": "ColinKinloch",
"bootloader": "atmel-dfu",
"diode_direction": "ROW2COL",

View File

@ -1,5 +1,5 @@
{
"keyboard": "cxt_studio",
"keyboard": "cxt_studio/12e4",
"keymap": "default",
"layout": "LAYOUT",
"layers": [

View File

@ -1,20 +1,20 @@
# cxt_studio
# cxt_studio/12e4
![cxt_studio](https://i.imgur.com/AMCTioSh.jpeg)
![cxt_studio/12e4](https://i.imgur.com/AMCTioSh.jpeg)
3x4 ortho rgb lighting 4 knobs.
* Keyboard Maintainer: [Colin Kinloch](https://github.com/ColinKinloch)
* Hardware Supported: CXT-Studio
* Hardware Supported: CXT-Studio/12E4
* Hardware Availability: AliExpress. I think the manufacturer is on Taobao.
Make example for this keyboard (after setting up your build environment):
make cxt_studio:default
make cxt_studio/12e4:default
Flashing example for this keyboard:
make cxt_studio:default:flash
make cxt_studio/12e4: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,22 +0,0 @@
// Copyright 2023 Colin Kinloch (@ColinKinloch)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define RGB_MATRIX_TYPING_HEATMAP_SPREAD 9
/*
* 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

View File

@ -119,8 +119,7 @@
"solid_reactive_multinexus": true,
"solid_splash": true,
"wave_left_right": true,
"wave_up_down": true,
"effect_max": true
"wave_up_down": true
},
"layout": [
{"matrix":[0, 0], "flags":1, "x":0, "y":0},

View File

@ -136,8 +136,7 @@
"solid_reactive_multinexus": true,
"solid_splash": true,
"wave_left_right": true,
"wave_up_down": true,
"effect_max": true
"wave_up_down": true
},
"layout": [
{"matrix":[0, 0], "flags":1, "x":0, "y":0},

View File

@ -43,13 +43,13 @@ static painter_font_handle_t thintel;
enum {
RGB_MATRIX_EFFECT_NONE,
# include "rgb_matrix_effects.inc"
# undef RGB_MATRIX_EFFECT
# ifdef RGB_MATRIX_CUSTOM_KB
# include "rgb_matrix_kb.inc"
# endif
# ifdef RGB_MATRIX_CUSTOM_USER
# include "rgb_matrix_user.inc"
# endif
# undef RGB_MATRIX_EFFECT
};
# define RGB_MATRIX_EFFECT(x) \
@ -60,13 +60,13 @@ const char *rgb_matrix_name(uint8_t effect) {
case RGB_MATRIX_EFFECT_NONE:
return "NONE";
# include "rgb_matrix_effects.inc"
# undef RGB_MATRIX_EFFECT
# ifdef RGB_MATRIX_CUSTOM_KB
# include "rgb_matrix_kb.inc"
# endif
# ifdef RGB_MATRIX_CUSTOM_USER
# include "rgb_matrix_user.inc"
# endif
# undef RGB_MATRIX_EFFECT
default:
return "UNKNOWN";
}

View File

@ -773,23 +773,24 @@ def find_keyboard_c(keyboard):
def _extract_led_config(info_data, keyboard):
"""Scan all <keyboard>.c files for led config
"""
cols = info_data['matrix_size']['cols']
rows = info_data['matrix_size']['rows']
for feature in ['rgb_matrix', 'led_matrix']:
if info_data.get('features', {}).get(feature, False) or feature in info_data:
# Only attempt search if dd led config is missing
if 'layout' not in info_data.get(feature, {}):
# Process
for file in find_keyboard_c(keyboard):
try:
ret = find_led_config(file, cols, rows)
if ret:
info_data[feature] = info_data.get(feature, {})
info_data[feature]['layout'] = ret
except Exception as e:
_log_warning(info_data, f'led_config: {file.name}: {e}')
cols = info_data.get('matrix_size', {}).get('cols')
rows = info_data.get('matrix_size', {}).get('rows')
if cols and rows:
# Process
for file in find_keyboard_c(keyboard):
try:
ret = find_led_config(file, cols, rows)
if ret:
info_data[feature] = info_data.get(feature, {})
info_data[feature]['layout'] = ret
except Exception as e:
_log_warning(info_data, f'led_config: {file.name}: {e}')
else:
_log_warning(info_data, 'led_config: matrix size required to parse g_led_config')
if info_data[feature].get('layout', None) and not info_data[feature].get('led_count', None):
info_data[feature]['led_count'] = len(info_data[feature]['layout'])

View File

@ -1,4 +1,4 @@
// Copyright 2024 QMK
// Copyright 2025 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
/*******************************************************************************

View File

@ -1,4 +1,4 @@
// Copyright 2024 QMK
// Copyright 2025 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
/*******************************************************************************

View File

@ -1,4 +1,4 @@
// Copyright 2024 QMK
// Copyright 2025 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
/*******************************************************************************

View File

@ -1,4 +1,4 @@
// Copyright 2024 QMK
// Copyright 2025 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
/*******************************************************************************

View File

@ -1,4 +1,4 @@
// Copyright 2024 QMK
// Copyright 2025 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
/*******************************************************************************

View File

@ -1,4 +1,4 @@
// Copyright 2024 QMK
// Copyright 2025 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
/*******************************************************************************

View File

@ -1,4 +1,4 @@
// Copyright 2024 QMK
// Copyright 2025 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
/*******************************************************************************

View File

@ -1,4 +1,4 @@
// Copyright 2024 QMK
// Copyright 2025 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
/*******************************************************************************

View File

@ -1,4 +1,4 @@
// Copyright 2024 QMK
// Copyright 2025 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
/*******************************************************************************

View File

@ -1,4 +1,4 @@
// Copyright 2024 QMK
// Copyright 2025 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
/*******************************************************************************

Some files were not shown because too many files have changed in this diff Show More