From 89921e917ab68bd47486a75b8c62fb13e3b26782 Mon Sep 17 00:00:00 2001 From: Gordon Date: Thu, 16 Jun 2022 18:35:13 -0400 Subject: [PATCH 1/3] [Keyboard] Fix 1U space in Keebio/sinc/rev2 layout macros (#16901) --- keyboards/keebio/sinc/rev2/rev2.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/keyboards/keebio/sinc/rev2/rev2.h b/keyboards/keebio/sinc/rev2/rev2.h index 8fa6016a87..15d4b402b0 100644 --- a/keyboards/keebio/sinc/rev2/rev2.h +++ b/keyboards/keebio/sinc/rev2/rev2.h @@ -40,7 +40,7 @@ along with this program. If not, see . { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ { KC_NO, KC_NO, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \ - { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \ + { KC_NO, KC_NO, LE3, LE4, LE5, LE6, LE7, LE8, KC_NO }, \ { KC_NO, KC_NO, LF3, LF4, LF5, LF6, LF7, LF8, LF9 }, \ { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \ { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, KC_NO }, \ @@ -63,7 +63,7 @@ along with this program. If not, see . { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ { KC_NO, KC_NO, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \ - { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \ + { KC_NO, KC_NO, LE3, LE4, LE5, LE6, LE7, LE8, KC_NO }, \ { KC_NO, KC_NO, LF3, LF4, LF5, LF6, LF7, LF8, LF9 }, \ { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \ { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9 }, \ @@ -86,7 +86,7 @@ along with this program. If not, see . { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ { LD1, LD2, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \ - { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \ + { LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, KC_NO }, \ { LF1, KC_NO, LF3, LF4, LF5, LF6, LF7, LF8, LF9 }, \ { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \ { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, KC_NO }, \ @@ -109,7 +109,7 @@ along with this program. If not, see . { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ { LD1, LD2, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \ - { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \ + { LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, KC_NO }, \ { LF1, KC_NO, LF3, LF4, LF5, LF6, LF7, LF8, LF9 }, \ { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \ { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9 }, \ @@ -132,7 +132,7 @@ along with this program. If not, see . { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ { KC_NO, KC_NO, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \ - { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \ + { KC_NO, KC_NO, LE3, LE4, LE5, LE6, LE7, LE8, KC_NO }, \ { KC_NO, KC_NO, LF3, LF4, LF5, LF6, LF7, LF8, LF9 }, \ { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \ { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, KC_NO }, \ @@ -155,7 +155,7 @@ along with this program. If not, see . { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ { KC_NO, KC_NO, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \ - { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \ + { KC_NO, KC_NO, LE3, LE4, LE5, LE6, LE7, LE8, KC_NO }, \ { KC_NO, KC_NO, LF3, LF4, LF5, LF6, LF7, LF8, LF9 }, \ { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \ { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, RB9 }, \ @@ -178,7 +178,7 @@ along with this program. If not, see . { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ { LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \ - { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \ + { LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, KC_NO }, \ { LF1, KC_NO, LF3, LF4, LF5, LF6, LF7, LF8, LF9 }, \ { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \ { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, KC_NO }, \ @@ -201,7 +201,7 @@ along with this program. If not, see . { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \ { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \ { LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \ - { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \ + { LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, KC_NO }, \ { LF1, KC_NO, LF3, LF4, LF5, LF6, LF7, LF8, LF9 }, \ { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \ { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, RB9 }, \ From 82a7f4addad0d73075bc699b379e01e0ed8fcea3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Szczepaniak?= Date: Fri, 17 Jun 2022 00:35:40 +0200 Subject: [PATCH 2/3] =?UTF-8?q?[handwired/macroboard]=20Add=20separate=20f?= =?UTF-8?q?401=20and=20f411=20configs=E2=80=A6=20(#16338)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Drashna Jaelre --- keyboards/handwired/macroboard/config.h | 78 +++---------------- keyboards/handwired/macroboard/f401/config.h | 23 ++++++ .../handwired/macroboard/{ => f401}/rules.mk | 1 + keyboards/handwired/macroboard/f411/config.h | 40 ++++++++++ keyboards/handwired/macroboard/f411/rules.mk | 21 +++++ keyboards/handwired/macroboard/halconf.h | 28 +++++++ .../handwired/macroboard/keymaps/via/config.h | 18 +++++ .../handwired/macroboard/keymaps/via/keymap.c | 61 +++++++++++++++ .../handwired/macroboard/keymaps/via/rules.mk | 1 + keyboards/handwired/macroboard/mcuconf.h | 30 +++++++ 10 files changed, 233 insertions(+), 68 deletions(-) create mode 100644 keyboards/handwired/macroboard/f401/config.h rename keyboards/handwired/macroboard/{ => f401}/rules.mk (96%) create mode 100644 keyboards/handwired/macroboard/f411/config.h create mode 100644 keyboards/handwired/macroboard/f411/rules.mk create mode 100644 keyboards/handwired/macroboard/halconf.h create mode 100644 keyboards/handwired/macroboard/keymaps/via/config.h create mode 100644 keyboards/handwired/macroboard/keymaps/via/keymap.c create mode 100644 keyboards/handwired/macroboard/keymaps/via/rules.mk create mode 100644 keyboards/handwired/macroboard/mcuconf.h diff --git a/keyboards/handwired/macroboard/config.h b/keyboards/handwired/macroboard/config.h index fa49ae4e6f..42a4deb5d8 100644 --- a/keyboards/handwired/macroboard/config.h +++ b/keyboards/handwired/macroboard/config.h @@ -21,7 +21,7 @@ along with this program. If not, see . /* USB Device descriptor parameter */ #define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6465 +#define PRODUCT_ID 0x2137 #define DEVICE_VER 0x0001 #define MANUFACTURER QMK @@ -39,35 +39,26 @@ along with this program. If not, see . * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) * */ -#define MATRIX_ROW_PINS { A15, B3, B4, B5, B7 } -#define MATRIX_COL_PINS { B12, B13, B14, B15, A8, A10 } #define UNUSED_PINS #define DIODE_DIRECTION COL2ROW -/* - * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. - */ -//#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 - -//#define LED_NUM_LOCK_PIN B0 -//#define LED_CAPS_LOCK_PIN B1 -//#define LED_SCROLL_LOCK_PIN B2 -//#define LED_COMPOSE_PIN B3 -//#define LED_KANA_PIN B4 - -//#define BACKLIGHT_PIN B7 -//#define BACKLIGHT_LEVELS 3 -// #define BACKLIGHT_BREATHING - #define RGB_DI_PIN B9 +#define WS2812_PWM_DRIVER PWMD4 +#define WS2812_PWM_CHANNEL 4 +#define WS2812_PWM_PAL_MODE 2 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM6 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. +#define WS2812_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. +#define WS2812_PWM_TARGET_PERIOD 800000 +#define RGBLIGHT_LED_MAP { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 23, 21, 19, 17, 15, 13, 11, 9, 7, 5, 3, 1 } + #ifdef RGB_DI_PIN # define RGBLED_NUM 24 # define RGBLIGHT_HUE_STEP 8 # define RGBLIGHT_SAT_STEP 8 # define RGBLIGHT_VAL_STEP 8 # define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ -//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ # define RGBLIGHT_EFFECT_BREATHING # define RGBLIGHT_EFFECT_RAINBOW_MOOD # define RGBLIGHT_EFFECT_RAINBOW_SWIRL @@ -82,56 +73,7 @@ along with this program. If not, see . /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - -/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. - * This is useful for the Windows task manager shortcut (ctrl+shift+esc). - */ -//#define GRAVE_ESC_CTRL_OVERRIDE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -//#define FORCE_NKRO - -/* - * 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 - -/* Bootmagic Lite key configuration */ -//#define BOOTMAGIC_LITE_ROW 0 -//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/handwired/macroboard/f401/config.h b/keyboards/handwired/macroboard/f401/config.h new file mode 100644 index 0000000000..5d59d59788 --- /dev/null +++ b/keyboards/handwired/macroboard/f401/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2021 Michał Szczepaniak + +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 . +*/ + +#pragma once + +#include "config_common.h" + +#define MATRIX_ROW_PINS { A4, A3, A2, A1, A0 } +#define MATRIX_COL_PINS { A5, A6, A7, B0, B1, B10 } diff --git a/keyboards/handwired/macroboard/rules.mk b/keyboards/handwired/macroboard/f401/rules.mk similarity index 96% rename from keyboards/handwired/macroboard/rules.mk rename to keyboards/handwired/macroboard/f401/rules.mk index 2c38ac2807..bcb612f5cc 100644 --- a/keyboards/handwired/macroboard/rules.mk +++ b/keyboards/handwired/macroboard/f401/rules.mk @@ -15,5 +15,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +WS2812_DRIVER = pwm AUDIO_ENABLE = no # Audio output KEYBOARD_SHARED_EP = yes diff --git a/keyboards/handwired/macroboard/f411/config.h b/keyboards/handwired/macroboard/f411/config.h new file mode 100644 index 0000000000..d0d88f0c9e --- /dev/null +++ b/keyboards/handwired/macroboard/f411/config.h @@ -0,0 +1,40 @@ +/* +Copyright 2021 Michał Szczepaniak + +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 . +*/ + +#pragma once + +#include "config_common.h" + +#define MATRIX_ROW_PINS { A15, B3, B4, B5, B7 } +#define MATRIX_COL_PINS { B12, B13, B14, B15, A8, A10 } +#define UNUSED_PINS + +#define AUDIO_INIT_DELAY +#define AUDIO_PIN B10 +#define AUDIO_PWM_DRIVER PWMD2 +#define AUDIO_PWM_CHANNEL 3 +#define AUDIO_PWM_PAL_MODE 1 +#define AUDIO_STATE_TIMER GPTD1 + +#define AUDIO_CLICKY +#define AUDIO_CLICKY_FREQ_RANDOMNESS 1.5f + +#ifdef USER_SONG_LIST +#define STARTUP_SONG SONG(RICK_ROLL) +#else +#define STARTUP_SONG SONG(STARTUP_SOUND) +#endif diff --git a/keyboards/handwired/macroboard/f411/rules.mk b/keyboards/handwired/macroboard/f411/rules.mk new file mode 100644 index 0000000000..1bb37ec02c --- /dev/null +++ b/keyboards/handwired/macroboard/f411/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = STM32F411 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +WS2812_DRIVER = pwm +AUDIO_ENABLE = yes # Audio output +AUDIO_DRIVER = pwm_hardware +KEYBOARD_SHARED_EP = yes diff --git a/keyboards/handwired/macroboard/halconf.h b/keyboards/handwired/macroboard/halconf.h new file mode 100644 index 0000000000..06585c9d5e --- /dev/null +++ b/keyboards/handwired/macroboard/halconf.h @@ -0,0 +1,28 @@ + +/* Copyright 2020 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/handwired/pill60/blackpill_f401/halconf.h -r platforms/chibios/common/configs/halconf.h` + */ + +#pragma once + +#define HAL_USE_PWM TRUE +#define HAL_USE_GPT TRUE + +#include_next diff --git a/keyboards/handwired/macroboard/keymaps/via/config.h b/keyboards/handwired/macroboard/keymaps/via/config.h new file mode 100644 index 0000000000..6ad05c25bf --- /dev/null +++ b/keyboards/handwired/macroboard/keymaps/via/config.h @@ -0,0 +1,18 @@ +/* Copyright 2021 Michał Szczepaniak + * + * 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 . + */ +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 6 diff --git a/keyboards/handwired/macroboard/keymaps/via/keymap.c b/keyboards/handwired/macroboard/keymaps/via/keymap.c new file mode 100644 index 0000000000..6c77ae14b2 --- /dev/null +++ b/keyboards/handwired/macroboard/keymaps/via/keymap.c @@ -0,0 +1,61 @@ +/* Copyright 2021 Michał Szczepaniak + * + * 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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_5x6( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, + KC_LCTL, KC_LGUI, RGB_TOG, RGB_MODE_FORWARD, RESET, KC_SPC + ), + [1] = LAYOUT_ortho_5x6( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_ortho_5x6( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_ortho_5x6( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [4] = LAYOUT_ortho_5x6( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [5] = LAYOUT_ortho_5x6( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + diff --git a/keyboards/handwired/macroboard/keymaps/via/rules.mk b/keyboards/handwired/macroboard/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/handwired/macroboard/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/handwired/macroboard/mcuconf.h b/keyboards/handwired/macroboard/mcuconf.h new file mode 100644 index 0000000000..5b190d7ec2 --- /dev/null +++ b/keyboards/handwired/macroboard/mcuconf.h @@ -0,0 +1,30 @@ +/* Copyright 2020 Nick Brassel (tzarc) + * + * 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 3 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 . + */ +#pragma once + +#include_next "mcuconf.h" + +#undef STM32_PWM_USE_TIM2 +#define STM32_PWM_USE_TIM2 TRUE + +#undef STM32_PWM_USE_TIM4 +#define STM32_PWM_USE_TIM4 TRUE + +#undef STM32_GPT_USE_TIM1 +#define STM32_GPT_USE_TIM1 TRUE + +#undef STM32_ST_USE_TIMER +#define STM32_ST_USE_TIMER 5 From 6d2f9c9c1ee11445bb2eb6a92f96d0d5ed280ba4 Mon Sep 17 00:00:00 2001 From: Dmitry Nosachev Date: Fri, 17 Jun 2022 01:36:11 +0300 Subject: [PATCH 3/3] [Keyboard] Atreus: add STM32F103C8T6 based variant (#16846) Co-authored-by: Ryan --- keyboards/atreus/atreus.h | 2 + keyboards/atreus/f103/chconf.h | 28 +++++ keyboards/atreus/f103/config.h | 38 ++++++ keyboards/atreus/f103/f103.c | 17 +++ keyboards/atreus/f103/f103.h | 17 +++ keyboards/atreus/f103/halconf.h | 26 ++++ keyboards/atreus/f103/mcuconf.h | 30 +++++ keyboards/atreus/f103/rules.mk | 10 ++ keyboards/atreus/keymaps/quartz64/keymap.c | 137 +++++++++++++++++++++ keyboards/atreus/readme.md | 3 +- 10 files changed, 307 insertions(+), 1 deletion(-) create mode 100644 keyboards/atreus/f103/chconf.h create mode 100644 keyboards/atreus/f103/config.h create mode 100644 keyboards/atreus/f103/f103.c create mode 100644 keyboards/atreus/f103/f103.h create mode 100644 keyboards/atreus/f103/halconf.h create mode 100644 keyboards/atreus/f103/mcuconf.h create mode 100644 keyboards/atreus/f103/rules.mk create mode 100644 keyboards/atreus/keymaps/quartz64/keymap.c diff --git a/keyboards/atreus/atreus.h b/keyboards/atreus/atreus.h index f4e7ba7f39..2753434535 100644 --- a/keyboards/atreus/atreus.h +++ b/keyboards/atreus/atreus.h @@ -28,6 +28,8 @@ #include "teensy2.h" #elif KEYBOARD_atreus_promicro #include "promicro.h" +#elif KEYBOARD_atreus_f103 + #include "f103.h" #endif // This a shortcut to help you visually see your layout. diff --git a/keyboards/atreus/f103/chconf.h b/keyboards/atreus/f103/chconf.h new file mode 100644 index 0000000000..63236f2c2c --- /dev/null +++ b/keyboards/atreus/f103/chconf.h @@ -0,0 +1,28 @@ +/* Copyright 2020 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/handwired/onekey/bluepill/chconf.h -r platforms/chibios/common/configs/chconf.h` + */ + +#pragma once + +#define CH_CFG_ST_TIMEDELTA 0 + +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +#include_next diff --git a/keyboards/atreus/f103/config.h b/keyboards/atreus/f103/config.h new file mode 100644 index 0000000000..e16c9ee930 --- /dev/null +++ b/keyboards/atreus/f103/config.h @@ -0,0 +1,38 @@ +/* Copyright 2022 DmNosachev + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ + +/* key matrix pins */ +#define MATRIX_COL_PINS { B10, B1, B0, A7, A6, B5, B4, B3, A15, A10, A9 } +#define MATRIX_ROW_PINS { A5, A4, A3, A2 } +#define UNUSED_PINS {B12, B13, B14, B15, A8, B6, B7, B8, B9, A1, A0, C15, C14, C13} + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW diff --git a/keyboards/atreus/f103/f103.c b/keyboards/atreus/f103/f103.c new file mode 100644 index 0000000000..acac0ed71c --- /dev/null +++ b/keyboards/atreus/f103/f103.c @@ -0,0 +1,17 @@ +/* Copyright 2022 DmNosachev + * + * 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 "f103.h" diff --git a/keyboards/atreus/f103/f103.h b/keyboards/atreus/f103/f103.h new file mode 100644 index 0000000000..305b26798b --- /dev/null +++ b/keyboards/atreus/f103/f103.h @@ -0,0 +1,17 @@ +/* Copyright 2022 DmNosachev + * + * 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 . + */ + +#pragma once diff --git a/keyboards/atreus/f103/halconf.h b/keyboards/atreus/f103/halconf.h new file mode 100644 index 0000000000..923b4e52d2 --- /dev/null +++ b/keyboards/atreus/f103/halconf.h @@ -0,0 +1,26 @@ +/* Copyright 2020 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/handwired/onekey/bluepill/halconf.h -r platforms/chibios/common/configs/halconf.h` + */ + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/atreus/f103/mcuconf.h b/keyboards/atreus/f103/mcuconf.h new file mode 100644 index 0000000000..5e94a97e21 --- /dev/null +++ b/keyboards/atreus/f103/mcuconf.h @@ -0,0 +1,30 @@ +/* Copyright 2020 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/handwired/onekey/bluepill/mcuconf.h -r platforms/chibios/STM32_F103_STM32DUINO/configs/mcuconf.h` + */ + +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM2 +#define STM32_PWM_USE_TIM2 TRUE + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 FALSE diff --git a/keyboards/atreus/f103/rules.mk b/keyboards/atreus/f103/rules.mk new file mode 100644 index 0000000000..a18b4fa231 --- /dev/null +++ b/keyboards/atreus/f103/rules.mk @@ -0,0 +1,10 @@ +# MCU name +MCU = STM32F103 + +# Bootloader selection +BOOTLOADER = stm32duino + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + +BOOTMAGIC_ENABLE = yes \ No newline at end of file diff --git a/keyboards/atreus/keymaps/quartz64/keymap.c b/keyboards/atreus/keymaps/quartz64/keymap.c new file mode 100644 index 0000000000..c62011e4b3 --- /dev/null +++ b/keyboards/atreus/keymaps/quartz64/keymap.c @@ -0,0 +1,137 @@ +/* +Copyright 2022 DmNosachev + +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 + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _QW, + _RS, + _LW +}; + +#define MC1 COMP_FR_QUOTES +#define MC2 COMP_NBSP_EM_DASH +#define MC3 COMP_NBSP + +enum custom_keycodes { + COMP_FR_QUOTES = SAFE_RANGE, // Compose: french quotes + COMP_NBSP_EM_DASH, // Compose: nbsp followed by em dash + COMP_NBSP, // Compose: nbsp + PWD1, + PWD2, + PWD3, // KP password +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + ,----------------------------------. ,----------------------------------. + |Q/Alt | W | E | R | T | | Y | U | I | O | P | + |------+------+------+------+------| |------+------+------+------+------| + |A/Ctrl| S | D | F | G | | H | J | K | L |;/Ctrl| + |------+------+------+------+------|------.,------|------+------+------+------+------| + |Z/Shft| X | C | V | B |Bkspc ||Delete| N | M | , | . |?/Shft| + |------+------+------+------+------| || |------+------+------+------+------| + | ~ | Tab | - | GUI |Spc/LW|------'`------|Ent/RS| |\ | [ | ] | "' | + `----------------------------------' `----------------------------------' +*/ + [_QW] = LAYOUT( /* QWERTY */ + LALT_T(KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + LCTL_T(KC_A), KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, RCTL_T(KC_SCLN), + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_GRV, KC_TAB, KC_MINS, KC_LGUI, LT(_LW, KC_SPC), KC_BSPC, KC_DEL, LT(_RS, KC_ENT), KC_BSLS, KC_LBRC, KC_RBRC, KC_QUOT + ), + +/* + ,----------------------------------. ,----------------------------------. + | PrnSc| pwd1 | up | pwd2 | PgUp | | Home | F7 | F8 | F9 | | + |------+------+------+------+------| |------+------+------+------+------| + | trns | left | down | right| PgDn | | End | F4 | F5 | F6 | trns | + |------+------+------+------+------|------.,------|------+------+------+------+------| + | trns | MC2 | MC3 | ( | ) | || | AltGr| F1 | F2 | F3 | trns | + |------+------+------+------+------| || |------+------+------+------+------| + | trns | C+S | Ins | MC1 | trns |------'`------| trns | F10 | F11 | F12 | trns | + `----------------------------------' `----------------------------------' +*/ + + [_RS] = LAYOUT( /* RAISE */ + KC_PSCR, PWD1, KC_UP, PWD2, KC_PGUP, KC_HOME, KC_F7, KC_F8, KC_F9, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, KC_F4, KC_F5, KC_F6, _______, + _______, MC2, MC3, KC_LPRN, KC_RPRN, KC_RALT, KC_F1, KC_F2, KC_F3, _______, + _______, LCTL(KC_LSFT), _______, MC1, _______, _______, _______, _______, KC_F10, KC_F11, KC_F12, _______ + ), + +/* + ,----------------------------------. ,----------------------------------. + | ! | @ | # | $ | % | | / | 7 | 8 | 9 | . | + |------+------+------+------+------| |------+------+------+------+------| + | trns | ^ | & | * | PWD3 | | * | 4 | 5 | 6 | trns | + |------+------+------+------+------|------.,------|------+------+------+------+------| + | trns |r_tog | r_hue| r_sat| r_val| || | + | 1 | 2 | 3 | trns | + |------+------+------+------+------| || |------+------+------+------+------| + | trns | Esc |RESET |capslk| trns |------'`------| trns | 0 | - | += | trns | + `----------------------------------' `----------------------------------' +*/ + + [_LW] = LAYOUT( /* LOWER */ + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PSLS, KC_7, KC_8, KC_9, KC_PDOT, + _______, KC_CIRC, KC_AMPR, KC_ASTR, PWD3, KC_PAST, KC_4, KC_5, KC_6, _______, + _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, KC_PPLS, KC_1, KC_2, KC_3, _______, + _______, KC_ESC , RESET, KC_CAPS, _______, _______, _______, _______, KC_0, KC_PMNS, KC_EQL, _______ + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case MC1: /* French quotes */ + if (record->event.pressed) { + SEND_STRING(SS_TAP(X_RALT) SS_DELAY(100) "<<" SS_DELAY(100) SS_TAP(X_RALT) SS_DELAY(100) ">>" SS_TAP(X_LEFT)); + } + break; + + case MC2: /* NB-space + mdash + space */ + if (record->event.pressed) { + SEND_STRING(SS_TAP(X_RALT) SS_DELAY(100) " " SS_DELAY(100) SS_TAP(X_RALT) SS_DELAY(100) "--- "); + } + break; + + case MC3: /* NB-space */ + if (record->event.pressed) { + SEND_STRING(SS_TAP(X_RALT) SS_DELAY(100) " "); + } + break; + + case PWD1: + if (record->event.pressed) { + SEND_STRING("NakedLunch1991\n"); + } + break; + + case PWD2: + if (record->event.pressed) { + SEND_STRING("O94nx4sUWHc4akud\n"); + } + break; + + case PWD3: + if (record->event.pressed) { + SEND_STRING("Q123qQ123q\n"); + } + break; + } + return true; +}; \ No newline at end of file diff --git a/keyboards/atreus/readme.md b/keyboards/atreus/readme.md index 0f499ca2a2..84c541e8d5 100644 --- a/keyboards/atreus/readme.md +++ b/keyboards/atreus/readme.md @@ -8,7 +8,7 @@ Keyboard Maintainer: [Phil Hagelberg](https://github.com/technomancy) Hardware Supported: Atreus, PCB-based or hand-wired Hardware Availability: https://atreus.technomancy.us -These configuration files are specifically for the Atreus keyboards created by Phil Hagelberg (@technomancy). This keyboard is available in two variants: one powered by a Teensy 2 (usually hand-wired), one powered by an A-Star (usually using a PCB). You will need to use different `make` commands depending on the variant you have; see examples below. +These configuration files are specifically for the Atreus keyboards created by Phil Hagelberg (@technomancy). This keyboard is available in several variants: powered by a Teensy 2 or STM32F103C8T6 based MCU board (usually hand-wired), powered by an A-Star or ProMicro (usually using a PCB). You will need to use different `make` commands depending on the variant you have; see examples below. Make example for this keyboard (after setting up your build environment): @@ -19,6 +19,7 @@ If you would like to use one of the alternative controllers: make atreus/astar:default:flash make atreus/teensy2:default:flash make atreus/promicro:default:flash + make atreus/f103:default:flash If your keyboard layout is a mirror image of what you expected (i.e. you do not get QWERTY on the left but YTREWQ on the right), then you have an A-Star powered Atreus (older than March 2016) with PCB labels facing *down* instead of up. Specify that by adding `PCBDOWN=yes` to your `make` commands, e.g.