]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/crkbd/rev1/rev1.c
[Keyboard] Crkbd RGB Matrix config with WS2812 (#5627)
[qmk_firmware.git] / keyboards / crkbd / rev1 / rev1.c
1 #include "crkbd.h"
2
3
4 #ifdef AUDIO_ENABLE
5     float tone_startup[][2] = SONG(STARTUP_SOUND);
6     float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
7 #endif
8
9 #ifdef SSD1306OLED
10 void led_set_kb(uint8_t usb_led) {
11     // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
12     //led_set_user(usb_led);
13 }
14 #endif
15
16 #ifdef RGB_MATRIX_ENABLE
17
18   // Logical Layout
19   // Columns
20   // Left
21   // 0  1  2  3  4  5
22   //                   ROWS
23   // 25 24 19 18 11 10   0
24   //    03    02    01
25   // 26 23 20 17 12 09   1
26   //    04    05    06
27   // 27 22 21 16 13 08   2
28   //
29   //          15 14 07   3
30   //
31   // Right
32   // 0  1  2  3  4  5
33   //                    ROWS
34   // 25 24 19 18 11 10   4
35   //    03    02    01
36   // 26 23 20 17 12 09   5
37   //    04    05    06
38   // 27 22 21 16 13 08   6
39   //
40   //          15 14 07   7
41   //
42   // Physical Layout
43   // Columns
44   // 0  1  2  3  4  5  6  7  8  9  10 11 12 13
45   //                                           ROWS
46   // 25 24 19 18 11 10       10 11 18 19 24 25  0
47   //    03    02    01       01    02    03
48   // 26 23 20 17 12 09       09 12 17 20 23 26  1
49   //    04                               04
50   // 27 22 21 16 13 08       08 13 16 21 22 27  2
51   //          05    06       06    05
52   //           15 14 07     07 14 15              3
53
54 /* {row | col << 4} logical layout rows/cols
55  *      |                    {x=0..224,     y=0..64} physical layout
56  *      |                            |           |     modifier
57  *      |                            |           |   */
58   const rgb_led g_rgb_leds_left[27] = {
59     //LEFT
60     { { 0xFF           }, {  85, 16 }, 0 }, // 1
61     { { 0xFF           }, {  50, 13 }, 0 }, // 2
62     { { 0xFF           }, {  16, 20 }, 0 }, // 3
63     { { 0xFF           }, {  16, 38 }, 0 }, // 4
64     { { 0xFF           }, {  50, 48 }, 0 }, // 5
65     { { 0xFF           }, {  85, 52 }, 0 }, // 6
66
67     { { 3 | ( 5 << 4 ) }, {  95, 63 }, 1 }, // 7
68     { { 2 | ( 5 << 4 ) }, {  85, 39 }, 0 }, // 8
69     { { 1 | ( 5 << 4 ) }, {  85, 21 }, 0 }, // 9
70     { { 0 | ( 5 << 4 ) }, {  85,  4 }, 0 }, //10
71     { { 0 | ( 4 << 4 ) }, {  68, 02 }, 0 }, //11
72     { { 1 | ( 4 << 4 ) }, {  68, 19 }, 0 }, //12
73     { { 2 | ( 4 << 4 ) }, {  68, 37 }, 0 }, //13
74     { { 3 | ( 4 << 4 ) }, {  80, 58 }, 1 }, //14
75     { { 3 | ( 3 << 4 ) }, {  60, 55 }, 1 }, //15
76     { { 2 | ( 3 << 4 ) }, {  50, 35 }, 0 }, //16
77     { { 1 | ( 3 << 4 ) }, {  50, 13 }, 0 }, //17
78     { { 0 | ( 3 << 4 ) }, {  50,  0 }, 0 }, //18
79     { { 0 | ( 2 << 4 ) }, {  33,  3 }, 0 }, //19
80     { { 1 | ( 2 << 4 ) }, {  33, 20 }, 0 }, //20
81     { { 2 | ( 2 << 4 ) }, {  33, 37 }, 0 }, //21
82     { { 2 | ( 1 << 4 ) }, {  16, 42 }, 0 }, //22
83     { { 1 | ( 1 << 4 ) }, {  16, 24 }, 0 }, //23
84     { { 0 | ( 1 << 4 ) }, {  16,  7 }, 0 }, //24
85     { { 0 | ( 0 << 4 ) }, {   0,  7 }, 1 }, //25
86     { { 1 | ( 0 << 4 ) }, {   0, 24 }, 1 }, //26
87     { { 2 | ( 0 << 4 ) }, {   0, 41 }, 1 }, //27
88   };
89   const rgb_led g_rgb_leds_right[27] = {
90     //RIGHT
91     { { 0xFF           }, { 139, 16 }, 0 }, // 1
92     { { 0xFF           }, { 174, 13 }, 0 }, // 2
93     { { 0xFF           }, { 208, 20 }, 0 }, // 3
94     { { 0xFF           }, { 208, 38 }, 0 }, // 4
95     { { 0xFF           }, { 174, 48 }, 0 }, // 5
96     { { 0xFF           }, { 139, 52 }, 0 }, // 6
97
98     { { 7 | ( 5 << 4 ) }, { 129, 63 }, 1 }, // 7
99     { { 6 | ( 5 << 4 ) }, { 139, 39 }, 0 }, // 8
100     { { 5 | ( 5 << 4 ) }, { 139, 21 }, 0 }, // 9
101     { { 4 | ( 5 << 4 ) }, { 139,  4 }, 0 }, //10
102     { { 4 | ( 4 << 4 ) }, { 156, 02 }, 0 }, //11
103     { { 5 | ( 4 << 4 ) }, { 156, 19 }, 0 }, //12
104     { { 6 | ( 4 << 4 ) }, { 156, 37 }, 0 }, //13
105     { { 7 | ( 4 << 4 ) }, { 144, 58 }, 1 }, //14
106     { { 7 | ( 3 << 4 ) }, { 164, 55 }, 1 }, //15
107     { { 6 | ( 3 << 4 ) }, { 174, 35 }, 0 }, //16
108     { { 5 | ( 3 << 4 ) }, { 174, 13 }, 0 }, //17
109     { { 4 | ( 3 << 4 ) }, { 174,  0 }, 0 }, //18
110     { { 4 | ( 2 << 4 ) }, { 191,  3 }, 0 }, //19
111     { { 5 | ( 2 << 4 ) }, { 191, 20 }, 0 }, //20
112     { { 6 | ( 2 << 4 ) }, { 191, 37 }, 0 }, //21
113     { { 6 | ( 1 << 4 ) }, { 208, 42 }, 0 }, //22
114     { { 5 | ( 1 << 4 ) }, { 208, 24 }, 0 }, //23
115     { { 4 | ( 1 << 4 ) }, { 208,  7 }, 0 }, //24
116     { { 4 | ( 0 << 4 ) }, { 224,  7 }, 1 }, //25
117     { { 5 | ( 0 << 4 ) }, { 224, 24 }, 1 }, //26
118     { { 6 | ( 0 << 4 ) }, { 224, 41 }, 1 }, //27
119
120   };
121
122   const rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
123
124     //LEFT
125     { { 0xFF           }, {  85, 16 }, 0 }, // 1
126     { { 0xFF           }, {  50, 13 }, 0 }, // 2
127     { { 0xFF           }, {  16, 20 }, 0 }, // 3
128     { { 0xFF           }, {  16, 38 }, 0 }, // 4
129     { { 0xFF           }, {  50, 48 }, 0 }, // 5
130     { { 0xFF           }, {  85, 52 }, 0 }, // 6
131
132     { { 3 | ( 5 << 4 ) }, {  95, 63 }, 1 }, // 7
133     { { 2 | ( 5 << 4 ) }, {  85, 39 }, 0 }, // 8
134     { { 1 | ( 5 << 4 ) }, {  85, 21 }, 0 }, // 9
135     { { 0 | ( 5 << 4 ) }, {  85,  4 }, 0 }, //10
136     { { 0 | ( 4 << 4 ) }, {  68, 02 }, 0 }, //11
137     { { 1 | ( 4 << 4 ) }, {  68, 19 }, 0 }, //12
138     { { 2 | ( 4 << 4 ) }, {  68, 37 }, 0 }, //13
139     { { 3 | ( 4 << 4 ) }, {  80, 58 }, 1 }, //14
140     { { 3 | ( 3 << 4 ) }, {  60, 55 }, 1 }, //15
141     { { 2 | ( 3 << 4 ) }, {  50, 35 }, 0 }, //16
142     { { 1 | ( 3 << 4 ) }, {  50, 13 }, 0 }, //17
143     { { 0 | ( 3 << 4 ) }, {  50,  0 }, 0 }, //18
144     { { 0 | ( 2 << 4 ) }, {  33,  3 }, 0 }, //19
145     { { 1 | ( 2 << 4 ) }, {  33, 20 }, 0 }, //20
146     { { 2 | ( 2 << 4 ) }, {  33, 37 }, 0 }, //21
147     { { 2 | ( 1 << 4 ) }, {  16, 42 }, 0 }, //22
148     { { 1 | ( 1 << 4 ) }, {  16, 24 }, 0 }, //23
149     { { 0 | ( 1 << 4 ) }, {  16,  7 }, 0 }, //24
150     { { 0 | ( 0 << 4 ) }, {   0,  7 }, 1 }, //25
151     { { 1 | ( 0 << 4 ) }, {   0, 24 }, 1 }, //26
152     { { 2 | ( 0 << 4 ) }, {   0, 41 }, 1 }, //27
153
154     //RIGHT
155     { { 0xFF           }, { 139, 16 }, 0 }, // 1
156     { { 0xFF           }, { 174, 13 }, 0 }, // 2
157     { { 0xFF           }, { 208, 20 }, 0 }, // 3
158     { { 0xFF           }, { 208, 38 }, 0 }, // 4
159     { { 0xFF           }, { 174, 48 }, 0 }, // 5
160     { { 0xFF           }, { 139, 52 }, 0 }, // 6
161
162     { { 7 | ( 5 << 4 ) }, { 129, 63 }, 1 }, // 7
163     { { 6 | ( 5 << 4 ) }, { 139, 39 }, 0 }, // 8
164     { { 5 | ( 5 << 4 ) }, { 139, 21 }, 0 }, // 9
165     { { 4 | ( 5 << 4 ) }, { 139,  4 }, 0 }, //10
166     { { 4 | ( 4 << 4 ) }, { 156, 02 }, 0 }, //11
167     { { 5 | ( 4 << 4 ) }, { 156, 19 }, 0 }, //12
168     { { 6 | ( 4 << 4 ) }, { 156, 37 }, 0 }, //13
169     { { 7 | ( 4 << 4 ) }, { 144, 58 }, 1 }, //14
170     { { 7 | ( 3 << 4 ) }, { 164, 55 }, 1 }, //15
171     { { 6 | ( 3 << 4 ) }, { 174, 35 }, 0 }, //16
172     { { 5 | ( 3 << 4 ) }, { 174, 13 }, 0 }, //17
173     { { 4 | ( 3 << 4 ) }, { 174,  0 }, 0 }, //18
174     { { 4 | ( 2 << 4 ) }, { 191,  3 }, 0 }, //19
175     { { 5 | ( 2 << 4 ) }, { 191, 20 }, 0 }, //20
176     { { 6 | ( 2 << 4 ) }, { 191, 37 }, 0 }, //21
177     { { 6 | ( 1 << 4 ) }, { 208, 42 }, 0 }, //22
178     { { 5 | ( 1 << 4 ) }, { 208, 24 }, 0 }, //23
179     { { 4 | ( 1 << 4 ) }, { 208,  7 }, 0 }, //24
180     { { 4 | ( 0 << 4 ) }, { 224,  7 }, 1 }, //25
181     { { 5 | ( 0 << 4 ) }, { 224, 24 }, 1 }, //26
182     { { 6 | ( 0 << 4 ) }, { 224, 41 }, 1 }, //27
183
184   };
185
186 #endif
187 void matrix_init_kb(void) {
188
189     #ifdef AUDIO_ENABLE
190         _delay_ms(20); // gets rid of tick
191         PLAY_SONG(tone_startup);
192     #endif
193
194         matrix_init_user();
195 };
196
197 void shutdown_kb(void) {
198     #ifdef AUDIO_ENABLE
199         PLAY_SONG(tone_goodbye);
200         _delay_ms(150);
201         stop_all_notes();
202     #endif
203 }