Change review #1

This commit is contained in:
Lefuneste83 2024-09-08 00:24:46 +02:00
parent c0d4c826a3
commit d360b52db2
11 changed files with 169 additions and 327 deletions

View File

@ -24,26 +24,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define I2C1_SCL_PIN GP3 #define I2C1_SCL_PIN GP3
#define I2C1_SDA_PIN GP2 #define I2C1_SDA_PIN GP2
// ┌─────────────────────────────────────────────────┐
// │ k e y m a t r i x │
// └─────────────────────────────────────────────────┘
#define MATRIX_ROWS 8
#define MATRIX_COLS 6
#define DEBOUNCE 5
// ┌─────────────────────────────────────────────────┐ // ┌─────────────────────────────────────────────────┐
// │ s p l i t c o m m u n i c a t i o n │ // │ s p l i t c o m m u n i c a t i o n │
// └─────────────────────────────────────────────────┘ // └─────────────────────────────────────────────────┘
#define USE_SERIAL //#define SPLIT_USB_DETECT
#define SERIAL_USE_MULTI_TRANSACTION
#define SPLIT_USB_DETECT
//Half Duplex communication //Half Duplex communication
#define SERIAL_USART_TX_PIN GP1 // USART TX pin //#define SERIAL_USART_TX_PIN GP1 // USART TX pin
//
//Full Duplex communication //Full Duplex communication
//#define SERIAL_USART_TX_PIN GP4 // USART TX pin //#define SERIAL_USART_TX_PIN GP4 // USART TX pin
//#define SERIAL_USART_RX_PIN GP1 // USART RX pin //#define SERIAL_USART_RX_PIN GP1 // USART RX pin
@ -51,13 +41,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define SERIAL_USART_PIN_SWAP //#define SERIAL_USART_PIN_SWAP
// ┌─────────────────────────────────────────────────┐
// │ e n c o d e r s │
// └─────────────────────────────────────────────────┘
#define ENCODER_RESOLUTION { 2 }
#define ENCODER_RESOLUTIONS_RIGHT { 2 }
// ┌─────────────────────────────────────────────────┐ // ┌─────────────────────────────────────────────────┐
// │ o l e d s │ // │ o l e d s │
// └─────────────────────────────────────────────────┘ // └─────────────────────────────────────────────────┘
@ -69,33 +52,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#endif #endif
// ┌─────────────────────────────────────────────────┐
// │ r g b l e d s │
// └─────────────────────────────────────────────────┘
#define RGBLED_NUM 42
#define RGBLED_SPLIT { 21, 21 }
#define RGB_MATRIX_LED_COUNT RGBLED_NUM
#ifdef RGB_MATRIX_ENABLE
# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_BREATHING
# define SPLIT_TRANSPORT_MIRROR true
# define DRIVER_LED_TOTAL 42 // Number of LEDs
# define RGB_MATRIX_SPLIT { 21, 21 }
# define RGB_MATRIX_TIMEOUT 120000
# define RGB_MATRIX_SLEEP
# define RGB_MATRIX_LED_FLUSH_LIMIT 16
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255
# define RGB_MATRIX_STARTUP_HUE 299
# define RGB_MATRIX_DEFAULT_ON true
# define RGB_MATRIX_DEFAULT_SAT 255
# define RGB_MATRIX_DEFAULT_SPD 127
# define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
# define RGB_DISABLE_WHEN_USB_SUSPENDED
# define RGB_MATRIX_KEYPRESSES
#endif
// ┌─────────────────────────────────────────────────┐ // ┌─────────────────────────────────────────────────┐
// │ a u d i o │ // │ a u d i o │
// └─────────────────────────────────────────────────┘ // └─────────────────────────────────────────────────┘
@ -104,10 +60,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define AUDIO_PWM_CHANNEL RP2040_PWM_CHANNEL_B #define AUDIO_PWM_CHANNEL RP2040_PWM_CHANNEL_B
#define AUDIO_STATE_TIMER GPTD4 #define AUDIO_STATE_TIMER GPTD4
#define AUDIO_PIN GP9 #define AUDIO_PIN GP9
#define AUDIO_VOICES
#define AUDIO_DAC_SAMPLE_MAX 4095U #define AUDIO_DAC_SAMPLE_MAX 4095U
#define AUDIO_VOICE_DEFAULT butts_fader #define AUDIO_VOICE_DEFAULT butts_fader
#ifdef AUDIO_ENABLE #ifdef AUDIO_ENABLE
# define KLOR_SOUND W__NOTE(_DS0), W__NOTE(_DS1), H__NOTE(_DS2), H__NOTE(_DS3), Q__NOTE(_DS4), Q__NOTE(_DS5), E__NOTE(_DS6), E__NOTE(_DS7), S__NOTE(_DS8), Q__NOTE(_GS0) # define KLOR_SOUND W__NOTE(_DS0), W__NOTE(_DS1), H__NOTE(_DS2), H__NOTE(_DS3), Q__NOTE(_DS4), Q__NOTE(_DS5), E__NOTE(_DS6), E__NOTE(_DS7), S__NOTE(_DS8), Q__NOTE(_GS0)
# define STARTUP_SONG SONG(KLOR_SOUND) # define STARTUP_SONG SONG(KLOR_SOUND)

