summaryrefslogtreecommitdiffstats
path: root/keyboards
diff options
context:
space:
mode:
authorXScorpion2 <rcalt2vt@gmail.com>2019-04-15 02:50:35 +0200
committerMechMerlin <30334081+mechmerlin@users.noreply.github.com>2019-04-15 02:50:35 +0200
commit5fcd744ddba591829a129560992b2e43fb615d4d (patch)
tree33b78133af1563f5dfa1e125a37f86e30a7df1cb /keyboards
parentd7ba190cd9b90bce3a00dfa2a9afe4b3bf0a1dbb (diff)
downloadqmk_firmware-5fcd744ddba591829a129560992b2e43fb615d4d.tar.gz
qmk_firmware-5fcd744ddba591829a129560992b2e43fb615d4d.tar.xz
Features/ws2812 matrix driver (#5418)
* WS2812 driver implementation for RGB Matrix * Added driver configuration docs
Diffstat (limited to 'keyboards')
-rw-r--r--keyboards/sol/keymaps/kageurufu/rules.mk7
-rw-r--r--keyboards/sol/rev1/config.h6
-rw-r--r--keyboards/sol/rev1/rev1.c83
3 files changed, 89 insertions, 7 deletions
diff --git a/keyboards/sol/keymaps/kageurufu/rules.mk b/keyboards/sol/keymaps/kageurufu/rules.mk
index d098168fd..bb502be00 100644
--- a/keyboards/sol/keymaps/kageurufu/rules.mk
+++ b/keyboards/sol/keymaps/kageurufu/rules.mk
@@ -4,14 +4,15 @@
#
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
+
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-RGBLIGHT_ENABLE = yes # Enable global lighting effects. Do not enable with RGB Matrix
-LED_ANIMATIONS = yes # LED animations
+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 = no # Enable per-key coordinate based RGB effects. Do not enable with RGBlight (+8500)
+RGB_MATRIX_ENABLE = WS2812 # Enable per-key coordinate based RGB effects. Do not enable with RGBlight (+8500)
RGB_MATRIX_KEYPRESSES = no # Enable reactive per-key effects. Can be very laggy (+1500)
RGBLIGHT_FULL_POWER = no # Allow maximum RGB brightness. Otherwise, limited to a safe level for a normal USB-A port
UNICODE_ENABLE = no # Unicode
diff --git a/keyboards/sol/rev1/config.h b/keyboards/sol/rev1/config.h
index bfdadf9f6..1ef373f96 100644
--- a/keyboards/sol/rev1/config.h
+++ b/keyboards/sol/rev1/config.h
@@ -81,8 +81,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define ws2812_PORTREG PORTD
#define ws2812_DDRREG DDRD
-#define DRIVER_COUNT 2
-#define DRIVER_LED_TOTAL 70
+#define DRIVER_COUNT 1
// #define RGB_MATRIX_KEYPRESSES
#define BACKLIGHT_PIN B7
#define BACKLIGHT_LEVELS 5
@@ -92,6 +91,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#else
#define RGBLED_NUM 70
#endif
+#define DRIVER_LED_TOTAL RGBLED_NUM
#define RGBLIGHT_RAINBOW_SWIRL_RANGE 1950
@@ -112,6 +112,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_ANIMATIONS
+#define LED_HITS_TO_REMEMBER 5
+
#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE)
// USB_MAX_POWER_CONSUMPTION value for Helix keyboard
// 120 RGBoff, OLEDoff
diff --git a/keyboards/sol/rev1/rev1.c b/keyboards/sol/rev1/rev1.c
index 01ab577d4..9d869a4af 100644
--- a/keyboards/sol/rev1/rev1.c
+++ b/keyboards/sol/rev1/rev1.c
@@ -1,6 +1,5 @@
#include "sol.h"
-
#ifdef SSD1306OLED
void led_set_kb(uint8_t usb_led) {
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
@@ -8,8 +7,88 @@ void led_set_kb(uint8_t usb_led) {
}
#endif
-void matrix_init_kb(void) {
+#ifdef RGB_MATRIX_ENABLE
+ const rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
+ // Left Hand Mapped Left to Right
+ { { 0 | (0 << 4) }, { 0, 0 }, 1},
+ { { 0 | (1 << 4) }, { 22, 0 }, 0},
+ { { 0 | (2 << 4) }, { 37, 0 }, 0},
+ { { 0 | (3 << 4) }, { 37, 0 }, 0},
+ { { 0 | (4 << 4) }, { 67, 0 }, 0},
+ { { 0 | (5 << 4) }, { 82, 0 }, 0},
+ { { 0 | (6 << 4) }, { 104, 0 }, 1},
+ { { 1 | (0 << 4) }, { 0, 16 }, 1},
+ { { 1 | (1 << 4) }, { 22, 16 }, 0},
+ { { 1 | (2 << 4) }, { 37, 16 }, 0},
+ { { 1 | (3 << 4) }, { 37, 16 }, 0},
+ { { 1 | (4 << 4) }, { 67, 16 }, 0},
+ { { 1 | (5 << 4) }, { 82, 16 }, 0},
+ { { 1 | (6 << 4) }, { 104, 16 }, 1},
+ { { 2 | (0 << 4) }, { 0, 32 }, 1},
+ { { 2 | (1 << 4) }, { 22, 32 }, 0},
+ { { 2 | (2 << 4) }, { 37, 32 }, 0},
+ { { 2 | (3 << 4) }, { 37, 32 }, 0},
+ { { 2 | (4 << 4) }, { 67, 32 }, 0},
+ { { 2 | (5 << 4) }, { 82, 32 }, 0},
+ { { 2 | (6 << 4) }, { 104, 32 }, 1},
+ { { 3 | (0 << 4) }, { 0, 48 }, 1},
+ { { 3 | (1 << 4) }, { 22, 48 }, 0},
+ { { 3 | (2 << 4) }, { 37, 48 }, 0},
+ { { 3 | (3 << 4) }, { 37, 48 }, 0},
+ { { 3 | (4 << 4) }, { 67, 48 }, 0},
+ { { 3 | (5 << 4) }, { 82, 48 }, 0},
+ { { 3 | (6 << 4) }, { 104, 48 }, 1},
+ { { 4 | (0 << 4) }, { 0, 64 }, 1},
+ { { 4 | (1 << 4) }, { 22, 64 }, 1},
+ { { 4 | (2 << 4) }, { 37, 64 }, 1},
+ { { 4 | (3 << 4) }, { 37, 64 }, 1},
+ { { 4 | (4 << 4) }, { 67, 64 }, 1},
+ // These two control the 4 LEDs in the thumb cluster
+ // Top keys are { 4 | (5 << 4) & { 4 | (6 << 4)
+ { { 5 | (5 << 4) }, { 89, 45 }, 1},
+ { { 5 | (6 << 4) }, { 97, 55 }, 1},
+ // Left Hand Mapped Right to Left
+ { { 6 | (0 << 4) }, { 224, 0 }, 1},
+ { { 6 | (1 << 4) }, { 202, 0 }, 0},
+ { { 6 | (2 << 4) }, { 187, 0 }, 0},
+ { { 6 | (3 << 4) }, { 172, 0 }, 0},
+ { { 6 | (4 << 4) }, { 157, 0 }, 0},
+ { { 6 | (5 << 4) }, { 142, 0 }, 0},
+ { { 6 | (6 << 4) }, { 120, 0 }, 1},
+ { { 7 | (0 << 4) }, { 224, 16 }, 1},
+ { { 7 | (1 << 4) }, { 202, 16 }, 0},
+ { { 7 | (2 << 4) }, { 187, 16 }, 0},
+ { { 7 | (3 << 4) }, { 172, 16 }, 0},
+ { { 7 | (4 << 4) }, { 157, 16 }, 0},
+ { { 7 | (5 << 4) }, { 142, 16 }, 0},
+ { { 7 | (6 << 4) }, { 120, 16 }, 1},
+ { { 8 | (0 << 4) }, { 224, 32 }, 1},
+ { { 8 | (1 << 4) }, { 202, 32 }, 0},
+ { { 8 | (2 << 4) }, { 187, 32 }, 0},
+ { { 8 | (3 << 4) }, { 172, 32 }, 0},
+ { { 8 | (4 << 4) }, { 157, 32 }, 0},
+ { { 8 | (5 << 4) }, { 142, 32 }, 0},
+ { { 8 | (6 << 4) }, { 120, 32 }, 1},
+ { { 9 | (0 << 4) }, { 224, 48 }, 1},
+ { { 9 | (1 << 4) }, { 202, 48 }, 0},
+ { { 9 | (2 << 4) }, { 187, 48 }, 0},
+ { { 9 | (3 << 4) }, { 172, 48 }, 0},
+ { { 9 | (4 << 4) }, { 157, 48 }, 0},
+ { { 9 | (5 << 4) }, { 142, 48 }, 0},
+ { { 9 | (6 << 4) }, { 120, 48 }, 1},
+ { { 10 | (0 << 4) }, { 224, 64 }, 1},
+ { { 10 | (1 << 4) }, { 202, 64 }, 1},
+ { { 10 | (2 << 4) }, { 187, 64 }, 1},
+ { { 10 | (3 << 4) }, { 172, 64 }, 1},
+ { { 10 | (4 << 4) }, { 157, 64 }, 1},
+ // These two control the 4 LEDs in the thumb cluster
+ // Top keys are { 10 | (5 << 4) & { 10 | (6 << 4)
+ { { 11 | (5 << 4) }, { 135, 45 }, 1},
+ { { 11 | (6 << 4) }, { 127, 55 }, 1}
+ };
+#endif
+void matrix_init_kb(void) {
matrix_init_user();
};