diff --git a/keyboards/magic_force/mf17/config.h b/keyboards/magic_force/mf17/config.h new file mode 100644 index 00000000000..474aaecf53d --- /dev/null +++ b/keyboards/magic_force/mf17/config.h @@ -0,0 +1,9 @@ +// Copyright 2026 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define WS2812_PWM_DRIVER PWMD15 +#define WS2812_PWM_CHANNEL 1 +#define WS2812_PWM_PAL_MODE 0 +#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM5 +#define WS2812_PWM_DMA_CHANNEL 5 diff --git a/keyboards/magic_force/mf17/halconf.h b/keyboards/magic_force/mf17/halconf.h new file mode 100644 index 00000000000..1cef6b6b286 --- /dev/null +++ b/keyboards/magic_force/mf17/halconf.h @@ -0,0 +1,7 @@ +// Copyright 2026 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/magic_force/mf17/keyboard.json b/keyboards/magic_force/mf17/keyboard.json index c0f0e6bd57e..ac759c84638 100644 --- a/keyboards/magic_force/mf17/keyboard.json +++ b/keyboards/magic_force/mf17/keyboard.json @@ -28,6 +28,7 @@ "rgb_matrix": true }, "ws2812": { + "driver": "pwm", "pin": "A2" }, "rgb_matrix": { @@ -78,23 +79,23 @@ }, "driver": "ws2812", "layout": [ - {"flags": 1, "matrix": [4, 1], "x": 37, "y": 64}, - {"flags": 1, "matrix": [4, 2], "x": 150, "y": 64}, - {"flags": 1, "matrix": [4, 3], "x": 224, "y": 56}, - {"flags": 1, "matrix": [3, 0], "x": 0, "y": 48}, - {"flags": 1, "matrix": [3, 1], "x": 75, "y": 48}, - {"flags": 1, "matrix": [3, 2], "x": 150, "y": 48}, - {"flags": 1, "matrix": [2, 0], "x": 0, "y": 32}, - {"flags": 1, "matrix": [2, 1], "x": 75, "y": 32}, - {"flags": 1, "matrix": [2, 2], "x": 150, "y": 32}, - {"flags": 1, "matrix": [2, 3], "x": 224, "y": 24}, - {"flags": 1, "matrix": [1, 0], "x": 0, "y": 16}, - {"flags": 1, "matrix": [1, 1], "x": 75, "y": 16}, - {"flags": 1, "matrix": [1, 2], "x": 150, "y": 16}, - {"flags": 1, "matrix": [0, 0], "x": 0, "y": 0}, - {"flags": 1, "matrix": [0, 1], "x": 75, "y": 0}, - {"flags": 1, "matrix": [0, 2], "x": 150, "y": 0}, - {"flags": 1, "matrix": [0, 3], "x": 224, "y": 0} + {"flags": 4, "matrix": [4, 1], "x": 37, "y": 64}, + {"flags": 4, "matrix": [4, 2], "x": 150, "y": 64}, + {"flags": 4, "matrix": [4, 3], "x": 224, "y": 56}, + {"flags": 4, "matrix": [3, 0], "x": 0, "y": 48}, + {"flags": 4, "matrix": [3, 1], "x": 75, "y": 48}, + {"flags": 4, "matrix": [3, 2], "x": 150, "y": 48}, + {"flags": 4, "matrix": [2, 0], "x": 0, "y": 32}, + {"flags": 4, "matrix": [2, 1], "x": 75, "y": 32}, + {"flags": 4, "matrix": [2, 2], "x": 150, "y": 32}, + {"flags": 4, "matrix": [2, 3], "x": 224, "y": 24}, + {"flags": 4, "matrix": [1, 0], "x": 0, "y": 16}, + {"flags": 4, "matrix": [1, 1], "x": 75, "y": 16}, + {"flags": 4, "matrix": [1, 2], "x": 150, "y": 16}, + {"flags": 4, "matrix": [0, 0], "x": 0, "y": 0}, + {"flags": 4, "matrix": [0, 1], "x": 75, "y": 0}, + {"flags": 4, "matrix": [0, 2], "x": 150, "y": 0}, + {"flags": 4, "matrix": [0, 3], "x": 224, "y": 0} ], "max_brightness": 180, "sleep": true diff --git a/keyboards/magic_force/mf17/keymaps/default/keymap.c b/keyboards/magic_force/mf17/keymaps/default/keymap.c index 867d292b88c..d9f9536904a 100755 --- a/keyboards/magic_force/mf17/keymaps/default/keymap.c +++ b/keyboards/magic_force/mf17/keymaps/default/keymap.c @@ -1,32 +1,20 @@ -/* -Copyright 2012,2013 gezhaoyou - -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 2012,2013 gezhaoyou +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_numpad_5x4( - KC_NUM_LOCK, KC_PSLS, KC_PAST, LT(1, KC_PMNS), - KC_P7, KC_P8, KC_P9, - KC_P4, KC_P5, KC_P6, KC_PPLS, - KC_P1, KC_P2, KC_P3, - KC_P0, KC_PDOT, KC_PENT), - [1] = LAYOUT_numpad_5x4( - KC_TRNS, KC_CALCULATOR, KC_BSPC, KC_TRNS, - RM_NEXT, RM_VALU, RM_HUEU, - RM_SPDD, RM_TOGG, RM_SPDU, QK_BOOTLOADER, - RM_PREV, RM_VALD, RM_HUED, - KC_TRNS, KC_TRNS, QK_CLEAR_EEPROM), + [0] = LAYOUT_numpad_5x4( + KC_NUM, KC_PSLS, KC_PAST, LT(1, KC_PMNS), + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, + KC_P0, KC_PDOT, KC_PENT + ), + [1] = LAYOUT_numpad_5x4( + _______, KC_CALC, KC_BSPC, _______, + RM_NEXT, RM_VALU, RM_HUEU, + RM_SPDD, RM_TOGG, RM_SPDU, QK_BOOT, + RM_PREV, RM_VALD, RM_HUED, + _______, _______, EE_CLR + ), }; diff --git a/keyboards/magic_force/mf17/mcuconf.h b/keyboards/magic_force/mf17/mcuconf.h new file mode 100644 index 00000000000..313134465c6 --- /dev/null +++ b/keyboards/magic_force/mf17/mcuconf.h @@ -0,0 +1,10 @@ +// Copyright 2026 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM15 +#define STM32_PWM_USE_TIM15 TRUE + +#define STM32_TIM15_SUPPRESS_ISR diff --git a/keyboards/magic_force/mf17/readme.md b/keyboards/magic_force/mf17/readme.md index bb75cadfe9c..ed3a67702ec 100644 --- a/keyboards/magic_force/mf17/readme.md +++ b/keyboards/magic_force/mf17/readme.md @@ -4,6 +4,7 @@ A customizable 17 keyboard, support both HOTSWAP and SOLDER. * Keyboard Maintainer: [gezhaoyou](https://github.com/gezhaoyou) * Hardware Supported: [gezhaoyou](https://github.com/gezhaoyou) + Make example for this keyboard (after setting up your build environment): make magic_force/mf17:default