View File

@ -1,5 +1,19 @@
// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. /*
// See gfxfont.h for newer custom bitmap font info. Copyright 2024 ElectronLab
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 #pragma once

View File

@ -12,7 +12,7 @@
"diode_direction": "COL2ROW", "diode_direction": "COL2ROW",
"encoder": { "encoder": {
"rotary": [ "rotary": [
{"pin_a": "GP28", "pin_b": "GP29"} {"pin_a": "GP28", "pin_b": "GP29", "resolution": 2}
] ]
}, },
"features": { "features": {
@ -26,6 +26,14 @@
"pointing_device": false, "pointing_device": false,
"rgb_matrix": true "rgb_matrix": true
}, },
"audio": {
"default": {
"on": true,
"clicky": true
},
"driver": "pwm_hardware",
"voices": true
},
"haptic": { "haptic": {
"driver": "drv2605l" "driver": "drv2605l"
}, },
@ -79,6 +87,14 @@
"splash": true, "splash": true,
"typing_heatmap": true "typing_heatmap": true
}, },
"default": {
"animation": "breathing",
"on": true,
"hue": 128,
"sat": 255,
"val": 255,
"speed": 128
},
"driver": "ws2812", "driver": "ws2812",
"layout": [ "layout": [
{"matrix": [0, 1], "x": 13, "y": 17, "flags": 4}, {"matrix": [0, 1], "x": 13, "y": 17, "flags": 4},
@ -124,14 +140,31 @@
{"matrix": [7, 2], "x": 150, "y": 49, "flags": 1}, {"matrix": [7, 2], "x": 150, "y": 49, "flags": 1},
{"matrix": [7, 1], "x": 166, "y": 48, "flags": 1} {"matrix": [7, 1], "x": 166, "y": 48, "flags": 1}
], ],
"split_count": [21, 21] "split_count": [21, 21],
"led_flush_limit": 16,
"led_process_limit": 10,
"max_brightness": 255,
"react_on_keyup": false,
"sat_steps": 16,
"sleep": true,
"speed_steps": 16,
"timeout": 120000,
"val_steps": 16,
"hue_steps": 3
}, },
"split": { "split": {
"enabled": true, "enabled": true,
"bootmagic": {
"matrix": [4, 1]
},
"serial": {
"driver": "vendor",
"pin": "GP1"
},
"encoder": { "encoder": {
"right": { "right": {
"rotary": [ "rotary": [
{"pin_a": "GP29", "pin_b": "GP28"} {"pin_a": "GP29", "pin_b": "GP28", "resolution": 2}
] ]
} }
}, },
@ -146,7 +179,10 @@
"modifiers": true, "modifiers": true,
"oled": true "oled": true
} }
} },
"usb_detect": {
"enabled": true
},
}, },
"url": "https://github.com/Lefuneste83/KLOR", "url": "https://github.com/Lefuneste83/KLOR",
"usb": { "usb": {
@ -155,55 +191,13 @@
"vid": "0x3A3C" "vid": "0x3A3C"
}, },
"ws2812": { "ws2812": {
"pin": "GP0" "pin": "GP0",
"driver": "vendor"
},
"layout_aliases": {
"LAYOUT_all": "LAYOUT_polydactyl"
}, },
"layouts": { "layouts": {
"LAYOUT_konrad": {
"layout": [
{"label": "L01", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "L02", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "L03", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "L04", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "L05", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "R01", "matrix": [4, 5], "x": 9, "y": 0},
{"label": "R02", "matrix": [4, 4], "x": 10, "y": 0},
{"label": "R03", "matrix": [4, 3], "x": 11, "y": 0},
{"label": "R04", "matrix": [4, 2], "x": 12, "y": 0},
{"label": "R05", "matrix": [4, 1], "x": 13, "y": 0},
{"label": "L10", "matrix": [1, 0], "x": 0, "y": 1},
{"label": "L11", "matrix": [1, 1], "x": 1, "y": 1},
{"label": "L12", "matrix": [1, 2], "x": 2, "y": 1},
{"label": "L13", "matrix": [1, 3], "x": 3, "y": 1},
{"label": "L14", "matrix": [1, 4], "x": 4, "y": 1},
{"label": "L15", "matrix": [1, 5], "x": 5, "y": 1},
{"label": "R10", "matrix": [5, 5], "x": 9, "y": 1},
{"label": "R11", "matrix": [5, 4], "x": 10, "y": 1},
{"label": "R12", "matrix": [5, 3], "x": 11, "y": 1},
{"label": "R13", "matrix": [5, 2], "x": 12, "y": 1},
{"label": "R14", "matrix": [5, 1], "x": 13, "y": 1},
{"label": "R15", "matrix": [5, 0], "x": 14, "y": 1},
{"label": "L20", "matrix": [2, 0], "x": 0, "y": 2},
{"label": "L21", "matrix": [2, 1], "x": 1, "y": 2},
{"label": "L22", "matrix": [2, 2], "x": 2, "y": 2},
{"label": "L23", "matrix": [2, 3], "x": 3, "y": 2},
{"label": "L24", "matrix": [2, 4], "x": 4, "y": 2},
{"label": "L25", "matrix": [2, 5], "x": 5, "y": 2},
{"label": "L35", "matrix": [3, 5], "x": 6, "y": 2},
{"label": "R30", "matrix": [7, 5], "x": 8, "y": 2},
{"label": "R20", "matrix": [6, 5], "x": 9, "y": 2},
{"label": "R21", "matrix": [6, 4], "x": 10, "y": 2},
{"label": "R22", "matrix": [6, 3], "x": 11, "y": 2},
{"label": "R23", "matrix": [6, 2], "x": 12, "y": 2},
{"label": "R24", "matrix": [6, 1], "x": 13, "y": 2},
{"label": "R25", "matrix": [6, 0], "x": 14, "y": 2},
{"label": "L31", "matrix": [3, 1], "x": 2, "y": 3},
{"label": "L32", "matrix": [3, 2], "x": 3, "y": 3},
{"label": "L33", "matrix": [3, 3], "x": 4, "y": 3},
{"label": "R32", "matrix": [7, 3], "x": 10, "y": 3},
{"label": "R33", "matrix": [7, 2], "x": 11, "y": 3},
{"label": "R34", "matrix": [7, 1], "x": 12, "y": 3}
]
},
"LAYOUT_polydactyl": { "LAYOUT_polydactyl": {
"layout": [ "layout": [
{"label": "L01", "matrix": [0, 1], "x": 1, "y": 0}, {"label": "L01", "matrix": [0, 1], "x": 1, "y": 0},
@ -252,6 +246,52 @@
{"label": "R34", "matrix": [7, 1], "x": 12, "y": 3} {"label": "R34", "matrix": [7, 1], "x": 12, "y": 3}
] ]
}, },
"LAYOUT_konrad": {
"layout": [
{"label": "L01", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "L02", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "L03", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "L04", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "L05", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "R01", "matrix": [4, 5], "x": 9, "y": 0},
{"label": "R02", "matrix": [4, 4], "x": 10, "y": 0},
{"label": "R03", "matrix": [4, 3], "x": 11, "y": 0},
{"label": "R04", "matrix": [4, 2], "x": 12, "y": 0},
{"label": "R05", "matrix": [4, 1], "x": 13, "y": 0},
{"label": "L10", "matrix": [1, 0], "x": 0, "y": 1},
{"label": "L11", "matrix": [1, 1], "x": 1, "y": 1},
{"label": "L12", "matrix": [1, 2], "x": 2, "y": 1},
{"label": "L13", "matrix": [1, 3], "x": 3, "y": 1},
{"label": "L14", "matrix": [1, 4], "x": 4, "y": 1},
{"label": "L15", "matrix": [1, 5], "x": 5, "y": 1},
{"label": "R10", "matrix": [5, 5], "x": 9, "y": 1},
{"label": "R11", "matrix": [5, 4], "x": 10, "y": 1},
{"label": "R12", "matrix": [5, 3], "x": 11, "y": 1},
{"label": "R13", "matrix": [5, 2], "x": 12, "y": 1},
{"label": "R14", "matrix": [5, 1], "x": 13, "y": 1},
{"label": "R15", "matrix": [5, 0], "x": 14, "y": 1},
{"label": "L20", "matrix": [2, 0], "x": 0, "y": 2},
{"label": "L21", "matrix": [2, 1], "x": 1, "y": 2},
{"label": "L22", "matrix": [2, 2], "x": 2, "y": 2},
{"label": "L23", "matrix": [2, 3], "x": 3, "y": 2},
{"label": "L24", "matrix": [2, 4], "x": 4, "y": 2},
{"label": "L25", "matrix": [2, 5], "x": 5, "y": 2},
{"label": "L35", "matrix": [3, 5], "x": 6, "y": 2},
{"label": "R30", "matrix": [7, 5], "x": 8, "y": 2},
{"label": "R20", "matrix": [6, 5], "x": 9, "y": 2},
{"label": "R21", "matrix": [6, 4], "x": 10, "y": 2},
{"label": "R22", "matrix": [6, 3], "x": 11, "y": 2},
{"label": "R23", "matrix": [6, 2], "x": 12, "y": 2},
{"label": "R24", "matrix": [6, 1], "x": 13, "y": 2},
{"label": "R25", "matrix": [6, 0], "x": 14, "y": 2},
{"label": "L31", "matrix": [3, 1], "x": 2, "y": 3},
{"label": "L32", "matrix": [3, 2], "x": 3, "y": 3},
{"label": "L33", "matrix": [3, 3], "x": 4, "y": 3},
{"label": "R32", "matrix": [7, 3], "x": 10, "y": 3},
{"label": "R33", "matrix": [7, 2], "x": 11, "y": 3},
{"label": "R34", "matrix": [7, 1], "x": 12, "y": 3}
]
},
"LAYOUT_saegewerk": { "LAYOUT_saegewerk": {
"layout": [ "layout": [
{"label": "L01", "matrix": [0, 1], "x": 0, "y": 0}, {"label": "L01", "matrix": [0, 1], "x": 0, "y": 0},

View File

@ -14,6 +14,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#pragma once #pragma once
/* The way how "handedness" is decided (which half is which), /* The way how "handedness" is decided (which half is which),
@ -35,13 +36,6 @@ for more options.
#define AUTO_SHIFT_TIMEOUT TAPPING_TERM #define AUTO_SHIFT_TIMEOUT TAPPING_TERM
#define AUTO_SHIFT_NO_SETUP #define AUTO_SHIFT_NO_SETUP
#undef LOCKING_SUPPORT_ENABLE
#undef LOCKING_RESYNC_ENABLE
#define NO_ACTION_ONESHOT
//#define NO_ACTION_TAPPING
//#define NO_MUSIC_MODE
#define COMBO_COUNT 25
// RGB matrix support // RGB matrix support
#ifdef RGB_MATRIX_ENABLE #ifdef RGB_MATRIX_ENABLE
// RGB Matrix Animation modes. Explicitly enabled // RGB Matrix Animation modes. Explicitly enabled
@ -96,12 +90,6 @@ for more options.
# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#endif #endif
// Bootmagic support
# define BOOTMAGIC_ROW 0
# define BOOTMAGIC_COLUMN 1
# define BOOTMAGIC_ROW_RIGHT 4
# define BOOTMAGIC_COLUMN_RIGHT 1
// Haptic support // Haptic support
#ifdef HAPTIC_ENABLE #ifdef HAPTIC_ENABLE
//# define NO_HAPTIC_ALPHA //# define NO_HAPTIC_ALPHA

View File

@ -19,7 +19,6 @@
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include "klor.h"
#ifdef HAPTIC_ENABLE #ifdef HAPTIC_ENABLE
#include "drivers/haptic/drv2605l.h" #include "drivers/haptic/drv2605l.h"
@ -112,10 +111,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_polydactyl( [_QWERTY] = LAYOUT_polydactyl(
//╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ //╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
LSFT_T(KC_TAB), KC_A, KC_S, KC_D, LSFT_T(KC_F),KC_G, KC_H, RSFT_T(KC_J), KC_K, KC_L, KC_SCLN, KC_QUOT, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_MPLY, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS, KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_MPLY, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS,
KC_LALT, LOWER, KC_RALT, KC_SPC, KC_BSPC, KC_ENT, RAISE, KC_DEL KC_LALT, LOWER, KC_RALT, KC_SPC, KC_BSPC, KC_ENT, RAISE, KC_DEL
), ),
/* /*
@ -148,21 +147,21 @@ LSFT_T(KC_TAB), KC_A, KC_S, KC_D, LSFT_T(KC_F),KC_G,
r a i s e r a i s e
RGB_SPI RGB_HUI { } LEFT UP RIGHT HOME RGB_SPI RGB_HUI HF_NEXT CK_UP { } LEFT UP RIGHT HOME
RGB_BRI RGB_EFF [ ] DOWN PSCRN P UP RGB_VAI RGB_MOD RGB_M_B HF_TOGG CK_TOGG [ ] DOWN PSCRN P UP
RGB_BRD RGB_SPD RGB_HUD ( MUTE PLY/PASE ) END P DOWN RGB_VAD RGB_SPD RGB_HUD HF_PREV CK_DOWN ( MUTE PLY/PASE ) END P DOWN
ADJUST LSHIFT RSHIFT ADJUST LSHIFT RSHIFT
*/ */
[_RAISE] = LAYOUT_polydactyl( [_RAISE] = LAYOUT_polydactyl(
//╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ //╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
RGB_SPI, RGB_HUI, HF_NEXT, CK_UP, KC_LCBR, KC_RCBR, KC_LEFT, KC_UP, KC_RGHT, KC_HOME, RGB_SPI, RGB_HUI, HF_NEXT, CK_UP, KC_LCBR, KC_RCBR, KC_LEFT, KC_UP, KC_RGHT, KC_HOME,
RGB_VAI, RGB_MOD, RGB_M_B, HF_TOGG, CK_TOGG, KC_LBRC, KC_RBRC, KC_TRNS, KC_DOWN, KC_TRNS, KC_PSCR, KC_PGUP, RGB_VAI, RGB_MOD, RGB_M_B, HF_TOGG, CK_TOGG, KC_LBRC, KC_RBRC, XXXXXXX, KC_DOWN, XXXXXXX, KC_PSCR, KC_PGUP,
RGB_VAD, RGB_SPD, RGB_HUD, HF_PREV, CK_DOWN, KC_LPRN, KC_MUTE, KC_MPLY, KC_RPRN, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, RGB_VAD, RGB_SPD, RGB_HUD, HF_PREV, CK_DOWN, KC_LPRN, KC_MUTE, KC_MPLY, KC_RPRN, XXXXXXX, XXXXXXX, XXXXXXX, KC_END, KC_PGDN,
KC_TRNS, KC_TRNS, KC_TRNS, KC_LSFT, KC_RSFT, KC_TRNS, KC_TRNS, ADJUST XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT, KC_RSFT, XXXXXXX, XXXXXXX, XXXXXXX
), ),
/* /*
@ -177,15 +176,15 @@ LSFT_T(KC_TAB), KC_A, KC_S, KC_D, LSFT_T(KC_F),KC_G,
MAKE OS SWAP RGB VAL MUTE PLY/PSE F1 F2 F3 F10 F11 MAKE OS SWAP RGB VAL MUTE PLY/PSE F1 F2 F3 F10 F11
*/ */
[_ADJUST] = LAYOUT_polydactyl( [_ADJUST] = LAYOUT_polydactyl(
//╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ //╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
AU_TOGG, HF_TOGG, RGB_HUI, RGB_MOD, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F14, AU_TOGG, HF_TOGG, RGB_HUI, RGB_MOD, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F14,
QK_BOOT, DB_TOGG, QWERTY, RGB_SAI, XXXXXXX, XXXXXXX, XXXXXXX, KC_F4, KC_F5, KC_F6, KC_F12, KC_F13, QK_BOOT, DB_TOGG, QWERTY, RGB_SAI, XXXXXXX, XXXXXXX, XXXXXXX, KC_F4, KC_F5, KC_F6, KC_F12, KC_F13,
MAKE_H, OS_SWAP, KC_TRNS, RGB_VAI, XXXXXXX, XXXXXXX, KC_MUTE, KC_MPLY, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F10, KC_F11, MAKE_H, OS_SWAP, XXXXXXX, RGB_VAI, XXXXXXX, XXXXXXX, KC_MUTE, KC_MPLY, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F10, KC_F11,
_______, _______, _______, _______, _______, _______, _______, _______ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
), ),
/* /*
@ -285,19 +284,6 @@ LSFT_T(KC_TAB), KC_A, KC_S, KC_D, LSFT_T(KC_F),KC_G,
*/ */
}; };
// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
// │ H A P T I C F E E D B A C K │
// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘
//void keyboard_post_init_user(void) {
// // Call the post init code.
// #if HAPTIC_ENABLE
// haptic_disable(); // disables per key haptic feedback by default
// #endif //HAPTIC ENABLE
//}
// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ // ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
// │ O L E D │ // │ O L E D │
// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ // └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
@ -722,7 +708,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#if defined(ENCODER_MAP_ENABLE) #if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT) }, [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_WBAK, KC_WFWD) },
[1] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, [1] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) },
[2] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, [2] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) },
[3] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, [3] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) },

