Browse Source

HS60 ANSI keymap (#3010)

* Added Modular keyboards L,R and NUM

Created code modules for the 3 modules of the modular keyboard.
Original idea by MechboardsUK. Uses i2c implementation similar to lets
split

* Remove modular from master

This is to fix incorrect branching

* HS60 ANSI update

* HS60 ANSI update
yiancar 7 years ago
parent
commit
068b80383f

+ 159 - 1
keyboards/hs60/hs60.c

@@ -90,6 +90,162 @@ void raw_hid_receive( uint8_t *data, uint8_t length )
 
 
 #endif*/
 #endif*/
 
 
+#ifdef HS60_ANSI
+
+const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
+/* Refer to IS31 manual for these locations
+ *   driver
+ *   |  R location
+ *   |  |      G location
+ *   |  |      |      B location
+ *   |  |      |      | */
+    {0, C1_1,   C3_2,   C4_2}, //A1
+    {0, C1_2,   C2_2,   C4_3}, //A2
+    {0, C1_3,   C2_3,   C3_3}, //A3
+    {0, C1_4,   C2_4,   C3_4}, //A4
+    {0, C1_5,   C2_5,   C3_5}, //A5
+    {0, C1_6,   C2_6,   C3_6}, //A6
+    {0, C1_7,   C2_7,   C3_7}, //A7
+    {0, C1_8,   C2_8,   C3_8}, //A8
+    {0, C9_1,   C8_1,   C7_1}, //A9
+    {0, C9_2,   C8_2,   C7_2}, //A10
+    {0, C9_3,   C8_3,   C7_3}, //A11
+    {0, C9_4,   C8_4,   C7_4}, //A12
+    {0, C9_5,   C8_5,   C7_5}, //A13
+    {0, C9_6,   C8_6,   C7_6}, //A14
+    {0, C9_7,   C8_7,   C6_6}, //A15
+    {0, C9_8,   C7_7,   C6_7}, //A16
+
+    {0, C1_9,   C3_10,  C4_10}, //B1
+    {0, C1_10,  C2_10,  C4_11}, //B2
+    {0, C1_11,  C2_11,  C3_11}, //B3
+    {0, C1_12,  C2_12,  C3_12}, //B4
+    {0, C1_13,  C2_13,  C3_13}, //B5
+    {0, C1_14,  C2_14,  C3_14}, //B6
+    {0, C1_15,  C2_15,  C3_15}, //B7
+    {0, C1_16,  C2_16,  C3_16}, //B8
+    {0, C9_9,   C8_9,   C7_9},  //B9
+    {0, C9_10,  C8_10,  C7_10}, //B10
+    {0, C9_11,  C8_11,  C7_11}, //B11
+    {0, C9_12,  C8_12,  C7_12}, //B12
+    {0, C9_13,  C8_13,  C7_13}, //B13
+    {0, C9_14,  C8_14,  C7_14}, //B14
+
+    {1, C1_1,   C3_2,   C4_2}, //C1
+    {1, C1_2,   C2_2,   C4_3}, //C2
+    {1, C1_3,   C2_3,   C3_3}, //C3
+    {1, C1_4,   C2_4,   C3_4}, //C4
+    {1, C1_5,   C2_5,   C3_5}, //C5
+    {1, C1_6,   C2_6,   C3_6}, //C6
+    {1, C1_7,   C2_7,   C3_7}, //C7
+    {1, C1_8,   C2_8,   C3_8}, //C8
+    {1, C9_1,   C8_1,   C7_1}, //C9
+    {1, C9_2,   C8_2,   C7_2}, //C10
+    {1, C9_3,   C8_3,   C7_3}, //C11
+    {1, C9_4,   C8_4,   C7_4}, //C12
+    {1, C9_5,   C8_5,   C7_5}, //C13
+    {1, C9_6,   C8_6,   C7_6}, //C14
+    {1, C9_7,   C8_7,   C6_6}, //C15
+    {1, C9_8,   C7_7,   C6_7}, //C16
+
+    {1, C1_9,   C3_10,  C4_10}, //D1
+    //D2
+    {1, C1_11,  C2_11,  C3_11}, //D3
+    {1, C1_12,  C2_12,  C3_12}, //D4
+    {1, C1_13,  C2_13,  C3_13}, //D5
+    {1, C1_14,  C2_14,  C3_14}, //D6
+    {1, C1_15,  C2_15,  C3_15}, //D7
+    {1, C1_16,  C2_16,  C3_16}, //D8
+    {1, C9_9,   C8_9,   C7_9},  //D9
+    {1, C9_10,  C8_10,  C7_10}, //D10
+    {1, C9_11,  C8_11,  C7_11}, //D11
+    {1, C9_12,  C8_12,  C7_12}, //D12
+    {1, C9_13,  C8_13,  C7_13}, //D13
+    {1, C9_14,  C8_14,  C7_14}, //D14
+    {1, C9_15,  C8_15,  C6_14}, //D15
+    {1, C9_16,  C7_15,  C6_15}  //D16
+};
+
+const rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
+//
+//  C7,  C6,  C5,  C4,  C3,  C2,  C1,  A7,  A6,  A5,  A4,  A3,  A2,  A1,
+//  C8,  C9, C10, C11, C12, C13, C14,  A8,  A9, A10, A11, A12, A13, A15,
+//  D4,  D5,  D6,  D7,  D8, C16, C15,  B5,  B6,  B7,  B8, A16, ---, A14,
+//  D3, ---,  D1,  D9, D10, D11, D12,  B4,  B3,  B2,  B1,  B9, ---, B10,
+// D16, D15, D14, ---, ---, ---, D13, ---, ---, ---, B14, B13, B12, B11
+/* {row | col << 4}
+ *    |           {x=0..224, y=0..64}
+ *    |              |            modifier
+ *    |              |         | */
+    {{0|(13<<4)},   {224,  0}, 1}, //A1-A16
+    {{0|(12<<4)},   {204,  0}, 0},
+    {{0|(11<<4)},   {187,  0}, 0},
+    {{0|(10<<4)},   {170,  0}, 0},
+    {{0|(9<<4)},    {153,  0}, 0},
+    {{0|(8<<4)},    {136,  0}, 0},
+    {{0|(7<<4)},    {119,  0}, 0},
+    {{1|(7<<4)},    {119, 16}, 0},
+    {{1|(8<<4)},    {136, 16}, 0},
+    {{1|(9<<4)},    {153, 16}, 0},
+    {{1|(10<<4)},   {170, 16}, 0},
+    {{1|(11<<4)},   {187, 16}, 0},
+    {{1|(12<<4)},   {204, 16}, 0},
+    {{2|(13<<4)},   {224, 32}, 1},
+    {{2|(12<<4)},   {224, 16}, 0},
+    {{2|(11<<4)},   {197, 32}, 0},
+
+    {{3|(10<<4)},   {170, 48}, 0}, //B1-B14
+    {{3|(9<<4)},    {153, 48}, 0},
+    {{3|(8<<4)},    {136, 48}, 0},
+    {{3|(7<<4)},    {119, 48}, 0},
+    {{2|(7<<4)},    {119, 32}, 0},
+    {{2|(8<<4)},    {136, 32}, 0},
+    {{2|(9<<4)},    {153, 32}, 0},
+    {{2|(10<<4)},   {170, 32}, 0},
+    {{3|(11<<4)},   {187, 48}, 0},
+    {{3|(13<<4)},   {214, 48}, 1},
+    {{4|(13<<4)},   {224, 64}, 1},
+    {{4|(12<<4)},   {204, 64}, 1},
+    {{4|(11<<4)},   {187, 64}, 1},
+    {{4|(10<<4)},   {170, 64}, 1},
+
+    {{0|(6<<4)},    {102,  0}, 0}, //C1-C16
+    {{0|(5<<4)},    { 85,  0}, 0},
+    {{0|(4<<4)},    { 68,  0}, 0},
+    {{0|(3<<4)},    { 51,  0}, 0},
+    {{0|(2<<4)},    { 34,  0}, 0},
+    {{0|(1<<4)},    { 17,  0}, 0},
+    {{0|(0<<4)},    {  0,  0}, 1},
+    {{1|(0<<4)},    {  0, 16}, 1},
+    {{1|(1<<4)},    { 17, 16}, 0},
+    {{1|(2<<4)},    { 34, 16}, 0},
+    {{1|(3<<4)},    { 51, 16}, 0},
+    {{1|(4<<4)},    { 68, 16}, 0},
+    {{1|(5<<4)},    { 85, 16}, 0},
+    {{1|(6<<4)},    {102, 16}, 0},
+    {{2|(6<<4)},    {102, 32}, 0},
+    {{2|(5<<4)},    { 85, 32}, 0},
+
+    {{3|(2<<4)},    { 32, 48}, 0}, //D1-D16
+    //D2
+    {{3|(0<<4)},    { 10, 48}, 1},
+    {{2|(0<<4)},    {  0, 32}, 1},
+    {{2|(1<<4)},    { 17, 32}, 0},
+    {{2|(2<<4)},    { 34, 32}, 0},
+    {{2|(3<<4)},    { 51, 32}, 0},
+    {{2|(4<<4)},    { 68, 32}, 0},
+    {{3|(3<<4)},    { 51, 48}, 0},
+    {{3|(4<<4)},    { 68, 48}, 0},
+    {{3|(5<<4)},    { 85, 48}, 0},
+    {{3|(6<<4)},    {102, 48}, 0},
+    {{4|(3<<4)},    {102, 64}, 0},
+    {{4|(2<<4)},    { 34, 68}, 1},
+    {{4|(1<<4)},    { 17, 68}, 1},
+    {{4|(0<<4)},    {  0, 68}, 1}
+};
+
+#else
+
 const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
 const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
 /* Refer to IS31 manual for these locations
 /* Refer to IS31 manual for these locations
  *   driver
  *   driver
@@ -242,6 +398,8 @@ const rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
     {{4|(0<<4)},    {  0, 68}, 1}
     {{4|(0<<4)},    {  0, 68}, 1}
 };
 };
 
 
+#endif
+
 void bootmagic_lite(void)
 void bootmagic_lite(void)
 {
 {
 	// The lite version of TMK's bootmagic made by Wilba.
 	// The lite version of TMK's bootmagic made by Wilba.
@@ -335,4 +493,4 @@ void suspend_power_down_kb(void)
 void suspend_wakeup_init_kb(void)
 void suspend_wakeup_init_kb(void)
 {
 {
     rgb_matrix_set_suspend_state(false);
     rgb_matrix_set_suspend_state(false);
-}
+}

+ 4 - 5
keyboards/hs60/hs60.h

@@ -38,16 +38,15 @@
 
 
 #define LAYOUT_60_ansi( \
 #define LAYOUT_60_ansi( \
     K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
     K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
-    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
+    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, \
     K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,      K2D, \
     K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,      K2D, \
     K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B,      K3D, \
     K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B,      K3D, \
     K40, K41, K42,                K46,                K4A, K4B, K4C, K4D  \
     K40, K41, K42,                K46,                K4A, K4B, K4C, K4D  \
 ) { \
 ) { \
     { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
     { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
-    { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
-    { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D }, \
+    { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX }, \
+    { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
     { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D }, \
     { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D }, \
     { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D }  \
     { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D }  \
 }
 }
-
-#endif
+#endif

+ 26 - 0
keyboards/hs60/keymaps/ANSI/config.h

@@ -0,0 +1,26 @@
+/*
+Copyright 2018 Yiancar
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+/* Include overwrites for specific keymap */
+
+#define HS60_ANSI
+
+#endif

