From f1ccd60458a83b575ec5f13af8b7e1b07587d9f3 Mon Sep 17 00:00:00 2001 From: 4pplet Date: Sat, 23 Jul 2022 22:23:14 +0200 Subject: [Keyboard] 4pplet Perk60 (#16853) * adding perk60 iso adding perk60 iso * Update info.json * Update keyboards/4pplet/perk60_iso/rev_a/rev_a.c * Update keyboards/4pplet/perk60_iso/rev_a/rev_a.c * Delete chconf.h * Update keyboards/4pplet/perk60_iso/rev_a/rules.mk * Update keyboards/4pplet/perk60_iso/rev_a/rev_a.c * Update keyboards/4pplet/perk60_iso/rev_a/rev_a.c * Update rules.mk * Update config.h * removing a few RGB effects * removing more effects * Update keyboards/4pplet/perk60_iso/rev_a/config.h * Update keyboards/4pplet/perk60_iso/keymaps/default/keymap.c * Update keyboards/4pplet/perk60_iso/keymaps/default/keymap.c * Update keyboards/4pplet/perk60_iso/keymaps/via/keymap.c * Update keyboards/4pplet/perk60_iso/keymaps/via/keymap.c * Update keyboards/4pplet/perk60_iso/keymaps/via/keymap.c * Update keyboards/4pplet/perk60_iso/rev_a/rev_a.h * Update keyboards/4pplet/perk60_iso/keymaps/via/keymap.c * Update keyboards/4pplet/perk60_iso/info.json * Update keyboards/4pplet/perk60_iso/rev_a/rules.mk --- keyboards/4pplet/perk60_iso/rev_a/config.h | 79 +++++++++++++++++ keyboards/4pplet/perk60_iso/rev_a/halconf.h | 25 ++++++ keyboards/4pplet/perk60_iso/rev_a/mcuconf.h | 40 +++++++++ keyboards/4pplet/perk60_iso/rev_a/readme.md | 17 ++++ keyboards/4pplet/perk60_iso/rev_a/rev_a.c | 126 ++++++++++++++++++++++++++++ keyboards/4pplet/perk60_iso/rev_a/rev_a.h | 43 ++++++++++ keyboards/4pplet/perk60_iso/rev_a/rules.mk | 25 ++++++ 7 files changed, 355 insertions(+) create mode 100644 keyboards/4pplet/perk60_iso/rev_a/config.h create mode 100644 keyboards/4pplet/perk60_iso/rev_a/halconf.h create mode 100644 keyboards/4pplet/perk60_iso/rev_a/mcuconf.h create mode 100644 keyboards/4pplet/perk60_iso/rev_a/readme.md create mode 100644 keyboards/4pplet/perk60_iso/rev_a/rev_a.c create mode 100644 keyboards/4pplet/perk60_iso/rev_a/rev_a.h create mode 100644 keyboards/4pplet/perk60_iso/rev_a/rules.mk (limited to 'keyboards/4pplet/perk60_iso/rev_a') diff --git a/keyboards/4pplet/perk60_iso/rev_a/config.h b/keyboards/4pplet/perk60_iso/rev_a/config.h new file mode 100644 index 0000000000..d6697ada9e --- /dev/null +++ b/keyboards/4pplet/perk60_iso/rev_a/config.h @@ -0,0 +1,79 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" <4pplet@protonmail.com> + +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 + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4444 +#define PRODUCT_ID 0x0009 +#define DEVICE_VER 0x0001 +#define MANUFACTURER 4pplet +#define PRODUCT Perk60 ISO Rev A + +#define MATRIX_ROWS 10 +#define MATRIX_COLS 7 + +#define MATRIX_COL_PINS { A1, B12, B14, A2, A0, A3, A4} +#define MATRIX_ROW_PINS { C14, C13, B5, B4, B8, A15, B3, B9, A5, A7} +#define DIODE_DIRECTION COL2ROW + +/* 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 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define DRIVER_ADDR_1 0b1010000 +#define DRIVER_COUNT 1 +#define DRIVER_LED_TOTAL 62 +#define ISSI_PWM_FREQUENCY 0b010 + +#define STM32_HSECLK 8000000 + +#define RGB_MATRIX_STARTUP_VAL 80 +#define RGB_MATRIX_KEYPRESSES + +// RGB Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +#define ENABLE_RGB_MATRIX_ALPHAS_MODS +#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_BREATHING +#define ENABLE_RGB_MATRIX_CYCLE_ALL +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +#define ENABLE_RGB_MATRIX_DUAL_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +#define ENABLE_RGB_MATRIX_RAINDROPS +#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define ENABLE_RGB_MATRIX_SPLASH +#define ENABLE_RGB_MATRIX_SOLID_SPLASH + diff --git a/keyboards/4pplet/perk60_iso/rev_a/halconf.h b/keyboards/4pplet/perk60_iso/rev_a/halconf.h new file mode 100644 index 0000000000..a1aac3152d --- /dev/null +++ b/keyboards/4pplet/perk60_iso/rev_a/halconf.h @@ -0,0 +1,25 @@ +/* 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 . + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#define HAL_USE_PWM FALSE + +#define HAL_USE_SPI FALSE + +#include_next diff --git a/keyboards/4pplet/perk60_iso/rev_a/mcuconf.h b/keyboards/4pplet/perk60_iso/rev_a/mcuconf.h new file mode 100644 index 0000000000..97f2ee51ee --- /dev/null +++ b/keyboards/4pplet/perk60_iso/rev_a/mcuconf.h @@ -0,0 +1,40 @@ +/* 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/acheron/austin/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` + */ + +#pragma once + +#include_next +#undef STM32_PLLM_VALUE +#undef STM32_PLLN_VALUE +#undef STM32_PLLP_VALUE +#undef STM32_PLLQ_VALUE +#undef STM32_PPRE1 +#undef STM32_PPRE2 + +#define STM32_PLLM_VALUE 4 +#define STM32_PLLN_VALUE 168 +#define STM32_PLLP_VALUE 4 +#define STM32_PLLQ_VALUE 7 +#define STM32_PPRE1 STM32_PPRE1_DIV2 +#define STM32_PPRE2 STM32_PPRE2_DIV1 + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/4pplet/perk60_iso/rev_a/readme.md b/keyboards/4pplet/perk60_iso/rev_a/readme.md new file mode 100644 index 0000000000..d3390c0c00 --- /dev/null +++ b/keyboards/4pplet/perk60_iso/rev_a/readme.md @@ -0,0 +1,17 @@ +# Perk60 ISO Rev A + +* Keyboard Maintainer: [4pplet](https://github.com/4pplet) +* Hardware Supported: Perk60 ISO Rev A + +Make example for this keyboard (after setting up your build environment): + + make 4pplet/perk60_iso/rev_a:default + +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). + +How to enter bootloader (DFU): +* Press and hold the button on the keyboard (the small one on the same side as the MCU) for more than 1 second. The keyboard will then enter bootloader (DFU) mode and it's ready to flash the firmware. +* Note: If holding the button a shorter time, the keyboard will just reset. If you want to exit bootloader mode without flashing a firmware, dissconnect the keyboard from your PC and reconnect it. + +Alternative option if the firmware is already pre-flashed: +* Unplug your keyboard, hold down the Spacebar and B at the same time, plug in your keyboard and wait a second before releasing the keys. Bootmagic lite is enabled by default. diff --git a/keyboards/4pplet/perk60_iso/rev_a/rev_a.c b/keyboards/4pplet/perk60_iso/rev_a/rev_a.c new file mode 100644 index 0000000000..8f6ef05cec --- /dev/null +++ b/keyboards/4pplet/perk60_iso/rev_a/rev_a.c @@ -0,0 +1,126 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" <4pplet@protonmail.com> + +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 "rev_a.h" + +#ifdef RGB_MATRIX_ENABLE +const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { + { 0, K_2, J_2, L_2 }, //D402 + { 0, K_3, J_3, L_3 }, //D403 + { 0, K_4, J_4, L_4 }, //D404 + { 0, K_5, J_5, L_5 }, //D405 + { 0, K_6, J_6, L_6 }, //D406 + { 0, K_7, J_7, L_7 }, //D407 + { 0, K_8, J_8, L_8 }, //D408 + { 0, K_9, J_9, L_9 }, //D409 + { 0, K_10, J_10, L_10 }, //D410 + { 0, K_11, J_11, L_11 }, //D411 + { 0, K_12, J_12, L_12 }, //D412 + { 0, K_13, J_13, L_13 }, //D413 + { 0, K_14, J_14, L_14 }, //D414 + { 0, K_15, J_15, L_15 }, //D415 + { 0, K_1, J_1, L_1 }, //D401 + { 0, H_4, G_4, I_4 }, //D420 + { 0, H_5, G_5, I_5 }, //D421 + { 0, H_6, G_6, I_6 }, //D422 + { 0, H_7, G_7, I_7 }, //D423 + { 0, H_8, G_8, I_8 }, //D424 + { 0, H_9, G_9, I_9 }, //D425 + { 0, H_10, G_10, I_10 }, //D426 + { 0, H_11, G_11, I_11 }, //D427 + { 0, H_12, G_12, I_12 }, //D428 + { 0, H_13, G_13, I_13 }, //D429 + { 0, H_14, G_14, I_14 }, //D430 + { 0, H_15, G_15, I_15 }, //D431 + { 0, K_16, J_16, L_16 }, //D416 + { 0, H_2, G_2, I_2 }, //D418 + { 0, H_3, G_3, I_3 }, //D419 + { 0, E_5, D_5, F_5 }, //D437 + { 0, E_6, D_6, F_6 }, //D438 + { 0, E_7, D_7, F_7 }, //D439 + { 0, E_8, D_8, F_8 }, //D440 + { 0, E_9, D_9, F_9 }, //D441 + { 0, E_10, D_10, F_10 }, //D442 + { 0, E_11, D_11, F_11 }, //D443 + { 0, E_12, D_12, F_12 }, //D444 + { 0, E_13, D_13, F_13 }, //D445 + { 0, E_14, D_14, F_14 }, //D446 + { 0, H_16, G_16, I_16 }, //D432 + { 0, H_1, G_1, I_1 }, //D417 + { 0, E_3, D_3, F_3 }, //D435 + { 0, E_4, D_4, F_4 }, //D436 + { 0, B_2, A_2, C_2 }, //D450 + { 0, B_3, A_3, C_3 }, //D451 + { 0, B_4, A_4, C_4 }, //D452 + { 0, B_6, A_6, C_6 }, //D454 + { 0, B_8, A_8, C_8 }, //D456 + { 0, B_9, A_9, C_9 }, //D457 + { 0, B_10, A_10, C_10 }, //D458 + { 0, B_12, A_12, C_12 }, //D460 + { 0, B_13, A_13, C_13 }, //D461 + { 0, E_15, D_15, F_15 }, //D447 + { 0, E_1, D_1, F_1 }, //D433 + { 0, E_2, D_2, F_2 }, //D434 + { 0, B_1, A_1, C_1 }, //D449 + { 0, B_7, A_7, C_7 }, //D455 + { 0, B_11, A_11, C_11 }, //D459 + { 0, B_14, A_14, C_14 }, //D462 + { 0, B_15, A_15, C_15 }, //D463 + { 0, B_16, A_16, C_16 } //D464 +}; + +led_config_t g_led_config = { + { + #define XXX NO_LED + + { 0, 2, 4, 6, 8, 10, 12 }, + { 1, 3, 5, 7, 9, 11, XXX }, + { 14, 16, 18, 20, 22, 24, 26 }, + { 15, 17, 19, 21, 23, 25, 13 }, + { 28, 30, 32, 34, 36, 38, 40 }, + { 29, 31, 33, 35, 37, 39, XXX }, + { 41, 43, 45, 47, 49, 51, XXX }, + { 42, 44, 46, 48, 50, 52, 27 }, + { 54, 55, XXX, 57, XXX, 60, 53 }, + { 56, XXX, XXX, 58, 59, 61, XXX }, + + }, { + { 0,0 }, { 16,0 }, { 32,0 }, { 48,0 }, { 65,0 }, { 81,0 }, { 97,0 }, {113,0 }, {129,0 }, {145,0 }, + {161,0 }, {178,0 }, {194,0 }, {218,0 }, { 4,16 }, { 24,16 }, { 40,16 }, { 57,16 }, { 73,16 }, { 89,16 }, + {105,16 }, {121,16 }, {137,16 }, {153,16 }, {170,16 }, {186,16 }, {202,16 }, {224,24 }, { 6,32 }, { 28,32 }, + { 44,32 }, { 61,32 }, { 77,32 }, { 93,32 }, {109,32 }, {125,32 }, {141,32 }, {157,32 }, {174,32 }, {190,32 }, + {206,32 }, { 2,48 }, { 20,48 }, { 36,48 }, { 52,48 }, { 69,48 }, { 85,48 }, {101,48 }, {117,48 }, {133,48 }, + {149,48 }, {165,48 }, {182,48 }, {212,48 }, { 2,64 }, { 22,64 }, { 42,64 }, {103,64 }, {163,64 }, {184,64 }, + {204,64 }, {224,64 }, + }, { + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 1, 1, 4, 1, 1, 1, 1 + } +}; + +__attribute__((weak)) void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + if (host_keyboard_led_state().caps_lock && CAPS_LOCK_ENABLE) { + for (uint8_t i = led_min; i <= led_max; i++) { + if (g_led_config.flags[i] & CAPS_LED_GROUP) { + rgb_matrix_set_color(i, CAPS_LOCK_COLOR); + } + } + } +} +#endif diff --git a/keyboards/4pplet/perk60_iso/rev_a/rev_a.h b/keyboards/4pplet/perk60_iso/rev_a/rev_a.h new file mode 100644 index 0000000000..d1cd6a35d4 --- /dev/null +++ b/keyboards/4pplet/perk60_iso/rev_a/rev_a.h @@ -0,0 +1,43 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" <4pplet@protonmail.com> + +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 CAPS_LOCK_ENABLE true +#define CAPS_LOCK_COLOR RGB_RED +#define CAPS_LED_GROUP LED_FLAG_INDICATOR // change what leds to target, for example LED_FLAG_KEYLIGHT for alpas or LED_FLAG_MODIFIER for modifiers + +#include "quantum.h" + +#define LAYOUT_60_iso( \ + k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k36, \ + k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, \ + k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k76, \ + k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k86,\ + k80, k90, k81, k83, k93, k94, k85, k95 \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06}, \ + {k10, k11, k12, k13, k14, k15, KC_NO}, \ + {k20, k21, k22, k23, k24, k25, k26}, \ + {k30, k31, k32, k33, k34, k35, k36}, \ + {k40, k41, k42, k43, k44, k45, k46}, \ + {k50, k51, k52, k53, k54, k55, KC_NO}, \ + {k60, k61, k62, k63, k64, k65, KC_NO}, \ + {k70, k71, k72, k73, k74, k75, k76}, \ + {k80, k81, KC_NO, k83, KC_NO, k85, k86}, \ + {k90, KC_NO, KC_NO, k93, k94, k95, KC_NO} \ +} diff --git a/keyboards/4pplet/perk60_iso/rev_a/rules.mk b/keyboards/4pplet/perk60_iso/rev_a/rules.mk new file mode 100644 index 0000000000..697898ae8e --- /dev/null +++ b/keyboards/4pplet/perk60_iso/rev_a/rules.mk @@ -0,0 +1,25 @@ +# 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 = no # 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 = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = IS31FL3733 + +LAYOUTS = 60_iso + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE -- cgit v1.2.3