View File

@ -5,12 +5,10 @@ ENCODER_MAP_ENABLE = yes
EXTRAKEY_ENABLE = yes EXTRAKEY_ENABLE = yes
AUDIO_ENABLE = yes AUDIO_ENABLE = yes
MUSIC_ENABLE = yes MUSIC_ENABLE = yes
DYNAMIC_MACRO_ENABLE = yes DYNAMIC_MACRO_ENABLE = yes
COMBO_ENABLE = yes COMBO_ENABLE = yes
KEY_OVERRIDE_ENABLE = no KEY_OVERRIDE_ENABLE = no
TRI_LAYER_ENABLE = yes TRI_LAYER_ENABLE = yes
SPLIT_KEYBOARD = yes SPLIT_KEYBOARD = yes
#HAPTIC FEEBACK #HAPTIC FEEBACK

View File

@ -15,8 +15,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include "klor.h" #include "quantum.h"
oled_rotation_t oled_init_kb(oled_rotation_t rotation) { oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
return OLED_ROTATION_180; return OLED_ROTATION_180;
@ -92,6 +91,7 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] =
// POLYDACTYL / YUBITSUME // POLYDACTYL / YUBITSUME
// use this matrix if you use the polydactyl or yubitsume layout ────────────────────────────────────┐ // use this matrix if you use the polydactyl or yubitsume layout ────────────────────────────────────┐
/*
led_config_t g_led_config = { { led_config_t g_led_config = { {
//COL 00 01 02 03 04 05 ROW //COL 00 01 02 03 04 05 ROW
{ NO_LED, 18, 13, 12, 6, 5 },//00 { NO_LED, 18, 13, 12, 6, 5 },//00
@ -128,7 +128,7 @@ led_config_t g_led_config = { {
4, 4, 4, 4, 4, 1, 1 4, 4, 4, 4, 4, 1, 1
} }; } };
// ────────────────────────────────────────────────────────────────────────────────────────────────────┘ // ────────────────────────────────────────────────────────────────────────────────────────────────────┘
*/
/* /*
// KONRAD // KONRAD
@ -216,15 +216,6 @@ led_config_t g_led_config = { {
// ────────────────────────────────────────────────────────────────────────────────────────────────────┘ // ────────────────────────────────────────────────────────────────────────────────────────────────────┘
*/ */
void suspend_power_down_kb(void) {
rgb_matrix_set_suspend_state(true);
suspend_power_down_user();
}
void suspend_wakeup_init_kb(void) {
rgb_matrix_set_suspend_state(false);
suspend_wakeup_init_user();
}
#endif //RGB_MATRIX_ENABLE #endif //RGB_MATRIX_ENABLE

