mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-12-27 19:49:01 +06:00
947e61eaeb
* [Keyboard] Change Corne RGB Matrix split handling This uses the "is_master" detection to set the led matrix, rather than a define at compile time. This means that the same hex can be used for both halves, not just one or the other. The caveat is that this costs ~240 bytes to do. However, I feel that this is a good trade-off, not just lazy. * Update documentation for RGB Matrix on the Corne
110 lines
4.0 KiB
C
110 lines
4.0 KiB
C
#include "crkbd.h"
|
|
|
|
#ifdef RGB_MATRIX_ENABLE
|
|
|
|
// Logical Layout
|
|
// Columns
|
|
// Left
|
|
// 0 1 2 3 4 5
|
|
// ROWS
|
|
// 25 24 19 18 11 10 0
|
|
// 03 02 01
|
|
// 26 23 20 17 12 09 1
|
|
// 04 05 06
|
|
// 27 22 21 16 13 08 2
|
|
//
|
|
// 15 14 07 3
|
|
//
|
|
// Right
|
|
// 0 1 2 3 4 5
|
|
// ROWS
|
|
// 25 24 19 18 11 10 4
|
|
// 03 02 01
|
|
// 26 23 20 17 12 09 5
|
|
// 04 05 06
|
|
// 27 22 21 16 13 08 6
|
|
//
|
|
// 15 14 07 7
|
|
//
|
|
// Physical Layout
|
|
// Columns
|
|
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13
|
|
// ROWS
|
|
// 25 24 19 18 11 10 10 11 18 19 24 25 0
|
|
// 03 02 01 01 02 03
|
|
// 26 23 20 17 12 09 09 12 17 20 23 26 1
|
|
// 04 04
|
|
// 27 22 21 16 13 08 08 13 16 21 22 27 2
|
|
// 05 06 06 05
|
|
// 15 14 07 07 14 15 3
|
|
|
|
led_config_t g_led_config = { {
|
|
{ 24, 23, 18, 17, 10, 9 },
|
|
{ 25, 22, 19, 16, 11, 8 },
|
|
{ 26, 21, 20, 15, 12, 7 },
|
|
{ NO_LED, NO_LED, NO_LED, 14, 13, 6 },
|
|
{ 51, 50, 45, 44, 37, 36 },
|
|
{ 52, 49, 46, 43, 38, 35 },
|
|
{ 53, 48, 47, 42, 39, 34 },
|
|
{ NO_LED, NO_LED, NO_LED, 41, 40, 33 }
|
|
}, {
|
|
{ 85, 16 }, { 50, 13 }, { 16, 20 }, { 16, 38 }, { 50, 48 }, { 85, 52 }, { 95, 63 },
|
|
{ 85, 39 }, { 85, 21 }, { 85, 4 }, { 68, 2 }, { 68, 19 }, { 68, 37 }, { 80, 58 },
|
|
{ 60, 55 }, { 50, 35 }, { 50, 13 }, { 50, 0 }, { 33, 3 }, { 33, 20 }, { 33, 37 },
|
|
{ 16, 42 }, { 16, 24 }, { 16, 7 }, { 0, 7 }, { 0, 24 }, { 0, 41 }, { 139, 16 },
|
|
{ 174, 13 }, { 208, 20 }, { 208, 38 }, { 174, 48 }, { 139, 52 }, { 129, 63 }, { 139, 39 },
|
|
{ 139, 21 }, { 139, 4 }, { 156, 2 }, { 156, 19 }, { 156, 37 }, { 144, 58 }, { 164, 55 },
|
|
{ 174, 35 }, { 174, 13 }, { 174, 0 }, { 191, 3 }, { 191, 20 }, { 191, 37 }, { 208, 42 },
|
|
{ 208, 24 }, { 208, 7 }, { 224, 7 }, { 224, 24 }, { 224, 41 }
|
|
}, {
|
|
2, 2, 2, 2, 2, 2, 1,
|
|
4, 4, 4, 4, 4, 4, 1,
|
|
1, 4, 4, 4, 4, 4, 4,
|
|
4, 4, 4, 1, 1, 1, 2,
|
|
2, 2, 2, 2, 2, 1, 4,
|
|
4, 4, 4, 4, 4, 1, 1,
|
|
4, 4, 4, 4, 4, 4, 4,
|
|
4, 4, 1, 1, 1
|
|
} };
|
|
#endif
|
|
|
|
__attribute__((weak))
|
|
void matrix_init_user(void) {}
|
|
|
|
void matrix_init_kb(void) {
|
|
|
|
#ifdef RGB_MATRIX_ENABLE
|
|
if (!isLeftHand) {
|
|
g_led_config = (led_config_t){ {
|
|
{ 51, 50, 45, 44, 37, 36 },
|
|
{ 52, 49, 46, 43, 38, 35 },
|
|
{ 53, 48, 47, 42, 39, 34 },
|
|
{ NO_LED, NO_LED, NO_LED, 41, 40, 33 },
|
|
{ 24, 23, 18, 17, 10, 9 },
|
|
{ 25, 22, 19, 16, 11, 8 },
|
|
{ 26, 21, 20, 15, 12, 7 },
|
|
{ NO_LED, NO_LED, NO_LED, 14, 13, 6 }
|
|
}, {
|
|
{ 139, 16 }, { 174, 13 }, { 208, 20 }, { 208, 38 }, { 174, 48 }, { 139, 52 }, { 129, 63 },
|
|
{ 139, 39 }, { 139, 21 }, { 139, 4 }, { 156, 2 }, { 156, 19 }, { 156, 37 }, { 144, 58 },
|
|
{ 164, 55 }, { 174, 35 }, { 174, 13 }, { 174, 0 }, { 191, 3 }, { 191, 20 }, { 191, 37 },
|
|
{ 208, 42 }, { 208, 24 }, { 208, 7 }, { 224, 7 }, { 224, 24 }, { 224, 41 }, { 85, 16 },
|
|
{ 50, 13 }, { 16, 20 }, { 16, 38 }, { 50, 48 }, { 85, 52 }, { 95, 63 }, { 85, 39 },
|
|
{ 85, 21 }, { 85, 4 }, { 68, 2 }, { 68, 19 }, { 68, 37 }, { 80, 58 }, { 60, 55 },
|
|
{ 50, 35 }, { 50, 13 }, { 50, 0 }, { 33, 3 }, { 33, 20 }, { 33, 37 }, { 16, 42 },
|
|
{ 16, 24 }, { 16, 7 }, { 0, 7 }, { 0, 24 }, { 0, 41 }
|
|
}, {
|
|
2, 2, 2, 2, 2, 2, 1,
|
|
4, 4, 4, 4, 4, 4, 1,
|
|
1, 4, 4, 4, 4, 4, 4,
|
|
4, 4, 4, 1, 1, 1, 2,
|
|
2, 2, 2, 2, 2, 1, 4,
|
|
4, 4, 4, 4, 4, 1, 1,
|
|
4, 4, 4, 4, 4, 4, 4,
|
|
4, 4, 1, 1, 1
|
|
} };
|
|
}
|
|
#endif
|
|
matrix_init_user();
|
|
}
|