diff options
author | XScorpion2 <rcalt2vt@gmail.com> | 2019-04-14 20:50:35 -0400 |
---|---|---|
committer | MechMerlin <30334081+mechmerlin@users.noreply.github.com> | 2019-04-14 17:50:35 -0700 |
commit | 5fcd744ddba591829a129560992b2e43fb615d4d (patch) | |
tree | 33b78133af1563f5dfa1e125a37f86e30a7df1cb /keyboards/sol/rev1 | |
parent | d7ba190cd9b90bce3a00dfa2a9afe4b3bf0a1dbb (diff) |
Features/ws2812 matrix driver (#5418)
* WS2812 driver implementation for RGB Matrix
* Added driver configuration docs
Diffstat (limited to 'keyboards/sol/rev1')
-rw-r--r-- | keyboards/sol/rev1/config.h | 6 | ||||
-rw-r--r-- | keyboards/sol/rev1/rev1.c | 83 |
2 files changed, 85 insertions, 4 deletions
diff --git a/keyboards/sol/rev1/config.h b/keyboards/sol/rev1/config.h index bfdadf9f6c..1ef373f963 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 01ab577d45..9d869a4af4 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(); }; |