diff options
author | XScorpion2 <rcalt2vt@gmail.com> | 2019-07-22 12:43:52 -0500 |
---|---|---|
committer | MechMerlin <30334081+mechmerlin@users.noreply.github.com> | 2019-07-22 10:43:52 -0700 |
commit | 40b0ddd425bf09ddbb15a414b5147e98256f10a8 (patch) | |
tree | 8aa9d292b49716225474a58e90fd89c6f978da9a /keyboards/rgbkb/sol/rev2 | |
parent | 17ff9cf554d64fd3e036f3d6e06cff952d8802bf (diff) | |
download | qmk_firmware-40b0ddd425bf09ddbb15a414b5147e98256f10a8.tar.gz qmk_firmware-40b0ddd425bf09ddbb15a414b5147e98256f10a8.zip |
Sol Rev 2 Keyboard (#6389)
* Basic Rev 2 implementation
* Updated LED defines and added Extra encoder support
* Fixed rgb pin assignment
* Physically accurate LED positions
* Single Color Band scrolling left to right effects
* Spirals, Pinwheels, and Documentation....Oh My!
* Spiral effect band thickness adjustments
* Fixing animation spin directions
* Full hand LED positions
* Basic Rev 2 implementation
Updated LED defines and added Extra encoder support
Fixed rgb pin assignment
Physically accurate LED positions
Full hand LED positions
Moving rev2 folder
* RGB Center Point LED position update
* Fixing led config commas
* Fixing led config commas
* fix enter key
* fix enter
* Small changes to default
* update default
* typo fix
* update default
* Fixing defines & led config, turned full hand & extra encoders into rules.mk feature
* Refactored rules.mk to have a post_rules.mk
* Forgot to offset the matrix to led map due to the edge led additions
* Updated LED flags and fixed my keymap
* Update keymap.c
include speed controls for RGB
* Fixing more rules.mk and adding keymap like encoders functionality
* Sol Rev 2 Implementation
* Minor fixes
* Keymap fixes
* Fix Colemak, add lock keys
Diffstat (limited to 'keyboards/rgbkb/sol/rev2')
-rw-r--r-- | keyboards/rgbkb/sol/rev2/config.h | 61 | ||||
-rw-r--r-- | keyboards/rgbkb/sol/rev2/info.json | 87 | ||||
-rw-r--r-- | keyboards/rgbkb/sol/rev2/post_rules.mk | 37 | ||||
-rw-r--r-- | keyboards/rgbkb/sol/rev2/rev2.c | 89 | ||||
-rw-r--r-- | keyboards/rgbkb/sol/rev2/rev2.h | 1 | ||||
-rw-r--r-- | keyboards/rgbkb/sol/rev2/rules.mk | 35 |
6 files changed, 310 insertions, 0 deletions
diff --git a/keyboards/rgbkb/sol/rev2/config.h b/keyboards/rgbkb/sol/rev2/config.h new file mode 100644 index 0000000000..af74b7e46f --- /dev/null +++ b/keyboards/rgbkb/sol/rev2/config.h @@ -0,0 +1,61 @@ +/* +Copyright 2012 Jun Wako <wakojun@gmail.com> +Copyright 2015 Jack Humbert + +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 + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x3060 +#define DEVICE_VER 0x0002 +#define MANUFACTURER RGBKB +#define PRODUCT Sol +#define DESCRIPTION "An RGB, split, ortho-esque keyboard" + +/* ws2812 RGB LED */ +#define RGB_DI_PIN B7 + +#define BACKLIGHT_LEDS 124 + +#ifdef FULLHAND_ENABLE + #define FULLHAND_LEDS 24 +#else + #define FULLHAND_LEDS 0 +#endif + +// Underglow / DIY Tent Glow are parallel to the top row leds, no separate define + +#ifdef LED_MIRRORED + #define RGBLED_NUM ((BACKLIGHT_LEDS + FULLHAND_LEDS) / 2) +#else + #define RGBLED_NUM (BACKLIGHT_LEDS + FULLHAND_LEDS) +#endif +#define DRIVER_LED_TOTAL RGBLED_NUM + +#define RGB_MATRIX_CENTER { 112, 37 } + +// Encoder support +#ifndef EXTRA_ENCODERS_ENABLE +#define ENCODERS_PAD_A { D2 } +#define ENCODERS_PAD_B { D6 } +#else +#ifdef OLED_DRIVER_ENABLE + #error Extra encoders cannot be enabled at the same time as the OLED Driver as they use the same pins. +#endif +#define ENCODERS_PAD_A { D2, D1, B0 } +#define ENCODERS_PAD_B { D6, B1, D0 } +#endif diff --git a/keyboards/rgbkb/sol/rev2/info.json b/keyboards/rgbkb/sol/rev2/info.json new file mode 100644 index 0000000000..e252ea2e2d --- /dev/null +++ b/keyboards/rgbkb/sol/rev2/info.json @@ -0,0 +1,87 @@ +{ + "keyboard_name": "Sol", + "url": "", + "maintainer": "Legonut", + "width": 17, + "height": 6.5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"L00", "x":0, "y":0, "w":1.5}, + {"label":"L01", "x":1.5, "y":0}, + {"label":"L02", "x":2.5, "y":0}, + {"label":"L03", "x":3.5, "y":0}, + {"label":"L04", "x":4.5, "y":0}, + {"label":"L05", "x":5.5, "y":0}, + {"label":"L06", "x":6.75, "y":0}, + {"label":"R06", "x":9.25, "y":0}, + {"label":"R00", "x":10.5, "y":0}, + {"label":"R01", "x":11.5, "y":0}, + {"label":"R02", "x":12.5, "y":0}, + {"label":"R03", "x":13.5, "y":0}, + {"label":"R04", "x":14.5, "y":0}, + {"label":"R05", "x":15.5, "y":0, "w":1.5}, + {"label":"L10", "x":0, "y":1, "w":1.5}, + {"label":"L11", "x":1.5, "y":1}, + {"label":"L12", "x":2.5, "y":1}, + {"label":"L13", "x":3.5, "y":1}, + {"label":"L14", "x":4.5, "y":1}, + {"label":"L15", "x":5.5, "y":1}, + {"label":"L16", "x":6.75, "y":1}, + {"label":"R16", "x":9.25, "y":1}, + {"label":"R10", "x":10.5, "y":1}, + {"label":"R11", "x":11.5, "y":1}, + {"label":"R12", "x":12.5, "y":1}, + {"label":"R13", "x":13.5, "y":1}, + {"label":"R14", "x":14.5, "y":1}, + {"label":"R15", "x":15.5, "y":1, "w":1.5}, + {"label":"L20", "x":0, "y":2, "w":1.5}, + {"label":"L21", "x":1.5, "y":2}, + {"label":"L22", "x":2.5, "y":2}, + {"label":"L23", "x":3.5, "y":2}, + {"label":"L24", "x":4.5, "y":2}, + {"label":"L25", "x":5.5, "y":2}, + {"label":"L26", "x":6.75, "y":2}, + {"label":"R26", "x":9.25, "y":2}, + {"label":"R20", "x":10.5, "y":2}, + {"label":"R21", "x":11.5, "y":2}, + {"label":"R22", "x":12.5, "y":2}, + {"label":"R23", "x":13.5, "y":2}, + {"label":"R24", "x":14.5, "y":2}, + {"label":"R25", "x":15.5, "y":2, "w":1.5}, + {"label":"L30", "x":0, "y":3, "w":1.5}, + {"label":"L31", "x":1.5, "y":3}, + {"label":"L32", "x":2.5, "y":3}, + {"label":"L33", "x":3.5, "y":3}, + {"label":"L34", "x":4.5, "y":3}, + {"label":"L35", "x":5.5, "y":3}, + {"label":"L36", "x":6.75, "y":3}, + {"label":"R36", "x":9.25, "y":3}, + {"label":"R30", "x":10.5, "y":3}, + {"label":"R31", "x":11.5, "y":3}, + {"label":"R32", "x":12.5, "y":3}, + {"label":"R33", "x":13.5, "y":3}, + {"label":"R34", "x":14.5, "y":3}, + {"label":"R35", "x":15.5, "y":3, "w":1.5}, + {"label":"L40", "x":0, "y":4, "w":1.5}, + {"label":"L41", "x":1.5, "y":4}, + {"label":"L42", "x":2.5, "y":4}, + {"label":"L43", "x":3.5, "y":4}, + {"label":"L44", "x":4.5, "y":4}, + {"label":"L45", "x":6, "y":4.5}, + {"label":"L46", "x":7, "y":4.5}, + {"label":"R46", "x":9, "y":4.5}, + {"label":"R40", "x":10, "y":4.5}, + {"label":"R41", "x":11.5, "y":4}, + {"label":"R42", "x":12.5, "y":4}, + {"label":"R43", "x":13.5, "y":4}, + {"label":"R44", "x":14.5, "y":4}, + {"label":"R45", "x":15.5, "y":4, "w":1.5}, + {"label":"L55", "x":6, "y":5.5}, + {"label":"L56", "x":7, "y":5.5}, + {"label":"R56", "x":9, "y":5.5}, + {"label":"R50", "x":10, "y":5.5} + ] + } + } +} diff --git a/keyboards/rgbkb/sol/rev2/post_rules.mk b/keyboards/rgbkb/sol/rev2/post_rules.mk new file mode 100644 index 0000000000..0cbf430ad3 --- /dev/null +++ b/keyboards/rgbkb/sol/rev2/post_rules.mk @@ -0,0 +1,37 @@ +# As long as the users rules.mk has include $(KEYBOARD)/post_rules.mk this will be run after to properly setup any keyboard features and defines + +ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes) + OPT_DEFS += -DIOS_DEVICE_ENABLE +else ifeq ($(strip $(RGBLIGHT_FULL_POWER)), yes) + OPT_DEFS += -DRGBLIGHT_FULL_POWER +endif + +ifeq ($(strip $(RGB_MATRIX_KEYPRESSES)), yes) + OPT_DEFS += -DRGB_MATRIX_KEYPRESSES +endif + +ifeq ($(strip $(RGB_MATRIX_FRAMEBUFFER)), yes) + OPT_DEFS += -DRGB_MATRIX_FRAMEBUFFER_EFFECTS +endif + +ifeq ($(strip $(LED_MIRRORED)), yes) + OPT_DEFS += -DLED_MIRRORED +endif + +ifeq ($(strip $(FULLHAND_ENABLE)), yes) + OPT_DEFS += -DFULLHAND_ENABLE +endif + +ifeq ($(strip $(EXTRA_ENCODERS_ENABLE)), yes) + OPT_DEFS += -DEXTRA_ENCODERS_ENABLE +endif + +ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes) + ifeq ($(strip $(ENCODER_ENABLE)), yes) + ifneq ($(strip $(RGB_MATRIX_ENABLE)), no) + ifneq ($(strip $(RGB_OLED_MENU)), no) + OPT_DEFS += -DRGB_OLED_MENU=$(strip $(RGB_OLED_MENU)) + endif + endif + endif +endif diff --git a/keyboards/rgbkb/sol/rev2/rev2.c b/keyboards/rgbkb/sol/rev2/rev2.c new file mode 100644 index 0000000000..467aa18e44 --- /dev/null +++ b/keyboards/rgbkb/sol/rev2/rev2.c @@ -0,0 +1,89 @@ +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + { 0, 1, 2, 3, 4, 5, 6 }, + { 7, 8, 9, 10, 11, 12, 13 }, + { 14, 15, 16, 17, 18, 19, 20 }, + { 21, 22, 23, 24, 25, 26, 27 }, + { 28, 29, 30, 31, 32, 33, 34 }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 33, 34 }, +// Need to shift Right hand indexes if full hand LEDs are enabled +#define LO (FULLHAND_LEDS / 2) + { LO+62, LO+63, LO+64, LO+65, LO+66, LO+67, LO+68 }, + { LO+69, LO+70, LO+71, LO+72, LO+73, LO+74, LO+75 }, + { LO+76, LO+77, LO+78, LO+79, LO+80, LO+81, LO+82 }, + { LO+83, LO+84, LO+85, LO+86, LO+87, LO+88, LO+89 }, + { LO+90, LO+91, LO+92, LO+93, LO+94, LO+95, LO+95 }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, LO+95, LO+95 } +#undef LO +}, { +// Left Hand Mapped Left to Right + { 11, 14 }, { 28, 14 }, { 42, 14 }, { 56, 14 }, { 70, 14 }, { 84, 14 }, { 102, 14 }, + { 11, 28 }, { 28, 28 }, { 42, 28 }, { 56, 28 }, { 70, 28 }, { 84, 28 }, { 98, 25 }, + { 11, 42 }, { 28, 42 }, { 42, 42 }, { 56, 42 }, { 70, 42 }, { 84, 42 }, { 98, 39 }, + { 11, 56 }, { 28, 56 }, { 42, 56 }, { 56, 56 }, { 70, 56 }, { 84, 56 }, { 98, 53 }, + { 11, 70 }, { 28, 70 }, { 42, 70 }, { 56, 70 }, { 70, 70 }, { 83, 87 }, { 93, 97 }, +// Edge Light Left + { 0, 66 }, { 0, 52 }, { 0, 38 }, { 0, 24 }, { 0, 10 }, { 31, 0 }, { 38, 0 }, + { 46, 0 }, { 54, 0 }, { 61, 0 }, { 69, 0 }, { 76, 0 }, { 84, 0 }, { 109, 11 }, + { 109, 24 }, { 109, 39 }, { 109, 53 }, { 110, 73 }, { 112, 85 }, { 106, 95 }, { 95, 98 }, + { 83, 91 }, { 71, 84 }, { 58, 77 }, { 42, 74 }, { 28, 74 }, { 14, 74 }, +// Full Hand Left +#ifdef FULLHAND_ENABLE + { 2, 88 }, { 2, 103 }, { 2, 117 }, { 2, 132 }, { 10, 145 }, { 25, 145 }, { 39, 145 }, + { 54, 145 }, { 69, 145 }, { 79, 136 }, { 87, 124 }, { 94, 111 }, +#endif +// Left Hand Mapped Right to Left + { 213, 14 }, { 196, 14 }, { 182, 14 }, { 168, 14 }, { 154, 14 }, { 140, 14 }, { 122, 14 }, + { 213, 28 }, { 196, 28 }, { 182, 28 }, { 168, 28 }, { 154, 28 }, { 140, 28 }, { 126, 25 }, + { 213, 42 }, { 196, 42 }, { 182, 42 }, { 168, 42 }, { 154, 42 }, { 140, 42 }, { 126, 39 }, + { 213, 56 }, { 196, 56 }, { 182, 56 }, { 168, 56 }, { 154, 56 }, { 140, 56 }, { 126, 53 }, + { 213, 70 }, { 196, 70 }, { 182, 70 }, { 168, 70 }, { 154, 70 }, { 141, 87 }, { 131, 97 }, +// Edge Light Right + { 224, 66 }, { 224, 52 }, { 224, 38 }, { 224, 24 }, { 224, 10 }, { 193, 0 }, { 186, 0 }, + { 178, 0 }, { 170, 0 }, { 163, 0 }, { 155, 0 }, { 148, 0 }, { 140, 0 }, { 115, 11 }, + { 115, 24 }, { 115, 39 }, { 115, 53 }, { 114, 73 }, { 112, 85 }, { 118, 95 }, { 129, 98 }, + { 141, 91 }, { 153, 84 }, { 166, 77 }, { 182, 74 }, { 196, 74 }, { 210, 74 } +// Full Hand Right +#ifdef FULLHAND_ENABLE + ,{ 222, 88 }, { 222, 103 }, { 222, 117 }, { 222, 132 }, { 214, 145 }, { 199, 145 }, { 185, 145 }, + { 170, 145 }, { 155, 145 }, { 145, 136 }, { 137, 124 }, { 130, 111 } +#endif +}, { +// Left Hand Mapped Left to Right + 1, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 1, + 1, 1, 1, 1, 1, 1, 1, +// Edge Light Left + 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, +// Full Hand Left +#ifdef FULLHAND_ENABLE + 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, +#endif +// Left Hand Mapped Right to Left + 1, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 1, + 1, 1, 1, 1, 1, 1, 1, +// Edge Light Right + 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2 +// Full Hand Right +#ifdef FULLHAND_ENABLE + ,2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2 +#endif +} }; + +#endif + diff --git a/keyboards/rgbkb/sol/rev2/rev2.h b/keyboards/rgbkb/sol/rev2/rev2.h new file mode 100644 index 0000000000..6f70f09bee --- /dev/null +++ b/keyboards/rgbkb/sol/rev2/rev2.h @@ -0,0 +1 @@ +#pragma once diff --git a/keyboards/rgbkb/sol/rev2/rules.mk b/keyboards/rgbkb/sol/rev2/rules.mk new file mode 100644 index 0000000000..87b400fa14 --- /dev/null +++ b/keyboards/rgbkb/sol/rev2/rules.mk @@ -0,0 +1,35 @@ +# RGBKB Sol Rev2 Defaults + +# Keycode Options +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration( +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +UNICODE_ENABLE = no # Unicode keycodes +NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work + +# Debug Options +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration + +# RGB Options +RGBLIGHT_ENABLE = no # Enable global lighting effects. Do not enable with RGB Matrix +RGBLIGHT_ANIMATIONS = no # LED animations +LED_MIRRORED = no # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master) + +RGB_MATRIX_ENABLE = WS2812 # Enable per-key coordinate based RGB effects. Do not enable with RGBlight +RGB_MATRIX_KEYPRESSES = no # Enable reactive per-key effects. +RGB_MATRIX_FRAMEBUFFER_EFFECTS = no # Enable frame buffer effects like the typing heatmap. + +RGBLIGHT_FULL_POWER = no # Allow maximum RGB brightness for RGBLIGHT or RGB_MATRIX. Otherwise, limited to a safe level for a normal USB-A port +FULLHAND_ENABLE = no # Enables the additional 24 Full Hand LEDs +IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone) + +# Misc +OLED_DRIVER_ENABLE = no # Enable the OLED Driver +EXTRA_ENCODERS_ENABLE = no # Enables 3 encoders per side (up from 1, not compatible with OLED_DRIVER_ENABLE) +SWAP_HANDS_ENABLE = no # Enable one-hand typing +LINK_TIME_OPTIMIZATION_ENABLE = yes # Enable Link Time Optimizations greatly reducing firmware size by disabling the old Macros and Functions features + +# Special RGB Matrix, OLED, & Encoder Control Menu! +RGB_OLED_MENU = no # Enabled by setting this to the encoder index (0-5) you wish to use to control the menu. + # Use the RGB_MENU keycode in the keymap for the encoder to advance the menu to the next option. |