diff options
| -rw-r--r-- | keyboards/wilba_tech/wt_rgb_backlight.c | 215 | ||||
| -rw-r--r-- | keyboards/wilba_tech/wt_rgb_backlight.h | 1 | ||||
| -rw-r--r-- | keyboards/xelus/dawn60/config.h | 145 | ||||
| -rw-r--r-- | keyboards/xelus/dawn60/dawn60.c | 18 | ||||
| -rw-r--r-- | keyboards/xelus/dawn60/dawn60.h | 36 | ||||
| -rw-r--r-- | keyboards/xelus/dawn60/keymaps/default/config.h | 17 | ||||
| -rw-r--r-- | keyboards/xelus/dawn60/keymaps/default/keymap.c | 46 | ||||
| -rw-r--r-- | keyboards/xelus/dawn60/keymaps/via/config.h | 17 | ||||
| -rw-r--r-- | keyboards/xelus/dawn60/keymaps/via/keymap.c | 46 | ||||
| -rw-r--r-- | keyboards/xelus/dawn60/keymaps/via/rules.mk | 1 | ||||
| -rw-r--r-- | keyboards/xelus/dawn60/readme.md | 13 | ||||
| -rw-r--r-- | keyboards/xelus/dawn60/rules.mk | 49 |
12 files changed, 597 insertions, 7 deletions
diff --git a/keyboards/wilba_tech/wt_rgb_backlight.c b/keyboards/wilba_tech/wt_rgb_backlight.c index 1ca3117fb..88fecba17 100644 --- a/keyboards/wilba_tech/wt_rgb_backlight.c +++ b/keyboards/wilba_tech/wt_rgb_backlight.c | |||
| @@ -14,9 +14,9 @@ | |||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 15 | */ | 15 | */ |
| 16 | 16 | ||
| 17 | #if defined(RGB_BACKLIGHT_ZEAL60) || defined(RGB_BACKLIGHT_ZEAL65) || defined(RGB_BACKLIGHT_M60_A) || defined(RGB_BACKLIGHT_M6_B) || defined(RGB_BACKLIGHT_KOYU) || defined(RGB_BACKLIGHT_HS60) || defined(RGB_BACKLIGHT_NK65) || defined(RGB_BACKLIGHT_U80_A) | 17 | #if defined(RGB_BACKLIGHT_ZEAL60) || defined(RGB_BACKLIGHT_ZEAL65) || defined(RGB_BACKLIGHT_M60_A) || defined(RGB_BACKLIGHT_M6_B) || defined(RGB_BACKLIGHT_KOYU) || defined(RGB_BACKLIGHT_HS60) || defined(RGB_BACKLIGHT_NK65) || defined(RGB_BACKLIGHT_U80_A) || defined(RGB_BACKLIGHT_DAWN60) |
| 18 | #else | 18 | #else |
| 19 | #error None of the following was defined: RGB_BACKLIGHT_ZEAL60, RGB_BACKLIGHT_ZEAL65, RGB_BACKLIGHT_M60_A, RGB_BACKLIGHT_M6_B, RGB_BACKLIGHT_KOYU, RGB_BACKLIGHT_HS60, RGB_BACKLIGHT_NK65, RGB_BACKLIGHT_U80_A | 19 | #error None of the following was defined: RGB_BACKLIGHT_ZEAL60, RGB_BACKLIGHT_ZEAL65, RGB_BACKLIGHT_M60_A, RGB_BACKLIGHT_M6_B, RGB_BACKLIGHT_KOYU, RGB_BACKLIGHT_HS60, RGB_BACKLIGHT_NK65, RGB_BACKLIGHT_U80_A, RGB_BACKLIGHT_DAWN60 |
| 20 | #endif | 20 | #endif |
| 21 | 21 | ||
| 22 | #ifndef MAX | 22 | #ifndef MAX |
| @@ -41,6 +41,11 @@ | |||
| 41 | #include "drivers/arm/i2c_master.h" | 41 | #include "drivers/arm/i2c_master.h" |
| 42 | #endif | 42 | #endif |
| 43 | 43 | ||
| 44 | #if defined(RGB_BACKLIGHT_DAWN60) | ||
| 45 | #include "drivers/avr/ws2812.h" | ||
| 46 | LED_TYPE g_ws2812_leds[WS2812_LED_TOTAL]; | ||
| 47 | #endif | ||
| 48 | |||
| 44 | #include "progmem.h" | 49 | #include "progmem.h" |
| 45 | #include "quantum/color.h" | 50 | #include "quantum/color.h" |
| 46 | #include "tmk_core/common/eeprom.h" | 51 | #include "tmk_core/common/eeprom.h" |
| @@ -61,6 +66,8 @@ | |||
| 61 | #include "drivers/issi/is31fl3731.h" | 66 | #include "drivers/issi/is31fl3731.h" |
| 62 | #if defined(RGB_BACKLIGHT_U80_A) | 67 | #if defined(RGB_BACKLIGHT_U80_A) |
| 63 | #define BACKLIGHT_LED_COUNT 108 | 68 | #define BACKLIGHT_LED_COUNT 108 |
| 69 | #elif defined(RGB_BACKLIGHT_DAWN60) | ||
| 70 | #define BACKLIGHT_LED_COUNT 84 //64 + 20 | ||
| 64 | #else | 71 | #else |
| 65 | #define BACKLIGHT_LED_COUNT 72 | 72 | #define BACKLIGHT_LED_COUNT 72 |
| 66 | #endif | 73 | #endif |
| @@ -463,6 +470,87 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { | |||
| 463 | {2, C9_16, C7_15, C6_15}, // LF16 | 470 | {2, C9_16, C7_15, C6_15}, // LF16 |
| 464 | {2, C8_16, C7_16, C6_16}, // LF17 | 471 | {2, C8_16, C7_16, C6_16}, // LF17 |
| 465 | }; | 472 | }; |
| 473 | #elif defined(RGB_BACKLIGHT_DAWN60) | ||
| 474 | // This is a 7-bit address, that gets left-shifted and bit 0 | ||
| 475 | // set to 0 for write, 1 for read (as per I2C protocol) | ||
| 476 | #define ISSI_ADDR_1 0x74 | ||
| 477 | #define ISSI_ADDR_2 0x76 | ||
| 478 | |||
| 479 | const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { | ||
| 480 | /* Refer to IS31 manual for these locations | ||
| 481 | * driver | ||
| 482 | * | R location | ||
| 483 | * | | G location | ||
| 484 | * | | | B location | ||
| 485 | * | | | | */ | ||
| 486 | {0, C1_1, C3_2, C4_2}, //A1 | ||
| 487 | {0, C1_2, C2_2, C4_3}, //A2 | ||
| 488 | {0, C1_3, C2_3, C3_3}, //A3 | ||
| 489 | {0, C1_4, C2_4, C3_4}, //A4 | ||
| 490 | {0, C1_5, C2_5, C3_5}, //A5 | ||
| 491 | {0, C1_6, C2_6, C3_6}, //A6 | ||
| 492 | {0, C1_7, C2_7, C3_7}, //A7 | ||
| 493 | {0, C1_8, C2_8, C3_8}, //A8 | ||
| 494 | {0, C9_1, C8_1, C7_1}, //A9 | ||
| 495 | {0, C9_2, C8_2, C7_2}, //A10 | ||
| 496 | {0, C9_3, C8_3, C7_3}, //A11 | ||
| 497 | {0, C9_4, C8_4, C7_4}, //A12 | ||
| 498 | {0, C9_5, C8_5, C7_5}, //A13 | ||
| 499 | {0, C9_6, C8_6, C7_6}, //A14 | ||
| 500 | {0, C9_7, C8_7, C6_6}, //A15 | ||
| 501 | {0, C9_8, C7_7, C6_7}, //A16 | ||
| 502 | |||
| 503 | {0, C1_9, C3_10, C4_10}, //B1 | ||
| 504 | {0, C1_10, C2_10, C4_11}, //B2 | ||
| 505 | {0, C1_11, C2_11, C3_11}, //B3 | ||
| 506 | {0, C1_12, C2_12, C3_12}, //B4 | ||
| 507 | {0, C1_13, C2_13, C3_13}, //B5 | ||
| 508 | {0, C1_14, C2_14, C3_14}, //B6 | ||
| 509 | {0, C1_15, C2_15, C3_15}, //B7 | ||
| 510 | {0, C1_16, C2_16, C3_16}, //B8 | ||
| 511 | {0, C9_9, C8_9, C7_9}, //B9 | ||
| 512 | {0, C9_10, C8_10, C7_10}, //B10 | ||
| 513 | {0, C9_11, C8_11, C7_11}, //B11 | ||
| 514 | {0, C9_12, C8_12, C7_12}, //B12 | ||
| 515 | {0, C9_13, C8_13, C7_13}, //B13 | ||
| 516 | {0, C9_14, C8_14, C7_14}, //B14 | ||
| 517 | {0, C9_15, C8_15, C6_14}, //B15 | ||
| 518 | {0, C9_16, C7_15, C6_15}, //B16 | ||
| 519 | |||
| 520 | {1, C1_1, C3_2, C4_2}, //C1 | ||
| 521 | {1, C1_2, C2_2, C4_3}, //C2 | ||
| 522 | {1, C1_3, C2_3, C3_3}, //C3 | ||
| 523 | {1, C1_4, C2_4, C3_4}, //C4 | ||
| 524 | {1, C1_5, C2_5, C3_5}, //C5 | ||
| 525 | {1, C1_6, C2_6, C3_6}, //C6 | ||
| 526 | {1, C1_7, C2_7, C3_7}, //C7 | ||
| 527 | {1, C1_8, C2_8, C3_8}, //C8 | ||
| 528 | {1, C9_1, C8_1, C7_1}, //C9 | ||
| 529 | {1, C9_2, C8_2, C7_2}, //C10 | ||
| 530 | {1, C9_3, C8_3, C7_3}, //C11 | ||
| 531 | {1, C9_4, C8_4, C7_4}, //C12 | ||
| 532 | {1, C9_5, C8_5, C7_5}, //C13 | ||
| 533 | {1, C9_6, C8_6, C7_6}, //C14 | ||
| 534 | {1, C9_7, C8_7, C6_6}, //C15 | ||
| 535 | {1, C9_8, C7_7, C6_7}, //C16 | ||
| 536 | |||
| 537 | {1, C1_9, C3_10, C4_10}, //D1 | ||
| 538 | {1, C1_10, C2_10, C4_11}, //D2 | ||
| 539 | {1, C1_11, C2_11, C3_11}, //D3 | ||
| 540 | {1, C1_12, C2_12, C3_12}, //D4 | ||
| 541 | {1, C1_13, C2_13, C3_13}, //D5 | ||
| 542 | {1, C1_14, C2_14, C3_14}, //D6 | ||
| 543 | {1, C1_15, C2_15, C3_15}, //D7 | ||
| 544 | {1, C1_16, C2_16, C3_16}, //D8 | ||
| 545 | {1, C9_9, C8_9, C7_9}, //D9 | ||
| 546 | {1, C9_10, C8_10, C7_10}, //D10 | ||
| 547 | {1, C9_11, C8_11, C7_11}, //D11 | ||
| 548 | {1, C9_12, C8_12, C7_12}, //D12 | ||
| 549 | {1, C9_13, C8_13, C7_13}, //D13 | ||
| 550 | {1, C9_14, C8_14, C7_14}, //D14 | ||
| 551 | {1, C9_15, C8_15, C6_14}, //D15 | ||
| 552 | {1, C9_16, C7_15, C6_15} //D16 | ||
| 553 | }; | ||
| 466 | #elif !defined(RGB_BACKLIGHT_M6_B) | 554 | #elif !defined(RGB_BACKLIGHT_M6_B) |
| 467 | // This is a 7-bit address, that gets left-shifted and bit 0 | 555 | // This is a 7-bit address, that gets left-shifted and bit 0 |
| 468 | // set to 0 for write, 1 for read (as per I2C protocol) | 556 | // set to 0 for write, 1 for read (as per I2C protocol) |
| @@ -805,6 +893,50 @@ const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = { | |||
| 805 | const Point g_map_led_to_point_polar[BACKLIGHT_LED_COUNT] PROGMEM = { | 893 | const Point g_map_led_to_point_polar[BACKLIGHT_LED_COUNT] PROGMEM = { |
| 806 | {160,255}, {96,255}, {77,255}, {179,255}, {51,255}, {205,255} | 894 | {160,255}, {96,255}, {77,255}, {179,255}, {51,255}, {205,255} |
| 807 | }; | 895 | }; |
| 896 | #elif defined(RGB_BACKLIGHT_DAWN60) | ||
| 897 | const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = { | ||
| 898 | // LA1..LA16 | ||
| 899 | {104, 16}, {88 , 16}, {72 , 16}, {56 , 16}, {40 , 16}, {24 , 16}, {4 , 16}, {6 , 32}, | ||
| 900 | {112, 0}, {96 , 0}, {80 , 0}, {64 , 0}, {48 , 0}, {32 , 0}, {16 , 0}, {0 , 0}, | ||
| 901 | |||
| 902 | // LB1..LB16 | ||
| 903 | {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, {224, 0}, {214, 32}, | ||
| 904 | {120, 16}, {136, 16}, {152, 16}, {168, 16}, {184, 16}, {200, 16}, {220, 16}, {224, 48}, | ||
| 905 | |||
| 906 | // LC1..LC16 | ||
| 907 | {100, 48}, {84 , 48}, {68 , 48}, {52 , 48}, {36 , 48}, {102, 64}, {42 , 64}, {22 , 64}, | ||
| 908 | {108, 32}, {92 , 32}, {76 , 32}, {60 , 32}, {44 , 32}, {28 , 32}, {10 , 48}, {2 , 64}, | ||
| 909 | |||
| 910 | // LD1..LD16 | ||
| 911 | {124, 32}, {140, 32}, {156, 32}, {172, 32}, {188, 32}, {180, 48}, {202, 48}, {224, 64}, | ||
| 912 | {116, 48}, {132, 48}, {148, 48}, {164, 48}, {160, 64}, {176, 64}, {192, 64}, {208, 64}, | ||
| 913 | |||
| 914 | //RGB UNDERGLOW | ||
| 915 | {27 , 3}, {64 , 3}, {100, 3}, {137, 3}, {173, 3}, {209, 3}, {242, 4}, {255, 8}, {255,32}, {255,64}, | ||
| 916 | {241,64}, {212,64}, {173,64}, {137,64}, {100,64}, {63 ,64}, {28 ,64}, {0 ,64}, {0 ,32}, {0 , 8}, //20 | ||
| 917 | }; | ||
| 918 | |||
| 919 | const Point g_map_led_to_point_polar[BACKLIGHT_LED_COUNT] PROGMEM = { | ||
| 920 | //LA1..LA16 | ||
| 921 | {70,129}, {80,139}, {89,157}, {96,181}, {101,208}, {105,238}, {109,255}, {128,247}, | ||
| 922 | {64,255}, {70,255}, {75,255}, {80,255}, {85,255}, {89,255}, {93,255}, {96,255}, | ||
| 923 | //LB1..LB16 | ||
| 924 | {58,255}, {53,255}, {48,255}, {43,255}, {39,255}, {34,255}, {32,255}, {255,233}, | ||
| 925 | {58,129}, {48,139}, {39,157}, {32,181}, {27,208}, {23,238}, {19,255}, {237,255}, | ||
| 926 | //LC1..LC16 | ||
| 927 | {183,131}, {173,143}, {165,163}, {159,188}, {154,216}, {188,255}, {170,255}, {165,255}, | ||
| 928 | {128,9}, {128,46}, {128,82}, {128,119}, {128,155}, {128,192}, {147,255}, {161,255}, | ||
| 929 | //LD1..LD16 | ||
| 930 | {0,27}, {0,64}, {0,101}, {0,137}, {0,174}, {228,201}, {235,255}, {224,255}, | ||
| 931 | {195,128}, {206,136}, {215,152}, {222,175}, {208,255}, {213,255}, {217, 255}, {222,225}, | ||
| 932 | |||
| 933 | //UNDERGLOW, {A,D} | ||
| 934 | //1 - 10 | ||
| 935 | {91,255}, {84,255}, {74,255}, {60,255}, {48,255}, {39,255}, {32,255}, {27,255}, {0,255}, {236,255}, | ||
| 936 | //11 - 20 | ||
| 937 | {234,255}, {222,255}, {213,255}, {197,255}, {180,255}, {167,255}, {152,255}, {147,255}, {128,255}, {101,255} | ||
| 938 | }; | ||
| 939 | |||
| 808 | #endif | 940 | #endif |
| 809 | 941 | ||
| 810 | // This may seem counter-intuitive, but it's quite flexible. | 942 | // This may seem counter-intuitive, but it's quite flexible. |
| @@ -824,10 +956,12 @@ void map_led_to_point( uint8_t index, Point *point ) | |||
| 824 | 956 | ||
| 825 | switch (index) | 957 | switch (index) |
| 826 | { | 958 | { |
| 959 | #if !defined(RGB_BACKLIGHT_DAWN60) | ||
| 827 | case 18+4: // LB4A | 960 | case 18+4: // LB4A |
| 828 | if ( g_config.use_split_backspace ) | 961 | if ( g_config.use_split_backspace ) |
| 829 | point->x -= 8; | 962 | point->x -= 8; |
| 830 | break; | 963 | break; |
| 964 | #endif | ||
| 831 | #if defined(RGB_BACKLIGHT_ZEAL60) | 965 | #if defined(RGB_BACKLIGHT_ZEAL60) |
| 832 | case 18+14: // LB14A | 966 | case 18+14: // LB14A |
| 833 | if ( g_config.use_iso_enter ) | 967 | if ( g_config.use_iso_enter ) |
| @@ -856,6 +990,28 @@ void map_led_to_point( uint8_t index, Point *point ) | |||
| 856 | point->x -= 8; | 990 | point->x -= 8; |
| 857 | break; | 991 | break; |
| 858 | #endif | 992 | #endif |
| 993 | #if defined(RGB_BACKLIGHT_DAWN60) | ||
| 994 | case 15+6: // LB6A | ||
| 995 | if ( !g_config.use_split_backspace ) | ||
| 996 | point->x += 8; | ||
| 997 | break; | ||
| 998 | case 31+6: // LC6A | ||
| 999 | if ( g_config.use_7u_spacebar ) | ||
| 1000 | point->x = 112; | ||
| 1001 | break; | ||
| 1002 | case 47+16: // LD16A | ||
| 1003 | if ( g_config.use_7u_spacebar ) | ||
| 1004 | point->x -= 8; | ||
| 1005 | break; | ||
| 1006 | case 47+6: // LD6A | ||
| 1007 | if ( g_config.use_split_right_shift ) | ||
| 1008 | point->x += 6; | ||
| 1009 | break; | ||
| 1010 | case 47+7: // LD7A | ||
| 1011 | if ( g_config.use_split_right_shift ) | ||
| 1012 | point->x += 6; | ||
| 1013 | break; | ||
| 1014 | #endif | ||
| 859 | } | 1015 | } |
| 860 | } | 1016 | } |
| 861 | 1017 | ||
| @@ -994,6 +1150,20 @@ const uint8_t g_map_row_column_to_led[MATRIX_ROWS][MATRIX_COLS] PROGMEM = { | |||
| 994 | const uint8_t g_map_row_column_to_led[MATRIX_ROWS][MATRIX_COLS] PROGMEM = { | 1150 | const uint8_t g_map_row_column_to_led[MATRIX_ROWS][MATRIX_COLS] PROGMEM = { |
| 995 | { 0, 3, 5, 1, 2, 4 } | 1151 | { 0, 3, 5, 1, 2, 4 } |
| 996 | }; | 1152 | }; |
| 1153 | #elif defined(RGB_BACKLIGHT_DAWN60) | ||
| 1154 | //Dawn60 | ||
| 1155 | // A16, A15, A14, A13, A12, A11, A10, A9, B1, B2, B3, B4, B5, B6, | ||
| 1156 | // A7, A6, A5, A4, A3, A2, A1, B9, B10, B11, B12, B13, B14, B15, | ||
| 1157 | // A8, C14, C13, C12, C11, C10, C9, D1, D2, D3, D4, D5, B8, B7, | ||
| 1158 | // C15, C5, C4, C3, C2, C1, D9, D10, D11, D12, ---, D6, D7, B16, | ||
| 1159 | // C16, C8, C7, ---, ---, C6, ---, ---, ---, D13, D14, D15, D16, D8, | ||
| 1160 | const uint8_t g_map_row_column_to_led[MATRIX_ROWS][MATRIX_COLS] PROGMEM = { | ||
| 1161 | { -1+16, -1+15, -1+14, -1+13, -1+12, -1+11, -1+10, -1+9 , 15+1 , 15+2 , 15+3 , 15+4 , 15+5 , 15+6 }, | ||
| 1162 | { -1+7 , -1+6 , -1+5 , -1+4 , -1+3 , -1+2 , -1 +1, 15+9 , 15+10, 15+11, 15+12, 15+13, 15+14, 15+15}, | ||
| 1163 | { -1+8 , 31+14, 31+13, 31+12, 31+11, 31+10, 31+9 , 47+1 , 47+2 , 47+3 , 47+4 , 47+5 , 15+8 , 15+7 }, | ||
| 1164 | { 31+15, 31+5 , 31+4 , 31+3 , 31+2 , 31+1 , 47+9 , 47+10, 47+11, 47+12, 255 ,47+6 , 47+7 , 15+16}, | ||
| 1165 | { 31+16, 31+8 , 31+7 , 255 , 255 , 31+6 , 255 , 255 , 255 , 47+13, 47+14, 47+15, 47+16, 47+8 } | ||
| 1166 | }; | ||
| 997 | #endif | 1167 | #endif |
| 998 | 1168 | ||
| 999 | void map_row_column_to_led( uint8_t row, uint8_t column, uint8_t *led ) | 1169 | void map_row_column_to_led( uint8_t row, uint8_t column, uint8_t *led ) |
| @@ -1049,6 +1219,15 @@ void backlight_set_color( int index, uint8_t red, uint8_t green, uint8_t blue ) | |||
| 1049 | IS31FL3218_set_color( index, red, green, blue ); | 1219 | IS31FL3218_set_color( index, red, green, blue ); |
| 1050 | #elif defined(RGB_BACKLIGHT_HS60) || defined(RGB_BACKLIGHT_NK65) | 1220 | #elif defined(RGB_BACKLIGHT_HS60) || defined(RGB_BACKLIGHT_NK65) |
| 1051 | IS31FL3733_set_color( index, red, green, blue ); | 1221 | IS31FL3733_set_color( index, red, green, blue ); |
| 1222 | #elif defined(RGB_BACKLIGHT_DAWN60) | ||
| 1223 | if( index < DRIVER_LED_TOTAL ) { | ||
| 1224 | IS31FL3731_set_color( index, red, green, blue ); | ||
| 1225 | } else { | ||
| 1226 | g_ws2812_leds[index - DRIVER_LED_TOTAL].r = red; | ||
| 1227 | g_ws2812_leds[index - DRIVER_LED_TOTAL].g = green; | ||
| 1228 | g_ws2812_leds[index - DRIVER_LED_TOTAL].b = blue; | ||
| 1229 | ws2812_setleds(g_ws2812_leds, WS2812_LED_TOTAL); | ||
| 1230 | } | ||
| 1052 | #else | 1231 | #else |
| 1053 | IS31FL3731_set_color( index, red, green, blue ); | 1232 | IS31FL3731_set_color( index, red, green, blue ); |
| 1054 | #endif | 1233 | #endif |
| @@ -1060,6 +1239,14 @@ void backlight_set_color_all( uint8_t red, uint8_t green, uint8_t blue ) | |||
| 1060 | IS31FL3218_set_color_all( red, green, blue ); | 1239 | IS31FL3218_set_color_all( red, green, blue ); |
| 1061 | #elif defined(RGB_BACKLIGHT_HS60) || defined(RGB_BACKLIGHT_NK65) | 1240 | #elif defined(RGB_BACKLIGHT_HS60) || defined(RGB_BACKLIGHT_NK65) |
| 1062 | IS31FL3733_set_color_all( red, green, blue ); | 1241 | IS31FL3733_set_color_all( red, green, blue ); |
| 1242 | #elif defined(RGB_BACKLIGHT_DAWN60) | ||
| 1243 | IS31FL3731_set_color_all( red, green, blue ); | ||
| 1244 | for (uint8_t i = 0; i < WS2812_LED_TOTAL; i++) { | ||
| 1245 | g_ws2812_leds[i].r = red; | ||
| 1246 | g_ws2812_leds[i].g = green; | ||
| 1247 | g_ws2812_leds[i].b = blue; | ||
| 1248 | } | ||
| 1249 | ws2812_setleds(g_ws2812_leds, WS2812_LED_TOTAL); | ||
| 1063 | #else | 1250 | #else |
| 1064 | IS31FL3731_set_color_all( red, green, blue ); | 1251 | IS31FL3731_set_color_all( red, green, blue ); |
| 1065 | #endif | 1252 | #endif |
| @@ -1266,6 +1453,16 @@ void backlight_effect_alphas_mods(void) | |||
| 1266 | } | 1453 | } |
| 1267 | } | 1454 | } |
| 1268 | } | 1455 | } |
| 1456 | #if defined(RGB_BACKLIGHT_DAWN60) | ||
| 1457 | for (int i = 0; i < WS2812_LED_TOTAL; i++) { | ||
| 1458 | if ((RGB_UNDERGLOW_ALPHA_TOP_START <= i && i <= RGB_UNDERGLOW_ALPHA_TOP_END) || | ||
| 1459 | (RGB_UNDERGLOW_ALPHA_BOT_START <= i && i <= RGB_UNDERGLOW_ALPHA_BOT_END)) { | ||
| 1460 | backlight_set_color(i + DRIVER_LED_TOTAL, rgb1.r, rgb1.g, rgb1.b); | ||
| 1461 | } else { | ||
| 1462 | backlight_set_color(i + DRIVER_LED_TOTAL, rgb2.r, rgb2.g, rgb2.b); | ||
| 1463 | } | ||
| 1464 | } | ||
| 1465 | #endif | ||
| 1269 | } | 1466 | } |
| 1270 | 1467 | ||
| 1271 | void backlight_effect_gradient_up_down(void) | 1468 | void backlight_effect_gradient_up_down(void) |
| @@ -1302,6 +1499,7 @@ void backlight_effect_gradient_up_down(void) | |||
| 1302 | hsv.h = g_config.color_1.h + ( deltaH * y ); | 1499 | hsv.h = g_config.color_1.h + ( deltaH * y ); |
| 1303 | hsv.s = g_config.color_1.s + ( deltaS * y ); | 1500 | hsv.s = g_config.color_1.s + ( deltaS * y ); |
| 1304 | rgb = hsv_to_rgb( hsv ); | 1501 | rgb = hsv_to_rgb( hsv ); |
| 1502 | |||
| 1305 | backlight_set_color( i, rgb.r, rgb.g, rgb.b ); | 1503 | backlight_set_color( i, rgb.r, rgb.g, rgb.b ); |
| 1306 | } | 1504 | } |
| 1307 | } | 1505 | } |
| @@ -1342,7 +1540,7 @@ void backlight_effect_raindrops(bool initialize) | |||
| 1342 | hsv.h = h1 + ( deltaH * ( rand() & 0x03 ) ); | 1540 | hsv.h = h1 + ( deltaH * ( rand() & 0x03 ) ); |
| 1343 | hsv.s = s1 + ( deltaS * ( rand() & 0x03 ) ); | 1541 | hsv.s = s1 + ( deltaS * ( rand() & 0x03 ) ); |
| 1344 | // Override brightness with global brightness control | 1542 | // Override brightness with global brightness control |
| 1345 | hsv.v = g_config.brightness;; | 1543 | hsv.v = g_config.brightness; |
| 1346 | 1544 | ||
| 1347 | rgb = hsv_to_rgb( hsv ); | 1545 | rgb = hsv_to_rgb( hsv ); |
| 1348 | backlight_set_color( i, rgb.r, rgb.g, rgb.b ); | 1546 | backlight_set_color( i, rgb.r, rgb.g, rgb.b ); |
| @@ -1358,7 +1556,7 @@ void backlight_effect_cycle_all(void) | |||
| 1358 | for ( int i=0; i<BACKLIGHT_LED_COUNT; i++ ) | 1556 | for ( int i=0; i<BACKLIGHT_LED_COUNT; i++ ) |
| 1359 | { | 1557 | { |
| 1360 | uint16_t offset2 = g_key_hit[i]<<2; | 1558 | uint16_t offset2 = g_key_hit[i]<<2; |
| 1361 | #if !defined(RGB_BACKLIGHT_HS60) && !defined(RGB_BACKLIGHT_NK65) | 1559 | #if !defined(RGB_BACKLIGHT_HS60) && !defined(RGB_BACKLIGHT_NK65) && !defined(RGB_BACKLIGHT_DAWN60) |
| 1362 | // stabilizer LEDs use spacebar hits | 1560 | // stabilizer LEDs use spacebar hits |
| 1363 | if ( i == 36+6 || i == 54+13 || // LC6, LD13 | 1561 | if ( i == 36+6 || i == 54+13 || // LC6, LD13 |
| 1364 | ( g_config.use_7u_spacebar && i == 54+14 ) ) // LD14 | 1562 | ( g_config.use_7u_spacebar && i == 54+14 ) ) // LD14 |
| @@ -1383,7 +1581,7 @@ void backlight_effect_cycle_left_right(void) | |||
| 1383 | for ( int i=0; i<BACKLIGHT_LED_COUNT; i++ ) | 1581 | for ( int i=0; i<BACKLIGHT_LED_COUNT; i++ ) |
| 1384 | { | 1582 | { |
| 1385 | uint16_t offset2 = g_key_hit[i]<<2; | 1583 | uint16_t offset2 = g_key_hit[i]<<2; |
| 1386 | #if !defined(RGB_BACKLIGHT_HS60) && !defined(RGB_BACKLIGHT_NK65) | 1584 | #if !defined(RGB_BACKLIGHT_HS60) && !defined(RGB_BACKLIGHT_NK65) && !defined(RGB_BACKLIGHT_DAWN60) |
| 1387 | // stabilizer LEDs use spacebar hits | 1585 | // stabilizer LEDs use spacebar hits |
| 1388 | if ( i == 36+6 || i == 54+13 || // LC6, LD13 | 1586 | if ( i == 36+6 || i == 54+13 || // LC6, LD13 |
| 1389 | ( g_config.use_7u_spacebar && i == 54+14 ) ) // LD14 | 1587 | ( g_config.use_7u_spacebar && i == 54+14 ) ) // LD14 |
| @@ -1410,7 +1608,7 @@ void backlight_effect_cycle_up_down(void) | |||
| 1410 | for ( int i=0; i<BACKLIGHT_LED_COUNT; i++ ) | 1608 | for ( int i=0; i<BACKLIGHT_LED_COUNT; i++ ) |
| 1411 | { | 1609 | { |
| 1412 | uint16_t offset2 = g_key_hit[i]<<2; | 1610 | uint16_t offset2 = g_key_hit[i]<<2; |
| 1413 | #if !defined(RGB_BACKLIGHT_HS60) && !defined(RGB_BACKLIGHT_NK65) | 1611 | #if !defined(RGB_BACKLIGHT_HS60) && !defined(RGB_BACKLIGHT_NK65) && !defined(RGB_BACKLIGHT_DAWN60) |
| 1414 | // stabilizer LEDs use spacebar hits | 1612 | // stabilizer LEDs use spacebar hits |
| 1415 | if ( i == 36+6 || i == 54+13 || // LC6, LD13 | 1613 | if ( i == 36+6 || i == 54+13 || // LC6, LD13 |
| 1416 | ( g_config.use_7u_spacebar && i == 54+14 ) ) // LD14 | 1614 | ( g_config.use_7u_spacebar && i == 54+14 ) ) // LD14 |
| @@ -2152,6 +2350,10 @@ void backlight_init_drivers(void) | |||
| 2152 | ( index == 54+13 ) || // LD13 | 2350 | ( index == 54+13 ) || // LD13 |
| 2153 | ( index >= 72+0 && index <= 72+8 ) || // LE0-LE8 | 2351 | ( index >= 72+0 && index <= 72+8 ) || // LE0-LE8 |
| 2154 | ( index == 90+13 ) ); // LF13 | 2352 | ( index == 90+13 ) ); // LF13 |
| 2353 | #elif defined(RGB_BACKLIGHT_DAWN60) | ||
| 2354 | bool enabled = !( ( index == 15+7 && !g_config.use_split_backspace ) || //other backspace | ||
| 2355 | ( index == 47+13 && g_config.use_7u_spacebar ) || //LD13 | ||
| 2356 | ( index == 47+15 && g_config.use_7u_spacebar ) ); //LD15 | ||
| 2155 | #endif | 2357 | #endif |
| 2156 | // This only caches it for later | 2358 | // This only caches it for later |
| 2157 | IS31FL3731_set_led_control_register( index, enabled, enabled, enabled ); | 2359 | IS31FL3731_set_led_control_register( index, enabled, enabled, enabled ); |
| @@ -2420,3 +2622,4 @@ void backlight_debug_led( bool state ) | |||
| 2420 | } | 2622 | } |
| 2421 | #endif // defined(RGB_DEBUGGING_ONLY) | 2623 | #endif // defined(RGB_DEBUGGING_ONLY) |
| 2422 | 2624 | ||
| 2625 | |||
diff --git a/keyboards/wilba_tech/wt_rgb_backlight.h b/keyboards/wilba_tech/wt_rgb_backlight.h index aa24e3491..648465886 100644 --- a/keyboards/wilba_tech/wt_rgb_backlight.h +++ b/keyboards/wilba_tech/wt_rgb_backlight.h | |||
| @@ -107,4 +107,3 @@ void backlight_color_2_sat_decrease(void); | |||
| 107 | 107 | ||
| 108 | void backlight_test_led( uint8_t index, bool red, bool green, bool blue ); | 108 | void backlight_test_led( uint8_t index, bool red, bool green, bool blue ); |
| 109 | void backlight_debug_led(bool state); | 109 | void backlight_debug_led(bool state); |
| 110 | |||
diff --git a/keyboards/xelus/dawn60/config.h b/keyboards/xelus/dawn60/config.h new file mode 100644 index 000000000..da709aa4a --- /dev/null +++ b/keyboards/xelus/dawn60/config.h | |||
| @@ -0,0 +1,145 @@ | |||
| 1 | /* Copyright 2017 Jason Williams (Wilba) | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #pragma once | ||
| 17 | |||
| 18 | #include "config_common.h" | ||
| 19 | |||
| 20 | // USB Device descriptor parameter | ||
| 21 | #define VENDOR_ID 0x5845 // XE | ||
| 22 | #define PRODUCT_ID 0x0060 // Dawn60 | ||
| 23 | #define DEVICE_VER 0x0001 | ||
| 24 | #define MANUFACTURER Xelus | ||
| 25 | #define PRODUCT Dawn60 | ||
| 26 | #define DESCRIPTION Dawn60 | ||
| 27 | |||
| 28 | // key matrix size | ||
| 29 | #define MATRIX_ROWS 5 | ||
| 30 | #define MATRIX_COLS 14 | ||
| 31 | |||
| 32 | //no underglow - prototype | ||
| 33 | //#define MATRIX_ROW_PINS { B1, B3, B7, F6, F7 } | ||
| 34 | //#define MATRIX_COL_PINS { B0, D5, B2, F5, D2, D3, D4, D6, D7, B4, B5, B6, C6, C7 } | ||
| 35 | //#define UNUSED_PINS | ||
| 36 | |||
| 37 | //underglow | ||
| 38 | #define MATRIX_ROW_PINS { B1, B3, F1, F6, F7 } | ||
| 39 | #define MATRIX_COL_PINS { B0, D5, B2, F5, D3, D2, C7, C6, B6, B5, B4, D7, D6, D4 } | ||
| 40 | #define UNUSED_PINS | ||
| 41 | |||
| 42 | // IS31FL3731 driver | ||
| 43 | #define DRIVER_COUNT 2 | ||
| 44 | #define DRIVER_LED_TOTAL 64 | ||
| 45 | |||
| 46 | // COL2ROW or ROW2COL | ||
| 47 | #define DIODE_DIRECTION COL2ROW | ||
| 48 | |||
| 49 | // Set 0 if debouncing isn't needed | ||
| 50 | #define DEBOUNCE 5 | ||
| 51 | |||
| 52 | // Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap | ||
| 53 | #define LOCKING_SUPPORT_ENABLE | ||
| 54 | // Locking resynchronize hack | ||
| 55 | #define LOCKING_RESYNC_ENABLE | ||
| 56 | |||
| 57 | /* | ||
| 58 | * Feature disable options | ||
| 59 | * These options are also useful to firmware size reduction. | ||
| 60 | */ | ||
| 61 | |||
| 62 | // disable debug print | ||
| 63 | //#define NO_DEBUG | ||
| 64 | |||
| 65 | // disable print | ||
| 66 | //#define NO_PRINT | ||
| 67 | |||
| 68 | // disable action features | ||
| 69 | //#define NO_ACTION_LAYER | ||
| 70 | //#define NO_ACTION_TAPPING | ||
| 71 | //#define NO_ACTION_ONESHOT | ||
| 72 | //#define NO_ACTION_MACRO | ||
| 73 | //#define NO_ACTION_FUNCTION | ||
| 74 | |||
| 75 | #define RGB_BACKLIGHT_ENABLED 1 | ||
| 76 | |||
| 77 | // This conditionally compiles the backlight code for Dawn60 specifics | ||
| 78 | #define RGB_BACKLIGHT_DAWN60 | ||
| 79 | |||
| 80 | // enable/disable LEDs based on layout | ||
| 81 | // switch between split backspace (1) or normal backspace(0) | ||
| 82 | #define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 1 | ||
| 83 | // switch between Tsangan (1) or Arrows Bottom Row (0) | ||
| 84 | #define RGB_BACKLIGHT_USE_7U_SPACEBAR 0 | ||
| 85 | // switch between standard split rshift (0) or arrows r shift (1) | ||
| 86 | // .------------------. .-------------------. | ||
| 87 | // | ? | Shift | Fn | vs | Shift | Up | Fn | | ||
| 88 | // `------------------' `-------------------' | ||
| 89 | #define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 1 | ||
| 90 | |||
| 91 | //not used | ||
| 92 | #define RGB_BACKLIGHT_USE_ISO_ENTER 0 | ||
| 93 | #define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0 | ||
| 94 | #define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0 | ||
| 95 | |||
| 96 | // disable backlight when USB suspended (PC sleep/hibernate/shutdown) | ||
| 97 | #define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0 | ||
| 98 | |||
| 99 | // disable backlight after timeout in minutes, 0 = no timeout | ||
| 100 | #define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 0 | ||
| 101 | |||
| 102 | // the default brightness | ||
| 103 | #define RGB_BACKLIGHT_BRIGHTNESS 255 | ||
| 104 | |||
| 105 | // the default effect (RGB test) | ||
| 106 | #define RGB_BACKLIGHT_EFFECT 255 | ||
| 107 | |||
| 108 | // the default effect speed (0-3) | ||
| 109 | #define RGB_BACKLIGHT_EFFECT_SPEED 0 | ||
| 110 | |||
| 111 | // the default color1 and color2 | ||
| 112 | #define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 } | ||
| 113 | #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } | ||
| 114 | |||
| 115 | //RGB Underglow defines | ||
| 116 | #define RGB_DI_PIN F0 | ||
| 117 | #define WS2812_LED_TOTAL 20 | ||
| 118 | |||
| 119 | #define RGB_UNDERGLOW_ALPHA_TOP_START 0 | ||
| 120 | #define RGB_UNDERGLOW_ALPHA_TOP_END 6 | ||
| 121 | #define RGB_UNDERGLOW_ALPHA_BOT_START 12 | ||
| 122 | #define RGB_UNDERGLOW_ALPHA_BOT_END 15 | ||
| 123 | |||
| 124 | // These define which keys in the matrix are alphas/mods | ||
| 125 | // Used for backlight effects so colors are different for | ||
| 126 | // alphas vs. mods | ||
| 127 | // Each value is for a row, bit 0 is column 0 | ||
| 128 | // Alpha=0 Mod=1 | ||
| 129 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0000000000000001 | ||
| 130 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0010000000000001 | ||
| 131 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0011000000000001 | ||
| 132 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0011000000000001 | ||
| 133 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0011111000011111 | ||
| 134 | |||
| 135 | #define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } | ||
| 136 | #define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } | ||
| 137 | #define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } | ||
| 138 | #define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } | ||
| 139 | |||
| 140 | //RGB reactive only on keypress (put 1 to enable) | ||
| 141 | #define RGB_REACTIVE_LEFT_RIGHT 0 | ||
| 142 | #define RGB_REACTIVE_CYCLE_ALL 0 | ||
| 143 | #define RGB_REACTIVE_VERTICAL 0 | ||
| 144 | |||
| 145 | #define DYNAMIC_KEYMAP_LAYER_COUNT 4 | ||
diff --git a/keyboards/xelus/dawn60/dawn60.c b/keyboards/xelus/dawn60/dawn60.c new file mode 100644 index 000000000..bce6eea9d --- /dev/null +++ b/keyboards/xelus/dawn60/dawn60.c | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | /* Copyright 2017 Jason Williams (Wilba) | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #ifndef RGB_BACKLIGHT_DAWN60 | ||
| 17 | #error RGB_BACKLIGHT_DAWN60 not defined, you done goofed somehao, brah | ||
| 18 | #endif | ||
diff --git a/keyboards/xelus/dawn60/dawn60.h b/keyboards/xelus/dawn60/dawn60.h new file mode 100644 index 000000000..b1de35a7e --- /dev/null +++ b/keyboards/xelus/dawn60/dawn60.h | |||
| @@ -0,0 +1,36 @@ | |||
| 1 | /* Copyright 2017 Jason Williams (Wilba) | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #pragma once | ||
| 17 | |||
| 18 | #include "quantum.h" | ||
| 19 | #include "keyboards/wilba_tech/wt_rgb_backlight_keycodes.h" | ||
| 20 | #include "via.h" | ||
| 21 | |||
| 22 | #define XXX KC_NO | ||
| 23 | |||
| 24 | #define LAYOUT_60_all( \ | ||
| 25 | K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ | ||
| 26 | K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ | ||
| 27 | K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ | ||
| 28 | K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3B, K3C, K3D, \ | ||
| 29 | K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \ | ||
| 30 | ) { \ | ||
| 31 | { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ | ||
| 32 | { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ | ||
| 33 | { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ | ||
| 34 | { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, XXX, K3B, K3C, K3D }, \ | ||
| 35 | { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D } \ | ||
| 36 | } | ||
diff --git a/keyboards/xelus/dawn60/keymaps/default/config.h b/keyboards/xelus/dawn60/keymaps/default/config.h new file mode 100644 index 000000000..8f4e8ac4c --- /dev/null +++ b/keyboards/xelus/dawn60/keymaps/default/config.h | |||
| @@ -0,0 +1,17 @@ | |||
| 1 | #pragma once | ||
| 2 | |||
| 3 | /* enable/disable LEDs based on layout */ | ||
| 4 | // switch between split backspace (1) or normal backspace(0) | ||
| 5 | #undef RGB_BACKLIGHT_USE_SPLIT_BACKSPACE | ||
| 6 | #define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 0 | ||
| 7 | |||
| 8 | // switch between Tsangan (1) or Arrows Bottom Row (0) | ||
| 9 | #undef RGB_BACKLIGHT_USE_7U_SPACEBAR | ||
| 10 | #define RGB_BACKLIGHT_USE_7U_SPACEBAR 0 | ||
| 11 | |||
| 12 | // switch between standard split rshift (0) or arrows r shift (1) | ||
| 13 | // .------------------. .-------------------. | ||
| 14 | // | ? | Shift | Fn | vs | Shift | Up | Fn | | ||
| 15 | // `------------------' `-------------------' | ||
| 16 | #undef RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT | ||
| 17 | #define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 0 | ||
diff --git a/keyboards/xelus/dawn60/keymaps/default/keymap.c b/keyboards/xelus/dawn60/keymaps/default/keymap.c new file mode 100644 index 000000000..522997342 --- /dev/null +++ b/keyboards/xelus/dawn60/keymaps/default/keymap.c | |||
| @@ -0,0 +1,46 @@ | |||
| 1 | // Default layout for Dawn60 | ||
| 2 | #include QMK_KEYBOARD_H | ||
| 3 | |||
| 4 | // RGB-specific keys: | ||
| 5 | // EF_INC, EF_DEC, // next/previous backlight effect | ||
| 6 | // H1_INC, H1_DEC, // Color 1 hue increase/decrease | ||
| 7 | // S1_INC, S1_DEC, // Color 1 saturation increase/decrease | ||
| 8 | // H2_INC, H2_DEC, // Color 2 hue increase/decrease | ||
| 9 | // S2_INC, S2_DEC, // Color 2 saturation increase/decrease | ||
| 10 | // BR_INC, BR_DEC, // backlight brightness increase/decrease | ||
| 11 | |||
| 12 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 13 | // Default layer: Pressing caps-lock momentarily switches to Layer 1. | ||
| 14 | // This is the default layer. Pressing an empty keycode on another layer will take you here. | ||
| 15 | [0] = LAYOUT_60_all( | ||
| 16 | KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL , KC_BSLS, | ||
| 17 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, | ||
| 18 | KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_DEL , | ||
| 19 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, MO(2), | ||
| 20 | KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT | ||
| 21 | ), | ||
| 22 | |||
| 23 | [1] = LAYOUT_60_all( | ||
| 24 | KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, | ||
| 25 | KC_CAPS, KC_TRNS, KC_UP , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, | ||
| 26 | KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, | ||
| 27 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_PGUP, KC_TRNS, | ||
| 28 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END | ||
| 29 | ), | ||
| 30 | |||
| 31 | [2] = LAYOUT_60_all( | ||
| 32 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 33 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 34 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 35 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 36 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS | ||
| 37 | ), | ||
| 38 | |||
| 39 | [3] = LAYOUT_60_all( | ||
| 40 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 41 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 42 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 43 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 44 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS | ||
| 45 | ) | ||
| 46 | }; | ||
diff --git a/keyboards/xelus/dawn60/keymaps/via/config.h b/keyboards/xelus/dawn60/keymaps/via/config.h new file mode 100644 index 000000000..45c7e511f --- /dev/null +++ b/keyboards/xelus/dawn60/keymaps/via/config.h | |||
| @@ -0,0 +1,17 @@ | |||
| 1 | #pragma once | ||
| 2 | |||
| 3 | /* enable/disable LEDs based on layout */ | ||
| 4 | // switch between split backspace (1) or normal backspace(0) | ||
| 5 | #undef RGB_BACKLIGHT_USE_SPLIT_BACKSPACE | ||
| 6 | #define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 1 | ||
| 7 | |||
| 8 | // switch between Tsangan (1) or Arrows Bottom Row (0) | ||
| 9 | #undef RGB_BACKLIGHT_USE_7U_SPACEBAR | ||
| 10 | #define RGB_BACKLIGHT_USE_7U_SPACEBAR 0 | ||
| 11 | |||
| 12 | // switch between standard split rshift (0) or arrows r shift (1) | ||
| 13 | // .------------------. .-------------------. | ||
| 14 | // | ? | Shift | Fn | vs | Shift | Up | Fn | | ||
| 15 | // `------------------' `-------------------' | ||
| 16 | #undef RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT | ||
| 17 | #define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 0 | ||
diff --git a/keyboards/xelus/dawn60/keymaps/via/keymap.c b/keyboards/xelus/dawn60/keymaps/via/keymap.c new file mode 100644 index 000000000..522997342 --- /dev/null +++ b/keyboards/xelus/dawn60/keymaps/via/keymap.c | |||
| @@ -0,0 +1,46 @@ | |||
| 1 | // Default layout for Dawn60 | ||
| 2 | #include QMK_KEYBOARD_H | ||
| 3 | |||
| 4 | // RGB-specific keys: | ||
| 5 | // EF_INC, EF_DEC, // next/previous backlight effect | ||
| 6 | // H1_INC, H1_DEC, // Color 1 hue increase/decrease | ||
| 7 | // S1_INC, S1_DEC, // Color 1 saturation increase/decrease | ||
| 8 | // H2_INC, H2_DEC, // Color 2 hue increase/decrease | ||
| 9 | // S2_INC, S2_DEC, // Color 2 saturation increase/decrease | ||
| 10 | // BR_INC, BR_DEC, // backlight brightness increase/decrease | ||
| 11 | |||
| 12 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 13 | // Default layer: Pressing caps-lock momentarily switches to Layer 1. | ||
| 14 | // This is the default layer. Pressing an empty keycode on another layer will take you here. | ||
| 15 | [0] = LAYOUT_60_all( | ||
| 16 | KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL , KC_BSLS, | ||
| 17 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, | ||
| 18 | KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_DEL , | ||
| 19 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, MO(2), | ||
| 20 | KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT | ||
| 21 | ), | ||
| 22 | |||
| 23 | [1] = LAYOUT_60_all( | ||
| 24 | KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, | ||
| 25 | KC_CAPS, KC_TRNS, KC_UP , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, | ||
| 26 | KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, | ||
| 27 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_PGUP, KC_TRNS, | ||
| 28 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END | ||
| 29 | ), | ||
| 30 | |||
| 31 | [2] = LAYOUT_60_all( | ||
| 32 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 33 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 34 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 35 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 36 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS | ||
| 37 | ), | ||
| 38 | |||
| 39 | [3] = LAYOUT_60_all( | ||
| 40 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 41 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 42 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 43 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 44 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS | ||
| 45 | ) | ||
| 46 | }; | ||
diff --git a/keyboards/xelus/dawn60/keymaps/via/rules.mk b/keyboards/xelus/dawn60/keymaps/via/rules.mk new file mode 100644 index 000000000..1e5b99807 --- /dev/null +++ b/keyboards/xelus/dawn60/keymaps/via/rules.mk | |||
| @@ -0,0 +1 @@ | |||
| VIA_ENABLE = yes | |||
diff --git a/keyboards/xelus/dawn60/readme.md b/keyboards/xelus/dawn60/readme.md new file mode 100644 index 000000000..3409bac1e --- /dev/null +++ b/keyboards/xelus/dawn60/readme.md | |||
| @@ -0,0 +1,13 @@ | |||
| 1 | # Dawn60 | ||
| 2 | |||
| 3 | An in-switch RGB LED keyboard with RGB underglow. | ||
| 4 | |||
| 5 | * Keyboard Maintainer: [Xelus22](https://github.com/Xelus22) | ||
| 6 | * Hardware Supported: Dawn60 | ||
| 7 | * Hardware Availability: [Keyboard Treehouse](https://keyboardtreehouse.com) | ||
| 8 | |||
| 9 | Make example for this keyboard (after setting up your build environment): | ||
| 10 | |||
| 11 | make xelus/dawn60:default | ||
| 12 | |||
| 13 | See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file | ||
diff --git a/keyboards/xelus/dawn60/rules.mk b/keyboards/xelus/dawn60/rules.mk new file mode 100644 index 000000000..3ac5f9977 --- /dev/null +++ b/keyboards/xelus/dawn60/rules.mk | |||
| @@ -0,0 +1,49 @@ | |||
| 1 | # MCU name | ||
| 2 | MCU = atmega32u4 | ||
| 3 | |||
| 4 | # Bootloader selection | ||
| 5 | # Teensy halfkay | ||
| 6 | # Pro Micro caterina | ||
| 7 | # Atmel DFU atmel-dfu | ||
| 8 | # LUFA DFU lufa-dfu | ||
| 9 | # QMK DFU qmk-dfu | ||
| 10 | # ATmega32A bootloadHID | ||
| 11 | # ATmega328P USBasp | ||
| 12 | BOOTLOADER = atmel-dfu | ||
| 13 | |||
| 14 | # Do not put the microcontroller into power saving mode | ||
| 15 | # when we get USB suspend event. We want it to keep updating | ||
| 16 | # backlight effects. | ||
| 17 | OPT_DEFS += -DNO_SUSPEND_POWER_DOWN | ||
| 18 | |||
| 19 | # Build Options | ||
| 20 | # change yes to no to disable | ||
| 21 | # | ||
| 22 | BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration | ||
| 23 | MOUSEKEY_ENABLE = no # Mouse keys | ||
| 24 | EXTRAKEY_ENABLE = yes # Audio control and System control | ||
| 25 | CONSOLE_ENABLE = no # Console for debug | ||
| 26 | COMMAND_ENABLE = no # Commands for debug and configuration | ||
| 27 | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | ||
| 28 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | ||
| 29 | # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||
| 30 | NKRO_ENABLE = yes # USB Nkey Rollover | ||
| 31 | BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default | ||
| 32 | MIDI_ENABLE = no # MIDI support | ||
| 33 | UNICODE_ENABLE = no # Unicode | ||
| 34 | BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | ||
| 35 | AUDIO_ENABLE = no # Audio output on port C6 | ||
| 36 | FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches | ||
| 37 | RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. - We have custom RGB underglow | ||
| 38 | |||
| 39 | CIE1931_CURVE = yes | ||
| 40 | |||
| 41 | |||
| 42 | # project specific files | ||
| 43 | SRC += keyboards/wilba_tech/wt_main.c \ | ||
| 44 | keyboards/wilba_tech/wt_rgb_backlight.c \ | ||
| 45 | quantum/color.c \ | ||
| 46 | drivers/issi/is31fl3731.c \ | ||
| 47 | ws2812.c | ||
| 48 | |||
| 49 | QUANTUM_LIB_SRC += i2c_master.c | ||