+ 46 - 0
keyboards/hs60/keymaps/ANSI/keymap.c

@@ -0,0 +1,46 @@
+/* Copyright 2018 Yiancar
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+//This is the ANSI version of the PCB
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = LAYOUT_60_ansi( /* Base */
+    KC_GESC,  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_BSPC,\
+    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_BSLS,\
+    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_LSFT,            KC_Z,     KC_X,  KC_C,  KC_V,  KC_B,    KC_N,  KC_M,  KC_COMM,  KC_DOT,   KC_SLSH,           KC_RSFT,\
+    KC_LCTL,  KC_LGUI,  KC_LALT,                       KC_SPC,                          KC_RALT,  MO(1)  ,  KC_APP,  KC_RCTL),
+
+[1] = LAYOUT_60_ansi( /* FN */
+    KC_TRNS,  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_DEL ,\
+    KC_TRNS,  KC_TRNS,  KC_UP,    KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  RESET  ,  KC_TRNS,\
+    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_TRNS,            RGB_TOG,  RGB_MOD,  RGB_HUI,  RGB_HUD,  RGB_SAI,  RGB_SAD,  RGB_VAI,  RGB_VAD,  RGB_SPI,  RGB_SPD,            KC_TRNS,\
+    KC_VOLU,  KC_VOLD,  KC_MUTE,                                KC_TRNS,                                KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS),
+};
+
+void matrix_init_user(void) {
+  //user initialization
+}
+
+void matrix_scan_user(void) {
+  //user matrix
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+  return true;
+}

+ 6 - 0
keyboards/hs60/keymaps/ANSI/readme.md

@@ -0,0 +1,6 @@
+The default keymap for ANSI HS60
+================================
+
+![Layout image](https://imgur.com/CSyPw0J.png)
+
+Default layer is normal ANSI and Fn layer is used for RGB functions, Volume control and arrow cluster

+ 1 - 1
keyboards/hs60/keymaps/default/keymap.c

@@ -43,4 +43,4 @@ void matrix_scan_user(void) {
 
 
 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
   return true;
   return true;
-}
+}

+ 1 - 1
keyboards/hs60/keymaps/default/readme.md

@@ -1,6 +1,6 @@
 The default keymap for ISO HS60
 The default keymap for ISO HS60
 ===============================
 ===============================
 
 
-![Layout image](https://i.imgur.com/Kua44z2.png)
+![Layout image](https://imgur.com/HXj4tYL.png)
 
 
 Default layer is normal ISO and Fn layer is used for RGB functions, Volume control and arrow cluster
 Default layer is normal ISO and Fn layer is used for RGB functions, Volume control and arrow cluster