diff --git a/keyboards/fingerpunch/src/vik/config.h b/keyboards/fingerpunch/src/vik/config.h index 37eb47ba09..a7888085d4 100644 --- a/keyboards/fingerpunch/src/vik/config.h +++ b/keyboards/fingerpunch/src/vik/config.h @@ -155,4 +155,8 @@ #define AZOTEQ_IQS5XX_SWIPE_Y_ENABLE true #define AZOTEQ_IQS5XX_ZOOM_ENABLE true #endif +#endif + +#ifdef CIRQUE_ENABLE + #define CIRQUE_PINNACLE_SPI_CS_PIN VIK_SPI_CS #endif \ No newline at end of file diff --git a/keyboards/fingerpunch/src/vik/rules.mk b/keyboards/fingerpunch/src/vik/rules.mk index 8ef8f81604..5accb23028 100644 --- a/keyboards/fingerpunch/src/vik/rules.mk +++ b/keyboards/fingerpunch/src/vik/rules.mk @@ -14,6 +14,7 @@ ifeq ($(strip $(VIK_HAPTIC)), yes) HAPTIC_ENABLE = yes + HAPTIC_DRIVER = drv2605l OPT_DEFS += -DVIK_HAPTIC endif diff --git a/keyboards/fingerpunch/vulpes_minora/byomcu/config.h b/keyboards/fingerpunch/vulpes_minora/byomcu/config.h index 9ceb460fb0..f6ca0ab2b7 100644 --- a/keyboards/fingerpunch/vulpes_minora/byomcu/config.h +++ b/keyboards/fingerpunch/vulpes_minora/byomcu/config.h @@ -22,19 +22,36 @@ along with this program. If not, see . #define MATRIX_ROWS 8 #define MATRIX_COLS 10 -// For SPI -#define SPI_SCK_PIN GP22 -#define SPI_MOSI_PIN GP23 -#define SPI_MISO_PIN GP20 - // wiring of each half #define MATRIX_ROW_PINS { GP4, GP29, GP28, GP27 } #define MATRIX_COL_PINS { GP5, GP6, GP7, GP8, GP9 } +// VIK pin config +#define VIK_SPI_DRIVER SPID0 +#define VIK_SPI_SCK_PIN GP22 +#define VIK_SPI_MOSI_PIN GP23 +#define VIK_SPI_MISO_PIN GP20 +#define VIK_SPI_CS GP21 +#define VIK_I2C_DRIVER I2CD1 +#define VIK_I2C_SDA_PIN GP2 +#define VIK_I2C_SCL_PIN GP3 +#define VIK_GPIO_1 GP15 +#define VIK_GPIO_2 GP26 +#define VIK_WS2812_DI_PIN GP0 + +// Got help from https://www.eisbahn.jp/yoichiro/2022/08/luankey_pico_qmk_firmware.html +#define SERIAL_PIO_USE_PIO1 +#define SERIAL_USART_TX_PIN GP1 // USART TX pin + +#define WS2812_DI_PIN GP0 + +#define VIK_ST7735_UNUSED_PIN GP11 + // https://github.com/sadekbaroudi/vik/tree/master/pcb/pers60-cirque-leds or https://github.com/sadekbaroudi/vik/tree/master/pcb/pers60-pmw3360-leds #ifdef FP_VIK_PERS60_MODULE -#define ENCODERS_PAD_A { GP14, GP3 } -#define ENCODERS_PAD_B { GP13, GP2 } +// This config assumes the VIK module is connected to the left half +#define ENCODERS_PAD_A { GP14, GP15 } +#define ENCODERS_PAD_B { GP13, GP26 } #define ENCODER_RESOLUTIONS { 2, 1 } #define ENCODERS_PAD_A_RIGHT { GP14 } #define ENCODERS_PAD_B_RIGHT { GP13 } @@ -49,12 +66,6 @@ along with this program. If not, see . #define ENCODERS_PAD_B_RIGHT { GP13 } #endif -// Got help from https://www.eisbahn.jp/yoichiro/2022/08/luankey_pico_qmk_firmware.html -#define SERIAL_PIO_USE_PIO1 -#define SERIAL_USART_TX_PIN GP1 // USART TX pin - -#define WS2812_DI_PIN GP0 - #ifdef AUDIO_ENABLE #define AUDIO_VOICES #define AUDIO_PIN GP12 @@ -72,28 +83,12 @@ along with this program. If not, see . #endif #ifdef CIRQUE_ENABLE - // cirque trackpad config - #define CIRQUE_PINNACLE_SPI_CS_PIN GP21 - // Uncomment 2 lines below to switch to relative mode and enable right click - // Note that tap to click doesn't work on the slave side unless you enable relative mode - // #define CIRQUE_PINNACLE_POSITION_MODE CIRQUE_PINNACLE_RELATIVE_MODE - // #define CIRQUE_PINNACLE_SECONDARY_TAP_ENABLE - #define CIRQUE_PINNACLE_TAP_ENABLE #define POINTING_DEVICE_ROTATION_90 - #define POINTING_DEVICE_TASK_THROTTLE_MS 5 #define POINTING_DEVICE_LEFT #endif -#ifdef FP_TRACKBALL_ENABLE - // Trackball config - #define PMW33XX_CS_PIN GP21 - #define PMW33XX_CPI 1000 - #define PMW33XX_CS_DIVISOR 8 - - /* SPI config for pmw3360 sensor. */ - #define SPI_DRIVER SPID0 - // #define SPI_SCK_PAL_MODE 5 // already defined in chibios - // #define SPI_MOSI_PAL_MODE 5 // already defined in chibios - // #define SPI_MISO_PAL_MODE 5 // already defined in chibios +#ifdef VIK_TRACKBALL_ENABLE #define POINTING_DEVICE_LEFT #endif + +#include "keyboards/fingerpunch/src/config_post.h" \ No newline at end of file diff --git a/keyboards/fingerpunch/vulpes_minora/byomcu/fp_build.json b/keyboards/fingerpunch/vulpes_minora/byomcu/fp_build.json index 961562b552..87b59d53b4 100644 --- a/keyboards/fingerpunch/vulpes_minora/byomcu/fp_build.json +++ b/keyboards/fingerpunch/vulpes_minora/byomcu/fp_build.json @@ -1,24 +1,23 @@ [ { - "type" : "single", - "name" : "CIRQUE_ENABLE", - "user_input": "Do you have a cirque?" - }, - { - "type" : "single", - "name" : "FP_TRACKBALL_ENABLE", - "user_input": "Do you have a trackball?" + "type" : "one-of", + "names" : [ + "VIK_HAPTIC", + "VIK_PER56_CIRQUE_LEDS", + "VIK_PER56_CIRQUE_LEDS", + "VIK_PER56_PMW3360_LEDS", + "VIK_PMW3360", + "VIK_WEACT_ST7735", + "VIK_VIK_GC9A01", + "VIK_WAVESHARE_22224" + ], + "user_input": "Are you using a VIK module? NONE, VIK_HAPTIC, VIK_PER56_CIRQUE_LEDS, VIK_PER56_CIRQUE_LEDS, VIK_PER56_PMW3360_LEDS, VIK_PMW3360, VIK_WEACT_ST7735, VIK_VIK_GC9A01, VIK_WAVESHARE_22224" }, { "type" : "one-of", "names" : [ "RGBLIGHT_ENABLE", "RGB_MATRIX_ENABLE" ], "user_input": "No RGB, RGB light, RGB matrix?" }, - { - "type" : "single", - "name" : "FP_VIK_PERS60_MODULE", - "user_input": "Do you have a scroll wheel VIK module installed with LEDs?" - }, { "type" : "single", "name" : "ENCODER_ENABLE", @@ -28,10 +27,5 @@ "type" : "single", "name" : "AUDIO_ENABLE", "user_input": "Do you have an audio buzzer?" - }, - { - "type" : "single", - "name" : "HAPTIC_ENABLE", - "user_input": "Do you have a haptic feedback?" } ] diff --git a/keyboards/fingerpunch/vulpes_minora/byomcu/rules.mk b/keyboards/fingerpunch/vulpes_minora/byomcu/rules.mk index a14b17aa85..bbe58d682f 100644 --- a/keyboards/fingerpunch/vulpes_minora/byomcu/rules.mk +++ b/keyboards/fingerpunch/vulpes_minora/byomcu/rules.mk @@ -30,28 +30,5 @@ MOUSEKEY_ENABLE = yes SPLIT_KEYBOARD = yes SERIAL_DRIVER = vendor -#HAPTIC FEEDBACK -HAPTIC_ENABLE ?= no -HAPTIC_DRIVER = drv2605l - AUDIO_ENABLE ?= no AUDIO_DRIVER = pwm_hardware - -ifeq ($(strip $(FP_VIK_PERS60_MODULE)), yes) - OPT_DEFS += -DFP_VIK_PERS60_MODULE -endif - -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_spi - OPT_DEFS += -DCIRQUE_ENABLE -endif - -ifeq ($(strip $(FP_TRACKBALL_ENABLE)), yes) - MOUSEKEY_ENABLE := yes # not required, but enabling for mouse button keys - POINTING_DEVICE_ENABLE := yes - POINTING_DEVICE_DRIVER := pmw3360 - QUANTUM_LIB_SRC += spi_master.c - OPT_DEFS += -DFP_TRACKBALL_ENABLE -endif diff --git a/keyboards/fingerpunch/vulpes_minora/config.h b/keyboards/fingerpunch/vulpes_minora/config.h index 4774c5e2c7..cb521f684d 100644 --- a/keyboards/fingerpunch/vulpes_minora/config.h +++ b/keyboards/fingerpunch/vulpes_minora/config.h @@ -1,5 +1,5 @@ /* -Copyright 2012 Jun Wako +Copyright 2023 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 @@ -20,11 +20,11 @@ along with this program. If not, see . #include "keyboards/fingerpunch/src/config_pre.h" #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW -// Got help from https://www.eisbahn.jp/yoichiro/2022/08/luankey_pico_qmk_firmware.html #define MASTER_LEFT #define SPLIT_TRANSPORT_MIRROR @@ -107,20 +107,6 @@ along with this program. If not, see . #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH #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 - /* 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/vulpes_minora/rp2040zero/config.h b/keyboards/fingerpunch/vulpes_minora/rp2040zero/config.h index abc52e5d44..c9c62e2b19 100644 --- a/keyboards/fingerpunch/vulpes_minora/rp2040zero/config.h +++ b/keyboards/fingerpunch/vulpes_minora/rp2040zero/config.h @@ -1,5 +1,5 @@ /* -Copyright 2012 Jun Wako +Copyright 2023 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 @@ -22,31 +22,38 @@ along with this program. If not, see . #define MATRIX_ROWS 8 #define MATRIX_COLS 10 -// For SPI -#define SPI_SCK_PIN GP6 -#define SPI_MOSI_PIN GP7 -#define SPI_MISO_PIN GP4 - // wiring of each half #define MATRIX_ROW_PINS { GP11, GP10, GP9, GP8 } #define MATRIX_COL_PINS { GP28, GP27, GP26, GP15, GP14 } -// https://github.com/sadekbaroudi/vik/tree/master/pcb/pers60-cirque-leds or https://github.com/sadekbaroudi/vik/tree/master/pcb/pers60-pmw3360-leds -#ifdef FP_VIK_PERS60_MODULE -#define ENCODERS_PAD_A { GP14 } -#define ENCODERS_PAD_B { GP29 } -#define ENCODER_RESOLUTIONS { 1 } -// Switch the default for the PERS60 rotary encoder to scrolling -#define FP_ENC_1_LAYER_SCROLL_WHEEL 0 -#define FP_ENC_1_LAYER_SUPER_TAB 5 -#endif +// VIK pin config +#define VIK_SPI_DRIVER SPID0 +#define VIK_SPI_SCK_PIN GP6 +#define VIK_SPI_MOSI_PIN GP7 +#define VIK_SPI_MISO_PIN GP4 +#define VIK_SPI_CS GP5 +#define VIK_I2C_DRIVER I2CD1 +#define VIK_I2C_SDA_PIN GP2 +#define VIK_I2C_SCL_PIN GP3 +#define VIK_GPIO_1 GP13 +#define VIK_GPIO_2 GP29 +#define VIK_WS2812_DI_PIN GP0 -// Got help from https://www.eisbahn.jp/yoichiro/2022/08/luankey_pico_qmk_firmware.html +// Note that this is the top pad on the back of the RP2040-Zero, change this if you end up using that pad +#define VIK_ST7735_UNUSED_PIN GP25 + +// Split config #define SERIAL_PIO_USE_PIO1 #define SERIAL_USART_TX_PIN GP1 // USART TX pin #define WS2812_DI_PIN GP0 +// In case there is a VIK module that has an encoder +#ifdef ENCODER_ENABLE + #define ENCODERS_PAD_A { GP13 } + #define ENCODERS_PAD_B { GP29 } +#endif + #ifdef AUDIO_ENABLE #define AUDIO_VOICES #define AUDIO_PIN GP12 @@ -64,28 +71,12 @@ along with this program. If not, see . #endif #ifdef CIRQUE_ENABLE - // cirque trackpad config - #define CIRQUE_PINNACLE_SPI_CS_PIN GP5 - // Uncomment 2 lines below to switch to relative mode and enable right click - // Note that tap to click doesn't work on the slave side unless you enable relative mode - // #define CIRQUE_PINNACLE_POSITION_MODE CIRQUE_PINNACLE_RELATIVE_MODE - // #define CIRQUE_PINNACLE_SECONDARY_TAP_ENABLE - #define CIRQUE_PINNACLE_TAP_ENABLE #define POINTING_DEVICE_ROTATION_90 - #define POINTING_DEVICE_TASK_THROTTLE_MS 5 #define POINTING_DEVICE_LEFT #endif -#ifdef FP_TRACKBALL_ENABLE - // Trackball config - #define PMW33XX_CS_PIN GP5 - #define PMW33XX_CPI 1000 - #define PMW33XX_CS_DIVISOR 8 - - /* SPI config for pmw3360 sensor. */ - #define SPI_DRIVER SPID0 - // #define SPI_SCK_PAL_MODE 5 // already defined in chibios - // #define SPI_MOSI_PAL_MODE 5 // already defined in chibios - // #define SPI_MISO_PAL_MODE 5 // already defined in chibios +#ifdef VIK_TRACKBALL_ENABLE #define POINTING_DEVICE_LEFT #endif + +#include "keyboards/fingerpunch/src/config_post.h" \ No newline at end of file diff --git a/keyboards/fingerpunch/vulpes_minora/rp2040zero/fp_build.json b/keyboards/fingerpunch/vulpes_minora/rp2040zero/fp_build.json index 1e5a4beb35..f560fca5b2 100644 --- a/keyboards/fingerpunch/vulpes_minora/rp2040zero/fp_build.json +++ b/keyboards/fingerpunch/vulpes_minora/rp2040zero/fp_build.json @@ -1,32 +1,26 @@ [ { - "type" : "single", - "name" : "CIRQUE_ENABLE", - "user_input": "Do you have a cirque?" - }, - { - "type" : "single", - "name" : "FP_TRACKBALL_ENABLE", - "user_input": "Do you have a trackball?" + "type" : "one-of", + "names" : [ + "VIK_HAPTIC", + "VIK_PER56_CIRQUE_LEDS", + "VIK_PER56_CIRQUE_LEDS", + "VIK_PER56_PMW3360_LEDS", + "VIK_PMW3360", + "VIK_WEACT_ST7735", + "VIK_VIK_GC9A01", + "VIK_WAVESHARE_22224" + ], + "user_input": "Are you using a VIK module? NONE, VIK_HAPTIC, VIK_PER56_CIRQUE_LEDS, VIK_PER56_CIRQUE_LEDS, VIK_PER56_PMW3360_LEDS, VIK_PMW3360, VIK_WEACT_ST7735, VIK_VIK_GC9A01, VIK_WAVESHARE_22224" }, { "type" : "one-of", "names" : [ "RGBLIGHT_ENABLE", "RGB_MATRIX_ENABLE" ], "user_input": "No RGB, RGB light, RGB matrix?" }, - { - "type" : "single", - "name" : "FP_VIK_PERS60_MODULE", - "user_input": "Do you have a scroll wheel VIK module installed with LEDs?" - }, { "type" : "single", "name" : "AUDIO_ENABLE", "user_input": "Do you have an audio buzzer?" - }, - { - "type" : "single", - "name" : "HAPTIC_ENABLE", - "user_input": "Do you have a haptic feedback?" } ] diff --git a/keyboards/fingerpunch/vulpes_minora/rp2040zero/rules.mk b/keyboards/fingerpunch/vulpes_minora/rp2040zero/rules.mk index 3d8807e716..1c762cc15f 100644 --- a/keyboards/fingerpunch/vulpes_minora/rp2040zero/rules.mk +++ b/keyboards/fingerpunch/vulpes_minora/rp2040zero/rules.mk @@ -32,29 +32,5 @@ MOUSEKEY_ENABLE = yes SPLIT_KEYBOARD = yes SERIAL_DRIVER = vendor -#HAPTIC FEEDBACK -HAPTIC_ENABLE ?= no -HAPTIC_DRIVER = drv2605l - AUDIO_ENABLE ?= no AUDIO_DRIVER = pwm_hardware - -ifeq ($(strip $(FP_VIK_PERS60_MODULE)), yes) - OPT_DEFS += -DFP_VIK_PERS60_MODULE - ENCODER_ENABLE := yes -endif - -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_spi - OPT_DEFS += -DCIRQUE_ENABLE -endif - -ifeq ($(strip $(FP_TRACKBALL_ENABLE)), yes) - MOUSEKEY_ENABLE := yes # not required, but enabling for mouse button keys - POINTING_DEVICE_ENABLE := yes - POINTING_DEVICE_DRIVER := pmw3360 - QUANTUM_LIB_SRC += spi_master.c - OPT_DEFS += -DFP_TRACKBALL_ENABLE -endif diff --git a/keyboards/fingerpunch/vulpes_minora/rules.mk b/keyboards/fingerpunch/vulpes_minora/rules.mk index e341ab9833..59de1dcf4e 100644 --- a/keyboards/fingerpunch/vulpes_minora/rules.mk +++ b/keyboards/fingerpunch/vulpes_minora/rules.mk @@ -1 +1,3 @@ +VIK_ENABLE=yes + include keyboards/fingerpunch/src/rules.mk diff --git a/keyboards/fingerpunch/vulpes_minora/vulpes_minora.h b/keyboards/fingerpunch/vulpes_minora/vulpes_minora.h index f69a24cac2..c0588065c7 100644 --- a/keyboards/fingerpunch/vulpes_minora/vulpes_minora.h +++ b/keyboards/fingerpunch/vulpes_minora/vulpes_minora.h @@ -21,6 +21,8 @@ # include "byomcu.h" #elif defined(KEYBOARD_fingerpunch_vulpes_minora_rp2040zero) # include "rp2040zero.h" +#elif defined(KEYBOARD_fingerpunch_vulpes_minora_xivik) +# include "xivik.h" #endif #include "keyboards/fingerpunch/src/fp.h" diff --git a/keyboards/fingerpunch/vulpes_minora/xivik/config.h b/keyboards/fingerpunch/vulpes_minora/xivik/config.h new file mode 100644 index 0000000000..c00c3bf1db --- /dev/null +++ b/keyboards/fingerpunch/vulpes_minora/xivik/config.h @@ -0,0 +1,81 @@ +/* +Copyright 2023 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 */ +// Rows are doubled-up +#define MATRIX_ROWS 8 +#define MATRIX_COLS 10 + +// wiring of each half +#ifdef FP_XIVIK_V01 + #define MATRIX_ROW_PINS { GP1, GP24, GP9, GP8 } + #define MATRIX_COL_PINS { GP2, GP3, GP4, GP5, GP6 } +#else + #define MATRIX_ROW_PINS { GP1, GP23, GP20, GP22 } + #define MATRIX_COL_PINS { GP2, GP3, GP5, GP6, GP4 } +#endif + +// VIK pin config +#define VIK_SPI_DRIVER SPID1 +#define VIK_SPI_SCK_PIN GP14 +#define VIK_SPI_MOSI_PIN GP15 +#define VIK_SPI_MISO_PIN GP12 +#define VIK_SPI_CS GP13 +#define VIK_I2C_DRIVER I2CD1 +#ifdef FP_XIVIK_V01 + #define VIK_I2C_SDA_PIN GP22 + #define VIK_I2C_SCL_PIN GP23 +#else + #define VIK_I2C_SDA_PIN GP8 + #define VIK_I2C_SCL_PIN GP9 +#endif +#define VIK_GPIO_1 GP18 +#define VIK_GPIO_2 GP10 +#define VIK_WS2812_DI_PIN GP16 + +// Used only if you have a weact st7735 display, set to unused pin +#define VIK_ST7735_UNUSED_PIN GP11 + +// Split config +#define SERIAL_PIO_USE_PIO1 +#ifdef FP_XIVIK_V01 + #define SERIAL_USART_TX_PIN GP7 +#else + // USART TX pin + #define SERIAL_USART_TX_PIN GP21 +#endif + +#define WS2812_DI_PIN GP0 + +#ifdef ENCODER_ENABLE + // In case there is a VIK module that has an encode + #define ENCODERS_PAD_A { GP18 } + #define ENCODERS_PAD_B { GP10 } +#endif + +#ifdef CIRQUE_ENABLE + #define POINTING_DEVICE_ROTATION_90 + #define POINTING_DEVICE_LEFT +#endif + +#ifdef VIK_TRACKBALL_ENABLE + #define POINTING_DEVICE_LEFT +#endif + +#include "keyboards/fingerpunch/src/config_post.h" \ No newline at end of file diff --git a/keyboards/fingerpunch/vulpes_minora/xivik/fp_build.json b/keyboards/fingerpunch/vulpes_minora/xivik/fp_build.json new file mode 100644 index 0000000000..0e0a2f08df --- /dev/null +++ b/keyboards/fingerpunch/vulpes_minora/xivik/fp_build.json @@ -0,0 +1,21 @@ +[ + { + "type" : "one-of", + "names" : [ + "VIK_HAPTIC", + "VIK_PER56_CIRQUE_LEDS", + "VIK_PER56_CIRQUE_LEDS", + "VIK_PER56_PMW3360_LEDS", + "VIK_PMW3360", + "VIK_WEACT_ST7735", + "VIK_VIK_GC9A01", + "VIK_WAVESHARE_22224" + ], + "user_input": "Are you using a VIK module? NONE, VIK_HAPTIC, VIK_PER56_CIRQUE_LEDS, VIK_PER56_CIRQUE_LEDS, VIK_PER56_PMW3360_LEDS, VIK_PMW3360, VIK_WEACT_ST7735, VIK_VIK_GC9A01, VIK_WAVESHARE_22224" + }, + { + "type" : "one-of", + "names" : [ "RGBLIGHT_ENABLE", "RGB_MATRIX_ENABLE" ], + "user_input": "No RGB, RGB light, RGB matrix?" + } +] diff --git a/keyboards/fingerpunch/vulpes_minora/xivik/halconf.h b/keyboards/fingerpunch/vulpes_minora/xivik/halconf.h new file mode 100644 index 0000000000..e659a63244 --- /dev/null +++ b/keyboards/fingerpunch/vulpes_minora/xivik/halconf.h @@ -0,0 +1,25 @@ +/* + * Copyright 2022 Charly Delay (@0xcharly) + * + * 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_SPI TRUE +#define HAL_USE_I2C TRUE +#define HAL_USE_PWM TRUE +#define HAL_USE_PAL TRUE + +#include_next "halconf.h" diff --git a/keyboards/fingerpunch/vulpes_minora/xivik/info.json b/keyboards/fingerpunch/vulpes_minora/xivik/info.json new file mode 100644 index 0000000000..5115609112 --- /dev/null +++ b/keyboards/fingerpunch/vulpes_minora/xivik/info.json @@ -0,0 +1,11 @@ +{ + "manufacturer": "sadekbaroudi", + "keyboard_name": "vulpes minora", + "url": "https://github.com/sadekbaroudi/vulpes-minora/", + "maintainer": "Sadek Baroudi ", + "usb": { + "vid": "0xFEFE", + "pid": "0x1110", + "device_version": "1.0.0" + } +} diff --git a/keyboards/fingerpunch/vulpes_minora/xivik/keymaps/default/keymap.c b/keyboards/fingerpunch/vulpes_minora/xivik/keymaps/default/keymap.c new file mode 100644 index 0000000000..0c375cda76 --- /dev/null +++ b/keyboards/fingerpunch/vulpes_minora/xivik/keymaps/default/keymap.c @@ -0,0 +1,162 @@ +#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 + * + * ,----------------------------------. ,----------------------------------. + * | Q | W | E | R | T | | Y | U | I | O | P | + * |------+------+------+------+------| |------+------+------+------+------| + * | A | S | D | F | G | | H | J | K | L | ; | + * |------+------+------+------+------| |------+------+------+------+------| + * | Z | X | C | V | B | | N | M | , | . | / | + * `----------------------------------' `----------------------------------' + * ,--------------------. ,--------------------. + * | LOWER| Enter| Del | |BckSpc| Space| RAISE| + * `--------------------' `--------------------. + */ + +// Default config uses home row mods. So hold each of the keys on the home row to use ctrl, gui, alt, or shift +[_QWERTY] = LAYOUT_split_3x5_3( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + LCTL_T(KC_A), LGUI_T(KC_S), LALT_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, RSFT_T(KC_J), RALT_T(KC_K), RGUI_T(KC_L), RCTL_T(KC_SCLN), + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + LOWER, KC_ENT, KC_DEL, KC_BSPC, KC_SPC, RAISE +), + +/* Colemak + * + * ,----------------------------------. ,----------------------------------. + * | Q | W | F | P | B | | J | L | U | Y | ; | + * |------+------+------+------+------| |------+------+------+------+------| + * | A | R | S | T | G | | M | N | E | I | O | + * |------+------+------+------+------| |------+------+------+------+------| + * | Z | X | C | D | V | | K | H | , | . | / | + * `-------------+--------------------' `----------------------------------' + * ,--------------------. ,--------------------. + * | LOWER| Enter| ' | |BckSpc| Space| RAISE| + * `--------------------' `--------------------. + */ + +// Default config uses home row mods. So hold each of the keys on the home row to use ctrl, gui, alt, or shift +[_COLEMAK] = LAYOUT_split_3x5_3( + KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, + LCTL_T(KC_A), LGUI_T(KC_R), LALT_T(KC_S), LSFT_T(KC_T), KC_G, KC_M, RSFT_T(KC_N), RALT_T(KC_E), RGUI_T(KC_I), RCTL_T(KC_O), + KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, + LOWER, KC_ENT, KC_QUOT, KC_BSPC, KC_SPC, RAISE +), + +/* Raise + * + * ,----------------------------------. ,----------------------------------. + * | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | + * |------+------+------+------+------| |------+------+------+------+------| + * | Left | Down | Up | Right| Tab | | | - | = | [ | ] | + * |------+------+------+------+------| |------+------+------+------+------| + * | Ctrl| ` | GUI | Alt | | | | | | \ | ' | + * `----------------------------------' `----------------------------------' + * ,--------------------. ,--------------------. + * | LOWER| | | | | | RAISE| + * `--------------------' `--------------------. + */ +[_RAISE] = LAYOUT_split_3x5_3( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TAB, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, + KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, _______, _______, _______, _______, KC_BSLS, KC_QUOT, + _______, _______, _______, _______, _______, _______ +), + +/* Lower + * + * ,----------------------------------. ,----------------------------------. + * | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + * |------+------+------+------+------| |------+------+------+------+------| + * | Esc | | | | | | | _ | + | { | } | + * |------+------+------+------+------| |------+------+------+------+------| + * | Caps| ~ | |Reset |Btldr | | | | | | | ' | + * `----------------------------------' `----------------------------------' + * ,--------------------. ,--------------------. + * | LOWER| | | | Del | | RAISE| + * `--------------------' `--------------------. + */ +[_LOWER] = LAYOUT_split_3x5_3( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, + KC_ESC, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, + KC_CAPS, KC_TILD, _______, QK_RBT, QK_BOOT, _______, _______, _______, KC_PIPE, KC_DQT, + _______, _______, _______, KC_DEL, _______, _______ +), + +/* Adjust (Lower + Raise) + * + * ,----------------------------------. ,----------------------------------. + * | RGB_T| RGB_R| RGB_F| |QWERTY| | F1 | F2 | F3 | F4 | F5 | + * |------+------+------+------+------| |------+------+------+------+------| + * | SPD_I| HUE_I| SAT_I| VAL_I|COLEMK| | F6 | F7 | F8 | F9 | F10 | + * |------+------+------+------+------| |------+------+------+------+------| + * | SPD_D| HUE_D| SAT_D| VAL_D| | | F11 | F12 | |Reset | Btldr| + * `----------------------------------' `----------------------------------' + * ,--------------------. ,--------------------. + * | LOWER| | | | | | RAISE| + * `--------------------' `--------------------. + */ +[_ADJUST] = LAYOUT_split_3x5_3( + RGB_TOG, RGB_RMOD, RGB_MOD, _______, TO(_QWERTY), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, + RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, TO(_COLEMAK), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, _______, KC_F11, KC_F12, _______, QK_RBT, QK_BOOT, + _______, _______, _______, _______, _______, _______ +) +}; + +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; +} \ No newline at end of file diff --git a/keyboards/fingerpunch/vulpes_minora/xivik/keymaps/manna-harbour_miryoku/config.h b/keyboards/fingerpunch/vulpes_minora/xivik/keymaps/manna-harbour_miryoku/config.h new file mode 100644 index 0000000000..a3d48aa901 --- /dev/null +++ b/keyboards/fingerpunch/vulpes_minora/xivik/keymaps/manna-harbour_miryoku/config.h @@ -0,0 +1,21 @@ +// Copyright 2023 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// 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 XXX KC_NO + +#define LAYOUT_miryoku( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + N30, K31, K32, K33, K34, K35, K36, K37, K38, N39 \ +) \ +LAYOUT_ximi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX \ +) diff --git a/keyboards/fingerpunch/vulpes_minora/xivik/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/fingerpunch/vulpes_minora/xivik/keymaps/manna-harbour_miryoku/keymap.c new file mode 100644 index 0000000000..fadfdc8365 --- /dev/null +++ b/keyboards/fingerpunch/vulpes_minora/xivik/keymaps/manna-harbour_miryoku/keymap.c @@ -0,0 +1,4 @@ +// Copyright 2022 Manna Harbour +// https://github.com/manna-harbour/miryoku + +// 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 . diff --git a/keyboards/fingerpunch/vulpes_minora/xivik/keymaps/sadekbaroudi/keymap.c b/keyboards/fingerpunch/vulpes_minora/xivik/keymaps/sadekbaroudi/keymap.c new file mode 100644 index 0000000000..1587357cda --- /dev/null +++ b/keyboards/fingerpunch/vulpes_minora/xivik/keymaps/sadekbaroudi/keymap.c @@ -0,0 +1,96 @@ +/* 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 + +/* + * The `LAYOUT_luakeeb_base` macro is a template to allow the use of identical + * modifiers for the default layouts (eg ALPHA_ALT, Colemak, 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_vulpes_minora_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( \ + K01, K02, K03, LT(_FUNCTION, K04), K05, K06, LT(_FUNCTION, K07), K08, K09, K0A, \ + LCTL_T(K11), LGUI_T(K12), LALT_T(K13), LSFT_T(K14), K15, LT(_MOUSE, K16), RSFT_T(K17), RALT_T(K18), RGUI_T(K19), RCTL_T(K1A), \ + K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \ + K33, LT(_NAVIGATION,K34), LT(_FUNCTION,K35), LT(_MEDIA,K36), LT(_SYMBOLS,K37), K38, \ + ) + +/* Re-pass though to allow templates to be used */ +#define LAYOUT_vulpes_minora_base_wrapper(...) LAYOUT_vulpes_minora_base(__VA_ARGS__) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_ALPHA_ALT] = LAYOUT_vulpes_minora_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_vulpes_minora_base_wrapper( + __________________ALPHA_L1____________________, __________________ALPHA_R1____________________, + __________________ALPHA_L2____________________, __________________ALPHA_R2____________________, + __________________ALPHA_L3____________________, __________________ALPHA_R3____________________, + __ALPHA_THUMBS_6__ + ), + + [_NAVIGATION] = LAYOUT_wrapper( + ________________NAVIGATION_1_______________, _________________NUMPAD_1__________________, + ________________NAVIGATION_2_______________, _________________NUMPAD_2__________________, + ________________NAVIGATION_3_______________, _________________NUMPAD_3__________________, + _______, _______, KC_TAB, KC_BSPC, KC_SPACE, KC_DOT + ), + + [_SYMBOLS] = LAYOUT_wrapper( + ________________SYMBOLS_L1_________________, ________________SYMBOLS_R1_________________, + ________________SYMBOLS_L2_________________, ________________SYMBOLS_R2_________________, + ________________SYMBOLS_L3_________________, ________________SYMBOLS_R3_________________, + _______, KC_ENT, KC_DEL, KC_BSPC, _______, _______ + ), + + [_FUNCTION] = LAYOUT_wrapper( + ________________SHIFTNAV_1_________________, ________________FUNCTION_1_________________, + ________________SHIFTNAV_2_________________, ________________FUNCTION_2_________________, + ________________SHIFTNAV_3_________________, ________________FUNCTION_3_________________, + _______, _______, _______, N_DEL_LINE, KC_SPACE, _______ + ), + + [_MEDIA] = LAYOUT_wrapper( + ___________________RGB_1___________________, _________________MACROS_1__________________, + ___________________RGB_2___________________, _________________MACROS_2__________________, + ___________________RGB_3___________________, _________________MACROS_3__________________, + _______, _______, _______, _______, _______, _______ + ), + + [_MOUSE] = LAYOUT_wrapper( + __________________MOUSE_1__________________, ___________________BLANK___________________, + __________________MOUSE_2__________________, ___________________BLANK___________________, + __________________MOUSE_3__________________, ___________________BLANK___________________, + _______, KC_MS_BTN1, KC_MS_BTN3, KC_MS_BTN3, KC_MS_BTN2, _______ + ) + +}; diff --git a/keyboards/fingerpunch/vulpes_minora/xivik/mcuconf.h b/keyboards/fingerpunch/vulpes_minora/xivik/mcuconf.h new file mode 100644 index 0000000000..d7053c289d --- /dev/null +++ b/keyboards/fingerpunch/vulpes_minora/xivik/mcuconf.h @@ -0,0 +1,12 @@ +#pragma once + +#include_next "mcuconf.h" + +#undef RP_SPI_USE_SPI1 +#define RP_SPI_USE_SPI1 TRUE + +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C1 TRUE + +#undef RP_PWM_USE_PWM6 +#define RP_PWM_USE_PWM6 TRUE diff --git a/keyboards/fingerpunch/vulpes_minora/xivik/readme.md b/keyboards/fingerpunch/vulpes_minora/xivik/readme.md new file mode 100644 index 0000000000..9a16bc6834 --- /dev/null +++ b/keyboards/fingerpunch/vulpes_minora/xivik/readme.md @@ -0,0 +1,25 @@ +# vulpes minora + +* Keyboard Maintainer: sadekbaroudi +* Hardware Supported: vulpes minora (rp2040-zero) + +Make example for this keyboard (after setting up your build environment): +``` + make fingerpunch/vulpes_minora:default RGBLIGHT_ENABLE=yes ENCODER_ENABLE=yes +``` + +Options are: +``` + RGBLIGHT_ENABLE=yes + HAPTIC_FEEDBACK=yes + ENCODER_ENABLE=yes + CIRQUE_ENABLE=yes + FP_TRACKBALL_ENABLE=yes +``` + +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. + +## Build Guide + +See: +https://github.com/sadekbaroudi/vulpes-minora/ diff --git a/keyboards/fingerpunch/vulpes_minora/xivik/rules.mk b/keyboards/fingerpunch/vulpes_minora/xivik/rules.mk new file mode 100644 index 0000000000..1496ea5c06 --- /dev/null +++ b/keyboards/fingerpunch/vulpes_minora/xivik/rules.mk @@ -0,0 +1,37 @@ +# MCU name +MCU = RP2040 +BOOTLOADER = rp2040 + +# 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 + +# Either do RGBLIGHT_ENABLE or RGB_MATRIX_ENABLE and RGB_MATRIX_DRIVER +RGBLIGHT_ENABLE ?= no +RGB_MATRIX_ENABLE ?= no # not supported yet, but will add +RGB_MATRIX_DRIVER = ws2812 +WS2812_DRIVER = vendor + +MIDI_ENABLE = no # MIDI support +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +ENCODER_ENABLE ?= no +EXTRAFLAGS += -flto # macros enable or disable +MOUSEKEY_ENABLE = yes + +SPLIT_KEYBOARD = yes +SERIAL_DRIVER = vendor + +ifeq ($(strip $(FP_XIVIK_V01)), yes) + OPT_DEFS += -DFP_XIVIK_V01 +endif \ No newline at end of file diff --git a/keyboards/fingerpunch/vulpes_minora/xivik/xivik.c b/keyboards/fingerpunch/vulpes_minora/xivik/xivik.c new file mode 100644 index 0000000000..7610af850e --- /dev/null +++ b/keyboards/fingerpunch/vulpes_minora/xivik/xivik.c @@ -0,0 +1 @@ +#include "xivik.h" diff --git a/keyboards/fingerpunch/vulpes_minora/xivik/xivik.h b/keyboards/fingerpunch/vulpes_minora/xivik/xivik.h new file mode 100644 index 0000000000..c454281c8e --- /dev/null +++ b/keyboards/fingerpunch/vulpes_minora/xivik/xivik.h @@ -0,0 +1,24 @@ +#pragma once +#include "quantum.h" + +#define ___ KC_NO + +#define LAYOUT_split_3x5_3( \ + K01, K02, K03, K04, K05, K45, K44, K43, K42, K41, \ + K11, K12, K13, K14, K15, K55, K54, K53, K52, K51, \ + K21, K22, K23, K24, K25, K65, K64, K63, K62, K61, \ + K33, K34, K35, K75, K74, K73 \ + ) \ + { \ + { K01, K02, K03, K04, K05 }, \ + { K11, K12, K13, K14, K15 }, \ + { K21, K22, K23, K24, K25 }, \ + { ___, ___, K33, K34, K35 }, \ + { K41, K42, K43, K44, K45 }, \ + { K51, K52, K53, K54, K55 }, \ + { K61, K62, K63, K64, K65 }, \ + { ___, ___, K73, K74, K75 } \ + } + +#define LAYOUT LAYOUT_split_3x5_3 +