Get Clueboard 66% hotswap working with led_matrix

clueboard_66hs_arm
skullY 5 years ago
parent 746e4593d2
commit 9e15cabe8c

@ -120,7 +120,7 @@
/* Backlight configuration
*/
#define BACKLIGHT_LEVELS 1
#define BACKLIGHT_LEVELS 10
// This is a 7-bit address, that gets left-shifted and bit 0
// set to 0 for write, 1 for read (as per I2C protocol)
@ -129,10 +129,10 @@
// 0b1110111 AD <-> VCC
// 0b1110101 AD <-> SCL
// 0b1110110 AD <-> SDA
#define DRIVER_ADDR_1 0b1110100
#define DRIVER_ADDR_2 0b1110110 // Not actually used...
#define LED_DRIVER_ADDR_1 0b1110100
#define I2C1_BANK GPIOB
#define I2C1_SCL 8
#define I2C1_SDA 9
#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 71
#define DRIVER_2_LED_TOTAL 0
#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL
#define LED_DRIVER_COUNT 1
#define LED_DRIVER_LED_COUNT 71

@ -14,6 +14,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "gen1.h"
#include "is31fl3731-simple.h"
void matrix_init_kb(void) {
}
@ -21,88 +22,86 @@ void matrix_init_kb(void) {
void matrix_scan_kb(void) {
}
#ifdef RGB_MATRIX_ENABLE
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
#ifdef LED_MATRIX_ENABLE
const is31_led g_is31_leds[LED_DRIVER_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
* | | G location
* | | | B location
* | | | | */
{0, C1_1, C1_1, C1_1}, // k00 KC_GESC
{0, C1_2, C1_2, C1_2}, // k01 KC_1
{0, C1_3, C1_3, C1_3}, // k02 KC_2
{0, C1_4, C1_4, C1_4}, // k03 KC_3
{0, C1_5, C1_5, C1_5}, // k04 KC_4
{0, C1_6, C1_6, C1_6}, // k05 KC_5
{0, C1_7, C1_7, C1_7}, // k06 KC_6
{0, C1_8, C1_8, C1_8}, // k07 KC_7
{0, C1_9, C1_9, C1_9}, // k50 KC_8
{0, C1_10, C1_10, C1_10}, // k51 KC_9
{0, C1_11, C1_11, C1_11}, // k52 KC_0
{0, C1_12, C1_12, C1_12}, // k53 KC_MINS
{0, C1_13, C1_13, C1_13}, // k54 KC_EQL
{0, C1_14, C1_14, C1_14}, // k55 KC_BSPC
{0, C1_15, C1_15, C1_15}, // k57 KC_PGUP
{0, C2_1, C2_1, C2_1}, // k10 KC_TAB
{0, C2_2, C2_2, C2_2}, // k11 KC_Q
{0, C2_3, C2_3, C2_3}, // k12 KC_W
{0, C2_4, C2_4, C2_4}, // k13 KC_E
{0, C2_5, C2_5, C2_5}, // k14 KC_R
{0, C2_6, C2_6, C2_6}, // k15 KC_T
{0, C2_7, C2_7, C2_7}, // k16 KC_Y
{0, C2_8, C2_8, C2_8}, // k17 KC_U
{0, C2_9, C2_9, C2_9}, // k60 KC_I
{0, C2_10, C2_10, C2_10}, // k61 KC_O
{0, C2_11, C2_11, C2_11}, // k62 KC_P
{0, C2_12, C2_12, C2_12}, // k63 KC_LBRC
{0, C2_13, C2_13, C2_13}, // k64 KC_RBRC
{0, C2_14, C2_14, C2_14}, // k65 KC_BSLS
{0, C2_15, C2_15, C2_15}, // k67 KC_PGDN
{0, C3_1, C3_1, C3_1}, // k20 KC_CAPS
{0, C3_2, C3_2, C3_2}, // k21 KC_A
{0, C3_3, C3_3, C3_3}, // k22 KC_S
{0, C3_4, C3_4, C3_4}, // k23 KC_D
{0, C3_5, C3_5, C3_5}, // k24 KC_F
{0, C3_6, C3_6, C3_6}, // k25 KC_G
{0, C3_7, C3_7, C3_7}, // k26 KC_H
{0, C3_8, C3_8, C3_8}, // k27 KC_J
{0, C3_9, C3_9, C3_9}, // k70 KC_K
{0, C3_10, C3_10, C3_10}, // k71 KC_L
{0, C3_11, C3_11, C3_11}, // k72 KC_SCLN
{0, C3_12, C3_12, C3_12}, // k73 KC_QUOT
{0, C3_14, C3_14, C3_14}, // k75 KC_ENT
{0, C4_1, C4_1, C4_1}, // k30 KC_LSFT
{0, C4_3, C4_3, C4_3}, // k32 KC_Z
{0, C4_4, C4_4, C4_4}, // k33 KC_X
{0, C4_5, C4_5, C4_5}, // k34 KC_C
{0, C4_6, C4_6, C4_6}, // k35 KC_V
{0, C4_7, C4_7, C4_7}, // k36 KC_B
{0, C4_8, C4_8, C4_8}, // k37 KC_N
{0, C4_9, C4_9, C4_9}, // k80 KC_M
{0, C4_10, C4_10, C4_10}, // k81 KC_COMM
{0, C4_11, C4_11, C4_11}, // k82 KC_DOT
{0, C4_12, C4_12, C4_12}, // k83 KC_SLSH
{0, C4_13, C4_13, C4_13}, // k85 KC_RSFT
{0, C4_14, C4_14, C4_14}, // k86 KC_UP
{0, C5_1, C5_1, C5_1}, // k40 KC_LCTL
{0, C5_2, C5_2, C5_2}, // k41 KC_LGUI
{0, C5_3, C5_3, C5_3}, // k42 KC_LALT
{0, C5_4, C5_4, C5_4}, // Unassociated between LALT and SPACE_2.75
{0, C5_5, C5_5, C5_5}, // k45 KC_SPC SPACE_2.75
{0, C5_6, C5_6, C5_6}, // k45 KC_SPC SPACE_6.75
{0, C5_7, C5_7, C5_7}, // k46 KC_SPC SPACE_2.25
{0, C5_8, C5_8, C5_8}, // Unassociated between SPACE_2.25 and SPACE_1.25
{0, C5_9, C5_9, C5_9}, // k90 KC_RGUI
{0, C5_10, C5_10, C5_10}, // k92 KC_RALT
{0, C5_11, C5_11, C5_11}, // k93 MO(_FL)
{0, C5_12, C5_12, C5_12}, // k94 KC_RCTL
{0, C5_13, C5_13, C5_13}, // k95 KC_LEFT
{0, C5_14, C5_14, C5_14}, // k96 KC_DOWN
{0, C5_15, C5_15, C5_15} // k97 KC_RGHT
* | LED address
* | | */
{0, C1_1}, // k00 KC_GESC
{0, C1_2}, // k01 KC_1
{0, C1_3}, // k02 KC_2
{0, C1_4}, // k03 KC_3
{0, C1_5}, // k04 KC_4
{0, C1_6}, // k05 KC_5
{0, C1_7}, // k06 KC_6
{0, C1_8}, // k07 KC_7
{0, C1_9}, // k50 KC_8
{0, C1_10}, // k51 KC_9
{0, C1_11}, // k52 KC_0
{0, C1_12}, // k53 KC_MINS
{0, C1_13}, // k54 KC_EQL
{0, C1_14}, // k55 KC_BSPC
{0, C1_15}, // k57 KC_PGUP
{0, C2_1}, // k10 KC_TAB
{0, C2_2}, // k11 KC_Q
{0, C2_3}, // k12 KC_W
{0, C2_4}, // k13 KC_E
{0, C2_5}, // k14 KC_R
{0, C2_6}, // k15 KC_T
{0, C2_7}, // k16 KC_Y
{0, C2_8}, // k17 KC_U
{0, C2_9}, // k60 KC_I
{0, C2_10}, // k61 KC_O
{0, C2_11}, // k62 KC_P
{0, C2_12}, // k63 KC_LBRC
{0, C2_13}, // k64 KC_RBRC
{0, C2_14}, // k65 KC_BSLS
{0, C2_15}, // k67 KC_PGDN
{0, C3_1}, // k20 KC_CAPS
{0, C3_2}, // k21 KC_A
{0, C3_3}, // k22 KC_S
{0, C3_4}, // k23 KC_D
{0, C3_5}, // k24 KC_F
{0, C3_6}, // k25 KC_G
{0, C3_7}, // k26 KC_H
{0, C3_8}, // k27 KC_J
{0, C3_9}, // k70 KC_K
{0, C3_10}, // k71 KC_L
{0, C3_11}, // k72 KC_SCLN
{0, C3_12}, // k73 KC_QUOT
{0, C3_14}, // k75 KC_ENT
{0, C4_1}, // k30 KC_LSFT
{0, C4_3}, // k32 KC_Z
{0, C4_4}, // k33 KC_X
{0, C4_5}, // k34 KC_C
{0, C4_6}, // k35 KC_V
{0, C4_7}, // k36 KC_B
{0, C4_8}, // k37 KC_N
{0, C4_9}, // k80 KC_M
{0, C4_10}, // k81 KC_COMM
{0, C4_11}, // k82 KC_DOT
{0, C4_12}, // k83 KC_SLSH
{0, C4_13}, // k85 KC_RSFT
{0, C4_14}, // k86 KC_UP
{0, C5_1}, // k40 KC_LCTL
{0, C5_2}, // k41 KC_LGUI
{0, C5_3}, // k42 KC_LALT
{0, C5_4}, // Unassociated between LALT and SPACE_2.75
{0, C5_5}, // k45 KC_SPC SPACE_2.75
{0, C5_6}, // k45 KC_SPC SPACE_6.75
{0, C5_7}, // k46 KC_SPC SPACE_2.25
{0, C5_8}, // Unassociated between SPACE_2.25 and SPACE_1.25
{0, C5_9}, // k90 KC_RGUI
{0, C5_10}, // k92 KC_RALT
{0, C5_11}, // k93 MO(_FL)
{0, C5_12}, // k94 KC_RCTL
{0, C5_13}, // k95 KC_LEFT
{0, C5_14}, // k96 KC_DOWN
{0, C5_15} // k97 KC_RGHT
};
const rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
const led_matrix g_leds[LED_DRIVER_LED_COUNT] = {
/*{row | col << 4}
| LED_ROW_COL(row, col)

@ -54,7 +54,7 @@
k00, k01, k02, k03, k04, k05, k06, k07, k50, k51, k52, k53, k54, k55, k57, \
k10, k11, k12, k13, k14, k15, k16, k17, k60, k61, k62, k63, k64, k65, k67, \
k20, k21, k22, k23, k24, k25, k26, k27, k70, k71, k72, k73, k75, \
k30, k31, k32, k33, k34, k35, k36, k37, k80, k81, k82, k83, k84, k85, k86, \
k30, k32, k33, k34, k35, k36, k37, k80, k81, k82, k83, k85, k86, \
k40, k41, k42, k45, k46, k90, k92, k93, k94, k95, k96, k97 \
) { \
{ k00, k01, k02, k03, k04, k05, k06, k07 }, \

@ -19,15 +19,3 @@
#include "backlight.h"
#include "led.h"
#include "printf.h"
void backlight_init_ports(void) {
printf("backlight_init_ports()\n");
}
void backlight_set(uint8_t level) {
printf("backlight_set(%d)\n", level);
}
void led_set_kb(uint8_t usb_led) {
printf("led_set_kb(%d)\n", usb_led);
}

@ -39,12 +39,12 @@ OPT_DEFS =
DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave
# LED Configuration
RGB_MATRIX_ENABLE = IS31FL3731
LED_MATRIX_ENABLE = IS31FL3731
# Build Options
# comment out to disable the options.
#
BACKLIGHT_ENABLE = no
BACKLIGHT_ENABLE = yes
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.)
MOUSEKEY_ENABLE = yes # Mouse keys

@ -52,70 +52,72 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap _CL: Control layer
*/
[_CL] = LAYOUT(
BL_STEP,RGB_M_P,RGB_M_B,RGB_M_R,RGB_M_SW,RGB_M_SN,RGB_M_K,RGB_M_X,RGB_M_G,_______,_______,_______,_______, RGB_TOG, RGB_VAI, \
_______,_______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, RGB_VAD, \
BL_STEP,S_ONEUP,S_SCALE,RGB_M_R,RGB_M_SW,RGB_M_SN,RGB_M_K,RGB_M_X,RGB_M_G,_______,_______,_______,_______, BL_TOGG, BL_INC, \
_______,_______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, BL_DEC, \
_______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, RGB_SAI, \
_______,_______,_______, RGB_MOD,RGB_MOD, _______,_______,MO(_FL),_______,RGB_HUD,RGB_SAD,RGB_HUI),
_______,_______,_______, BL_BRTG,BL_BRTG, _______,_______,MO(_FL),_______,RGB_HUD,RGB_SAD,RGB_HUI),
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case S_BSKTC:
if (record->event.pressed) {
stop_all_notes();
PLAY_SONG(song_basketcase);
}
return false;
case S_ODEJY:
if (record->event.pressed) {
stop_all_notes();
PLAY_SONG(song_ode_to_joy);
}
return false;
case S_RCKBY:
if (record->event.pressed) {
stop_all_notes();
PLAY_SONG(song_rock_a_bye_baby);
}
return false;
case S_DOEDR:
if (record->event.pressed) {
stop_all_notes();
PLAY_SONG(song_doe_a_deer);
}
return false;
case S_SCALE:
if (record->event.pressed) {
stop_all_notes();
PLAY_SONG(song_scale);
}
return false;
case S_ONEUP:
if (record->event.pressed) {
stop_all_notes();
PLAY_SONG(song_one_up);
}
return false;
case S_COIN:
if (record->event.pressed) {
stop_all_notes();
PLAY_SONG(song_coin);
}
return false;
case S_SONIC:
if (record->event.pressed) {
stop_all_notes();
PLAY_SONG(song_sonic_ring);
}
return false;
case S_ZELDA:
if (record->event.pressed) {
stop_all_notes();
PLAY_SONG(song_zelda_puzzle);
}
return false;
#ifdef AUDIO_ENABLE
case S_BSKTC:
if (record->event.pressed) {
stop_all_notes();
PLAY_SONG(song_basketcase);
}
return false;
case S_ODEJY:
if (record->event.pressed) {
stop_all_notes();
PLAY_SONG(song_ode_to_joy);
}
return false;
case S_RCKBY:
if (record->event.pressed) {
stop_all_notes();
PLAY_SONG(song_rock_a_bye_baby);
}
return false;
case S_DOEDR:
if (record->event.pressed) {
stop_all_notes();
PLAY_SONG(song_doe_a_deer);
}
return false;
case S_SCALE:
if (record->event.pressed) {
stop_all_notes();
PLAY_SONG(song_scale);
}
return false;
case S_ONEUP:
if (record->event.pressed) {
stop_all_notes();
PLAY_SONG(song_one_up);
}
return false;
case S_COIN:
if (record->event.pressed) {
stop_all_notes();
PLAY_SONG(song_coin);
}
return false;
case S_SONIC:
if (record->event.pressed) {
stop_all_notes();
PLAY_SONG(song_sonic_ring);
}
return false;
case S_ZELDA:
if (record->event.pressed) {
stop_all_notes();
PLAY_SONG(song_zelda_puzzle);
}
return false;
#endif
}
return true;
}

Loading…
Cancel
Save