View File

@ -1,33 +0,0 @@
/* Copyright 2022
* GEIST @geigeigeist
*
* 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 "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.
*/
// readability
#define ___ KC_NO
#define LAYOUT LAYOUT_polydactyl

View File

@ -1,112 +1,21 @@
/* /* Copyright 2020 Nick Brassel (tzarc)
ChibiOS - Copyright (C) 2006..2021 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
#ifndef MCUCONF_H
#define MCUCONF_H
/*
* RP2040_MCUCONF drivers configuration.
* *
* IRQ priorities: * This program is free software: you can redistribute it and/or modify
* 3...0 Lowest...Highest. * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* *
* DMA priorities: * This program is distributed in the hope that it will be useful,
* 0...1 Lowest...Highest. * 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 <https://www.gnu.org/licenses/>.
*/ */
#pragma once
#define RP2040_MCUCONF #include_next <mcuconf.h>
/* #undef RP_PWM_USE_PWM4
* HAL driver system settings.
*/
#define RP_NO_INIT FALSE
#define RP_CORE1_START FALSE
#define RP_CORE1_VECTORS_TABLE _vectors
#define RP_CORE1_ENTRY_POINT _crt0_c1_entry
#define RP_CORE1_STACK_END __c1_main_stack_end__
/*
* IRQ system settings.
*/
#define RP_IRQ_SYSTICK_PRIORITY 2
#define RP_IRQ_TIMER_ALARM0_PRIORITY 2
#define RP_IRQ_TIMER_ALARM1_PRIORITY 2
#define RP_IRQ_TIMER_ALARM2_PRIORITY 2
#define RP_IRQ_TIMER_ALARM3_PRIORITY 2
#define RP_IRQ_ADC1_PRIORITY 3
#define RP_IRQ_UART0_PRIORITY 3
#define RP_IRQ_UART1_PRIORITY 3
#define RP_IRQ_SPI0_PRIORITY 2
#define RP_IRQ_SPI1_PRIORITY 2
#define RP_IRQ_USB0_PRIORITY 3
#define RP_IRQ_I2C0_PRIORITY 2
#define RP_IRQ_I2C1_PRIORITY 2
#define RP_IRQ_RTC_PRIORITY 3
/*
* ADC driver system settings.
*/
#define RP_ADC_USE_ADC1 TRUE
/*
* SIO driver system settings.
*/
#define RP_SIO_USE_UART0 FALSE
#define RP_SIO_USE_UART1 FALSE
/*
* SPI driver system settings.
*/
#define RP_SPI_USE_SPI0 TRUE
#define RP_SPI_USE_SPI1 FALSE
#define RP_SPI_SPI0_RX_DMA_CHANNEL RP_DMA_CHANNEL_ID_ANY
#define RP_SPI_SPI0_TX_DMA_CHANNEL RP_DMA_CHANNEL_ID_ANY
#define RP_SPI_SPI1_RX_DMA_CHANNEL RP_DMA_CHANNEL_ID_ANY
#define RP_SPI_SPI1_TX_DMA_CHANNEL RP_DMA_CHANNEL_ID_ANY
#define RP_SPI_SPI0_DMA_PRIORITY 1
#define RP_SPI_SPI1_DMA_PRIORITY 1
#define RP_SPI_DMA_ERROR_HOOK(spip)
/*
* PWM driver system settings.
*/
#define RP_PWM_USE_PWM0 FALSE
#define RP_PWM_USE_PWM1 FALSE
#define RP_PWM_USE_PWM2 FALSE
#define RP_PWM_USE_PWM3 FALSE
#define RP_PWM_USE_PWM4 TRUE #define RP_PWM_USE_PWM4 TRUE
#define RP_PWM_USE_PWM5 FALSE
#define RP_PWM_USE_PWM6 FALSE
#define RP_PWM_USE_PWM7 FALSE
#define RP_PWM_IRQ_WRAP_NUMBER_PRIORITY 3
/*
* I2C driver system settings.
*/
#define RP_I2C_USE_I2C0 FALSE
#define RP_I2C_USE_I2C1 TRUE
#define RP_I2C_BUSY_TIMEOUT 50
#define RP_I2C_ADDRESS_MODE_10BIT FALSE
/*
* USB driver system settings.
*/
#define RP_USB_USE_USBD0 TRUE
#define RP_USB_FORCE_VBUS_DETECT TRUE
#define RP_USE_EXTERNAL_VBUS_DETECT FALSE
#define RP_USB_USE_ERROR_DATA_SEQ_INTR FALSE
#endif /* MCUCONF_H */

