summaryrefslogtreecommitdiff
path: root/keyboards/rgbkb/sol/rev2
diff options
context:
space:
mode:
authorXScorpion2 <rcalt2vt@gmail.com>2019-07-22 12:43:52 -0500
committerMechMerlin <30334081+mechmerlin@users.noreply.github.com>2019-07-22 10:43:52 -0700
commit40b0ddd425bf09ddbb15a414b5147e98256f10a8 (patch)
tree8aa9d292b49716225474a58e90fd89c6f978da9a /keyboards/rgbkb/sol/rev2
parent17ff9cf554d64fd3e036f3d6e06cff952d8802bf (diff)
downloadqmk_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.h61
-rw-r--r--keyboards/rgbkb/sol/rev2/info.json87
-rw-r--r--keyboards/rgbkb/sol/rev2/post_rules.mk37
-rw-r--r--keyboards/rgbkb/sol/rev2/rev2.c89
-rw-r--r--keyboards/rgbkb/sol/rev2/rev2.h1
-rw-r--r--keyboards/rgbkb/sol/rev2/rules.mk35
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.