mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-07-20 14:42:03 +00:00
First SPV1 support
This commit is contained in:
parent
6eb2e43a8d
commit
f0167b0187
34
keyboards/spv1/config.h
Normal file
34
keyboards/spv1/config.h
Normal file
@ -0,0 +1,34 @@
|
||||
/* Copyright 2023 Gondolindrim <gondolindrim@acheronproject.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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define BACKLIGHT_PWM_DRIVER PWMD3
|
||||
#define BACKLIGHT_PWM_CHANNEL 2
|
||||
#define BACKLIGHT_PAL_MODE 2
|
||||
|
||||
#define LED_CAPS A8
|
||||
#define LED_IND1 B14
|
||||
#define LED_IND2 B15
|
||||
#define LED_IND3 C6
|
||||
#define LED_IND4 B13
|
||||
#define LED_IND5 B1
|
||||
#define LED_IND6 B12
|
||||
#define LED_IND7 B10
|
||||
#define LED_IND8 B0
|
||||
|
||||
#define WEAR_LEVELING_LOGICAL_SIZE 2048
|
||||
#define WEAR_LEVELING_BACKING_SIZE 4096
|
21
keyboards/spv1/halconf.h
Normal file
21
keyboards/spv1/halconf.h
Normal file
@ -0,0 +1,21 @@
|
||||
/* Copyright 2023 Gondolindrim <gondolindrim@acheronproject.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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_PWM TRUE
|
||||
|
||||
#include_next <halconf.h>
|
138
keyboards/spv1/info.json
Normal file
138
keyboards/spv1/info.json
Normal file
@ -0,0 +1,138 @@
|
||||
{
|
||||
"keyboard_name": "SPV1",
|
||||
"manufacturer": "Bisoromi",
|
||||
"url": "",
|
||||
"maintainer": "Gondolindrim",
|
||||
"usb": {
|
||||
"vid": "0xAC11",
|
||||
"pid": "0x5356",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"processor": "STM32F401",
|
||||
"bootloader": "stm32-dfu",
|
||||
"matrix_pins": {
|
||||
"cols": ["A5" ,"A6" ,"C4" ,"C5","C8" ,"C9" ,"D2" ,"C12","C11","C10","A10","B3" ,"B5" ,"B4" ,"B8" ,"B9" ,"C13","C14","C15" ],
|
||||
"rows": ["C3" ,"C2" ,"C1" ,"C0","A15","A7" ,"A0" ]
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"backlight": true
|
||||
},
|
||||
"backlight": {
|
||||
"breathing": true,
|
||||
"levels": 30,
|
||||
"pin": "C7"
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"label":"PrtSc", "matrix":[ 0, 0], "x":0 , "y":0 },
|
||||
{"label":"Scroll Lock", "matrix":[ 0, 1], "x":1 , "y":0 },
|
||||
{"label":"Pause", "matrix":[ 0, 2], "x":2 , "y":0 },
|
||||
{"label":"Esc", "matrix":[ 0, 4], "x":4.25 , "y":0 },
|
||||
{"label":"F1", "matrix":[ 0, 5], "x":5.75 , "y":0 },
|
||||
{"label":"F2", "matrix":[ 0, 6], "x":6.75 , "y":0 },
|
||||
{"label":"F3", "matrix":[ 0, 7], "x":7.75 , "y":0 },
|
||||
{"label":"F4", "matrix":[ 0, 8], "x":8.75 , "y":0 },
|
||||
{"label":"F5", "matrix":[ 0, 9], "x":10.25, "y":0 },
|
||||
{"label":"F6", "matrix":[ 0,10], "x":11.25, "y":0 },
|
||||
{"label":"F7", "matrix":[ 0,11], "x":12.25, "y":0 },
|
||||
{"label":"F8", "matrix":[ 0,12], "x":13.25, "y":0 },
|
||||
{"label":"F9", "matrix":[ 0,13], "x":14.75, "y":0 },
|
||||
{"label":"F10", "matrix":[ 0,14], "x":15.75, "y":0 },
|
||||
{"label":"F11", "matrix":[ 0,15], "x":16.75, "y":0 },
|
||||
{"label":"F12", "matrix":[ 0,16], "x":17.75, "y":0 },
|
||||
{ "matrix":[ 0,17], "x":17.25, "y":1.25 },
|
||||
{"label":"F13", "matrix":[ 0,18], "x":19.25, "y":0 },
|
||||
{ "matrix":[ 1, 0], "x":0 , "y":1.25 },
|
||||
{ "matrix":[ 1, 1], "x":1 , "y":1.25 },
|
||||
{ "matrix":[ 1, 2], "x":2 , "y":1.25 },
|
||||
{ "matrix":[ 1, 3], "x":3 , "y":1.25 },
|
||||
{"label":"~", "matrix":[ 1, 4], "x":4.25 , "y":1.25 },
|
||||
{"label":"1!", "matrix":[ 1, 5], "x":5.25 , "y":1.25 },
|
||||
{"label":"2@", "matrix":[ 1, 6], "x":6.25 , "y":1.25 },
|
||||
{"label":"3#", "matrix":[ 1, 7], "x":7.25 , "y":1.25 },
|
||||
{"label":"4$", "matrix":[ 1, 8], "x":8.25 , "y":1.25 },
|
||||
{"label":"5%", "matrix":[ 1, 9], "x":9.25 , "y":1.25 },
|
||||
{"label":"6^", "matrix":[ 1,10], "x":10.25, "y":1.25 },
|
||||
{"label":"7&", "matrix":[ 1,11], "x":11.25, "y":1.25 },
|
||||
{"label":"8*", "matrix":[ 1,12], "x":12.25, "y":1.25 },
|
||||
{"label":"9(", "matrix":[ 1,13], "x":13.25, "y":1.25 },
|
||||
{"label":"0)", "matrix":[ 1,14], "x":14.25, "y":1.25 },
|
||||
{"label":"-_", "matrix":[ 1,15], "x":15.25, "y":1.25 },
|
||||
{"label":"=+", "matrix":[ 1,16], "x":16.25, "y":1.25 },
|
||||
{ "matrix":[ 1,17], "x":18.25, "y":1.25 },
|
||||
{"label":"Delete", "matrix":[ 1,18], "x":19.25, "y":1.25 },
|
||||
{ "matrix":[ 2, 0], "x":0 , "y":2.25 },
|
||||
{ "matrix":[ 2, 1], "x":1 , "y":2.25 },
|
||||
{ "matrix":[ 2, 2], "x":2 , "y":2.25 },
|
||||
{ "matrix":[ 2, 3], "x":3 , "y":2.25 },
|
||||
{"label":"Tab", "matrix":[ 2, 4], "x":4.25 , "y":2.25, "w":1.5 },
|
||||
{"label":"Q", "matrix":[ 2, 5], "x":5.75 , "y":2.25 },
|
||||
{"label":"W", "matrix":[ 2, 6], "x":6.75 , "y":2.25 },
|
||||
{"label":"E", "matrix":[ 2, 7], "x":7.75 , "y":2.25 },
|
||||
{"label":"R", "matrix":[ 2, 8], "x":8.75 , "y":2.25 },
|
||||
{"label":"T", "matrix":[ 2, 9], "x":9.75 , "y":2.25 },
|
||||
{"label":"Y", "matrix":[ 2,10], "x":10.75, "y":2.25 },
|
||||
{"label":"U", "matrix":[ 2,11], "x":11.75, "y":2.25 },
|
||||
{"label":"I", "matrix":[ 2,12], "x":12.75, "y":2.25 },
|
||||
{"label":"O", "matrix":[ 2,13], "x":13.75, "y":2.25 },
|
||||
{"label":"P", "matrix":[ 2,14], "x":14.75, "y":2.25 },
|
||||
{"label":"[{", "matrix":[ 2,15], "x":15.75, "y":2.25 },
|
||||
{"label":"]}", "matrix":[ 2,16], "x":16.75, "y":2.25 },
|
||||
{"label":"\\|", "matrix":[ 2,17], "x":17.75, "y":2.25, "w":1.5 },
|
||||
{"label":"PgUp", "matrix":[ 2,18], "x":19.25, "y":2.25 },
|
||||
{ "matrix":[ 3, 0], "x":0 , "y":3.25 },
|
||||
{ "matrix":[ 3, 1], "x":1 , "y":3.25 },
|
||||
{ "matrix":[ 3, 2], "x":2 , "y":3.25 },
|
||||
{ "matrix":[ 3, 3], "x":3 , "y":3.25 },
|
||||
{"label":"Caps Lock", "matrix":[ 3, 4], "x":4.25 , "y":3.25, "w":1.75 },
|
||||
{"label":"A", "matrix":[ 3, 5], "x":6 , "y":3.25 },
|
||||
{"label":"S", "matrix":[ 3, 6], "x":7 , "y":3.25 },
|
||||
{"label":"D", "matrix":[ 3, 7], "x":8 , "y":3.25 },
|
||||
{"label":"F", "matrix":[ 3, 8], "x":9 , "y":3.25 },
|
||||
{"label":"G", "matrix":[ 3, 9], "x":10 , "y":3.25 },
|
||||
{"label":"H", "matrix":[ 3,10], "x":11 , "y":3.25 },
|
||||
{"label":"J", "matrix":[ 3,11], "x":12 , "y":3.25 },
|
||||
{"label":"K", "matrix":[ 3,13], "x":13 , "y":3.25 },
|
||||
{"label":"L", "matrix":[ 3,14], "x":14 , "y":3.25 },
|
||||
{"label":":", "matrix":[ 3,15], "x":15 , "y":3.25 },
|
||||
{"label":"\"", "matrix":[ 3,16], "x":16 , "y":3.25 },
|
||||
{"label":"Enter", "matrix":[ 3,17], "x":17 , "y":3.25, "w":2.25 },
|
||||
{"label":"PgDn", "matrix":[ 3,18], "x":19.25, "y":3.25 },
|
||||
{ "matrix":[ 4, 0], "x":0 , "y":4.25 },
|
||||
{ "matrix":[ 4, 1], "x":1 , "y":4.25 },
|
||||
{ "matrix":[ 4, 2], "x":2 , "y":4.25 },
|
||||
{ "matrix":[ 4, 3], "x":3 , "y":4.25 },
|
||||
{"label":"Shift", "matrix":[ 4, 5], "x":4.25 , "y":4.25, "w":2.25 },
|
||||
{"label":"Z", "matrix":[ 4, 6], "x":6.5 , "y":4.25 },
|
||||
{"label":"X", "matrix":[ 4, 7], "x":7.5 , "y":4.25 },
|
||||
{"label":"C", "matrix":[ 4, 8], "x":8.5 , "y":4.25 },
|
||||
{"label":"V", "matrix":[ 4, 9], "x":9.5 , "y":4.25 },
|
||||
{"label":"B", "matrix":[ 4,10], "x":10.5 , "y":4.25 },
|
||||
{"label":"N", "matrix":[ 4,11], "x":11.5 , "y":4.25 },
|
||||
{"label":"M", "matrix":[ 4,12], "x":12.5 , "y":4.25 },
|
||||
{"label":",<", "matrix":[ 4,13], "x":13.5 , "y":4.25 },
|
||||
{"label":".>", "matrix":[ 4,14], "x":14.5 , "y":4.25 },
|
||||
{"label":"/?", "matrix":[ 4,15], "x":15.5 , "y":4.25 },
|
||||
{"label":"Shift", "matrix":[ 4,16], "x":16.5 , "y":4.25, "w":1.75 },
|
||||
{"label":"\u2191", "matrix":[ 4,17], "x":18.25, "y":4.25 },
|
||||
{"label":"Fn", "matrix":[ 4,18], "x":19.25, "y":4.25 },
|
||||
{ "matrix":[ 5, 0], "x":0 , "y":5.25 },
|
||||
{ "matrix":[ 5, 1], "x":1 , "y":5.25 },
|
||||
{ "matrix":[ 5, 2], "x":2 , "y":5.25 },
|
||||
{ "matrix":[ 5, 3], "x":3 , "y":5.25 },
|
||||
{"label":"Ctrl", "matrix":[ 5, 5], "x":4.25 , "y":5.25, "w":1.5 },
|
||||
{"label":"Alt", "matrix":[ 5, 7], "x":6.75 , "y":5.25, "w":1.5 },
|
||||
{"label":"Space", "matrix":[ 5,11], "x":8.25 , "y":5.25, "w":7 },
|
||||
{"label":"Alt", "matrix":[ 6,15], "x":15.25, "y":5.25, "w":1.5 },
|
||||
{"label":"\u2190", "matrix":[ 6,16], "x":17.25, "y":5.25 },
|
||||
{"label":"\u2193", "matrix":[ 6,17], "x":18.25, "y":5.25 },
|
||||
{"label":"\u2192", "matrix":[ 6,18], "x":19.25, "y":5.25 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
35
keyboards/spv1/keymaps/default/keymap.c
Normal file
35
keyboards/spv1/keymaps/default/keymap.c
Normal file
@ -0,0 +1,35 @@
|
||||
/* Copyright 2023 Gondolindrim <gondolindrim@acheronproject.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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT( /* Base */
|
||||
MO(1) , KC_PSCR, KC_SCRL, KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_BSPC, KC_F13 ,
|
||||
KC_NUM , KC_PSLS, KC_PAST, KC_PMNS , KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_DEL ,
|
||||
KC_P7 , KC_P8 , KC_P9 , KC_NO , KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
|
||||
KC_P4 , KC_P5 , KC_P6 , KC_PPLS , KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_COLN, KC_QUOT, KC_ENT , KC_PGDN,
|
||||
KC_P1 , KC_P2 , KC_P3 , KC_NO , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , MO(1) ,
|
||||
KC_NO , KC_P0 , KC_PDOT, KC_PENT , KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT(
|
||||
RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
35
keyboards/spv1/keymaps/via/keymap.c
Normal file
35
keyboards/spv1/keymaps/via/keymap.c
Normal file
@ -0,0 +1,35 @@
|
||||
/* Copyright 2023 Gondolindrim <gondolindrim@acheronproject.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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT( /* Base */
|
||||
MO(1) , KC_PSCR, KC_SCRL, KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_BSPC, KC_F13 ,
|
||||
KC_NUM , KC_PSLS, KC_PAST, KC_PMNS , KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_DEL ,
|
||||
KC_P7 , KC_P8 , KC_P9 , KC_NO , KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
|
||||
KC_P4 , KC_P5 , KC_P6 , KC_PPLS , KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_COLN, KC_QUOT, KC_ENT , KC_PGDN,
|
||||
KC_P1 , KC_P2 , KC_P3 , KC_NO , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , MO(1) ,
|
||||
KC_NO , KC_P0 , KC_PDOT, KC_PENT , KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT(
|
||||
RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
1
keyboards/spv1/keymaps/via/rules.mk
Normal file
1
keyboards/spv1/keymaps/via/rules.mk
Normal file
@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
21
keyboards/spv1/mcuconf.h
Normal file
21
keyboards/spv1/mcuconf.h
Normal file
@ -0,0 +1,21 @@
|
||||
/* Copyright 2023 Gondolindrim <gondolindrim@acheronproject.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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
#undef STM32_PWM_USE_TIM3
|
||||
#define STM32_PWM_USE_TIM3 TRUE
|
4
keyboards/spv1/rules.mk
Normal file
4
keyboards/spv1/rules.mk
Normal file
@ -0,0 +1,4 @@
|
||||
BACKLIGHT_DRIVER = pwm
|
||||
|
||||
# Enter lower-power sleep mode when on the ChibiOS idle thread
|
||||
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
|
40
keyboards/spv1/spv1.c
Normal file
40
keyboards/spv1/spv1.c
Normal file
@ -0,0 +1,40 @@
|
||||
/* Copyright 2023 Gondolindrim <gondolindrim@acheronproject.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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
bool led_update_kb(led_t led_state) {
|
||||
bool res = led_update_user(led_state);
|
||||
if(res) {
|
||||
writePin(LED_CAPS, led_state.caps_lock);
|
||||
writePin(LED_IND1, led_state.caps_lock);
|
||||
writePin(LED_IND2, led_state.num_lock);
|
||||
writePin(LED_IND3, led_state.scroll_lock);
|
||||
|
||||
writePin(LED_IND4, led_state.scroll_lock);
|
||||
writePin(LED_IND6, led_state.scroll_lock);
|
||||
|
||||
writePin(LED_IND5, led_state.num_lock);
|
||||
writePin(LED_IND8, led_state.num_lock);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
layer_state_t layer_state_set_kb(layer_state_t state) {
|
||||
if (get_highest_layer(state) > 0) writePin(LED_IND7, 1);
|
||||
else writePin(LED_IND7, 0);
|
||||
return state;
|
||||
}
|
Loading…
Reference in New Issue
Block a user