aboutsummaryrefslogtreecommitdiff
path: root/keyboards/rgbkb/sol/rev2
diff options
context:
space:
mode:
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 000000000..af74b7e46
--- /dev/null
+++ b/keyboards/rgbkb/sol/rev2/config.h
@@ -0,0 +1,61 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com>
3Copyright 2015 Jack Humbert
4
5This program is free software: you can redistribute it and/or modify
6it under the terms of the GNU General Public License as published by
7the Free Software Foundation, either version 2 of the License, or
8(at your option) any later version.
9
10This program is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License
16along with this program. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19#pragma once
20
21/* USB Device descriptor parameter */
22#define VENDOR_ID 0xFEED
23#define PRODUCT_ID 0x3060
24#define DEVICE_VER 0x0002
25#define MANUFACTURER RGBKB
26#define PRODUCT Sol
27#define DESCRIPTION "An RGB, split, ortho-esque keyboard"
28
29/* ws2812 RGB LED */
30#define RGB_DI_PIN B7
31
32#define BACKLIGHT_LEDS 124
33
34#ifdef FULLHAND_ENABLE
35 #define FULLHAND_LEDS 24
36#else
37 #define FULLHAND_LEDS 0
38#endif
39
40// Underglow / DIY Tent Glow are parallel to the top row leds, no separate define
41
42#ifdef LED_MIRRORED
43 #define RGBLED_NUM ((BACKLIGHT_LEDS + FULLHAND_LEDS) / 2)
44#else
45 #define RGBLED_NUM (BACKLIGHT_LEDS + FULLHAND_LEDS)
46#endif
47#define DRIVER_LED_TOTAL RGBLED_NUM
48
49#define RGB_MATRIX_CENTER { 112, 37 }
50
51// Encoder support
52#ifndef EXTRA_ENCODERS_ENABLE
53#define ENCODERS_PAD_A { D2 }
54#define ENCODERS_PAD_B { D6 }
55#else
56#ifdef OLED_DRIVER_ENABLE
57 #error Extra encoders cannot be enabled at the same time as the OLED Driver as they use the same pins.
58#endif
59#define ENCODERS_PAD_A { D2, D1, B0 }
60#define ENCODERS_PAD_B { D6, B1, D0 }
61#endif
diff --git a/keyboards/rgbkb/sol/rev2/info.json b/keyboards/rgbkb/sol/rev2/info.json
new file mode 100644
index 000000000..e252ea2e2
--- /dev/null
+++ b/keyboards/rgbkb/sol/rev2/info.json
@@ -0,0 +1,87 @@
1{
2 "keyboard_name": "Sol",
3 "url": "",
4 "maintainer": "Legonut",
5 "width": 17,
6 "height": 6.5,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [
10 {"label":"L00", "x":0, "y":0, "w":1.5},
11 {"label":"L01", "x":1.5, "y":0},
12 {"label":"L02", "x":2.5, "y":0},
13 {"label":"L03", "x":3.5, "y":0},
14 {"label":"L04", "x":4.5, "y":0},
15 {"label":"L05", "x":5.5, "y":0},
16 {"label":"L06", "x":6.75, "y":0},
17 {"label":"R06", "x":9.25, "y":0},
18 {"label":"R00", "x":10.5, "y":0},
19 {"label":"R01", "x":11.5, "y":0},
20 {"label":"R02", "x":12.5, "y":0},
21 {"label":"R03", "x":13.5, "y":0},
22 {"label":"R04", "x":14.5, "y":0},
23 {"label":"R05", "x":15.5, "y":0, "w":1.5},
24 {"label":"L10", "x":0, "y":1, "w":1.5},
25 {"label":"L11", "x":1.5, "y":1},
26 {"label":"L12", "x":2.5, "y":1},
27 {"label":"L13", "x":3.5, "y":1},
28 {"label":"L14", "x":4.5, "y":1},
29 {"label":"L15", "x":5.5, "y":1},
30 {"label":"L16", "x":6.75, "y":1},
31 {"label":"R16", "x":9.25, "y":1},
32 {"label":"R10", "x":10.5, "y":1},
33 {"label":"R11", "x":11.5, "y":1},
34 {"label":"R12", "x":12.5, "y":1},
35 {"label":"R13", "x":13.5, "y":1},
36 {"label":"R14", "x":14.5, "y":1},
37 {"label":"R15", "x":15.5, "y":1, "w":1.5},
38 {"label":"L20", "x":0, "y":2, "w":1.5},
39 {"label":"L21", "x":1.5, "y":2},
40 {"label":"L22", "x":2.5, "y":2},
41 {"label":"L23", "x":3.5, "y":2},
42 {"label":"L24", "x":4.5, "y":2},
43 {"label":"L25", "x":5.5, "y":2},
44 {"label":"L26", "x":6.75, "y":2},
45 {"label":"R26", "x":9.25, "y":2},
46 {"label":"R20", "x":10.5, "y":2},
47 {"label":"R21", "x":11.5, "y":2},
48 {"label":"R22", "x":12.5, "y":2},
49 {"label":"R23", "x":13.5, "y":2},
50 {"label":"R24", "x":14.5, "y":2},
51 {"label":"R25", "x":15.5, "y":2, "w":1.5},
52 {"label":"L30", "x":0, "y":3, "w":1.5},
53 {"label":"L31", "x":1.5, "y":3},
54 {"label":"L32", "x":2.5, "y":3},
55 {"label":"L33", "x":3.5, "y":3},
56 {"label":"L34", "x":4.5, "y":3},
57 {"label":"L35", "x":5.5, "y":3},
58 {"label":"L36", "x":6.75, "y":3},
59 {"label":"R36", "x":9.25, "y":3},
60 {"label":"R30", "x":10.5, "y":3},
61 {"label":"R31", "x":11.5, "y":3},
62 {"label":"R32", "x":12.5, "y":3},
63 {"label":"R33", "x":13.5, "y":3},
64 {"label":"R34", "x":14.5, "y":3},
65 {"label":"R35", "x":15.5, "y":3, "w":1.5},
66 {"label":"L40", "x":0, "y":4, "w":1.5},
67 {"label":"L41", "x":1.5, "y":4},
68 {"label":"L42", "x":2.5, "y":4},
69 {"label":"L43", "x":3.5, "y":4},
70 {"label":"L44", "x":4.5, "y":4},
71 {"label":"L45", "x":6, "y":4.5},
72 {"label":"L46", "x":7, "y":4.5},
73 {"label":"R46", "x":9, "y":4.5},
74 {"label":"R40", "x":10, "y":4.5},
75 {"label":"R41", "x":11.5, "y":4},
76 {"label":"R42", "x":12.5, "y":4},
77 {"label":"R43", "x":13.5, "y":4},
78 {"label":"R44", "x":14.5, "y":4},
79 {"label":"R45", "x":15.5, "y":4, "w":1.5},
80 {"label":"L55", "x":6, "y":5.5},
81 {"label":"L56", "x":7, "y":5.5},
82 {"label":"R56", "x":9, "y":5.5},
83 {"label":"R50", "x":10, "y":5.5}
84 ]
85 }
86 }
87}
diff --git a/keyboards/rgbkb/sol/rev2/post_rules.mk b/keyboards/rgbkb/sol/rev2/post_rules.mk
new file mode 100644
index 000000000..0cbf430ad
--- /dev/null
+++ b/keyboards/rgbkb/sol/rev2/post_rules.mk
@@ -0,0 +1,37 @@
1# 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
2
3ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes)
4 OPT_DEFS += -DIOS_DEVICE_ENABLE
5else ifeq ($(strip $(RGBLIGHT_FULL_POWER)), yes)
6 OPT_DEFS += -DRGBLIGHT_FULL_POWER
7endif
8
9ifeq ($(strip $(RGB_MATRIX_KEYPRESSES)), yes)
10 OPT_DEFS += -DRGB_MATRIX_KEYPRESSES
11endif
12
13ifeq ($(strip $(RGB_MATRIX_FRAMEBUFFER)), yes)
14 OPT_DEFS += -DRGB_MATRIX_FRAMEBUFFER_EFFECTS
15endif
16
17ifeq ($(strip $(LED_MIRRORED)), yes)
18 OPT_DEFS += -DLED_MIRRORED
19endif
20
21ifeq ($(strip $(FULLHAND_ENABLE)), yes)
22 OPT_DEFS += -DFULLHAND_ENABLE
23endif
24
25ifeq ($(strip $(EXTRA_ENCODERS_ENABLE)), yes)
26 OPT_DEFS += -DEXTRA_ENCODERS_ENABLE
27endif
28
29ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes)
30 ifeq ($(strip $(ENCODER_ENABLE)), yes)
31 ifneq ($(strip $(RGB_MATRIX_ENABLE)), no)
32 ifneq ($(strip $(RGB_OLED_MENU)), no)
33 OPT_DEFS += -DRGB_OLED_MENU=$(strip $(RGB_OLED_MENU))
34 endif
35 endif
36 endif
37endif
diff --git a/keyboards/rgbkb/sol/rev2/rev2.c b/keyboards/rgbkb/sol/rev2/rev2.c
new file mode 100644
index 000000000..467aa18e4
--- /dev/null
+++ b/keyboards/rgbkb/sol/rev2/rev2.c
@@ -0,0 +1,89 @@
1#include "quantum.h"
2
3#ifdef RGB_MATRIX_ENABLE
4led_config_t g_led_config = { {
5 { 0, 1, 2, 3, 4, 5, 6 },
6 { 7, 8, 9, 10, 11, 12, 13 },
7 { 14, 15, 16, 17, 18, 19, 20 },
8 { 21, 22, 23, 24, 25, 26, 27 },
9 { 28, 29, 30, 31, 32, 33, 34 },
10 { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 33, 34 },
11// Need to shift Right hand indexes if full hand LEDs are enabled
12#define LO (FULLHAND_LEDS / 2)
13 { LO+62, LO+63, LO+64, LO+65, LO+66, LO+67, LO+68 },
14 { LO+69, LO+70, LO+71, LO+72, LO+73, LO+74, LO+75 },
15 { LO+76, LO+77, LO+78, LO+79, LO+80, LO+81, LO+82 },
16 { LO+83, LO+84, LO+85, LO+86, LO+87, LO+88, LO+89 },
17 { LO+90, LO+91, LO+92, LO+93, LO+94, LO+95, LO+95 },
18 { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, LO+95, LO+95 }
19#undef LO
20}, {
21// Left Hand Mapped Left to Right
22 { 11, 14 }, { 28, 14 }, { 42, 14 }, { 56, 14 }, { 70, 14 }, { 84, 14 }, { 102, 14 },
23 { 11, 28 }, { 28, 28 }, { 42, 28 }, { 56, 28 }, { 70, 28 }, { 84, 28 }, { 98, 25 },
24 { 11, 42 }, { 28, 42 }, { 42, 42 }, { 56, 42 }, { 70, 42 }, { 84, 42 }, { 98, 39 },
25 { 11, 56 }, { 28, 56 }, { 42, 56 }, { 56, 56 }, { 70, 56 }, { 84, 56 }, { 98, 53 },
26 { 11, 70 }, { 28, 70 }, { 42, 70 }, { 56, 70 }, { 70, 70 }, { 83, 87 }, { 93, 97 },
27// Edge Light Left
28 { 0, 66 }, { 0, 52 }, { 0, 38 }, { 0, 24 }, { 0, 10 }, { 31, 0 }, { 38, 0 },
29 { 46, 0 }, { 54, 0 }, { 61, 0 }, { 69, 0 }, { 76, 0 }, { 84, 0 }, { 109, 11 },
30 { 109, 24 }, { 109, 39 }, { 109, 53 }, { 110, 73 }, { 112, 85 }, { 106, 95 }, { 95, 98 },
31 { 83, 91 }, { 71, 84 }, { 58, 77 }, { 42, 74 }, { 28, 74 }, { 14, 74 },
32// Full Hand Left
33#ifdef FULLHAND_ENABLE
34 { 2, 88 }, { 2, 103 }, { 2, 117 }, { 2, 132 }, { 10, 145 }, { 25, 145 }, { 39, 145 },
35 { 54, 145 }, { 69, 145 }, { 79, 136 }, { 87, 124 }, { 94, 111 },
36#endif
37// Left Hand Mapped Right to Left
38 { 213, 14 }, { 196, 14 }, { 182, 14 }, { 168, 14 }, { 154, 14 }, { 140, 14 }, { 122, 14 },
39 { 213, 28 }, { 196, 28 }, { 182, 28 }, { 168, 28 }, { 154, 28 }, { 140, 28 }, { 126, 25 },
40 { 213, 42 }, { 196, 42 }, { 182, 42 }, { 168, 42 }, { 154, 42 }, { 140, 42 }, { 126, 39 },
41 { 213, 56 }, { 196, 56 }, { 182, 56 }, { 168, 56 }, { 154, 56 }, { 140, 56 }, { 126, 53 },
42 { 213, 70 }, { 196, 70 }, { 182, 70 }, { 168, 70 }, { 154, 70 }, { 141, 87 }, { 131, 97 },
43// Edge Light Right
44 { 224, 66 }, { 224, 52 }, { 224, 38 }, { 224, 24 }, { 224, 10 }, { 193, 0 }, { 186, 0 },
45 { 178, 0 }, { 170, 0 }, { 163, 0 }, { 155, 0 }, { 148, 0 }, { 140, 0 }, { 115, 11 },
46 { 115, 24 }, { 115, 39 }, { 115, 53 }, { 114, 73 }, { 112, 85 }, { 118, 95 }, { 129, 98 },
47 { 141, 91 }, { 153, 84 }, { 166, 77 }, { 182, 74 }, { 196, 74 }, { 210, 74 }
48// Full Hand Right
49#ifdef FULLHAND_ENABLE
50 ,{ 222, 88 }, { 222, 103 }, { 222, 117 }, { 222, 132 }, { 214, 145 }, { 199, 145 }, { 185, 145 },
51 { 170, 145 }, { 155, 145 }, { 145, 136 }, { 137, 124 }, { 130, 111 }
52#endif
53}, {
54// Left Hand Mapped Left to Right
55 1, 4, 4, 4, 4, 4, 1,
56 1, 4, 4, 4, 4, 4, 1,
57 1, 4, 4, 4, 4, 4, 1,
58 1, 4, 4, 4, 4, 4, 1,
59 1, 1, 1, 1, 1, 1, 1,
60// Edge Light Left
61 2, 2, 2, 2, 2, 2, 2,
62 2, 2, 2, 2, 2, 2, 2,
63 2, 2, 2, 2, 2, 2, 2,
64 2, 2, 2, 2, 2, 2,
65// Full Hand Left
66#ifdef FULLHAND_ENABLE
67 2, 2, 2, 2, 2, 2, 2,
68 2, 2, 2, 2, 2,
69#endif
70// Left Hand Mapped Right to Left
71 1, 4, 4, 4, 4, 4, 1,
72 1, 4, 4, 4, 4, 4, 1,
73 1, 4, 4, 4, 4, 4, 1,
74 1, 4, 4, 4, 4, 4, 1,
75 1, 1, 1, 1, 1, 1, 1,
76// Edge Light Right
77 2, 2, 2, 2, 2, 2, 2,
78 2, 2, 2, 2, 2, 2, 2,
79 2, 2, 2, 2, 2, 2, 2,
80 2, 2, 2, 2, 2, 2
81// Full Hand Right
82#ifdef FULLHAND_ENABLE
83 ,2, 2, 2, 2, 2, 2, 2,
84 2, 2, 2, 2, 2
85#endif
86} };
87
88#endif
89
diff --git a/keyboards/rgbkb/sol/rev2/rev2.h b/keyboards/rgbkb/sol/rev2/rev2.h
new file mode 100644
index 000000000..6f70f09be
--- /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 000000000..87b400fa1
--- /dev/null
+++ b/keyboards/rgbkb/sol/rev2/rules.mk
@@ -0,0 +1,35 @@
1# RGBKB Sol Rev2 Defaults
2
3# Keycode Options
4BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(
5MOUSEKEY_ENABLE = no # Mouse keys
6EXTRAKEY_ENABLE = yes # Audio control and System control
7UNICODE_ENABLE = no # Unicode keycodes
8NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
9
10# Debug Options
11CONSOLE_ENABLE = no # Console for debug(+400)
12COMMAND_ENABLE = no # Commands for debug and configuration
13
14# RGB Options
15RGBLIGHT_ENABLE = no # Enable global lighting effects. Do not enable with RGB Matrix
16RGBLIGHT_ANIMATIONS = no # LED animations
17LED_MIRRORED = no # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master)
18
19RGB_MATRIX_ENABLE = WS2812 # Enable per-key coordinate based RGB effects. Do not enable with RGBlight
20RGB_MATRIX_KEYPRESSES = no # Enable reactive per-key effects.
21RGB_MATRIX_FRAMEBUFFER_EFFECTS = no # Enable frame buffer effects like the typing heatmap.
22
23RGBLIGHT_FULL_POWER = no # Allow maximum RGB brightness for RGBLIGHT or RGB_MATRIX. Otherwise, limited to a safe level for a normal USB-A port
24FULLHAND_ENABLE = no # Enables the additional 24 Full Hand LEDs
25IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone)
26
27# Misc
28OLED_DRIVER_ENABLE = no # Enable the OLED Driver
29EXTRA_ENCODERS_ENABLE = no # Enables 3 encoders per side (up from 1, not compatible with OLED_DRIVER_ENABLE)
30SWAP_HANDS_ENABLE = no # Enable one-hand typing
31LINK_TIME_OPTIMIZATION_ENABLE = yes # Enable Link Time Optimizations greatly reducing firmware size by disabling the old Macros and Functions features
32
33# Special RGB Matrix, OLED, & Encoder Control Menu!
34RGB_OLED_MENU = no # Enabled by setting this to the encoder index (0-5) you wish to use to control the menu.
35 # Use the RGB_MENU keycode in the keymap for the encoder to advance the menu to the next option.