View File

@ -1,3 +1,7 @@
# Electronlab KLOR split keyboard
``` ```
█ █ █ ▄▄▄▀▀▀▀▀▀▄▄▄ █▀▀▀▀▀▀▀▀▀▀█ █ █ █ ▄▄▄▀▀▀▀▀▀▄▄▄ █▀▀▀▀▀▀▀▀▀▀█
█ █ █ ▄▀ ▀▄ █ █ █ █ █ ▄▀ ▀▄ █ █
@ -11,10 +15,28 @@
██ █ █ ▀▄ ▄▀ █ █ ██ █ █ ▀▄ ▄▀ █ █
█ █ █▄▄▄▄▄▄▄▄ ▀▀▀▄▄▄▄▄▄▀▀▀ █ █ █ █ █▄▄▄▄▄▄▄▄ ▀▀▀▄▄▄▄▄▄▀▀▀ █ █
``` ```
# KLOR split keyboard
KLOR is 42 keys column-staggered split keyboard originaly made by @geigeigeist and forked by Lefuneste83 from Electronlab. It supports a per key RGB matrix, encoders, OLED displays, haptic feedback, audio, a Pixart Paw3204 trackball and four different layouts, through brake off parts. KLOR is 42 keys column-staggered split keyboard originaly made by @geigeigeist and forked by Lefuneste83 from Electronlab. It supports a per key RGB matrix, encoders, OLED displays, haptic feedback, audio, a Pixart Paw3204 trackball and four different layouts, through brake off parts.
It's schematics are based on the Sofle, while the layout is based on the Yacc46. It's schematics are based on the Sofle, while the layout is based on the Yacc46.
You can use this command to compile the firmware * Keyboard Maintainer: [Lefuneste83](https://github.com/Lefuneste83)
`qmk compile -kb electronlab/klor -km default -c` * Hardware Supported: KLOR PCB from 1.3 onward
* Hardware Availability: https://github.com/Lefuneste83/KLOR/tree/main/PCB
Make example for this keyboard (after setting up your build environment):
make electronlab/klor:default
Flashing example for this keyboard:
make electronlab/klor:default:flash
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).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,1) in the matrix for the left side and (4,1) in the matrix for the right side (usually the top left and top right) and plug in the keyboard half to USB
* **Physical reset button**: Briefly press the button on the side of the PCB. A rapid double press will resart the keyboard half in bootloader mode.
* **Keycode in layout**: Press the key mapped to `QK_BOOT`

View File

@ -1,27 +0,0 @@
# MCU name
MCU = RP2040
# Bootloader selection
BOOTLOADER = rp2040
# Ignore some warnings during the build, likely to be fixed before RP2040 PR is merged
ALLOW_WARNINGS = yes
# LTO must be disabled for RP2040 builds
LTO_ENABLE = no
# PIO serial/WS2812 drivers must be used on RP2040
SERIAL_DRIVER = vendor
WS2812_DRIVER = vendor
# CONVERTER - if you use a listed MCU comment the first line and uncomment the appropiate line
#CONVERT_TO = promicro_rp2040
#CONVERT_TO = kb2040
#CONVERT_TO = blok
#CONVERT_TO = elite_pi
# AUDIO
AUDIO_DRIVER = pwm_hardware
I2C_DRIVER_REQUIRED = yes