diff --git a/keyboards/klor/config.h b/keyboards/klor/config.h new file mode 100644 index 00000000..2daaaec4 --- /dev/null +++ b/keyboards/klor/config.h @@ -0,0 +1,55 @@ +#pragma once + +// Most configuration will be found in info.json + +// ┌─────────────────────────────────────────────────┐ +// │ o l e d s │ +// └─────────────────────────────────────────────────┘ + +#ifdef OLED_ENABLE +# define OLED_DISPLAY_128X64 +#endif + +// ┌─────────────────────────────────────────────────┐ +// │ a u d i o │ +// └─────────────────────────────────────────────────┘ + +#define AUDIO_PIN B5 +#define AUDIO_VOICES +#define AUDIO_DAC_SAMPLE_MAX 4095U +#define AUDIO_VOICE_DEFAULT butts_fader + +#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 STARTUP_SONG SONG(KLOR_SOUND) +# define BYE_SOUND H__NOTE(_DS4), H__NOTE(_DS3), W__NOTE(_DS1) +# define GOODBYE_SONG SONG(BYE_SOUND) +# define DEFAULT_LAYER_SONGS \ + { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND) } +#endif + +// ┌─────────────────────────────────────────────────┐ +// │ h a p t i c f e e d b a c k │ +// └─────────────────────────────────────────────────┘ + +#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 +#endif + +// ┌─────────────────────────────────────────────────┐ +// │ t r a c k b a l l │ +// └─────────────────────────────────────────────────┘ + +#ifdef POINTING_DEVICE_ENABLE +# define PAW3204_SCLK_PIN D0 +# define PAW3204_SDIO_PIN D1 +# define POINTING_DEVICE_AUTO_MOUSE_ENABLE +# define AUTO_MOUSE_DELAY 300 +#endif \ No newline at end of file diff --git a/keyboards/klor/info.json b/keyboards/klor/info.json new file mode 100644 index 00000000..ecffb70c --- /dev/null +++ b/keyboards/klor/info.json @@ -0,0 +1,90 @@ +{ + "keyboard_name": "KLOR", + "url": "https://github.com/GEIGEIGEIST/KLOR", + "manufacturer": "GEIST", + "usb": { + "vid": "0x3A3C", + "pid": "0x0001", + "device_version": "1.3.0" + }, + "processor": "RP2040", + "bootloader": "rp2040", + "matrix_pins": { + "cols": [ "F6", "F7", "B1", "B3", "B2", "B6" ], + "rows": [ "C6", "D7", "E6", "B4" ] + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "encoder": true, + "oled": true + }, + "build": { + "lto": true + }, + "encoder": { + "rotary": [ + { + "pin_a": "F4", + "pin_b": "F5", + "resolution": 2 + } + ] + }, + "split": { + "enabled": true, + "soft_serial_pin": "D2", + "encoder": { + "right": { + "rotary": [ + { + "pin_a": "F4", + "pin_b": "F5", + "resolution": 2 + } + ] + } + }, + "transport": { + "sync": { + "matrix_state": true, + "oled": true, + "haptic": true + } + } + }, + "rgb_matrix": { + "driver": "ws2812", + "led_count": 42, + "split_count": [21,21], + "max_brightness": 180, + "sleep": true + }, + "ws2812": { + "pin": "D3", + "driver": "vendor" + }, + "layouts": { + "LAYOUT_polydactyl": { + "layout": [ + {"x":3, "y":0.25}, {"x":13, "y":0.25}, {"x":4, "y":0.75}, {"x":12, "y":0.75}, {"x":5, "y":1}, {"x":11, "y":1}, {"x":3, "y":1.25}, {"x":13, "y":1.25}, {"x":4, "y":1.75}, {"x":12, "y":1.75}, {"x":5, "y":2}, {"x":11, "y":2}, {"x":3, "y":2.25}, {"x":13, "y":2.25}, {"x":4, "y":2.75}, {"x":12, "y":2.75}, {"x":5, "y":3}, {"x":11, "y":3}, {"x":6.25, "y":3.25}, {"x":9.75, "y":3.25}, {"x":-0.5, "y":-0.4500000000000002}, {"x":-0.5, "y":-4.15}, {"x":-0.5, "y":-6.15}, {"x":-0.5, "y":-5.15}, {"x":-0.5, "y":-4.15}, {"x":-0.25, "y":-5.5}, {"x":0.75, "y":-4.7}, {"x":-0.25, "y":-4.500000000000001}, {"x":0.75, "y":-3.7000000000000006}, {"x":-0.25, "y":-3.5000000000000004}, {"x":-0.5, "y":-7.200000000000001}, {"x":-0.5, "y":-7.200000000000001}, {"x":-0.5, "y":-7.200000000000001}, {"x":-0.5, "y":-10.9}, {"x":-0.5, "y":-10.9}, {"x":-0.5, "y":-10.9}, {"x":-1.0, "y":-12.250000000000002}, {"x":-2, "y":-11.450000000000001}, {"x":-1.0, "y":-11.250000000000002}, {"x":-2, "y":-10.450000000000001}, {"x":-1.0, "y":-10.250000000000002}, {"x":-0.75, "y":-12.250000000000002}, {"x":-0.75, "y":-11.250000000000002}, {"x":-0.75, "y":-10.250000000000002} + ] + }, + "LAYOUT_konrad": { + "layout": [ + {"x":3, "y":0.25}, {"x":13, "y":0.25}, {"x":4, "y":0.75}, {"x":12, "y":0.75}, {"x":5, "y":1}, {"x":11, "y":1}, {"x":3, "y":1.25}, {"x":13, "y":1.25}, {"x":4, "y":1.75}, {"x":12, "y":1.75}, {"x":5, "y":2}, {"x":11, "y":2}, {"x":3, "y":2.25}, {"x":13, "y":2.25}, {"x":4, "y":2.75}, {"x":12, "y":2.75}, {"x":5, "y":3}, {"x":11, "y":3}, {"x":6.25, "y":3.25}, {"x":9.75, "y":3.25}, {"x":-0.5, "y":-0.4499999999999993}, {"x":-0.5, "y":-4.149999999999999}, {"x":-0.5, "y":-6.149999999999999}, {"x":-0.5, "y":-5.149999999999999}, {"x":-0.5, "y":-4.149999999999999}, {"x":-0.25, "y":-5.499999999999999}, {"x":0.75, "y":-4.699999999999998}, {"x":-0.25, "y":-4.499999999999999}, {"x":0.75, "y":-3.6999999999999984}, {"x":-0.25, "y":-3.4999999999999987}, {"x":-0.5, "y":-7.199999999999998}, {"x":-0.5, "y":-7.199999999999998}, {"x":-0.5, "y":-10.899999999999999}, {"x":-0.5, "y":-10.899999999999999}, {"x":-1.0, "y":-12.249999999999998}, {"x":-2, "y":-11.449999999999998}, {"x":-1.0, "y":-11.249999999999998}, {"x":-2, "y":-10.449999999999998}, {"x":-1.0, "y":-10.249999999999998}, {"x":-0.75, "y":-12.249999999999998}, {"x":-0.75, "y":-11.249999999999998}, {"x":-0.75, "y":-10.249999999999998} + ] + }, + "LAYOUT_yubitsume": { + "layout": [ + {"x":2.25, "y":0.25}, {"x":12.25, "y":0.25}, {"x":3.25, "y":0.75}, {"x":11.25, "y":0.75}, {"x":4.25, "y":1}, {"x":10.25, "y":1}, {"x":2.25, "y":1.25}, {"x":12.25, "y":1.25}, {"x":3.25, "y":1.75}, {"x":11.25, "y":1.75}, {"x":4.25, "y":2}, {"x":10.25, "y":2}, {"x":2.25, "y":2.25}, {"x":12.25, "y":2.25}, {"x":3.25, "y":2.75}, {"x":11.25, "y":2.75}, {"x":4.25, "y":3}, {"x":10.25, "y":3}, {"x":5.5, "y":3.25}, {"x":9, "y":3.25}, {"x":-0.5, "y":-0.4499999999999993}, {"x":-0.5, "y":-4.149999999999999}, {"x":-1.25, "y":-6.149999999999999}, {"x":-1.25, "y":-5.149999999999999}, {"x":-1.25, "y":-4.149999999999999}, {"x":-1.0, "y":-5.499999999999999}, {"x":-1.0, "y":-4.499999999999999}, {"x":-1.0, "y":-3.4999999999999987}, {"x":-0.5, "y":-7.199999999999998}, {"x":-0.5, "y":-7.199999999999998}, {"x":-0.5, "y":-7.199999999999999}, {"x":-0.5, "y":-10.899999999999999}, {"x":-0.5, "y":-10.899999999999999}, {"x":-0.5, "y":-10.899999999999999}, {"x":-1.75, "y":-12.25}, {"x":-1.75, "y":-11.25}, {"x":-1.75, "y":-10.25}, {"x":-1.5, "y":-12.25}, {"x":-1.5, "y":-11.25}, {"x":-1.5, "y":-10.25} + ] + }, + "LAYOUT_saegewerk": { + "layout": [ + {"x":2.25, "y":0.25}, {"x":12.25, "y":0.25}, {"x":3.25, "y":0.75}, {"x":11.25, "y":0.75}, {"x":4.25, "y":1}, {"x":10.25, "y":1}, {"x":2.25, "y":1.25}, {"x":12.25, "y":1.25}, {"x":3.25, "y":1.75}, {"x":11.25, "y":1.75}, {"x":4.25, "y":2}, {"x":10.25, "y":2}, {"x":2.25, "y":2.25}, {"x":12.25, "y":2.25}, {"x":3.25, "y":2.75}, {"x":11.25, "y":2.75}, {"x":4.25, "y":3}, {"x":10.25, "y":3}, {"x":5.5, "y":3.25}, {"x":9, "y":3.25}, {"x":-0.5, "y":-0.4499999999999993}, {"x":-0.5, "y":-4.149999999999999}, {"x":-1.25, "y":-6.149999999999999}, {"x":-1.25, "y":-5.149999999999999}, {"x":-1.25, "y":-4.149999999999999}, {"x":-1.0, "y":-5.499999999999999}, {"x":-1.0, "y":-4.499999999999999}, {"x":-1.0, "y":-3.4999999999999987}, {"x":-0.5, "y":-7.199999999999998}, {"x":-0.5, "y":-7.199999999999998}, {"x":-0.5, "y":-10.899999999999999}, {"x":-0.5, "y":-10.899999999999999}, {"x":-1.75, "y":-12.249999999999998}, {"x":-1.75, "y":-11.249999999999998}, {"x":-1.75, "y":-10.249999999999998}, {"x":-1.5, "y":-12.249999999999998}, {"x":-1.5, "y":-11.249999999999998}, {"x":-1.5, "y":-10.249999999999998} + ] + } + } +} diff --git a/keyboards/klor/klor.c b/keyboards/klor/klor.c new file mode 100644 index 00000000..e69de29b diff --git a/keyboards/klor/klor.h b/keyboards/klor/klor.h new file mode 100644 index 00000000..e69de29b diff --git a/keyboards/klor/readme.md b/keyboards/klor/readme.md new file mode 100644 index 00000000..6632bcf2 --- /dev/null +++ b/keyboards/klor/readme.md @@ -0,0 +1,26 @@ +```text +█ █ █ ▄▄▄▀▀▀▀▀▀▄▄▄ █▀▀▀▀▀▀▀▀▀▀█ +█ █ █ ▄▀ ▀▄ █ █ +█ █ █ ▄▀ ▀▄ █ █ +█ █ █ █ █ █ █ +█ █ █ █ █ █ █ +█ █ █ █ █ █▄▄▄▄▄▄▄▄▄▄█ +█ █ █ █ █ █ █ █ +█ █ █ █ █ █ █ █ +█ █ █ █ ▀▄ ▄▀ █ █ +██ █ █ ▀▄ ▄▀ █ █ +█ █ █▄▄▄▄▄▄▄▄ ▀▀▀▄▄▄▄▄▄▀▀▀ █ █ +``` + +# KLOR split keyboard + +KLOR is 42 keys column-staggered split keyboard made by @geigeigeist. 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. + +t4croun: this is my attempt at modernizing @geigeigeist's keymap. The repo has not been updated in a few years and QMK has introduced breaking changes. His repo can be found [here](https://github.com/GEIGEIGEIST/qmk-config-klor). Note: Focusing on defining my saegewerk configuration as that is what I have + +You can use this command to compile the firmware +`qmk compile -kb klor -km default` + +and this command if you want to compile the firmware for a RP2040 based MCU +`qmk compile -kb klor/2040 -km default` \ No newline at end of file diff --git a/keyboards/klor/rules.mk b/keyboards/klor/rules.mk new file mode 100644 index 00000000..c3fcb138 --- /dev/null +++ b/keyboards/klor/rules.mk @@ -0,0 +1,15 @@ +#HAPTIC FEEDBACK +HAPTIC_DRIVER = drv2605l + +#PER KEY RGB +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE) + +#SPACE SAVING +AUDIO_ENABLE = no +MUSIC_ENABLE = no +CONSOLE_ENABLE = no +COMMAND_ENABLE = no +SPACE_CADET_ENABLE = no +GRAVE_ESC_ENABLE = no