From 041dd0ea8510b5c7a048a931a0e41ec0f4b9dd79 Mon Sep 17 00:00:00 2001 From: Sadek Baroudi Date: Thu, 8 Jun 2023 00:53:31 -0700 Subject: [PATCH] added pinkies out v2 extended firmware --- bin/fp_build.sh | 5 + keyboards/fingerpunch/pinkiesout/config.h | 63 ------- keyboards/fingerpunch/pinkiesout/pinkiesout.h | 2 + keyboards/fingerpunch/pinkiesout/v1/config.h | 63 +++++++ keyboards/fingerpunch/pinkiesout/v2/config.h | 63 +++++++ .../fingerpunch/pinkiesout/v2_ext/config.h | 165 ++++++++++++++++++ .../pinkiesout/v2_ext/fp_build.json | 31 ++++ .../fingerpunch/pinkiesout/v2_ext/halconf.h | 41 +++++ .../fingerpunch/pinkiesout/v2_ext/info.json | 11 ++ .../v2_ext/keymaps/default/keymap.c | 100 +++++++++++ .../v2_ext/keymaps/sadekbaroudi/keymap.c | 120 +++++++++++++ .../fingerpunch/pinkiesout/v2_ext/mcuconf.h | 55 ++++++ .../fingerpunch/pinkiesout/v2_ext/readme.md | 24 +++ .../fingerpunch/pinkiesout/v2_ext/rules.mk | 71 ++++++++ .../fingerpunch/pinkiesout/v2_ext/v2_ext.c | 52 ++++++ .../fingerpunch/pinkiesout/v2_ext/v2_ext.h | 48 +++++ 16 files changed, 851 insertions(+), 63 deletions(-) create mode 100644 keyboards/fingerpunch/pinkiesout/v2_ext/config.h create mode 100644 keyboards/fingerpunch/pinkiesout/v2_ext/fp_build.json create mode 100644 keyboards/fingerpunch/pinkiesout/v2_ext/halconf.h create mode 100644 keyboards/fingerpunch/pinkiesout/v2_ext/info.json create mode 100644 keyboards/fingerpunch/pinkiesout/v2_ext/keymaps/default/keymap.c create mode 100644 keyboards/fingerpunch/pinkiesout/v2_ext/keymaps/sadekbaroudi/keymap.c create mode 100644 keyboards/fingerpunch/pinkiesout/v2_ext/mcuconf.h create mode 100644 keyboards/fingerpunch/pinkiesout/v2_ext/readme.md create mode 100644 keyboards/fingerpunch/pinkiesout/v2_ext/rules.mk create mode 100644 keyboards/fingerpunch/pinkiesout/v2_ext/v2_ext.c create mode 100644 keyboards/fingerpunch/pinkiesout/v2_ext/v2_ext.h diff --git a/bin/fp_build.sh b/bin/fp_build.sh index 886d1fcbf5..abd3740283 100755 --- a/bin/fp_build.sh +++ b/bin/fp_build.sh @@ -43,6 +43,11 @@ get_valid_keyboards() { if [[ -e "${line}/v${i}/fp_build.json" ]]; then echo -n "${line}/v${i} " fi + + # special case for pinkies out v2 extended + if [[ -e "${line}/v${i}_ext/fp_build.json" ]]; then + echo -n "${line}/v${i} " + fi done # special case for tenbit diff --git a/keyboards/fingerpunch/pinkiesout/config.h b/keyboards/fingerpunch/pinkiesout/config.h index e78a83ce8c..2b30700726 100644 --- a/keyboards/fingerpunch/pinkiesout/config.h +++ b/keyboards/fingerpunch/pinkiesout/config.h @@ -22,69 +22,6 @@ along with this program. If not, see . /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 -#define RGB_DI_PIN D3 -#ifdef RGBLIGHT_ENABLE - #define RGBLED_NUM 66 - #define RGBLIGHT_HUE_STEP 16 - #define RGBLIGHT_SAT_STEP 16 - #define RGBLIGHT_VAL_STEP 16 - #define RGBLIGHT_LIMIT_VAL 150 /* The maximum brightness level for RGBLIGHT_ENABLE */ - #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ - #define RGBLIGHT_EFFECT_ALTERNATING - #define RGBLIGHT_EFFECT_BREATHING - #define RGBLIGHT_EFFECT_CHRISTMAS - #define RGBLIGHT_EFFECT_KNIGHT - #define RGBLIGHT_EFFECT_RAINBOW_MOOD - #define RGBLIGHT_EFFECT_RAINBOW_SWIRL - #define RGBLIGHT_EFFECT_SNAKE - #define RGBLIGHT_EFFECT_STATIC_GRADIENT - #define RGBLIGHT_EFFECT_TWINKLE -#endif - -#ifdef RGB_MATRIX_ENABLE - #define RGB_MATRIX_LED_COUNT 66 - #define RGB_MATRIX_CENTER {100, 32} - #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 /* The maximum brightness level for RGB_MATRIX */ - #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set - #define RGB_MATRIX_KEYPRESSES - #define RGB_MATRIX_FRAMEBUFFER_EFFECTS - #define RGB_MATRIX_KEYREACTIVE_ENABLED - #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_BAND_SAT - #define ENABLE_RGB_MATRIX_BAND_VAL - // #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT - // #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL - // #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT - // #define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL - // #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_DUAL_BEACON - // #define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL - // #define ENABLE_RGB_MATRIX_CYCLE_SPIRAL - // #define ENABLE_RGB_MATRIX_RAINBOW_BEACON - // #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS - #define ENABLE_RGB_MATRIX_RAINDROPS - // #define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS - #define ENABLE_RGB_MATRIX_DIGITAL_RAIN - #define ENABLE_RGB_MATRIX_SOLID_REACTIVE - #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE - // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE - // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE - // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS - // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS - // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS - // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS - // #define ENABLE_RGB_MATRIX_SPLASH - // #define ENABLE_RGB_MATRIX_MULTISPLASH - // #define ENABLE_RGB_MATRIX_SOLID_SPLASH - // #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -#endif - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/fingerpunch/pinkiesout/pinkiesout.h b/keyboards/fingerpunch/pinkiesout/pinkiesout.h index 78c3387b2e..0c2c41884b 100644 --- a/keyboards/fingerpunch/pinkiesout/pinkiesout.h +++ b/keyboards/fingerpunch/pinkiesout/pinkiesout.h @@ -21,6 +21,8 @@ # include "v1.h" #elif defined(KEYBOARD_fingerpunch_pinkiesout_v2) # include "v2.h" +#elif defined(KEYBOARD_fingerpunch_pinkiesout_v2_ext) +# include "v2_ext.h" #endif #include "keyboards/fingerpunch/src/fp.h" diff --git a/keyboards/fingerpunch/pinkiesout/v1/config.h b/keyboards/fingerpunch/pinkiesout/v1/config.h index cfc7b88c73..da9bd7a8aa 100644 --- a/keyboards/fingerpunch/pinkiesout/v1/config.h +++ b/keyboards/fingerpunch/pinkiesout/v1/config.h @@ -28,6 +28,69 @@ along with this program. If not, see . #define MATRIX_COL_PINS \ { D2, D4, C6, D7, E6, F5, F6, F7, B1 } +#define RGB_DI_PIN D3 +#ifdef RGBLIGHT_ENABLE + #define RGBLED_NUM 66 + #define RGBLIGHT_HUE_STEP 16 + #define RGBLIGHT_SAT_STEP 16 + #define RGBLIGHT_VAL_STEP 16 + #define RGBLIGHT_LIMIT_VAL 150 /* The maximum brightness level for RGBLIGHT_ENABLE */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ + #define RGBLIGHT_EFFECT_ALTERNATING + #define RGBLIGHT_EFFECT_BREATHING + #define RGBLIGHT_EFFECT_CHRISTMAS + #define RGBLIGHT_EFFECT_KNIGHT + #define RGBLIGHT_EFFECT_RAINBOW_MOOD + #define RGBLIGHT_EFFECT_RAINBOW_SWIRL + #define RGBLIGHT_EFFECT_SNAKE + #define RGBLIGHT_EFFECT_STATIC_GRADIENT + #define RGBLIGHT_EFFECT_TWINKLE +#endif + +#ifdef RGB_MATRIX_ENABLE + #define RGB_MATRIX_LED_COUNT 66 + #define RGB_MATRIX_CENTER {100, 32} + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 /* The maximum brightness level for RGB_MATRIX */ + #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set + #define RGB_MATRIX_KEYPRESSES + #define RGB_MATRIX_FRAMEBUFFER_EFFECTS + #define RGB_MATRIX_KEYREACTIVE_ENABLED + #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_BAND_SAT + #define ENABLE_RGB_MATRIX_BAND_VAL + // #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT + // #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL + // #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT + // #define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL + // #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_DUAL_BEACON + // #define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL + // #define ENABLE_RGB_MATRIX_CYCLE_SPIRAL + // #define ENABLE_RGB_MATRIX_RAINBOW_BEACON + // #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS + #define ENABLE_RGB_MATRIX_RAINDROPS + // #define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + #define ENABLE_RGB_MATRIX_DIGITAL_RAIN + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE + // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE + // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE + // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS + // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS + // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS + // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS + // #define ENABLE_RGB_MATRIX_SPLASH + // #define ENABLE_RGB_MATRIX_MULTISPLASH + // #define ENABLE_RGB_MATRIX_SOLID_SPLASH + // #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif + /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/fingerpunch/pinkiesout/v2/config.h b/keyboards/fingerpunch/pinkiesout/v2/config.h index 43486777db..8f0fb7de6c 100644 --- a/keyboards/fingerpunch/pinkiesout/v2/config.h +++ b/keyboards/fingerpunch/pinkiesout/v2/config.h @@ -51,6 +51,69 @@ along with this program. If not, see . #define ENCODERS_PAD_B {D2, B7} #define ENCODER_RESOLUTION 2 +#define RGB_DI_PIN D3 +#ifdef RGBLIGHT_ENABLE + #define RGBLED_NUM 66 + #define RGBLIGHT_HUE_STEP 16 + #define RGBLIGHT_SAT_STEP 16 + #define RGBLIGHT_VAL_STEP 16 + #define RGBLIGHT_LIMIT_VAL 150 /* The maximum brightness level for RGBLIGHT_ENABLE */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ + #define RGBLIGHT_EFFECT_ALTERNATING + #define RGBLIGHT_EFFECT_BREATHING + #define RGBLIGHT_EFFECT_CHRISTMAS + #define RGBLIGHT_EFFECT_KNIGHT + #define RGBLIGHT_EFFECT_RAINBOW_MOOD + #define RGBLIGHT_EFFECT_RAINBOW_SWIRL + #define RGBLIGHT_EFFECT_SNAKE + #define RGBLIGHT_EFFECT_STATIC_GRADIENT + #define RGBLIGHT_EFFECT_TWINKLE +#endif + +#ifdef RGB_MATRIX_ENABLE + #define RGB_MATRIX_LED_COUNT 66 + #define RGB_MATRIX_CENTER {100, 32} + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 /* The maximum brightness level for RGB_MATRIX */ + #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set + #define RGB_MATRIX_KEYPRESSES + #define RGB_MATRIX_FRAMEBUFFER_EFFECTS + #define RGB_MATRIX_KEYREACTIVE_ENABLED + #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_BAND_SAT + #define ENABLE_RGB_MATRIX_BAND_VAL + // #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT + // #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL + // #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT + // #define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL + // #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_DUAL_BEACON + // #define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL + // #define ENABLE_RGB_MATRIX_CYCLE_SPIRAL + // #define ENABLE_RGB_MATRIX_RAINBOW_BEACON + // #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS + #define ENABLE_RGB_MATRIX_RAINDROPS + // #define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + #define ENABLE_RGB_MATRIX_DIGITAL_RAIN + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE + // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE + // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE + // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS + // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS + // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS + // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS + // #define ENABLE_RGB_MATRIX_SPLASH + // #define ENABLE_RGB_MATRIX_MULTISPLASH + // #define ENABLE_RGB_MATRIX_SOLID_SPLASH + // #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif + #ifdef AUDIO_ENABLE #define AUDIO_VOICES #define AUDIO_PIN B5 diff --git a/keyboards/fingerpunch/pinkiesout/v2_ext/config.h b/keyboards/fingerpunch/pinkiesout/v2_ext/config.h new file mode 100644 index 0000000000..bc347bd766 --- /dev/null +++ b/keyboards/fingerpunch/pinkiesout/v2_ext/config.h @@ -0,0 +1,165 @@ +/* +Copyright 2021 Sadek Baroudi + +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 + +/* key matrix size */ +#define MATRIX_ROWS 9 +#define MATRIX_COLS 8 + +// SHIFT REGISTER +// Only needed for matrix_74hc595_spi.c +#define SHIFTREG_MATRIX_COL_CS B6 +#define SHIFTREG_DIVISOR 8 +#define MATRIX_ROW_PINS_SR { D4, C6, D7, E6, B4, F4, F5, F6, F7 } + +// SPI config for shift register +#define SPI_SCK_PIN B1 +#define SPI_MOSI_PIN B2 +#define SPI_MISO_PIN B3 + +#if defined(CONVERT_TO_ELITE_PI) || defined(CONVERT_TO_RP2040_CE) || defined(CONVERT_TO_HELIOS) || defined(CONVERT_TO_LIATRIS) +#define SPI_DRIVER SPID0 +#endif // CONVERT_TO_(any_rp2040) + +#ifdef CONVERT_TO_STEMCELL +#define SPI_DRIVER SPID1 +#define SPI_SCK_PAL_MODE 5 +#define SPI_MOSI_PAL_MODE 5 +#define SPI_MISO_PAL_MODE 5 +#endif // CONVERT_TO_STEMCELL + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* encoder config */ +#define ENCODERS_PAD_A {C7, D5} +#define ENCODERS_PAD_B {D2, B7} +#define ENCODER_RESOLUTION 2 + +#define RGB_DI_PIN D3 +#ifdef RGBLIGHT_ENABLE + #define RGBLED_NUM 70 + #define RGBLIGHT_HUE_STEP 16 + #define RGBLIGHT_SAT_STEP 16 + #define RGBLIGHT_VAL_STEP 16 + #define RGBLIGHT_LIMIT_VAL 150 /* The maximum brightness level for RGBLIGHT_ENABLE */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ + #define RGBLIGHT_EFFECT_ALTERNATING + #define RGBLIGHT_EFFECT_BREATHING + #define RGBLIGHT_EFFECT_CHRISTMAS + #define RGBLIGHT_EFFECT_KNIGHT + #define RGBLIGHT_EFFECT_RAINBOW_MOOD + #define RGBLIGHT_EFFECT_RAINBOW_SWIRL + #define RGBLIGHT_EFFECT_SNAKE + #define RGBLIGHT_EFFECT_STATIC_GRADIENT + #define RGBLIGHT_EFFECT_TWINKLE +#endif + +#ifdef RGB_MATRIX_ENABLE + #define RGB_MATRIX_LED_COUNT 70 + #define RGB_MATRIX_CENTER {120, 32} + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 /* The maximum brightness level for RGB_MATRIX */ + #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set + #define RGB_MATRIX_KEYPRESSES + #define RGB_MATRIX_FRAMEBUFFER_EFFECTS + #define RGB_MATRIX_KEYREACTIVE_ENABLED + #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_BAND_SAT + #define ENABLE_RGB_MATRIX_BAND_VAL + // #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT + // #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL + // #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT + // #define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL + // #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_DUAL_BEACON + // #define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL + // #define ENABLE_RGB_MATRIX_CYCLE_SPIRAL + // #define ENABLE_RGB_MATRIX_RAINBOW_BEACON + // #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS + #define ENABLE_RGB_MATRIX_RAINDROPS + // #define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + #define ENABLE_RGB_MATRIX_DIGITAL_RAIN + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE + // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE + // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE + // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS + // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS + // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS + // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS + // #define ENABLE_RGB_MATRIX_SPLASH + // #define ENABLE_RGB_MATRIX_MULTISPLASH + // #define ENABLE_RGB_MATRIX_SOLID_SPLASH + // #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif + +#ifdef AUDIO_ENABLE + #define AUDIO_VOICES + #define AUDIO_PIN B5 + #ifdef CONVERT_TO_STEMCELL + #define AUDIO_PWM_DRIVER PWMD2 + #define AUDIO_PWM_CHANNEL 1 + #define AUDIO_STATE_TIMER GPTD4 + #endif // CONVERT_TO_STEMCELL + #if defined(CONVERT_TO_ELITE_PI) || defined(CONVERT_TO_RP2040_CE) || defined(CONVERT_TO_HELIOS) || defined(CONVERT_TO_LIATRIS) + #define AUDIO_PWM_DRIVER PWMD4 + #define AUDIO_PWM_CHANNEL RP2040_PWM_CHANNEL_B + #define AUDIO_STATE_TIMER GPTD1 + #endif // CONVERT_TO_(any_rp2040) + #define AUDIO_VOICES + // #define AUDIO_PWM_PAL_MODE 42 // only if using AUDIO_DRIVER = pwm_hardware + // #define NO_MUSIC_MODE + #define AUDIO_ENABLE_TONE_MULTIPLEXING + #define AUDIO_TONE_MULTIPLEXING_RATE_DEFAULT 10 + #define FP_AUDIO_MOUSE_BUTTONS + #define FP_AUDIO_CUT_COPY_PASTE + #define FP_AUDIO_SAVE + #define STARTUP_SONG SONG(STARTUP_SOUND) + #define DEFAULT_LAYER_SONGS \ + { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND) } +#endif + +#ifdef HAPTIC_ENABLE + #define FB_ERM_LRA 1 + #define FB_BRAKEFACTOR 3 // For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 + #define FB_LOOPGAIN 1 // For Low:0, Medium:1, High:2, Very High:3 + #define RATED_VOLTAGE 2 + #define V_PEAK 2.8 + #define V_RMS 2.0 + #define F_LRA 150 // resonance freq + #define DRV_GREETING alert_750ms + #define FP_HAPTIC_MOUSE_BUTTONS + #define FP_HAPTIC_CUT_COPY_PASTE + #define FP_HAPTIC_SAVE +#endif + +#ifdef CIRQUE_ENABLE + // cirque trackpad config + #define CIRQUE_PINNACLE_ADDR 0x2A + #define POINTING_DEVICE_ROTATION_90 + #define CIRQUE_PINNACLE_TAP_ENABLE + #define POINTING_DEVICE_TASK_THROTTLE_MS 5 + #define I2C1_CLOCK_SPEED 400000 + #define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 +#endif diff --git a/keyboards/fingerpunch/pinkiesout/v2_ext/fp_build.json b/keyboards/fingerpunch/pinkiesout/v2_ext/fp_build.json new file mode 100644 index 0000000000..8508771d00 --- /dev/null +++ b/keyboards/fingerpunch/pinkiesout/v2_ext/fp_build.json @@ -0,0 +1,31 @@ +[ + { + "type" : "convert-to", + "name" : "stemcell" + }, + { + "type" : "single", + "name" : "CIRQUE_ENABLE", + "user_input": "Do you have a cirque?" + }, + { + "type" : "one-of", + "names" : [ "RGBLIGHT_ENABLE", "RGB_MATRIX_ENABLE" ], + "user_input": "No RGB, RGB light, RGB matrix?" + }, + { + "type" : "single", + "name" : "ENCODER_ENABLE", + "user_input": "Do you have one or more rotary encoders?" + }, + { + "type" : "single", + "name" : "AUDIO_ENABLE", + "user_input": "Do you have an audio buzzer?" + }, + { + "type" : "single", + "name" : "HAPTIC_ENABLE", + "user_input": "Do you have haptic feedback?" + } +] diff --git a/keyboards/fingerpunch/pinkiesout/v2_ext/halconf.h b/keyboards/fingerpunch/pinkiesout/v2_ext/halconf.h new file mode 100644 index 0000000000..3b25f9dfc6 --- /dev/null +++ b/keyboards/fingerpunch/pinkiesout/v2_ext/halconf.h @@ -0,0 +1,41 @@ +// BEGIN SADEK PWM LED testing +/* 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-confupdate -i keyboards/tkw/grandiceps/halconf.h -r platforms/chibios/BLACKPILL_STM32_F411/configs/halconf.h` + */ + +#pragma once + +#if defined(CONVERT_TO_ELITE_PI) || defined(CONVERT_TO_RP2040_CE) || defined(CONVERT_TO_HELIOS) || defined(CONVERT_TO_LIATRIS) +#define HAL_USE_PWM TRUE +#define HAL_USE_I2C TRUE +#define HAL_USE_PAL TRUE +#define HAL_USE_SPI TRUE +#endif // CONVERT_TO_(any_rp2040) + +#ifdef CONVERT_TO_STEMCELL +#define HAL_USE_PWM TRUE +#define HAL_USE_GPT TRUE +#define HAL_USE_SERIAL TRUE +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD +#endif + +#include_next diff --git a/keyboards/fingerpunch/pinkiesout/v2_ext/info.json b/keyboards/fingerpunch/pinkiesout/v2_ext/info.json new file mode 100644 index 0000000000..a98d4b96e8 --- /dev/null +++ b/keyboards/fingerpunch/pinkiesout/v2_ext/info.json @@ -0,0 +1,11 @@ +{ + "manufacturer": "sadekbaroudi", + "keyboard_name": "pinkies out", + "url": "https://fingerpunch.xyz/product/pinkies-out-v2/", + "maintainer": "Sadek Baroudi ", + "usb": { + "vid": "0xFEFE", + "pid": "0x6011", + "device_version": "2.0.0" + } +} diff --git a/keyboards/fingerpunch/pinkiesout/v2_ext/keymaps/default/keymap.c b/keyboards/fingerpunch/pinkiesout/v2_ext/keymaps/default/keymap.c new file mode 100644 index 0000000000..dc7cddd279 --- /dev/null +++ b/keyboards/fingerpunch/pinkiesout/v2_ext/keymaps/default/keymap.c @@ -0,0 +1,100 @@ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _QWERTY, + _COLEMAK, + _LOWER, + _RAISE, + _ADJUST +}; + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + ADJUST +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + +[_QWERTY] = LAYOUT_pinkiesout( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LPRN, KC_RPRN, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LCBR, KC_RCBR, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, ADJUST, ADJUST, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_MINS, LOWER, KC_SPC, KC_LALT, _______, _______, KC_RALT, KC_SPC, RAISE, KC_EQL, KC_RALT, KC_RGUI, KC_RCTL +), + + +[_COLEMAK] = LAYOUT_pinkiesout( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LPRN, KC_RPRN, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_LBRC, KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, + KC_CAPS, KC_A, KC_R, KC_S, KC_T, KC_G, KC_LCBR, KC_RCBR, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, ADJUST, ADJUST, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_MINS, LOWER, KC_SPC, KC_LALT, _______, _______, KC_RALT, KC_SPC, RAISE, KC_EQL, KC_RALT, KC_RGUI, KC_RCTL +), + + +[_LOWER] = LAYOUT_pinkiesout( + KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +[_RAISE] = LAYOUT_pinkiesout( + KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, _______, + _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +[_ADJUST] = LAYOUT_pinkiesout( + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, + _______, RGB_TOG, RGB_RMOD, RGB_MOD, _______, TG(_QWERTY), _______, _______, _______, _______, _______, KC_F11, KC_F12, _______, + _______, RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, TG(_COLEMAK), _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + break; + default: + break; + } + + return true; +} diff --git a/keyboards/fingerpunch/pinkiesout/v2_ext/keymaps/sadekbaroudi/keymap.c b/keyboards/fingerpunch/pinkiesout/v2_ext/keymaps/sadekbaroudi/keymap.c new file mode 100644 index 0000000000..a0db3bead8 --- /dev/null +++ b/keyboards/fingerpunch/pinkiesout/v2_ext/keymaps/sadekbaroudi/keymap.c @@ -0,0 +1,120 @@ +/* Copyright 2021 Sadek Baroudi + * + * 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 "sadekbaroudi.h" +#include QMK_KEYBOARD_H + +// Uncomment to set up WPM +//char wpm_as_str[8]; + +/* + * The `LAYOUT_pinkiesout_base` macro is a template to allow the use of identical + * modifiers for the default layouts (eg ALPHA_ALT, Alpha, Dvorak, etc), so + * that there is no need to set them up for each layout, and modify all of + * them if I want to change them. This helps to keep consistency and ease + * of use. K## is a placeholder to pass through the individual keycodes + */ + +// clang-format off +#define LAYOUT_pinkiesout_base( \ + K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ + K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ + K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \ + K33, K34, K35, K36, K37, K38 \ + ) \ + LAYOUT_wrapper( \ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, _______, TO(_KICAD), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ + KC_TAB, K01, K02, K03, LT(_FUNCTION, K04), K05, _______, TO(_NAVIGATION), K06, LT(_FUNCTION, K07), K08, K09, K0A, KC_BSLS, \ + KC_CAPS, LCTL_T(K11), LGUI_T(K12), LALT_T(K13), LSFT_T(K14), K15, _______, TO(_ALPHA), LT(_MOUSE, K16), RSFT_T(K17), RALT_T(K18), RGUI_T(K19), RCTL_T(K1A), KC_QUOT, \ + KC_LSFT, K21, K22, K23, K24, K25, _______, _______, K26, K27, K28, K29, K2A, KC_ENT, \ + KC_LCTL, KC_LGUI, K33, LT(_NAVIGATION,K34), LT(_FUNCTION,K35), KC_MUTE, KC_MUTE, LT(_MEDIA,K36), LT(_SYMBOLS,K37), K38, KC_RGUI, KC_RCTL \ + ) + +/* Re-pass though to allow templates to be used */ +#define LAYOUT_pinkiesout_base_wrapper(...) LAYOUT_pinkiesout_base(__VA_ARGS__) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_ALPHA_ALT] = LAYOUT_pinkiesout_base_wrapper( + _________________ALPHA_ALT_L1_________________, _________________ALPHA_ALT_R1_________________, + _________________ALPHA_ALT_L2_________________, _________________ALPHA_ALT_R2_________________, + _________________ALPHA_ALT_L3_________________, _________________ALPHA_ALT_R3_________________, + __ALPHA_ALT_THUMBS_6__ + ), + + [_ALPHA] = LAYOUT_pinkiesout_base_wrapper( + __________________ALPHA_L1____________________, __________________ALPHA_R1____________________, + __________________ALPHA_L2____________________, __________________ALPHA_R2____________________, + __________________ALPHA_L3____________________, __________________ALPHA_R3____________________, + __ALPHA_THUMBS_6__ + ), + + [_NAVIGATION] = LAYOUT_wrapper( + _______, _______, _______, _______, _______, _______, _______, TO(_ALPHA), _______, _______, _______, _______, _______, _______, + _______, ________________NAVIGATION_1_______________, _______, TO(_SYMBOLS), _________________NUMPAD_1__________________, _______, + _______, ________________NAVIGATION_2_______________, _______, _______, _________________NUMPAD_2__________________, _______, + _______, ________________NAVIGATION_3_______________, _______, _______, _________________NUMPAD_3__________________, _______, + _______, _______, _______, _______, KC_TAB, _______, _______, KC_BSPC, KC_SPACE, KC_DOT, _______, _______ + ), + + [_SYMBOLS] = LAYOUT_wrapper( + _______, _______, _______, _______, _______, _______, _______, TO(_NAVIGATION), _______, _______, _______, _______, _______, _______, + _______, ________________SYMBOLS_L1_________________, _______, TO(_FUNCTION), ________________SYMBOLS_R1_________________, _______, + _______, ________________SYMBOLS_L2_________________, _______, _______, ________________SYMBOLS_R2_________________, _______, + _______, ________________SYMBOLS_L3_________________, _______, _______, ________________SYMBOLS_R3_________________, _______, + _______, _______, _______, KC_ENT, KC_DEL, _______, _______, KC_BSPC, _______, _______, _______, _______ + ), + + [_FUNCTION] = LAYOUT_wrapper( + _______, _______, _______, _______, _______, _______, _______, TO(_SYMBOLS), _______, _______, _______, _______, _______, _______, + _______, ________________SHIFTNAV_1_________________, _______, TO(_MEDIA), ________________FUNCTION_1_________________, _______, + _______, ________________SHIFTNAV_2_________________, _______, _______, ________________FUNCTION_2_________________, _______, + _______, ________________SHIFTNAV_3_________________, _______, _______, ________________FUNCTION_3_________________, _______, + _______, _______, _______, _______, _______, _______, _______, N_DEL_LINE, KC_SPACE, _______, _______, _______ + ), + + [_MEDIA] = LAYOUT_wrapper( + _______, _______, _______, _______, _______, _______, _______, TO(_FUNCTION), _______, _______, _______, _______, _______, _______, + _______, ___________________RGB_1___________________, _______, TO(_MOUSE), _________________MACROS_1__________________, _______, + _______, ___________________RGB_2___________________, _______, _______, _________________MACROS_2__________________, _______, + _______, ___________________RGB_3___________________, _______, _______, _________________MACROS_3__________________, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_MOUSE] = LAYOUT_wrapper( + _______, _______, _______, _______, _______, _______, _______, TO(_MEDIA), _______, _______, _______, _______, _______, _______, + _______, __________________MOUSE_1__________________, _______, TO(_GAME), ___________________BLANK___________________, _______, + _______, __________________MOUSE_2__________________, _______, _______, ___________________BLANK___________________, _______, + _______, __________________MOUSE_3__________________, _______, _______, ___________________BLANK___________________, _______, + _______, _______, _______, KC_MS_BTN1, KC_MS_BTN3, _______, _______, KC_MS_BTN3, KC_MS_BTN2, _______, _______, _______ + ), + + [_GAME] = LAYOUT_wrapper( + __GAMES_R0_L__, ___________________GAMES_0_________________, __GAMES_R0_R__, TO(_MOUSE), _______, _______, _______, _______, _______, _______, \ + __GAMES_R1_L__, ___________________GAMES_1_________________, __GAMES_R1_R__, TO(_KICAD), ___________________BLANK___________________, _______, \ + __GAMES_R2_L__, ___________________GAMES_2_________________, __GAMES_R2_R__, _______, ___________________BLANK___________________, _______, \ + __GAMES_R3_L__, ___________________GAMES_3_________________, __GAMES_R3_R__, _______, ___________________BLANK___________________, _______, \ + __GAMES_R4_1__, __GAMES_R4_3__, __GAMES_TH_L__, __GAMES_TH_C__, __GAMES_TH_R__, _______, _______, _______, _______, _______, _______, _______ \ + ), + + [_KICAD] = LAYOUT_wrapper( + __KICAD_R0_L__, ___________________KICAD_0_________________, __KICAD_R0_R__, TO(_GAME), _______, _______, _______, _______, _______, _______, \ + __KICAD_R1_L__, ___________________KICAD_1_________________, __KICAD_R1_R__, TO(_ALPHA), _________________NUMPAD_1__________________, _______, \ + __KICAD_R2_L__, ___________________KICAD_2_________________, __KICAD_R2_R__, _______, _________________NUMPAD_2__________________, _______, \ + __KICAD_R3_L__, ___________________KICAD_3_________________, __GAMES_R3_R__, _______, _________________NUMPAD_3__________________, _______, \ + __KICAD_R4_1__, __KICAD_R4_3__, __KICAD_TH_L__, __KICAD_TH_C__, __KICAD_TH_R__, _______, _______, KC_BSPC, KC_SPACE, KC_DOT, _______, _______ \ + ) +}; diff --git a/keyboards/fingerpunch/pinkiesout/v2_ext/mcuconf.h b/keyboards/fingerpunch/pinkiesout/v2_ext/mcuconf.h new file mode 100644 index 0000000000..f2b3bcffb8 --- /dev/null +++ b/keyboards/fingerpunch/pinkiesout/v2_ext/mcuconf.h @@ -0,0 +1,55 @@ +/* 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-confupdate -i keyboards/tkw/grandiceps/mcuconf.h -r platforms/chibios/BLACKPILL_STM32_F411/configs/mcuconf.h` + */ + +#pragma once + +#include_next "mcuconf.h" + +#if defined(CONVERT_TO_ELITE_PI) || defined(CONVERT_TO_RP2040_CE) || defined(CONVERT_TO_HELIOS) || defined(CONVERT_TO_LIATRIS) +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C1 TRUE + +#undef RP_PWM_USE_PWM4 +#define RP_PWM_USE_PWM4 TRUE + +#undef RP_PWM_USE_TIM1 +#define RP_PWM_USE_TIM1 TRUE + +#undef RP_SPI_USE_SPI0 +#define RP_SPI_USE_SPI0 TRUE +#endif // CONVERT_TO_(any_rp2040) + +#ifdef CONVERT_TO_STEMCELL +#undef STM32_SPI_USE_SPI0 +#define STM32_SPI_USE_SPI0 TRUE + +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE + +#undef STM32_ST_USE_TIMER +#define STM32_ST_USE_TIMER 5 + +#undef STM32_GPT_USE_TIM4 +#define STM32_GPT_USE_TIM4 TRUE + +#undef STM32_PWM_USE_TIM2 +#define STM32_PWM_USE_TIM2 TRUE +#endif // CONVERT_TO_STEMCELL \ No newline at end of file diff --git a/keyboards/fingerpunch/pinkiesout/v2_ext/readme.md b/keyboards/fingerpunch/pinkiesout/v2_ext/readme.md new file mode 100644 index 0000000000..bfef0eaf9e --- /dev/null +++ b/keyboards/fingerpunch/pinkiesout/v2_ext/readme.md @@ -0,0 +1,24 @@ +# pinkiesout + +An ergonomic 65% keyboard + +* Keyboard Maintainer: [sadekbaroudi](https://github.com/sadekbaroudi) + +To build the firmware for this keyboard (after setting up your build environment): +``` + make fingerpunch/pinkiesout/v2_ext:default RGB_MATRIX_ENABLE=yes AUDIO_ENABLE=yes CIRQUE_ENABLE=yes ENCODER_ENABLE=yes CONVERT_TO=stemcell +``` + +Don't forget to add ```CONVERT_TO=stemcell``` if using a stemcell controller. + +Options are: +``` + CIRQUE_ENABLE=yes + RGBLIGHT_ENABLE=yes + RGB_MATRIX_ENABLE=yes + ENCODER_ENABLE=yes + AUDIO_ENABLE=yes + HAPTIC_ENABLE=yes +``` + +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). diff --git a/keyboards/fingerpunch/pinkiesout/v2_ext/rules.mk b/keyboards/fingerpunch/pinkiesout/v2_ext/rules.mk new file mode 100644 index 0000000000..b32e7f2bd5 --- /dev/null +++ b/keyboards/fingerpunch/pinkiesout/v2_ext/rules.mk @@ -0,0 +1,71 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MOUSEKEY_ENABLE = yes + +# Either do RGBLIGHT_ENABLE or RGB_MATRIX_ENABLE and RGB_MATRIX_DRIVER +RGBLIGHT_ENABLE = no +RGB_MATRIX_ENABLE = no +RGB_MATRIX_DRIVER = WS2812 + +MIDI_ENABLE = no # MIDI support +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +ENCODER_ENABLE = no +# EXTRAFLAGS += -flto # macros disabled, if you need the extra space +MOUSEKEY_ENABLE = no + +SRC += keyboards/fingerpunch/src/fp_matrix_74hc595_spi.c +QUANTUM_LIB_SRC += spi_master.c +CUSTOM_MATRIX = lite + +AUDIO_ENABLE ?= no +ifeq ($(strip $(CONVERT_TO)), stemcell) +AUDIO_DRIVER = pwm_software +endif +ifeq ($(strip $(CONVERT_TO)), elite_pi) +AUDIO_DRIVER = pwm_hardware +endif +ifeq ($(strip $(CONVERT_TO)), rp2040_ce) +AUDIO_DRIVER = pwm_hardware +endif +ifeq ($(strip $(CONVERT_TO)), helios) +AUDIO_DRIVER = pwm_hardware +endif +ifeq ($(strip $(CONVERT_TO)), liatris) +AUDIO_DRIVER = pwm_hardware +endif + +HAPTIC_ENABLE ?= no +HAPTIC_DRIVER = DRV2605L + +ifeq ($(strip $(CIRQUE_ENABLE)), yes) + MOUSEKEY_ENABLE := yes # not required, but enabling for mouse button keys + POINTING_DEVICE_ENABLE := yes + POINTING_DEVICE_DRIVER := cirque_pinnacle_i2c + OPT_DEFS += -DCIRQUE_ENABLE +endif diff --git a/keyboards/fingerpunch/pinkiesout/v2_ext/v2_ext.c b/keyboards/fingerpunch/pinkiesout/v2_ext/v2_ext.c new file mode 100644 index 0000000000..e6c55552a9 --- /dev/null +++ b/keyboards/fingerpunch/pinkiesout/v2_ext/v2_ext.c @@ -0,0 +1,52 @@ +/* Copyright 2021 Sadek Baroudi + * + * 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 "v2_ext.h" +#ifdef RGB_MATRIX_ENABLE + +led_config_t g_led_config = { { + { 1, 67, 3, 5, 65, 66, 4, 2 }, + { 12, 60, 10, 8, 62, 61, 9, 11 }, + { 15, 53, 17, 19, 51, 52, 18, 16 }, + { 26, 46, 24, 22, 48, 47, 23, 25 }, + { 30, 38, 32, 34, 35, 36, 33, 31 }, + { 0, 44, 49, 41, 58, 55, 69, 21 }, + { 13, 56, 6, 29, 64, 50, 20, 42 }, + { 14, 43, 7, 28, 63, NO_LED, NO_LED, 27 }, + { 68, 57, 54, 39, 40, 70, 45, 59 } +}, { + {7,1}, {21,1}, {36,2}, {51,1}, {65,5}, {79,10}, {93,14}, + {90,21}, {76,20}, {62,16}, {48,12}, {33,12}, {19,12}, {4,10}, + {2,20}, {16,22}, {31,23}, {46,23}, {60,27}, {74,31}, {88,35}, + {87,50}, {71,42}, {57,38}, {43,33}, {28,34}, {14,33}, {0,31}, + {0,40}, {12,43}, {25,46}, {40,48}, {56,51}, {70,56}, {84,63}, + {138,63}, {152,56}, {166,51}, {182,48}, {197,46}, {210,43}, {223,40}, + {221,31}, {209,33}, {200,34}, {179,33}, {165,38}, {151,42}, {135,50}, + {134,35}, {148,31}, {162,27}, {176,23}, {191,23}, {206,22}, {220,20}, + {218,9}, {203,12}, {189,12}, {174,12}, {160,16}, {146,20}, {132,24}, + {129,14}, {143,10}, {157,5}, {171,1}, {186,2}, {201,1}, {215,0} +}, { + 1, 4, 4, 4, 4, 4, 1, // left half - row 1 - left to right + 1, 4, 4, 4, 4, 4, 1, // left half - row 2 - right to left + 1, 12, 12, 12, 12, 4, 1, // left half - row 3 - left to right + 1, 4, 4, 4, 4, 4, 1, // left half - row 4 - right to left + 1, 1, 1, 1, 1, 9, 1, // left thumbs - left to right + 1, 9, 1, 1, 1, 1, 1, // right thumbs - left to right + 1, 4, 4, 4, 4, 4, 1, // right half - row 4 - right to left + 1, 4, 12, 12, 12, 12, 1, // right half - row 3 - left to right + 1, 4, 4, 4, 4, 4, 1, // right half - row 2 - right to left + 1, 4, 4, 4, 4, 4, 1 // right half - row 1 - left to right +} }; +#endif diff --git a/keyboards/fingerpunch/pinkiesout/v2_ext/v2_ext.h b/keyboards/fingerpunch/pinkiesout/v2_ext/v2_ext.h new file mode 100644 index 0000000000..dab9b2a30f --- /dev/null +++ b/keyboards/fingerpunch/pinkiesout/v2_ext/v2_ext.h @@ -0,0 +1,48 @@ +/* Copyright 2021 Sadek Baroudi + * + * 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 "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define ___ KC_NO + +#define LAYOUT_pinkiesout( \ + K50, K00, K01, K02, K03, K04, K62, K65, K05, K06, K07, K80, K53, K86, \ + K60, K10, K11, K12, K13, K14, K72, K75, K15, K16, K17, K81, K55, K87, \ + K70, K20, K21, K22, K23, K24, K63, K66, K25, K26, K27, K82, K56, K67, \ + K71, K30, K31, K32, K33, K34, K51, K52, K35, K36, K37, K83, K57, K77, \ + K74, K64, K40, K41, K42, K43, K44, K76, K73, K45, K46, K47, K84, K85, K54, K61 \ +) \ +{ \ + { K00, K07, K02, K04, K05, K06, K03, K01 }, \ + { K10, K17, K12, K14, K15, K16, K13, K11 }, \ + { K20, K27, K22, K24, K25, K26, K23, K21 }, \ + { K30, K37, K32, K34, K35, K36, K33, K31 }, \ + { K40, K47, K42, K44, K45, K46, K43, K41 }, \ + { K50, K57, K52, K54, K55, K56, K53, K51 }, \ + { K60, K67, K62, K64, K65, K66, K63, K61 }, \ + { K70, K77, K72, K74, K75, K76, K73, K71 }, \ + { K80, K87, K82, K84, K85, K86, K83, K81 } \ +}