Browse Source

Get Clueboard 66% hotswap working with led_matrix

skullY 7 years ago
parent
commit
9e15cabe8c

+ 7 - 7
keyboards/clueboard/66_hotswap/gen1/config.h

@@ -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

+ 77 - 78
keyboards/clueboard/66_hotswap/gen1/gen1.c

@@ -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)

+ 1 - 1
keyboards/clueboard/66_hotswap/gen1/gen1.h

@@ -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 }, \

+ 0 - 12
keyboards/clueboard/66_hotswap/gen1/led.c

@@ -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);
-}

+ 2 - 2
keyboards/clueboard/66_hotswap/gen1/rules.mk

@@ -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

+ 59 - 57
keyboards/clueboard/66_hotswap/keymaps/default/keymap.c

@@ -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;
 }