From 17a3dbc1591b6cdd96076b94a9d3648c19f7e2ab Mon Sep 17 00:00:00 2001 From: Olivier Date: Sun, 3 Jul 2016 14:38:03 +0200 Subject: Integrate mouse keys into function layer, delete mouse layer. --- keyboards/ergodox_ez/keymaps/bepo/keymap.c | 64 ++++++------------------------ 1 file changed, 13 insertions(+), 51 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/bepo/keymap.c b/keyboards/ergodox_ez/keymaps/bepo/keymap.c index 921a94d63..5c127ab78 100644 --- a/keyboards/ergodox_ez/keymaps/bepo/keymap.c +++ b/keyboards/ergodox_ez/keymaps/bepo/keymap.c @@ -9,7 +9,6 @@ #define AQWER 3 // alted qwerty compat layer #define FNAV 4 // function / navigation keys #define NUM 5 // numeric keypad keys -#define MSE 6 // mouse keys #define KP_00 0 #define CA_Fx 1 @@ -26,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------| * | E_CIRC |A_GRAV| Y | X | . | K | | | | ' | Q | G | H | F | C_CEDIL| * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' - * |QWERTY| |LSuper| LCtrl| LAlt| |Escape| L_Mse| | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| + * |QWERTY| |LSuper| LCtrl| LAlt| |Escape| | | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' * | | | L_Num| | CA_Fx| | | * | Space|LShift|------| |------|RShift|Enter | @@ -40,7 +39,7 @@ BP_PERCENT, BP_B, BP_E_ACUTE, BP_P, BP_O, BP_E_GRAVE, KC_BSPC, BP_W, BP_A, BP_U, BP_I, BP_E, BP_COMMA, BP_ECRC, BP_A_GRAVE, BP_Y, BP_X, BP_DOT, BP_K, KC_TAB, TG(QWER), KC_NO, KC_LGUI, KC_LCTL, KC_LALT, - KC_ESC, MO(MSE), + KC_ESC, KC_NO, MO(NUM), KC_SPC, KC_LSHIFT, MO(FNAV), // Right hand @@ -63,7 +62,7 @@ MO(FNAV), KC_RSHIFT, KC_ENTER), * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------| * | e | a | y | x | . | k | | | | ' | q | g | h | f | c | * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' - * | BEPO | |LSuper| LCtrl| LAlt| |Escape| L_Mse| | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| + * | BEPO | |LSuper| LCtrl| LAlt| |Escape| | | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' * | | | L_Num| | | | | * | Space|LShift|------| |------|RShift|Enter | @@ -77,7 +76,7 @@ KC_PERCENT, KC_B, KC_E, KC_P, KC_O, KC_E, KC_BSPC, KC_W, KC_A, KC_U, KC_I, KC_E, KC_COMMA, KC_E, KC_A, KC_Y, KC_X, KC_DOT, KC_K, KC_TAB, KC_TRNS, KC_NO, KC_LGUI, KC_LCTL, KC_LALT, - KC_ESC, MO(MSE), + KC_ESC, KC_NO, MO(NUM), KC_SPC, MO(SQWER), MO(FNAV), // Right hand @@ -100,7 +99,7 @@ MO(FNAV), MO(SQWER), KC_ENTER), * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------| * | E | A | Y | X | : | K | | | | ? | Q | G | H | F | C | * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' - * | BEPO | |LSuper| LCtrl| LAlt| |Escape| L_Mse| | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| + * | BEPO | |LSuper| LCtrl| LAlt| |Escape| | | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' * | | | L_Num| | | | | * | Space|LShift|------| |------|RShift|Enter | @@ -114,7 +113,7 @@ KC_GRV, S(KC_B), S(KC_E), S(KC_P), S(KC_O), S(KC_E), KC_TRNS, S(KC_W), S(KC_A), S(KC_U), S(KC_I), S(KC_E), KC_SCOLON, S(KC_E), S(KC_A), S(KC_Y), S(KC_X), KC_COLON, S(KC_K), S(KC_TAB), KC_TRNS, KC_TRNS, S(KC_LGUI), S(KC_LCTL), S(KC_LALT), - KC_TRNS, KC_TRNS, + KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, // Right hand @@ -137,7 +136,7 @@ KC_TRNS, KC_TRNS, KC_TRNS), * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------| * | e | \ | { | } | . | ~ | | | | ' | q | g | h | f | c | * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' - * | BEPO | |LSuper| LCtrl| LAlt| |Escape| L_Mse| | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| + * | BEPO | |LSuper| LCtrl| LAlt| |Escape| | | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' * | | | L_Num| | | | | * | _ |LShift|------| |------|RShift|Enter | @@ -151,7 +150,7 @@ KC_PERCENT, KC_PIPE, KC_E, KC_AMPR, KC_O, KC_E, KC_BSPC, KC_W, KC_A, KC_U, KC_I, RALT(KC_5), KC_COMMA, KC_E, KC_BSLASH, KC_LCBR, KC_RCBR, KC_DOT, KC_TILDE, KC_TAB, KC_TRNS, KC_NO, KC_LGUI, KC_LCTL, KC_LALT, - KC_ESC, MO(MSE), + KC_ESC, KC_NO, MO(NUM), KC_UNDS, MO(SQWER), MO(FNAV), // Right hand @@ -168,9 +167,9 @@ MO(FNAV), MO(SQWER), KC_ENTER), * ,--------------------------------------------------. ,--------------------------------------------------. * | | F1 | F2 | F3 | F4 | F5 |VolMut| | | F6 | F7 | F8 | F9 | F10 | | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | |VolDwn| | | PgUp | Home | Up | End | F11 | | + * | | Next |LClick| Up |RClick| WhUp |VolDwn| | | PgUp | Home | Up | End | F11 | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | |------| |------| PgDn | Left | Down | Right| F12 | | + * | | Prev | Left | Down | Right|WhDown|------| |------| PgDn | Left | Down | Right| F12 | | * |--------+------+------+------+------+------| VolUp| | |------+------+------+------+------+--------| * | | Undo | Cut | Copy | Paste| | | | | | | | | | | * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' @@ -184,8 +183,8 @@ MO(FNAV), MO(SQWER), KC_ENTER), [FNAV] = KEYMAP( // Left hand KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MUTE, -KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLU, -KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, +KC_NO, KC_MS_BTN5, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_MS_WH_UP, KC_VOLU, +KC_NO, KC_MS_BTN4, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_DOWN, KC_NO, KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_NO, KC_VOLD, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, @@ -236,44 +235,7 @@ KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_0, M(KP_00), KC_KP_COMMA, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, -KC_NO, KC_TRNS, KC_KP_ENTER), -/* Keymap 6: mouse layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | | | | | |LClick| Up |RClick| WhUp | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | |------| |------| | Left | Down | Right|WhDown| | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' - * | | | | | | | | | | | | | | | | | | - * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -[MSE] = KEYMAP( -// Left hand -KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, -KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, -KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, -KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, -KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, - KC_NO, KC_TRNS, - KC_NO, - KC_NO, KC_TRNS, KC_NO, -// Right hand - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_MS_WH_UP, KC_NO, - KC_NO, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_DOWN, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, -KC_NO, KC_NO, -KC_NO, -KC_NO, KC_TRNS, KC_NO) +KC_NO, KC_TRNS, KC_KP_ENTER) }; const uint16_t PROGMEM fn_actions[] = { -- cgit v1.2.3 From 9aceaaed4cbdf49c12db85cf3ff40a9e762558a6 Mon Sep 17 00:00:00 2001 From: Olivier Date: Sun, 3 Jul 2016 15:51:55 +0200 Subject: Replace the "Ctrl+Alt+Fx" macro I was using to switch terminals without moving hands by a numeric layer switch key like on the left half, for consistency. --- keyboards/ergodox_ez/keymaps/bepo/keymap.c | 54 ++++++++++++------------------ 1 file changed, 22 insertions(+), 32 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/bepo/keymap.c b/keyboards/ergodox_ez/keymaps/bepo/keymap.c index 5c127ab78..dd4735799 100644 --- a/keyboards/ergodox_ez/keymaps/bepo/keymap.c +++ b/keyboards/ergodox_ez/keymaps/bepo/keymap.c @@ -11,7 +11,6 @@ #define NUM 5 // numeric keypad keys #define KP_00 0 -#define CA_Fx 1 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Base layer @@ -27,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' * |QWERTY| |LSuper| LCtrl| LAlt| |Escape| | | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' - * | | | L_Num| | CA_Fx| | | + * | | | L_Num| | L_Num| | | * | Space|LShift|------| |------|RShift|Enter | * | | |L_FNav| |L_FNav| | | * `--------------------' `--------------------' @@ -39,7 +38,7 @@ BP_PERCENT, BP_B, BP_E_ACUTE, BP_P, BP_O, BP_E_GRAVE, KC_BSPC, BP_W, BP_A, BP_U, BP_I, BP_E, BP_COMMA, BP_ECRC, BP_A_GRAVE, BP_Y, BP_X, BP_DOT, BP_K, KC_TAB, TG(QWER), KC_NO, KC_LGUI, KC_LCTL, KC_LALT, - KC_ESC, KC_NO, + KC_ESC, KC_TRNS, MO(NUM), KC_SPC, KC_LSHIFT, MO(FNAV), // Right hand @@ -48,8 +47,8 @@ TG(QWER), KC_NO, KC_LGUI, KC_LCTL, KC_LALT, BP_C, BP_T, BP_S, BP_R, BP_N, BP_M, KC_NUMLOCK, BP_APOS, BP_Q, BP_G, BP_H, BP_F, BP_CCED, BP_ALGR, KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE, -KC_NO, KC_INS, -M(CA_Fx), +KC_TRNS, KC_INS, +MO(NUM), MO(FNAV), KC_RSHIFT, KC_ENTER), /* Keymap 1: QWERTY system compatibility layer * @@ -64,7 +63,7 @@ MO(FNAV), KC_RSHIFT, KC_ENTER), * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' * | BEPO | |LSuper| LCtrl| LAlt| |Escape| | | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' - * | | | L_Num| | | | | + * | | | L_Num| | L_Num| | | * | Space|LShift|------| |------|RShift|Enter | * | | |L_FNav| |L_FNav| | | * `--------------------' `--------------------' @@ -76,7 +75,7 @@ KC_PERCENT, KC_B, KC_E, KC_P, KC_O, KC_E, KC_BSPC, KC_W, KC_A, KC_U, KC_I, KC_E, KC_COMMA, KC_E, KC_A, KC_Y, KC_X, KC_DOT, KC_K, KC_TAB, KC_TRNS, KC_NO, KC_LGUI, KC_LCTL, KC_LALT, - KC_ESC, KC_NO, + KC_ESC, KC_TRNS, MO(NUM), KC_SPC, MO(SQWER), MO(FNAV), // Right hand @@ -85,8 +84,8 @@ KC_TRNS, KC_NO, KC_LGUI, KC_LCTL, KC_LALT, KC_C, KC_T, KC_S, KC_R, KC_N, KC_M, KC_NUMLOCK, KC_QUOT, KC_Q, KC_G, KC_H, KC_F, KC_C, MO(AQWER), KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE, -KC_NO, KC_INS, -KC_TRNS, +KC_TRNS, KC_INS, +MO(NUM), MO(FNAV), MO(SQWER), KC_ENTER), /* Keymap 2: QWERTY shifted system compatibility layer * @@ -101,7 +100,7 @@ MO(FNAV), MO(SQWER), KC_ENTER), * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' * | BEPO | |LSuper| LCtrl| LAlt| |Escape| | | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' - * | | | L_Num| | | | | + * | | | L_Num| | L_Num| | | * | Space|LShift|------| |------|RShift|Enter | * | | |L_FNav| |L_FNav| | | * `--------------------' `--------------------' @@ -113,7 +112,7 @@ KC_GRV, S(KC_B), S(KC_E), S(KC_P), S(KC_O), S(KC_E), KC_TRNS, S(KC_W), S(KC_A), S(KC_U), S(KC_I), S(KC_E), KC_SCOLON, S(KC_E), S(KC_A), S(KC_Y), S(KC_X), KC_COLON, S(KC_K), S(KC_TAB), KC_TRNS, KC_TRNS, S(KC_LGUI), S(KC_LCTL), S(KC_LALT), - KC_TRNS, KC_NO, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, // Right hand @@ -138,7 +137,7 @@ KC_TRNS, KC_TRNS, KC_TRNS), * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' * | BEPO | |LSuper| LCtrl| LAlt| |Escape| | | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' - * | | | L_Num| | | | | + * | | | L_Num| | L_Num| | | * | _ |LShift|------| |------|RShift|Enter | * | | |L_FNav| |L_FNav| | | * `--------------------' `--------------------' @@ -150,7 +149,7 @@ KC_PERCENT, KC_PIPE, KC_E, KC_AMPR, KC_O, KC_E, KC_BSPC, KC_W, KC_A, KC_U, KC_I, RALT(KC_5), KC_COMMA, KC_E, KC_BSLASH, KC_LCBR, KC_RCBR, KC_DOT, KC_TILDE, KC_TAB, KC_TRNS, KC_NO, KC_LGUI, KC_LCTL, KC_LALT, - KC_ESC, KC_NO, + KC_ESC, KC_TRNS, MO(NUM), KC_UNDS, MO(SQWER), MO(FNAV), // Right hand @@ -159,8 +158,8 @@ KC_TRNS, KC_NO, KC_LGUI, KC_LCTL, KC_LALT, KC_C, KC_T, KC_S, KC_R, KC_N, KC_M, KC_NUMLOCK, KC_QUOT, KC_Q, KC_G, KC_H, KC_F, KC_C, KC_TRNS, KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE, -KC_NO, KC_INS, -KC_TRNS, +KC_TRNS, KC_INS, +MO(NUM), MO(FNAV), MO(SQWER), KC_ENTER), /* Keymap 4: function / navigation layer * @@ -187,8 +186,8 @@ KC_NO, KC_MS_BTN5, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_MS_WH_UP, KC_VOLU, KC_NO, KC_MS_BTN4, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_DOWN, KC_NO, KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_NO, KC_VOLD, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, - KC_NO, KC_NO, - KC_NO, + KC_TRNS, KC_TRNS, + KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, // Right hand KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO, @@ -196,7 +195,7 @@ KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDOWN, KC_LEFT, KC_DOWN, KC_RIGHT, KC_F12, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, -KC_NO, KC_NO, +KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO), /* Keymap 5: numeric layer, sends keypad codes @@ -224,18 +223,18 @@ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, - KC_NO, KC_NO, + KC_TRNS, KC_TRNS, KC_TRNS, - KC_NO, KC_TRNS, KC_NO, + KC_NO, KC_TRNS, KC_TRNS, // Right hand KC_NO, KC_NO, KC_KP_PLUS, KC_KP_MINUS, KC_KP_SLASH, KC_KP_ASTERISK, KC_NO, KC_NO, KC_NO, KC_KP_7, KC_KP_8, KC_KP_9, KC_NO, KC_NO, KC_NO, KC_KP_4, KC_KP_5, KC_KP_6, KC_NO, KC_NO, KC_NO, KC_NO, KC_KP_1, KC_KP_2, KC_KP_3, KC_NO, KC_NO, KC_KP_0, M(KP_00), KC_KP_COMMA, KC_NO, KC_NO, -KC_NO, KC_NO, -KC_NO, -KC_NO, KC_TRNS, KC_KP_ENTER) +KC_TRNS, KC_TRNS, +KC_TRNS, +KC_TRNS, KC_TRNS, KC_KP_ENTER) }; const uint16_t PROGMEM fn_actions[] = { @@ -251,15 +250,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) return MACRO( U(KP_0), END ); } break; - case CA_Fx: - if (record->event.pressed) { - layer_on(FNAV); - return MACRO( D(LALT), D(LCTL), END ); - } else { - layer_off(FNAV); - return MACRO( U(LCTL), U(LALT), END ); - } - break; } return MACRO_NONE; }; -- cgit v1.2.3 From 6d195dc60c696d2e07bfe7d098b00598f36fe5a6 Mon Sep 17 00:00:00 2001 From: Olivier Date: Sun, 3 Jul 2016 16:27:08 +0200 Subject: Add a Makefile for the keymap to disable command mode (to keep the keyboard from going into command mode when both Shift keys are hold at the same time) and to allow issuing a simple "make" in the keymap folder to compile it. --- keyboards/ergodox_ez/keymaps/bepo/Makefile | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 keyboards/ergodox_ez/keymaps/bepo/Makefile (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/bepo/Makefile b/keyboards/ergodox_ez/keymaps/bepo/Makefile new file mode 100644 index 000000000..b673c5ce5 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/bepo/Makefile @@ -0,0 +1,9 @@ +# Having a file like this allows you to override Makefile definitions +# for your own particular keymap + +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +COMMAND_ENABLE = no # Commands for debug and configuration + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif -- cgit v1.2.3 From 82edc37238a0f4239da0a6eee74d62773362a2d2 Mon Sep 17 00:00:00 2001 From: Olivier Date: Sun, 3 Jul 2016 16:44:57 +0200 Subject: Move Escape and Insert keys, Escape is now easier to reach (useful for vi). Change the layer switching used to keep a bepo layout on US keyboards. --- keyboards/ergodox_ez/keymaps/bepo/bepo.png | Bin 79747 -> 80838 bytes keyboards/ergodox_ez/keymaps/bepo/keymap.c | 28 ++++++++++++++-------------- keyboards/ergodox_ez/keymaps/bepo/readme.md | 2 +- 3 files changed, 15 insertions(+), 15 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/bepo/bepo.png b/keyboards/ergodox_ez/keymaps/bepo/bepo.png index 3df7aa609..bde2e2cfa 100644 Binary files a/keyboards/ergodox_ez/keymaps/bepo/bepo.png and b/keyboards/ergodox_ez/keymaps/bepo/bepo.png differ diff --git a/keyboards/ergodox_ez/keymaps/bepo/keymap.c b/keyboards/ergodox_ez/keymaps/bepo/keymap.c index dd4735799..7c30d5878 100644 --- a/keyboards/ergodox_ez/keymaps/bepo/keymap.c +++ b/keyboards/ergodox_ez/keymaps/bepo/keymap.c @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------| * | E_CIRC |A_GRAV| Y | X | . | K | | | | ' | Q | G | H | F | C_CEDIL| * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' - * |QWERTY| |LSuper| LCtrl| LAlt| |Escape| | | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| + * |Escape|Insert|LSuper| LCtrl| LAlt| | BEPO |QWERTY| |AZERTY| BEPO | | AltGr| RCtrl|RSuper|PrntSc| Pause| * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' * | | | L_Num| | L_Num| | | * | Space|LShift|------| |------|RShift|Enter | @@ -37,8 +37,8 @@ BP_DOLLAR, BP_DQOT, BP_LGIL, BP_RGIL, BP_LPRN, BP_RPRN, KC_DEL, BP_PERCENT, BP_B, BP_E_ACUTE, BP_P, BP_O, BP_E_GRAVE, KC_BSPC, BP_W, BP_A, BP_U, BP_I, BP_E, BP_COMMA, BP_ECRC, BP_A_GRAVE, BP_Y, BP_X, BP_DOT, BP_K, KC_TAB, -TG(QWER), KC_NO, KC_LGUI, KC_LCTL, KC_LALT, - KC_ESC, KC_TRNS, +KC_ESC, KC_INS, KC_LGUI, KC_LCTL, KC_LALT, + DF(BASE), DF(QWER), MO(NUM), KC_SPC, KC_LSHIFT, MO(FNAV), // Right hand @@ -47,7 +47,7 @@ TG(QWER), KC_NO, KC_LGUI, KC_LCTL, KC_LALT, BP_C, BP_T, BP_S, BP_R, BP_N, BP_M, KC_NUMLOCK, BP_APOS, BP_Q, BP_G, BP_H, BP_F, BP_CCED, BP_ALGR, KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE, -KC_TRNS, KC_INS, +DF(QWER), DF(BASE), MO(NUM), MO(FNAV), KC_RSHIFT, KC_ENTER), /* Keymap 1: QWERTY system compatibility layer @@ -61,7 +61,7 @@ MO(FNAV), KC_RSHIFT, KC_ENTER), * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------| * | e | a | y | x | . | k | | | | ' | q | g | h | f | c | * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' - * | BEPO | |LSuper| LCtrl| LAlt| |Escape| | | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| + * |Escape|Insert|LSuper| LCtrl| LAlt| | BEPO |QWERTY| |AZERTY| BEPO | | AltGr| RCtrl|RSuper|PrntSc| Pause| * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' * | | | L_Num| | L_Num| | | * | Space|LShift|------| |------|RShift|Enter | @@ -74,8 +74,8 @@ KC_DOLLAR, S(KC_QUOT), S(KC_COMM), S(KC_DOT), KC_LPRN, KC_RPRN, KC_DEL, KC_PERCENT, KC_B, KC_E, KC_P, KC_O, KC_E, KC_BSPC, KC_W, KC_A, KC_U, KC_I, KC_E, KC_COMMA, KC_E, KC_A, KC_Y, KC_X, KC_DOT, KC_K, KC_TAB, -KC_TRNS, KC_NO, KC_LGUI, KC_LCTL, KC_LALT, - KC_ESC, KC_TRNS, +KC_ESC, KC_INS, KC_LGUI, KC_LCTL, KC_LALT, + DF(BASE), DF(QWER), MO(NUM), KC_SPC, MO(SQWER), MO(FNAV), // Right hand @@ -84,7 +84,7 @@ KC_TRNS, KC_NO, KC_LGUI, KC_LCTL, KC_LALT, KC_C, KC_T, KC_S, KC_R, KC_N, KC_M, KC_NUMLOCK, KC_QUOT, KC_Q, KC_G, KC_H, KC_F, KC_C, MO(AQWER), KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE, -KC_TRNS, KC_INS, +DF(QWER), DF(BASE), MO(NUM), MO(FNAV), MO(SQWER), KC_ENTER), /* Keymap 2: QWERTY shifted system compatibility layer @@ -98,7 +98,7 @@ MO(FNAV), MO(SQWER), KC_ENTER), * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------| * | E | A | Y | X | : | K | | | | ? | Q | G | H | F | C | * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' - * | BEPO | |LSuper| LCtrl| LAlt| |Escape| | | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| + * |Escape|Insert|LSuper| LCtrl| LAlt| | BEPO |QWERTY| |AZERTY| BEPO | | AltGr| RCtrl|RSuper|PrntSc| Pause| * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' * | | | L_Num| | L_Num| | | * | Space|LShift|------| |------|RShift|Enter | @@ -111,7 +111,7 @@ KC_HASH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_GRV, S(KC_B), S(KC_E), S(KC_P), S(KC_O), S(KC_E), KC_TRNS, S(KC_W), S(KC_A), S(KC_U), S(KC_I), S(KC_E), KC_SCOLON, S(KC_E), S(KC_A), S(KC_Y), S(KC_X), KC_COLON, S(KC_K), S(KC_TAB), -KC_TRNS, KC_TRNS, S(KC_LGUI), S(KC_LCTL), S(KC_LALT), +S(KC_ESC), S(KC_INS), S(KC_LGUI), S(KC_LCTL), S(KC_LALT), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -135,7 +135,7 @@ KC_TRNS, KC_TRNS, KC_TRNS), * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------| * | e | \ | { | } | . | ~ | | | | ' | q | g | h | f | c | * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' - * | BEPO | |LSuper| LCtrl| LAlt| |Escape| | | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| + * |Escape|Insert|LSuper| LCtrl| LAlt| | BEPO |QWERTY| |AZERTY| BEPO | | AltGr| RCtrl|RSuper|PrntSc| Pause| * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' * | | | L_Num| | L_Num| | | * | _ |LShift|------| |------|RShift|Enter | @@ -148,8 +148,8 @@ KC_DOLLAR, S(KC_QUOT), S(KC_COMM), S(KC_DOT), KC_LBRC, KC_RBRC, KC_DEL, KC_PERCENT, KC_PIPE, KC_E, KC_AMPR, KC_O, KC_E, KC_BSPC, KC_W, KC_A, KC_U, KC_I, RALT(KC_5), KC_COMMA, KC_E, KC_BSLASH, KC_LCBR, KC_RCBR, KC_DOT, KC_TILDE, KC_TAB, -KC_TRNS, KC_NO, KC_LGUI, KC_LCTL, KC_LALT, - KC_ESC, KC_TRNS, +KC_ESC, KC_INS, KC_LGUI, KC_LCTL, KC_LALT, + KC_TRNS, KC_TRNS, MO(NUM), KC_UNDS, MO(SQWER), MO(FNAV), // Right hand @@ -158,7 +158,7 @@ KC_TRNS, KC_NO, KC_LGUI, KC_LCTL, KC_LALT, KC_C, KC_T, KC_S, KC_R, KC_N, KC_M, KC_NUMLOCK, KC_QUOT, KC_Q, KC_G, KC_H, KC_F, KC_C, KC_TRNS, KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE, -KC_TRNS, KC_INS, +KC_TRNS, KC_TRNS, MO(NUM), MO(FNAV), MO(SQWER), KC_ENTER), /* Keymap 4: function / navigation layer diff --git a/keyboards/ergodox_ez/keymaps/bepo/readme.md b/keyboards/ergodox_ez/keymaps/bepo/readme.md index 4a18cd80f..207b67571 100644 --- a/keyboards/ergodox_ez/keymaps/bepo/readme.md +++ b/keyboards/ergodox_ez/keymaps/bepo/readme.md @@ -27,7 +27,7 @@ Touche de fonction permettant de saisir les touches F1 à F12, les touches F1 à Touche de fonction permettant l'accès au pavé numérique comme sur la TypeMatrix 2030, mais sans avoir à déplacer la main droite : avec les doigts sur la rangée de repos, possibilité de saisir les chiffres "4", "5" et "6" comme sur un pavé numérique classique. Le double "0" de la TypeMatrix a été conservé, et gagne une possibilité de répétition en simples "0". -L'appui sur une touche permet de basculer en mode BEPO sur un système configuré pour un clavier QWERTY. Cette compatibilité n'est pas parfaite (pas encore de gestion des accents mais ça devrait être faisable avec une disposition en qwerty international, et les combinaisons de touches ne sont pas toutes supportées puisque le clavier traduit déjà certaines touches en combinaisons) mais reste pratique pour une saisie de texte occasionnelle. +Touche permettant de basculer en mode BEPO sur un système configuré pour un clavier QWERTY. Cette compatibilité n'est pas parfaite (pas encore de gestion des accents mais ça devrait être faisable avec une disposition en qwerty international, et les combinaisons de touches ne sont pas toutes supportées puisque le clavier traduit déjà certaines touches en combinaisons) mais reste pratique pour une saisie de texte occasionnelle. TODO : couche de compatibilité pour utiliser la disposition BÉPO sur un système configuré pour un clavier AZERTY. -- cgit v1.2.3 From b5172e3afab515b1f93cd09c51b4c6c1b5174dc7 Mon Sep 17 00:00:00 2001 From: Olivier Date: Sat, 20 Aug 2016 18:19:03 +0200 Subject: Rename file following upstream folder rename. --- keyboards/ergodox/keymaps/bepo/Makefile | 9 +++++++++ keyboards/ergodox_ez/keymaps/bepo/Makefile | 9 --------- 2 files changed, 9 insertions(+), 9 deletions(-) create mode 100644 keyboards/ergodox/keymaps/bepo/Makefile delete mode 100644 keyboards/ergodox_ez/keymaps/bepo/Makefile (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/bepo/Makefile b/keyboards/ergodox/keymaps/bepo/Makefile new file mode 100644 index 000000000..b673c5ce5 --- /dev/null +++ b/keyboards/ergodox/keymaps/bepo/Makefile @@ -0,0 +1,9 @@ +# Having a file like this allows you to override Makefile definitions +# for your own particular keymap + +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +COMMAND_ENABLE = no # Commands for debug and configuration + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/ergodox_ez/keymaps/bepo/Makefile b/keyboards/ergodox_ez/keymaps/bepo/Makefile deleted file mode 100644 index b673c5ce5..000000000 --- a/keyboards/ergodox_ez/keymaps/bepo/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -# Having a file like this allows you to override Makefile definitions -# for your own particular keymap - -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -COMMAND_ENABLE = no # Commands for debug and configuration - -ifndef QUANTUM_DIR - include ../../../../Makefile -endif -- cgit v1.2.3 From 67dfde765f5bc192aad8a7a7586b10a661ae52d1 Mon Sep 17 00:00:00 2001 From: Didier Chagniot Date: Fri, 9 Sep 2016 21:42:35 +0200 Subject: typing with it --- keyboards/ergodox/keymaps/dvorak_emacs/keymap.c | 165 ++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100755 keyboards/ergodox/keymaps/dvorak_emacs/keymap.c (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/dvorak_emacs/keymap.c b/keyboards/ergodox/keymaps/dvorak_emacs/keymap.c new file mode 100755 index 000000000..4cb11a56f --- /dev/null +++ b/keyboards/ergodox/keymaps/dvorak_emacs/keymap.c @@ -0,0 +1,165 @@ +#include "ergodox.h" +#include "debug.h" +#include "action_layer.h" + +/****************************************************************************************** + * DVORAK LAYOUT (see http://djelibeibi.unex.es/dvorak/) + * Layer 1: auxiliary keys + * Layer 2: full qwerty layout + *****************************************************************************************/ + +// LAYERS +#define BASE 0 // dvorak layout (default) +#define AUX 1 // auxiliary keys + +// MACROS +/* #define OBRACE 0 // key { or shift */ +/* #define CBRACE 1 // key } or shift */ +/* #define OBRACK 2 // key [ or left alt */ +/* #define CBRACK 3 // key ] or left alt */ +/* #define CAPS 4 // caps lock */ + +// LEDS +#define USB_LED_NUM_LOCK 0 +#define USB_LED_CAPS_LOCK 1 +#define USB_LED_SCROLL_LOCK 2 +#define USB_LED_COMPOSE 3 +#define USB_LED_KANA 4 + +// TIMERS +#define KEY_TAP_FAST 85 +#define KEY_TAP_SLOW 95 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Base layer + * Keys with double values (like Esc/Ctrl) correspond to the 'tapped' key and the 'held' key, respectively + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | = / + | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | ~ |" / ' |, / < |. / > | P | Y | [ | | ] | F | G | C | H | L | / / ? | + * |--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------| + * | Tab | A | O | E |U/LSft| I/L1 |------| |------| D/L1|R/RSft| T | N | S | - / _ | + * |--------+------+------+------+------+------| LGUI | | LGUI |------+------+------+------+------+--------| + * | {/LSft |; / : | Q | J | K | X | | | | B | M | W | V | Z | }/RSft | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | ~L1 | | ~L1 | | | \ / || | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | HOME | END | | LEFT | RIGHT| + * ,------|------|------| |------+--------+------. + * | BSPC | DEL | PGUP | | UP | SPACE |RETURN| + * | / | / |------| |------| / | / | + * | LCTL | LALT |PGDWN | | DOWN | LALT | LCTL | + * `--------------------' `----------------------' + * + */ +[BASE] = KEYMAP( + // left hand + KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, + KC_TILD, KC_QUOTE, KC_COMM,KC_DOT, KC_P, KC_Y, KC_LBRACKET, + KC_TAB, KC_A, KC_O, KC_E, SFT_T(KC_U), LT(AUX, KC_I), + SFT_T(KC_LBRC), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_LGUI, + KC_NO, KC_NO, KC_NO, KC_NO, MO(AUX), + KC_HOME, KC_END, + KC_PGUP, + CTL_T(KC_BSPC), ALT_T(KC_DEL), KC_PGDN, + // right hand + KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + KC_RBRACKET, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLASH, + LT(AUX, KC_D), SFT_T(KC_H), KC_T, KC_N, KC_S, KC_MINUS, + KC_LGUI, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_RBRC), + MO(AUX), KC_NO, KC_NO, KC_BSLASH, KC_NO, + KC_LEFT, KC_RIGHT, + KC_UP, + KC_DOWN, ALT_T(KC_ENT), CTL_T(KC_SPC) + ), +/* Keymap 1: Aux layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | VolUp | | | | | | SLEEP | PWR | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | VolDn | F1 | F2 | F3 | F4 | | | | | | 7 | 8 | 9 | * | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | F5 | F6 | F7 | F8 | TRANS|------| |------|TRANS | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | |PSCR |------+------+------+------+------+--------| + * | TRANS | F9 | F10 | F11 | F12 | | | | | | 1 | 2 | 3 | / | TRANS | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |CTRL-S|CTRL-Z|CTRL-X|CTRL-C| TRANS| | TRANS| . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | TRANS| TRANS| | TRANS| TRANS| + * ,------|------|------| |------+------+------. + * | | | TRANS| | TRANS| | | + * |TRANS |TRANS |------| |------| TRANS| TRANS| + * | | | TRANS| | TRANS| | | + * `--------------------' `--------------------' + */ +[AUX] = KEYMAP( + // left hand + KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SLEP, + KC_VOLD, KC_F1, KC_F2, KC_F3, KC_F4, KC_NO, KC_NO, + KC_NO , KC_F5, KC_F6, KC_F7, KC_F8, KC_TRNS, + KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, + LCTL(KC_S), LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), KC_TRNS, + KC_TRNS , KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_PWR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_7, KC_8, KC_9, KC_PAST, KC_NO, + KC_TRNS, KC_4, KC_5, KC_6, KC_PPLS, KC_NO, + KC_PSCR, KC_NO, KC_1, KC_2, KC_3, KC_PSLS, KC_TRNS, + KC_TRNS,KC_DOT, KC_0, KC_PEQL, KC_NO, + KC_TRNS , KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(AUX) // FN1 - Momentary Layer 1 (Aux) +}; + + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } +} -- cgit v1.2.3 From 83b6dd0cd6f055d99d3a11690ccc81b908a0aa4c Mon Sep 17 00:00:00 2001 From: Didier Chagniot Date: Sat, 10 Sep 2016 00:20:21 +0200 Subject: readme.md updated --- keyboards/ergodox/keymaps/dvorak_emacs/readme.md | 70 ++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 keyboards/ergodox/keymaps/dvorak_emacs/readme.md (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/dvorak_emacs/readme.md b/keyboards/ergodox/keymaps/dvorak_emacs/readme.md new file mode 100644 index 000000000..0578f1e25 --- /dev/null +++ b/keyboards/ergodox/keymaps/dvorak_emacs/readme.md @@ -0,0 +1,70 @@ +# Ergodox Dvorak Layout with emacs binding in mind + * Control & Alt key on the thumbs (activated if pressed with another key). + * In the same way, "I" and "R" are the shift modifier if pressed with another key. + * "I" and "D" set the layer 1 for the auxiliary keys if pressed with another key. + * Software layout set to english. + +## Keymap Layers + - L0: dvorak with some customizations (see layout below) + - L1: auxiliary keys (includes function keys, numpad...) + + +### Keymap 0: Base layer +Keys with double values (like U/LSft) correspond to the 'tapped' key and the 'held' key, respectively + +

+
+,--------------------------------------------------.           ,--------------------------------------------------.
+ |        |   1  |   2  |   3  |   4  |   5  |  Esc |           |  Esc |   6  |   7  |   8  |   9  |   0  |   =    |
+ |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ |   ~    |  '   |   ,  |   .  |   P  |   Y  |   [  |           |   ]  |   F  |   G  |   C  |   H  |   L  |   /    |
+ |--------+------+------+------+------+------|   {  |           |   }  |------+------+------+------+------+--------|
+ |  Tab   |   A  |   O  |   E  |U/LSft| I/L1 |------|           |------|  D/L1|R/RSft|   T  |   N  |   S  |   -    |
+ |--------+------+------+------+------+------| LGUI |           | LGUI |------+------+------+------+------+--------|
+ | {/LSft |   ;  |   Q  |   J  |   K  |   X  |      |           |      |   B  |   M  |   W  |   V  |   Z  | }/RSft |
+ `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+   |      |      |      |      | ~L1  |                                       | ~L1  |      |      |   \  |        |
+   `----------------------------------'                                       `----------------------------------'
+                                        ,-------------.       ,-------------.
+                                        | HOME |  END |       | LEFT | RIGHT|
+                                 ,------|------|------|       |------+--------+------.
+                                 | BSPC |  DEL | PGUP |       |  UP  | SPACE  |RETURN|
+                                 |  /   |  /   |------|       |------|   /    |  /   |
+                                 | LCTL | LALT |PGDWN |       | DOWN | LALT   | LCTL |
+                                 `--------------------'       `----------------------'
+
+
+ +### Keymap 1: Aux layer + +

+
+,--------------------------------------------------.           ,--------------------------------------------------.
+|  VolUp |      |      |      |      |      | SLEEP            | PWR  |      |      |      |      |      |        |
+|--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+|  VolDn |  F1  |  F2  |  F3  |  F4  |      |      |           |      |      |   7  |   8  |   9  |   *  |        |
+|--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+|        |  F5  |  F6  |  F7  |  F8  | TRANS|------|           |------|TRANS |   4  |   5  |   6  |   +  |        |
+|--------+------+------+------+------+------|      |           |PSCR  |------+------+------+------+------+--------|
+|  TRANS |  F9  |  F10 |  F11 |  F12 |      |      |           |      |      |   1  |   2  |   3  |   /  |  TRANS |
+`--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+  |CTRL-S|CTRL-Z|CTRL-X|CTRL-C| TRANS|                                       | TRANS|    . |   0  |   =  |      |
+  `----------------------------------'                                       `----------------------------------'
+                                       ,-------------.       ,-------------.
+                                       | TRANS| TRANS|       | TRANS| TRANS|
+                                ,------|------|------|       |------+------+------.
+                                |      |      | TRANS|       | TRANS|      |      |
+                                |TRANS |TRANS |------|       |------| TRANS| TRANS|
+                                |      |      | TRANS|       | TRANS|      |      |
+                                `--------------------'       `--------------------'
+
+
+ + + +## Generation of .hex file +> In the "qmk_firmware/keyboards/ergodox" directory. + +> Execute "make dvorak_emacs". Then the hex file "ergodox_ez_dvorak_emacs.hex" is in the root directory : "qmk_firmware". + +> Flash with `teensy_loader` binary -- cgit v1.2.3 From b8679bbe045a2285d6ab6bbc420121b26f516b9a Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 5 Oct 2016 20:41:33 -0400 Subject: RGBW lights --- keyboards/ergodox/config.h | 2 ++ keyboards/ergodox/keymaps/jack/Makefile | 5 +++++ keyboards/ergodox/keymaps/jack/config.h | 14 ++++++++++++++ keyboards/ergodox/keymaps/jack/keymap.c | 4 ++-- quantum/rgblight.c | 18 +++++++++++++++--- quantum/rgblight.h | 1 + 6 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 keyboards/ergodox/keymaps/jack/Makefile create mode 100644 keyboards/ergodox/keymaps/jack/config.h (limited to 'keyboards') diff --git a/keyboards/ergodox/config.h b/keyboards/ergodox/config.h index edc60caae..049c707a5 100644 --- a/keyboards/ergodox/config.h +++ b/keyboards/ergodox/config.h @@ -1,6 +1,8 @@ #ifndef KEYBOARDS_ERGODOX_CONFIG_H_ #define KEYBOARDS_ERGODOX_CONFIG_H_ +#include "config_common.h" + #define MOUSEKEY_DELAY 100 #define MOUSEKEY_INTERVAL 20 #define MOUSEKEY_MAX_SPEED 3 diff --git a/keyboards/ergodox/keymaps/jack/Makefile b/keyboards/ergodox/keymaps/jack/Makefile new file mode 100644 index 000000000..1e5761278 --- /dev/null +++ b/keyboards/ergodox/keymaps/jack/Makefile @@ -0,0 +1,5 @@ +RGBLIGHT_ENABLE = yes + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/ergodox/keymaps/jack/config.h b/keyboards/ergodox/keymaps/jack/config.h new file mode 100644 index 000000000..01ccfb3a2 --- /dev/null +++ b/keyboards/ergodox/keymaps/jack/config.h @@ -0,0 +1,14 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +/* ws2812 RGB LED */ +#define RGB_DI_PIN D7 +// #define RGBLIGHT_TIMER +#define RGBLED_NUM 20 // Number of LEDs +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 + +#endif \ No newline at end of file diff --git a/keyboards/ergodox/keymaps/jack/keymap.c b/keyboards/ergodox/keymaps/jack/keymap.c index dda253fa4..1dd5a7618 100644 --- a/keyboards/ergodox/keymaps/jack/keymap.c +++ b/keyboards/ergodox/keymaps/jack/keymap.c @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_ENT, MO(1), KC_LEFT,KC_DOWN,KC_UP, KC_RGHT, - KC_NO, KC_NO, + RGB_TOG, RGB_HUI, KC_PGUP, KC_PGDN, KC_SPC,KC_SPC ), @@ -90,7 +90,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // Runs just one time when the keyboard initializes. void matrix_init_user(void) { - + }; // Runs constantly in the background, in a loop. diff --git a/quantum/rgblight.c b/quantum/rgblight.c index f82e3ec55..801ca1d0d 100644 --- a/quantum/rgblight.c +++ b/quantum/rgblight.c @@ -50,7 +50,11 @@ const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {100, 50, 20}; rgblight_config_t rgblight_config; rgblight_config_t inmem_config; -struct cRGB led[RGBLED_NUM]; +#ifdef RGBW + struct cRGBW led[RGBLED_NUM]; +#else + struct cRGB led[RGBLED_NUM]; +#endif uint8_t rgblight_inited = 0; @@ -334,14 +338,22 @@ void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b) { void rgblight_set(void) { if (rgblight_config.enable) { - ws2812_setleds(led, RGBLED_NUM); + #ifdef RGBW + ws2812_setleds_rgbw(led, RGBLED_NUM); + #else + ws2812_setleds(led, RGBLED_NUM); + #endif } else { for (uint8_t i = 0; i < RGBLED_NUM; i++) { led[i].r = 0; led[i].g = 0; led[i].b = 0; } - ws2812_setleds(led, RGBLED_NUM); + #ifdef RGBW + ws2812_setleds_rgbw(led, RGBLED_NUM); + #else + ws2812_setleds(led, RGBLED_NUM); + #endif } } diff --git a/quantum/rgblight.h b/quantum/rgblight.h index def26c428..2a712d8be 100644 --- a/quantum/rgblight.h +++ b/quantum/rgblight.h @@ -1,6 +1,7 @@ #ifndef RGBLIGHT_H #define RGBLIGHT_H +#define RGBW 1 #if !defined(AUDIO_ENABLE) && defined(RGBLIGHT_TIMER) #define RGBLIGHT_MODES 23 -- cgit v1.2.3 From 99ca59baf8d508f3221df5dd89158241925aca14 Mon Sep 17 00:00:00 2001 From: cbbrowne Date: Wed, 12 Oct 2016 12:03:54 -0400 Subject: I keep mis-using UPPER|LOWER/SLASH, and getting RESET. With RESET shifted to the UPPER+LOWER layer, it is now time to change that key to Alt-Slash, which, in Emacs, does automatic word completion --- keyboards/planck/keymaps/cbbrowne/keymap.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/cbbrowne/keymap.c b/keyboards/planck/keymaps/cbbrowne/keymap.c index 7f1601af7..4742ca5c0 100644 --- a/keyboards/planck/keymaps/cbbrowne/keymap.c +++ b/keyboards/planck/keymaps/cbbrowne/keymap.c @@ -94,6 +94,7 @@ enum macro_id { #define SHIFTQUOTE MT(MOD_RSFT, KC_QUOT) #define ALTRIGHT MT(MOD_LALT, KC_RGHT) #define MVERSION M(M_VERSION) +#define ALTSLASH LALT(KC_SLSH) /* Note that Planck has dimensions 4 rows x 12 columns */ @@ -109,13 +110,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_RAISE] = { /* RAISE */ {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QWERTY, KEYPAD, KEYPAD, RESET, _______}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QWERTY, KEYPAD, KEYPAD, ALTSLASH,_______}, {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, [_LOWER] = { /* LOWER */ {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QWERTY, KEYPAD, KEYPAD, RESET, _______}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QWERTY, KEYPAD, KEYPAD, ALTSLASH, _______}, {_______, KEYPAD, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, [_KEYPAD] = { /* Key Pad */ -- cgit v1.2.3 From 5f91fb413624781ac79db641549b9e08753c04b5 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 16 Oct 2016 16:03:33 -0400 Subject: working with power limit --- build_keyboard.mk | 6 ++ keyboards/ergodox/keymaps/jack/config.h | 2 +- keyboards/ergodox/keymaps/jack/keymap.c | 4 +- quantum/keymap.h | 4 + quantum/light_ws2812.c | 137 +++++++++++++++++++++++++++++++- quantum/light_ws2812.h | 7 ++ quantum/quantum.c | 3 + quantum/quantum.h | 4 + 8 files changed, 163 insertions(+), 4 deletions(-) (limited to 'keyboards') diff --git a/build_keyboard.mk b/build_keyboard.mk index 03a69b146..cd9f44c7b 100644 --- a/build_keyboard.mk +++ b/build_keyboard.mk @@ -169,6 +169,12 @@ ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c endif +ifeq ($(strip $(PRINTING_ENABLE)), yes) + OPT_DEFS += -DPRINTING_ENABLE + SRC += $(QUANTUM_DIR)/process_keycode/process_printer.c + SRC += $(TMK_DIR)/protocol/serial_uart.c +endif + ifeq ($(strip $(SERIAL_LINK_ENABLE)), yes) SRC += $(patsubst $(QUANTUM_PATH)/%,%,$(SERIAL_SRC)) OPT_DEFS += $(SERIAL_DEFS) diff --git a/keyboards/ergodox/keymaps/jack/config.h b/keyboards/ergodox/keymaps/jack/config.h index 01ccfb3a2..f0932084a 100644 --- a/keyboards/ergodox/keymaps/jack/config.h +++ b/keyboards/ergodox/keymaps/jack/config.h @@ -6,7 +6,7 @@ /* ws2812 RGB LED */ #define RGB_DI_PIN D7 // #define RGBLIGHT_TIMER -#define RGBLED_NUM 20 // Number of LEDs +#define RGBLED_NUM 15 // Number of LEDs #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/ergodox/keymaps/jack/keymap.c b/keyboards/ergodox/keymaps/jack/keymap.c index 1dd5a7618..fabd27a61 100644 --- a/keyboards/ergodox/keymaps/jack/keymap.c +++ b/keyboards/ergodox/keymaps/jack/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_ENT, MO(1), KC_LEFT,KC_DOWN,KC_UP, KC_RGHT, RGB_TOG, RGB_HUI, - KC_PGUP, + RGB_MOD, KC_PGDN, KC_SPC,KC_SPC ), [SYMB] = KEYMAP( @@ -90,7 +90,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // Runs just one time when the keyboard initializes. void matrix_init_user(void) { - + }; // Runs constantly in the background, in a loop. diff --git a/quantum/keymap.h b/quantum/keymap.h index 98ddfd0c5..41aa11622 100644 --- a/quantum/keymap.h +++ b/quantum/keymap.h @@ -174,6 +174,10 @@ enum quantum_keycodes { // Right shift, close paren KC_RSPC, + // Printing + PRINT_ON, + PRINT_OFF, + // always leave at the end SAFE_RANGE }; diff --git a/quantum/light_ws2812.c b/quantum/light_ws2812.c index 401845e85..d38dac4c6 100755 --- a/quantum/light_ws2812.c +++ b/quantum/light_ws2812.c @@ -16,6 +16,122 @@ #include #include "debug.h" +#define RGBW_BB_TWI 1 + +#ifdef RGBW_BB_TWI + +// Port for the I2C +#define I2C_DDR DDRD +#define I2C_PIN PIND +#define I2C_PORT PORTD + +// Pins to be used in the bit banging +#define I2C_CLK 0 +#define I2C_DAT 1 + +#define I2C_DATA_HI()\ +I2C_DDR &= ~ (1 << I2C_DAT);\ +I2C_PORT |= (1 << I2C_DAT); +#define I2C_DATA_LO()\ +I2C_DDR |= (1 << I2C_DAT);\ +I2C_PORT &= ~ (1 << I2C_DAT); + +#define I2C_CLOCK_HI()\ +I2C_DDR &= ~ (1 << I2C_CLK);\ +I2C_PORT |= (1 << I2C_CLK); +#define I2C_CLOCK_LO()\ +I2C_DDR |= (1 << I2C_CLK);\ +I2C_PORT &= ~ (1 << I2C_CLK); + +#define I2C_DELAY 1 + +void I2C_WriteBit(unsigned char c) +{ + if (c > 0) + { + I2C_DATA_HI(); + } + else + { + I2C_DATA_LO(); + } + + I2C_CLOCK_HI(); + _delay_us(I2C_DELAY); + + I2C_CLOCK_LO(); + _delay_us(I2C_DELAY); + + if (c > 0) + { + I2C_DATA_LO(); + } + + _delay_us(I2C_DELAY); +} + +// Inits bitbanging port, must be called before using the functions below +// +void I2C_Init() +{ + I2C_PORT &= ~ ((1 << I2C_DAT) | (1 << I2C_CLK)); + + I2C_CLOCK_HI(); + I2C_DATA_HI(); + + _delay_us(I2C_DELAY); +} + +// Send a START Condition +// +void I2C_Start() +{ + // set both to high at the same time + I2C_DDR &= ~ ((1 << I2C_DAT) | (1 << I2C_CLK)); + _delay_us(I2C_DELAY); + + I2C_DATA_LO(); + _delay_us(I2C_DELAY); + + I2C_CLOCK_LO(); + _delay_us(I2C_DELAY); +} + +// Send a STOP Condition +// +void I2C_Stop() +{ + I2C_CLOCK_HI(); + _delay_us(I2C_DELAY); + + I2C_DATA_HI(); + _delay_us(I2C_DELAY); +} + +// write a byte to the I2C slave device +// +unsigned char I2C_Write(unsigned char c) +{ + for (char i = 0; i < 8; i++) + { + I2C_WriteBit(c & 128); + + c <<= 1; + } + + + I2C_WriteBit(0); + _delay_us(I2C_DELAY); + _delay_us(I2C_DELAY); + + // _delay_us(I2C_DELAY); + //return I2C_ReadBit(); + return 0; +} + + +#endif + // Setleds for standard RGB void inline ws2812_setleds(struct cRGB *ledarray, uint16_t leds) { @@ -41,6 +157,25 @@ void inline ws2812_setleds_rgbw(struct cRGBW *ledarray, uint16_t leds) _SFR_IO8((RGB_DI_PIN >> 4) + 1) |= _BV(RGB_DI_PIN & 0xF); ws2812_sendarray_mask((uint8_t*)ledarray,leds<<2,_BV(RGB_DI_PIN & 0xF)); + + #ifdef RGBW_BB_TWI + cli(); + TWCR = 0; + I2C_Init(); + I2C_Start(); + I2C_Write(0x84); + uint16_t datlen = leds<<2; + uint8_t curbyte; + uint8_t * data = (uint8_t*)ledarray; + while (datlen--) { + curbyte=*data++; + I2C_Write(curbyte % 0x10); + } + I2C_Stop(); + sei(); + #endif + + _delay_us(80); } @@ -123,7 +258,7 @@ void inline ws2812_sendarray_mask(uint8_t *data,uint16_t datlen,uint8_t maskhi) cli(); while (datlen--) { - curbyte=*data++; + curbyte=(*data++) % 0x10; asm volatile( " ldi %0,8 \n\t" diff --git a/quantum/light_ws2812.h b/quantum/light_ws2812.h index 54eef22d9..576c3bc48 100755 --- a/quantum/light_ws2812.h +++ b/quantum/light_ws2812.h @@ -16,6 +16,13 @@ #include #include //#include "ws2812_config.h" +#include "i2cmaster.h" + +#define LIGHT_I2C 1 +#define LIGHT_I2C_ADDR 0x84 +#define LIGHT_I2C_ADDR_WRITE ( (LIGHT_I2C_ADDR<<1) | I2C_WRITE ) +#define LIGHT_I2C_ADDR_READ ( (LIGHT_I2C_ADDR<<1) | I2C_READ ) + /* * Structure of the LED array diff --git a/quantum/quantum.c b/quantum/quantum.c index a16bd5443..5fa5e66b3 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -128,6 +128,9 @@ bool process_record_quantum(keyrecord_t *record) { #endif #ifdef UCIS_ENABLE process_ucis(keycode, record) && + #endif + #ifdef PRINTING_ENABLE + process_printer(keycode, record) && #endif true)) { return false; diff --git a/quantum/quantum.h b/quantum/quantum.h index 0c6046649..06a2e049d 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -59,6 +59,10 @@ extern uint32_t default_layer_state; #include "process_tap_dance.h" +#ifdef PRINTING_ENABLE + #include "process_printer.h" +#endif + #define SEND_STRING(str) send_string(PSTR(str)) void send_string(const char *str); -- cgit v1.2.3 From a889b899e2cf52b3b7807d8a7ad39f12e0761a10 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 16 Oct 2016 16:03:56 -0400 Subject: working with power limit --- keyboards/planck/keymaps/thermal_printer/Makefile | 26 ++ keyboards/planck/keymaps/thermal_printer/config.h | 23 ++ keyboards/planck/keymaps/thermal_printer/keymap.c | 314 +++++++++++++++++++++ keyboards/planck/keymaps/thermal_printer/readme.md | 2 + quantum/process_keycode/process_printer.c | 254 +++++++++++++++++ quantum/process_keycode/process_printer.h | 8 + quantum/process_keycode/process_printer_bb.c | 260 +++++++++++++++++ 7 files changed, 887 insertions(+) create mode 100644 keyboards/planck/keymaps/thermal_printer/Makefile create mode 100644 keyboards/planck/keymaps/thermal_printer/config.h create mode 100644 keyboards/planck/keymaps/thermal_printer/keymap.c create mode 100644 keyboards/planck/keymaps/thermal_printer/readme.md create mode 100644 quantum/process_keycode/process_printer.c create mode 100644 quantum/process_keycode/process_printer.h create mode 100644 quantum/process_keycode/process_printer_bb.c (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/thermal_printer/Makefile b/keyboards/planck/keymaps/thermal_printer/Makefile new file mode 100644 index 000000000..3d1d11877 --- /dev/null +++ b/keyboards/planck/keymaps/thermal_printer/Makefile @@ -0,0 +1,26 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +PRINTING_ENABLE = yes + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/planck/keymaps/thermal_printer/config.h b/keyboards/planck/keymaps/thermal_printer/config.h new file mode 100644 index 000000000..430b6493c --- /dev/null +++ b/keyboards/planck/keymaps/thermal_printer/config.h @@ -0,0 +1,23 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +# define SERIAL_UART_BAUD 19200 +# define SERIAL_UART_DATA UDR1 +# define SERIAL_UART_UBRR (F_CPU / (16UL * SERIAL_UART_BAUD) - 1) +# define SERIAL_UART_RXD_VECT USART1_RX_vect +# define SERIAL_UART_TXD_READY (UCSR1A & _BV(UDRE1)) +# define SERIAL_UART_INIT() do { \ + /* baud rate */ \ + UBRR1L = SERIAL_UART_UBRR; \ + /* baud rate */ \ + UBRR1H = SERIAL_UART_UBRR >> 8; \ + /* enable TX */ \ + UCSR1B = _BV(TXEN1); \ + /* 8-bit data */ \ + UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); \ + sei(); \ + } while(0) + + #endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/thermal_printer/keymap.c b/keyboards/planck/keymaps/thermal_printer/keymap.c new file mode 100644 index 000000000..e88059731 --- /dev/null +++ b/keyboards/planck/keymaps/thermal_printer/keymap.c @@ -0,0 +1,314 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "planck.h" +#include "action_layer.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _PLOVER 5 +#define _ADJUST 16 + +enum planck_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + PLOVER, + LOWER, + RAISE, + BACKLIT, + EXT_PLV +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = { + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = { + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = { + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Plover layer (http://opensteno.org) + * ,-----------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | S | T | P | H | * | * | F | P | L | T | D | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |TogOut| S | K | W | R | * | * | R | B | G | S | Z | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | | | A | O | | E | U | | | | + * `-----------------------------------------------------------------------------------' + */ + +[_PLOVER] = { + {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, + {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, + {XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | Print|no prnt | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {_______, RESET, _______, PRINT_ON, PRINT_OFF, _______, _______, _______, _______, _______, _______, KC_DEL}, + {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} + + +}; + +#ifdef AUDIO_ENABLE + +float tone_startup[][2] = SONG(STARTUP_SOUND); +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float tone_plover[][2] = SONG(PLOVER_SOUND); +float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); + +float tone_goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistant_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistant_default_layer_set(1UL<<_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistant_default_layer_set(1UL<<_DVORAK); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + return false; + break; + case PLOVER: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_NOTE_ARRAY(tone_plover, false, 0); + #endif + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + return false; + break; + case EXT_PLV: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); + #endif + layer_off(_PLOVER); + } + return false; + break; + } + return true; +} + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + startup_user(); + #endif +} + +#ifdef AUDIO_ENABLE + +void startup_user() +{ + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); +} + +void shutdown_user() +{ + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + _delay_ms(150); + stop_all_notes(); +} + +void music_on_user(void) +{ + music_scale_user(); +} + +void music_scale_user(void) +{ + PLAY_NOTE_ARRAY(music_scale, false, 0); +} + +#endif diff --git a/keyboards/planck/keymaps/thermal_printer/readme.md b/keyboards/planck/keymaps/thermal_printer/readme.md new file mode 100644 index 000000000..de9680b49 --- /dev/null +++ b/keyboards/planck/keymaps/thermal_printer/readme.md @@ -0,0 +1,2 @@ +# The Default Planck Layout + diff --git a/quantum/process_keycode/process_printer.c b/quantum/process_keycode/process_printer.c new file mode 100644 index 000000000..2e11dd366 --- /dev/null +++ b/quantum/process_keycode/process_printer.c @@ -0,0 +1,254 @@ +#include "process_printer.h" +#include "action_util.h" + +bool printing_enabled = false; +uint8_t character_shift = 0; + +void enabled_printing() { + printing_enabled = true; + serial_init(); +} + +void disable_printing() { + printing_enabled = false; +} + +uint8_t shifted_numbers[10] = {0x21, 0x40, 0x23, 0x24, 0x25, 0x5E, 0x26, 0x2A, 0x28, 0x29}; + +// uint8_t keycode_to_ascii[0xFF][2]; + +// keycode_to_ascii[KC_MINS] = {0x2D, 0x5F}; + +void print_char(char c) { + USB_Disable(); + serial_send(c); + USB_Init(); +} + +void print_box_string(uint8_t text[]) { + uint8_t len = strlen(text); + uint8_t out[len * 3 + 8]; + out[0] = 0xDA; + for (uint8_t i = 0; i < len; i++) { + out[i+1] = 0xC4; + } + out[len + 1] = 0xBF; + out[len + 2] = '\n'; + + out[len + 3] = 0xB3; + for (uint8_t i = 0; i < len; i++) { + out[len + 4 + i] = text[i]; + } + out[len * 2 + 4] = 0xB3; + out[len * 2 + 5] = '\n'; + + + out[len * 2 + 6] = 0xC0; + for (uint8_t i = 0; i < len; i++) { + out[len * 2 + 7 + i] = 0xC4; + } + out[len * 3 + 7] = 0xD9; + out[len * 3 + 8] = '\n'; + + print_string(out); +} + +void print_string(char c[]) { + for(uint8_t i = 0; i < strlen(c); i++) + print_char(c[i]); +} + +bool process_printer(uint16_t keycode, keyrecord_t *record) { + if (keycode == PRINT_ON) { + enabled_printing(); + return false; + } + if (keycode == PRINT_OFF) { + disable_printing(); + return false; + } + + if (printing_enabled) { + switch(keycode) { + case KC_EXLM ... KC_RPRN: + case KC_UNDS: + case KC_PLUS: + case KC_LCBR: + case KC_RCBR: + case KC_PIPE: + case KC_TILD: + keycode &= 0xFF; + case KC_LSFT: + case KC_RSFT: + if (record->event.pressed) { + character_shift++; + } else { + character_shift--; + } + return false; + break; + } + + switch(keycode) { + case KC_F1: + if (record->event.pressed) { + print_box_string("This is a line of text!"); + } + return false; + case KC_ESC: + if (record->event.pressed) { + print_char(0x1B); + } + return false; + break; + case KC_SPC: + if (record->event.pressed) { + print_char(0x20); + } + return false; + break; + case KC_A ... KC_Z: + if (record->event.pressed) { + if (character_shift) { + print_char(0x41 + (keycode - KC_A)); + } else { + print_char(0x61 + (keycode - KC_A)); + } + } + return false; + break; + case KC_1 ... KC_0: + if (record->event.pressed) { + if (character_shift) { + print_char(shifted_numbers[keycode - KC_1]); + } else { + print_char(0x30 + ((keycode - KC_1 + 1) % 10)); + } + } + return false; + break; + case KC_ENT: + if (record->event.pressed) { + if (character_shift) { + print_char(0x0C); + } else { + print_char(0x0A); + } + } + return false; + break; + case KC_BSPC: + if (record->event.pressed) { + if (character_shift) { + print_char(0x18); + } else { + print_char(0x1A); + } + } + return false; + break; + case KC_DOT: + if (record->event.pressed) { + if (character_shift) { + print_char(0x3E); + } else { + print_char(0x2E); + } + } + return false; + break; + case KC_COMM: + if (record->event.pressed) { + if (character_shift) { + print_char(0x3C); + } else { + print_char(0x2C); + } + } + return false; + break; + case KC_SLSH: + if (record->event.pressed) { + if (character_shift) { + print_char(0x3F); + } else { + print_char(0x2F); + } + } + return false; + break; + case KC_QUOT: + if (record->event.pressed) { + if (character_shift) { + print_char(0x22); + } else { + print_char(0x27); + } + } + return false; + break; + case KC_GRV: + if (record->event.pressed) { + if (character_shift) { + print_char(0x7E); + } else { + print_char(0x60); + } + } + return false; + break; + case KC_MINS: + if (record->event.pressed) { + if (character_shift) { + print_char(0x5F); + } else { + print_char(0x2D); + } + } + return false; + break; + case KC_EQL: + if (record->event.pressed) { + if (character_shift) { + print_char(0x2B); + } else { + print_char(0x3D); + } + } + return false; + break; + case KC_LBRC: + if (record->event.pressed) { + if (character_shift) { + print_char(0x7B); + } else { + print_char(0x5B); + } + } + return false; + break; + case KC_RBRC: + if (record->event.pressed) { + if (character_shift) { + print_char(0x7D); + } else { + print_char(0x5D); + } + } + return false; + break; + case KC_BSLS: + if (record->event.pressed) { + if (character_shift) { + print_char(0x7C); + } else { + print_char(0x5C); + } + } + return false; + break; + } + } + return true; + +} \ No newline at end of file diff --git a/quantum/process_keycode/process_printer.h b/quantum/process_keycode/process_printer.h new file mode 100644 index 000000000..fdd36d75a --- /dev/null +++ b/quantum/process_keycode/process_printer.h @@ -0,0 +1,8 @@ +#ifndef PROCESS_PRINTER_H +#define PROCESS_PRINTER_H + +#include "quantum.h" + +#include "protocol/serial.h" + +#endif \ No newline at end of file diff --git a/quantum/process_keycode/process_printer_bb.c b/quantum/process_keycode/process_printer_bb.c new file mode 100644 index 000000000..1924d0377 --- /dev/null +++ b/quantum/process_keycode/process_printer_bb.c @@ -0,0 +1,260 @@ +#include "process_printer.h" +#include "action_util.h" + +bool printing_enabled = false; +uint8_t character_shift = 0; + +#define SERIAL_PIN_DDR DDRD +#define SERIAL_PIN_PORT PORTD +#define SERIAL_PIN_MASK _BV(PD3) +#define SERIAL_DELAY 52 + +inline static +void serial_delay(void) { + _delay_us(SERIAL_DELAY); +} + +inline static +void serial_high(void) { + SERIAL_PIN_PORT |= SERIAL_PIN_MASK; +} + +inline static +void serial_low(void) { + SERIAL_PIN_PORT &= ~SERIAL_PIN_MASK; +} + +inline static +void serial_output(void) { + SERIAL_PIN_DDR |= SERIAL_PIN_MASK; +} + + +void enabled_printing() { + printing_enabled = true; + serial_output(); + serial_high(); +} + +void disable_printing() { + printing_enabled = false; +} + +uint8_t shifted_numbers[10] = {0x21, 0x40, 0x23, 0x24, 0x25, 0x5E, 0x26, 0x2A, 0x28, 0x29}; + +// uint8_t keycode_to_ascii[0xFF][2]; + +// keycode_to_ascii[KC_MINS] = {0x2D, 0x5F}; + +void print_char(char c) { + uint8_t b = 8; + serial_output(); + while( b-- ) { + if(c & (1 << b)) { + serial_high(); + } else { + serial_low(); + } + serial_delay(); + } +} + +void print_string(char c[]) { + for(uint8_t i = 0; i < strlen(c); i++) + print_char(c[i]); +} + +bool process_printer(uint16_t keycode, keyrecord_t *record) { + if (keycode == PRINT_ON) { + enabled_printing(); + return false; + } + if (keycode == PRINT_OFF) { + disable_printing(); + return false; + } + + if (printing_enabled) { + switch(keycode) { + case KC_EXLM ... KC_RPRN: + case KC_UNDS: + case KC_PLUS: + case KC_LCBR: + case KC_RCBR: + case KC_PIPE: + case KC_TILD: + keycode &= 0xFF; + case KC_LSFT: + case KC_RSFT: + if (record->event.pressed) { + character_shift++; + } else { + character_shift--; + } + return false; + break; + } + + switch(keycode) { + case KC_F1: + if (record->event.pressed) { + print_string("This is a line of text!\n\n\n"); + } + return false; + case KC_ESC: + if (record->event.pressed) { + print_char(0x1B); + } + return false; + break; + case KC_SPC: + if (record->event.pressed) { + print_char(0x20); + } + return false; + break; + case KC_A ... KC_Z: + if (record->event.pressed) { + if (character_shift) { + print_char(0x41 + (keycode - KC_A)); + } else { + print_char(0x61 + (keycode - KC_A)); + } + } + return false; + break; + case KC_1 ... KC_0: + if (record->event.pressed) { + if (character_shift) { + print_char(shifted_numbers[keycode - KC_1]); + } else { + print_char(0x30 + ((keycode - KC_1 + 1) % 10)); + } + } + return false; + break; + case KC_ENT: + if (record->event.pressed) { + if (character_shift) { + print_char(0x0C); + } else { + print_char(0x0A); + } + } + return false; + break; + case KC_BSPC: + if (record->event.pressed) { + if (character_shift) { + print_char(0x18); + } else { + print_char(0x1A); + } + } + return false; + break; + case KC_DOT: + if (record->event.pressed) { + if (character_shift) { + print_char(0x3E); + } else { + print_char(0x2E); + } + } + return false; + break; + case KC_COMM: + if (record->event.pressed) { + if (character_shift) { + print_char(0x3C); + } else { + print_char(0x2C); + } + } + return false; + break; + case KC_SLSH: + if (record->event.pressed) { + if (character_shift) { + print_char(0x3F); + } else { + print_char(0x2F); + } + } + return false; + break; + case KC_QUOT: + if (record->event.pressed) { + if (character_shift) { + print_char(0x22); + } else { + print_char(0x27); + } + } + return false; + break; + case KC_GRV: + if (record->event.pressed) { + if (character_shift) { + print_char(0x7E); + } else { + print_char(0x60); + } + } + return false; + break; + case KC_MINS: + if (record->event.pressed) { + if (character_shift) { + print_char(0x5F); + } else { + print_char(0x2D); + } + } + return false; + break; + case KC_EQL: + if (record->event.pressed) { + if (character_shift) { + print_char(0x2B); + } else { + print_char(0x3D); + } + } + return false; + break; + case KC_LBRC: + if (record->event.pressed) { + if (character_shift) { + print_char(0x7B); + } else { + print_char(0x5B); + } + } + return false; + break; + case KC_RBRC: + if (record->event.pressed) { + if (character_shift) { + print_char(0x7D); + } else { + print_char(0x5D); + } + } + return false; + break; + case KC_BSLS: + if (record->event.pressed) { + if (character_shift) { + print_char(0x7C); + } else { + print_char(0x5C); + } + } + return false; + break; + } + } + return true; + +} \ No newline at end of file -- cgit v1.2.3 From 826417bfc001377719c9034fe273d1596ba62c9c Mon Sep 17 00:00:00 2001 From: IBNobody Date: Tue, 18 Oct 2016 16:45:45 -0500 Subject: Updating Vision keyboard files --- keyboards/vision_division/keymaps/default/Makefile | 4 +- keyboards/vision_division/keymaps/default/keymap.c | 211 +++++++++++---------- 2 files changed, 116 insertions(+), 99 deletions(-) (limited to 'keyboards') diff --git a/keyboards/vision_division/keymaps/default/Makefile b/keyboards/vision_division/keymaps/default/Makefile index 5a930e85e..28060947a 100644 --- a/keyboards/vision_division/keymaps/default/Makefile +++ b/keyboards/vision_division/keymaps/default/Makefile @@ -2,7 +2,7 @@ # change to "no" to disable the options, or define them in the Makefile in # the appropriate keymap folder that will get included automatically # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = yes # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) CONSOLE_ENABLE = yes # Console for debug(+400) @@ -18,4 +18,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend ifndef QUANTUM_DIR include ../../../../Makefile -endif \ No newline at end of file +endif diff --git a/keyboards/vision_division/keymaps/default/keymap.c b/keyboards/vision_division/keymaps/default/keymap.c index 64118abdc..8622ee521 100644 --- a/keyboards/vision_division/keymaps/default/keymap.c +++ b/keyboards/vision_division/keymaps/default/keymap.c @@ -121,6 +121,7 @@ enum keyboard_macros { #define M_CP_CT M(MACRO_COPY_CUT) +#define M_COPY KC_FN1 #define SC_UNDO LCTL(KC_Z) #define SC_REDO LCTL(KC_Y) @@ -145,31 +146,31 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* LAYER = LAYER_QWERTY .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .-----------------------------------. - | FN | PRINT | SCR LK | PAUSE | | F1 | F2 | F3 | F4 | XXXXXX | F5 | F6 | F7 | F8 | XXXXXX | F9 | F10 | F11 | F12 | | VOL DN | MUTE | VOL UP | BACKLT | + | VOL DN | MUTE | VOL UP | BACKLT | | F1 | F2 | F3 | F4 | XXXXXX | F5 | F6 | F7 | F8 | XXXXXX | F9 | F10 | F11 | F12 | | PRINT | SCR LK | PAUSE | FN | '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------' .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .-----------------------------------. - | M1 | INS | HOME | PG UP | | ESC | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | = | BACKSP | | NUM LK | KP / | KP * | KP - | + | NUM LK | KP / | KP * | KP - | | ESC | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | = | BACKSP | | INS | HOME | PG UP | M1 | |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------|--------|--------+--------| - | M2 | DEL | END | PG DN | | TAB | TAB | Q | W | E | R | T | Y | U | I | O | P | - | \ | | KP 7 | KP 8 | KP 9 | KP + | + | KP 7 | KP 8 | KP 9 | KP + | | TAB | TAB | Q | W | E | R | T | Y | U | I | O | P | - | \ | | DEL | END | PG DN | M2 | |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| o |--------|--------|--------+--------| - | M3 | UL | UP | UR | | CAP LK | BACKSP | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | o | KP 4 | KP 5 | KP 6 | KP + | + | KP 4 | KP 5 | KP 6 | KP + | | CAP LK | BACKSP | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | o | CP/CT | UNDO | PASTE | M3 | |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| o |--------|--------|--------+--------| - | M4 | LEFT | CP/CT | RIGHT | | LSHIFT | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | RSHIFT | | KP 1 | KP 2 | KP 3 | KP Ent | + | KP 1 | KP 2 | KP 3 | KP Ent | | LSHIFT | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT | RSHIFT | | XXXXXX | UP | XXXXXX | M4 | |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------|--------|--------+--------| - | M5 | DL | DOWN | DR | | LCTRL | XXXXXX | XXXXXX | LWIN | LALT | LOWER | SPACE . SPACE | UPPER | OSHIFT | RALT | APP | XXXXXX | RCTRL | | KP 0 | KP , | KP . | KP Ent | + | KP 0 | KP , | KP . | KP Ent | | LCTRL | XXXXXX | LWIN | XXXXXX | LALT | UPPER | SPACE . SPACE | LOWER | OSHIFT | RALT | APP | XXXXXX | RCTRL | | LEFT | DOWN | RIGHT | M5 | '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------' */ KEYMAP(LAYER_QWERTY, \ - M_HELP , KC_PSCR, KC_SLCK, KC_PAUS, KC_F1 , KC_F2 , KC_F3 , KC_F4 , XXXXXXX, KC_F5 , KC_F6 , KC_F7 , KC_F8 , XXXXXXX, KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_VOLD, KC_MUTE, KC_VOLU, M_BACKL, \ - M_M1 , KC_INS , KC_HOME, KC_PGUP, KC_ESC , KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_EQL , KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ - M_M2 , KC_DEL , KC_END , KC_PGDN, KC_TAB , KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_MINS, KC_BSLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PPLS, \ - M_M3 , M_UL , KC_UP , M_UR , KC_CAPS, KC_BSPC, 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_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, \ - M_M4 , KC_LEFT, M_CP_CT, KC_RGHT, KC_LSFT, 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_RSFT, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, \ - M_M5 , M_DL , KC_DOWN, M_DR , KC_LCTL, XXXXXXX, XXXXXXX, KC_LGUI, KC_LALT, M_LOWER, KC_SPC , KC_SPC , M_UPPER, OS_SHFT, KC_RALT, KC_APP , XXXXXXX, KC_RCTL, KC_KP_0, KC_PCMM, KC_PDOT, KC_PENT \ + KC_VOLD, KC_MUTE, KC_VOLU, M_BACKL, KC_F1 , KC_F2 , KC_F3 , KC_F4 , XXXXXXX, KC_F5 , KC_F6 , KC_F7 , KC_F8 , XXXXXXX, KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PSCR, KC_SLCK, KC_PAUS, M_HELP , \ + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_ESC , KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_EQL , KC_BSPC, KC_INS , KC_HOME, KC_PGUP, M_M1 , \ + KC_KP_7, KC_KP_8, KC_KP_9, KC_PPLS, KC_TAB , KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_MINS, KC_BSLS, KC_DEL , KC_END , KC_PGDN, M_M2 , \ + KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, KC_CAPS, KC_BSPC, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , M_CP_CT, SC_UNDO, SC_PSTE, M_M3 , \ + KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, KC_LSFT, 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_RSFT, XXXXXXX, KC_UP , XXXXXXX, M_M4 , \ + KC_KP_0, KC_PCMM, KC_PDOT, KC_PENT, KC_LCTL, XXXXXXX, KC_LGUI, XXXXXXX, KC_LALT, M_UPPER, KC_SPC , KC_SPC , M_LOWER, OS_SHFT, KC_RALT, KC_APP , XXXXXXX, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, M_M5 \ ), /* LAYER = LAYER_LOWER .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .-----------------------------------. - | ______ | ______ | ______ | ______ | | F13 | F14 | F15 | F16 | XXXXXX | F17 | F18 | F19 | F20 | XXXXXX | F21 | F22 | F23 | F24 | | ______ | MUTE A | ______ | ______ | + | ______ | MUTE A | ______ | ______ | | F13 | F14 | F15 | F16 | XXXXXX | F17 | F18 | F19 | F20 | XXXXXX | F21 | F22 | F23 | F24 | | ______ | ______ | ______ | ______ | '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------' .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .-----------------------------------. | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | @@ -180,20 +181,20 @@ KEYMAP(LAYER_QWERTY, \ |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| o |--------|--------|--------+--------| | ______ | ______ | ______ | ______ | | ______ | ______ | | | & | ! | ~ | ; | : | = | < | > | ? | ______ | ______ | | ______ | ______ | ______ | ______ | |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------|--------|--------+--------| - | ______ | ______ | ______ | ______ | | ______ | XXXXXX | XXXXXX | ______ | ______ | ______ | ______ . ______ | LOWER | ______ | ______ | ______ | XXXXXX | ______ | | ______ | ______ | ______ | ______ | + | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | ______ | ______ | ______ . ______ | LOWER | ______ | ______ | ______ | XXXXXX | ______ | | ______ | ______ | ______ | ______ | '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------' */ KEYMAP(LAYER_LOWER, \ - _______, _______, _______, _______, KC_F13 , KC_F14 , KC_F15 , KC_F16 , XXXXXXX, KC_F17 , KC_F18 , KC_F19 , KC_F20 , XXXXXXX, KC_F21 , KC_F22 , KC_F23 , KC_F24 , _______, M_MUTEA, _______, _______, \ + _______, M_MUTEA, _______, _______, KC_F13 , KC_F14 , KC_F15 , KC_F16 , XXXXXXX, KC_F17 , KC_F18 , KC_F19 , KC_F20 , XXXXXXX, KC_F21 , KC_F22 , KC_F23 , KC_F24 , _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, KC_DLR , KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT , _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, KC_CIRC, KC_ASTR, KC_PLUS, KC_MINS, KC_SLSH, KC_BSLS, KC_UNDS, KC_QUOT, KC_DQT , KC_GRV , _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, KC_PIPE, KC_AMPR, KC_EXLM, KC_TILD, KC_SCLN, KC_COLN, KC_EQL , KC_LT , KC_GT , KC_QUES, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, M_LOWER, _______, _______, _______, XXXXXXX, _______, _______, _______, _______, _______ \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, M_LOWER, _______, _______, _______, XXXXXXX, _______, _______, _______, _______, _______ \ ), /* LAYER = LAYER_UPPER .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .-----------------------------------. - | ______ | ______ | ______ | ______ | | F13 | F14 | F15 | F16 | XXXXXX | F17 | F18 | F19 | F20 | XXXXXX | F21 | F22 | F23 | F24 | | ______ | MUTE A | ______ | ______ | + | ______ | MUTE A | ______ | ______ | | F13 | F14 | F15 | F16 | XXXXXX | F17 | F18 | F19 | F20 | XXXXXX | F21 | F22 | F23 | F24 | | ______ | ______ | ______ | ______ | '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------' .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .-----------------------------------. | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | @@ -204,44 +205,44 @@ KEYMAP(LAYER_LOWER, \ |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| o |--------|--------|--------+--------| | ______ | ______ | ______ | ______ | | ______ | ______ | F9 | F10 | F11 | F12 | SCR LK | KP 0 | KP 1 | KP 2 | KP 3 | KP Ent | ______ | ______ | | ______ | ______ | ______ | ______ | |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------|--------|--------+--------| - | ______ | ______ | ______ | ______ | | ______ | XXXXXX | XXXXXX | ______ | ______ | UPPER | KP 0 . KP 0 | ______ | RALT | KP . | KP Ent | XXXXXX | ______ | | ______ | ______ | ______ | ______ | + | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | ______ | UPPER | KP 0 . KP 0 | ______ | RALT | KP . | KP Ent | XXXXXX | ______ | | ______ | ______ | ______ | ______ | '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------' */ KEYMAP(LAYER_UPPER, \ - _______, _______, _______, _______, KC_F13 , KC_F14 , KC_F15 , KC_F16 , XXXXXXX, KC_F17 , KC_F18 , KC_F19 , KC_F20 , XXXXXXX, KC_F21 , KC_F22 , KC_F23 , KC_F24 , _______, M_MUTEA, _______, _______, \ + _______, M_MUTEA, _______, _______, KC_F13 , KC_F14 , KC_F15 , KC_F16 , XXXXXXX, KC_F17 , KC_F18 , KC_F19 , KC_F20 , XXXXXXX, KC_F21 , KC_F22 , KC_F23 , KC_F24 , _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_NLCK, KC_PSLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_CAPS, KC_PAST, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_SLCK, KC_KP_0, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, M_UPPER, KC_KP_0, KC_KP_0, _______, KC_RALT, KC_PDOT, KC_PENT, XXXXXXX, _______, _______, _______, _______, _______ \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, M_UPPER, KC_KP_0, KC_KP_0, _______, KC_RALT, KC_PDOT, KC_PENT, XXXXXXX, _______, _______, _______, _______, _______ \ ), /* LAYER = LAYER_MOUSE .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .-----------------------------------. | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------' .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .-----------------------------------. - | MS BT1 | MS AC0 | MS WHU | MS AC2 | | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | + | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | | MS AC0 | MS WHU | MS AC2 | MS BT1 | |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------|--------|--------+--------| - | MS BT2 | MS WHL | MS WHD | MS WHU | | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | + | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | | MS WHL | MS WHD | MS WHU | MS BT2 | |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| o |--------|--------|--------+--------| - | MS BT3 | MS UL | MS U | MS UR | | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | o | ______ | ______ | ______ | ______ | + | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | o | MS BT1 | MS BT2 | MS BT3 | MS BT3 | |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| o |--------|--------|--------+--------| - | MS BT4 | MS L | MS BT1 | MS R | | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | + | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | | XXXXXX | MS U | XXXXXX | MS BT4 | |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------|--------|--------+--------| - | MS BT5 | MS DL | MS D | MS DR | | ______ | ______ | ______ | ______ | ______ | ______ | ______ . ______ | ______ | ______ | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | + | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | ______ | ______ | ______ . ______ | ______ | ______ | ______ | ______ | ______ | ______ | | MS L | MS D | MS R | MS BT5 | '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------' */ KEYMAP(LAYER_MOUSE, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - KC_BTN1, KC_ACL0, KC_WH_U, KC_ACL2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - KC_BTN2, KC_WH_L, KC_WH_D, KC_WH_U, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - KC_BTN3, M_MS_UL, KC_MS_U, M_MS_UR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - KC_BTN4, KC_MS_L, KC_BTN1, KC_MS_R, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - KC_BTN5, M_MS_DL, KC_MS_D, M_MS_DR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ACL0, KC_WH_U, KC_ACL2, KC_BTN1, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_U, KC_BTN2, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN3, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_MS_U, XXXXXXX, KC_BTN4, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN5 \ ), /* LAYER = LAYER_ADJUST .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .-----------------------------------. - | XXXXXX | XXXXXX | XXXXXX | XXXXXX | | HELP 1 | HELP 2 | HELP 3 | HELP 4 | XXXXXX | HELP 5 | HELP 6 | HELP 7 | HELP 8 | XXXXXX | HELP 9 | HELP 0 | XXXXXX | XXXXXX | | VOICE- | AUDIO | VOICE+ | MUSIC | + | VOICE- | AUDIO | VOICE+ | MUSIC | | HELP 1 | HELP 2 | HELP 3 | HELP 4 | XXXXXX | HELP 5 | HELP 6 | HELP 7 | HELP 8 | XXXXXX | HELP 9 | HELP 0 | XXXXXX | XXXXXX | | XXXXXX | XXXXXX | XXXXXX | XXXXXX | '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------' .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .-----------------------------------. | XXXXXX | XXXXXX | XXXXXX | XXXXXX | | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | | XXXXXX | XXXXXX | XXXXXX | XXXXXX | @@ -256,14 +257,13 @@ KEYMAP(LAYER_MOUSE, \ '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------' */ KEYMAP(LAYER_ADJUST, \ - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_HELP1, M_HELP2, M_HELP3, M_HELP4, XXXXXXX, M_HELP5, M_HELP6, M_HELP7, M_HELP8, XXXXXXX, M_HELP9, M_HELP0, XXXXXXX, XXXXXXX, MUV_DE , AU_TOG , MUV_IN , MU_TOG , \ + MUV_DE , AU_TOG , MUV_IN , MU_TOG , M_HELP1, M_HELP2, M_HELP3, M_HELP4, XXXXXXX, M_HELP5, M_HELP6, M_HELP7, M_HELP8, XXXXXXX, M_HELP9, M_HELP0, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET , XXXXXXX, M_MOUSE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_UPPER, XXXXXXX, XXXXXXX, M_LOWER, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \ ), - }; #ifdef AUDIO_ENABLE @@ -296,6 +296,7 @@ void persistant_default_layer_set(uint16_t default_layer) const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_MODS_ONESHOT(MOD_LSFT), + [1] = ACTION_MACRO_TAP(MACRO_COPY_CUT), }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) @@ -305,68 +306,84 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) switch(id) { - case MACRO_HELP_1: - if (record->event.pressed) - { - uprint("H1"); - } - break; - - case MACRO_HELP_2: - if (record->event.pressed) - { - uprint("H2"); - } - break; - - case MACRO_HELP_3: - if (record->event.pressed) - { - uprint("H3"); - } - break; - - case MACRO_HELP_4: - if (record->event.pressed) - { - uprint("H4"); - } - break; - - case MACRO_HELP_5: - if (record->event.pressed) - { - uprint("H5"); - } - break; - - case MACRO_HELP_6: - if (record->event.pressed) - { - uprint("H6"); - } - break; - - case MACRO_HELP_7: - if (record->event.pressed) - { - uprint("H7"); - } - break; - - case MACRO_HELP_8: - if (record->event.pressed) - { - uprint("H8"); - } - break; - - case MACRO_HELP_9: - if (record->event.pressed) - { - uprint("H9"); - } - break; + case MACRO_COPY_CUT: + if (record->event.pressed) { + register_code(KC_LCTL); + if (record->tap.count == 1) { + register_code(KC_C); + unregister_code(KC_C); + } + else if (record->tap.count == 2) { + register_code(KC_X); + unregister_code(KC_X); + } + unregister_code(KC_LCTL); + } + break; + + + // case MACRO_HELP_1: + // if (record->event.pressed) + // { + // uprint("H1"); + // } + // break; + + // case MACRO_HELP_2: + // if (record->event.pressed) + // { + // uprint("H2"); + // } + // break; + + // case MACRO_HELP_3: + // if (record->event.pressed) + // { + // uprint("H3"); + // } + // break; + + // case MACRO_HELP_4: + // if (record->event.pressed) + // { + // uprint("H4"); + // } + // break; + + // case MACRO_HELP_5: + // if (record->event.pressed) + // { + // uprint("H5"); + // } + // break; + + // case MACRO_HELP_6: + // if (record->event.pressed) + // { + // uprint("H6"); + // } + // break; + + // case MACRO_HELP_7: + // if (record->event.pressed) + // { + // uprint("H7"); + // } + // break; + + // case MACRO_HELP_8: + // if (record->event.pressed) + // { + // uprint("H8"); + // } + // break; + + // case MACRO_HELP_9: + // if (record->event.pressed) + // { + // uprint("H9"); + // } + // break; case MACRO_BREATH_TOGGLE: if (record->event.pressed) @@ -566,12 +583,12 @@ void led_set_user(uint8_t usb_led) void startup_user() { _delay_ms(10); // gets rid of tick - PLAY_NOTE_ARRAY(tone_my_startup, false, STACCATO); + // PLAY_NOTE_ARRAY(tone_my_startup, false, STACCATO); } void shutdown_user() { - PLAY_NOTE_ARRAY(tone_my_goodbye, false, STACCATO); + // PLAY_NOTE_ARRAY(tone_my_goodbye, false, STACCATO); _delay_ms(2000); stop_all_notes(); } -- cgit v1.2.3 From 17170ba76d3c94edcf1ab263520238fdb0384774 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Sun, 23 Oct 2016 23:00:43 -0500 Subject: Fixed some large keyboard bugs Fixed some bugs relating to keyboards with more than 16 columns. Also added the ability to mask off keyboard matrix bits. --- keyboards/vision_division/config.h | 2 ++ keyboards/vision_division/keymaps/default/keymap.c | 11 +++++++ quantum/matrix.c | 37 +++++++++++++++++++--- readme.md | 1 + tmk_core/common/command.c | 6 ++-- 5 files changed, 50 insertions(+), 7 deletions(-) (limited to 'keyboards') diff --git a/keyboards/vision_division/config.h b/keyboards/vision_division/config.h index 1f8466a54..93c960671 100644 --- a/keyboards/vision_division/config.h +++ b/keyboards/vision_division/config.h @@ -33,6 +33,8 @@ along with this program. If not, see . /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCING_DELAY 5 +#define MATRIX_MASKED + /* define if matrix has ghost (lacks anti-ghosting diodes) */ //#define MATRIX_HAS_GHOST diff --git a/keyboards/vision_division/keymaps/default/keymap.c b/keyboards/vision_division/keymaps/default/keymap.c index 8622ee521..3282761c0 100644 --- a/keyboards/vision_division/keymaps/default/keymap.c +++ b/keyboards/vision_division/keymaps/default/keymap.c @@ -142,6 +142,17 @@ enum keyboard_macros { #define ________________ _______, _______ #define XXXXXXXXXXXXXXXX XXXXXXX, XXXXXXX +const matrix_row_t matrix_mask[MATRIX_ROWS] = +{ +// 1098765432109876543210987654321 + 0b0000000001111111101111011111111, + 0b0000000001111111111111111111111, + 0b0000000001111111111111111111111, + 0b0000000001111111111111111111111, + 0b0000000001010111111111111111111, + 0b0000000001111101111111101011111, +}; + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* LAYER = LAYER_QWERTY diff --git a/quantum/matrix.c b/quantum/matrix.c index 3174e0739..ac81794e5 100644 --- a/quantum/matrix.c +++ b/quantum/matrix.c @@ -26,6 +26,10 @@ along with this program. If not, see . #include "util.h" #include "matrix.h" +#ifdef MATRIX_MASKED +extern const matrix_row_t matrix_mask[]; +#endif + /* Set 0 if debouncing isn't needed */ #ifndef DEBOUNCING_DELAY @@ -218,15 +222,34 @@ bool matrix_is_on(uint8_t row, uint8_t col) inline matrix_row_t matrix_get_row(uint8_t row) { + // Matrix mask lets you disable switches in the returned matrix data. For example, if you have a + // switch blocker installed and the switch is always pressed. +#ifdef MATRIX_MASKED + return matrix[row] & matrix_mask[row]; +#else return matrix[row]; +#endif } void matrix_print(void) { +#if (MATRIX_COLS <= 8) + print("\nr/c 01234567\n"); +#elif (MATRIX_COLS <= 16) print("\nr/c 0123456789ABCDEF\n"); +#elif (MATRIX_COLS <= 32) + print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n"); +#endif + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { phex(row); print(": "); - pbin_reverse16(matrix_get_row(row)); +#if (MATRIX_COLS <= 8) + print_bin_reverse8(matrix_get_row(row)); +#elif (MATRIX_COLS <= 16) + print_bin_reverse16(matrix_get_row(row)); +#elif (MATRIX_COLS <= 32) + print_bin_reverse32(matrix_get_row(row)); +#endif print("\n"); } } @@ -235,7 +258,13 @@ uint8_t matrix_key_count(void) { uint8_t count = 0; for (uint8_t i = 0; i < MATRIX_ROWS; i++) { +#if (MATRIX_COLS <= 8) + count += bitpop(matrix[i]); +#elif (MATRIX_COLS <= 16) count += bitpop16(matrix[i]); +#elif (MATRIX_COLS <= 32) + count += bitpop32(matrix[i]); +#endif } return count; } @@ -259,7 +288,7 @@ static matrix_row_t read_cols(void) matrix_row_t result = 0; #if DIODE_DIRECTION == COL2ROW - for(int x = 0; x < MATRIX_COLS; x++) { + for(int x = 0; x < MATRIX_COLS; x++) { int pin = col_pins[x]; #else for(int x = 0; x < MATRIX_ROWS; x++) { @@ -273,10 +302,10 @@ static matrix_row_t read_cols(void) static void unselect_rows(void) { #if DIODE_DIRECTION == COL2ROW - for(int x = 0; x < MATRIX_ROWS; x++) { + for(int x = 0; x < MATRIX_ROWS; x++) { int pin = row_pins[x]; #else - for(int x = 0; x < MATRIX_COLS; x++) { + for(int x = 0; x < MATRIX_COLS; x++) { int pin = col_pins[x]; #endif _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); diff --git a/readme.md b/readme.md index 62d479ff1..c460933a7 100644 --- a/readme.md +++ b/readme.md @@ -241,6 +241,7 @@ You can also add extra options at the end of the make command line, after the ta * `make COLOR=false` - turns off color output * `make SILENT=true` - turns off output besides errors/warnings * `make VERBOSE=true` - outputs all of the gcc stuff (not interesting, unless you need to debug) +* `make EXTRAFLAGS=-E` - Preprocess the code without doing any compiling (useful if you are trying to debug #define commands) The make command itself also has some additional options, type `make --help` for more information. The most useful is probably `-jx`, which specifies that you want to compile using more than one CPU, the `x` represents the number of CPUs that you want to use. Setting that can greatly reduce the compile times, especially if you are compiling many keyboards/keymaps. I usually set it to one less than the number of CPUs that I have, so that I have some left for doing other things while it's compiling. Note that not all operating systems and make versions supports that option. diff --git a/tmk_core/common/command.c b/tmk_core/common/command.c index f3e1bf623..5f29bc0b4 100644 --- a/tmk_core/common/command.c +++ b/tmk_core/common/command.c @@ -379,11 +379,11 @@ static bool command_common(uint8_t code) debug_enable = !debug_enable; if (debug_enable) { print("\ndebug: on\n"); - debug_matrix = true; - debug_keyboard = true; - debug_mouse = true; } else { print("\ndebug: off\n"); + debug_matrix = false; + debug_keyboard = false; + debug_mouse = false; } break; -- cgit v1.2.3 From ef8f6180272c3e112f97a6beb9dd90bece3c2131 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Sun, 23 Oct 2016 23:03:26 -0500 Subject: Fixing Line Terminations --- .../ergodox/keymaps/win10_writers-block/config.h | 72 +-- .../ergodox/keymaps/win10_writers-block/keymap.c | 648 ++++++++++----------- .../ergodox/keymaps/win10_writers-block/readme.md | 224 +++---- 3 files changed, 472 insertions(+), 472 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/win10_writers-block/config.h b/keyboards/ergodox/keymaps/win10_writers-block/config.h index 568a711a8..43259db08 100644 --- a/keyboards/ergodox/keymaps/win10_writers-block/config.h +++ b/keyboards/ergodox/keymaps/win10_writers-block/config.h @@ -1,36 +1,36 @@ -#ifndef KEYBOARDS_ERGODOX_CONFIG_H_ -#define KEYBOARDS_ERGODOX_CONFIG_H_ - -#define MOUSEKEY_DELAY 100 -#define MOUSEKEY_INTERVAL 20 -#define MOUSEKEY_MAX_SPEED 3 -#define MOUSEKEY_TIME_TO_MAX 10 - -#define TAPPING_TOGGLE 1 - -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST - -#define TAPPING_TERM 300 -#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.) - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* key combination for command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \ - keyboard_report->mods == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \ -) - -#ifdef SUBPROJECT_ez - #include "ez/config.h" -#endif -#ifdef SUBPROJECT_infinity - #include "infinity/config.h" -#endif - - -#endif /* KEYBOARDS_ERGODOX_CONFIG_H_ */ +#ifndef KEYBOARDS_ERGODOX_CONFIG_H_ +#define KEYBOARDS_ERGODOX_CONFIG_H_ + +#define MOUSEKEY_DELAY 100 +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_MAX_SPEED 3 +#define MOUSEKEY_TIME_TO_MAX 10 + +#define TAPPING_TOGGLE 1 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +#define TAPPING_TERM 300 +#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.) + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \ + keyboard_report->mods == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \ +) + +#ifdef SUBPROJECT_ez + #include "ez/config.h" +#endif +#ifdef SUBPROJECT_infinity + #include "infinity/config.h" +#endif + + +#endif /* KEYBOARDS_ERGODOX_CONFIG_H_ */ diff --git a/keyboards/ergodox/keymaps/win10_writers-block/keymap.c b/keyboards/ergodox/keymaps/win10_writers-block/keymap.c index ea640ee96..3106b3374 100644 --- a/keyboards/ergodox/keymaps/win10_writers-block/keymap.c +++ b/keyboards/ergodox/keymaps/win10_writers-block/keymap.c @@ -1,324 +1,324 @@ -#include "ergodox.h" -#include "debug.h" -#include "action_layer.h" -#include "version.h" -#include "wait.h" - -#define BASE 0 // default layer - helpful for writing in Office-style word processors. -#define SYMB 1 // symbol layer - NumPad, etc. - same as Ergodox EZ default but no EEPROM or Version key -#define RIMW 2 // rimworld layer - made for the game RimWorld, by Tynan Sylvester | feel free to remap for your favorite game! -#define MDIA 3 // media layer - mouse and music - close to Ergodox EZ default media layer - -#define CO_PA M(0) // hold copy, tap paste - -#define W_CUT LCTL(KC_X) // C-x Cut -#define W_COPY LCTL(KC_C) // C-c Copy -#define W_PASTE LCTL(KC_V) // C-v Paste -#define W_UNDO LCTL(KC_Z) // C-z Undo -#define W_FIND LCTL(KC_F) // C-v Find -#define W_CAD LCTL(LALT(KC_DEL)) // one-tap ctrl-alt-del - - - -//Tap Dance Declarations -enum { - CAKEWARP, - CTRLALTMDIA, -}; - -void cake_count (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 2) { - layer_on (SYMB); //define double tap here - layer_off (MDIA); - } - else { - layer_off (SYMB); //define single tap or hold here - layer_off (MDIA); - } - if (state->count == 3) { - layer_on (RIMW); //define triple tap here - layer_off (MDIA); - } - else { - layer_off (RIMW); //define single tap or hold here - layer_off (MDIA); - reset_tap_dance (state); - } -} - -void dance_cad_mdia_fin (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - register_code (KC_LCTL); - register_code (KC_LALT); - register_code (KC_DEL); - } else { - layer_on (MDIA); - } -} - -void dance_cad_mdia_reset (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - unregister_code (KC_DEL); - unregister_code (KC_LALT); - unregister_code (KC_LCTL); - } else { - ; - } -} - -//Tap Dance Definitions -qk_tap_dance_action_t tap_dance_actions[] = { - // tap for Layer 0, tap twice to switch to symbol layer, and tap three times to switch to rimworld layer. - [CAKEWARP] = ACTION_TAP_DANCE_FN(cake_count) - // tap for ctrl-alt-del, tap twice for media layer - ,[CTRLALTMDIA] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_cad_mdia_fin, dance_cad_mdia_reset) - // Other declarations would go here, separated by commas, if you have them -}; - -//In Layer declaration, add tap dance item in place of a key code - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer - TD(one_tap, two_taps, three_taps...) - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 7 | 8 | 9 | 0 | - | = | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | F12/L1 | Q | W | E | R | T | {/[ | |TD(L0 | Y | U | I | O | P | \ | - * |--------+------+------+------+------+------| | |L1 L2)|------+------+------+------+------+--------| - * |Caps/Win| A | S | D | F | G |------| |------| H | J | K | L | ; | ' | - * |--------+------+------+------+------+------| }/] | TD(ctrl|------+------+------+------+------+--------| - * |LShift/(|Z/Ctrl| X | C | V | B | | |altdel| N | M | , | . | / |RShift/)| - * `--------+------+------+------+------+-------------' |L3) |------+------+------+------+------+--------' - * | Undo | Cut |CopyPa| Meh | LGui | '------| | Enter| Left | Up | Down | Right | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | Esc | VolUp| | F4 | Mute | - * ,------|------|------| |------+--------+------. - * | | | VolDn| | F5 | | | - * |Backsp|Delete|------| |------| Tab / |Space | - * |ace | | Find | | Alt | CTRL | | - * `--------------------' `----------------------' - */ -// If it accepts an argument (i.e, is a function), it doesn't need KC_. -// Otherwise, it needs KC_* -[BASE] = KEYMAP( // layer 0 : default - // left hand - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, -LT(SYMB, KC_F12), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, - GUI_T(KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSPO, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_RBRC, - W_UNDO, W_CUT, CO_PA, MEH_T(KC_NO), KC_LGUI, - KC_ESC, KC_VOLU, - KC_VOLD, - KC_BSPC, KC_DELETE, W_FIND, - // right hand - KC_7, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, - TD(CAKEWARP), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - TD(CTRLALTMDIA), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, - KC_ENT, KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT, - KC_F4, KC_MUTE, - KC_F5, - KC_RALT, CTL_T(KC_TAB), KC_SPC - ), - -/* Keymap 1: Symbol Layer | No EEPROM Or Version keys - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | xx | | xx | F6 | F7 | F8 | F9 | F10 | F11 | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | ! | @ | { | } | | | | |TD(L0 | Up | 7 | 8 | 9 | * | F12 | - * |--------+------+------+------+------+------| | |L1 L2)|------+------+------+------+------+--------| - * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | - | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | . | 0 | = | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// SYMBOLS -[SYMB] = KEYMAP( - // left hand - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO, - KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, - KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, - KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS,KC_TRNS, - KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS, - // right hand - KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, - KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_MINS, - KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, - KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_NO, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), - -/* Keymap 2: RimWorld Layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 7 | 8 | 9 | 0 | - | = | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | TAB | C | ,< | W | >. | R | | |TD(L0 | U | B | N | J | M | PGUP | - * |--------+------+------+------+------+------| F10 | |L1 L2)|------+------+------+------+------+--------| - * | I | F | A | S | D | 8 |------| |------| X | L | P | Y | H | ENTER | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | K | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | PGDN | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | F | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * |SPACE | C |------| |------| E |SPACE | - * | | | Q | | | | | - * `--------------------' `--------------------' - */ -// RIMWORLD -[RIMW] = KEYMAP( - // left hand - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, - KC_TAB, KC_C, KC_COMM, KC_W, KC_DOT, KC_R, KC_F10, - KC_I, KC_F, KC_A, KC_S, KC_D, KC_8, - KC_K, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, - KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS,KC_TRNS, - KC_TRNS, - KC_C,KC_Q,KC_TRNS, - // right hand - KC_7, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, - KC_TRNS, KC_U, KC_B, KC_N, KC_J, KC_M, KC_PGUP, - KC_X, KC_L, SFT_T(KC_P), KC_Y, KC_H, KC_ENT, - KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PGDN, - KC_F, KC_LEFT, KC_UP, KC_DOWN,KC_RIGHT, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_E, KC_TRNS -), -/* Keymap 3: Media and mouse keys - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | MsUp | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | Prev | Next | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | |Brwser| - * | Lclk | Rclk |------| |------| |Back | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// MEDIA AND MOUSE -[MDIA] = KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_BTN1, KC_BTN2, KC_TRNS, - // right hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, - KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, - KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_WBAK -), -}; - -static uint16_t key_timer; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case 0: { - if (record->event.pressed) { - key_timer = timer_read(); // if the key is being pressed, we start the timer. - } - else { // this means the key was just released, so we can figure out how long it was pressed for (tap or "held down"). - if (timer_elapsed(key_timer) > 150) { // 150 being 150ms, the threshhold we pick for counting something as a tap. - return MACRO( D(LCTL), T(C), U(LCTL), END ); - } - else { - return MACRO( D(LCTL), T(V), U(LCTL), END ); - } - } - break; - } - } - return MACRO_NONE; -}; - -// Anything you want to do once when the keyboard initializes. -// Tests LED function when the keyboard initializes. -void matrix_init_user(void) { - - wait_ms(500); - ergodox_board_led_on(); - wait_ms(200); - ergodox_right_led_1_on(); - wait_ms(200); - ergodox_right_led_2_on(); - wait_ms(200); - ergodox_right_led_3_on(); - wait_ms(200); - ergodox_board_led_off(); - wait_ms(200); - ergodox_right_led_1_off(); - wait_ms(200); - ergodox_right_led_2_off(); - wait_ms(200); - ergodox_right_led_3_off(); - -}; - - -// Runs constantly in the background, in a loop. -void matrix_scan_user(void) { - - uint8_t layer = biton32(layer_state); - - ergodox_board_led_off(); - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - switch (layer) { - case 1: - ergodox_right_led_1_on(); - break; - case 2: - ergodox_right_led_2_on(); - break; - case 3: - ergodox_right_led_3_on(); - break; - default: - // none - break; - } - -}; +#include "ergodox.h" +#include "debug.h" +#include "action_layer.h" +#include "version.h" +#include "wait.h" + +#define BASE 0 // default layer - helpful for writing in Office-style word processors. +#define SYMB 1 // symbol layer - NumPad, etc. - same as Ergodox EZ default but no EEPROM or Version key +#define RIMW 2 // rimworld layer - made for the game RimWorld, by Tynan Sylvester | feel free to remap for your favorite game! +#define MDIA 3 // media layer - mouse and music - close to Ergodox EZ default media layer + +#define CO_PA M(0) // hold copy, tap paste + +#define W_CUT LCTL(KC_X) // C-x Cut +#define W_COPY LCTL(KC_C) // C-c Copy +#define W_PASTE LCTL(KC_V) // C-v Paste +#define W_UNDO LCTL(KC_Z) // C-z Undo +#define W_FIND LCTL(KC_F) // C-v Find +#define W_CAD LCTL(LALT(KC_DEL)) // one-tap ctrl-alt-del + + + +//Tap Dance Declarations +enum { + CAKEWARP, + CTRLALTMDIA, +}; + +void cake_count (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 2) { + layer_on (SYMB); //define double tap here + layer_off (MDIA); + } + else { + layer_off (SYMB); //define single tap or hold here + layer_off (MDIA); + } + if (state->count == 3) { + layer_on (RIMW); //define triple tap here + layer_off (MDIA); + } + else { + layer_off (RIMW); //define single tap or hold here + layer_off (MDIA); + reset_tap_dance (state); + } +} + +void dance_cad_mdia_fin (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + register_code (KC_LCTL); + register_code (KC_LALT); + register_code (KC_DEL); + } else { + layer_on (MDIA); + } +} + +void dance_cad_mdia_reset (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + unregister_code (KC_DEL); + unregister_code (KC_LALT); + unregister_code (KC_LCTL); + } else { + ; + } +} + +//Tap Dance Definitions +qk_tap_dance_action_t tap_dance_actions[] = { + // tap for Layer 0, tap twice to switch to symbol layer, and tap three times to switch to rimworld layer. + [CAKEWARP] = ACTION_TAP_DANCE_FN(cake_count) + // tap for ctrl-alt-del, tap twice for media layer + ,[CTRLALTMDIA] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_cad_mdia_fin, dance_cad_mdia_reset) + // Other declarations would go here, separated by commas, if you have them +}; + +//In Layer declaration, add tap dance item in place of a key code + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer - TD(one_tap, two_taps, three_taps...) + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 7 | 8 | 9 | 0 | - | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | F12/L1 | Q | W | E | R | T | {/[ | |TD(L0 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | |L1 L2)|------+------+------+------+------+--------| + * |Caps/Win| A | S | D | F | G |------| |------| H | J | K | L | ; | ' | + * |--------+------+------+------+------+------| }/] | TD(ctrl|------+------+------+------+------+--------| + * |LShift/(|Z/Ctrl| X | C | V | B | | |altdel| N | M | , | . | / |RShift/)| + * `--------+------+------+------+------+-------------' |L3) |------+------+------+------+------+--------' + * | Undo | Cut |CopyPa| Meh | LGui | '------| | Enter| Left | Up | Down | Right | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Esc | VolUp| | F4 | Mute | + * ,------|------|------| |------+--------+------. + * | | | VolDn| | F5 | | | + * |Backsp|Delete|------| |------| Tab / |Space | + * |ace | | Find | | Alt | CTRL | | + * `--------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, +LT(SYMB, KC_F12), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, + GUI_T(KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSPO, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_RBRC, + W_UNDO, W_CUT, CO_PA, MEH_T(KC_NO), KC_LGUI, + KC_ESC, KC_VOLU, + KC_VOLD, + KC_BSPC, KC_DELETE, W_FIND, + // right hand + KC_7, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, + TD(CAKEWARP), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + TD(CTRLALTMDIA), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, + KC_ENT, KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT, + KC_F4, KC_MUTE, + KC_F5, + KC_RALT, CTL_T(KC_TAB), KC_SPC + ), + +/* Keymap 1: Symbol Layer | No EEPROM Or Version keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | xx | | xx | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | |TD(L0 | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | |L1 L2)|------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | - | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO, + KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, + KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_MINS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, + KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_NO, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), + +/* Keymap 2: RimWorld Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 7 | 8 | 9 | 0 | - | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | TAB | C | ,< | W | >. | R | | |TD(L0 | U | B | N | J | M | PGUP | + * |--------+------+------+------+------+------| F10 | |L1 L2)|------+------+------+------+------+--------| + * | I | F | A | S | D | 8 |------| |------| X | L | P | Y | H | ENTER | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | K | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | PGDN | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | F | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * |SPACE | C |------| |------| E |SPACE | + * | | | Q | | | | | + * `--------------------' `--------------------' + */ +// RIMWORLD +[RIMW] = KEYMAP( + // left hand + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, + KC_TAB, KC_C, KC_COMM, KC_W, KC_DOT, KC_R, KC_F10, + KC_I, KC_F, KC_A, KC_S, KC_D, KC_8, + KC_K, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_C,KC_Q,KC_TRNS, + // right hand + KC_7, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, + KC_TRNS, KC_U, KC_B, KC_N, KC_J, KC_M, KC_PGUP, + KC_X, KC_L, SFT_T(KC_P), KC_Y, KC_H, KC_ENT, + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PGDN, + KC_F, KC_LEFT, KC_UP, KC_DOWN,KC_RIGHT, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_E, KC_TRNS +), +/* Keymap 3: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | Lclk | Rclk |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_BTN1, KC_BTN2, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, + KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +}; + +static uint16_t key_timer; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case 0: { + if (record->event.pressed) { + key_timer = timer_read(); // if the key is being pressed, we start the timer. + } + else { // this means the key was just released, so we can figure out how long it was pressed for (tap or "held down"). + if (timer_elapsed(key_timer) > 150) { // 150 being 150ms, the threshhold we pick for counting something as a tap. + return MACRO( D(LCTL), T(C), U(LCTL), END ); + } + else { + return MACRO( D(LCTL), T(V), U(LCTL), END ); + } + } + break; + } + } + return MACRO_NONE; +}; + +// Anything you want to do once when the keyboard initializes. +// Tests LED function when the keyboard initializes. +void matrix_init_user(void) { + + wait_ms(500); + ergodox_board_led_on(); + wait_ms(200); + ergodox_right_led_1_on(); + wait_ms(200); + ergodox_right_led_2_on(); + wait_ms(200); + ergodox_right_led_3_on(); + wait_ms(200); + ergodox_board_led_off(); + wait_ms(200); + ergodox_right_led_1_off(); + wait_ms(200); + ergodox_right_led_2_off(); + wait_ms(200); + ergodox_right_led_3_off(); + +}; + + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + case 3: + ergodox_right_led_3_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboards/ergodox/keymaps/win10_writers-block/readme.md b/keyboards/ergodox/keymaps/win10_writers-block/readme.md index 66b1aaf40..e51e3c48f 100644 --- a/keyboards/ergodox/keymaps/win10_writers-block/readme.md +++ b/keyboards/ergodox/keymaps/win10_writers-block/readme.md @@ -1,113 +1,113 @@ - - -Win10 Writer's Block ErgoDox - v1.0 - -======================= - -This is a QWERTY layout for QMK. It's designed to work well in MS Office-like environments. It's tested on Windows 7 and 10. - -Professional writers may find this layout useful -- copywriters, technical writers, novelists, etc. - -I use my ErgoDox with this keymap as a daily driver at my office. - -A gaming layer is unobtrusively built into this layout. I use that layer to play RimWorld. - -Feel free to modify the gaming layer to your personal taste. - -## Table of Contents - -* [Layouts](#layouts) - - [Base layer](#base-layer) - - [Symbol layer](#symbol-layer) - - [Gaming layer](#rimworld-layer) - - [Media layer](#media-layer) -* [Tools](#tools) - - [Layer notification](#layer-notification) -* [Building](#building) - - [Using on Windows](#using-on-windows) -* [License](#license) -* [Special Thanks](#special-thanks) - -# Layouts - -* TapDance will teleport you to the layer you want: -* One Tap for the Base layer -* Two Taps for the Symbol layer -* Three Taps for the Rimworld/Gaming layer - -* Where the "Meh" key is located on the Ergodox EZ default layout, I've changed it to another tap dance key: -* One Tap for CTRL-ALT-DEL -* Two Taps for the Media/Mouse layer - -## Base layer - -[![Base layer](images/base-layer.png)](http://www.keyboard-layout-editor.com/#/gists/8fd9bbdd3a23bbb5a8779de3624a3be1) - -This is a QWERTY layout with some quirks. - -* Enter is located on a key that won't cause as much thumb fatigue. -* Copy and Paste work from the same key. Just hold the key to copy and tap the key to paste! -* Undo, Find and Cut are also one-touch keys. -* F12 is where you would normally find TAB on standard layouts. Quickly save in Word, safely. -* You'll find bracket keys below the "6" key. - -* The Meh Key is a single-button CTRL+ALT+SHIFT modifier. - -* Space Cadet Shift: Tap L Shift for "(" and R Shift for ")" -- holding either shift works like a normal shift. -* Tap "Z" or Tab to use either normally. Hold them for CTRL. -* Tap Caps Lock to use it normally. Hold it for Win key combinations (Win+D to minimize all programs, etc). - -## Symbol layer - -[![Symbol layer](images/symbol-layer.png)](http://www.keyboard-layout-editor.com/#/gists/04eb6458b8b17882e472f64d482f12b4) - -Your standard Ergodox EZ symbol + numpad layout, minus the Version and EEPROM keys. - -* From the base layer, hold the F12 Key to temporarily access this layer (use for quick access to numpad) -* Release F12 to return to the base layer. - -## Rimworld layer - -[![Rimworld / Gaming Layer](images/rimworld-layer.png)](http://www.keyboard-layout-editor.com/#/gists/d53af8391e6e443ed0a98ccfbdb4eace) - -This layer was made to play RimWorld, a Sci-Fi Colony Survival Game by Tynan Sylvester and Ludeon Studios, available on Steam. - -* Have fun! - -## Media layer - -[![Media layer](images/media-layer.png)](http://www.keyboard-layout-editor.com/#/gists/3209d09ed4bd997e4f49f28c6ada2ab3) - -This is the standard Ergodox EZ media layout with more options for mouseclick buttons. - -* In this layer, your "space" key changes into a back button for your browser. - -## LED states - -Your LEDs will change to indicate your layer. You'll know you are in the base layer if all LEDs are off. - -# Building - -To build, you will need the [QMK][qmk] firmware checked out. from there, dive into `keyboards/ergodox/keymaps/win10_writers-block/` - -[qmk]: https://github.com/jackhumbert/qmk_firmware - -``` -$ make keyboard=ergodox keymap=win10_writers-block -``` - -## Using on Windows - -This layout is tested in Windows 7 Pro and Windows 10 Home environments. - -# License - -GPL 3+ - -# Special Thanks - -* To algernon for his coding help. I'm a novice but I still made this work (and figured out tap dance) with his help. - -* To /r/MechanicalKeyboards for being an all-around great community. - + + +Win10 Writer's Block ErgoDox - v1.0 + +======================= + +This is a QWERTY layout for QMK. It's designed to work well in MS Office-like environments. It's tested on Windows 7 and 10. + +Professional writers may find this layout useful -- copywriters, technical writers, novelists, etc. + +I use my ErgoDox with this keymap as a daily driver at my office. + +A gaming layer is unobtrusively built into this layout. I use that layer to play RimWorld. + +Feel free to modify the gaming layer to your personal taste. + +## Table of Contents + +* [Layouts](#layouts) + - [Base layer](#base-layer) + - [Symbol layer](#symbol-layer) + - [Gaming layer](#rimworld-layer) + - [Media layer](#media-layer) +* [Tools](#tools) + - [Layer notification](#layer-notification) +* [Building](#building) + - [Using on Windows](#using-on-windows) +* [License](#license) +* [Special Thanks](#special-thanks) + +# Layouts + +* TapDance will teleport you to the layer you want: +* One Tap for the Base layer +* Two Taps for the Symbol layer +* Three Taps for the Rimworld/Gaming layer + +* Where the "Meh" key is located on the Ergodox EZ default layout, I've changed it to another tap dance key: +* One Tap for CTRL-ALT-DEL +* Two Taps for the Media/Mouse layer + +## Base layer + +[![Base layer](images/base-layer.png)](http://www.keyboard-layout-editor.com/#/gists/8fd9bbdd3a23bbb5a8779de3624a3be1) + +This is a QWERTY layout with some quirks. + +* Enter is located on a key that won't cause as much thumb fatigue. +* Copy and Paste work from the same key. Just hold the key to copy and tap the key to paste! +* Undo, Find and Cut are also one-touch keys. +* F12 is where you would normally find TAB on standard layouts. Quickly save in Word, safely. +* You'll find bracket keys below the "6" key. + +* The Meh Key is a single-button CTRL+ALT+SHIFT modifier. + +* Space Cadet Shift: Tap L Shift for "(" and R Shift for ")" -- holding either shift works like a normal shift. +* Tap "Z" or Tab to use either normally. Hold them for CTRL. +* Tap Caps Lock to use it normally. Hold it for Win key combinations (Win+D to minimize all programs, etc). + +## Symbol layer + +[![Symbol layer](images/symbol-layer.png)](http://www.keyboard-layout-editor.com/#/gists/04eb6458b8b17882e472f64d482f12b4) + +Your standard Ergodox EZ symbol + numpad layout, minus the Version and EEPROM keys. + +* From the base layer, hold the F12 Key to temporarily access this layer (use for quick access to numpad) +* Release F12 to return to the base layer. + +## Rimworld layer + +[![Rimworld / Gaming Layer](images/rimworld-layer.png)](http://www.keyboard-layout-editor.com/#/gists/d53af8391e6e443ed0a98ccfbdb4eace) + +This layer was made to play RimWorld, a Sci-Fi Colony Survival Game by Tynan Sylvester and Ludeon Studios, available on Steam. + +* Have fun! + +## Media layer + +[![Media layer](images/media-layer.png)](http://www.keyboard-layout-editor.com/#/gists/3209d09ed4bd997e4f49f28c6ada2ab3) + +This is the standard Ergodox EZ media layout with more options for mouseclick buttons. + +* In this layer, your "space" key changes into a back button for your browser. + +## LED states + +Your LEDs will change to indicate your layer. You'll know you are in the base layer if all LEDs are off. + +# Building + +To build, you will need the [QMK][qmk] firmware checked out. from there, dive into `keyboards/ergodox/keymaps/win10_writers-block/` + +[qmk]: https://github.com/jackhumbert/qmk_firmware + +``` +$ make keyboard=ergodox keymap=win10_writers-block +``` + +## Using on Windows + +This layout is tested in Windows 7 Pro and Windows 10 Home environments. + +# License + +GPL 3+ + +# Special Thanks + +* To algernon for his coding help. I'm a novice but I still made this work (and figured out tap dance) with his help. + +* To /r/MechanicalKeyboards for being an all-around great community. + * To /u/profet23 for his amazing custom Ergodox boards. \ No newline at end of file -- cgit v1.2.3 From 508eddf8ba8548d3f71e1c09a404839beb49f45c Mon Sep 17 00:00:00 2001 From: IBNobody Date: Fri, 28 Oct 2016 14:21:38 -0500 Subject: Fixing Debounce - WIP --- keyboards/vision_division/config.h | 2 +- quantum/matrix.c | 246 ++++++++++++++++++++++++------------- tmk_core/common/matrix.h | 10 ++ 3 files changed, 174 insertions(+), 84 deletions(-) (limited to 'keyboards') diff --git a/keyboards/vision_division/config.h b/keyboards/vision_division/config.h index 93c960671..5798d91ad 100644 --- a/keyboards/vision_division/config.h +++ b/keyboards/vision_division/config.h @@ -31,7 +31,7 @@ along with this program. If not, see . #define BACKLIGHT_LEVELS 3 /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCING_DELAY 5 +#define DEBOUNCING_DELAY 0 #define MATRIX_MASKED diff --git a/quantum/matrix.c b/quantum/matrix.c index ac81794e5..a7dab0987 100644 --- a/quantum/matrix.c +++ b/quantum/matrix.c @@ -26,6 +26,33 @@ along with this program. If not, see . #include "util.h" #include "matrix.h" +#if (MATRIX_COLS <= 8) +# define print_matrix_header() print("\nr/c 01234567\n") +# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) +# define matrix_bitpop(i) bitpop(matrix[i]) +# define ROW_SHIFTER ((uint8_t)1) +#elif (MATRIX_COLS <= 16) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) +# define matrix_bitpop(i) bitpop16(matrix[i]) +# define ROW_SHIFTER ((uint16_t)1) +#elif (MATRIX_COLS <= 32) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) +# define matrix_bitpop(i) bitpop32(matrix[i]) +# define ROW_SHIFTER ((uint32_t)1) +#endif + +#if (MATRIX_ROWS <= 8) +# define COL_SHIFTER ((uint8_t)1) +#elif (MATRIX_ROWS <= 16) +# define COL_SHIFTER ((uint16_t)1) +#elif (MATRIX_ROWS <= 32) +# define COL_SHIFTER ((uint32_t)1) +#endif + + + #ifdef MATRIX_MASKED extern const matrix_row_t matrix_mask[]; #endif @@ -42,24 +69,28 @@ static const uint8_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; /* matrix state(1:on, 0:off) */ static matrix_row_t matrix[MATRIX_ROWS]; -static matrix_row_t matrix_debouncing[MATRIX_ROWS]; -#if DIODE_DIRECTION == ROW2COL - static matrix_row_t matrix_reversed[MATRIX_COLS]; - static matrix_row_t matrix_reversed_debouncing[MATRIX_COLS]; +#if DIODE_DIRECTION == COL2ROW + static matrix_row_t matrix_debouncing[MATRIX_ROWS]; +#else // ROW2COL + static matrix_col_t matrix_transposed[MATRIX_COLS]; + static matrix_col_t matrix_transposed_debouncing[MATRIX_COLS]; #endif -#if MATRIX_COLS > 16 - #define SHIFTER 1UL -#else - #define SHIFTER 1 +#if (DIODE_DIRECTION == COL2ROW) + static void init_cols(void); + static matrix_row_t read_cols(void); + static void unselect_rows(void); + static void select_row(uint8_t row); + static void unselect_row(uint8_t row); +#else // ROW2COL + static void init_rows(void); + static matrix_col_t read_rows(void); + static void unselect_cols(void); + static void unselect_col(uint8_t col); + static void select_col(uint8_t col); #endif -static matrix_row_t read_cols(void); -static void init_cols(void); -static void unselect_rows(void); -static void select_row(uint8_t row); - __attribute__ ((weak)) void matrix_init_quantum(void) { matrix_init_kb(); @@ -99,7 +130,7 @@ uint8_t matrix_cols(void) { } // void matrix_power_up(void) { -// #if DIODE_DIRECTION == COL2ROW +// #if (DIODE_DIRECTION == COL2ROW) // for (int8_t r = MATRIX_ROWS - 1; r >= 0; --r) { // /* DDRxn */ // _SFR_IO8((row_pins[r] >> 4) + 1) |= _BV(row_pins[r] & 0xF); @@ -123,13 +154,15 @@ uint8_t matrix_cols(void) { // } void matrix_init(void) { + // To use PORTF disable JTAG with writing JTD bit twice within four cycles. - #ifdef __AVR_ATmega32U4__ + #if (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) || defined(__AVR_ATmega32U4__)) MCUCR |= _BV(JTD); MCUCR |= _BV(JTD); #endif // initialize row and col +#if (DIODE_DIRECTION == COL2ROW) unselect_rows(); init_cols(); @@ -139,25 +172,43 @@ void matrix_init(void) { matrix_debouncing[i] = 0; } +#else // ROW2COL + unselect_cols(); + init_rows(); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + } + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_COLS; i++) { + matrix_transposed_debouncing[i] = 0; + } +#endif + matrix_init_quantum(); } uint8_t matrix_scan(void) { -#if DIODE_DIRECTION == COL2ROW +#if (DIODE_DIRECTION == COL2ROW) + + // Set row, read cols + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { select_row(i); wait_us(30); // without this wait read unstable value. - matrix_row_t cols = read_cols(); - if (matrix_debouncing[i] != cols) { - matrix_debouncing[i] = cols; + matrix_row_t current_row = read_cols(); + if (matrix_debouncing[i] != current_row) { + matrix_debouncing[i] = current_row; if (debouncing) { debug("bounce!: "); debug_hex(debouncing); debug("\n"); } debouncing = DEBOUNCING_DELAY; } - unselect_rows(); + unselect_row(i); } if (debouncing) { @@ -169,19 +220,23 @@ uint8_t matrix_scan(void) } } } -#else + +#else // ROW2COL + + // Set col, read rows + for (uint8_t i = 0; i < MATRIX_COLS; i++) { - select_row(i); + select_col(i); wait_us(30); // without this wait read unstable value. - matrix_row_t rows = read_cols(); - if (matrix_reversed_debouncing[i] != rows) { - matrix_reversed_debouncing[i] = rows; + matrix_col_t current_col = read_rows(); + if (matrix_transposed_debouncing[i] != current_col) { + matrix_transposed_debouncing[i] = current_col; if (debouncing) { debug("bounce!: "); debug_hex(debouncing); debug("\n"); } debouncing = DEBOUNCING_DELAY; } - unselect_rows(); + unselect_col(i); } if (debouncing) { @@ -189,17 +244,20 @@ uint8_t matrix_scan(void) wait_ms(1); } else { for (uint8_t i = 0; i < MATRIX_COLS; i++) { - matrix_reversed[i] = matrix_reversed_debouncing[i]; + matrix_transposed[i] = matrix_transposed_debouncing[i]; } } } + + // Untranspose matrix for (uint8_t y = 0; y < MATRIX_ROWS; y++) { matrix_row_t row = 0; for (uint8_t x = 0; x < MATRIX_COLS; x++) { - row |= ((matrix_reversed[x] & (1<> y) << x; + row |= ((matrix_transposed[x] & (1<> y) << x; } matrix[y] = row; } + #endif matrix_scan_quantum(); @@ -233,23 +291,11 @@ matrix_row_t matrix_get_row(uint8_t row) void matrix_print(void) { -#if (MATRIX_COLS <= 8) - print("\nr/c 01234567\n"); -#elif (MATRIX_COLS <= 16) - print("\nr/c 0123456789ABCDEF\n"); -#elif (MATRIX_COLS <= 32) - print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n"); -#endif + print_matrix_header(); for (uint8_t row = 0; row < MATRIX_ROWS; row++) { phex(row); print(": "); -#if (MATRIX_COLS <= 8) - print_bin_reverse8(matrix_get_row(row)); -#elif (MATRIX_COLS <= 16) - print_bin_reverse16(matrix_get_row(row)); -#elif (MATRIX_COLS <= 32) - print_bin_reverse32(matrix_get_row(row)); -#endif + print_matrix_row(row); print("\n"); } } @@ -258,28 +304,21 @@ uint8_t matrix_key_count(void) { uint8_t count = 0; for (uint8_t i = 0; i < MATRIX_ROWS; i++) { -#if (MATRIX_COLS <= 8) - count += bitpop(matrix[i]); -#elif (MATRIX_COLS <= 16) - count += bitpop16(matrix[i]); -#elif (MATRIX_COLS <= 32) - count += bitpop32(matrix[i]); -#endif + count += matrix_bitpop(i); } return count; } + + +#if (DIODE_DIRECTION == COL2ROW) + static void init_cols(void) { -#if DIODE_DIRECTION == COL2ROW - for(int x = 0; x < MATRIX_COLS; x++) { - int pin = col_pins[x]; -#else - for(int x = 0; x < MATRIX_ROWS; x++) { - int pin = row_pins[x]; -#endif - _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); - _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); + for(uint8_t x = 0; x < MATRIX_COLS; x++) { + uint8_t pin = col_pins[x]; + _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI } } @@ -287,40 +326,81 @@ static matrix_row_t read_cols(void) { matrix_row_t result = 0; -#if DIODE_DIRECTION == COL2ROW - for(int x = 0; x < MATRIX_COLS; x++) { - int pin = col_pins[x]; -#else - for(int x = 0; x < MATRIX_ROWS; x++) { - int pin = row_pins[x]; -#endif - result |= (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)) ? 0 : (SHIFTER << x); + for(uint8_t x = 0; x < MATRIX_COLS; x++) { + uint8_t pin = col_pins[x]; + result |= (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)) ? 0 : (ROW_SHIFTER << x); } + return result; } +static void select_row(uint8_t row) +{ + uint8_t pin = row_pins[row]; + _SFR_IO8((pin >> 4) + 1) |= _BV(pin & 0xF); // OUT + _SFR_IO8((pin >> 4) + 2) &= ~_BV(pin & 0xF); // LOW +} + +static void unselect_row(uint8_t row) +{ + uint8_t pin = row_pins[row]; + _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI +} + static void unselect_rows(void) { -#if DIODE_DIRECTION == COL2ROW - for(int x = 0; x < MATRIX_ROWS; x++) { - int pin = row_pins[x]; -#else - for(int x = 0; x < MATRIX_COLS; x++) { - int pin = col_pins[x]; -#endif - _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); - _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); + for(uint8_t x = 0; x < MATRIX_ROWS; x++) { + uint8_t pin = row_pins[x]; + _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI } } -static void select_row(uint8_t row) +#else // ROW2COL + +static void init_rows(void) { + for(uint8_t x = 0; x < MATRIX_ROWS; x++) { + uint8_t pin = row_pins[x]; + _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI + } +} -#if DIODE_DIRECTION == COL2ROW - int pin = row_pins[row]; -#else - int pin = col_pins[row]; -#endif - _SFR_IO8((pin >> 4) + 1) |= _BV(pin & 0xF); - _SFR_IO8((pin >> 4) + 2) &= ~_BV(pin & 0xF); +static matrix_col_t read_rows(void) +{ + matrix_col_t result = 0; + + for(uint8_t x = 0; x < MATRIX_ROWS; x++) { + uint8_t pin = row_pins[x]; + result |= (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)) ? 0 : (COL_SHIFTER << x); + } + + return result; +} + +static void select_col(uint8_t col) +{ + uint8_t pin = col_pins[col]; + _SFR_IO8((pin >> 4) + 1) |= _BV(pin & 0xF); // OUT + _SFR_IO8((pin >> 4) + 2) &= ~_BV(pin & 0xF); // LOW +} + +static void unselect_col(uint8_t col) +{ + uint8_t pin = col_pins[col]; + _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI } + +static void unselect_cols(void) +{ + for(uint8_t x = 0; x < MATRIX_COLS; x++) { + uint8_t pin = col_pins[x]; + _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI + } +} + +#endif diff --git a/tmk_core/common/matrix.h b/tmk_core/common/matrix.h index cee3593ee..84e066c67 100644 --- a/tmk_core/common/matrix.h +++ b/tmk_core/common/matrix.h @@ -31,6 +31,16 @@ typedef uint32_t matrix_row_t; #error "MATRIX_COLS: invalid value" #endif +#if (MATRIX_ROWS <= 8) +typedef uint8_t matrix_col_t; +#elif (MATRIX_ROWS <= 16) +typedef uint16_t matrix_col_t; +#elif (MATRIX_ROWS <= 32) +typedef uint32_t matrix_col_t; +#else +#error "MATRIX_COLS: invalid value" +#endif + #define MATRIX_IS_ON(row, col) (matrix_get_row(row) && (1<>1); -- cgit v1.2.3 From 6e27f6fbde47804035d508eb84690ed7ee9acee7 Mon Sep 17 00:00:00 2001 From: climbalima Date: Thu, 10 Nov 2016 18:19:13 -0500 Subject: Changes to be committed: new file: keyboards/lets_splitv2/Makefile new file: keyboards/lets_splitv2/config.h new file: keyboards/lets_splitv2/i2c.c new file: keyboards/lets_splitv2/i2c.h new file: keyboards/lets_splitv2/imgs/split-keyboard-i2c-schematic.png new file: keyboards/lets_splitv2/imgs/split-keyboard-serial-schematic.png new file: keyboards/lets_splitv2/keymaps/default/keymap.c new file: keyboards/lets_splitv2/lets_split.c new file: keyboards/lets_splitv2/lets_split.h new file: keyboards/lets_splitv2/matrix.c new file: keyboards/lets_splitv2/pro_micro.h new file: keyboards/lets_splitv2/readme.md new file: keyboards/lets_splitv2/serial.c new file: keyboards/lets_splitv2/serial.h new file: keyboards/lets_splitv2/split_util.c new file: keyboards/lets_splitv2/split_util.h new file: keyboards/maxipad/Makefile new file: keyboards/maxipad/config.h new file: keyboards/maxipad/keymaps/default/Makefile new file: keyboards/maxipad/keymaps/default/config.h new file: keyboards/maxipad/keymaps/default/keymap.c new file: keyboards/maxipad/keymaps/default/readme.md new file: keyboards/maxipad/maxipad.c new file: keyboards/maxipad/maxipad.h new file: keyboards/maxipad/readme.md --- keyboards/lets_split/Makefile | 2 +- keyboards/lets_split/config.h | 6 +- keyboards/lets_split/keymaps/default/keymap.c | 65 +--- keyboards/lets_split/lets_split.h | 8 +- keyboards/lets_splitv2/Makefile | 78 +++++ keyboards/lets_splitv2/config.h | 98 ++++++ keyboards/lets_splitv2/i2c.c | 159 +++++++++ keyboards/lets_splitv2/i2c.h | 31 ++ .../imgs/split-keyboard-i2c-schematic.png | Bin 0 -> 26565 bytes .../imgs/split-keyboard-serial-schematic.png | Bin 0 -> 19487 bytes keyboards/lets_splitv2/keymaps/default/keymap.c | 159 +++++++++ keyboards/lets_splitv2/lets_split.c | 30 ++ keyboards/lets_splitv2/lets_split.h | 25 ++ keyboards/lets_splitv2/matrix.c | 311 ++++++++++++++++++ keyboards/lets_splitv2/pro_micro.h | 362 +++++++++++++++++++++ keyboards/lets_splitv2/readme.md | 102 ++++++ keyboards/lets_splitv2/serial.c | 225 +++++++++++++ keyboards/lets_splitv2/serial.h | 26 ++ keyboards/lets_splitv2/split_util.c | 76 +++++ keyboards/lets_splitv2/split_util.h | 22 ++ keyboards/maxipad/Makefile | 75 +++++ keyboards/maxipad/config.h | 162 +++++++++ keyboards/maxipad/keymaps/default/Makefile | 21 ++ keyboards/maxipad/keymaps/default/config.h | 8 + keyboards/maxipad/keymaps/default/keymap.c | 54 +++ keyboards/maxipad/keymaps/default/readme.md | 1 + keyboards/maxipad/maxipad.c | 28 ++ keyboards/maxipad/maxipad.h | 25 ++ keyboards/maxipad/readme.md | 28 ++ 29 files changed, 2119 insertions(+), 68 deletions(-) create mode 100644 keyboards/lets_splitv2/Makefile create mode 100644 keyboards/lets_splitv2/config.h create mode 100644 keyboards/lets_splitv2/i2c.c create mode 100644 keyboards/lets_splitv2/i2c.h create mode 100644 keyboards/lets_splitv2/imgs/split-keyboard-i2c-schematic.png create mode 100644 keyboards/lets_splitv2/imgs/split-keyboard-serial-schematic.png create mode 100644 keyboards/lets_splitv2/keymaps/default/keymap.c create mode 100644 keyboards/lets_splitv2/lets_split.c create mode 100644 keyboards/lets_splitv2/lets_split.h create mode 100644 keyboards/lets_splitv2/matrix.c create mode 100644 keyboards/lets_splitv2/pro_micro.h create mode 100644 keyboards/lets_splitv2/readme.md create mode 100644 keyboards/lets_splitv2/serial.c create mode 100644 keyboards/lets_splitv2/serial.h create mode 100644 keyboards/lets_splitv2/split_util.c create mode 100644 keyboards/lets_splitv2/split_util.h create mode 100644 keyboards/maxipad/Makefile create mode 100644 keyboards/maxipad/config.h create mode 100644 keyboards/maxipad/keymaps/default/Makefile create mode 100644 keyboards/maxipad/keymaps/default/config.h create mode 100644 keyboards/maxipad/keymaps/default/keymap.c create mode 100644 keyboards/maxipad/keymaps/default/readme.md create mode 100644 keyboards/maxipad/maxipad.c create mode 100644 keyboards/maxipad/maxipad.h create mode 100644 keyboards/maxipad/readme.md (limited to 'keyboards') diff --git a/keyboards/lets_split/Makefile b/keyboards/lets_split/Makefile index b9f07636b..982cfc591 100644 --- a/keyboards/lets_split/Makefile +++ b/keyboards/lets_split/Makefile @@ -67,7 +67,7 @@ AUDIO_ENABLE ?= yes # Audio output on port C6 UNICODE_ENABLE ?= no # Unicode BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. - +USE_I2C ?= yes # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend diff --git a/keyboards/lets_split/config.h b/keyboards/lets_split/config.h index 6f90997ab..bf618704c 100644 --- a/keyboards/lets_split/config.h +++ b/keyboards/lets_split/config.h @@ -25,7 +25,7 @@ along with this program. If not, see . #define PRODUCT_ID 0x3060 #define DEVICE_VER 0x0001 #define MANUFACTURER Wootpatoot -#define PRODUCT Lets Split +#define PRODUCT Lets Split v2 #define DESCRIPTION A split keyboard for the cheap makers /* key matrix size */ @@ -34,8 +34,8 @@ along with this program. If not, see . #define MATRIX_COLS 6 // wiring of each half -#define MATRIX_ROW_PINS { B5, B4, E6, D7 } -#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 } +#define MATRIX_ROW_PINS { D7, E6, B4, B5 } +#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 } #define CATERINA_BOOTLOADER diff --git a/keyboards/lets_split/keymaps/default/keymap.c b/keyboards/lets_split/keymaps/default/keymap.c index 0d2d94b67..8c8466ebd 100644 --- a/keyboards/lets_split/keymaps/default/keymap.c +++ b/keyboards/lets_split/keymaps/default/keymap.c @@ -42,64 +42,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_QWERTY] = KEYMAP( \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ - ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ + KC_LCTL, _LOWER, KC_LGUI, KC_LALT, MO(_LOWER), KC_SPC, KC_LSFT, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ ), -/* Colemak - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | R | S | T | D | H | N | E | I | O | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_COLEMAK] = KEYMAP( \ - KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ - KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ - ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ -), - -/* Dvorak - * ,-----------------------------------------------------------------------------------. - * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | O | E | U | I | D | H | T | N | S | / | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_DVORAK] = KEYMAP( \ - KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ - KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ - KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , \ - ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ -), - -/* Lower - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | | \ | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ [_LOWER] = KEYMAP( \ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ + _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ ), /* Raise @@ -117,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ + _______, _______, _______, _______, _______, KC_ENT, KC_ENT, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ ), /* Adjust (Lower + Raise) @@ -131,14 +84,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_ADJUST] = KEYMAP( \ - _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ - _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ -) - - }; #ifdef AUDIO_ENABLE diff --git a/keyboards/lets_split/lets_split.h b/keyboards/lets_split/lets_split.h index fe7ae0767..04844ed63 100644 --- a/keyboards/lets_split/lets_split.h +++ b/keyboards/lets_split/lets_split.h @@ -6,10 +6,10 @@ void promicro_bootloader_jmp(bool program); #define KEYMAP( \ - k00, k01, k02, k03, k04, k05, k40, k41, k42, k43, k44, k45, \ - k10, k11, k12, k13, k14, k15, k50, k51, k52, k53, k54, k55, \ - k20, k21, k22, k23, k24, k25, k60, k61, k62, k63, k64, k65, \ - k30, k31, k32, k33, k34, k35, k70, k71, k72, k73, k74, k75 \ + k00, k01, k02, k03, k04, k05, k45, k44, k43, k42, k41, k40, \ + k10, k11, k12, k13, k14, k15, k55, k54, k53, k52, k51, k50, \ + k20, k21, k22, k23, k24, k25, k65, k64, k63, k62, k61, k60, \ + k30, k31, k32, k33, k34, k35, k75, k74, k73, k72, k71, k70 \ ) \ { \ { k00, k01, k02, k03, k04, k05 }, \ diff --git a/keyboards/lets_splitv2/Makefile b/keyboards/lets_splitv2/Makefile new file mode 100644 index 000000000..982cfc591 --- /dev/null +++ b/keyboards/lets_splitv2/Makefile @@ -0,0 +1,78 @@ +SRC += matrix.c \ + i2c.c \ + split_util.c \ + serial.c + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= no # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality +MIDI_ENABLE ?= no # MIDI controls +AUDIO_ENABLE ?= yes # Audio output on port C6 +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +USE_I2C ?= yes +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend + +CUSTOM_MATRIX = yes + +ifndef QUANTUM_DIR + include ../../Makefile +endif \ No newline at end of file diff --git a/keyboards/lets_splitv2/config.h b/keyboards/lets_splitv2/config.h new file mode 100644 index 000000000..bf618704c --- /dev/null +++ b/keyboards/lets_splitv2/config.h @@ -0,0 +1,98 @@ +/* +Copyright 2012 Jun Wako + +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 . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x3060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Wootpatoot +#define PRODUCT Lets Split v2 +#define DESCRIPTION A split keyboard for the cheap makers + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 8 +#define MATRIX_COLS 6 + +// wiring of each half +#define MATRIX_ROW_PINS { D7, E6, B4, B5 } +#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 } + +#define CATERINA_BOOTLOADER + +// #define USE_I2C + +// #define EE_HANDS + +#define I2C_MASTER_LEFT +// #define I2C_MASTER_RIGHT + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +// #define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* ws2812 RGB LED */ +#define ws2812_PORTREG PORTD +#define ws2812_DDRREG DDRD +#define ws2812_pin PD1 +#define RGBLED_NUM 28 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif \ No newline at end of file diff --git a/keyboards/lets_splitv2/i2c.c b/keyboards/lets_splitv2/i2c.c new file mode 100644 index 000000000..c72789403 --- /dev/null +++ b/keyboards/lets_splitv2/i2c.c @@ -0,0 +1,159 @@ +#include +#include +#include +#include +#include +#include +#include "i2c.h" + +// Limits the amount of we wait for any one i2c transaction. +// Since were running SCL line 100kHz (=> 10μs/bit), and each transactions is +// 9 bits, a single transaction will take around 90μs to complete. +// +// (F_CPU/SCL_CLOCK) => # of μC cycles to transfer a bit +// poll loop takes at least 8 clock cycles to execute +#define I2C_LOOP_TIMEOUT (9+1)*(F_CPU/SCL_CLOCK)/8 + +#define BUFFER_POS_INC() (slave_buffer_pos = (slave_buffer_pos+1)%SLAVE_BUFFER_SIZE) + +volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE]; + +static volatile uint8_t slave_buffer_pos; +static volatile bool slave_has_register_set = false; + +// Wait for an i2c operation to finish +inline static +void i2c_delay(void) { + uint16_t lim = 0; + while(!(TWCR & (1<10. + // Check datasheets for more info. + TWBR = ((F_CPU/SCL_CLOCK)-16)/2; +} + +// Start a transaction with the given i2c slave address. The direction of the +// transfer is set with I2C_READ and I2C_WRITE. +// returns: 0 => success +// 1 => error +uint8_t i2c_master_start(uint8_t address) { + TWCR = (1< slave ACK +// 1 => slave NACK +uint8_t i2c_master_write(uint8_t data) { + TWDR = data; + TWCR = (1<= SLAVE_BUFFER_SIZE ) { + ack = 0; + slave_buffer_pos = 0; + } + slave_has_register_set = true; + } else { + i2c_slave_buffer[slave_buffer_pos] = TWDR; + BUFFER_POS_INC(); + } + break; + + case TW_ST_SLA_ACK: + case TW_ST_DATA_ACK: + // master has addressed this device as a slave transmitter and is + // requesting data. + TWDR = i2c_slave_buffer[slave_buffer_pos]; + BUFFER_POS_INC(); + break; + + case TW_BUS_ERROR: // something went wrong, reset twi state + TWCR = 0; + default: + break; + } + // Reset everything, so we are ready for the next TWI interrupt + TWCR |= (1< + +#ifndef F_CPU +#define F_CPU 16000000UL +#endif + +#define I2C_READ 1 +#define I2C_WRITE 0 + +#define I2C_ACK 1 +#define I2C_NACK 0 + +#define SLAVE_BUFFER_SIZE 0x10 + +// i2c SCL clock frequency +#define SCL_CLOCK 100000L + +extern volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE]; + +void i2c_master_init(void); +uint8_t i2c_master_start(uint8_t address); +void i2c_master_stop(void); +uint8_t i2c_master_write(uint8_t data); +uint8_t i2c_master_read(int); +void i2c_reset_state(void); +void i2c_slave_init(uint8_t address); + +#endif diff --git a/keyboards/lets_splitv2/imgs/split-keyboard-i2c-schematic.png b/keyboards/lets_splitv2/imgs/split-keyboard-i2c-schematic.png new file mode 100644 index 000000000..888294718 Binary files /dev/null and b/keyboards/lets_splitv2/imgs/split-keyboard-i2c-schematic.png differ diff --git a/keyboards/lets_splitv2/imgs/split-keyboard-serial-schematic.png b/keyboards/lets_splitv2/imgs/split-keyboard-serial-schematic.png new file mode 100644 index 000000000..7621d38ed Binary files /dev/null and b/keyboards/lets_splitv2/imgs/split-keyboard-serial-schematic.png differ diff --git a/keyboards/lets_splitv2/keymaps/default/keymap.c b/keyboards/lets_splitv2/keymaps/default/keymap.c new file mode 100644 index 000000000..8c8466ebd --- /dev/null +++ b/keyboards/lets_splitv2/keymaps/default/keymap.c @@ -0,0 +1,159 @@ +#include "lets_split.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _ADJUST 16 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, + RAISE, + ADJUST, +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = KEYMAP( \ + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ + KC_LCTL, _LOWER, KC_LGUI, KC_LALT, MO(_LOWER), KC_SPC, KC_LSFT, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + +[_LOWER] = KEYMAP( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______, \ + _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = KEYMAP( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, \ + _______, _______, _______, _______, _______, KC_ENT, KC_ENT, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ +), + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +}; + +#ifdef AUDIO_ENABLE +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +#endif + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistant_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistant_default_layer_set(1UL<<_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistant_default_layer_set(1UL<<_DVORAK); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + break; + } + return true; +} \ No newline at end of file diff --git a/keyboards/lets_splitv2/lets_split.c b/keyboards/lets_splitv2/lets_split.c new file mode 100644 index 000000000..574c116a7 --- /dev/null +++ b/keyboards/lets_splitv2/lets_split.c @@ -0,0 +1,30 @@ +#include "lets_split.h" + +#ifdef AUDIO_ENABLE + float tone_startup[][2] = SONG(STARTUP_SOUND); + float tone_goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + +void matrix_init_kb(void) { + + #ifdef AUDIO_ENABLE + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); + #endif + + // // green led on + // DDRD |= (1<<5); + // PORTD &= ~(1<<5); + + // // orange led on + // DDRB |= (1<<0); + // PORTB &= ~(1<<0); + + matrix_init_user(); +}; + +void shutdown_user(void) { + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + _delay_ms(150); + stop_all_notes(); +} diff --git a/keyboards/lets_splitv2/lets_split.h b/keyboards/lets_splitv2/lets_split.h new file mode 100644 index 000000000..04844ed63 --- /dev/null +++ b/keyboards/lets_splitv2/lets_split.h @@ -0,0 +1,25 @@ +#ifndef LETS_SPLIT_H +#define LETS_SPLIT_H + +#include "quantum.h" + +void promicro_bootloader_jmp(bool program); + +#define KEYMAP( \ + k00, k01, k02, k03, k04, k05, k45, k44, k43, k42, k41, k40, \ + k10, k11, k12, k13, k14, k15, k55, k54, k53, k52, k51, k50, \ + k20, k21, k22, k23, k24, k25, k65, k64, k63, k62, k61, k60, \ + k30, k31, k32, k33, k34, k35, k75, k74, k73, k72, k71, k70 \ + ) \ + { \ + { k00, k01, k02, k03, k04, k05 }, \ + { k10, k11, k12, k13, k14, k15 }, \ + { k20, k21, k22, k23, k24, k25 }, \ + { k30, k31, k32, k33, k34, k35 }, \ + { k40, k41, k42, k43, k44, k45 }, \ + { k50, k51, k52, k53, k54, k55 }, \ + { k60, k61, k62, k63, k64, k65 }, \ + { k70, k71, k72, k73, k74, k75 } \ + } + +#endif \ No newline at end of file diff --git a/keyboards/lets_splitv2/matrix.c b/keyboards/lets_splitv2/matrix.c new file mode 100644 index 000000000..1d768c59b --- /dev/null +++ b/keyboards/lets_splitv2/matrix.c @@ -0,0 +1,311 @@ +/* +Copyright 2012 Jun Wako + +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 . +*/ + +/* + * scan matrix + */ +#include +#include +#include +#include +#include +#include +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "i2c.h" +#include "serial.h" +#include "split_util.h" +#include "pro_micro.h" +#include "config.h" + +#ifndef DEBOUNCE +# define DEBOUNCE 5 +#endif + +#define ERROR_DISCONNECT_COUNT 5 + +static uint8_t debouncing = DEBOUNCE; +static const int ROWS_PER_HAND = MATRIX_ROWS/2; +static uint8_t error_count = 0; + +static const uint8_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; +static const uint8_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +static matrix_row_t read_cols(void); +static void init_cols(void); +static void unselect_rows(void); +static void select_row(uint8_t row); + +__attribute__ ((weak)) +void matrix_init_quantum(void) { + matrix_init_kb(); +} + +__attribute__ ((weak)) +void matrix_scan_quantum(void) { + matrix_scan_kb(); +} + +__attribute__ ((weak)) +void matrix_init_kb(void) { + matrix_init_user(); +} + +__attribute__ ((weak)) +void matrix_scan_kb(void) { + matrix_scan_user(); +} + +__attribute__ ((weak)) +void matrix_init_user(void) { +} + +__attribute__ ((weak)) +void matrix_scan_user(void) { +} + +inline +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +void matrix_init(void) +{ + debug_enable = true; + debug_matrix = true; + debug_mouse = true; + // initialize row and col + unselect_rows(); + init_cols(); + + TX_RX_LED_INIT; + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + } + + matrix_init_quantum(); +} + +uint8_t _matrix_scan(void) +{ + // Right hand is stored after the left in the matirx so, we need to offset it + int offset = isLeftHand ? 0 : (ROWS_PER_HAND); + + for (uint8_t i = 0; i < ROWS_PER_HAND; i++) { + select_row(i); + _delay_us(30); // without this wait read unstable value. + matrix_row_t cols = read_cols(); + if (matrix_debouncing[i+offset] != cols) { + matrix_debouncing[i+offset] = cols; + debouncing = DEBOUNCE; + } + unselect_rows(); + } + + if (debouncing) { + if (--debouncing) { + _delay_ms(1); + } else { + for (uint8_t i = 0; i < ROWS_PER_HAND; i++) { + matrix[i+offset] = matrix_debouncing[i+offset]; + } + } + } + + return 1; +} + +// Get rows from other half over i2c +int i2c_transaction(void) { + int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0; + + int err = i2c_master_start(SLAVE_I2C_ADDRESS + I2C_WRITE); + if (err) goto i2c_error; + + // start of matrix stored at 0x00 + err = i2c_master_write(0x00); + if (err) goto i2c_error; + + // Start read + err = i2c_master_start(SLAVE_I2C_ADDRESS + I2C_READ); + if (err) goto i2c_error; + + if (!err) { + int i; + for (i = 0; i < ROWS_PER_HAND-1; ++i) { + matrix[slaveOffset+i] = i2c_master_read(I2C_ACK); + } + matrix[slaveOffset+i] = i2c_master_read(I2C_NACK); + i2c_master_stop(); + } else { +i2c_error: // the cable is disconnceted, or something else went wrong + i2c_reset_state(); + return err; + } + + return 0; +} + +#ifndef USE_I2C +int serial_transaction(void) { + int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0; + + if (serial_update_buffers()) { + return 1; + } + + for (int i = 0; i < ROWS_PER_HAND; ++i) { + matrix[slaveOffset+i] = serial_slave_buffer[i]; + } + return 0; +} +#endif + +uint8_t matrix_scan(void) +{ + int ret = _matrix_scan(); + + + +#ifdef USE_I2C + if( i2c_transaction() ) { +#else + if( serial_transaction() ) { +#endif + // turn on the indicator led when halves are disconnected + TXLED1; + + error_count++; + + if (error_count > ERROR_DISCONNECT_COUNT) { + // reset other half if disconnected + int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0; + for (int i = 0; i < ROWS_PER_HAND; ++i) { + matrix[slaveOffset+i] = 0; + } + } + } else { + // turn off the indicator led on no error + TXLED0; + error_count = 0; + } + + matrix_scan_quantum(); + + return ret; +} + +void matrix_slave_scan(void) { + _matrix_scan(); + + int offset = (isLeftHand) ? 0 : (MATRIX_ROWS / 2); + +#ifdef USE_I2C + for (int i = 0; i < ROWS_PER_HAND; ++i) { + /* i2c_slave_buffer[i] = matrix[offset+i]; */ + i2c_slave_buffer[i] = matrix[offset+i]; + } +#else + for (int i = 0; i < ROWS_PER_HAND; ++i) { + serial_slave_buffer[i] = matrix[offset+i]; + } +#endif +} + +bool matrix_is_modified(void) +{ + if (debouncing) return false; + return true; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & ((matrix_row_t)1<> 4) + 1) &= ~_BV(col_pins[x] & 0xF); + _SFR_IO8((col_pins[x] >> 4) + 2) |= _BV(col_pins[x] & 0xF); + } +} + +static matrix_row_t read_cols(void) +{ + matrix_row_t result = 0; + for(int x = 0; x < MATRIX_COLS; x++) { + result |= (_SFR_IO8(col_pins[x] >> 4) & _BV(col_pins[x] & 0xF)) ? 0 : (1 << x); + } + return result; +} + +static void unselect_rows(void) +{ + for(int x = 0; x < ROWS_PER_HAND; x++) { + _SFR_IO8((row_pins[x] >> 4) + 1) &= ~_BV(row_pins[x] & 0xF); + _SFR_IO8((row_pins[x] >> 4) + 2) |= _BV(row_pins[x] & 0xF); + } +} + +static void select_row(uint8_t row) +{ + _SFR_IO8((row_pins[row] >> 4) + 1) |= _BV(row_pins[row] & 0xF); + _SFR_IO8((row_pins[row] >> 4) + 2) &= ~_BV(row_pins[row] & 0xF); +} diff --git a/keyboards/lets_splitv2/pro_micro.h b/keyboards/lets_splitv2/pro_micro.h new file mode 100644 index 000000000..09e219b7b --- /dev/null +++ b/keyboards/lets_splitv2/pro_micro.h @@ -0,0 +1,362 @@ +/* + pins_arduino.h - Pin definition functions for Arduino + Part of Arduino - http://www.arduino.cc/ + + Copyright (c) 2007 David A. Mellis + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ +*/ + +#ifndef Pins_Arduino_h +#define Pins_Arduino_h + +#include + +// Workaround for wrong definitions in "iom32u4.h". +// This should be fixed in the AVR toolchain. +#undef UHCON +#undef UHINT +#undef UHIEN +#undef UHADDR +#undef UHFNUM +#undef UHFNUML +#undef UHFNUMH +#undef UHFLEN +#undef UPINRQX +#undef UPINTX +#undef UPNUM +#undef UPRST +#undef UPCONX +#undef UPCFG0X +#undef UPCFG1X +#undef UPSTAX +#undef UPCFG2X +#undef UPIENX +#undef UPDATX +#undef TCCR2A +#undef WGM20 +#undef WGM21 +#undef COM2B0 +#undef COM2B1 +#undef COM2A0 +#undef COM2A1 +#undef TCCR2B +#undef CS20 +#undef CS21 +#undef CS22 +#undef WGM22 +#undef FOC2B +#undef FOC2A +#undef TCNT2 +#undef TCNT2_0 +#undef TCNT2_1 +#undef TCNT2_2 +#undef TCNT2_3 +#undef TCNT2_4 +#undef TCNT2_5 +#undef TCNT2_6 +#undef TCNT2_7 +#undef OCR2A +#undef OCR2_0 +#undef OCR2_1 +#undef OCR2_2 +#undef OCR2_3 +#undef OCR2_4 +#undef OCR2_5 +#undef OCR2_6 +#undef OCR2_7 +#undef OCR2B +#undef OCR2_0 +#undef OCR2_1 +#undef OCR2_2 +#undef OCR2_3 +#undef OCR2_4 +#undef OCR2_5 +#undef OCR2_6 +#undef OCR2_7 + +#define NUM_DIGITAL_PINS 30 +#define NUM_ANALOG_INPUTS 12 + +#define TX_RX_LED_INIT DDRD |= (1<<5), DDRB |= (1<<0) +#define TXLED0 PORTD |= (1<<5) +#define TXLED1 PORTD &= ~(1<<5) +#define RXLED0 PORTB |= (1<<0) +#define RXLED1 PORTB &= ~(1<<0) + +static const uint8_t SDA = 2; +static const uint8_t SCL = 3; +#define LED_BUILTIN 13 + +// Map SPI port to 'new' pins D14..D17 +static const uint8_t SS = 17; +static const uint8_t MOSI = 16; +static const uint8_t MISO = 14; +static const uint8_t SCK = 15; + +// Mapping of analog pins as digital I/O +// A6-A11 share with digital pins +static const uint8_t A0 = 18; +static const uint8_t A1 = 19; +static const uint8_t A2 = 20; +static const uint8_t A3 = 21; +static const uint8_t A4 = 22; +static const uint8_t A5 = 23; +static const uint8_t A6 = 24; // D4 +static const uint8_t A7 = 25; // D6 +static const uint8_t A8 = 26; // D8 +static const uint8_t A9 = 27; // D9 +static const uint8_t A10 = 28; // D10 +static const uint8_t A11 = 29; // D12 + +#define digitalPinToPCICR(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCICR) : ((uint8_t *)0)) +#define digitalPinToPCICRbit(p) 0 +#define digitalPinToPCMSK(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCMSK0) : ((uint8_t *)0)) +#define digitalPinToPCMSKbit(p) ( ((p) >= 8 && (p) <= 11) ? (p) - 4 : ((p) == 14 ? 3 : ((p) == 15 ? 1 : ((p) == 16 ? 2 : ((p) == 17 ? 0 : (p - A8 + 4)))))) + +// __AVR_ATmega32U4__ has an unusual mapping of pins to channels +extern const uint8_t PROGMEM analog_pin_to_channel_PGM[]; +#define analogPinToChannel(P) ( pgm_read_byte( analog_pin_to_channel_PGM + (P) ) ) + +#define digitalPinToInterrupt(p) ((p) == 0 ? 2 : ((p) == 1 ? 3 : ((p) == 2 ? 1 : ((p) == 3 ? 0 : ((p) == 7 ? 4 : NOT_AN_INTERRUPT))))) + +#ifdef ARDUINO_MAIN + +// On the Arduino board, digital pins are also used +// for the analog output (software PWM). Analog input +// pins are a separate set. + +// ATMEL ATMEGA32U4 / ARDUINO LEONARDO +// +// D0 PD2 RXD1/INT2 +// D1 PD3 TXD1/INT3 +// D2 PD1 SDA SDA/INT1 +// D3# PD0 PWM8/SCL OC0B/SCL/INT0 +// D4 A6 PD4 ADC8 +// D5# PC6 ??? OC3A/#OC4A +// D6# A7 PD7 FastPWM #OC4D/ADC10 +// D7 PE6 INT6/AIN0 +// +// D8 A8 PB4 ADC11/PCINT4 +// D9# A9 PB5 PWM16 OC1A/#OC4B/ADC12/PCINT5 +// D10# A10 PB6 PWM16 OC1B/0c4B/ADC13/PCINT6 +// D11# PB7 PWM8/16 0C0A/OC1C/#RTS/PCINT7 +// D12 A11 PD6 T1/#OC4D/ADC9 +// D13# PC7 PWM10 CLK0/OC4A +// +// A0 D18 PF7 ADC7 +// A1 D19 PF6 ADC6 +// A2 D20 PF5 ADC5 +// A3 D21 PF4 ADC4 +// A4 D22 PF1 ADC1 +// A5 D23 PF0 ADC0 +// +// New pins D14..D17 to map SPI port to digital pins +// +// MISO D14 PB3 MISO,PCINT3 +// SCK D15 PB1 SCK,PCINT1 +// MOSI D16 PB2 MOSI,PCINT2 +// SS D17 PB0 RXLED,SS/PCINT0 +// +// Connected LEDs on board for TX and RX +// TXLED D24 PD5 XCK1 +// RXLED D17 PB0 +// HWB PE2 HWB + +// these arrays map port names (e.g. port B) to the +// appropriate addresses for various functions (e.g. reading +// and writing) +const uint16_t PROGMEM port_to_mode_PGM[] = { + NOT_A_PORT, + NOT_A_PORT, + (uint16_t) &DDRB, + (uint16_t) &DDRC, + (uint16_t) &DDRD, + (uint16_t) &DDRE, + (uint16_t) &DDRF, +}; + +const uint16_t PROGMEM port_to_output_PGM[] = { + NOT_A_PORT, + NOT_A_PORT, + (uint16_t) &PORTB, + (uint16_t) &PORTC, + (uint16_t) &PORTD, + (uint16_t) &PORTE, + (uint16_t) &PORTF, +}; + +const uint16_t PROGMEM port_to_input_PGM[] = { + NOT_A_PORT, + NOT_A_PORT, + (uint16_t) &PINB, + (uint16_t) &PINC, + (uint16_t) &PIND, + (uint16_t) &PINE, + (uint16_t) &PINF, +}; + +const uint8_t PROGMEM digital_pin_to_port_PGM[] = { + PD, // D0 - PD2 + PD, // D1 - PD3 + PD, // D2 - PD1 + PD, // D3 - PD0 + PD, // D4 - PD4 + PC, // D5 - PC6 + PD, // D6 - PD7 + PE, // D7 - PE6 + + PB, // D8 - PB4 + PB, // D9 - PB5 + PB, // D10 - PB6 + PB, // D11 - PB7 + PD, // D12 - PD6 + PC, // D13 - PC7 + + PB, // D14 - MISO - PB3 + PB, // D15 - SCK - PB1 + PB, // D16 - MOSI - PB2 + PB, // D17 - SS - PB0 + + PF, // D18 - A0 - PF7 + PF, // D19 - A1 - PF6 + PF, // D20 - A2 - PF5 + PF, // D21 - A3 - PF4 + PF, // D22 - A4 - PF1 + PF, // D23 - A5 - PF0 + + PD, // D24 - PD5 + PD, // D25 / D6 - A7 - PD7 + PB, // D26 / D8 - A8 - PB4 + PB, // D27 / D9 - A9 - PB5 + PB, // D28 / D10 - A10 - PB6 + PD, // D29 / D12 - A11 - PD6 +}; + +const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { + _BV(2), // D0 - PD2 + _BV(3), // D1 - PD3 + _BV(1), // D2 - PD1 + _BV(0), // D3 - PD0 + _BV(4), // D4 - PD4 + _BV(6), // D5 - PC6 + _BV(7), // D6 - PD7 + _BV(6), // D7 - PE6 + + _BV(4), // D8 - PB4 + _BV(5), // D9 - PB5 + _BV(6), // D10 - PB6 + _BV(7), // D11 - PB7 + _BV(6), // D12 - PD6 + _BV(7), // D13 - PC7 + + _BV(3), // D14 - MISO - PB3 + _BV(1), // D15 - SCK - PB1 + _BV(2), // D16 - MOSI - PB2 + _BV(0), // D17 - SS - PB0 + + _BV(7), // D18 - A0 - PF7 + _BV(6), // D19 - A1 - PF6 + _BV(5), // D20 - A2 - PF5 + _BV(4), // D21 - A3 - PF4 + _BV(1), // D22 - A4 - PF1 + _BV(0), // D23 - A5 - PF0 + + _BV(5), // D24 - PD5 + _BV(7), // D25 / D6 - A7 - PD7 + _BV(4), // D26 / D8 - A8 - PB4 + _BV(5), // D27 / D9 - A9 - PB5 + _BV(6), // D28 / D10 - A10 - PB6 + _BV(6), // D29 / D12 - A11 - PD6 +}; + +const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + TIMER0B, /* 3 */ + NOT_ON_TIMER, + TIMER3A, /* 5 */ + TIMER4D, /* 6 */ + NOT_ON_TIMER, + + NOT_ON_TIMER, + TIMER1A, /* 9 */ + TIMER1B, /* 10 */ + TIMER0A, /* 11 */ + + NOT_ON_TIMER, + TIMER4A, /* 13 */ + + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, +}; + +const uint8_t PROGMEM analog_pin_to_channel_PGM[] = { + 7, // A0 PF7 ADC7 + 6, // A1 PF6 ADC6 + 5, // A2 PF5 ADC5 + 4, // A3 PF4 ADC4 + 1, // A4 PF1 ADC1 + 0, // A5 PF0 ADC0 + 8, // A6 D4 PD4 ADC8 + 10, // A7 D6 PD7 ADC10 + 11, // A8 D8 PB4 ADC11 + 12, // A9 D9 PB5 ADC12 + 13, // A10 D10 PB6 ADC13 + 9 // A11 D12 PD6 ADC9 +}; + +#endif /* ARDUINO_MAIN */ + +// These serial port names are intended to allow libraries and architecture-neutral +// sketches to automatically default to the correct port name for a particular type +// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN, +// the first hardware serial port whose RX/TX pins are not dedicated to another use. +// +// SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor +// +// SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial +// +// SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library +// +// SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins. +// +// SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX +// pins are NOT connected to anything by default. +#define SERIAL_PORT_MONITOR Serial +#define SERIAL_PORT_USBVIRTUAL Serial +#define SERIAL_PORT_HARDWARE Serial1 +#define SERIAL_PORT_HARDWARE_OPEN Serial1 + +#endif /* Pins_Arduino_h */ diff --git a/keyboards/lets_splitv2/readme.md b/keyboards/lets_splitv2/readme.md new file mode 100644 index 000000000..73fdb0f78 --- /dev/null +++ b/keyboards/lets_splitv2/readme.md @@ -0,0 +1,102 @@ +Let's Split +====== + +This readme and most of the code are from https://github.com/ahtn/tmk_keyboard/ + +Split keyboard firmware for Arduino Pro Micro or other ATmega32u4 +based boards. + +Features +-------- + +Some features supported by the firmware: + +* Either half can connect to the computer via USB, or both halves can be used + independently. +* You only need 3 wires to connect the two halves. Two for VCC and GND and one + for serial communication. +* Optional support for I2C connection between the two halves if for some + reason you require a faster connection between the two halves. Note this + requires an extra wire between halves and pull-up resistors on the data lines. + +Required Hardware +----------------- + +Apart from diodes and key switches for the keyboard matrix in each half, you +will need: + +* 2 Arduino Pro Micro's. You can find theses on aliexpress for ≈3.50USD each. +* 2 TRS sockets +* 1 TRS cable. + +Alternatively, you can use any sort of cable and socket that has at least 3 +wires. If you want to use I2C to communicate between halves, you will need a +cable with at least 4 wires and 2x 4.7kΩ pull-up resistors + +Optional Hardware +----------------- + +A speaker can be hooked-up to either side to the `5` (`C6`) pin and `GND`, and turned on via `AUDIO_ENABLE`. + +Wiring +------ + +The 3 wires of the TRS cable need to connect GND, VCC, and digital pin 3 (i.e. +PD0 on the ATmega32u4) between the two Pro Micros. + +Then wire your key matrix to any of the remaining 17 IO pins of the pro micro +and modify the `matrix.c` accordingly. + +The wiring for serial: + +![serial wiring](imgs/split-keyboard-serial-schematic.png) + +The wiring for i2c: + +![i2c wiring](imgs/split-keyboard-i2c-schematic.png) + +The pull-up resistors may be placed on either half. It is also possible +to use 4 resistors and have the pull-ups in both halves, but this is +unnecessary in simple use cases. + +Notes on Software Configuration +------------------------------- + +Configuring the firmware is similar to any other TMK project. One thing +to note is that `MATIX_ROWS` in `config.h` is the total number of rows between +the two halves, i.e. if your split keyboard has 4 rows in each half, then +`MATRIX_ROWS=8`. + +Also the current implementation assumes a maximum of 8 columns, but it would +not be very difficult to adapt it to support more if required. + + +Flashing +-------- + +If you define `EE_HANDS` in your `config.h`, you will need to set the +EEPROM for the left and right halves. The EEPROM is used to store whether the +half is left handed or right handed. This makes it so that the same firmware +file will run on both hands instead of having to flash left and right handed +versions of the firmware to each half. To flash the EEPROM file for the left +half run: +``` +make eeprom-left +``` +and similarly for right half +``` +make eeprom-right +``` + +After you have flashed the EEPROM for the first time, you then need to program +the flash memory: +``` +make program +``` +Note that you need to program both halves, but you have the option of using +different keymaps for each half. You could program the left half with a QWERTY +layout and the right half with a Colemak layout. Then if you connect the left +half to a computer by USB the keyboard will use QWERTY and Colemak when the +right half is connected. + + diff --git a/keyboards/lets_splitv2/serial.c b/keyboards/lets_splitv2/serial.c new file mode 100644 index 000000000..f439c2f20 --- /dev/null +++ b/keyboards/lets_splitv2/serial.c @@ -0,0 +1,225 @@ +/* + * WARNING: be careful changing this code, it is very timing dependent + */ + +#ifndef F_CPU +#define F_CPU 16000000 +#endif + +#include +#include +#include +#include + +#include "serial.h" + +// Serial pulse period in microseconds. Its probably a bad idea to lower this +// value. +#define SERIAL_DELAY 24 + +uint8_t volatile serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH] = {0}; +uint8_t volatile serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH] = {0}; + +#define SLAVE_DATA_CORRUPT (1<<0) +volatile uint8_t status = 0; + +inline static +void serial_delay(void) { + _delay_us(SERIAL_DELAY); +} + +inline static +void serial_output(void) { + SERIAL_PIN_DDR |= SERIAL_PIN_MASK; +} + +// make the serial pin an input with pull-up resistor +inline static +void serial_input(void) { + SERIAL_PIN_DDR &= ~SERIAL_PIN_MASK; + SERIAL_PIN_PORT |= SERIAL_PIN_MASK; +} + +inline static +uint8_t serial_read_pin(void) { + return !!(SERIAL_PIN_INPUT & SERIAL_PIN_MASK); +} + +inline static +void serial_low(void) { + SERIAL_PIN_PORT &= ~SERIAL_PIN_MASK; +} + +inline static +void serial_high(void) { + SERIAL_PIN_PORT |= SERIAL_PIN_MASK; +} + +void serial_master_init(void) { + serial_output(); + serial_high(); +} + +void serial_slave_init(void) { + serial_input(); + + // Enable INT0 + EIMSK |= _BV(INT0); + // Trigger on falling edge of INT0 + EICRA &= ~(_BV(ISC00) | _BV(ISC01)); +} + +// Used by the master to synchronize timing with the slave. +static +void sync_recv(void) { + serial_input(); + // This shouldn't hang if the slave disconnects because the + // serial line will float to high if the slave does disconnect. + while (!serial_read_pin()); + serial_delay(); +} + +// Used by the slave to send a synchronization signal to the master. +static +void sync_send(void) { + serial_output(); + + serial_low(); + serial_delay(); + + serial_high(); +} + +// Reads a byte from the serial line +static +uint8_t serial_read_byte(void) { + uint8_t byte = 0; + serial_input(); + for ( uint8_t i = 0; i < 8; ++i) { + byte = (byte << 1) | serial_read_pin(); + serial_delay(); + _delay_us(1); + } + + return byte; +} + +// Sends a byte with MSB ordering +static +void serial_write_byte(uint8_t data) { + uint8_t b = 8; + serial_output(); + while( b-- ) { + if(data & (1 << b)) { + serial_high(); + } else { + serial_low(); + } + serial_delay(); + } +} + +// interrupt handle to be used by the slave device +ISR(SERIAL_PIN_INTERRUPT) { + sync_send(); + + uint8_t checksum = 0; + for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) { + serial_write_byte(serial_slave_buffer[i]); + sync_send(); + checksum += serial_slave_buffer[i]; + } + serial_write_byte(checksum); + sync_send(); + + // wait for the sync to finish sending + serial_delay(); + + // read the middle of pulses + _delay_us(SERIAL_DELAY/2); + + uint8_t checksum_computed = 0; + for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) { + serial_master_buffer[i] = serial_read_byte(); + sync_send(); + checksum_computed += serial_master_buffer[i]; + } + uint8_t checksum_received = serial_read_byte(); + sync_send(); + + serial_input(); // end transaction + + if ( checksum_computed != checksum_received ) { + status |= SLAVE_DATA_CORRUPT; + } else { + status &= ~SLAVE_DATA_CORRUPT; + } +} + +inline +bool serial_slave_DATA_CORRUPT(void) { + return status & SLAVE_DATA_CORRUPT; +} + +// Copies the serial_slave_buffer to the master and sends the +// serial_master_buffer to the slave. +// +// Returns: +// 0 => no error +// 1 => slave did not respond +int serial_update_buffers(void) { + // this code is very time dependent, so we need to disable interrupts + cli(); + + // signal to the slave that we want to start a transaction + serial_output(); + serial_low(); + _delay_us(1); + + // wait for the slaves response + serial_input(); + serial_high(); + _delay_us(SERIAL_DELAY); + + // check if the slave is present + if (serial_read_pin()) { + // slave failed to pull the line low, assume not present + sei(); + return 1; + } + + // if the slave is present syncronize with it + sync_recv(); + + uint8_t checksum_computed = 0; + // receive data from the slave + for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) { + serial_slave_buffer[i] = serial_read_byte(); + sync_recv(); + checksum_computed += serial_slave_buffer[i]; + } + uint8_t checksum_received = serial_read_byte(); + sync_recv(); + + if (checksum_computed != checksum_received) { + sei(); + return 1; + } + + uint8_t checksum = 0; + // send data to the slave + for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) { + serial_write_byte(serial_master_buffer[i]); + sync_recv(); + checksum += serial_master_buffer[i]; + } + serial_write_byte(checksum); + sync_recv(); + + // always, release the line when not in use + serial_output(); + serial_high(); + + sei(); + return 0; +} diff --git a/keyboards/lets_splitv2/serial.h b/keyboards/lets_splitv2/serial.h new file mode 100644 index 000000000..15fe4db7b --- /dev/null +++ b/keyboards/lets_splitv2/serial.h @@ -0,0 +1,26 @@ +#ifndef MY_SERIAL_H +#define MY_SERIAL_H + +#include "config.h" +#include + +/* TODO: some defines for interrupt setup */ +#define SERIAL_PIN_DDR DDRD +#define SERIAL_PIN_PORT PORTD +#define SERIAL_PIN_INPUT PIND +#define SERIAL_PIN_MASK _BV(PD0) +#define SERIAL_PIN_INTERRUPT INT0_vect + +#define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2 +#define SERIAL_MASTER_BUFFER_LENGTH 1 + +// Buffers for master - slave communication +extern volatile uint8_t serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH]; +extern volatile uint8_t serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH]; + +void serial_master_init(void); +void serial_slave_init(void); +int serial_update_buffers(void); +bool serial_slave_data_corrupt(void); + +#endif diff --git a/keyboards/lets_splitv2/split_util.c b/keyboards/lets_splitv2/split_util.c new file mode 100644 index 000000000..65003a71a --- /dev/null +++ b/keyboards/lets_splitv2/split_util.c @@ -0,0 +1,76 @@ +#include +#include +#include +#include +#include +#include +#include "split_util.h" +#include "matrix.h" +#include "i2c.h" +#include "serial.h" +#include "keyboard.h" +#include "config.h" + +volatile bool isLeftHand = true; + +static void setup_handedness(void) { + #ifdef EE_HANDS + isLeftHand = eeprom_read_byte(EECONFIG_HANDEDNESS); + #else + #ifdef I2C_MASTER_RIGHT + isLeftHand = !has_usb(); + #else + isLeftHand = has_usb(); + #endif + #endif +} + +static void keyboard_master_setup(void) { +#ifdef USE_I2C + i2c_master_init(); +#else + serial_master_init(); +#endif +} + +static void keyboard_slave_setup(void) { +#ifdef USE_I2C + i2c_slave_init(SLAVE_I2C_ADDRESS); +#else + serial_slave_init(); +#endif +} + +bool has_usb(void) { + USBCON |= (1 << OTGPADE); //enables VBUS pad + _delay_us(5); + return (USBSTA & (1< + +#ifdef EE_HANDS + #define EECONFIG_BOOTMAGIC_END (uint8_t *)10 + #define EECONFIG_HANDEDNESS EECONFIG_BOOTMAGIC_END +#endif + +#define SLAVE_I2C_ADDRESS 0x32 + +extern volatile bool isLeftHand; + +// slave version of matix scan, defined in matrix.c +void matrix_slave_scan(void); + +void split_keyboard_setup(void); +bool has_usb(void); +void keyboard_slave_loop(void); + +#endif diff --git a/keyboards/maxipad/Makefile b/keyboards/maxipad/Makefile new file mode 100644 index 000000000..3f6d133c9 --- /dev/null +++ b/keyboards/maxipad/Makefile @@ -0,0 +1,75 @@ + + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=512 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE ?= no # USB Nkey Rollover +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE ?= no # Audio output on port C6 + +ifndef QUANTUM_DIR + include ../../Makefile +endif + + diff --git a/keyboards/maxipad/config.h b/keyboards/maxipad/config.h new file mode 100644 index 000000000..59b8cebec --- /dev/null +++ b/keyboards/maxipad/config.h @@ -0,0 +1,162 @@ +/* +Copyright 2012 Jun Wako + +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 . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Wootpatoot +#define PRODUCT maxipad +#define DESCRIPTION g8ming keeb + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 6 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { B6, F7, B2, B3, B1 } +#define MATRIX_COL_PINS { F6, C6, D7, F5, B4, B5 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/maxipad/keymaps/default/Makefile b/keyboards/maxipad/keymaps/default/Makefile new file mode 100644 index 000000000..f4671a9d1 --- /dev/null +++ b/keyboards/maxipad/keymaps/default/Makefile @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/maxipad/keymaps/default/config.h b/keyboards/maxipad/keymaps/default/config.h new file mode 100644 index 000000000..df06a2620 --- /dev/null +++ b/keyboards/maxipad/keymaps/default/config.h @@ -0,0 +1,8 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here + +#endif \ No newline at end of file diff --git a/keyboards/maxipad/keymaps/default/keymap.c b/keyboards/maxipad/keymaps/default/keymap.c new file mode 100644 index 000000000..7ca127fe4 --- /dev/null +++ b/keyboards/maxipad/keymaps/default/keymap.c @@ -0,0 +1,54 @@ +#include "maxipad.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = KEYMAP( /* Base */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, \ + MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, \ + KC_LCTL, KC_LALT, MO(1), KC_ENT,KC_GRV,KC_SPC \ +), +[1] = KEYMAP( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \ +), +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + +} \ No newline at end of file diff --git a/keyboards/maxipad/keymaps/default/readme.md b/keyboards/maxipad/keymaps/default/readme.md new file mode 100644 index 000000000..a6c0d4a3f --- /dev/null +++ b/keyboards/maxipad/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for maxipad \ No newline at end of file diff --git a/keyboards/maxipad/maxipad.c b/keyboards/maxipad/maxipad.c new file mode 100644 index 000000000..879ae86a7 --- /dev/null +++ b/keyboards/maxipad/maxipad.c @@ -0,0 +1,28 @@ +#include "maxipad.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_record_user(keycode, record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + led_set_user(usb_led); +} diff --git a/keyboards/maxipad/maxipad.h b/keyboards/maxipad/maxipad.h new file mode 100644 index 000000000..eee1309dd --- /dev/null +++ b/keyboards/maxipad/maxipad.h @@ -0,0 +1,25 @@ +#ifndef MAXIPAD_H +#define MAXIPAD_H + +#include "quantum.h" + +// This a shortcut to help you visually see your layout. +// The following is an example using the Planck MIT layout +// The first section contains all of the arguements +// The second converts the arguments into a two-dimensional array +#define KEYMAP( \ + k00, k01, k02, k03, k04, k05, \ + k10, k11, k12, k13, k14, k15, \ + k20, k21, k22, k23, k24, k25, \ + k30, k31, k32, k33, k34, k35, \ + k40, k41, k42, k43, k44, k45 \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05 }, \ + { k10, k11, k12, k13, k14, k15 }, \ + { k20, k21, k22, k23, k24, k25 }, \ + { k30, k31, k32, k33, k34, k35 }, \ + { k40, k41, k42, k43, k44, k45} \ +} + +#endif diff --git a/keyboards/maxipad/readme.md b/keyboards/maxipad/readme.md new file mode 100644 index 000000000..964212b8a --- /dev/null +++ b/keyboards/maxipad/readme.md @@ -0,0 +1,28 @@ +maxipad keyboard firmware +====================== + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent readme.md](/doc/readme.md). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/maxipad folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default + +To build with the default keymap, simply run `make`. + +### Other Keymaps + +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `keymap` option like: + +``` +$ make keymap=[default|jack|] +``` + +Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/` \ No newline at end of file -- cgit v1.2.3 From 79f82d3d80a24483d14b078d325bb0f45af58e3d Mon Sep 17 00:00:00 2001 From: climbalima Date: Thu, 10 Nov 2016 18:43:31 -0500 Subject: returned to o --- keyboards/lets_split/config.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'keyboards') diff --git a/keyboards/lets_split/config.h b/keyboards/lets_split/config.h index bf618704c..05439facb 100644 --- a/keyboards/lets_split/config.h +++ b/keyboards/lets_split/config.h @@ -25,7 +25,7 @@ along with this program. If not, see . #define PRODUCT_ID 0x3060 #define DEVICE_VER 0x0001 #define MANUFACTURER Wootpatoot -#define PRODUCT Lets Split v2 +#define PRODUCT Lets Split #define DESCRIPTION A split keyboard for the cheap makers /* key matrix size */ @@ -34,8 +34,8 @@ along with this program. If not, see . #define MATRIX_COLS 6 // wiring of each half -#define MATRIX_ROW_PINS { D7, E6, B4, B5 } -#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 } +#define MATRIX_ROW_PINS { B5, B4, E6, D7 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 } #define CATERINA_BOOTLOADER @@ -95,4 +95,4 @@ along with this program. If not, see . //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION -#endif \ No newline at end of file +#endif -- cgit v1.2.3 From b5cecb4cc9df2d541050a9a95f48c1d5fb796ae4 Mon Sep 17 00:00:00 2001 From: climbalima Date: Thu, 10 Nov 2016 20:03:24 -0500 Subject: Added both revisions into one folder --- keyboards/lets_split/Makefile | 2 +- keyboards/lets_split/config.h | 16 ++--- keyboards/lets_split/keymaps/default/keymap.c | 51 ++------------ keyboards/lets_split/lets_split.c | 27 -------- keyboards/lets_split/lets_split.h | 26 ++----- keyboards/lets_split/rev1/config.h | 98 +++++++++++++++++++++++++++ keyboards/lets_split/rev1/rev1.c | 30 ++++++++ keyboards/lets_split/rev1/rev1.h | 25 +++++++ keyboards/lets_split/rev2/config.h | 98 +++++++++++++++++++++++++++ keyboards/lets_split/rev2/rev2.c | 30 ++++++++ keyboards/lets_split/rev2/rev2.h | 25 +++++++ 11 files changed, 327 insertions(+), 101 deletions(-) create mode 100644 keyboards/lets_split/rev1/config.h create mode 100644 keyboards/lets_split/rev1/rev1.c create mode 100644 keyboards/lets_split/rev1/rev1.h create mode 100644 keyboards/lets_split/rev2/config.h create mode 100644 keyboards/lets_split/rev2/rev2.c create mode 100644 keyboards/lets_split/rev2/rev2.h (limited to 'keyboards') diff --git a/keyboards/lets_split/Makefile b/keyboards/lets_split/Makefile index 982cfc591..396d51555 100644 --- a/keyboards/lets_split/Makefile +++ b/keyboards/lets_split/Makefile @@ -72,7 +72,7 @@ USE_I2C ?= yes SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend CUSTOM_MATRIX = yes - +SUBPROJECT_DEFAULT = rev2 ifndef QUANTUM_DIR include ../../Makefile endif \ No newline at end of file diff --git a/keyboards/lets_split/config.h b/keyboards/lets_split/config.h index bf618704c..245529ae0 100644 --- a/keyboards/lets_split/config.h +++ b/keyboards/lets_split/config.h @@ -28,15 +28,6 @@ along with this program. If not, see . #define PRODUCT Lets Split v2 #define DESCRIPTION A split keyboard for the cheap makers -/* key matrix size */ -// Rows are doubled-up -#define MATRIX_ROWS 8 -#define MATRIX_COLS 6 - -// wiring of each half -#define MATRIX_ROW_PINS { D7, E6, B4, B5 } -#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 } - #define CATERINA_BOOTLOADER // #define USE_I2C @@ -94,5 +85,10 @@ along with this program. If not, see . //#define NO_ACTION_ONESHOT //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION - +#ifdef SUBPROJECT_rev1 + #include "rev1/config.h" +#endif +#ifdef SUBPROJECT_rev2 + #include "rev2/config.h" +#endif #endif \ No newline at end of file diff --git a/keyboards/lets_split/keymaps/default/keymap.c b/keyboards/lets_split/keymaps/default/keymap.c index 8c8466ebd..d94063816 100644 --- a/keyboards/lets_split/keymaps/default/keymap.c +++ b/keyboards/lets_split/keymaps/default/keymap.c @@ -29,61 +29,24 @@ enum custom_keycodes { #define XXXXXXX KC_NO const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* Qwerty - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | D | F | G | H | J | K | L | ; | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_QWERTY] = KEYMAP( \ - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ +[0] = KEYMAP( \ + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, \ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ - KC_LCTL, _LOWER, KC_LGUI, KC_LALT, MO(_LOWER), KC_SPC, KC_LSFT, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ + KC_LCTL, _LOWER, KC_LGUI, KC_LALT, MO(_LOWER), KC_SPC, KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ ), - -[_LOWER] = KEYMAP( \ - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ +[3] = KEYMAP( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______, \ _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ ), - -/* Raise - * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_RAISE] = KEYMAP( \ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ +[4] = KEYMAP( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, \ _______, _______, _______, _______, _______, KC_ENT, KC_ENT, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ ), - -/* Adjust (Lower + Raise) - * ,-----------------------------------------------------------------------------------. - * | | Reset| | | | | | | | | | Del | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ }; #ifdef AUDIO_ENABLE diff --git a/keyboards/lets_split/lets_split.c b/keyboards/lets_split/lets_split.c index 574c116a7..fe2d4bc19 100644 --- a/keyboards/lets_split/lets_split.c +++ b/keyboards/lets_split/lets_split.c @@ -1,30 +1,3 @@ #include "lets_split.h" -#ifdef AUDIO_ENABLE - float tone_startup[][2] = SONG(STARTUP_SOUND); - float tone_goodbye[][2] = SONG(GOODBYE_SOUND); -#endif -void matrix_init_kb(void) { - - #ifdef AUDIO_ENABLE - _delay_ms(20); // gets rid of tick - PLAY_NOTE_ARRAY(tone_startup, false, 0); - #endif - - // // green led on - // DDRD |= (1<<5); - // PORTD &= ~(1<<5); - - // // orange led on - // DDRB |= (1<<0); - // PORTB &= ~(1<<0); - - matrix_init_user(); -}; - -void shutdown_user(void) { - PLAY_NOTE_ARRAY(tone_goodbye, false, 0); - _delay_ms(150); - stop_all_notes(); -} diff --git a/keyboards/lets_split/lets_split.h b/keyboards/lets_split/lets_split.h index 04844ed63..2cdfb061f 100644 --- a/keyboards/lets_split/lets_split.h +++ b/keyboards/lets_split/lets_split.h @@ -1,25 +1,13 @@ #ifndef LETS_SPLIT_H #define LETS_SPLIT_H -#include "quantum.h" - -void promicro_bootloader_jmp(bool program); +#ifdef SUBPROJECT_rev1 + #include "rev1.h" +#endif +#ifdef SUBPROJECT_rev2 + #include "rev2.h" +#endif -#define KEYMAP( \ - k00, k01, k02, k03, k04, k05, k45, k44, k43, k42, k41, k40, \ - k10, k11, k12, k13, k14, k15, k55, k54, k53, k52, k51, k50, \ - k20, k21, k22, k23, k24, k25, k65, k64, k63, k62, k61, k60, \ - k30, k31, k32, k33, k34, k35, k75, k74, k73, k72, k71, k70 \ - ) \ - { \ - { k00, k01, k02, k03, k04, k05 }, \ - { k10, k11, k12, k13, k14, k15 }, \ - { k20, k21, k22, k23, k24, k25 }, \ - { k30, k31, k32, k33, k34, k35 }, \ - { k40, k41, k42, k43, k44, k45 }, \ - { k50, k51, k52, k53, k54, k55 }, \ - { k60, k61, k62, k63, k64, k65 }, \ - { k70, k71, k72, k73, k74, k75 } \ - } +#include "quantum.h" #endif \ No newline at end of file diff --git a/keyboards/lets_split/rev1/config.h b/keyboards/lets_split/rev1/config.h new file mode 100644 index 000000000..b609ada07 --- /dev/null +++ b/keyboards/lets_split/rev1/config.h @@ -0,0 +1,98 @@ +/* +Copyright 2012 Jun Wako + +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 . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x3060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Wootpatoot +#define PRODUCT Lets Split v1 +#define DESCRIPTION A split keyboard for the cheap makers + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 8 +#define MATRIX_COLS 6 + +// wiring of each half +#define MATRIX_ROW_PINS { B5, B4, E6, D7 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 } + +#define CATERINA_BOOTLOADER + +// #define USE_I2C + +// #define EE_HANDS + +#define I2C_MASTER_LEFT +// #define I2C_MASTER_RIGHT + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +// #define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* ws2812 RGB LED */ +#define ws2812_PORTREG PORTD +#define ws2812_DDRREG DDRD +#define ws2812_pin PD1 +#define RGBLED_NUM 28 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif \ No newline at end of file diff --git a/keyboards/lets_split/rev1/rev1.c b/keyboards/lets_split/rev1/rev1.c new file mode 100644 index 000000000..574c116a7 --- /dev/null +++ b/keyboards/lets_split/rev1/rev1.c @@ -0,0 +1,30 @@ +#include "lets_split.h" + +#ifdef AUDIO_ENABLE + float tone_startup[][2] = SONG(STARTUP_SOUND); + float tone_goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + +void matrix_init_kb(void) { + + #ifdef AUDIO_ENABLE + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); + #endif + + // // green led on + // DDRD |= (1<<5); + // PORTD &= ~(1<<5); + + // // orange led on + // DDRB |= (1<<0); + // PORTB &= ~(1<<0); + + matrix_init_user(); +}; + +void shutdown_user(void) { + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + _delay_ms(150); + stop_all_notes(); +} diff --git a/keyboards/lets_split/rev1/rev1.h b/keyboards/lets_split/rev1/rev1.h new file mode 100644 index 000000000..04fe0ddeb --- /dev/null +++ b/keyboards/lets_split/rev1/rev1.h @@ -0,0 +1,25 @@ +#ifndef REV1_H +#define REV1_H + +#include "quantum.h" + +void promicro_bootloader_jmp(bool program); + +#define KEYMAP( \ + k00, k01, k02, k03, k04, k05, k40, k41, k42, k43, k44, k45, \ + k10, k11, k12, k13, k14, k15, k50, k51, k52, k53, k54, k55, \ + k20, k21, k22, k23, k24, k25, k60, k61, k62, k63, k64, k65, \ + k30, k31, k32, k33, k34, k35, k70, k71, k72, k73, k74, k75 \ + ) \ + { \ + { k00, k01, k02, k03, k04, k05 }, \ + { k10, k11, k12, k13, k14, k15 }, \ + { k20, k21, k22, k23, k24, k25 }, \ + { k30, k31, k32, k33, k34, k35 }, \ + { k40, k41, k42, k43, k44, k45 }, \ + { k50, k51, k52, k53, k54, k55 }, \ + { k60, k61, k62, k63, k64, k65 }, \ + { k70, k71, k72, k73, k74, k75 } \ + } + +#endif \ No newline at end of file diff --git a/keyboards/lets_split/rev2/config.h b/keyboards/lets_split/rev2/config.h new file mode 100644 index 000000000..bf618704c --- /dev/null +++ b/keyboards/lets_split/rev2/config.h @@ -0,0 +1,98 @@ +/* +Copyright 2012 Jun Wako + +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 . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x3060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Wootpatoot +#define PRODUCT Lets Split v2 +#define DESCRIPTION A split keyboard for the cheap makers + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 8 +#define MATRIX_COLS 6 + +// wiring of each half +#define MATRIX_ROW_PINS { D7, E6, B4, B5 } +#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 } + +#define CATERINA_BOOTLOADER + +// #define USE_I2C + +// #define EE_HANDS + +#define I2C_MASTER_LEFT +// #define I2C_MASTER_RIGHT + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +// #define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* ws2812 RGB LED */ +#define ws2812_PORTREG PORTD +#define ws2812_DDRREG DDRD +#define ws2812_pin PD1 +#define RGBLED_NUM 28 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif \ No newline at end of file diff --git a/keyboards/lets_split/rev2/rev2.c b/keyboards/lets_split/rev2/rev2.c new file mode 100644 index 000000000..574c116a7 --- /dev/null +++ b/keyboards/lets_split/rev2/rev2.c @@ -0,0 +1,30 @@ +#include "lets_split.h" + +#ifdef AUDIO_ENABLE + float tone_startup[][2] = SONG(STARTUP_SOUND); + float tone_goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + +void matrix_init_kb(void) { + + #ifdef AUDIO_ENABLE + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); + #endif + + // // green led on + // DDRD |= (1<<5); + // PORTD &= ~(1<<5); + + // // orange led on + // DDRB |= (1<<0); + // PORTB &= ~(1<<0); + + matrix_init_user(); +}; + +void shutdown_user(void) { + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + _delay_ms(150); + stop_all_notes(); +} diff --git a/keyboards/lets_split/rev2/rev2.h b/keyboards/lets_split/rev2/rev2.h new file mode 100644 index 000000000..2a2246f05 --- /dev/null +++ b/keyboards/lets_split/rev2/rev2.h @@ -0,0 +1,25 @@ +#ifndef REV2_H +#define REV2_H + +#include "quantum.h" + +void promicro_bootloader_jmp(bool program); + +#define KEYMAP( \ + k00, k01, k02, k03, k04, k05, k45, k44, k43, k42, k41, k40, \ + k10, k11, k12, k13, k14, k15, k55, k54, k53, k52, k51, k50, \ + k20, k21, k22, k23, k24, k25, k65, k64, k63, k62, k61, k60, \ + k30, k31, k32, k33, k34, k35, k75, k74, k73, k72, k71, k70 \ + ) \ + { \ + { k00, k01, k02, k03, k04, k05 }, \ + { k10, k11, k12, k13, k14, k15 }, \ + { k20, k21, k22, k23, k24, k25 }, \ + { k30, k31, k32, k33, k34, k35 }, \ + { k40, k41, k42, k43, k44, k45 }, \ + { k50, k51, k52, k53, k54, k55 }, \ + { k60, k61, k62, k63, k64, k65 }, \ + { k70, k71, k72, k73, k74, k75 } \ + } + +#endif \ No newline at end of file -- cgit v1.2.3 From 28249498bc621cd8e766a501de0e0c18e525d3f1 Mon Sep 17 00:00:00 2001 From: Seth Chandler Date: Sat, 12 Nov 2016 23:56:57 -0500 Subject: update sethbc keymap --- keyboards/satan/keymaps/sethbc/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/satan/keymaps/sethbc/keymap.c b/keyboards/satan/keymaps/sethbc/keymap.c index 82c779081..b59efd1d9 100644 --- a/keyboards/satan/keymaps/sethbc/keymap.c +++ b/keyboards/satan/keymaps/sethbc/keymap.c @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_BSPC, \ KC_LCTL, 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, MO(_FL), \ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL), + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_MENU, KC_RCTL), [_FL] = KEYMAP_HHKB( #ifdef RGBLIGHT_ENABLE -- cgit v1.2.3 From b2bc215934ddd31315db4304223750aee3eaf38d Mon Sep 17 00:00:00 2001 From: Seth Chandler Date: Sun, 13 Nov 2016 00:42:07 -0500 Subject: add sethbc keymap for gh60 and update macro expansion in connection with same --- keyboards/gh60/gh60.h | 32 +++++++------- keyboards/gh60/keymaps/sethbc/Makefile | 3 ++ keyboards/gh60/keymaps/sethbc/keymap.c | 76 ++++++++++++++++++++++++++++++++++ 3 files changed, 96 insertions(+), 15 deletions(-) create mode 100644 keyboards/gh60/keymaps/sethbc/Makefile create mode 100644 keyboards/gh60/keymaps/sethbc/keymap.c (limited to 'keyboards') diff --git a/keyboards/gh60/gh60.h b/keyboards/gh60/gh60.h index 82624b614..899f7dc6a 100644 --- a/keyboards/gh60/gh60.h +++ b/keyboards/gh60/gh60.h @@ -4,7 +4,7 @@ #include "quantum.h" #include "led.h" -/* GH60 LEDs +/* GH60 LEDs * GPIO pads * 0 F7 WASD LEDs * 1 F6 ESC LED @@ -49,13 +49,13 @@ inline void gh60_wasd_leds_off(void) { DDRF &= ~(1<<7); PORTF &= ~(1<<7); } 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, \ K40, K41, K42, K45, K4A, K4B, K4C, K4D \ -) KEYMAP( \ - 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, NO, K2D, \ - K30, NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, NO, K3D, \ - K40, K41, K42, K45, NO, K4A, K4B, K4C, K4D \ -) +) { \ + { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D }, \ + { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D }, \ + { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_NO, KC_##K2D }, \ + { KC_##K30, KC_NO, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_NO, KC_##K3D }, \ + { KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_##K45, KC_NO, KC_NO, KC_NO, KC_NO, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D } \ +} #define KEYMAP_HHKB( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49,\ @@ -63,12 +63,14 @@ inline void gh60_wasd_leds_off(void) { DDRF &= ~(1<<7); PORTF &= ~(1<<7); } 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, K3C, \ K40, K41, K42, K45, K4A, K4B, K4C, K4D \ -) KEYMAP( \ - 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, NO, K2D, \ - K30, NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ - K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \ -) +) { \ + { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D }, \ + { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D }, \ + { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_NO, KC_##K2D }, \ + { KC_##K30, KC_NO, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D }, \ + { KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_##K45, KC_NO, KC_NO, KC_NO, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D } \ +} + + #endif diff --git a/keyboards/gh60/keymaps/sethbc/Makefile b/keyboards/gh60/keymaps/sethbc/Makefile new file mode 100644 index 000000000..457a3d01d --- /dev/null +++ b/keyboards/gh60/keymaps/sethbc/Makefile @@ -0,0 +1,3 @@ +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/gh60/keymaps/sethbc/keymap.c b/keyboards/gh60/keymaps/sethbc/keymap.c new file mode 100644 index 000000000..85a46a29b --- /dev/null +++ b/keyboards/gh60/keymaps/sethbc/keymap.c @@ -0,0 +1,76 @@ +#include "gh60.h" +#include "action_layer.h" + +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: qwerty */ + KEYMAP_HHKB( + FN0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS, GRV, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \ + LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT,ENT, \ + LSFT, Z, X, C, V, B, N, M, COMM,DOT, SLSH,RSFT, FN1, \ + LCTL,LALT,LGUI, SPC, RGUI,RALT,APP, RCTL), + /* 1: fn */ + KEYMAP_HHKB( + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ + CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,UP,TRNS,TRNS, \ + TRNS,VOLD,VOLU,MUTE,TRNS,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RIGHT,PENT, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END,PGDN,DOWN,TRNS,TRNS, \ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), +}; + +enum function_id { + SHIFT_ESC, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), + [1] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +void matrix_scan_user(void) { + +} + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + } +} -- cgit v1.2.3 From 34bf8558cdfa3baa46db704299ef66b79b2d0a15 Mon Sep 17 00:00:00 2001 From: Seth Chandler Date: Sun, 13 Nov 2016 00:56:46 -0500 Subject: update sethbc ergodox keymap --- keyboards/ergodox/keymaps/sethbc/Makefile | 11 ----------- keyboards/ergodox/keymaps/sethbc/keymap.c | 2 +- keyboards/ergodox/keymaps/sethbc/readme.md | 3 ++- 3 files changed, 3 insertions(+), 13 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/sethbc/Makefile b/keyboards/ergodox/keymaps/sethbc/Makefile index 8c4ff8784..457a3d01d 100644 --- a/keyboards/ergodox/keymaps/sethbc/Makefile +++ b/keyboards/ergodox/keymaps/sethbc/Makefile @@ -1,14 +1,3 @@ -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = no # Commands for debug and configuration -CUSTOM_MATRIX = yes # Custom matrix file for the ErgoDox EZ -SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -MIDI_ENABLE = no # MIDI controls -UNICODE_ENABLE = yes # Unicode - ifndef QUANTUM_DIR include ../../../../Makefile endif diff --git a/keyboards/ergodox/keymaps/sethbc/keymap.c b/keyboards/ergodox/keymaps/sethbc/keymap.c index 6846c4d52..8816ad63b 100644 --- a/keyboards/ergodox/keymaps/sethbc/keymap.c +++ b/keyboards/ergodox/keymaps/sethbc/keymap.c @@ -15,7 +15,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LGUI, KC_GRV, KC_BSLS, KC_LEFT, KC_RGHT, KC_LCTL, KC_LALT, KC_HOME, - KC_SPC, KC_BSPC, KC_END, + KC_BSPC, KC_DEL, KC_END, // right hand MO(FN2), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_LBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRC, diff --git a/keyboards/ergodox/keymaps/sethbc/readme.md b/keyboards/ergodox/keymaps/sethbc/readme.md index 510b2f99c..57b5d0ec7 100644 --- a/keyboards/ergodox/keymaps/sethbc/readme.md +++ b/keyboards/ergodox/keymaps/sethbc/readme.md @@ -1,3 +1,4 @@ # sethbc's Ergodox EZ keymap -Largely based on the Ergodox Infinity default keymap +Largely based on the Ergodox Infinity default keymap, but layer locking has been +removed in favor of momentary layer activation -- cgit v1.2.3 From aa76425395028d304e223d43e76145343850f0db Mon Sep 17 00:00:00 2001 From: Seth Chandler Date: Sun, 13 Nov 2016 01:04:10 -0500 Subject: oops, fixed inverted if statement --- keyboards/satan/keymaps/sethbc/keymap.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'keyboards') diff --git a/keyboards/satan/keymaps/sethbc/keymap.c b/keyboards/satan/keymaps/sethbc/keymap.c index b59efd1d9..93610258b 100644 --- a/keyboards/satan/keymaps/sethbc/keymap.c +++ b/keyboards/satan/keymaps/sethbc/keymap.c @@ -37,16 +37,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FL] = KEYMAP_HHKB( #ifdef RGBLIGHT_ENABLE KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RESET, \ - KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, KC_DEL, \ - _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \ - _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______), - #else - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RESET, \ KC_CAPS, _______, RGB_TOG,RGB_MOD,RGB_HUI, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, KC_DEL, \ _______, KC_VOLD, RGB_HUD,RGB_SAI,RGB_SAD, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \ _______, RGB_VAI,RGB_VAD,_______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______), + #else + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RESET, \ + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, KC_DEL, \ + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \ + _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______), #endif }; -- cgit v1.2.3 From 162f603b1c36c63aa170170998b361a86413767f Mon Sep 17 00:00:00 2001 From: Hans Ellegård Date: Sat, 29 Oct 2016 20:31:12 +0200 Subject: Added keymap "videck", an ErgoDox keymap for Vi(m) users. --- keyboards/ergodox/keymaps/videck/Makefile | 19 ++ keyboards/ergodox/keymaps/videck/config.h | 13 + keyboards/ergodox/keymaps/videck/keymap.c | 179 +++++++++++ keyboards/ergodox/keymaps/videck/readme.md | 24 ++ keyboards/ergodox/keymaps/videck/videck.json | 443 +++++++++++++++++++++++++++ keyboards/ergodox/keymaps/videck/videck.png | Bin 0 -> 106851 bytes 6 files changed, 678 insertions(+) create mode 100644 keyboards/ergodox/keymaps/videck/Makefile create mode 100644 keyboards/ergodox/keymaps/videck/config.h create mode 100644 keyboards/ergodox/keymaps/videck/keymap.c create mode 100644 keyboards/ergodox/keymaps/videck/readme.md create mode 100644 keyboards/ergodox/keymaps/videck/videck.json create mode 100644 keyboards/ergodox/keymaps/videck/videck.png (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/videck/Makefile b/keyboards/ergodox/keymaps/videck/Makefile new file mode 100644 index 000000000..5c7d21f2c --- /dev/null +++ b/keyboards/ergodox/keymaps/videck/Makefile @@ -0,0 +1,19 @@ +AUDIO_ENABLE:=no +BACKLIGHT_ENABLE:=no +BLUETOOTH_ENABLE:=no +BOOTMAGIC_ENABLE:=no +COMMAND_ENABLE:=no +CONSOLE_ENABLE:=no +EXTRAKEY_ENABLE:=yes +MIDI_ENABLE:=no +MOUSEKEY_ENABLE:=yes +NKRO_ENABLE:=no +RGBLIGHT_ENABLE:=no +SLEEP_LED_ENABLE:=no +TAP_DANCE_ENABLE:=yes +UNICODEMAP_ENABLE:=no +UNICODE_ENABLE:=no + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/ergodox/keymaps/videck/config.h b/keyboards/ergodox/keymaps/videck/config.h new file mode 100644 index 000000000..d89aabe77 --- /dev/null +++ b/keyboards/ergodox/keymaps/videck/config.h @@ -0,0 +1,13 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +#ifndef NO_DEBUG + #define NO_DEBUG +#endif +#ifndef NO_PRINT + #define NO_PRINT +#endif + +#endif diff --git a/keyboards/ergodox/keymaps/videck/keymap.c b/keyboards/ergodox/keymaps/videck/keymap.c new file mode 100644 index 000000000..7bd6274e9 --- /dev/null +++ b/keyboards/ergodox/keymaps/videck/keymap.c @@ -0,0 +1,179 @@ +#include + +#include "ergodox.h" +#include "action_layer.h" + +enum { + BASE = 0, // Default layer + ARROWS = 1, // Arrows and Fx keys layer + MOUSE = 2, // Mouse movement and buttons layer + PARENS = 3, // Parenthesis easy access layer + + TD_L = 0, // Tap dance index for left shift + TD_R = 1 // Tap dance index for right shift +}; + +// See the videck.png image for a visualization of the layout. +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = KEYMAP( + // left hand + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_HOME, + KC_EQL, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_END, + MO(PARENS), KC_A, KC_S, KC_D, KC_F, KC_G, + TD(TD_L), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_BSPC, + KC_LCTL, KC_LALT, KC_VOLD, KC_VOLU, KC_MUTE, + KC_ESC, KC_LGUI, + TG(MOUSE), + KC_SPC, KC_TAB, TG(ARROWS), + // right hand + KC_PGUP, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_PGDN, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_DELT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, TD(TD_R), + KC_LBRC, KC_RBRC, KC_EQL, KC_RALT, KC_RCTL, + KC_APP, KC_ESC, + KC_INS, + KC_SLCK, KC_ENT, KC_SPC + ), + [ARROWS] = KEYMAP( + // left hand + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_NO, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, + KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), + [MOUSE] = KEYMAP( + // left hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_BTN3, KC_TRNS, + KC_TRNS, + KC_BTN1, KC_BTN2, KC_NO, + // right hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), + [PARENS] = KEYMAP( + // left hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_NO, + KC_TRNS, KC_TRNS, KC_NO, + // right hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_LPRN, KC_RPRN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + +typedef void (*videck_tap_dance_trigger_t) (const uint16_t kc); + +typedef struct +{ + uint16_t kc1; + uint16_t kc2; + videck_tap_dance_trigger_t trigger; +} videck_tap_dance_tuple_t; + +static void videck_tap_dance_finished (qk_tap_dance_state_t *state, void *user_data) { + videck_tap_dance_tuple_t *const tuple = (videck_tap_dance_tuple_t *)user_data; + + if (state->count == 1) { + register_code16 (tuple->kc1); + } else if (state->count == 2) { + register_code16 (tuple->kc2); + } +} + +static void videck_tap_dance_reset (qk_tap_dance_state_t *state, void *user_data) { + videck_tap_dance_tuple_t *const tuple = (videck_tap_dance_tuple_t *)user_data; + + if (state->count == 1) { + unregister_code16 (tuple->kc1); + } else if (state->count == 2) { + unregister_code16 (tuple->kc2); + tuple->trigger(tuple->kc2); + } +} + +static bool caps_lock_is_on; + +// Toggles caps lock status. +static void videck_caps_trigger (const uint16_t kc) { + caps_lock_is_on ^= true; +} + +#define ACTION_TAP_DANCE_DOUBLE_TRIGGER(kc1, kc2, double_trigger) { \ + .fn = { NULL, videck_tap_dance_finished, videck_tap_dance_reset }, \ + .user_data = (void *)&((videck_tap_dance_tuple_t) { kc1, kc2, double_trigger }), \ + } + +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_L] = ACTION_TAP_DANCE_DOUBLE_TRIGGER(KC_LSFT, KC_CAPS, videck_caps_trigger), + [TD_R] = ACTION_TAP_DANCE_DOUBLE_TRIGGER(KC_RSFT, KC_CAPS, videck_caps_trigger) +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + ergodox_led_all_set(LED_BRIGHTNESS_LO); + caps_lock_is_on = false; +}; + +static void indicate_using_led(const uint8_t led, const bool enabled) { + if (enabled) { + ergodox_right_led_on(led); + } else { + ergodox_right_led_off(led); + } +} + +static inline void indicate_caps_lock_state(const bool enabled) { + indicate_using_led(1, enabled); +} + +static inline void indicate_arrows_layer_state(const bool enabled) { + indicate_using_led(2, enabled); +} + +static inline void indicate_mouse_layer_state(const bool enabled) { + indicate_using_led(3, enabled); +} + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + // Check if we have shift locked. + indicate_caps_lock_state(caps_lock_is_on); + indicate_arrows_layer_state(IS_LAYER_ON(ARROWS)); + indicate_mouse_layer_state(IS_LAYER_ON(MOUSE)); +}; diff --git a/keyboards/ergodox/keymaps/videck/readme.md b/keyboards/ergodox/keymaps/videck/readme.md new file mode 100644 index 000000000..759e81bac --- /dev/null +++ b/keyboards/ergodox/keymaps/videck/readme.md @@ -0,0 +1,24 @@ +ViDeck keymap for ErgoDox +========================= + +This is a QWERTY layout based on the US layout, where Vi functionality has been +especially considered. + +# Features +* Mouse movements using the Vi movement keys. +* Vi movement keys doubling as arrow keys. +* Shift lock using double tap. +* A coder's modifier key for easy input of parenthesis. +* Acess to the escape key using either thumb. +* Reasonably accessible Scroll Lock key (useful if you, like me, want to switch + to a non-US layout once in a while in X). + +# Missing keys +* Caps Lock (shift lock is used instead). +* Pause/Break. +* Print Screen. + +# LEDs +* Shift lock is indicated using first LED. +* Arrow keys layer is indicated using second LED. +* Mouse keys layer is indicated using third LED. diff --git a/keyboards/ergodox/keymaps/videck/videck.json b/keyboards/ergodox/keymaps/videck/videck.json new file mode 100644 index 000000000..7068cf548 --- /dev/null +++ b/keyboards/ergodox/keymaps/videck/videck.json @@ -0,0 +1,443 @@ +[ + { + "backcolor": "#333333", + "background": { + "name": "PBT Black", + "style": "background-image: url('/bg/plastic/pbt-black.png');" + }, + "switchMount": "cherry", + "switchBrand": "gateron", + "switchType": "KS-3-Red" + }, + [ + { + "x": 3.5, + "c": "#323232", + "t": "#ffffff\n\n\n#ac97d8" + }, + "#\n3\n\nF3", + { + "x": 10.5 + }, + "*\n8\n\nF8" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "@\n2\n\nF2", + { + "x": 1 + }, + "$\n4\n\nF4", + { + "x": 8.5 + }, + "&\n7\n\nF7", + { + "x": 1, + "t": "#ffffff\n\n\n#ac97d8\n\n\n\n#555454" + }, + "(\n9\n\nF9" + ], + [ + { + "y": -0.875, + "x": 5.5, + "t": "#ffffff\n\n\n#ac97d8" + }, + "%\n5\n\nF5", + { + "t": "#ffffff" + }, + "home", + { + "x": 4.5 + }, + "pgup", + { + "t": "#ffffff\n\n\n#ac97d8" + }, + "^\n6\n\nF6" + ], + [ + { + "y": -0.875, + "t": "#ffffff", + "w": 1.5 + }, + "~\n`", + { + "t": "#ffffff\n\n\n#ac97d8" + }, + "!\n1\n\nF1", + { + "x": 14.5 + }, + ")\n0\n\nF10", + { + "w": 1.5 + }, + "_\n-\n\nF11" + ], + [ + { + "y": -0.375, + "x": 3.5, + "t": "#ffffff" + }, + "E", + { + "x": 10.5 + }, + "I" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "W", + { + "x": 1 + }, + "R", + { + "x": 8.5 + }, + "U", + { + "x": 1, + "t": "#ffffff\n\n\n\n\n\n\n\n\n#f8d615" + }, + "O\n\n\n\n\n\n\n\n\n{" + ], + [ + { + "y": -0.875, + "x": 5.5, + "t": "#ffffff" + }, + "T", + { + "h": 1.5 + }, + "end", + { + "x": 4.5, + "h": 1.5 + }, + "pgdn", + "Y" + ], + [ + { + "y": -0.875, + "w": 1.5 + }, + "+\n=", + "Q", + { + "x": 14.5, + "t": "#ffffff\n\n\n\n\n\n\n\n\n#f8d615" + }, + "P\n\n\n\n\n\n\n\n\n}", + { + "t": "#ffffff\n\n\n#ac97d8", + "w": 1.5 + }, + "|\n\\\n\nF12" + ], + [ + { + "y": -0.375, + "x": 3.5, + "t": "#ffffff" + }, + "D", + { + "x": 10.5, + "t": "#ffffff\n\n#5eb1e7\n#ac97d8" + }, + "K\n\n\n" + ], + [ + { + "y": -0.875, + "x": 2.5, + "t": "#ffffff" + }, + "S", + { + "x": 1, + "n": true + }, + "F", + { + "x": 8.5, + "t": "#ffffff\n\n#5eb1e7\n#ac97d8", + "n": true + }, + "J\n\n\n", + { + "x": 1, + "t": "#ffffff\n\n#5eb1e7\n#ac97d8\n\n\n\n\n\n#f8d615" + }, + "L\n\n\n\n\n\n\n\n\n(" + ], + [ + { + "y": -0.875, + "x": 5.5, + "t": "#ffffff" + }, + "G", + { + "x": 6.5, + "t": "#ffffff\n\n#5eb1e7\n#ac97d8" + }, + "H\n\n\n" + ], + [ + { + "y": -0.875, + "t": "#f8d615", + "a": 6, + "w": 1.5 + }, + "( ) [ ] { }", + { + "t": "#ffffff", + "a": 4 + }, + "A", + { + "x": 14.5, + "t": "#ffffff\n\n\n\n\n\n\n#60605b\n\n#f8d615" + }, + ":\n;\n\n\n\n\n\nÖ\n\n)", + { + "t": "#ffffff\n\n\n\n\n\n\n#60605b", + "w": 1.5 + }, + "\"\n'\n\n\n\n\n\nÄ" + ], + [ + { + "y": -0.625, + "x": 6.5, + "t": "#ffffff", + "h": 1.5 + }, + "", + { + "x": 4.5, + "h": 1.5 + }, + "" + ], + [ + { + "y": -0.75, + "x": 3.5 + }, + "C", + { + "x": 10.5 + }, + "<\n," + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "X", + { + "x": 1 + }, + "V", + { + "x": 8.5 + }, + "M", + { + "x": 1, + "t": "#ffffff\n\n\n\n\n\n\n\n\n#f8d615" + }, + ">\n.\n\n\n\n\n\n\n\n[" + ], + [ + { + "y": -0.875, + "x": 5.5, + "t": "#ffffff" + }, + "B", + { + "x": 6.5 + }, + "N" + ], + [ + { + "y": -0.875, + "t": "#ffffff\n\n#f67f00", + "a": 6, + "fa": [ + 5 + ], + "w": 1.5 + }, + "⇑\n\n2-tap
locks", + { + "t": "#ffffff", + "a": 4, + "f": 3 + }, + "Z", + { + "x": 14.5, + "t": "#ffffff\n\n\n\n\n\n\n\n\n#f8d615", + "f": 3 + }, + "?\n/\n\n\n\n\n\n\n\n]", + { + "t": "#ffffff\n\n#f67f00", + "a": 6, + "f": 3, + "w": 1.5 + }, + "⇑\n\n2-tap
locks" + ], + [ + { + "y": -0.375, + "x": 3.5, + "t": "#ffffff", + "a": 4 + }, + "\n", + { + "x": 10.5, + "f": 3 + }, + "}\n]" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "\n", + { + "x": 1 + }, + "\n", + { + "x": 8.5, + "t": "#ffffff\n\n\n\n\n\n\n#60605b", + "f": 3 + }, + "{\n[\n\n\n\n\n\nÅ", + { + "x": 1, + "t": "#ffffff", + "f": 3 + }, + "+\n=" + ], + [ + { + "y": -0.75, + "x": 0.5, + "f": 3 + }, + "ctrl", + { + "f": 3 + }, + "alt", + { + "x": 14.5, + "f": 3 + }, + "altgr", + { + "f": 3 + }, + "ctrl" + ], + [ + { + "r": 30, + "rx": 6.5, + "ry": 4.25, + "y": -1, + "x": 1, + "t": "#ffffff\n\n\n\n\n\n\n\n\n\n#5eb1e7", + "f": 3 + }, + "esc\n\n\n\n\n\n\n\n\n\nM", + { + "t": "#ffffff", + "f": 7 + }, + "" + ], + [ + { + "t": "#ffffff\n\n\n\n\n\n\n\n\n\n#5eb1e7", + "f": 3, + "h": 2 + }, + "space\n\n\n\n\n\n\n\n\n\nL", + { + "h": 2 + }, + "\n\n\n\n\n\n\n\n\n\nR", + { + "t": "#5eb1e7" + }, + "" + ], + [ + { + "x": 2, + "t": "#ac97d8" + }, + "" + ], + [ + { + "r": -30, + "rx": 13, + "y": -1, + "x": -3, + "t": "#ffffff" + }, + "", + "esc" + ], + [ + { + "x": -3 + }, + "ins", + { + "h": 2 + }, + "", + { + "h": 2 + }, + "space" + ], + [ + { + "x": -3 + }, + "scroll
lock" + ] +] \ No newline at end of file diff --git a/keyboards/ergodox/keymaps/videck/videck.png b/keyboards/ergodox/keymaps/videck/videck.png new file mode 100644 index 000000000..c99323f53 Binary files /dev/null and b/keyboards/ergodox/keymaps/videck/videck.png differ -- cgit v1.2.3 From e9f748751808de2f1e85cf7fb670d78773bd5e76 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 13 Nov 2016 23:02:38 -0500 Subject: mostly working --- keyboards/ergodox/ez/ez.c | 10 +++- keyboards/ergodox/ez/matrix.c | 2 +- keyboards/ergodox/keymaps/jack/Makefile | 1 + keyboards/ergodox/keymaps/jack/config.h | 4 +- quantum/light_ws2812.c | 21 ++++--- quantum/light_ws2812.h | 14 ++++- quantum/quantum.c | 1 + quantum/rgblight.c | 101 ++++++++++++++++---------------- quantum/rgblight.h | 10 ++-- tmk_core/protocol/lufa/lufa.c | 33 ++++++++++- 10 files changed, 125 insertions(+), 72 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/ez/ez.c b/keyboards/ergodox/ez/ez.c index ddb8ff0cf..039e4c6bb 100644 --- a/keyboards/ergodox/ez/ez.c +++ b/keyboards/ergodox/ez/ez.c @@ -16,10 +16,10 @@ void matrix_init_kb(void) { // unused pins - C7, D4, D5, D7, E6 // set as input with internal pull-ip enabled DDRC &= ~(1<<7); - DDRD &= ~(1<<7 | 1<<5 | 1<<4); + DDRD &= ~(1<<5 | 1<<4); DDRE &= ~(1<<6); PORTC |= (1<<7); - PORTD |= (1<<7 | 1<<5 | 1<<4); + PORTD |= (1<<5 | 1<<4); PORTE |= (1<<6); ergodox_blink_all_leds(); @@ -51,6 +51,10 @@ uint8_t init_mcp23018(void) { mcp23018_status = 0x20; // I2C subsystem + + uint8_t sreg_prev; + sreg_prev=SREG; + cli(); if (i2c_initialized == 0) { i2c_init(); // on pins D(1,0) i2c_initialized++; @@ -79,6 +83,8 @@ uint8_t init_mcp23018(void) { out: i2c_stop(); + SREG=sreg_prev; + return mcp23018_status; } diff --git a/keyboards/ergodox/ez/matrix.c b/keyboards/ergodox/ez/matrix.c index a19bab90b..43f515259 100644 --- a/keyboards/ergodox/ez/matrix.c +++ b/keyboards/ergodox/ez/matrix.c @@ -121,7 +121,7 @@ void matrix_init(void) matrix_scan_count = 0; #endif - matrix_init_kb(); + matrix_init_quantum(); } diff --git a/keyboards/ergodox/keymaps/jack/Makefile b/keyboards/ergodox/keymaps/jack/Makefile index 1e5761278..7c257af50 100644 --- a/keyboards/ergodox/keymaps/jack/Makefile +++ b/keyboards/ergodox/keymaps/jack/Makefile @@ -1,4 +1,5 @@ RGBLIGHT_ENABLE = yes +MIDI_ENABLE = yes ifndef QUANTUM_DIR include ../../../../Makefile diff --git a/keyboards/ergodox/keymaps/jack/config.h b/keyboards/ergodox/keymaps/jack/config.h index 1781563b8..5bf109c18 100644 --- a/keyboards/ergodox/keymaps/jack/config.h +++ b/keyboards/ergodox/keymaps/jack/config.h @@ -5,10 +5,12 @@ /* ws2812 RGB LED */ #define RGB_DI_PIN D7 -// #define RGBLIGHT_TIMER +#define RGBLIGHT_TIMER #define RGBLED_NUM 15 // Number of LEDs #define RGBLIGHT_HUE_STEP 12 #define RGBLIGHT_SAT_STEP 255 #define RGBLIGHT_VAL_STEP 12 +#define RGB_MIDI + #endif \ No newline at end of file diff --git a/quantum/light_ws2812.c b/quantum/light_ws2812.c index 497543339..6edbc0f2b 100755 --- a/quantum/light_ws2812.c +++ b/quantum/light_ws2812.c @@ -133,13 +133,13 @@ unsigned char I2C_Write(unsigned char c) #endif // Setleds for standard RGB -void inline ws2812_setleds(struct cRGB *ledarray, uint16_t leds) +void inline ws2812_setleds(LED_TYPE *ledarray, uint16_t leds) { // ws2812_setleds_pin(ledarray,leds, _BV(ws2812_pin)); ws2812_setleds_pin(ledarray,leds, _BV(RGB_DI_PIN & 0xF)); } -void inline ws2812_setleds_pin(struct cRGB *ledarray, uint16_t leds, uint8_t pinmask) +void inline ws2812_setleds_pin(LED_TYPE *ledarray, uint16_t leds, uint8_t pinmask) { // ws2812_DDRREG |= pinmask; // Enable DDR // new universal format (DDR) @@ -150,12 +150,15 @@ void inline ws2812_setleds_pin(struct cRGB *ledarray, uint16_t leds, uint8_t pin } // Setleds for SK6812RGBW -void inline ws2812_setleds_rgbw(struct cRGBW *ledarray, uint16_t leds) +void inline ws2812_setleds_rgbw(LED_TYPE *ledarray, uint16_t leds) { #ifdef RGBW_BB_TWI + uint8_t sreg_prev, twcr_prev; + sreg_prev=SREG; + twcr_prev=TWCR; cli(); - TWCR = 0; + TWCR &= ~(1<> 8) & 0xff; - OCR3AL = RGBLED_TIMER_TOP & 0xff; - SREG = sreg; + // static uint8_t rgblight_timer_is_init = 0; + // if (rgblight_timer_is_init) { + // return; + // } + // rgblight_timer_is_init = 1; + // /* Timer 3 setup */ + // TCCR3B = _BV(WGM32) // CTC mode OCR3A as TOP + // | _BV(CS30); // Clock selelct: clk/1 + // /* Set TOP value */ + // uint8_t sreg = SREG; + // cli(); + // OCR3AH = (RGBLED_TIMER_TOP >> 8) & 0xff; + // OCR3AL = RGBLED_TIMER_TOP & 0xff; + // SREG = sreg; + + rgblight_timer_enabled = true; } void rgblight_timer_enable(void) { - TIMSK3 |= _BV(OCIE3A); + rgblight_timer_enabled = true; dprintf("TIMER3 enabled.\n"); } void rgblight_timer_disable(void) { - TIMSK3 &= ~_BV(OCIE3A); + rgblight_timer_enabled = false; dprintf("TIMER3 disabled.\n"); } void rgblight_timer_toggle(void) { - TIMSK3 ^= _BV(OCIE3A); + rgblight_timer_enabled ^= rgblight_timer_enabled; dprintf("TIMER3 toggled.\n"); } -ISR(TIMER3_COMPA_vect) { - // mode = 1, static light, do nothing here - if (rgblight_config.mode >= 2 && rgblight_config.mode <= 5) { - // mode = 2 to 5, breathing mode - rgblight_effect_breathing(rgblight_config.mode - 2); - } else if (rgblight_config.mode >= 6 && rgblight_config.mode <= 8) { - // mode = 6 to 8, rainbow mood mod - rgblight_effect_rainbow_mood(rgblight_config.mode - 6); - } else if (rgblight_config.mode >= 9 && rgblight_config.mode <= 14) { - // mode = 9 to 14, rainbow swirl mode - rgblight_effect_rainbow_swirl(rgblight_config.mode - 9); - } else if (rgblight_config.mode >= 15 && rgblight_config.mode <= 20) { - // mode = 15 to 20, snake mode - rgblight_effect_snake(rgblight_config.mode - 15); - } else if (rgblight_config.mode >= 21 && rgblight_config.mode <= 23) { - // mode = 21 to 23, knight mode - rgblight_effect_knight(rgblight_config.mode - 21); +void rgblight_task(void) { + if (rgblight_timer_enabled) { + // mode = 1, static light, do nothing here + if (rgblight_config.mode >= 2 && rgblight_config.mode <= 5) { + // mode = 2 to 5, breathing mode + rgblight_effect_breathing(rgblight_config.mode - 2); + } else if (rgblight_config.mode >= 6 && rgblight_config.mode <= 8) { + // mode = 6 to 8, rainbow mood mod + rgblight_effect_rainbow_mood(rgblight_config.mode - 6); + } else if (rgblight_config.mode >= 9 && rgblight_config.mode <= 14) { + // mode = 9 to 14, rainbow swirl mode + rgblight_effect_rainbow_swirl(rgblight_config.mode - 9); + } else if (rgblight_config.mode >= 15 && rgblight_config.mode <= 20) { + // mode = 15 to 20, snake mode + rgblight_effect_snake(rgblight_config.mode - 15); + } else if (rgblight_config.mode >= 21 && rgblight_config.mode <= 23) { + // mode = 21 to 23, knight mode + rgblight_effect_knight(rgblight_config.mode - 21); + } } } @@ -461,7 +462,7 @@ void rgblight_effect_rainbow_swirl(uint8_t interval) { last_timer = timer_read(); for (i = 0; i < RGBLED_NUM; i++) { hue = (360 / RGBLED_NUM * i + current_hue) % 360; - sethsv(hue, rgblight_config.sat, rgblight_config.val, &led[i]); + sethsv(hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i]); } rgblight_set(); @@ -498,7 +499,7 @@ void rgblight_effect_snake(uint8_t interval) { k = k + RGBLED_NUM; } if (i == k) { - sethsv(rgblight_config.hue, rgblight_config.sat, (uint8_t)(rgblight_config.val*(RGBLIGHT_EFFECT_SNAKE_LENGTH-j)/RGBLIGHT_EFFECT_SNAKE_LENGTH), &led[i]); + sethsv(rgblight_config.hue, rgblight_config.sat, (uint8_t)(rgblight_config.val*(RGBLIGHT_EFFECT_SNAKE_LENGTH-j)/RGBLIGHT_EFFECT_SNAKE_LENGTH), (LED_TYPE *)&led[i]); } } } @@ -518,7 +519,7 @@ void rgblight_effect_knight(uint8_t interval) { static uint16_t last_timer = 0; uint8_t i, j, cur; int8_t k; - struct cRGB preled[RGBLED_NUM]; + LED_TYPE preled[RGBLED_NUM]; static int8_t increment = -1; if (timer_elapsed(last_timer) < pgm_read_byte(&RGBLED_KNIGHT_INTERVALS[interval])) { return; @@ -537,7 +538,7 @@ void rgblight_effect_knight(uint8_t interval) { k = RGBLED_NUM - 1; } if (i == k) { - sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, &preled[i]); + sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&preled[i]); } } } diff --git a/quantum/rgblight.h b/quantum/rgblight.h index efc685f31..d16ba24e5 100644 --- a/quantum/rgblight.h +++ b/quantum/rgblight.h @@ -1,8 +1,6 @@ #ifndef RGBLIGHT_H #define RGBLIGHT_H -#define RGBW 1 - #if !defined(AUDIO_ENABLE) && defined(RGBLIGHT_TIMER) #define RGBLIGHT_MODES 23 #else @@ -35,6 +33,7 @@ #endif #define RGBLED_TIMER_TOP F_CPU/(256*64) +// #define RGBLED_TIMER_TOP 0xFF10 #include #include @@ -79,10 +78,13 @@ void eeconfig_update_rgblight(uint32_t val); void eeconfig_update_rgblight_default(void); void eeconfig_debug_rgblight(void); -void sethsv(uint16_t hue, uint8_t sat, uint8_t val, struct cRGB *led1); -void setrgb(uint8_t r, uint8_t g, uint8_t b, struct cRGB *led1); +void sethsv(uint16_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1); +void setrgb(uint8_t r, uint8_t g, uint8_t b, LED_TYPE *led1); void rgblight_sethsv_noeeprom(uint16_t hue, uint8_t sat, uint8_t val); + +void rgblight_task(void); + void rgblight_timer_init(void); void rgblight_timer_enable(void); void rgblight_timer_disable(void); diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index 01c0e45b0..fe466f604 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c @@ -71,6 +71,10 @@ #include "virtser.h" #endif +#ifdef RGB_MIDI + #include "rgblight.h" +#endif + uint8_t keyboard_idle = 0; /* 0: Boot Protocol, 1: Report Protocol(default) */ uint8_t keyboard_protocol = 1; @@ -1045,6 +1049,10 @@ int main(void) #endif keyboard_task(); +#ifdef RGBLIGHT_ENABLE + rgblight_task(); +#endif + #ifdef VIRTSER_ENABLE virtser_task(); CDC_Device_USBTask(&cdc_device); @@ -1077,15 +1085,34 @@ void fallthrough_callback(MidiDevice * device, #endif } +#ifdef RGB_MIDI + rgblight_config_t rgblight_config; +#endif + void cc_callback(MidiDevice * device, uint8_t chan, uint8_t num, uint8_t val) { //sending it back on the next channel - midi_send_cc(device, (chan + 1) % 16, num, val); + // midi_send_cc(device, (chan + 1) % 16, num, val); + #ifdef RGB_MIDI + rgblight_config.raw = eeconfig_read_rgblight(); + switch (num) { + case 14: + rgblight_config.hue = val * 360 / 127; + break; + case 15: + rgblight_config.sat = val << 1; + break; + case 16: + rgblight_config.val = val << 1; + break; + } + rgblight_sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val); + #endif } void sysex_callback(MidiDevice * device, uint16_t start, uint8_t length, uint8_t * data) { - for (int i = 0; i < length; i++) - midi_send_cc(device, 15, 0x7F & data[i], 0x7F & (start + i)); + // for (int i = 0; i < length; i++) + // midi_send_cc(device, 15, 0x7F & data[i], 0x7F & (start + i)); } #endif -- cgit v1.2.3 From dd22c787b8b417df109d2136c76ce496dd7b93e3 Mon Sep 17 00:00:00 2001 From: climbalima Date: Mon, 14 Nov 2016 23:05:37 -0500 Subject: fixed extra paste --- keyboards/lets_split/config.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'keyboards') diff --git a/keyboards/lets_split/config.h b/keyboards/lets_split/config.h index a5394c5e4..bf0473116 100644 --- a/keyboards/lets_split/config.h +++ b/keyboards/lets_split/config.h @@ -105,7 +105,6 @@ along with this program. If not, see . #include "rev2/config.h" #endif #endif -======= -#endif ->>>>>>> 79f82d3d80a24483d14b078d325bb0f45af58e3d + + -- cgit v1.2.3 From bce6e52391da7c5f620c96a91857940f0dee19df Mon Sep 17 00:00:00 2001 From: climbalima Date: Mon, 14 Nov 2016 23:08:10 -0500 Subject: fixed conflict --- keyboards/lets_split/config.h | 3 --- 1 file changed, 3 deletions(-) (limited to 'keyboards') diff --git a/keyboards/lets_split/config.h b/keyboards/lets_split/config.h index bf0473116..059d45b0c 100644 --- a/keyboards/lets_split/config.h +++ b/keyboards/lets_split/config.h @@ -28,8 +28,6 @@ along with this program. If not, see . #define PRODUCT Lets Split #define DESCRIPTION A split keyboard for the cheap makers -<<<<<<< HEAD -======= /* key matrix size */ // Rows are doubled-up #define MATRIX_ROWS 8 @@ -39,7 +37,6 @@ along with this program. If not, see . #define MATRIX_ROW_PINS { B5, B4, E6, D7 } #define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 } ->>>>>>> 79f82d3d80a24483d14b078d325bb0f45af58e3d #define CATERINA_BOOTLOADER // #define USE_I2C -- cgit v1.2.3 From 4da698fda3b7e08d7baa6849243716fb8765679a Mon Sep 17 00:00:00 2001 From: Seebs Date: Wed, 16 Nov 2016 15:44:26 -0600 Subject: dvorak/plover keyboard layout Plover's steno support likes quasi-qwerty, and gaming likes qwerty, and I like dvorak, so... what if I could have it all? Signed-off-by: seebs --- keyboards/ergodox/keymaps/dvorak_plover/README.md | 14 ++ keyboards/ergodox/keymaps/dvorak_plover/keymap.c | 230 ++++++++++++++++++++++ 2 files changed, 244 insertions(+) create mode 100644 keyboards/ergodox/keymaps/dvorak_plover/README.md create mode 100644 keyboards/ergodox/keymaps/dvorak_plover/keymap.c (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/dvorak_plover/README.md b/keyboards/ergodox/keymaps/dvorak_plover/README.md new file mode 100644 index 000000000..c8287b019 --- /dev/null +++ b/keyboards/ergodox/keymaps/dvorak_plover/README.md @@ -0,0 +1,14 @@ +Dvorak support, plover support, gaming support + +I'm used to the Kinesis, so originally I was just going to patch up +the thumb keys to be more familiar. But the ergodox is really well +suited to NKRO support in Plover, so I added a layer for that, and +then I remembered that dvorak can be really annoying for video +games (try to reach WASD), so I added a layer for that. + +The result is probably a bit idiosyncratic, but it works for me. + +(I also don't have any press/hold distinction keys, because that +confuses my fuzzy little brain.) + +Contributed by seebs (seebs@seebs.net) diff --git a/keyboards/ergodox/keymaps/dvorak_plover/keymap.c b/keyboards/ergodox/keymaps/dvorak_plover/keymap.c new file mode 100644 index 000000000..d0505609d --- /dev/null +++ b/keyboards/ergodox/keymaps/dvorak_plover/keymap.c @@ -0,0 +1,230 @@ +#include "ergodox.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define PLVR 2 // media keys +#define QWRT 3 // qwerty layer for gaming + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | \ | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | ' | , | . | P | Y | L1 | | L2 | F | G | C | R | L | / | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | LGui | A | O | E | U | I |------| |------| D | H | T | N | S | - | + * |--------+------+------+------+------+------| Esc | | L3 |------+------+------+------+------+--------| + * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Lalt | Grv | | Left | Right| | Up | Down | [ | ] | RAlt | + * `----------------------------------' `----------------------------------' + * ,-------------. ,---------------. + * | LCtrl| Alt | | LGui | RCtrl | + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * |Backsp|Delete|------| |------| Enter |Space | + * | ace| | End | | PgDn | | | + * `--------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, MO(SYMB), + KC_LGUI, KC_A, KC_O, KC_E, KC_U, KC_I, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_ESC, + KC_LALT, KC_GRV, KC_ESC, KC_LEFT,KC_RGHT, + KC_LCTL, KC_LALT, + KC_HOME, + KC_BSPC,KC_DEL,KC_END, + // right hand + KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + TG(PLVR), KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, + TG(QWRT),KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_RALT, + KC_LGUI, KC_RCTL, + KC_PGUP, + KC_PGDN,KC_ENT, KC_SPC + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | KP7 | KP8 | KP9 | KP* | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | KP4 | KP5 | KP6 | KP+ | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | KP1 | KP2 | KP3 | KP/ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | KP. | KP0 | KP= | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, + KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_P7, KC_P8, KC_P9, KC_PAST, KC_F12, + KC_DOWN, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_TRNS, + KC_TRNS,KC_PDOT, KC_P0, KC_PEQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Steno for Plover from https://github.com/shayneholmes/tmk_keyboard/commit/11290f8489013018f778627db725160c745e75bd + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | 1 | 2 | 3 | 4 | 5 | | | L2 | 6 | 7 | 8 | 9 | 0 | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | q | w | e | r | t |------| |------| y | u | i | o | p | [ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | a | s | d | f | g | | | | h | j | k | l | ; | ' | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | c | v |------| |------| n | m | + * | | | | | | | | + * `--------------------' `--------------------' + */ + +[PLVR] = KEYMAP( // layout: layer 2: Steno for Plover + // left hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, + KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T, + KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_FN4, KC_NO, + KC_NO, + KC_C, KC_V, KC_NO, + // right hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + TG(2), KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_NO, KC_N, KC_M +), +/* Keymap 3: qwerty-ish + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | LGui | A | S | D | F | G |------| |------| H | J | K | L | ; | LGui | + * |--------+------+------+------+------+------| Spc | | L3 |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Lalt | Grv | '" | Left | Right| | Up | Down | [ | ] | RAlt | + * `----------------------------------' `----------------------------------' + * ,-------------. ,---------------. + * | LCtrl| LAlt | | LGui | RCtrl | + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * |Backsp|Delete|------| |------| Enter |Space | + * | ace| | End | | PgDn | | | + * `--------------------' `----------------------' + */ +[QWRT] = KEYMAP( // layer 3: qwerty for gaming + // left hand + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), + KC_LGUI, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_SPACE, + KC_LALT, KC_GRV, KC_QUOT, KC_LEFT,KC_RGHT, + KC_LCTL, KC_LALT, + KC_HOME, + KC_BSPC,KC_DEL,KC_END, + // right hand + KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + TG(QWRT), KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_RALT, + KC_LGUI, KC_RCTL, + KC_PGUP, + KC_PGDN,KC_ENT, KC_SPC + ), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + case 3: + ergodox_right_led_3_on(); + break; + default: + // none + break; + } + +}; -- cgit v1.2.3 From 1dd6ceb45dfcf5f0991b84fea5a761a35df7fcda Mon Sep 17 00:00:00 2001 From: climbalima Date: Wed, 16 Nov 2016 19:18:54 -0500 Subject: Updated my repo to current qmk --- keyboards/lets_split/config.h | 48 ++------ keyboards/lets_split/keymaps/default/keymap.c | 12 +- keyboards/lets_split/lets_split.c | 30 ----- keyboards/lets_split/lets_split.h | 26 ++--- keyboards/lets_split/rev1/Makefile | 3 + keyboards/lets_split/rev1/config.h | 102 ++++++++++++++++ keyboards/lets_split/rev1/rev1.c | 32 +++++ keyboards/lets_split/rev1/rev1.h | 25 ++++ keyboards/lets_split/rev1/rules.mk | 5 + keyboards/lets_split/rev2/Makefile | 3 + keyboards/lets_split/rev2/config.h | 102 ++++++++++++++++ keyboards/lets_split/rev2/rev2.c | 32 +++++ keyboards/lets_split/rev2/rev2.h | 25 ++++ keyboards/lets_split/rev2/rules.mk | 5 + keyboards/lets_split/rules.mk | 7 +- keyboards/maxipad/Makefile | 3 + keyboards/maxipad/config.h | 162 ++++++++++++++++++++++++++ keyboards/maxipad/keymaps/default/Makefile | 21 ++++ keyboards/maxipad/keymaps/default/config.h | 8 ++ keyboards/maxipad/keymaps/default/keymap.c | 54 +++++++++ keyboards/maxipad/keymaps/default/readme.md | 1 + keyboards/maxipad/maxipad.c | 28 +++++ keyboards/maxipad/maxipad.h | 25 ++++ keyboards/maxipad/readme.md | 28 +++++ keyboards/maxipad/rules.mk | 67 +++++++++++ 25 files changed, 756 insertions(+), 98 deletions(-) create mode 100644 keyboards/lets_split/rev1/Makefile create mode 100644 keyboards/lets_split/rev1/config.h create mode 100644 keyboards/lets_split/rev1/rev1.c create mode 100644 keyboards/lets_split/rev1/rev1.h create mode 100644 keyboards/lets_split/rev1/rules.mk create mode 100644 keyboards/lets_split/rev2/Makefile create mode 100644 keyboards/lets_split/rev2/config.h create mode 100644 keyboards/lets_split/rev2/rev2.c create mode 100644 keyboards/lets_split/rev2/rev2.h create mode 100644 keyboards/lets_split/rev2/rules.mk create mode 100644 keyboards/maxipad/Makefile create mode 100644 keyboards/maxipad/config.h create mode 100644 keyboards/maxipad/keymaps/default/Makefile create mode 100644 keyboards/maxipad/keymaps/default/config.h create mode 100644 keyboards/maxipad/keymaps/default/keymap.c create mode 100644 keyboards/maxipad/keymaps/default/readme.md create mode 100644 keyboards/maxipad/maxipad.c create mode 100644 keyboards/maxipad/maxipad.h create mode 100644 keyboards/maxipad/readme.md create mode 100644 keyboards/maxipad/rules.mk (limited to 'keyboards') diff --git a/keyboards/lets_split/config.h b/keyboards/lets_split/config.h index f4d900acc..5bee55319 100644 --- a/keyboards/lets_split/config.h +++ b/keyboards/lets_split/config.h @@ -28,29 +28,6 @@ along with this program. If not, see . #define PRODUCT Lets Split #define DESCRIPTION A split keyboard for the cheap makers -/* key matrix size */ -// Rows are doubled-up -#define MATRIX_ROWS 8 -#define MATRIX_COLS 6 - -// wiring of each half -#define MATRIX_ROW_PINS { B5, B4, E6, D7 } -#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 } - -#define CATERINA_BOOTLOADER - -// #define USE_I2C - -// Use serial if not using I2C -#ifndef USE_I2C -# define USE_SERIAL -#endif - -// #define EE_HANDS - -#define I2C_MASTER_LEFT -// #define I2C_MASTER_RIGHT - /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW @@ -72,25 +49,11 @@ along with this program. If not, see . #define IS_COMMAND() ( \ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ ) - -/* ws2812 RGB LED */ -#define RGB_DI_PIN D4 -#define RGBLIGHT_TIMER -#define RGBLED_NUM 8 // Number of LEDs -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - /* disable debug print */ -// #define NO_DEBUG +//#define NO_DEBUG /* disable print */ -// #define NO_PRINT +//#define NO_PRINT /* disable action features */ //#define NO_ACTION_LAYER @@ -98,5 +61,10 @@ along with this program. If not, see . //#define NO_ACTION_ONESHOT //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION - +#ifdef SUBPROJECT_rev1 + #include "rev1/config.h" +#endif +#ifdef SUBPROJECT_rev2 + #include "rev2/config.h" +#endif #endif diff --git a/keyboards/lets_split/keymaps/default/keymap.c b/keyboards/lets_split/keymaps/default/keymap.c index 0d2d94b67..fc41c01fd 100644 --- a/keyboards/lets_split/keymaps/default/keymap.c +++ b/keyboards/lets_split/keymaps/default/keymap.c @@ -42,10 +42,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_QWERTY] = KEYMAP( \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ - ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ + KC_LCTL, ADJUST, KC_LALT, KC_LGUI, LOWER, KC_SPC, MT(MOD_LSFT, KC_SPC), RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ ), /* Colemak @@ -99,7 +99,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ + _______, _______, _______, _______, _______, KC_BSPC, MT(MOD_LSFT, KC_BSPC), _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ ), /* Raise @@ -117,7 +117,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ + _______, _______, _______, _______, _______, KC_ENT, MT(MOD_LSFT, KC_ENT), _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ ), /* Adjust (Lower + Raise) @@ -134,7 +134,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = KEYMAP( \ _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ ) diff --git a/keyboards/lets_split/lets_split.c b/keyboards/lets_split/lets_split.c index c505d3a6e..851299aa2 100644 --- a/keyboards/lets_split/lets_split.c +++ b/keyboards/lets_split/lets_split.c @@ -1,32 +1,2 @@ #include "lets_split.h" -#ifdef AUDIO_ENABLE - float tone_startup[][2] = SONG(STARTUP_SOUND); - float tone_goodbye[][2] = SONG(GOODBYE_SOUND); -#endif - -void matrix_init_kb(void) { - - #ifdef AUDIO_ENABLE - _delay_ms(20); // gets rid of tick - PLAY_NOTE_ARRAY(tone_startup, false, 0); - #endif - - // // green led on - // DDRD |= (1<<5); - // PORTD &= ~(1<<5); - - // // orange led on - // DDRB |= (1<<0); - // PORTB &= ~(1<<0); - - matrix_init_user(); -}; - -void shutdown_user(void) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_goodbye, false, 0); - _delay_ms(150); - stop_all_notes(); - #endif -} diff --git a/keyboards/lets_split/lets_split.h b/keyboards/lets_split/lets_split.h index fe7ae0767..2cdfb061f 100644 --- a/keyboards/lets_split/lets_split.h +++ b/keyboards/lets_split/lets_split.h @@ -1,25 +1,13 @@ #ifndef LETS_SPLIT_H #define LETS_SPLIT_H -#include "quantum.h" - -void promicro_bootloader_jmp(bool program); +#ifdef SUBPROJECT_rev1 + #include "rev1.h" +#endif +#ifdef SUBPROJECT_rev2 + #include "rev2.h" +#endif -#define KEYMAP( \ - k00, k01, k02, k03, k04, k05, k40, k41, k42, k43, k44, k45, \ - k10, k11, k12, k13, k14, k15, k50, k51, k52, k53, k54, k55, \ - k20, k21, k22, k23, k24, k25, k60, k61, k62, k63, k64, k65, \ - k30, k31, k32, k33, k34, k35, k70, k71, k72, k73, k74, k75 \ - ) \ - { \ - { k00, k01, k02, k03, k04, k05 }, \ - { k10, k11, k12, k13, k14, k15 }, \ - { k20, k21, k22, k23, k24, k25 }, \ - { k30, k31, k32, k33, k34, k35 }, \ - { k40, k41, k42, k43, k44, k45 }, \ - { k50, k51, k52, k53, k54, k55 }, \ - { k60, k61, k62, k63, k64, k65 }, \ - { k70, k71, k72, k73, k74, k75 } \ - } +#include "quantum.h" #endif \ No newline at end of file diff --git a/keyboards/lets_split/rev1/Makefile b/keyboards/lets_split/rev1/Makefile new file mode 100644 index 000000000..4e2a6f00f --- /dev/null +++ b/keyboards/lets_split/rev1/Makefile @@ -0,0 +1,3 @@ +ifndef MAKEFILE_INCLUDED + include ../../Makefile +endif \ No newline at end of file diff --git a/keyboards/lets_split/rev1/config.h b/keyboards/lets_split/rev1/config.h new file mode 100644 index 000000000..f4d900acc --- /dev/null +++ b/keyboards/lets_split/rev1/config.h @@ -0,0 +1,102 @@ +/* +Copyright 2012 Jun Wako + +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 . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x3060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Wootpatoot +#define PRODUCT Lets Split +#define DESCRIPTION A split keyboard for the cheap makers + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 8 +#define MATRIX_COLS 6 + +// wiring of each half +#define MATRIX_ROW_PINS { B5, B4, E6, D7 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 } + +#define CATERINA_BOOTLOADER + +// #define USE_I2C + +// Use serial if not using I2C +#ifndef USE_I2C +# define USE_SERIAL +#endif + +// #define EE_HANDS + +#define I2C_MASTER_LEFT +// #define I2C_MASTER_RIGHT + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +// #define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* ws2812 RGB LED */ +#define RGB_DI_PIN D4 +#define RGBLIGHT_TIMER +#define RGBLED_NUM 8 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/lets_split/rev1/rev1.c b/keyboards/lets_split/rev1/rev1.c new file mode 100644 index 000000000..c505d3a6e --- /dev/null +++ b/keyboards/lets_split/rev1/rev1.c @@ -0,0 +1,32 @@ +#include "lets_split.h" + +#ifdef AUDIO_ENABLE + float tone_startup[][2] = SONG(STARTUP_SOUND); + float tone_goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + +void matrix_init_kb(void) { + + #ifdef AUDIO_ENABLE + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); + #endif + + // // green led on + // DDRD |= (1<<5); + // PORTD &= ~(1<<5); + + // // orange led on + // DDRB |= (1<<0); + // PORTB &= ~(1<<0); + + matrix_init_user(); +}; + +void shutdown_user(void) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + _delay_ms(150); + stop_all_notes(); + #endif +} diff --git a/keyboards/lets_split/rev1/rev1.h b/keyboards/lets_split/rev1/rev1.h new file mode 100644 index 000000000..50bda0315 --- /dev/null +++ b/keyboards/lets_split/rev1/rev1.h @@ -0,0 +1,25 @@ +#ifndef REV1_H +#define REV1_H + +#include "../lets_split.h" + +//void promicro_bootloader_jmp(bool program); + +#define KEYMAP( \ + k00, k01, k02, k03, k04, k05, k40, k41, k42, k43, k44, k45, \ + k10, k11, k12, k13, k14, k15, k50, k51, k52, k53, k54, k55, \ + k20, k21, k22, k23, k24, k25, k60, k61, k62, k63, k64, k65, \ + k30, k31, k32, k33, k34, k35, k70, k71, k72, k73, k74, k75 \ + ) \ + { \ + { k00, k01, k02, k03, k04, k05 }, \ + { k10, k11, k12, k13, k14, k15 }, \ + { k20, k21, k22, k23, k24, k25 }, \ + { k30, k31, k32, k33, k34, k35 }, \ + { k40, k41, k42, k43, k44, k45 }, \ + { k50, k51, k52, k53, k54, k55 }, \ + { k60, k61, k62, k63, k64, k65 }, \ + { k70, k71, k72, k73, k74, k75 } \ + } + +#endif \ No newline at end of file diff --git a/keyboards/lets_split/rev1/rules.mk b/keyboards/lets_split/rev1/rules.mk new file mode 100644 index 000000000..a0825b4ef --- /dev/null +++ b/keyboards/lets_split/rev1/rules.mk @@ -0,0 +1,5 @@ +BACKLIGHT_ENABLE = no + +ifndef QUANTUM_DIR + include ../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/lets_split/rev2/Makefile b/keyboards/lets_split/rev2/Makefile new file mode 100644 index 000000000..4e2a6f00f --- /dev/null +++ b/keyboards/lets_split/rev2/Makefile @@ -0,0 +1,3 @@ +ifndef MAKEFILE_INCLUDED + include ../../Makefile +endif \ No newline at end of file diff --git a/keyboards/lets_split/rev2/config.h b/keyboards/lets_split/rev2/config.h new file mode 100644 index 000000000..cd152e331 --- /dev/null +++ b/keyboards/lets_split/rev2/config.h @@ -0,0 +1,102 @@ +/* +Copyright 2012 Jun Wako + +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 . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x3060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Wootpatoot +#define PRODUCT Lets Split v2 +#define DESCRIPTION A split keyboard for the cheap makers + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 8 +#define MATRIX_COLS 6 + +// wiring of each half +#define MATRIX_ROW_PINS { D7, E6, B4, B5 } +#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 } + +#define CATERINA_BOOTLOADER + +// #define USE_I2C + +// Use serial if not using I2C +#ifndef USE_I2C +# define USE_SERIAL +#endif + +// #define EE_HANDS + +#define I2C_MASTER_LEFT +// #define I2C_MASTER_RIGHT + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +// #define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* ws2812 RGB LED */ +#define RGB_DI_PIN D3 +#define RGBLIGHT_TIMER +#define RGBLED_NUM 12 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/lets_split/rev2/rev2.c b/keyboards/lets_split/rev2/rev2.c new file mode 100644 index 000000000..c505d3a6e --- /dev/null +++ b/keyboards/lets_split/rev2/rev2.c @@ -0,0 +1,32 @@ +#include "lets_split.h" + +#ifdef AUDIO_ENABLE + float tone_startup[][2] = SONG(STARTUP_SOUND); + float tone_goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + +void matrix_init_kb(void) { + + #ifdef AUDIO_ENABLE + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); + #endif + + // // green led on + // DDRD |= (1<<5); + // PORTD &= ~(1<<5); + + // // orange led on + // DDRB |= (1<<0); + // PORTB &= ~(1<<0); + + matrix_init_user(); +}; + +void shutdown_user(void) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + _delay_ms(150); + stop_all_notes(); + #endif +} diff --git a/keyboards/lets_split/rev2/rev2.h b/keyboards/lets_split/rev2/rev2.h new file mode 100644 index 000000000..a8b0f0f4c --- /dev/null +++ b/keyboards/lets_split/rev2/rev2.h @@ -0,0 +1,25 @@ +#ifndef REV2_H +#define REV2_H + +#include "../lets_split.h" + +//void promicro_bootloader_jmp(bool program); + +#define KEYMAP( \ + k00, k01, k02, k03, k04, k05, k45, k44, k43, k42, k41, k40, \ + k10, k11, k12, k13, k14, k15, k55, k54, k53, k52, k51, k50, \ + k20, k21, k22, k23, k24, k25, k65, k64, k63, k62, k61, k60, \ + k30, k31, k32, k33, k34, k35, k75, k74, k73, k72, k71, k70 \ + ) \ + { \ + { k00, k01, k02, k03, k04, k05 }, \ + { k10, k11, k12, k13, k14, k15 }, \ + { k20, k21, k22, k23, k24, k25 }, \ + { k30, k31, k32, k33, k34, k35 }, \ + { k40, k41, k42, k43, k44, k45 }, \ + { k50, k51, k52, k53, k54, k55 }, \ + { k60, k61, k62, k63, k64, k65 }, \ + { k70, k71, k72, k73, k74, k75 } \ + } + +#endif \ No newline at end of file diff --git a/keyboards/lets_split/rev2/rules.mk b/keyboards/lets_split/rev2/rules.mk new file mode 100644 index 000000000..80a942d06 --- /dev/null +++ b/keyboards/lets_split/rev2/rules.mk @@ -0,0 +1,5 @@ +BACKLIGHT_ENABLE = no + +ifndef QUANTUM_DIR + include ../../../Makefile +endif diff --git a/keyboards/lets_split/rules.mk b/keyboards/lets_split/rules.mk index 6fde8a444..1aee5313c 100644 --- a/keyboards/lets_split/rules.mk +++ b/keyboards/lets_split/rules.mk @@ -63,11 +63,12 @@ COMMAND_ENABLE ?= yes # Commands for debug and configuration NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality MIDI_ENABLE ?= no # MIDI controls -AUDIO_ENABLE ?= yes # Audio output on port C6 +AUDIO_ENABLE ?= no # Audio output on port C6 UNICODE_ENABLE ?= no # Unicode BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. - +RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SUBPROJECT_rev1 ?= yes +USE_I2C ?= yes # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend diff --git a/keyboards/maxipad/Makefile b/keyboards/maxipad/Makefile new file mode 100644 index 000000000..4e2a6f00f --- /dev/null +++ b/keyboards/maxipad/Makefile @@ -0,0 +1,3 @@ +ifndef MAKEFILE_INCLUDED + include ../../Makefile +endif \ No newline at end of file diff --git a/keyboards/maxipad/config.h b/keyboards/maxipad/config.h new file mode 100644 index 000000000..2462a5cfd --- /dev/null +++ b/keyboards/maxipad/config.h @@ -0,0 +1,162 @@ +/* +Copyright 2012 Jun Wako + +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 . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER You +#define PRODUCT maxipad +#define DESCRIPTION A custom keyboard + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 6 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { B6, F7, B2, B3, B1 } +#define MATRIX_COL_PINS { F6, C6, D7, F5, B4, B5 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/maxipad/keymaps/default/Makefile b/keyboards/maxipad/keymaps/default/Makefile new file mode 100644 index 000000000..f4671a9d1 --- /dev/null +++ b/keyboards/maxipad/keymaps/default/Makefile @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/maxipad/keymaps/default/config.h b/keyboards/maxipad/keymaps/default/config.h new file mode 100644 index 000000000..df06a2620 --- /dev/null +++ b/keyboards/maxipad/keymaps/default/config.h @@ -0,0 +1,8 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here + +#endif \ No newline at end of file diff --git a/keyboards/maxipad/keymaps/default/keymap.c b/keyboards/maxipad/keymaps/default/keymap.c new file mode 100644 index 000000000..8a9bc4f0d --- /dev/null +++ b/keyboards/maxipad/keymaps/default/keymap.c @@ -0,0 +1,54 @@ +#include "maxipad.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = KEYMAP( /* Base */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, \ + MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, \ + KC_LCTL, KC_LALT, MO(1), KC_ENT,KC_GRV,KC_SPC \ +), +[1] = KEYMAP( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, \ + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \ +), +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + +} \ No newline at end of file diff --git a/keyboards/maxipad/keymaps/default/readme.md b/keyboards/maxipad/keymaps/default/readme.md new file mode 100644 index 000000000..a6c0d4a3f --- /dev/null +++ b/keyboards/maxipad/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for maxipad \ No newline at end of file diff --git a/keyboards/maxipad/maxipad.c b/keyboards/maxipad/maxipad.c new file mode 100644 index 000000000..879ae86a7 --- /dev/null +++ b/keyboards/maxipad/maxipad.c @@ -0,0 +1,28 @@ +#include "maxipad.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_record_user(keycode, record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + led_set_user(usb_led); +} diff --git a/keyboards/maxipad/maxipad.h b/keyboards/maxipad/maxipad.h new file mode 100644 index 000000000..eee1309dd --- /dev/null +++ b/keyboards/maxipad/maxipad.h @@ -0,0 +1,25 @@ +#ifndef MAXIPAD_H +#define MAXIPAD_H + +#include "quantum.h" + +// This a shortcut to help you visually see your layout. +// The following is an example using the Planck MIT layout +// The first section contains all of the arguements +// The second converts the arguments into a two-dimensional array +#define KEYMAP( \ + k00, k01, k02, k03, k04, k05, \ + k10, k11, k12, k13, k14, k15, \ + k20, k21, k22, k23, k24, k25, \ + k30, k31, k32, k33, k34, k35, \ + k40, k41, k42, k43, k44, k45 \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05 }, \ + { k10, k11, k12, k13, k14, k15 }, \ + { k20, k21, k22, k23, k24, k25 }, \ + { k30, k31, k32, k33, k34, k35 }, \ + { k40, k41, k42, k43, k44, k45} \ +} + +#endif diff --git a/keyboards/maxipad/readme.md b/keyboards/maxipad/readme.md new file mode 100644 index 000000000..e722b6602 --- /dev/null +++ b/keyboards/maxipad/readme.md @@ -0,0 +1,28 @@ +maxipad keyboard firmware +====================== + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent readme](/). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/maxipad folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default + +To build with the default keymap, simply run `make default`. + +### Other Keymaps + +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files. + +To build the firmware binary hex file with a keymap just do `make` with a keymap like this: + +``` +$ make [default|jack|] +``` + +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/maxipad/rules.mk b/keyboards/maxipad/rules.mk new file mode 100644 index 000000000..55898147d --- /dev/null +++ b/keyboards/maxipad/rules.mk @@ -0,0 +1,67 @@ +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=512 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE ?= no # USB Nkey Rollover +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE ?= no # Audio output on port C6 -- cgit v1.2.3 From 21b6b4e6c4d6872164a13e8d31e3e0a9f146ea60 Mon Sep 17 00:00:00 2001 From: climbalima Date: Wed, 16 Nov 2016 19:49:38 -0500 Subject: should have fixed conflixed --- keyboards/lets_split/Makefile | 79 --------------------------- keyboards/lets_split/config.h | 13 +---- keyboards/lets_split/keymaps/default/keymap.c | 19 ------- keyboards/lets_split/lets_split.c | 7 +-- keyboards/lets_split/rev1/config.h | 26 --------- keyboards/lets_split/rev1/rev1.c | 6 -- keyboards/lets_split/rev1/rev1.h | 5 +- keyboards/lets_split/rev2/config.h | 18 +----- keyboards/lets_split/rev2/rev2.c | 6 -- keyboards/lets_split/rev2/rev2.h | 5 +- keyboards/maxipad/Makefile | 78 -------------------------- keyboards/maxipad/config.h | 9 +-- keyboards/maxipad/keymaps/default/keymap.c | 7 +-- 13 files changed, 10 insertions(+), 268 deletions(-) (limited to 'keyboards') diff --git a/keyboards/lets_split/Makefile b/keyboards/lets_split/Makefile index 6ce6e4373..4e2a6f00f 100644 --- a/keyboards/lets_split/Makefile +++ b/keyboards/lets_split/Makefile @@ -1,82 +1,3 @@ -<<<<<<< HEAD ifndef MAKEFILE_INCLUDED -======= -SRC += matrix.c \ - i2c.c \ - split_util.c \ - serial.c - -# MCU name -#MCU = at90usb1287 -MCU = atmega32u4 - -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - -# -# LUFA specific -# -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - - -# Boot Section Size in *bytes* -# Teensy halfKay 512 -# Teensy++ halfKay 1024 -# Atmel DFU loader 4096 -# LUFA bootloader 4096 -# USBaspLoader 2048 -OPT_DEFS += -DBOOTLOADER_SIZE=4096 - -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) -EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) -CONSOLE_ENABLE ?= no # Console for debug(+400) -COMMAND_ENABLE ?= yes # Commands for debug and configuration -NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality -MIDI_ENABLE ?= no # MIDI controls -AUDIO_ENABLE ?= yes # Audio output on port C6 -UNICODE_ENABLE ?= no # Unicode -BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. -USE_I2C ?= yes -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend - -CUSTOM_MATRIX = yes -SUBPROJECT_DEFAULT = rev2 -ifndef QUANTUM_DIR ->>>>>>> bce6e52391da7c5f620c96a91857940f0dee19df include ../../Makefile endif \ No newline at end of file diff --git a/keyboards/lets_split/config.h b/keyboards/lets_split/config.h index 91b11f03f..1b7bbcbbb 100644 --- a/keyboards/lets_split/config.h +++ b/keyboards/lets_split/config.h @@ -61,20 +61,11 @@ along with this program. If not, see . //#define NO_ACTION_ONESHOT //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION -<<<<<<< HEAD -======= -<<<<<<< HEAD ->>>>>>> bce6e52391da7c5f620c96a91857940f0dee19df + #ifdef SUBPROJECT_rev1 #include "rev1/config.h" #endif #ifdef SUBPROJECT_rev2 #include "rev2/config.h" #endif -#endif -<<<<<<< HEAD -======= - - - ->>>>>>> bce6e52391da7c5f620c96a91857940f0dee19df +#endif \ No newline at end of file diff --git a/keyboards/lets_split/keymaps/default/keymap.c b/keyboards/lets_split/keymaps/default/keymap.c index 41b9b8d8f..6f1f71f5f 100644 --- a/keyboards/lets_split/keymaps/default/keymap.c +++ b/keyboards/lets_split/keymaps/default/keymap.c @@ -29,7 +29,6 @@ enum custom_keycodes { #define XXXXXXX KC_NO const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -<<<<<<< HEAD /* Qwerty * ,-----------------------------------------------------------------------------------. @@ -83,29 +82,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , \ ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ -======= -[0] = KEYMAP( \ - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, \ - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ - KC_LCTL, _LOWER, KC_LGUI, KC_LALT, MO(_LOWER), KC_SPC, KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ ->>>>>>> bce6e52391da7c5f620c96a91857940f0dee19df ), [3] = KEYMAP( \ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______, \ -<<<<<<< HEAD _______, _______, _______, _______, _______, KC_BSPC, MT(MOD_LSFT, KC_BSPC), _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ -======= - _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ ->>>>>>> bce6e52391da7c5f620c96a91857940f0dee19df ), [4] = KEYMAP( \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, \ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, \ -<<<<<<< HEAD _______, _______, _______, _______, _______, KC_ENT, MT(MOD_LSFT, KC_ENT), _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ ), @@ -126,12 +113,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ ) - - -======= - _______, _______, _______, _______, _______, KC_ENT, KC_ENT, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ -), ->>>>>>> bce6e52391da7c5f620c96a91857940f0dee19df }; #ifdef AUDIO_ENABLE diff --git a/keyboards/lets_split/lets_split.c b/keyboards/lets_split/lets_split.c index 8bb33f951..117b727a8 100644 --- a/keyboards/lets_split/lets_split.c +++ b/keyboards/lets_split/lets_split.c @@ -1,6 +1 @@ -#include "lets_split.h" - -<<<<<<< HEAD -======= - ->>>>>>> bce6e52391da7c5f620c96a91857940f0dee19df +#include "lets_split.h" \ No newline at end of file diff --git a/keyboards/lets_split/rev1/config.h b/keyboards/lets_split/rev1/config.h index da5b47673..825e5ec24 100644 --- a/keyboards/lets_split/rev1/config.h +++ b/keyboards/lets_split/rev1/config.h @@ -25,11 +25,8 @@ along with this program. If not, see . #define PRODUCT_ID 0x3060 #define DEVICE_VER 0x0001 #define MANUFACTURER Wootpatoot -<<<<<<< HEAD #define PRODUCT Lets Split -======= #define PRODUCT Lets Split v1 ->>>>>>> bce6e52391da7c5f620c96a91857940f0dee19df #define DESCRIPTION A split keyboard for the cheap makers /* key matrix size */ @@ -44,15 +41,11 @@ along with this program. If not, see . #define CATERINA_BOOTLOADER // #define USE_I2C - -<<<<<<< HEAD // Use serial if not using I2C #ifndef USE_I2C # define USE_SERIAL #endif -======= ->>>>>>> bce6e52391da7c5f620c96a91857940f0dee19df // #define EE_HANDS #define I2C_MASTER_LEFT @@ -80,21 +73,6 @@ along with this program. If not, see . keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ ) -/* ws2812 RGB LED */ -<<<<<<< HEAD -#define RGB_DI_PIN D4 -#define RGBLIGHT_TIMER -#define RGBLED_NUM 8 // Number of LEDs -======= -#define ws2812_PORTREG PORTD -#define ws2812_DDRREG DDRD -#define ws2812_pin PD1 -#define RGBLED_NUM 28 // Number of LEDs ->>>>>>> bce6e52391da7c5f620c96a91857940f0dee19df -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - /* * Feature disable options * These options are also useful to firmware size reduction. @@ -113,8 +91,4 @@ along with this program. If not, see . //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION -<<<<<<< HEAD -#endif -======= #endif ->>>>>>> bce6e52391da7c5f620c96a91857940f0dee19df diff --git a/keyboards/lets_split/rev1/rev1.c b/keyboards/lets_split/rev1/rev1.c index 41dd1e353..c505d3a6e 100644 --- a/keyboards/lets_split/rev1/rev1.c +++ b/keyboards/lets_split/rev1/rev1.c @@ -24,15 +24,9 @@ void matrix_init_kb(void) { }; void shutdown_user(void) { -<<<<<<< HEAD #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_goodbye, false, 0); _delay_ms(150); stop_all_notes(); #endif -======= - PLAY_NOTE_ARRAY(tone_goodbye, false, 0); - _delay_ms(150); - stop_all_notes(); ->>>>>>> bce6e52391da7c5f620c96a91857940f0dee19df } diff --git a/keyboards/lets_split/rev1/rev1.h b/keyboards/lets_split/rev1/rev1.h index 998b2be7c..4667c9fb0 100644 --- a/keyboards/lets_split/rev1/rev1.h +++ b/keyboards/lets_split/rev1/rev1.h @@ -1,15 +1,12 @@ #ifndef REV1_H #define REV1_H -<<<<<<< HEAD #include "../lets_split.h" //void promicro_bootloader_jmp(bool program); -======= #include "quantum.h" -void promicro_bootloader_jmp(bool program); ->>>>>>> bce6e52391da7c5f620c96a91857940f0dee19df +//void promicro_bootloader_jmp(bool program); #define KEYMAP( \ k00, k01, k02, k03, k04, k05, k40, k41, k42, k43, k44, k45, \ diff --git a/keyboards/lets_split/rev2/config.h b/keyboards/lets_split/rev2/config.h index 19c137e56..e9689d773 100644 --- a/keyboards/lets_split/rev2/config.h +++ b/keyboards/lets_split/rev2/config.h @@ -41,14 +41,11 @@ along with this program. If not, see . // #define USE_I2C -<<<<<<< HEAD // Use serial if not using I2C #ifndef USE_I2C # define USE_SERIAL #endif -======= ->>>>>>> bce6e52391da7c5f620c96a91857940f0dee19df // #define EE_HANDS #define I2C_MASTER_LEFT @@ -77,19 +74,11 @@ along with this program. If not, see . ) /* ws2812 RGB LED */ -<<<<<<< HEAD #define RGB_DI_PIN D3 #define RGBLIGHT_TIMER #define RGBLED_NUM 12 // Number of LEDs -======= #define ws2812_PORTREG PORTD #define ws2812_DDRREG DDRD -#define ws2812_pin PD1 -#define RGBLED_NUM 28 // Number of LEDs ->>>>>>> bce6e52391da7c5f620c96a91857940f0dee19df -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 /* * Feature disable options @@ -109,8 +98,5 @@ along with this program. If not, see . //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION -<<<<<<< HEAD -#endif -======= -#endif ->>>>>>> bce6e52391da7c5f620c96a91857940f0dee19df + +#endif \ No newline at end of file diff --git a/keyboards/lets_split/rev2/rev2.c b/keyboards/lets_split/rev2/rev2.c index 41dd1e353..c505d3a6e 100644 --- a/keyboards/lets_split/rev2/rev2.c +++ b/keyboards/lets_split/rev2/rev2.c @@ -24,15 +24,9 @@ void matrix_init_kb(void) { }; void shutdown_user(void) { -<<<<<<< HEAD #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_goodbye, false, 0); _delay_ms(150); stop_all_notes(); #endif -======= - PLAY_NOTE_ARRAY(tone_goodbye, false, 0); - _delay_ms(150); - stop_all_notes(); ->>>>>>> bce6e52391da7c5f620c96a91857940f0dee19df } diff --git a/keyboards/lets_split/rev2/rev2.h b/keyboards/lets_split/rev2/rev2.h index 9e251ca57..990976de2 100644 --- a/keyboards/lets_split/rev2/rev2.h +++ b/keyboards/lets_split/rev2/rev2.h @@ -1,15 +1,12 @@ #ifndef REV2_H #define REV2_H -<<<<<<< HEAD #include "../lets_split.h" //void promicro_bootloader_jmp(bool program); -======= #include "quantum.h" -void promicro_bootloader_jmp(bool program); ->>>>>>> bce6e52391da7c5f620c96a91857940f0dee19df +//void promicro_bootloader_jmp(bool program); #define KEYMAP( \ k00, k01, k02, k03, k04, k05, k45, k44, k43, k42, k41, k40, \ diff --git a/keyboards/maxipad/Makefile b/keyboards/maxipad/Makefile index c65665142..57b2ef62e 100644 --- a/keyboards/maxipad/Makefile +++ b/keyboards/maxipad/Makefile @@ -1,81 +1,3 @@ -<<<<<<< HEAD ifndef MAKEFILE_INCLUDED include ../../Makefile endif -======= - - -# MCU name -#MCU = at90usb1287 -MCU = atmega32u4 - -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - - -# -# LUFA specific -# -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - - -# Boot Section Size in *bytes* -# Teensy halfKay 512 -# Teensy++ halfKay 1024 -# Atmel DFU loader 4096 -# LUFA bootloader 4096 -# USBaspLoader 2048 -OPT_DEFS += -DBOOTLOADER_SIZE=512 - - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) -EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) -CONSOLE_ENABLE ?= yes # Console for debug(+400) -COMMAND_ENABLE ?= yes # Commands for debug and configuration -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend -# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE ?= no # USB Nkey Rollover -BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default -MIDI_ENABLE ?= no # MIDI controls -UNICODE_ENABLE ?= no # Unicode -BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID -AUDIO_ENABLE ?= no # Audio output on port C6 - -ifndef QUANTUM_DIR - include ../../Makefile -endif - - ->>>>>>> bce6e52391da7c5f620c96a91857940f0dee19df diff --git a/keyboards/maxipad/config.h b/keyboards/maxipad/config.h index 4a942aae9..fbe64a5b0 100644 --- a/keyboards/maxipad/config.h +++ b/keyboards/maxipad/config.h @@ -24,15 +24,10 @@ along with this program. If not, see . #define VENDOR_ID 0xFEED #define PRODUCT_ID 0x6060 #define DEVICE_VER 0x0001 -<<<<<<< HEAD -#define MANUFACTURER You -#define PRODUCT maxipad -#define DESCRIPTION A custom keyboard -======= #define MANUFACTURER Wootpatoot #define PRODUCT maxipad -#define DESCRIPTION g8ming keeb ->>>>>>> bce6e52391da7c5f620c96a91857940f0dee19df +#define DESCRIPTION A custom keyboard + /* key matrix size */ #define MATRIX_ROWS 5 diff --git a/keyboards/maxipad/keymaps/default/keymap.c b/keyboards/maxipad/keymaps/default/keymap.c index 5e3a594cc..43ace3241 100644 --- a/keyboards/maxipad/keymaps/default/keymap.c +++ b/keyboards/maxipad/keymaps/default/keymap.c @@ -10,15 +10,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = KEYMAP( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, \ -<<<<<<< HEAD KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, \ -======= KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ ->>>>>>> bce6e52391da7c5f620c96a91857940f0dee19df - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \ ), }; -- cgit v1.2.3 From b085a34506bc981a7c7cdb270b7786d6a4cbf985 Mon Sep 17 00:00:00 2001 From: climbalima Date: Wed, 16 Nov 2016 20:44:49 -0500 Subject: fixed readme conflicts --- keyboards/maxipad/readme.md | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) (limited to 'keyboards') diff --git a/keyboards/maxipad/readme.md b/keyboards/maxipad/readme.md index 1971ce1f3..ab7b122fe 100644 --- a/keyboards/maxipad/readme.md +++ b/keyboards/maxipad/readme.md @@ -1,13 +1,7 @@ -maxipad keyboard firmware -====================== - ## Quantum MK Firmware -<<<<<<< HEAD For the full Quantum feature list, see [the parent readme](/). -======= -For the full Quantum feature list, see [the parent readme.md](/doc/readme.md). ->>>>>>> bce6e52391da7c5f620c96a91857940f0dee19df + ## Building @@ -17,17 +11,13 @@ Depending on which keymap you would like to use, you will have to compile slight ### Default -<<<<<<< HEAD -To build with the default keymap, simply run `make default`. -======= To build with the default keymap, simply run `make`. ->>>>>>> bce6e52391da7c5f620c96a91857940f0dee19df + ### Other Keymaps Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files. -<<<<<<< HEAD To build the firmware binary hex file with a keymap just do `make` with a keymap like this: ``` @@ -35,12 +25,4 @@ $ make [default|jack|] ``` Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. -======= -To build the firmware binary hex file with a keymap just do `make` with `keymap` option like: - -``` -$ make keymap=[default|jack|] -``` -Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/` ->>>>>>> bce6e52391da7c5f620c96a91857940f0dee19df -- cgit v1.2.3 From 00d88b74ada77b7cbf452aaf622846f80d85d732 Mon Sep 17 00:00:00 2001 From: Benjamin Grabkowitz Date: Wed, 16 Nov 2016 23:52:36 -0500 Subject: Adding Support for atreus62 keyboard. https://github.com/profet23/atreus62 --- keyboards/atreus62/Makefile | 3 + keyboards/atreus62/atreus62.c | 1 + keyboards/atreus62/atreus62.h | 26 ++ keyboards/atreus62/config.h | 83 +++++++ keyboards/atreus62/keymaps/default/keymap.c | 71 ++++++ keyboards/atreus62/pro_micro.h | 362 ++++++++++++++++++++++++++++ keyboards/atreus62/rules.mk | 66 +++++ 7 files changed, 612 insertions(+) create mode 100644 keyboards/atreus62/Makefile create mode 100644 keyboards/atreus62/atreus62.c create mode 100644 keyboards/atreus62/atreus62.h create mode 100644 keyboards/atreus62/config.h create mode 100644 keyboards/atreus62/keymaps/default/keymap.c create mode 100644 keyboards/atreus62/pro_micro.h create mode 100644 keyboards/atreus62/rules.mk (limited to 'keyboards') diff --git a/keyboards/atreus62/Makefile b/keyboards/atreus62/Makefile new file mode 100644 index 000000000..4e2a6f00f --- /dev/null +++ b/keyboards/atreus62/Makefile @@ -0,0 +1,3 @@ +ifndef MAKEFILE_INCLUDED + include ../../Makefile +endif \ No newline at end of file diff --git a/keyboards/atreus62/atreus62.c b/keyboards/atreus62/atreus62.c new file mode 100644 index 000000000..ba5bce989 --- /dev/null +++ b/keyboards/atreus62/atreus62.c @@ -0,0 +1 @@ +#include "atreus62.h" \ No newline at end of file diff --git a/keyboards/atreus62/atreus62.h b/keyboards/atreus62/atreus62.h new file mode 100644 index 000000000..eacf5b451 --- /dev/null +++ b/keyboards/atreus62/atreus62.h @@ -0,0 +1,26 @@ +#ifndef ATREUS62_H +#define ATREUS62_H + +#include "quantum.h" + +void promicro_bootloader_jmp(bool program); + +// This a shortcut to help you visually see your layout. +// The first section contains all of the arguements +// The second converts the arguments into a two-dimensional array +#define KEYMAP( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, KC_NO, k06, k07, k08, k09, k0a, k0b }, \ + { k10, k11, k12, k13, k14, k15, KC_NO, k16, k17, k18, k19, k1a, k1b }, \ + { k20, k21, k22, k23, k24, k25, KC_NO, k26, k27, k28, k29, k2a, k2b }, \ + { k30, k31, k32, k33, k34, k35, k46, k36, k37, k38, k39, k3a, k3b }, \ + { k40, k41, k42, k43, k44, k45, k47, k48, k49, k4a, k4b, k4c, k4d } \ +} + +#endif \ No newline at end of file diff --git a/keyboards/atreus62/config.h b/keyboards/atreus62/config.h new file mode 100644 index 000000000..90a4aa05a --- /dev/null +++ b/keyboards/atreus62/config.h @@ -0,0 +1,83 @@ +/* +Copyright 2012 Jun Wako + +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 . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ + +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6062 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Profet +#define PRODUCT Atreus62 +#define DESCRIPTION q.m.k. keyboard firmware for Atreus62 + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 5 +#define MATRIX_COLS 13 + +// wiring of each half +#define MATRIX_ROW_PINS { D2, D3, D1, D0, D4 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6, B5, B4, E6, D7, C6 } + +#define CATERINA_BOOTLOADER + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +// #define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/atreus62/keymaps/default/keymap.c b/keyboards/atreus62/keymaps/default/keymap.c new file mode 100644 index 000000000..52802c77b --- /dev/null +++ b/keyboards/atreus62/keymaps/default/keymap.c @@ -0,0 +1,71 @@ +// this is the style you want to emulate. +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, + +#include "atreus62.h" + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _DEFAULT 0 +#define _NAV 1 +#define _RESET 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_DEFAULT] = { /* qwerty */ + { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS }, + { KC_BSLS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRC }, + { KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_TRNS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT }, + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DELT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LBRC }, + { KC_LCTL, KC_LGUI, KC_LALT, KC_GRV, MO(_NAV),KC_BSPC, KC_ENT, KC_SPC, KC_EQL, KC_MINS, KC_QUOT, KC_ENT, KC_RGUI } +}, + +[_NAV] = { + { TO(_DEFAULT), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11 }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS }, + { TO(_RESET), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS } +}, + +[_RESET] = { + { TO(_DEFAULT), KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO }, + { KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO }, + { KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO }, + { KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO }, + { KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , RESET } +} + + +/* +[_TRNS] = { + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS } +}, +*/ +}; + + + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch (id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } + else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboards/atreus62/pro_micro.h b/keyboards/atreus62/pro_micro.h new file mode 100644 index 000000000..f9e7ed75d --- /dev/null +++ b/keyboards/atreus62/pro_micro.h @@ -0,0 +1,362 @@ +/* + pins_arduino.h - Pin definition functions for Arduino + Part of Arduino - http://www.arduino.cc/ + + Copyright (c) 2007 David A. Mellis + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ +*/ + +#ifndef Pins_Arduino_h +#define Pins_Arduino_h + +#include + +// Workaround for wrong definitions in "iom32u4.h". +// This should be fixed in the AVR toolchain. +#undef UHCON +#undef UHINT +#undef UHIEN +#undef UHADDR +#undef UHFNUM +#undef UHFNUML +#undef UHFNUMH +#undef UHFLEN +#undef UPINRQX +#undef UPINTX +#undef UPNUM +#undef UPRST +#undef UPCONX +#undef UPCFG0X +#undef UPCFG1X +#undef UPSTAX +#undef UPCFG2X +#undef UPIENX +#undef UPDATX +#undef TCCR2A +#undef WGM20 +#undef WGM21 +#undef COM2B0 +#undef COM2B1 +#undef COM2A0 +#undef COM2A1 +#undef TCCR2B +#undef CS20 +#undef CS21 +#undef CS22 +#undef WGM22 +#undef FOC2B +#undef FOC2A +#undef TCNT2 +#undef TCNT2_0 +#undef TCNT2_1 +#undef TCNT2_2 +#undef TCNT2_3 +#undef TCNT2_4 +#undef TCNT2_5 +#undef TCNT2_6 +#undef TCNT2_7 +#undef OCR2A +#undef OCR2_0 +#undef OCR2_1 +#undef OCR2_2 +#undef OCR2_3 +#undef OCR2_4 +#undef OCR2_5 +#undef OCR2_6 +#undef OCR2_7 +#undef OCR2B +#undef OCR2_0 +#undef OCR2_1 +#undef OCR2_2 +#undef OCR2_3 +#undef OCR2_4 +#undef OCR2_5 +#undef OCR2_6 +#undef OCR2_7 + +#define NUM_DIGITAL_PINS 30 +#define NUM_ANALOG_INPUTS 12 + +#define TX_RX_LED_INIT DDRD |= (1<<5), DDRB |= (1<<0) +#define TXLED0 PORTD |= (1<<5) +#define TXLED1 PORTD &= ~(1<<5) +#define RXLED0 PORTB |= (1<<0) +#define RXLED1 PORTB &= ~(1<<0) + +static const uint8_t SDA = 2; +static const uint8_t SCL = 3; +#define LED_BUILTIN 13 + +// Map SPI port to 'new' pins D14..D17 +static const uint8_t SS = 17; +static const uint8_t MOSI = 16; +static const uint8_t MISO = 14; +static const uint8_t SCK = 15; + +// Mapping of analog pins as digital I/O +// A6-A11 share with digital pins +static const uint8_t ADC0 = 18; +static const uint8_t ADC1 = 19; +static const uint8_t ADC2 = 20; +static const uint8_t ADC3 = 21; +static const uint8_t ADC4 = 22; +static const uint8_t ADC5 = 23; +static const uint8_t ADC6 = 24; // D4 +static const uint8_t ADC7 = 25; // D6 +static const uint8_t ADC8 = 26; // D8 +static const uint8_t ADC9 = 27; // D9 +static const uint8_t ADC10 = 28; // D10 +static const uint8_t ADC11 = 29; // D12 + +#define digitalPinToPCICR(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCICR) : ((uint8_t *)0)) +#define digitalPinToPCICRbit(p) 0 +#define digitalPinToPCMSK(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCMSK0) : ((uint8_t *)0)) +#define digitalPinToPCMSKbit(p) ( ((p) >= 8 && (p) <= 11) ? (p) - 4 : ((p) == 14 ? 3 : ((p) == 15 ? 1 : ((p) == 16 ? 2 : ((p) == 17 ? 0 : (p - A8 + 4)))))) + +// __AVR_ATmega32U4__ has an unusual mapping of pins to channels +extern const uint8_t PROGMEM analog_pin_to_channel_PGM[]; +#define analogPinToChannel(P) ( pgm_read_byte( analog_pin_to_channel_PGM + (P) ) ) + +#define digitalPinToInterrupt(p) ((p) == 0 ? 2 : ((p) == 1 ? 3 : ((p) == 2 ? 1 : ((p) == 3 ? 0 : ((p) == 7 ? 4 : NOT_AN_INTERRUPT))))) + +#ifdef ARDUINO_MAIN + +// On the Arduino board, digital pins are also used +// for the analog output (software PWM). Analog input +// pins are a separate set. + +// ATMEL ATMEGA32U4 / ARDUINO LEONARDO +// +// D0 PD2 RXD1/INT2 +// D1 PD3 TXD1/INT3 +// D2 PD1 SDA SDA/INT1 +// D3# PD0 PWM8/SCL OC0B/SCL/INT0 +// D4 A6 PD4 ADC8 +// D5# PC6 ??? OC3A/#OC4A +// D6# A7 PD7 FastPWM #OC4D/ADC10 +// D7 PE6 INT6/AIN0 +// +// D8 A8 PB4 ADC11/PCINT4 +// D9# A9 PB5 PWM16 OC1A/#OC4B/ADC12/PCINT5 +// D10# A10 PB6 PWM16 OC1B/0c4B/ADC13/PCINT6 +// D11# PB7 PWM8/16 0C0A/OC1C/#RTS/PCINT7 +// D12 A11 PD6 T1/#OC4D/ADC9 +// D13# PC7 PWM10 CLK0/OC4A +// +// A0 D18 PF7 ADC7 +// A1 D19 PF6 ADC6 +// A2 D20 PF5 ADC5 +// A3 D21 PF4 ADC4 +// A4 D22 PF1 ADC1 +// A5 D23 PF0 ADC0 +// +// New pins D14..D17 to map SPI port to digital pins +// +// MISO D14 PB3 MISO,PCINT3 +// SCK D15 PB1 SCK,PCINT1 +// MOSI D16 PB2 MOSI,PCINT2 +// SS D17 PB0 RXLED,SS/PCINT0 +// +// Connected LEDs on board for TX and RX +// TXLED D24 PD5 XCK1 +// RXLED D17 PB0 +// HWB PE2 HWB + +// these arrays map port names (e.g. port B) to the +// appropriate addresses for various functions (e.g. reading +// and writing) +const uint16_t PROGMEM port_to_mode_PGM[] = { + NOT_A_PORT, + NOT_A_PORT, + (uint16_t) &DDRB, + (uint16_t) &DDRC, + (uint16_t) &DDRD, + (uint16_t) &DDRE, + (uint16_t) &DDRF, +}; + +const uint16_t PROGMEM port_to_output_PGM[] = { + NOT_A_PORT, + NOT_A_PORT, + (uint16_t) &PORTB, + (uint16_t) &PORTC, + (uint16_t) &PORTD, + (uint16_t) &PORTE, + (uint16_t) &PORTF, +}; + +const uint16_t PROGMEM port_to_input_PGM[] = { + NOT_A_PORT, + NOT_A_PORT, + (uint16_t) &PINB, + (uint16_t) &PINC, + (uint16_t) &PIND, + (uint16_t) &PINE, + (uint16_t) &PINF, +}; + +const uint8_t PROGMEM digital_pin_to_port_PGM[] = { + PD, // D0 - PD2 + PD, // D1 - PD3 + PD, // D2 - PD1 + PD, // D3 - PD0 + PD, // D4 - PD4 + PC, // D5 - PC6 + PD, // D6 - PD7 + PE, // D7 - PE6 + + PB, // D8 - PB4 + PB, // D9 - PB5 + PB, // D10 - PB6 + PB, // D11 - PB7 + PD, // D12 - PD6 + PC, // D13 - PC7 + + PB, // D14 - MISO - PB3 + PB, // D15 - SCK - PB1 + PB, // D16 - MOSI - PB2 + PB, // D17 - SS - PB0 + + PF, // D18 - A0 - PF7 + PF, // D19 - A1 - PF6 + PF, // D20 - A2 - PF5 + PF, // D21 - A3 - PF4 + PF, // D22 - A4 - PF1 + PF, // D23 - A5 - PF0 + + PD, // D24 - PD5 + PD, // D25 / D6 - A7 - PD7 + PB, // D26 / D8 - A8 - PB4 + PB, // D27 / D9 - A9 - PB5 + PB, // D28 / D10 - A10 - PB6 + PD, // D29 / D12 - A11 - PD6 +}; + +const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { + _BV(2), // D0 - PD2 + _BV(3), // D1 - PD3 + _BV(1), // D2 - PD1 + _BV(0), // D3 - PD0 + _BV(4), // D4 - PD4 + _BV(6), // D5 - PC6 + _BV(7), // D6 - PD7 + _BV(6), // D7 - PE6 + + _BV(4), // D8 - PB4 + _BV(5), // D9 - PB5 + _BV(6), // D10 - PB6 + _BV(7), // D11 - PB7 + _BV(6), // D12 - PD6 + _BV(7), // D13 - PC7 + + _BV(3), // D14 - MISO - PB3 + _BV(1), // D15 - SCK - PB1 + _BV(2), // D16 - MOSI - PB2 + _BV(0), // D17 - SS - PB0 + + _BV(7), // D18 - A0 - PF7 + _BV(6), // D19 - A1 - PF6 + _BV(5), // D20 - A2 - PF5 + _BV(4), // D21 - A3 - PF4 + _BV(1), // D22 - A4 - PF1 + _BV(0), // D23 - A5 - PF0 + + _BV(5), // D24 - PD5 + _BV(7), // D25 / D6 - A7 - PD7 + _BV(4), // D26 / D8 - A8 - PB4 + _BV(5), // D27 / D9 - A9 - PB5 + _BV(6), // D28 / D10 - A10 - PB6 + _BV(6), // D29 / D12 - A11 - PD6 +}; + +const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + TIMER0B, /* 3 */ + NOT_ON_TIMER, + TIMER3A, /* 5 */ + TIMER4D, /* 6 */ + NOT_ON_TIMER, + + NOT_ON_TIMER, + TIMER1A, /* 9 */ + TIMER1B, /* 10 */ + TIMER0A, /* 11 */ + + NOT_ON_TIMER, + TIMER4A, /* 13 */ + + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, +}; + +const uint8_t PROGMEM analog_pin_to_channel_PGM[] = { + 7, // A0 PF7 ADC7 + 6, // A1 PF6 ADC6 + 5, // A2 PF5 ADC5 + 4, // A3 PF4 ADC4 + 1, // A4 PF1 ADC1 + 0, // A5 PF0 ADC0 + 8, // A6 D4 PD4 ADC8 + 10, // A7 D6 PD7 ADC10 + 11, // A8 D8 PB4 ADC11 + 12, // A9 D9 PB5 ADC12 + 13, // A10 D10 PB6 ADC13 + 9 // A11 D12 PD6 ADC9 +}; + +#endif /* ARDUINO_MAIN */ + +// These serial port names are intended to allow libraries and architecture-neutral +// sketches to automatically default to the correct port name for a particular type +// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN, +// the first hardware serial port whose RX/TX pins are not dedicated to another use. +// +// SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor +// +// SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial +// +// SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library +// +// SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins. +// +// SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX +// pins are NOT connected to anything by default. +#define SERIAL_PORT_MONITOR Serial +#define SERIAL_PORT_USBVIRTUAL Serial +#define SERIAL_PORT_HARDWARE Serial1 +#define SERIAL_PORT_HARDWARE_OPEN Serial1 + +#endif /* Pins_Arduino_h */ diff --git a/keyboards/atreus62/rules.mk b/keyboards/atreus62/rules.mk new file mode 100644 index 000000000..f5d0be23a --- /dev/null +++ b/keyboards/atreus62/rules.mk @@ -0,0 +1,66 @@ + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +#BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality +#MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= yes # Unicode +#BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend -- cgit v1.2.3 From 6c5fce5c1a9d6383843416e0a236c2d7ea9cc2da Mon Sep 17 00:00:00 2001 From: Benjamin Grabkowitz Date: Wed, 16 Nov 2016 23:59:42 -0500 Subject: Adding readme placeholder --- keyboards/atreus62/readme.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 keyboards/atreus62/readme.md (limited to 'keyboards') diff --git a/keyboards/atreus62/readme.md b/keyboards/atreus62/readme.md new file mode 100644 index 000000000..0245b4f9f --- /dev/null +++ b/keyboards/atreus62/readme.md @@ -0,0 +1,10 @@ +atreus62 keyboard firmware +====================== + +This firmware is for the atreus62 keyboard. + +This version utilizes a Pro Micro for its controller and has a 62 key layout. + +https://github.com/profet23/atreus62 + +TODO: More information \ No newline at end of file -- cgit v1.2.3 From 3774a7fcdab5544fc787f4c200be05fcd417e31f Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Thu, 17 Nov 2016 17:42:14 -0500 Subject: rgb light through midi --- keyboards/amj60/config.h | 2 +- keyboards/clueboard/rev1/config.h | 2 +- keyboards/clueboard/rev2/config.h | 2 +- keyboards/cluecard/config.h | 2 +- keyboards/cluecard/keymaps/rgb_effects/config.h | 2 +- keyboards/cluepad/config.h | 2 +- keyboards/ergodox/keymaps/jack/config.h | 3 +- keyboards/gh60/keymaps/robotmaxtron/config.h | 2 +- keyboards/handwired/minorca/keymaps/rgb/config.h | 2 +- keyboards/jd40/config.h | 2 +- keyboards/kc60/keymaps/ws2812/config.h | 2 +- keyboards/lets_split/config.h | 2 +- keyboards/lets_split/keymaps/i2c/config.h | 2 +- keyboards/lets_split/keymaps/serial/config.h | 2 +- keyboards/phantom/config.h | 2 +- keyboards/planck/keymaps/experimental/config.h | 2 +- keyboards/planck/keymaps/yang/config.h | 2 +- keyboards/preonic/config.h | 2 +- keyboards/preonic/keymaps/kinesis/config.h | 2 +- keyboards/satan/config.h | 2 +- keyboards/tada68/config.h | 2 +- quantum/light_ws2812.c | 2 - quantum/rgblight.c | 10 +-- quantum/rgblight.h | 2 +- readme.md | 4 +- tmk_core/protocol/lufa/lufa.c | 96 ++++++++++++++++++++++++ 26 files changed, 126 insertions(+), 31 deletions(-) (limited to 'keyboards') diff --git a/keyboards/amj60/config.h b/keyboards/amj60/config.h index d98e0e9f2..7c06f9a6c 100644 --- a/keyboards/amj60/config.h +++ b/keyboards/amj60/config.h @@ -67,7 +67,7 @@ along with this program. If not, see . */ #define RGB_DI_PIN E2 -#define RGBLIGHT_TIMER +#define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 8 // Number of LEDs #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 diff --git a/keyboards/clueboard/rev1/config.h b/keyboards/clueboard/rev1/config.h index 8c9497232..f40876ffb 100644 --- a/keyboards/clueboard/rev1/config.h +++ b/keyboards/clueboard/rev1/config.h @@ -26,7 +26,7 @@ /* Underlight configuration */ #define RGB_DI_PIN B2 -#define RGBLIGHT_TIMER +#define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 14 // Number of LEDs #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 diff --git a/keyboards/clueboard/rev2/config.h b/keyboards/clueboard/rev2/config.h index 15ca4ece8..8435fd02b 100644 --- a/keyboards/clueboard/rev2/config.h +++ b/keyboards/clueboard/rev2/config.h @@ -30,7 +30,7 @@ /* Underlight configuration */ #define RGB_DI_PIN D7 -#define RGBLIGHT_TIMER +#define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 14 // Number of LEDs #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 diff --git a/keyboards/cluecard/config.h b/keyboards/cluecard/config.h index 765347b13..6520eb557 100644 --- a/keyboards/cluecard/config.h +++ b/keyboards/cluecard/config.h @@ -140,7 +140,7 @@ along with this program. If not, see . /* Underlight configuration */ #define RGB_DI_PIN E6 -//#define RGBLIGHT_TIMER +//#define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 4 // Number of LEDs #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 diff --git a/keyboards/cluecard/keymaps/rgb_effects/config.h b/keyboards/cluecard/keymaps/rgb_effects/config.h index e88847df4..c6c9342c8 100644 --- a/keyboards/cluecard/keymaps/rgb_effects/config.h +++ b/keyboards/cluecard/keymaps/rgb_effects/config.h @@ -4,7 +4,7 @@ #include "../../config.h" // place overrides here -#define RGBLIGHT_TIMER +#define RGBLIGHT_ANIMATIONS #define RGBLIGHT_EFFECT_SNAKE_LENGTH 3 #define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2 #define RGBLIGHT_EFFECT_KNIGHT_OFFSET 2 diff --git a/keyboards/cluepad/config.h b/keyboards/cluepad/config.h index bae05fade..bd64dfd27 100644 --- a/keyboards/cluepad/config.h +++ b/keyboards/cluepad/config.h @@ -70,7 +70,7 @@ along with this program. If not, see . /* Underlight configuration */ #define RGB_DI_PIN F6 -#define RGBLIGHT_TIMER +#define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 4 // Number of LEDs #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 diff --git a/keyboards/ergodox/keymaps/jack/config.h b/keyboards/ergodox/keymaps/jack/config.h index 5bf109c18..5c1165226 100644 --- a/keyboards/ergodox/keymaps/jack/config.h +++ b/keyboards/ergodox/keymaps/jack/config.h @@ -5,12 +5,13 @@ /* ws2812 RGB LED */ #define RGB_DI_PIN D7 -#define RGBLIGHT_TIMER +#define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 15 // Number of LEDs #define RGBLIGHT_HUE_STEP 12 #define RGBLIGHT_SAT_STEP 255 #define RGBLIGHT_VAL_STEP 12 #define RGB_MIDI +#define RGBW_BB_TWI #endif \ No newline at end of file diff --git a/keyboards/gh60/keymaps/robotmaxtron/config.h b/keyboards/gh60/keymaps/robotmaxtron/config.h index 6a29e6b8c..bcd753461 100644 --- a/keyboards/gh60/keymaps/robotmaxtron/config.h +++ b/keyboards/gh60/keymaps/robotmaxtron/config.h @@ -182,7 +182,7 @@ along with this program. If not, see . #define ws2812_pin PF4 */ #define RGB_DI_PIN F4 -#define RGBLIGHT_TIMER +#define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 8 // Number of LEDs #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 diff --git a/keyboards/handwired/minorca/keymaps/rgb/config.h b/keyboards/handwired/minorca/keymaps/rgb/config.h index deaac2e26..43b3c5911 100644 --- a/keyboards/handwired/minorca/keymaps/rgb/config.h +++ b/keyboards/handwired/minorca/keymaps/rgb/config.h @@ -11,7 +11,7 @@ /* ws2812 RGB LED */ #define RGB_DI_PIN D5 -#define RGBLIGHT_TIMER +#define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 13 // Number of LEDs #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 diff --git a/keyboards/jd40/config.h b/keyboards/jd40/config.h index e2594f4b3..047be5707 100644 --- a/keyboards/jd40/config.h +++ b/keyboards/jd40/config.h @@ -70,7 +70,7 @@ along with this program. If not, see . ) #define RGB_DI_PIN D3 -#define RGBLIGHT_TIMER +#define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 12 // Number of LEDs #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 diff --git a/keyboards/kc60/keymaps/ws2812/config.h b/keyboards/kc60/keymaps/ws2812/config.h index 2f39ea8e5..43abf6228 100644 --- a/keyboards/kc60/keymaps/ws2812/config.h +++ b/keyboards/kc60/keymaps/ws2812/config.h @@ -2,7 +2,7 @@ /* WS2812B RGB Underglow LED */ #define RGB_DI_PIN F5 // Based on wiring depicted in ws2812_wiring.jpg -#define RGBLIGHT_TIMER +#define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 16 // Number of LEDs. Change this to match your use case. #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 diff --git a/keyboards/lets_split/config.h b/keyboards/lets_split/config.h index f4d900acc..b0ad522fc 100644 --- a/keyboards/lets_split/config.h +++ b/keyboards/lets_split/config.h @@ -75,7 +75,7 @@ along with this program. If not, see . /* ws2812 RGB LED */ #define RGB_DI_PIN D4 -#define RGBLIGHT_TIMER +#define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 8 // Number of LEDs #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 diff --git a/keyboards/lets_split/keymaps/i2c/config.h b/keyboards/lets_split/keymaps/i2c/config.h index 2671fabf6..72e5ae66b 100644 --- a/keyboards/lets_split/keymaps/i2c/config.h +++ b/keyboards/lets_split/keymaps/i2c/config.h @@ -75,7 +75,7 @@ along with this program. If not, see . /* ws2812 RGB LED */ #define RGB_DI_PIN D4 -#define RGBLIGHT_TIMER +#define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 8 // Number of LEDs #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 diff --git a/keyboards/lets_split/keymaps/serial/config.h b/keyboards/lets_split/keymaps/serial/config.h index f4d900acc..b0ad522fc 100644 --- a/keyboards/lets_split/keymaps/serial/config.h +++ b/keyboards/lets_split/keymaps/serial/config.h @@ -75,7 +75,7 @@ along with this program. If not, see . /* ws2812 RGB LED */ #define RGB_DI_PIN D4 -#define RGBLIGHT_TIMER +#define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 8 // Number of LEDs #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 diff --git a/keyboards/phantom/config.h b/keyboards/phantom/config.h index 983a1d73f..71a33498b 100644 --- a/keyboards/phantom/config.h +++ b/keyboards/phantom/config.h @@ -63,7 +63,7 @@ along with this program. If not, see . /* Underlight configuration */ #define RGB_DI_PIN E2 -#define RGBLIGHT_TIMER +#define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 20 // Number of LEDs #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 diff --git a/keyboards/planck/keymaps/experimental/config.h b/keyboards/planck/keymaps/experimental/config.h index 52acd1905..cc093bee4 100644 --- a/keyboards/planck/keymaps/experimental/config.h +++ b/keyboards/planck/keymaps/experimental/config.h @@ -9,7 +9,7 @@ /* ws2812 RGB LED */ #define RGB_DI_PIN B1 -#define RGBLIGHT_TIMER +#define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 8 // Number of LEDs #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 diff --git a/keyboards/planck/keymaps/yang/config.h b/keyboards/planck/keymaps/yang/config.h index feb5a1190..4ed19d76f 100644 --- a/keyboards/planck/keymaps/yang/config.h +++ b/keyboards/planck/keymaps/yang/config.h @@ -5,7 +5,7 @@ /* ws2812 RGB LED */ #define RGB_DI_PIN D1 -#define RGBLIGHT_TIMER +#define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 28 // Number of LEDs #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 diff --git a/keyboards/preonic/config.h b/keyboards/preonic/config.h index 3fb978c2f..f88acf211 100644 --- a/keyboards/preonic/config.h +++ b/keyboards/preonic/config.h @@ -63,7 +63,7 @@ along with this program. If not, see . /* ws2812 RGB LED */ #define RGB_DI_PIN D1 -#define RGBLIGHT_TIMER +#define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 28 // Number of LEDs #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 diff --git a/keyboards/preonic/keymaps/kinesis/config.h b/keyboards/preonic/keymaps/kinesis/config.h index 086baa84f..e6099ceb8 100644 --- a/keyboards/preonic/keymaps/kinesis/config.h +++ b/keyboards/preonic/keymaps/kinesis/config.h @@ -63,7 +63,7 @@ along with this program. If not, see . /* ws2812 RGB LED */ #define RGB_DI_PIN D1 -#define RGBLIGHT_TIMER +#define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 28 // Number of LEDs #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 diff --git a/keyboards/satan/config.h b/keyboards/satan/config.h index 7e9f91cc8..eb357b39e 100644 --- a/keyboards/satan/config.h +++ b/keyboards/satan/config.h @@ -67,7 +67,7 @@ along with this program. If not, see . */ #define RGB_DI_PIN E2 -#define RGBLIGHT_TIMER +#define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 8 // Number of LEDs #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 diff --git a/keyboards/tada68/config.h b/keyboards/tada68/config.h index 5d8757936..19cf9c9b3 100644 --- a/keyboards/tada68/config.h +++ b/keyboards/tada68/config.h @@ -67,7 +67,7 @@ along with this program. If not, see . */ /*#define RGB_DI_PIN E2 -#define RGBLIGHT_TIMER +#define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 2 // Number of LEDs #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 diff --git a/quantum/light_ws2812.c b/quantum/light_ws2812.c index aac058f53..a883b1388 100755 --- a/quantum/light_ws2812.c +++ b/quantum/light_ws2812.c @@ -16,8 +16,6 @@ #include #include "debug.h" -#define RGBW_BB_TWI 1 - #ifdef RGBW_BB_TWI // Port for the I2C diff --git a/quantum/rgblight.c b/quantum/rgblight.c index 1901010bf..6b58f6654 100644 --- a/quantum/rgblight.c +++ b/quantum/rgblight.c @@ -174,7 +174,7 @@ void rgblight_init(void) { } eeconfig_debug_rgblight(); // display current eeprom values - #if !defined(AUDIO_ENABLE) && defined(RGBLIGHT_TIMER) + #ifdef RGBLIGHT_ANIMATIONS rgblight_timer_init(); // setup the timer #endif @@ -221,7 +221,7 @@ void rgblight_mode(uint8_t mode) { eeconfig_update_rgblight(rgblight_config.raw); xprintf("rgblight mode: %u\n", rgblight_config.mode); if (rgblight_config.mode == 1) { - #if !defined(AUDIO_ENABLE) && defined(RGBLIGHT_TIMER) + #ifdef RGBLIGHT_ANIMATIONS rgblight_timer_disable(); #endif } else if (rgblight_config.mode >= 2 && rgblight_config.mode <= 23) { @@ -231,7 +231,7 @@ void rgblight_mode(uint8_t mode) { // MODE 15-20, snake // MODE 21-23, knight - #if !defined(AUDIO_ENABLE) && defined(RGBLIGHT_TIMER) + #ifdef RGBLIGHT_ANIMATIONS rgblight_timer_enable(); #endif } @@ -245,7 +245,7 @@ void rgblight_toggle(void) { if (rgblight_config.enable) { rgblight_mode(rgblight_config.mode); } else { - #if !defined(AUDIO_ENABLE) && defined(RGBLIGHT_TIMER) + #ifdef RGBLIGHT_ANIMATIONS rgblight_timer_disable(); #endif _delay_ms(50); @@ -371,7 +371,7 @@ void rgblight_set(void) { } } -#if !defined(AUDIO_ENABLE) && defined(RGBLIGHT_TIMER) +#ifdef RGBLIGHT_ANIMATIONS // Animation timer -- AVR Timer3 void rgblight_timer_init(void) { diff --git a/quantum/rgblight.h b/quantum/rgblight.h index d16ba24e5..330c2fe1b 100644 --- a/quantum/rgblight.h +++ b/quantum/rgblight.h @@ -1,7 +1,7 @@ #ifndef RGBLIGHT_H #define RGBLIGHT_H -#if !defined(AUDIO_ENABLE) && defined(RGBLIGHT_TIMER) +#ifdef RGBLIGHT_ANIMATIONS #define RGBLIGHT_MODES 23 #else #define RGBLIGHT_MODES 1 diff --git a/readme.md b/readme.md index d5a259ccb..2364b5301 100644 --- a/readme.md +++ b/readme.md @@ -1135,12 +1135,12 @@ For this mod, you need an unused pin wiring to DI of WS2812 strip. After wiring RGBLIGHT_ENABLE = yes -In order to use the underglow timer functions, you need to have `#define RGBLIGHT_TIMER` in your `config.h`, and have audio disabled (`AUDIO_ENABLE = no` in your Makefile). +In order to use the underglow animation functions, you need to have `#define RGBLIGHT_ANIMATIONS` in your `config.h`. Please add the following options into your config.h, and set them up according your hardware configuration. These settings are for the `F4` pin by default: #define RGB_DI_PIN F4 // The pin your RGB strip is wired to - #define RGBLIGHT_TIMER // Require for fancier stuff (not compatible with audio) + #define RGBLIGHT_ANIMATIONS // Require for fancier stuff (not compatible with audio) #define RGBLED_NUM 14 // Number of LEDs #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index b628cde37..7eb9be601 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c @@ -51,6 +51,7 @@ #include "descriptor.h" #include "lufa.h" +#include "quantum.h" #ifdef NKRO_ENABLE #include "keycode_config.h" @@ -1111,9 +1112,104 @@ void cc_callback(MidiDevice * device, #endif } +void send_dword(uint32_t number) { + uint16_t word = (number >> 16); + send_word(word); + send_word(number & 0xFFFFUL); +} + +void send_word(uint16_t number) { + uint8_t byte = number >> 8; + send_byte(byte); + send_byte(number & 0xFF); +} + +void send_byte(uint8_t number) { + uint8_t nibble = number >> 4; + send_nibble(nibble); + send_nibble(number & 0xF); +} + +void send_nibble(uint8_t number) { + switch (number) { + case 0: + register_code(KC_0); + unregister_code(KC_0); + break; + case 1 ... 9: + register_code(KC_1 + (number - 1)); + unregister_code(KC_1 + (number - 1)); + break; + case 0xA ... 0xF: + register_code(KC_A + (number - 0xA)); + unregister_code(KC_A + (number - 0xA)); + break; + } +} + +uint8_t midi_buffer[16] = {0}; + void sysex_callback(MidiDevice * device, uint16_t start, uint8_t length, uint8_t * data) { // for (int i = 0; i < length; i++) // midi_send_cc(device, 15, 0x7F & data[i], 0x7F & (start + i)); + // if (start == 0x27) { + // SEND_STRING("\n"); + // send_word(start); + // SEND_STRING(": "); + for (uint8_t place = 0; place < length; place++) { + // send_byte(*data); + midi_buffer[start + place] = *data; + if (*data == 0xF7) + sysex_buffer_callback(start + place, &midi_buffer); + // SEND_STRING(" "); + data++; + } + // } + +} + +void sysex_buffer_callback(uint8_t length, uint8_t * data) { + uint8_t * pointer_copy = data; + + if (*data++ != 0xF0) + return + data++; + data++; + data++; + data++; + + switch (*data++) { + case 0x27: ; // RGB LED functions + switch (*data++) + case 0x00: ; // Update HSV + uint32_t part1 = *data++; + uint32_t part2 = *data++; + uint32_t part3 = *data++; + uint32_t part4 = *data++; + uint32_t part5 = *data++; + uint32_t chunk = ((part1 & 0x1FUL) << 28) | (part2 << 21) | (part3 << 14) | (part4 << 7) | part5; + // SEND_STRING("\nCHUNK: "); + // send_dword(chunk); + rgblight_sethsv(((chunk >> 16) & 0xFFFF) % 360, (chunk >> 8) & 0xFF, chunk & 0xFF); + // SEND_STRING("\nHUE: "); + // send_word(((chunk >> 16) & 0xFFFF) % 360); + // SEND_STRING("\nSAT: "); + // send_word((chunk >> 8) & 0xFF); + // SEND_STRING("\nVAL: "); + // send_word(chunk & 0xFF); + break; + case 0x01: ; // Update RGB + break; + break; + } + + // SEND_STRING("\nDATA:\n"); + // while (*pointer_copy != 0xF7) { + // send_byte(*pointer_copy++); + // SEND_STRING(" "); + // } + } + #endif -- cgit v1.2.3 From 9bbc9a7ce024edb4d80ce65d43c82456e3714928 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Thu, 17 Nov 2016 19:47:08 -0500 Subject: Initial Erez Experimental keymap tweaks --- keyboards/ergodox/keymaps/erez_experimental/Makefile | 2 ++ keyboards/ergodox/keymaps/erez_experimental/config.h | 11 +++++++++++ keyboards/ergodox/keymaps/erez_experimental/keymap.c | 12 ++++++------ 3 files changed, 19 insertions(+), 6 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/erez_experimental/Makefile b/keyboards/ergodox/keymaps/erez_experimental/Makefile index b673c5ce5..dbe89d141 100644 --- a/keyboards/ergodox/keymaps/erez_experimental/Makefile +++ b/keyboards/ergodox/keymaps/erez_experimental/Makefile @@ -3,6 +3,8 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend COMMAND_ENABLE = no # Commands for debug and configuration +RGBLIGHT_ENABLE = yes +MIDI_ENABLE = yes ifndef QUANTUM_DIR include ../../../../Makefile diff --git a/keyboards/ergodox/keymaps/erez_experimental/config.h b/keyboards/ergodox/keymaps/erez_experimental/config.h index e5d7fe188..fbd12ab79 100644 --- a/keyboards/ergodox/keymaps/erez_experimental/config.h +++ b/keyboards/ergodox/keymaps/erez_experimental/config.h @@ -8,5 +8,16 @@ #undef LEADER_TIMEOUT #define LEADER_TIMEOUT 300 + +/* ws2812 RGB LED */ +#define RGB_DI_PIN D7 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 15 // Number of LEDs +#define RGBLIGHT_HUE_STEP 12 +#define RGBLIGHT_SAT_STEP 255 +#define RGBLIGHT_VAL_STEP 12 + +#define RGB_MIDI +#define RGBW_BB_TWI #endif diff --git a/keyboards/ergodox/keymaps/erez_experimental/keymap.c b/keyboards/ergodox/keymaps/erez_experimental/keymap.c index 4804959d6..b867d3601 100644 --- a/keyboards/ergodox/keymaps/erez_experimental/keymap.c +++ b/keyboards/ergodox/keymaps/erez_experimental/keymap.c @@ -67,9 +67,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-------------. ,-------------. * | | | | | | * ,------|------|------| |------+------+------. - * | | | | | | | | + * |VAI |VAD |HUI | |SAI |TOG |MOD | * | | |------| |------| | | - * | | | | | | | | + * | | |HUD | |SAD | | | * `--------------------' `--------------------' */ // SYMBOLS @@ -81,8 +81,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,LCTL(KC_PGUP), LCTL(KC_PGDN), KC_TRNS,KC_TRNS, - KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS, + RGB_HUI, + RGB_VAI,RGB_VAD,RGB_HUD, // right hand KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, @@ -90,8 +90,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_PIPE, KC_AT, KC_EQL, KC_PERC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS + RGB_SAI, + RGB_SAD, RGB_TOG, RGB_MOD ), /* Keymap 2: Media and mouse keys * -- cgit v1.2.3 From 285c5a91f23e972d9c579184283443111186329d Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Thu, 17 Nov 2016 20:56:36 -0500 Subject: Groundwork for dedicated color keycodes --- .../ergodox/keymaps/erez_experimental/keymap.c | 24 +++++++++++++++++++++- quantum/rgblight.c | 7 +++++++ quantum/rgblight.h | 1 + 3 files changed, 31 insertions(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/erez_experimental/keymap.c b/keyboards/ergodox/keymaps/erez_experimental/keymap.c index b867d3601..4a23c7ac5 100644 --- a/keyboards/ergodox/keymaps/erez_experimental/keymap.c +++ b/keyboards/ergodox/keymaps/erez_experimental/keymap.c @@ -7,6 +7,12 @@ #define SYMB 1 // symbols #define MDIA 2 // media keys +enum custom_keycodes { + PLACEHOLDER = SAFE_RANGE, // can always be here + RGB_FF00BB // always start with RGB_ +}; + + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer * @@ -75,7 +81,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // SYMBOLS [SYMB] = KEYMAP( // left hand - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + RGB_FF00BB, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, @@ -152,6 +158,22 @@ void matrix_init_user(void) { }; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + // dynamically generate these. + case RGB_FF00BB: + if (record->event.pressed) { + rgblight_enable(); + rgblight_mode(1); + rgblight_setrgb(0xff,0x00,0xbb); + } + return false; + break; + } + return true; +} + LEADER_EXTERNS(); // Runs constantly in the background, in a loop. diff --git a/quantum/rgblight.c b/quantum/rgblight.c index 6b58f6654..00620da58 100644 --- a/quantum/rgblight.c +++ b/quantum/rgblight.c @@ -253,6 +253,13 @@ void rgblight_toggle(void) { } } +void rgblight_enable(void) { + rgblight_config.enable = 1; + eeconfig_update_rgblight(rgblight_config.raw); + xprintf("rgblight enable: rgblight_config.enable = %u\n", rgblight_config.enable); + rgblight_mode(rgblight_config.mode); +} + void rgblight_increase_hue(void) { uint16_t hue; diff --git a/quantum/rgblight.h b/quantum/rgblight.h index 330c2fe1b..a3673348e 100644 --- a/quantum/rgblight.h +++ b/quantum/rgblight.h @@ -61,6 +61,7 @@ void rgblight_init(void); void rgblight_increase(void); void rgblight_decrease(void); void rgblight_toggle(void); +void rgblight_enable(void); void rgblight_step(void); void rgblight_mode(uint8_t mode); void rgblight_set(void); -- cgit v1.2.3 From 161bd5596b5d8199f2e56246a27ccbdb8c80bb36 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 18 Nov 2016 22:22:24 -0500 Subject: midi back and forth --- keyboards/ergodox/keymaps/jack/keymap.c | 7 +++- tmk_core/protocol/lufa/lufa.c | 62 ++++++++++++++++++++++++--------- tmk_core/protocol/lufa/lufa.h | 1 + 3 files changed, 52 insertions(+), 18 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/jack/keymap.c b/keyboards/ergodox/keymaps/jack/keymap.c index 8721b9644..eb41f1212 100644 --- a/keyboards/ergodox/keymaps/jack/keymap.c +++ b/keyboards/ergodox/keymaps/jack/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { MO(1), KC_LEFT,KC_DOWN,KC_UP, KC_RGHT, RGB_TOG, RGB_HUI, RGB_MOD, - KC_PGDN, KC_SPC,KC_SPC + M(2), KC_SPC,KC_SPC ), [SYMB] = KEYMAP( // left hand @@ -89,6 +89,11 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) eeconfig_init(); } break; + case 2: + if (record->event.pressed) { // For resetting EEPROM + send_unicode_midi(0x0CA0); + } + break; } return MACRO_NONE; }; diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index 7eb9be601..ae9cc2f96 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c @@ -1161,7 +1161,7 @@ void sysex_callback(MidiDevice * device, // send_byte(*data); midi_buffer[start + place] = *data; if (*data == 0xF7) - sysex_buffer_callback(start + place, &midi_buffer); + sysex_buffer_callback(device, start + place, &midi_buffer); // SEND_STRING(" "); data++; } @@ -1169,7 +1169,24 @@ void sysex_callback(MidiDevice * device, } -void sysex_buffer_callback(uint8_t length, uint8_t * data) { +uint32_t decode_4byte_chunk(uint8_t * data) { + uint32_t part1 = *data++; + uint32_t part2 = *data++; + uint32_t part3 = *data++; + uint32_t part4 = *data++; + uint32_t part5 = *data++; + return ((part1 & 0x1FUL) << 28) | (part2 << 21) | (part3 << 14) | (part4 << 7) | part5; +} + +void encode_4byte_chunk(uint32_t data, uint8_t * pointer) { + *pointer++ = (data >> 28) & 0x7F; + *pointer++ = (data >> 21) & 0x7F; + *pointer++ = (data >> 14) & 0x7F; + *pointer++ = (data >> 7) & 0x7F; + *pointer++ = (data) & 0x7F; +} + +void sysex_buffer_callback(MidiDevice * device, uint8_t length, uint8_t * data) { uint8_t * pointer_copy = data; if (*data++ != 0xF0) @@ -1180,28 +1197,31 @@ void sysex_buffer_callback(uint8_t length, uint8_t * data) { data++; switch (*data++) { + case 0x13: ; // Get info from keyboard + switch (*data++) { + case 0x00: ; // Get layer state + // send_dword(layer_state); + uint8_t chunk[5]; + encode_4byte_chunk(layer_state | default_layer_state, &chunk); + + uint8_t array[] = {0xF0, 0x00, 0x00, 0x00, 0x00, chunk[0], chunk[1], chunk[2], chunk[3], chunk[4], 0xF7}; + midi_send_array(&midi_device, 11, &array); + // midi_send_data(device, 3, 0x00, layer_state >> 24 & 0x7f, layer_state >> 16 & 0x7f); + // midi_send_data(device, 6, layer_state >> 8 & 0x7f, layer_state & 0x7f, 0xF7); + break; + } + #ifdef RGBLIGHT_ENABLE case 0x27: ; // RGB LED functions - switch (*data++) + switch (*data++) { case 0x00: ; // Update HSV - uint32_t part1 = *data++; - uint32_t part2 = *data++; - uint32_t part3 = *data++; - uint32_t part4 = *data++; - uint32_t part5 = *data++; - uint32_t chunk = ((part1 & 0x1FUL) << 28) | (part2 << 21) | (part3 << 14) | (part4 << 7) | part5; - // SEND_STRING("\nCHUNK: "); - // send_dword(chunk); + uint32_t chunk = decode_4byte_chunk(data); rgblight_sethsv(((chunk >> 16) & 0xFFFF) % 360, (chunk >> 8) & 0xFF, chunk & 0xFF); - // SEND_STRING("\nHUE: "); - // send_word(((chunk >> 16) & 0xFFFF) % 360); - // SEND_STRING("\nSAT: "); - // send_word((chunk >> 8) & 0xFF); - // SEND_STRING("\nVAL: "); - // send_word(chunk & 0xFF); break; case 0x01: ; // Update RGB break; + } break; + #endif } // SEND_STRING("\nDATA:\n"); @@ -1212,4 +1232,12 @@ void sysex_buffer_callback(uint8_t length, uint8_t * data) { } +void send_unicode_midi(uint32_t unicode) { + uint8_t chunk[5]; + encode_4byte_chunk(unicode, &chunk); + + uint8_t array[] = {0xF0, 0x00, 0x00, 0x00, 0x05, chunk[0], chunk[1], chunk[2], chunk[3], chunk[4], 0xF7}; + midi_send_array(&midi_device, 11, &array); +} + #endif diff --git a/tmk_core/protocol/lufa/lufa.h b/tmk_core/protocol/lufa/lufa.h index aad08d640..3fec797b6 100644 --- a/tmk_core/protocol/lufa/lufa.h +++ b/tmk_core/protocol/lufa/lufa.h @@ -70,6 +70,7 @@ typedef struct { #ifdef MIDI_ENABLE void MIDI_Task(void); MidiDevice midi_device; +void send_unicode_midi(uint32_t unicode); #endif // #if LUFA_VERSION_INTEGER < 0x120730 -- cgit v1.2.3 From 01736a502e8f2900bde229a086a4ab03513f6781 Mon Sep 17 00:00:00 2001 From: climbalima Date: Fri, 18 Nov 2016 23:40:34 -0500 Subject: just saving --- keyboards/maxipad/Makefile | 2 +- keyboards/maxipad/config.h | 113 +++++----------------------- keyboards/maxipad/keymaps/default/Makefile | 21 ------ keyboards/maxipad/keymaps/default/config.h | 8 -- keyboards/maxipad/keymaps/default/keymap.c | 40 ++-------- keyboards/maxipad/keymaps/default/readme.md | 1 - keyboards/maxipad/maxipad.c | 29 +------ keyboards/maxipad/maxipad.h | 12 +-- keyboards/maxipad/readme.md | 31 ++------ keyboards/maxipad/rules.mk | 29 +++---- 10 files changed, 54 insertions(+), 232 deletions(-) delete mode 100644 keyboards/maxipad/keymaps/default/Makefile delete mode 100644 keyboards/maxipad/keymaps/default/config.h delete mode 100644 keyboards/maxipad/keymaps/default/readme.md (limited to 'keyboards') diff --git a/keyboards/maxipad/Makefile b/keyboards/maxipad/Makefile index 57b2ef62e..4e2a6f00f 100644 --- a/keyboards/maxipad/Makefile +++ b/keyboards/maxipad/Makefile @@ -1,3 +1,3 @@ ifndef MAKEFILE_INCLUDED include ../../Makefile -endif +endif \ No newline at end of file diff --git a/keyboards/maxipad/config.h b/keyboards/maxipad/config.h index fbe64a5b0..a056e4963 100644 --- a/keyboards/maxipad/config.h +++ b/keyboards/maxipad/config.h @@ -24,124 +24,49 @@ along with this program. If not, see . #define VENDOR_ID 0xFEED #define PRODUCT_ID 0x6060 #define DEVICE_VER 0x0001 -#define MANUFACTURER Wootpatoot +#define MANUFACTURER wootpatoot #define PRODUCT maxipad #define DESCRIPTION A custom keyboard - /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 6 -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * -*/ -#define MATRIX_ROW_PINS { B6, F7, B2, B3, B1 } -#define MATRIX_COL_PINS { F6, C6, D7, F5, B4, B5 } -#define UNUSED_PINS +// Planck PCB default pin-out +// Change this to how you wired your keyboard +// COLS: Left to right, ROWS: Top to bottom +#ifdef USE_PRO_MICRO + #define MATRIX_ROW_PINS { B6, B2, B3, B1, F7 } + #define MATRIX_COL_PINS { F4, C6, D7, F5, B4, B5 } + #define UNUSED_PINS + #else + #define MATRIX_ROW_PINS { B6, F7, B2, B3, B1 } + #define MATRIX_COL_PINS { F6, C6, D7, F5, B4, B5 } + #define UNUSED_PINS + #endif /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW - -// #define BACKLIGHT_PIN B7 -// #define BACKLIGHT_BREATHING -// #define BACKLIGHT_LEVELS 3 - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCING_DELAY 5 - -/* define if matrix has ghost (lacks anti-ghosting diodes) */ +/* define if matrix has ghost */ //#define MATRIX_HAS_GHOST /* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -//#define FORCE_NKRO - -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* key combination for magic key command */ +/* key combination for command */ #define IS_COMMAND() ( \ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ ) -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/maxipad/keymaps/default/Makefile b/keyboards/maxipad/keymaps/default/Makefile deleted file mode 100644 index f4671a9d1..000000000 --- a/keyboards/maxipad/keymaps/default/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - -ifndef QUANTUM_DIR - include ../../../../Makefile -endif \ No newline at end of file diff --git a/keyboards/maxipad/keymaps/default/config.h b/keyboards/maxipad/keymaps/default/config.h deleted file mode 100644 index df06a2620..000000000 --- a/keyboards/maxipad/keymaps/default/config.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include "../../config.h" - -// place overrides here - -#endif \ No newline at end of file diff --git a/keyboards/maxipad/keymaps/default/keymap.c b/keyboards/maxipad/keymaps/default/keymap.c index 43ace3241..227cef7d8 100644 --- a/keyboards/maxipad/keymaps/default/keymap.c +++ b/keyboards/maxipad/keymaps/default/keymap.c @@ -1,5 +1,5 @@ #include "maxipad.h" - + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = KEYMAP( /* Base */ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, \ @@ -13,42 +13,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC \ ), }; - + const uint16_t PROGMEM fn_actions[] = { - }; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // MACRODOWN only works in this function { - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - } return MACRO_NONE; -}; - - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - -} \ No newline at end of file +}; \ No newline at end of file diff --git a/keyboards/maxipad/keymaps/default/readme.md b/keyboards/maxipad/keymaps/default/readme.md deleted file mode 100644 index a6c0d4a3f..000000000 --- a/keyboards/maxipad/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for maxipad \ No newline at end of file diff --git a/keyboards/maxipad/maxipad.c b/keyboards/maxipad/maxipad.c index 879ae86a7..a193b112b 100644 --- a/keyboards/maxipad/maxipad.c +++ b/keyboards/maxipad/maxipad.c @@ -1,28 +1 @@ -#include "maxipad.h" - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - - matrix_init_user(); -} - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - - matrix_scan_user(); -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware - - return process_record_user(keycode, record); -} - -void led_set_kb(uint8_t usb_led) { - // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here - - led_set_user(usb_led); -} +#include "maxipad.h" \ No newline at end of file diff --git a/keyboards/maxipad/maxipad.h b/keyboards/maxipad/maxipad.h index eee1309dd..4d8c6428d 100644 --- a/keyboards/maxipad/maxipad.h +++ b/keyboards/maxipad/maxipad.h @@ -8,18 +8,18 @@ // The first section contains all of the arguements // The second converts the arguments into a two-dimensional array #define KEYMAP( \ - k00, k01, k02, k03, k04, k05, \ - k10, k11, k12, k13, k14, k15, \ - k20, k21, k22, k23, k24, k25, \ - k30, k31, k32, k33, k34, k35, \ - k40, k41, k42, k43, k44, k45 \ + k00, k01, k02, k03, k04, k05, \ + k10, k11, k12, k13, k14, k15, \ + k20, k21, k22, k23, k24, k25, \ + k30, k31, k32, k33, k34, k35, \ + k40, k41, k42, k43, k44, k45 \ ) \ { \ { k00, k01, k02, k03, k04, k05 }, \ { k10, k11, k12, k13, k14, k15 }, \ { k20, k21, k22, k23, k24, k25 }, \ { k30, k31, k32, k33, k34, k35 }, \ - { k40, k41, k42, k43, k44, k45} \ + { k40, k41, k42, k43, k44, k45 } \ } #endif diff --git a/keyboards/maxipad/readme.md b/keyboards/maxipad/readme.md index 1971ce1f3..4e1702c5a 100644 --- a/keyboards/maxipad/readme.md +++ b/keyboards/maxipad/readme.md @@ -1,46 +1,27 @@ -maxipad keyboard firmware +Maxipad keyboard firmware ====================== ## Quantum MK Firmware -<<<<<<< HEAD -For the full Quantum feature list, see [the parent readme](/). -======= -For the full Quantum feature list, see [the parent readme.md](/doc/readme.md). ->>>>>>> bce6e52391da7c5f620c96a91857940f0dee19df +For the full Quantum feature list, see [the parent readme.md](/readme.md). ## Building +If you are using a pro micro then make sure to enable USE_PRO_MICRO in the makefile + Download or clone the whole firmware and navigate to the keyboards/maxipad folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. Depending on which keymap you would like to use, you will have to compile slightly differently. ### Default - -<<<<<<< HEAD To build with the default keymap, simply run `make default`. -======= -To build with the default keymap, simply run `make`. ->>>>>>> bce6e52391da7c5f620c96a91857940f0dee19df ### Other Keymaps +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` and see keymap document (you can find in top readme.md) and existent keymap files. -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files. - -<<<<<<< HEAD To build the firmware binary hex file with a keymap just do `make` with a keymap like this: ``` $ make [default|jack|] ``` - -Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. -======= -To build the firmware binary hex file with a keymap just do `make` with `keymap` option like: - -``` -$ make keymap=[default|jack|] -``` - -Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/` ->>>>>>> bce6e52391da7c5f620c96a91857940f0dee19df +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. \ No newline at end of file diff --git a/keyboards/maxipad/rules.mk b/keyboards/maxipad/rules.mk index 55898147d..e6e5923f1 100644 --- a/keyboards/maxipad/rules.mk +++ b/keyboards/maxipad/rules.mk @@ -1,3 +1,5 @@ + + # MCU name #MCU = at90usb1287 MCU = atmega32u4 @@ -49,19 +51,18 @@ OPT_DEFS += -DBOOTLOADER_SIZE=512 # Build Options -# change yes to no to disable +# comment out to disable the options. # -BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) -EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) -CONSOLE_ENABLE ?= yes # Console for debug(+400) -COMMAND_ENABLE ?= yes # Commands for debug and configuration +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend -# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE ?= no # USB Nkey Rollover -BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default -MIDI_ENABLE ?= no # MIDI controls -UNICODE_ENABLE ?= no # Unicode -BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID -AUDIO_ENABLE ?= no # Audio output on port C6 +# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend +# NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality +# MIDI_ENABLE ?= YES # MIDI controls +# UNICODE_ENABLE ?= YES # Unicode +# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID +USE_PRO_MICRO ?= yes \ No newline at end of file -- cgit v1.2.3 From e356de222023d2a8f7d5ee79030a37eaa9b1b25f Mon Sep 17 00:00:00 2001 From: climbalima Date: Sat, 19 Nov 2016 00:44:52 -0500 Subject: added the pinout for pro micro into maxipad --- keyboards/maxipad/config.h | 12 +++++++++--- keyboards/maxipad/rules.mk | 1 + 2 files changed, 10 insertions(+), 3 deletions(-) (limited to 'keyboards') diff --git a/keyboards/maxipad/config.h b/keyboards/maxipad/config.h index fbe64a5b0..fc5ab7761 100644 --- a/keyboards/maxipad/config.h +++ b/keyboards/maxipad/config.h @@ -43,9 +43,15 @@ along with this program. If not, see . * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) * */ -#define MATRIX_ROW_PINS { B6, F7, B2, B3, B1 } -#define MATRIX_COL_PINS { F6, C6, D7, F5, B4, B5 } -#define UNUSED_PINS +//Pro micro pinout + #define MATRIX_ROW_PINS { B6, B2, B3, B1, F7 } + #define MATRIX_COL_PINS { F4, C6, D7, F5, B4, B5 } + #define UNUSED_PINS +//Teensy 2 pinout + //#define MATRIX_ROW_PINS { B6, F7, B2, B3, B1 } + //#define MATRIX_COL_PINS { F6, C6, D7, F5, B4, B5 } + //#define UNUSED_PINS + /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/maxipad/rules.mk b/keyboards/maxipad/rules.mk index 55898147d..f9bf74179 100644 --- a/keyboards/maxipad/rules.mk +++ b/keyboards/maxipad/rules.mk @@ -65,3 +65,4 @@ MIDI_ENABLE ?= no # MIDI controls UNICODE_ENABLE ?= no # Unicode BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE ?= no # Audio output on port C6 +USE_PRO_MICRO ?= yes \ No newline at end of file -- cgit v1.2.3 From 102a830bbdb302eb0951ec7910ab7c9feae272d1 Mon Sep 17 00:00:00 2001 From: climbalima Date: Sat, 19 Nov 2016 00:49:20 -0500 Subject: changed readme --- keyboards/maxipad/readme.md | 2 ++ keyboards/maxipad/rules.mk | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/maxipad/readme.md b/keyboards/maxipad/readme.md index ab7b122fe..de2265d11 100644 --- a/keyboards/maxipad/readme.md +++ b/keyboards/maxipad/readme.md @@ -5,6 +5,8 @@ For the full Quantum feature list, see [the parent readme](/). ## Building +Change the config.h pinout to match your mcu!! + Download or clone the whole firmware and navigate to the keyboards/maxipad folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. Depending on which keymap you would like to use, you will have to compile slightly differently. diff --git a/keyboards/maxipad/rules.mk b/keyboards/maxipad/rules.mk index f9bf74179..56b2042ef 100644 --- a/keyboards/maxipad/rules.mk +++ b/keyboards/maxipad/rules.mk @@ -64,5 +64,4 @@ BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by MIDI_ENABLE ?= no # MIDI controls UNICODE_ENABLE ?= no # Unicode BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID -AUDIO_ENABLE ?= no # Audio output on port C6 -USE_PRO_MICRO ?= yes \ No newline at end of file +AUDIO_ENABLE ?= no # Audio output on port C6 \ No newline at end of file -- cgit v1.2.3 From 7f5e71d79fb5ca70139c42b83c158738217c1c8a Mon Sep 17 00:00:00 2001 From: samgalson@gmail.com Date: Sat, 19 Nov 2016 14:21:12 +0000 Subject: adds galson keymap --- keyboards/ergodox/keymaps/galson/Makefile | 2 + keyboards/ergodox/keymaps/galson/keymap.c | 183 +++++++++++++++++++++++++++++ keyboards/ergodox/keymaps/galson/readme.md | 11 ++ 3 files changed, 196 insertions(+) create mode 100644 keyboards/ergodox/keymaps/galson/Makefile create mode 100644 keyboards/ergodox/keymaps/galson/keymap.c create mode 100644 keyboards/ergodox/keymaps/galson/readme.md (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/galson/Makefile b/keyboards/ergodox/keymaps/galson/Makefile new file mode 100644 index 000000000..f008f5079 --- /dev/null +++ b/keyboards/ergodox/keymaps/galson/Makefile @@ -0,0 +1,2 @@ +COMMAND_ENABLE = no # Commands for debug and configuration + diff --git a/keyboards/ergodox/keymaps/galson/keymap.c b/keyboards/ergodox/keymaps/galson/keymap.c new file mode 100644 index 000000000..0d3e7560d --- /dev/null +++ b/keyboards/ergodox/keymaps/galson/keymap.c @@ -0,0 +1,183 @@ +#include "ergodox.h" +#include "debug.h" +#include "action_layer.h" +#include "version.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | + | 1 | 2 | 3 | 4 | 5 | rclk | | lclk | 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | = | Q | W | E | R |cmd/T |shift | |shift |cmd/Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------| + * | " | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' | + * |--------+------+------+------+------+------| ctrl | | ctrl |------+------+------+------+------+--------| + * | { | Z | X | C | V | B | [ | | ] | N | M | , | . | / | } | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | _ | ` | $ | Left | Right| | Up | Down | : | * | ! | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | < | | | | & | > | + * ,------|------|------| |------+--------+------. + * | | | # | | @ | | | + * | Space|Backsp|------| |------| Tab |Enter | + * | |ace | % | | ESC | | | + * `--------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_PLUS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_BTN2, + KC_EQL, KC_Q, KC_W, KC_E, KC_R, GUI_T(KC_T), KC_LSPO, + KC_DQUO, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LCBR, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, CTL_T(KC_LBRC), + KC_UNDS, KC_GRV, KC_DLR, KC_LEFT,KC_RGHT, + KC_LABK, KC_PIPE, + KC_HASH, + KC_SPC, KC_BSPC,KC_PERC, + // right hand + KC_BTN1, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_RSPC, GUI_T(KC_Y), KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), KC_QUOT, + CTL_T(KC_RBRC), KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RCBR, + KC_UP, KC_DOWN,KC_COLN,KC_ASTR, KC_EXLM, + KC_AMPR, KC_RABK, + KC_AT, + KC_ESC, KC_TAB, KC_ENT + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. + * |Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + M(0), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, + KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, + KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, + KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboards/ergodox/keymaps/galson/readme.md b/keyboards/ergodox/keymaps/galson/readme.md new file mode 100644 index 000000000..ebc916725 --- /dev/null +++ b/keyboards/ergodox/keymaps/galson/readme.md @@ -0,0 +1,11 @@ +# Galson keymap + + +Sep 26, 2016. + +This is an ergonomic layout for programming for those with typing-related injuries. Key features: + +- As many symbol keys as possible are accessible without shifting. These should be accessed by moving the entire hand and pressing with a strong finger. +- Arrow keys and left and right mouse clicks for mouse-free navigation when combined with head mouse or eyetracker. +- Modifier keys are dual role and relocated to positions convenient for the index finger. +- Positions are more convenient when the keyboard is vertically mounted (as it should be!) \ No newline at end of file -- cgit v1.2.3 From 620e4f74d39bbcd9a41b6deed0fb990dfadbd106 Mon Sep 17 00:00:00 2001 From: Seth Chandler Date: Sat, 19 Nov 2016 11:37:12 -0500 Subject: move KC expansion to separate macros --- keyboards/gh60/gh60.h | 49 ++++++++++++++++++++++++++-- keyboards/gh60/keymaps/default/keymap.c | 12 +++---- keyboards/gh60/keymaps/robotmaxtron/keymap.c | 24 +++++++------- keyboards/gh60/keymaps/sethbc/keymap.c | 4 +-- 4 files changed, 66 insertions(+), 23 deletions(-) (limited to 'keyboards') diff --git a/keyboards/gh60/gh60.h b/keyboards/gh60/gh60.h index 899f7dc6a..4f206cc16 100644 --- a/keyboards/gh60/gh60.h +++ b/keyboards/gh60/gh60.h @@ -34,6 +34,20 @@ inline void gh60_wasd_leds_off(void) { DDRF &= ~(1<<7); PORTF &= ~(1<<7); } K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \ +) { \ + { 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, K2C, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, K49, K4A, K4B, K4C, K4D } \ +} + +#define KC_KEYMAP( \ + 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, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \ ) { \ { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D }, \ { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D }, \ @@ -42,13 +56,28 @@ inline void gh60_wasd_leds_off(void) { DDRF &= ~(1<<7); PORTF &= ~(1<<7); } { KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_##K45, KC_NO, KC_NO, KC_NO, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D } \ } -/* ANSI valiant. No extra keys for ISO */ +/* ANSI variant. No extra keys for ISO */ #define KEYMAP_ANSI( \ 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, K2D, \ K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ K40, K41, K42, K45, K4A, K4B, K4C, K4D \ +) { \ + { 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, KC_NO, K2D }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D }, \ + { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D } \ +} + +/* ANSI variant with KC expansion */ +#define KC_KEYMAP_ANSI( \ + 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, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K41, K42, K45, K4A, K4B, K4C, K4D \ ) { \ { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D }, \ { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D }, \ @@ -57,12 +86,28 @@ inline void gh60_wasd_leds_off(void) { DDRF &= ~(1<<7); PORTF &= ~(1<<7); } { KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_##K45, KC_NO, KC_NO, KC_NO, KC_NO, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D } \ } +/* HHKB Variant */ #define KEYMAP_HHKB( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49,\ 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, K2D, \ K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3C, \ K40, K41, K42, K45, K4A, K4B, K4C, K4D \ +) { \ + { 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, KC_NO, K2D }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, K49, K4A, K4B, K4C, K4D } \ +} + +/* HHKB Variant with KC expansion */ +#define KC_KEYMAP_HHKB( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49,\ + 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, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3C, \ + K40, K41, K42, K45, K4A, K4B, K4C, K4D \ ) { \ { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D }, \ { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D }, \ @@ -71,6 +116,4 @@ inline void gh60_wasd_leds_off(void) { DDRF &= ~(1<<7); PORTF &= ~(1<<7); } { KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_##K45, KC_NO, KC_NO, KC_NO, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D } \ } - - #endif diff --git a/keyboards/gh60/keymaps/default/keymap.c b/keyboards/gh60/keymaps/default/keymap.c index 3622be41b..5c88b2ecf 100644 --- a/keyboards/gh60/keymaps/default/keymap.c +++ b/keyboards/gh60/keymaps/default/keymap.c @@ -3,21 +3,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: qwerty */ - KEYMAP( + KC_KEYMAP( ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, GRV, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \ CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT,NO, ENT, \ LSFT,FN1, Z, X, C, V, B, N, M, COMM,DOT, SLSH,FN0, RSFT, \ LCTL,LGUI,LALT, SPC, BSLS,RALT,RGUI,APP, RCTL), /* 1: fn */ - KEYMAP( + KC_KEYMAP( ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ TRNS,TRNS,UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS), /* 2: arrows */ - KEYMAP( + KC_KEYMAP( TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ @@ -49,7 +49,7 @@ void matrix_scan_user(void) { //Layer LED indicators uint32_t layer = layer_state; - + if (layer & (1<<1)) { gh60_wasd_leds_on(); gh60_fn_led_on(); @@ -57,7 +57,7 @@ void matrix_scan_user(void) { gh60_wasd_leds_off(); gh60_fn_led_off(); } - + if (layer & (1<<2)) { gh60_poker_leds_on(); gh60_esc_led_on(); @@ -65,5 +65,5 @@ void matrix_scan_user(void) { gh60_poker_leds_off(); gh60_esc_led_off(); } - + }; diff --git a/keyboards/gh60/keymaps/robotmaxtron/keymap.c b/keyboards/gh60/keymaps/robotmaxtron/keymap.c index 263eec4e5..d53589e81 100644 --- a/keyboards/gh60/keymaps/robotmaxtron/keymap.c +++ b/keyboards/gh60/keymaps/robotmaxtron/keymap.c @@ -8,7 +8,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* - * Base layer, pretty standard ANSI layout. + * Base layer, pretty standard ANSI layout. * ,-----------------------------------------------------------. * |FN12| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | * |-----------------------------------------------------------| @@ -21,14 +21,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Ctrl|Gui |Alt | Space |Alt |Fn |Menu|Ctrl| * `-----------------------------------------------------------' */ - [_BL] = KEYMAP( + [_BL] = KC_KEYMAP( FN12,1,2,3,4,5,6,7,8,9,0,MINS,EQL,BSPC, \ TAB,Q,W,E,R,T,Y,U,I,O,P,LBRC,RBRC,BSLS, \ FN2,A,S,D,F,G,H,J,K,L,SCLN,QUOT,NO,ENT, \ LSFT,NO,Z,X,C,V,B,N,M,COMM,DOT,SLSH,NO,RSFT, \ LCTL,LGUI,LALT, SPC, NO,RALT,FN0,APP, RCTL), - - /* + + /* * Locking arrow keys to WASD for when you need dedicated arrow keys * ,-----------------------------------------------------------. * | | | | | | | | | | | | | | | @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | * `-----------------------------------------------------------' */ - [_AL] = KEYMAP( + [_AL] = KC_KEYMAP( TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,UP,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ @@ -50,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS), - /* + /* * Primary function layer, mostly the same as the traditional Pok3r layout. * ,-------------------------------------------------------------. * |`~ | F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12|DEL | @@ -64,16 +64,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | * `-------------------------------------------------------------' */ - [_FL] = KEYMAP( + [_FL] = KC_KEYMAP( GRAVE,F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12, DELETE, \ TRNS,FN1,TRNS,TRNS,TRNS,TRNS,CALC,PGUP,UP,PGDN,PSCR,SLCK,PAUS,TRNS, \ TRNS,MUTE,_VOLDOWN,_VOLUP,TRNS,TRNS,HOME,LEFT,DOWN,RGHT,INS,TRNS,TRNS,TRNS, \ TRNS,TRNS,FN3,TRNS,TRNS,TRNS,TRNS,END,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS), - - /* + + /* * Locking layer for controlling the underglow. - * + * * ,-----------------------------------------------------------. * | | | | | | | | | | | | | | | * |-----------------------------------------------------------| @@ -86,7 +86,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | * `-----------------------------------------------------------' */ - [_UL] = KEYMAP( + [_UL] = KC_KEYMAP( TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,FN4,FN5,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ @@ -124,7 +124,7 @@ const uint16_t PROGMEM fn_actions[] = { const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function + // MACRODOWN only works in this function switch(id) { case 0: if (record->event.pressed) { diff --git a/keyboards/gh60/keymaps/sethbc/keymap.c b/keyboards/gh60/keymaps/sethbc/keymap.c index 85a46a29b..141c7f0b0 100644 --- a/keyboards/gh60/keymaps/sethbc/keymap.c +++ b/keyboards/gh60/keymaps/sethbc/keymap.c @@ -6,14 +6,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: qwerty */ - KEYMAP_HHKB( + KC_KEYMAP_HHKB( FN0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS, GRV, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \ LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT,ENT, \ LSFT, Z, X, C, V, B, N, M, COMM,DOT, SLSH,RSFT, FN1, \ LCTL,LALT,LGUI, SPC, RGUI,RALT,APP, RCTL), /* 1: fn */ - KEYMAP_HHKB( + KC_KEYMAP_HHKB( GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,UP,TRNS,TRNS, \ TRNS,VOLD,VOLU,MUTE,TRNS,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RIGHT,PENT, \ -- cgit v1.2.3 From df8724ce08e09b6b077b601da7976639140655d7 Mon Sep 17 00:00:00 2001 From: Seth Chandler Date: Sat, 19 Nov 2016 12:19:21 -0500 Subject: remove KC expansion from GH60 --- keyboards/gh60/gh60.h | 44 ------------------------ keyboards/gh60/keymaps/default/keymap.c | 36 ++++++++++---------- keyboards/gh60/keymaps/robotmaxtron/keymap.c | 50 ++++++++++++++-------------- keyboards/gh60/keymaps/sethbc/keymap.c | 24 ++++++------- 4 files changed, 55 insertions(+), 99 deletions(-) (limited to 'keyboards') diff --git a/keyboards/gh60/gh60.h b/keyboards/gh60/gh60.h index 4f206cc16..66bc2790d 100644 --- a/keyboards/gh60/gh60.h +++ b/keyboards/gh60/gh60.h @@ -42,20 +42,6 @@ inline void gh60_wasd_leds_off(void) { DDRF &= ~(1<<7); PORTF &= ~(1<<7); } { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, K49, K4A, K4B, K4C, K4D } \ } -#define KC_KEYMAP( \ - 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, K2C, K2D, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ - K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \ -) { \ - { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D }, \ - { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D }, \ - { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D }, \ - { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D }, \ - { KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_##K45, KC_NO, KC_NO, KC_NO, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D } \ -} - /* ANSI variant. No extra keys for ISO */ #define KEYMAP_ANSI( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ @@ -71,21 +57,6 @@ inline void gh60_wasd_leds_off(void) { DDRF &= ~(1<<7); PORTF &= ~(1<<7); } { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D } \ } -/* ANSI variant with KC expansion */ -#define KC_KEYMAP_ANSI( \ - 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, K2D, \ - K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ - K40, K41, K42, K45, K4A, K4B, K4C, K4D \ -) { \ - { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D }, \ - { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D }, \ - { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_NO, KC_##K2D }, \ - { KC_##K30, KC_NO, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_NO, KC_##K3D }, \ - { KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_##K45, KC_NO, KC_NO, KC_NO, KC_NO, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D } \ -} - /* HHKB Variant */ #define KEYMAP_HHKB( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49,\ @@ -101,19 +72,4 @@ inline void gh60_wasd_leds_off(void) { DDRF &= ~(1<<7); PORTF &= ~(1<<7); } { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, K49, K4A, K4B, K4C, K4D } \ } -/* HHKB Variant with KC expansion */ -#define KC_KEYMAP_HHKB( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49,\ - 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, K2D, \ - K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3C, \ - K40, K41, K42, K45, K4A, K4B, K4C, K4D \ -) { \ - { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D }, \ - { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D }, \ - { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_NO, KC_##K2D }, \ - { KC_##K30, KC_NO, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D }, \ - { KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_##K45, KC_NO, KC_NO, KC_NO, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D } \ -} - #endif diff --git a/keyboards/gh60/keymaps/default/keymap.c b/keyboards/gh60/keymaps/default/keymap.c index 5c88b2ecf..92f545984 100644 --- a/keyboards/gh60/keymaps/default/keymap.c +++ b/keyboards/gh60/keymaps/default/keymap.c @@ -3,26 +3,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: qwerty */ - KC_KEYMAP( - ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, GRV, \ - TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \ - CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT,NO, ENT, \ - LSFT,FN1, Z, X, C, V, B, N, M, COMM,DOT, SLSH,FN0, RSFT, \ - LCTL,LGUI,LALT, SPC, BSLS,RALT,RGUI,APP, RCTL), + KEYMAP( + KC_ESC,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_GRV,\ + 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_BSPC,\ + 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_NO,KC_ENT,\ + KC_LSFT,F(1),KC_Z,KC_X,KC_C,KC_V,KC_B,KC_N,KC_M,KC_COMM,KC_DOT,KC_SLSH,F(0),KC_RSFT,\ + KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_BSLS,KC_RALT,KC_RGUI,KC_APP,KC_RCTL), /* 1: fn */ - KC_KEYMAP( - ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ - TRNS,TRNS,UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS), + KEYMAP( + KC_ESC,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_TRNS,\ + KC_TRNS,KC_TRNS,KC_UP,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,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,\ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,\ + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS), /* 2: arrows */ - KC_KEYMAP( - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,UP, \ - TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,LEFT,DOWN,RGHT), + KEYMAP( + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,\ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,\ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,\ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_UP,\ + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT), }; const uint16_t PROGMEM fn_actions[] = { diff --git a/keyboards/gh60/keymaps/robotmaxtron/keymap.c b/keyboards/gh60/keymaps/robotmaxtron/keymap.c index d53589e81..9acac7cec 100644 --- a/keyboards/gh60/keymaps/robotmaxtron/keymap.c +++ b/keyboards/gh60/keymaps/robotmaxtron/keymap.c @@ -10,7 +10,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * Base layer, pretty standard ANSI layout. * ,-----------------------------------------------------------. - * |FN12| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | + * |F(12)| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | * |-----------------------------------------------------------| * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| * |-----------------------------------------------------------| @@ -21,12 +21,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Ctrl|Gui |Alt | Space |Alt |Fn |Menu|Ctrl| * `-----------------------------------------------------------' */ - [_BL] = KC_KEYMAP( - FN12,1,2,3,4,5,6,7,8,9,0,MINS,EQL,BSPC, \ - TAB,Q,W,E,R,T,Y,U,I,O,P,LBRC,RBRC,BSLS, \ - FN2,A,S,D,F,G,H,J,K,L,SCLN,QUOT,NO,ENT, \ - LSFT,NO,Z,X,C,V,B,N,M,COMM,DOT,SLSH,NO,RSFT, \ - LCTL,LGUI,LALT, SPC, NO,RALT,FN0,APP, RCTL), + [_BL] = KEYMAP( + F(12),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, \ + F(2),KC_A,KC_S,KC_D,KC_F,KC_G,KC_H,KC_J,KC_K,KC_L,KC_SCLN,KC_QUOT,KC_NO,KC_ENT, \ + KC_LSFT,KC_NO,KC_Z,KC_X,KC_C,KC_V,KC_B,KC_N,KC_M,KC_COMM,KC_DOT,KC_SLSH,KC_NO,KC_RSFT, \ + KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_NO,KC_RALT,F(0),KC_APP,KC_RCTL), /* * Locking arrow keys to WASD for when you need dedicated arrow keys @@ -42,12 +42,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | * `-----------------------------------------------------------' */ - [_AL] = KC_KEYMAP( - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,UP,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS), + [_AL] = KEYMAP( + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ + KC_TRNS,KC_TRNS,KC_UP,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,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, \ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS), /* @@ -64,12 +64,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | * `-------------------------------------------------------------' */ - [_FL] = KC_KEYMAP( - GRAVE,F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12, DELETE, \ - TRNS,FN1,TRNS,TRNS,TRNS,TRNS,CALC,PGUP,UP,PGDN,PSCR,SLCK,PAUS,TRNS, \ - TRNS,MUTE,_VOLDOWN,_VOLUP,TRNS,TRNS,HOME,LEFT,DOWN,RGHT,INS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,FN3,TRNS,TRNS,TRNS,TRNS,END,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS), + [_FL] = KEYMAP( + KC_GRAVE,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_DELETE, \ + KC_TRNS,F(1),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_CALC,KC_PGUP,KC_UP,KC_PGDN,KC_PSCR,KC_SLCK,KC_PAUS,KC_TRNS, \ + KC_TRNS,KC_MUTE,KC__VOLDOWN,KC__VOLUP,KC_TRNS,KC_TRNS,KC_HOME,KC_LEFT,KC_DOWN,KC_RGHT,KC_INS,KC_TRNS,KC_TRNS,KC_TRNS, \ + KC_TRNS,KC_TRNS,F(3),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_END,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS), /* * Locking layer for controlling the underglow. @@ -86,12 +86,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | * `-----------------------------------------------------------' */ - [_UL] = KC_KEYMAP( - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,FN4,FN5,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,FN6,FN7,FN8,FN9,FN10,FN11,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS), + [_UL] = KEYMAP( + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ + KC_TRNS,F(4),F(5),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ + KC_TRNS,KC_TRNS,KC_TRNS,F(6),F(7),F(8),F(9),F(10),F(11),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS), }; enum function_id { diff --git a/keyboards/gh60/keymaps/sethbc/keymap.c b/keyboards/gh60/keymaps/sethbc/keymap.c index 141c7f0b0..599e664e2 100644 --- a/keyboards/gh60/keymaps/sethbc/keymap.c +++ b/keyboards/gh60/keymaps/sethbc/keymap.c @@ -6,19 +6,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: qwerty */ - KC_KEYMAP_HHKB( - FN0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS, GRV, \ - TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \ - LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT,ENT, \ - LSFT, Z, X, C, V, B, N, M, COMM,DOT, SLSH,RSFT, FN1, \ - LCTL,LALT,LGUI, SPC, RGUI,RALT,APP, RCTL), + KEYMAP_HHKB( + F(0),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_BSLS,KC_GRV,\ + 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_BSPC,\ + KC_LCTL,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,F(1),\ + KC_LCTL,KC_LALT,KC_LGUI, KC_SPC, KC_RGUI,KC_RALT,KC_APP,KC_RCTL), /* 1: fn */ - KC_KEYMAP_HHKB( - GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ - CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,UP,TRNS,TRNS, \ - TRNS,VOLD,VOLU,MUTE,TRNS,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RIGHT,PENT, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END,PGDN,DOWN,TRNS,TRNS, \ - TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), + KEYMAP_HHKB( + KC_GRV,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_TRNS,KC_TRNS,\ + KC_CAPS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_UP,KC_TRNS,KC_TRNS,\ + KC_TRNS,KC_VOLD,KC_VOLU,KC_MUTE,KC_TRNS,KC_TRNS,KC_PAST,KC_PSLS,KC_HOME,KC_PGUP,KC_LEFT,KC_RIGHT,KC_PENT,\ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PPLS,KC_PMNS,KC_END,KC_PGDN,KC_DOWN,KC_TRNS,KC_TRNS,\ + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS), }; enum function_id { -- cgit v1.2.3 From c86bbf474e7709749dfd5e09fa5defd5e6baaaa3 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 20 Nov 2016 19:28:10 +0200 Subject: Always initialze the Infinity Ergodox backlight Otherwise it will stay lit. The set_led functionality is also disabled since it doesn't work properly for slaves. --- keyboards/ergodox/infinity/infinity.c | 6 ++++-- keyboards/ergodox/infinity/led.c | 25 +------------------------ 2 files changed, 5 insertions(+), 26 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/infinity/infinity.c b/keyboards/ergodox/infinity/infinity.c index c5793385f..02db67eaf 100644 --- a/keyboards/ergodox/infinity/infinity.c +++ b/keyboards/ergodox/infinity/infinity.c @@ -38,7 +38,6 @@ void init_serial_link_hal(void) { // Using a higher pre-scalar without flicker is possible but FTM0_MOD will need to be reduced // Which will reduce the brightness range #define PRESCALAR_DEFINE 0 -#ifdef VISUALIZER_ENABLE void lcd_backlight_hal_init(void) { // Setup Backlight SIM->SCGC6 |= SIM_SCGC6_FTM0; @@ -76,7 +75,6 @@ void lcd_backlight_hal_color(uint16_t r, uint16_t g, uint16_t b) { CHANNEL_GREEN.CnV = g; CHANNEL_BLUE.CnV = b; } -#endif __attribute__ ((weak)) void matrix_init_user(void) { @@ -92,6 +90,10 @@ void matrix_init_kb(void) { // runs once when the firmware starts up matrix_init_user(); + // The backlight always has to be initialized, otherwise it will stay lit +#ifndef VISUALIZER_ENABLE + lcd_backlight_hal_init(); +#endif } void matrix_scan_kb(void) { diff --git a/keyboards/ergodox/infinity/led.c b/keyboards/ergodox/infinity/led.c index 77195bb35..8175c1c5c 100644 --- a/keyboards/ergodox/infinity/led.c +++ b/keyboards/ergodox/infinity/led.c @@ -21,29 +21,6 @@ along with this program. If not, see . void led_set(uint8_t usb_led) { -// The LCD backlight functionality conflicts with this simple -// red backlight -#if !defined(LCD_BACKLIGHT_ENABLE) && defined(STATUS_LED_ENABLE) - // PTC1: LCD Backlight Red(0:on/1:off) - GPIOC->PDDR |= (1<<1); - PORTC->PCR[1] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1); - if (usb_led & (1<PCOR |= (1<<1); - } else { - GPIOC->PSOR |= (1<<1); - } -#elif !defined(LCD_BACKLIGHT_ENABLE) + //TODO: Add led emulation if there's no customized visualization (void)usb_led; - GPIOC->PDDR |= (1<<1); - PORTC->PCR[1] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1); - GPIOC->PSOR |= (1<<1); - GPIOC->PDDR |= (1<<2); - PORTC->PCR[2] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1); - GPIOC->PSOR |= (1<<2); - GPIOC->PDDR |= (1<<3); - PORTC->PCR[3] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1); - GPIOC->PSOR |= (1<<3); -#else - (void)usb_led; -#endif } -- cgit v1.2.3 From a8b1c47f0f6e63dc1260159b7b8b2172a3b57ff4 Mon Sep 17 00:00:00 2001 From: Sihui Huang Date: Sun, 20 Nov 2016 11:10:26 -0800 Subject: add sh-hhkb-jp layers --- keyboards/hhkb/keymaps/sh_jp/Makefile | 1 + keyboards/hhkb/keymaps/sh_jp/README.md | 84 ++++++++++++++++++++++++++++++++++ keyboards/hhkb/keymaps/sh_jp/keymap.c | 60 ++++++++++++++++++++++++ 3 files changed, 145 insertions(+) create mode 100644 keyboards/hhkb/keymaps/sh_jp/Makefile create mode 100644 keyboards/hhkb/keymaps/sh_jp/README.md create mode 100644 keyboards/hhkb/keymaps/sh_jp/keymap.c (limited to 'keyboards') diff --git a/keyboards/hhkb/keymaps/sh_jp/Makefile b/keyboards/hhkb/keymaps/sh_jp/Makefile new file mode 100644 index 000000000..a7f700f01 --- /dev/null +++ b/keyboards/hhkb/keymaps/sh_jp/Makefile @@ -0,0 +1 @@ +OPT_DEFS += -DHHKB_JP diff --git a/keyboards/hhkb/keymaps/sh_jp/README.md b/keyboards/hhkb/keymaps/sh_jp/README.md new file mode 100644 index 000000000..7be38a415 --- /dev/null +++ b/keyboards/hhkb/keymaps/sh_jp/README.md @@ -0,0 +1,84 @@ +Keymaps for both Dvorak layout and QWER layout for HHKB JP. +1. The default layout is Dvorak. +2. Use `Tog` to toggle between Dvorak and QWER +3. Holding `NewCmd`, the original `LftCmd`, will activate the `NewCmd` layer which means `NewCmd+key` is the same as `Cmd+key` in normal QWER layout.[1](#cmdTab) + - For example, no matter you are in Dvorak layout or QWER layout, you can use `Cmd+s` to save a currently editing file. +4. `Symb` makes type symbols easier: for example: `Symb+a` is `!`. +5. `Spc+key` equals to `Shft+key` while using `Spc` alone will yield a space as usual. +6. There's an extra `Tab` in the last line. + +``` +Layer QWER: +,-----------------------------------------------------------. +|Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| |Bsp| +|-----------------------------------------------------------| +|Tab | '| ,| .| P| Y| F| G| C| R| L| /| =| | +|------------------------------------------------------` Ent| +|Ctrl | A| O| E| U| I| D| H| T| N| S| -| \| | +|-----------------------------------------------------------| +|Shft | ;| Q| J| K| X| B| M| W| V| Z| | Up| | +|-----------------------------------------------------------| +|FN| `| Alt|NewCmd|Symb| Spc |Symb|Tab|RCmd|Tog|Lft|Dwn|Rgh| +`-----------------------------------------------------------' +``` + +``` +Layer QWER: +,-----------------------------------------------------------. +|Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| -| =| |Bsp| +|-----------------------------------------------------------| +|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | +|------------------------------------------------------` Ent| +|Ctrl | A| S| D| F| G| H| J| K| L| ;| '| \| | +|-----------------------------------------------------------| +|Shft | Z| X| C| V| B| N| M| ,| .| /| | Up| | +|-----------------------------------------------------------| +|FN| `| Alt|NewCmd|Symb| Spc |Symb|Tab|Cmd|Tog|Lft|Dwn|Rgh| +`-----------------------------------------------------------' +``` + +``` +Layer Symb: +,-----------------------------------------------------------. +| | | | | | | | | | | | | | | | +|-----------------------------------------------------------| +| | | | [| ]| | | {| }| | | | | | +|------------------------------------------------------` | +| | !| @| #| $| %| ^| &| *| (| )| '| \| | +|-----------------------------------------------------------| +| | | | | | | | | | | | | | | +|-----------------------------------------------------------| +| | | | | | | | | | | | | | +`-----------------------------------------------------------' +``` + +``` +Layer FUNC: HHKB mode (HHKB Fn) +,-----------------------------------------------------------. +|Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| +|-----------------------------------------------------------| +|Caps | | | | | | | |Psc|Slk|Pus|Up | | | +|------------------------------------------------------` | +| |VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig| | | +|-----------------------------------------------------------| +| | | | | | | +| -|End|PgD|Dow| | | | +|-----------------------------------------------------------| +| || | | | | | | | | || | | | +`-----------------------------------------------------------' +``` + +``` +Empty Layer: +,-----------------------------------------------------------. +| | | | | | | | | | | | | | | | +|-----------------------------------------------------------| +| | | | | | | | | | | | | | | +|------------------------------------------------------` | +| | | | | | | | | | | | | | | +|-----------------------------------------------------------| +| | | | | | | | | | | | | | | +|-----------------------------------------------------------| +| | | | | | | | | | | | | | +`-----------------------------------------------------------' +``` +1: `NewCmd + Tab` does not work, you can use `RCmd+Tab` to switch among applications. diff --git a/keyboards/hhkb/keymaps/sh_jp/keymap.c b/keyboards/hhkb/keymaps/sh_jp/keymap.c new file mode 100644 index 000000000..16181acd3 --- /dev/null +++ b/keyboards/hhkb/keymaps/sh_jp/keymap.c @@ -0,0 +1,60 @@ +#include "hhkb.h" + +#define _______ KC_TRNS + +enum { + DVOR, + QWER, + NEW_CMD, + SYMB, + FUNC +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [DVOR] = KEYMAP_JP( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_JYEN, KC_BSPC, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, + KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_BSLS, KC_ENT, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RO, KC_UP, KC_RSFT, + MO(FUNC), KC_ZKHK, KC_LALT, MO(NEW_CMD), MO(SYMB), MT(MOD_LSFT, KC_SPC), MO(SYMB), KC_TAB, KC_RGUI, TG(QWER), KC_LEFT, KC_DOWN, KC_RGHT + ), + [QWER] = KEYMAP_JP( + KC_ESC, 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_JYEN, 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, 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_RO, KC_UP, KC_RSFT, + MO(FUNC), KC_ZKHK, KC_LALT, MO(NEW_CMD), MO(SYMB), MT(MOD_LSFT, KC_SPC), MO(SYMB), KC_TAB, KC_RGUI, _______, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [NEW_CMD] = KEYMAP_JP( + _______, LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5), LGUI(KC_6), LGUI(KC_7), LGUI(KC_8), LGUI(KC_9), LGUI(KC_0), _______, _______, _______, _______, + _______, LGUI(KC_Q), LGUI(KC_W), LGUI(KC_E), LGUI(KC_R), LGUI(KC_T), LGUI(KC_Y), LGUI(KC_U), LGUI(KC_I), LGUI(KC_O), LGUI(KC_P), LGUI(KC_LBRC), LGUI(KC_RBRC), + _______, LGUI(KC_A), LGUI(KC_S), LGUI(KC_D), LGUI(KC_F), LGUI(KC_G), LGUI(KC_H), LGUI(KC_J), LGUI(KC_K), LGUI(KC_L), _______, _______, _______, _______, + LGUI(KC_LSFT), LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LGUI(KC_B), LGUI(KC_N), LGUI(KC_M), LGUI(KC_COMM), LGUI(KC_DOT), LGUI(KC_SLSH), _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_LEFT), LGUI(KC_DOWN), LGUI(KC_RGHT) + ), + + [SYMB] = KEYMAP_JP( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______, LSFT(KC_LBRC), LSFT(KC_RBRC), _______, _______,_______, _______, + _______, LSFT(KC_1),LSFT(KC_2),LSFT(KC_3),LSFT(KC_4), LSFT(KC_5), LSFT(KC_6), LSFT(KC_7), LSFT(KC_8), LSFT(KC_9), LSFT(KC_0), _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [FUNC] = KEYMAP_JP( + KC_PWR, 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_INS, KC_DEL, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PWR, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, KC_PENT, + _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, + _______, _______, _______, _______, _______, _______ , _______, _______, _______, _______, _______, _______, _______ + ) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t macro_id, uint8_t opt) { + return MACRO_NONE; +} + +const uint16_t PROGMEM fn_actions[] = { + +}; -- cgit v1.2.3 From 11f17e3b233dbbf7c39e5e0042cc5fdff3acba55 Mon Sep 17 00:00:00 2001 From: Sihui Huang Date: Sun, 20 Nov 2016 11:12:48 -0800 Subject: Update README.md --- keyboards/hhkb/keymaps/sh_jp/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/hhkb/keymaps/sh_jp/README.md b/keyboards/hhkb/keymaps/sh_jp/README.md index 7be38a415..6c6ab1bc6 100644 --- a/keyboards/hhkb/keymaps/sh_jp/README.md +++ b/keyboards/hhkb/keymaps/sh_jp/README.md @@ -1,4 +1,5 @@ -Keymaps for both Dvorak layout and QWER layout for HHKB JP. +###Keymaps with both Dvorak layout and QWER layout for HHKB JP. + 1. The default layout is Dvorak. 2. Use `Tog` to toggle between Dvorak and QWER 3. Holding `NewCmd`, the original `LftCmd`, will activate the `NewCmd` layer which means `NewCmd+key` is the same as `Cmd+key` in normal QWER layout.[1](#cmdTab) -- cgit v1.2.3 From 34aa59c6d514cb30ca3582200cadd1da4786c50c Mon Sep 17 00:00:00 2001 From: Sihui Huang Date: Sun, 20 Nov 2016 11:13:57 -0800 Subject: Update README.md --- keyboards/hhkb/keymaps/sh_jp/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/hhkb/keymaps/sh_jp/README.md b/keyboards/hhkb/keymaps/sh_jp/README.md index 6c6ab1bc6..65e781cf3 100644 --- a/keyboards/hhkb/keymaps/sh_jp/README.md +++ b/keyboards/hhkb/keymaps/sh_jp/README.md @@ -4,7 +4,8 @@ 2. Use `Tog` to toggle between Dvorak and QWER 3. Holding `NewCmd`, the original `LftCmd`, will activate the `NewCmd` layer which means `NewCmd+key` is the same as `Cmd+key` in normal QWER layout.[1](#cmdTab) - For example, no matter you are in Dvorak layout or QWER layout, you can use `Cmd+s` to save a currently editing file. -4. `Symb` makes type symbols easier: for example: `Symb+a` is `!`. +4. `Symb` makes type symbols easier + - for example: `Symb+a` is `!`. 5. `Spc+key` equals to `Shft+key` while using `Spc` alone will yield a space as usual. 6. There's an extra `Tab` in the last line. -- cgit v1.2.3 From 23f63ed1b9487271f8156ecf191ab7d82d595e81 Mon Sep 17 00:00:00 2001 From: Sihui Huang Date: Sun, 20 Nov 2016 11:18:08 -0800 Subject: Update README.md --- keyboards/hhkb/keymaps/sh_jp/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/hhkb/keymaps/sh_jp/README.md b/keyboards/hhkb/keymaps/sh_jp/README.md index 65e781cf3..37fa43e66 100644 --- a/keyboards/hhkb/keymaps/sh_jp/README.md +++ b/keyboards/hhkb/keymaps/sh_jp/README.md @@ -10,7 +10,7 @@ 6. There's an extra `Tab` in the last line. ``` -Layer QWER: +Layer DVOR: ,-----------------------------------------------------------. |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| |Bsp| |-----------------------------------------------------------| -- cgit v1.2.3 From 6f24344be78985be5eb2f6e75f1dee546f539646 Mon Sep 17 00:00:00 2001 From: Didier Chagniot Date: Sun, 20 Nov 2016 20:51:05 +0100 Subject: typo fix --- keyboards/ergodox/keymaps/dvorak_emacs/keymap.c | 2 +- keyboards/ergodox/keymaps/dvorak_emacs/readme.md | 36 ++++++++++++------------ 2 files changed, 19 insertions(+), 19 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/dvorak_emacs/keymap.c b/keyboards/ergodox/keymaps/dvorak_emacs/keymap.c index 4cb11a56f..d33c6e527 100755 --- a/keyboards/ergodox/keymaps/dvorak_emacs/keymap.c +++ b/keyboards/ergodox/keymaps/dvorak_emacs/keymap.c @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Base layer * Keys with double values (like Esc/Ctrl) correspond to the 'tapped' key and the 'held' key, respectively * - * ,--------------------------------------------------. ,--------------------------------------------------. + * ,--------------------------------------------------. ,--------------------------------------------------. * | | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | = / + | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | ~ |" / ' |, / < |. / > | P | Y | [ | | ] | F | G | C | H | L | / / ? | diff --git a/keyboards/ergodox/keymaps/dvorak_emacs/readme.md b/keyboards/ergodox/keymaps/dvorak_emacs/readme.md index 0578f1e25..a3fc34afe 100644 --- a/keyboards/ergodox/keymaps/dvorak_emacs/readme.md +++ b/keyboards/ergodox/keymaps/dvorak_emacs/readme.md @@ -1,6 +1,6 @@ # Ergodox Dvorak Layout with emacs binding in mind * Control & Alt key on the thumbs (activated if pressed with another key). - * In the same way, "I" and "R" are the shift modifier if pressed with another key. + * In the same way, "U" and "R" are the shift modifier if pressed with another key. * "I" and "D" set the layer 1 for the auxiliary keys if pressed with another key. * Software layout set to english. @@ -15,23 +15,23 @@ Keys with double values (like U/LSft) correspond to the 'tapped' key and the 'he

 
 ,--------------------------------------------------.           ,--------------------------------------------------.
- |        |   1  |   2  |   3  |   4  |   5  |  Esc |           |  Esc |   6  |   7  |   8  |   9  |   0  |   =    |
- |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
- |   ~    |  '   |   ,  |   .  |   P  |   Y  |   [  |           |   ]  |   F  |   G  |   C  |   H  |   L  |   /    |
- |--------+------+------+------+------+------|   {  |           |   }  |------+------+------+------+------+--------|
- |  Tab   |   A  |   O  |   E  |U/LSft| I/L1 |------|           |------|  D/L1|R/RSft|   T  |   N  |   S  |   -    |
- |--------+------+------+------+------+------| LGUI |           | LGUI |------+------+------+------+------+--------|
- | {/LSft |   ;  |   Q  |   J  |   K  |   X  |      |           |      |   B  |   M  |   W  |   V  |   Z  | }/RSft |
- `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
-   |      |      |      |      | ~L1  |                                       | ~L1  |      |      |   \  |        |
-   `----------------------------------'                                       `----------------------------------'
-                                        ,-------------.       ,-------------.
-                                        | HOME |  END |       | LEFT | RIGHT|
-                                 ,------|------|------|       |------+--------+------.
-                                 | BSPC |  DEL | PGUP |       |  UP  | SPACE  |RETURN|
-                                 |  /   |  /   |------|       |------|   /    |  /   |
-                                 | LCTL | LALT |PGDWN |       | DOWN | LALT   | LCTL |
-                                 `--------------------'       `----------------------'
+|        |   1  |   2  |   3  |   4  |   5  |  Esc |           |  Esc |   6  |   7  |   8  |   9  |   0  |   =    |
+|--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+|   ~    |  '   |   ,  |   .  |   P  |   Y  |   [  |           |   ]  |   F  |   G  |   C  |   H  |   L  |   /    |
+|--------+------+------+------+------+------|   {  |           |   }  |------+------+------+------+------+--------|
+|  Tab   |   A  |   O  |   E  |U/LSft| I/L1 |------|           |------|  D/L1|R/RSft|   T  |   N  |   S  |   -    |
+|--------+------+------+------+------+------| LGUI |           | LGUI |------+------+------+------+------+--------|
+| {/LSft |   ;  |   Q  |   J  |   K  |   X  |      |           |      |   B  |   M  |   W  |   V  |   Z  | }/RSft |
+`--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+  |      |      |      |      | ~L1  |                                       | ~L1  |      |      |   \  |      |
+  `----------------------------------'                                       `----------------------------------'
+                                       ,-------------.       ,-------------.
+                                       | HOME |  END |       | LEFT | RIGHT|
+                                ,------|------|------|       |------+--------+------.
+                                | BSPC |  DEL | PGUP |       |  UP  | SPACE  |RETURN|
+                                |  /   |  /   |------|       |------|   /    |  /   |
+                                | LCTL | LALT |PGDWN |       | DOWN | LALT   | LCTL |
+                                `--------------------'       `----------------------'
 
 
-- cgit v1.2.3 From ccc34851f2e12d990a6d51742fc7e85e8011a94d Mon Sep 17 00:00:00 2001 From: Sihui Huang Date: Sun, 20 Nov 2016 13:31:41 -0800 Subject: add space to NewCmd layer --- keyboards/hhkb/keymaps/sh_jp/README.md | 2 +- keyboards/hhkb/keymaps/sh_jp/keymap.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/hhkb/keymaps/sh_jp/README.md b/keyboards/hhkb/keymaps/sh_jp/README.md index 65e781cf3..84557a5c0 100644 --- a/keyboards/hhkb/keymaps/sh_jp/README.md +++ b/keyboards/hhkb/keymaps/sh_jp/README.md @@ -8,7 +8,7 @@ - for example: `Symb+a` is `!`. 5. `Spc+key` equals to `Shft+key` while using `Spc` alone will yield a space as usual. 6. There's an extra `Tab` in the last line. - + ``` Layer QWER: ,-----------------------------------------------------------. diff --git a/keyboards/hhkb/keymaps/sh_jp/keymap.c b/keyboards/hhkb/keymaps/sh_jp/keymap.c index 16181acd3..c2bdd37bc 100644 --- a/keyboards/hhkb/keymaps/sh_jp/keymap.c +++ b/keyboards/hhkb/keymaps/sh_jp/keymap.c @@ -31,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, LGUI(KC_Q), LGUI(KC_W), LGUI(KC_E), LGUI(KC_R), LGUI(KC_T), LGUI(KC_Y), LGUI(KC_U), LGUI(KC_I), LGUI(KC_O), LGUI(KC_P), LGUI(KC_LBRC), LGUI(KC_RBRC), _______, LGUI(KC_A), LGUI(KC_S), LGUI(KC_D), LGUI(KC_F), LGUI(KC_G), LGUI(KC_H), LGUI(KC_J), LGUI(KC_K), LGUI(KC_L), _______, _______, _______, _______, LGUI(KC_LSFT), LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LGUI(KC_B), LGUI(KC_N), LGUI(KC_M), LGUI(KC_COMM), LGUI(KC_DOT), LGUI(KC_SLSH), _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_LEFT), LGUI(KC_DOWN), LGUI(KC_RGHT) + _______, _______, _______, _______, _______, LGUI(KC_SPC), _______, _______, _______, _______, LGUI(KC_LEFT), LGUI(KC_DOWN), LGUI(KC_RGHT) ), [SYMB] = KEYMAP_JP( -- cgit v1.2.3 From b75538c0bfca03f7b493b7b7dbaf9dc5e7631e53 Mon Sep 17 00:00:00 2001 From: Sihui Huang Date: Sun, 20 Nov 2016 14:45:51 -0800 Subject: add del to new cmd --- keyboards/hhkb/keymaps/sh_jp/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/hhkb/keymaps/sh_jp/keymap.c b/keyboards/hhkb/keymaps/sh_jp/keymap.c index c2bdd37bc..d4cb3b041 100644 --- a/keyboards/hhkb/keymaps/sh_jp/keymap.c +++ b/keyboards/hhkb/keymaps/sh_jp/keymap.c @@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [NEW_CMD] = KEYMAP_JP( - _______, LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5), LGUI(KC_6), LGUI(KC_7), LGUI(KC_8), LGUI(KC_9), LGUI(KC_0), _______, _______, _______, _______, + _______, LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5), LGUI(KC_6), LGUI(KC_7), LGUI(KC_8), LGUI(KC_9), LGUI(KC_0), _______, _______, _______, LGUI(KC_BSPC), _______, LGUI(KC_Q), LGUI(KC_W), LGUI(KC_E), LGUI(KC_R), LGUI(KC_T), LGUI(KC_Y), LGUI(KC_U), LGUI(KC_I), LGUI(KC_O), LGUI(KC_P), LGUI(KC_LBRC), LGUI(KC_RBRC), _______, LGUI(KC_A), LGUI(KC_S), LGUI(KC_D), LGUI(KC_F), LGUI(KC_G), LGUI(KC_H), LGUI(KC_J), LGUI(KC_K), LGUI(KC_L), _______, _______, _______, _______, LGUI(KC_LSFT), LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LGUI(KC_B), LGUI(KC_N), LGUI(KC_M), LGUI(KC_COMM), LGUI(KC_DOT), LGUI(KC_SLSH), _______, _______, _______, -- cgit v1.2.3 From c1037b1dc060d14a09a59f697fefe2b5b91bf373 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 21 Nov 2016 18:05:06 -0500 Subject: working with helper, qmk_helper_windows@05b0105 --- keyboards/planck/keymaps/default/Makefile | 8 ++++---- keyboards/planck/keymaps/default/keymap.c | 4 ++-- tmk_core/protocol/lufa/lufa.c | 6 ++++++ 3 files changed, 12 insertions(+), 6 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/default/Makefile b/keyboards/planck/keymaps/default/Makefile index 0f4953888..267a087ea 100644 --- a/keyboards/planck/keymaps/default/Makefile +++ b/keyboards/planck/keymaps/default/Makefile @@ -5,17 +5,17 @@ # the appropriate keymap folder that will get included automatically # BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration +COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls +MIDI_ENABLE = yes # MIDI controls AUDIO_ENABLE = yes # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/planck/keymaps/default/keymap.c b/keyboards/planck/keymaps/default/keymap.c index 5f71ae7d1..ddbe4d7b2 100644 --- a/keyboards/planck/keymaps/default/keymap.c +++ b/keyboards/planck/keymaps/default/keymap.c @@ -107,7 +107,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LOWER] = { {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, @@ -125,7 +125,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_RAISE] = { {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index cc00b3b89..35739e321 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c @@ -1207,6 +1207,12 @@ void sysex_buffer_callback(MidiDevice * device, uint8_t length, uint8_t * data) data++; switch (*data++) { + case 0x07: ; // Quantum action + break; + case 0x08: ; // Keyboard acion + break; + case 0x09: ; // User action + break; case 0x12: ; // Set info on keyboard switch (*data++) { case 0x02: ; // set default layer -- cgit v1.2.3 From 06a2677b7eedbf58532fa1a673ba1277e756174d Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 21 Nov 2016 20:17:32 -0500 Subject: fix infinity --- keyboards/ergodox/config.h | 2 -- keyboards/ergodox/ez/config.h | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/config.h b/keyboards/ergodox/config.h index 049c707a5..edc60caae 100644 --- a/keyboards/ergodox/config.h +++ b/keyboards/ergodox/config.h @@ -1,8 +1,6 @@ #ifndef KEYBOARDS_ERGODOX_CONFIG_H_ #define KEYBOARDS_ERGODOX_CONFIG_H_ -#include "config_common.h" - #define MOUSEKEY_DELAY 100 #define MOUSEKEY_INTERVAL 20 #define MOUSEKEY_MAX_SPEED 3 diff --git a/keyboards/ergodox/ez/config.h b/keyboards/ergodox/ez/config.h index 084a044ee..67a856e51 100644 --- a/keyboards/ergodox/ez/config.h +++ b/keyboards/ergodox/ez/config.h @@ -21,6 +21,8 @@ along with this program. If not, see . #include "../config.h" +#include "config_common.h" + /* USB Device descriptor parameter */ #define VENDOR_ID 0xFEED #define PRODUCT_ID 0x1307 -- cgit v1.2.3 From cefa8468fb5f28bd67a0c02d371a4aef0964e20c Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 23 Nov 2016 20:16:38 -0500 Subject: travis pls --- keyboards/ergodox/infinity/rules.mk | 2 ++ keyboards/ergodox/keymaps/jack/Makefile | 4 +-- quantum/quantum.c | 9 ++++-- quantum/quantum.h | 2 ++ tmk_core/protocol/lufa/lufa.c | 49 ++------------------------------- tmk_core/protocol/lufa/lufa.h | 42 +++++++++++++++++++++++++++- 6 files changed, 56 insertions(+), 52 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/infinity/rules.mk b/keyboards/ergodox/infinity/rules.mk index ccb735a48..473a6dfec 100644 --- a/keyboards/ergodox/infinity/rules.mk +++ b/keyboards/ergodox/infinity/rules.mk @@ -63,6 +63,8 @@ VISUALIZER_ENABLE ?= no #temporarily disabled to make everything compile LCD_ENABLE ?= yes LED_ENABLE ?= yes LCD_BACKLIGHT_ENABLE ?= yes +MIDI_ENABLE = no +RGBLIGHT_ENABLE = no ifndef QUANTUM_DIR include ../../../Makefile diff --git a/keyboards/ergodox/keymaps/jack/Makefile b/keyboards/ergodox/keymaps/jack/Makefile index 7c257af50..3ca69bb92 100644 --- a/keyboards/ergodox/keymaps/jack/Makefile +++ b/keyboards/ergodox/keymaps/jack/Makefile @@ -1,5 +1,5 @@ -RGBLIGHT_ENABLE = yes -MIDI_ENABLE = yes +RGBLIGHT_ENABLE ?= yes +MIDI_ENABLE ?= yes ifndef QUANTUM_DIR include ../../../../Makefile diff --git a/quantum/quantum.c b/quantum/quantum.c index f9f1ef22d..8372a7adc 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -847,8 +847,13 @@ void send_nibble(uint8_t number) { } } - - +void send_unicode_midi(uint32_t unicode) { + #ifdef MIDI_ENABLE + uint8_t chunk[4]; + dword_to_bytes(unicode, chunk); + MT_SEND_DATA(DT_UNICODE, chunk, 5); + #endif +} __attribute__ ((weak)) void led_set_user(uint8_t usb_led) { diff --git a/quantum/quantum.h b/quantum/quantum.h index 3d35f11fa..316da15b9 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -119,4 +119,6 @@ void send_nibble(uint8_t number); void led_set_user(uint8_t usb_led); void led_set_kb(uint8_t usb_led); +void send_unicode_midi(uint32_t unicode); + #endif diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index c3234b8ce..eae3e8f29 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c @@ -72,7 +72,7 @@ #include "virtser.h" #endif -#ifdef RGB_MIDI +#if (defined(RGB_MIDI) | defined(RGBLIGHT_ANIMATIONS)) & defined(RGBLIGHT_ENABLE) #include "rgblight.h" #endif @@ -1156,35 +1156,6 @@ uint32_t bytes_to_dword(uint8_t * bytes, uint8_t index) { return ((uint32_t)bytes[index + 0] << 24) | ((uint32_t)bytes[index + 1] << 16) | ((uint32_t)bytes[index + 2] << 8) | (uint32_t)bytes[index + 3]; } -enum MESSAGE_TYPE { - MT_GET_DATA = 0x10, // Get data from keyboard - MT_GET_DATA_ACK = 0x11, // returned data to process (ACK) - MT_SET_DATA = 0x20, // Set data on keyboard - MT_SET_DATA_ACK = 0x21, // returned data to confirm (ACK) - MT_SEND_DATA = 0x30, // Sending data/action from keyboard - MT_SEND_DATA_ACK = 0x31, // returned data/action confirmation (ACK) - MT_EXE_ACTION = 0x40, // executing actions on keyboard - MT_EXE_ACTION_ACK =0x41, // return confirmation/value (ACK) - MT_TYPE_ERROR = 0x80 // type not recofgnised (ACK) -}; - -enum DATA_TYPE { - DT_NONE = 0x00, - DT_HANDSHAKE, - DT_DEFAULT_LAYER, - DT_CURRENT_LAYER, - DT_KEYMAP_OPTIONS, - DT_BACKLIGHT, - DT_RGBLIGHT, - DT_UNICODE, - DT_DEBUG, - DT_AUDIO, - DT_QUANTUM_ACTION, - DT_KEYBOARD_ACTION, - DT_USER_ACTION, - -}; - void send_bytes_sysex(uint8_t message_type, uint8_t data_type, uint8_t * bytes, uint8_t length) { // SEND_STRING("\nTX: "); // for (uint8_t i = 0; i < length; i++) { @@ -1213,15 +1184,6 @@ void send_bytes_sysex(uint8_t message_type, uint8_t data_type, uint8_t * bytes, // } } -#define MT_GET_DATA(data_type, data, length) send_bytes_sysex(MT_GET_DATA, data_type, data, length) -#define MT_GET_DATA_ACK(data_type, data, length) send_bytes_sysex(MT_GET_DATA_ACK, data_type, data, length) -#define MT_SET_DATA(data_type, data, length) send_bytes_sysex(MT_SET_DATA, data_type, data, length) -#define MT_SET_DATA_ACK(data_type, data, length) send_bytes_sysex(MT_SET_DATA_ACK, data_type, data, length) -#define MT_SEND_DATA(data_type, data, length) send_bytes_sysex(MT_SEND_DATA, data_type, data, length) -#define MT_SEND_DATA_ACK(data_type, data, length) send_bytes_sysex(MT_SEND_DATA_ACK, data_type, data, length) -#define MT_EXE_ACTION(data_type, data, length) send_bytes_sysex(MT_EXE_ACTION, data_type, data, length) -#define MT_EXE_ACTION_ACK(data_type, data, length) send_bytes_sysex(MT_EXE_ACTION_ACK, data_type, data, length) - __attribute__ ((weak)) bool sysex_process_quantum(uint8_t length, uint8_t * data) { return sysex_process_keyboard(length, data); @@ -1312,7 +1274,7 @@ void sysex_buffer_callback(MidiDevice * device, uint8_t length, uint8_t * data) dword_to_bytes(eeconfig_read_rgblight(), rgblight_bytes); MT_GET_DATA_ACK(DT_RGBLIGHT, rgblight_bytes, 4); #else - MT_GET_DATA_ACK(DT_RGBLIGHT, NULL, 0) + MT_GET_DATA_ACK(DT_RGBLIGHT, NULL, 0); #endif break; } @@ -1360,11 +1322,4 @@ void sysex_buffer_callback(MidiDevice * device, uint8_t length, uint8_t * data) } -void send_unicode_midi(uint32_t unicode) { - uint8_t chunk[4]; - dword_to_bytes(unicode, chunk); - MT_SEND_DATA(DT_UNICODE, chunk, 5); -} - - #endif diff --git a/tmk_core/protocol/lufa/lufa.h b/tmk_core/protocol/lufa/lufa.h index 99b089f42..0962dda8d 100644 --- a/tmk_core/protocol/lufa/lufa.h +++ b/tmk_core/protocol/lufa/lufa.h @@ -74,8 +74,9 @@ typedef struct { void sysex_callback(MidiDevice * device, uint16_t start, uint8_t length, uint8_t * data); void sysex_buffer_callback(MidiDevice * device, uint8_t length, uint8_t * data); - void send_unicode_midi(uint32_t unicode); void send_bytes_sysex(uint8_t message_type, uint8_t data_type, uint8_t * bytes, uint8_t length); + void dword_to_bytes(uint32_t dword, uint8_t * bytes); + uint32_t bytes_to_dword(uint8_t * bytes, uint8_t index); __attribute__ ((weak)) bool sysex_process_quantum(uint8_t length, uint8_t * data); @@ -86,6 +87,45 @@ typedef struct { __attribute__ ((weak)) bool sysex_process_user(uint8_t length, uint8_t * data); + enum MESSAGE_TYPE { + MT_GET_DATA = 0x10, // Get data from keyboard + MT_GET_DATA_ACK = 0x11, // returned data to process (ACK) + MT_SET_DATA = 0x20, // Set data on keyboard + MT_SET_DATA_ACK = 0x21, // returned data to confirm (ACK) + MT_SEND_DATA = 0x30, // Sending data/action from keyboard + MT_SEND_DATA_ACK = 0x31, // returned data/action confirmation (ACK) + MT_EXE_ACTION = 0x40, // executing actions on keyboard + MT_EXE_ACTION_ACK =0x41, // return confirmation/value (ACK) + MT_TYPE_ERROR = 0x80 // type not recofgnised (ACK) + }; + + enum DATA_TYPE { + DT_NONE = 0x00, + DT_HANDSHAKE, + DT_DEFAULT_LAYER, + DT_CURRENT_LAYER, + DT_KEYMAP_OPTIONS, + DT_BACKLIGHT, + DT_RGBLIGHT, + DT_UNICODE, + DT_DEBUG, + DT_AUDIO, + DT_QUANTUM_ACTION, + DT_KEYBOARD_ACTION, + DT_USER_ACTION, + + }; + + + #define MT_GET_DATA(data_type, data, length) send_bytes_sysex(MT_GET_DATA, data_type, data, length) + #define MT_GET_DATA_ACK(data_type, data, length) send_bytes_sysex(MT_GET_DATA_ACK, data_type, data, length) + #define MT_SET_DATA(data_type, data, length) send_bytes_sysex(MT_SET_DATA, data_type, data, length) + #define MT_SET_DATA_ACK(data_type, data, length) send_bytes_sysex(MT_SET_DATA_ACK, data_type, data, length) + #define MT_SEND_DATA(data_type, data, length) send_bytes_sysex(MT_SEND_DATA, data_type, data, length) + #define MT_SEND_DATA_ACK(data_type, data, length) send_bytes_sysex(MT_SEND_DATA_ACK, data_type, data, length) + #define MT_EXE_ACTION(data_type, data, length) send_bytes_sysex(MT_EXE_ACTION, data_type, data, length) + #define MT_EXE_ACTION_ACK(data_type, data, length) send_bytes_sysex(MT_EXE_ACTION_ACK, data_type, data, length) + #endif // #if LUFA_VERSION_INTEGER < 0x120730 -- cgit v1.2.3 From f25596b8dc2f15f620c07164d871023d9284618c Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 23 Nov 2016 21:28:12 -0500 Subject: rgblight fixes --- keyboards/ergodox/keymaps/erez_experimental/Makefile | 4 ++-- keyboards/ergodox/keymaps/erez_experimental/keymap.c | 8 +++++--- tmk_core/protocol/lufa/lufa.c | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/erez_experimental/Makefile b/keyboards/ergodox/keymaps/erez_experimental/Makefile index dbe89d141..51a0c74c5 100644 --- a/keyboards/ergodox/keymaps/erez_experimental/Makefile +++ b/keyboards/ergodox/keymaps/erez_experimental/Makefile @@ -3,8 +3,8 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend COMMAND_ENABLE = no # Commands for debug and configuration -RGBLIGHT_ENABLE = yes -MIDI_ENABLE = yes +RGBLIGHT_ENABLE ?= yes +MIDI_ENABLE ?= yes ifndef QUANTUM_DIR include ../../../../Makefile diff --git a/keyboards/ergodox/keymaps/erez_experimental/keymap.c b/keyboards/ergodox/keymaps/erez_experimental/keymap.c index 4a23c7ac5..0c0e3c4e3 100644 --- a/keyboards/ergodox/keymaps/erez_experimental/keymap.c +++ b/keyboards/ergodox/keymaps/erez_experimental/keymap.c @@ -164,9 +164,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { // dynamically generate these. case RGB_FF00BB: if (record->event.pressed) { - rgblight_enable(); - rgblight_mode(1); - rgblight_setrgb(0xff,0x00,0xbb); + #ifdef RGBLIGHT_ENABLE + rgblight_enable(); + rgblight_mode(1); + rgblight_setrgb(0xff,0x00,0xbb); + #endif } return false; break; diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index eae3e8f29..aa2e781c8 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c @@ -1055,7 +1055,7 @@ int main(void) // MIDI_Task(); #endif -#ifdef RGBLIGHT_ANIMATIONS +#if defined(RGBLIGHT_ANIMATIONS) & defined(RGBLIGHT_ENABLE) rgblight_task(); #endif -- cgit v1.2.3 From 8ee389c9b6e6757c228534b095e609d5a9501102 Mon Sep 17 00:00:00 2001 From: Priyadi Iman Nurcahyo Date: Sat, 26 Nov 2016 13:11:40 +0700 Subject: My Promethium keyboard firmware --- keyboards/handwired/promethium/Makefile | 3 + keyboards/handwired/promethium/config.h | 164 +++++ .../handwired/promethium/keymaps/priyadi/Makefile | 28 + .../handwired/promethium/keymaps/priyadi/config.h | 17 + .../handwired/promethium/keymaps/priyadi/flash.sh | 3 + .../handwired/promethium/keymaps/priyadi/keymap.c | 725 +++++++++++++++++++++ .../handwired/promethium/keymaps/priyadi/readme.md | 0 keyboards/handwired/promethium/keymaps/readme.md | 22 + keyboards/handwired/promethium/promethium.c | 6 + keyboards/handwired/promethium/promethium.h | 99 +++ keyboards/handwired/promethium/readme.md | 12 + keyboards/handwired/promethium/rgbsps.c | 24 + keyboards/handwired/promethium/rgbsps.h | 4 + keyboards/handwired/promethium/rules.mk | 75 +++ 14 files changed, 1182 insertions(+) create mode 100644 keyboards/handwired/promethium/Makefile create mode 100644 keyboards/handwired/promethium/config.h create mode 100644 keyboards/handwired/promethium/keymaps/priyadi/Makefile create mode 100644 keyboards/handwired/promethium/keymaps/priyadi/config.h create mode 100755 keyboards/handwired/promethium/keymaps/priyadi/flash.sh create mode 100644 keyboards/handwired/promethium/keymaps/priyadi/keymap.c create mode 100644 keyboards/handwired/promethium/keymaps/priyadi/readme.md create mode 100644 keyboards/handwired/promethium/keymaps/readme.md create mode 100644 keyboards/handwired/promethium/promethium.c create mode 100644 keyboards/handwired/promethium/promethium.h create mode 100644 keyboards/handwired/promethium/readme.md create mode 100644 keyboards/handwired/promethium/rgbsps.c create mode 100644 keyboards/handwired/promethium/rgbsps.h create mode 100644 keyboards/handwired/promethium/rules.mk (limited to 'keyboards') diff --git a/keyboards/handwired/promethium/Makefile b/keyboards/handwired/promethium/Makefile new file mode 100644 index 000000000..191c6bb66 --- /dev/null +++ b/keyboards/handwired/promethium/Makefile @@ -0,0 +1,3 @@ +ifndef MAKEFILE_INCLUDED + include ../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/handwired/promethium/config.h b/keyboards/handwired/promethium/config.h new file mode 100644 index 000000000..5a2afe6ab --- /dev/null +++ b/keyboards/handwired/promethium/config.h @@ -0,0 +1,164 @@ +/* +Copyright 2012 Jun Wako + +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 . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6660 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Priyadi +#define PRODUCT Promethium Keyboard +#define DESCRIPTION Promethium Keyboard + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 6 + +/* default pin-out */ +#define MATRIX_COL_PINS { B6, B7, D6, C7, F6, F7 } +#define MATRIX_ROW_PINS { D7, C6, D0, D1, F5, F4, F1, F0 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT) | MOD_BIT(KC_LCTRL) | MOD_BIT(KC_RCTRL)) \ +) + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* PS/2 mouse */ +#ifdef PS2_USE_BUSYWAIT +# define PS2_CLOCK_PORT PORTD +# define PS2_CLOCK_PIN PIND +# define PS2_CLOCK_DDR DDRD +# define PS2_CLOCK_BIT 1 +# define PS2_DATA_PORT PORTD +# define PS2_DATA_PIN PIND +# define PS2_DATA_DDR DDRD +# define PS2_DATA_BIT 2 +#endif + +/* PS/2 mouse interrupt version */ +#ifdef PS2_USE_INT +/* uses INT1 for clock line(ATMega32U4) */ +#define PS2_CLOCK_PORT PORTD +#define PS2_CLOCK_PIN PIND +#define PS2_CLOCK_DDR DDRD +#define PS2_CLOCK_BIT 3 +#define PS2_DATA_PORT PORTD +#define PS2_DATA_PIN PIND +#define PS2_DATA_DDR DDRD +#define PS2_DATA_BIT 2 + +#define PS2_INT_INIT() do { \ + EICRA |= ((1< | ( | ) | ' | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | _ | + | { | } | [ | ] | " | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_PUNC] = KEYMAP( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_GRV , + XXXXXXX, XXXXXXX, KC_BSLS, KC_MINS, KC_EQL, KC_LABK, KC_RABK, KC_LPRN, KC_RPRN, KC_QUOT, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_DQUO, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +/* Num + * ,-----------------------------------------------------------------------------------. + * | ^ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | @ | A | B | C | ( | ) | 4 | 5 | 6 | : |Enter | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | & | # | D | E | F | [ | ] | 1 | 2 | 3 | / | * | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | x | | | 0 | , | . | + | - | + * `-----------------------------------------------------------------------------------' + */ +[_NUM] = KEYMAP( + KC_CIRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_ESC, KC_AT, S(KC_A), S(KC_B), S(KC_C), KC_LPRN, KC_RPRN, KC_4, KC_5, KC_6, KC_COLN, KC_ENT, + KC_AMPR, KC_HASH, S(KC_D), S(KC_E), S(KC_F), KC_LBRC, KC_RBRC, KC_1, KC_2, KC_3, KC_SLSH, KC_ASTR, + _______, _______, _______, KC_X, _______, KC_SPC, KC_SPC, KC_0, KC_COMM, KC_DOT, KC_PLUS, KC_MINS +), + +/* Func + * ,-----------------------------------------------------------------------------------. + * | | F1 | F2 | F3 | F4 | | | PgUp | Up | PgDn | PgUp | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | F5 | F6 | F7 | F8 |PrtSc | | Left | Down | Right| PgDn | Ins | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F9 | F10 | F11 | F12 | | | | Home | End | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_FUNC] = KEYMAP( + XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, KC_PGUP, KC_UP, KC_PGDN, KC_PGUP, KC_DEL, + XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8,KC_PSCREEN,XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_INS, + _______, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_END, XXXXXXX, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +/* Emoji + * ,-----------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_EMOJI] = KEYMAP( + X(HART2), X(CRY2),X(WEARY),X(EYERT),X(SMIRK), X(TJOY),X(RECYC),X(UNAMU),X(MUSIC),X(OKHND),X(PENSV), X(PHEW), + X(THMUP), X(PRAY),X(SMILE),X(SMIL2),X(FLUSH), X(GRIN),X(HEART), X(BYE), X(KISS),X(CELEB), X(COOL),X(NOEVS), + X(THMDN),X(SLEEP), X(CLAP), X(CRY), X(VIC),X(BHART), X(SUN),X(SMEYE), X(WINK), X(MOON),X(CONFU),X(NOEVH), + X(POO), X(EYES),X(HUNRD), _______,X(SKULL),X(HORNS), X(HALO), X(FEAR), _______,X(YUMMY),X(DISAP),X(NOEVK) +), + +/* GUI + * ,-----------------------------------------------------------------------------------. + * | | D1 | D2 | D3 | D4 | D5 | D6 | D7 | D8 | D9 | D10 | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * |Linux | | Vol- | Mute | Vol+ | | | D- | | D+ | |Qwerty| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Win | | Prev | Play | Next | | | | | | |Colmak| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | OSX | | | | | BL- | BL+ | | | | |Workmn| + * `-----------------------------------------------------------------------------------' + */ +[_GUI] = KEYMAP( + _______, LGUI(KC_1),LGUI(KC_2),LGUI(KC_3),LGUI(KC_4),LGUI(KC_5),LGUI(KC_6),LGUI(KC_7),LGUI(KC_8),LGUI(KC_9),LGUI(KC_0), _______, + LINUX, _______, KC_VOLD, KC_MUTE, KC_VOLU,_______,_______,KC_WWW_BACK,_______,KC_WWW_FORWARD,_______, QWERTY, + WIN, _______, KC_MPRV, KC_MPLY, KC_MNXT, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, COLEMAK, + OSX, _______, _______, _______, _______, BL_DEC, BL_INC, _______, _______, RGB_VAI, RGB_VAD, WORKMAN +), + +}; + +#ifdef AUDIO_ENABLE +float tone_startup[][2] = SONG(STARTUP_SOUND); +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float tone_workman[][2] = SONG(DVORAK_SOUND); +float tone_goodbye[][2] = SONG(GOODBYE_SOUND); +float tone_linux[][2] = SONG(CAPS_LOCK_ON_SOUND); +float tone_windows[][2] = SONG(SCROLL_LOCK_ON_SOUND); +float tone_osx[][2] = SONG(NUM_LOCK_ON_SOUND); +float tone_click[][2] = SONG(MUSICAL_NOTE(_F3, 2)); +#endif + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + #ifdef AUDIO_ENABLE + // faux clicky + if (record->event.pressed) PLAY_NOTE_ARRAY(tone_click, false, 0); + #endif + + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistant_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistant_default_layer_set(1UL<<_COLEMAK); + } + return false; + break; + case WORKMAN: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_workman, false, 0); + #endif + persistant_default_layer_set(1UL<<_WORKMAN); + } + return false; + break; + + + + case PUNC: + if (record->event.pressed) { + layer_on(_PUNC); + update_tri_layer(_PUNC, _EMOJI, _GUI); + if (IS_LAYER_ON(_GUI)) { + led_layer_gui(); + } else { + led_layer_punc();; + } + } else { + layer_off(_PUNC); + update_tri_layer(_PUNC, _EMOJI, _GUI); + if (IS_LAYER_ON(_EMOJI)) { + led_layer_emoji(); + } else { + led_layer_normal();; + } + } + return false; + break; + case EMOJI: + if (record->event.pressed) { + layer_on(_EMOJI); + update_tri_layer(_PUNC, _EMOJI, _GUI); + if (IS_LAYER_ON(_GUI)) { + led_layer_gui(); + } else { + led_layer_emoji();; + } + } else { + layer_off(_EMOJI); + update_tri_layer(_PUNC, _EMOJI, _GUI); + if (IS_LAYER_ON(_PUNC)) { + led_layer_punc(); + } else { + led_layer_normal();; + } + } + return false; + break; + case NUM: + if (record->event.pressed) { + layer_on(_NUM); + led_layer_num(); + } else { + layer_off(_NUM); + led_layer_normal(); + } + return false; + break; + case FUNC: + if (record->event.pressed) { + layer_on(_FUNC); + led_layer_func(); + } else { + layer_off(_FUNC); + led_layer_normal(); + } + return false; + break; + + + case LINUX: + set_unicode_input_mode(UC_LNX); + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_linux, false, 0); + #endif + return false; + break; + case WIN: + set_unicode_input_mode(UC_WINC); + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_windows, false, 0); + #endif + return false; + break; + case OSX: + set_unicode_input_mode(UC_OSX); + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_osx, false, 0); + #endif + return false; + break; + } + return true; +} + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + startup_user(); + #endif + set_unicode_input_mode(UC_LNX); + led_init(); +} + +// void init_rgblight(void) { +// for (uint8_t i = 0; i < RGBLED_NUM; i++) { +// led[i].r = 255; +// led[i].g = 85; +// led[i].b = 0; +// } +// ws2812_setleds(led, RGBLED_NUM); +// } + + +#ifdef AUDIO_ENABLE + +void startup_user() +{ + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); +} + +void shutdown_user() +{ + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + _delay_ms(150); + stop_all_notes(); +} + +#endif \ No newline at end of file diff --git a/keyboards/handwired/promethium/keymaps/priyadi/readme.md b/keyboards/handwired/promethium/keymaps/priyadi/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/keyboards/handwired/promethium/keymaps/readme.md b/keyboards/handwired/promethium/keymaps/readme.md new file mode 100644 index 000000000..527691389 --- /dev/null +++ b/keyboards/handwired/promethium/keymaps/readme.md @@ -0,0 +1,22 @@ +# How to add your own keymap + +Folders can be named however you'd like (will be approved upon merging), or should follow the format with a preceding `_`: + + _[ISO 3166-1 alpha-2 code*]_[layout variant]_[layout name/author] + +\* See full list: https://en.wikipedia.org/wiki/ISO_3166-1#Officially_assigned_code_elements + +and contain the following files: + +* `keymap.c` +* `readme.md` *recommended* +* `config.h` *optional*, found automatically when compiling +* `Makefile` *optional*, found automatically when compling + +When adding your keymap to this list, keep it organised alphabetically (select list, edit->sort lines), and use this format: + + * **folder_name** description + +# List of Promethium keymaps + + diff --git a/keyboards/handwired/promethium/promethium.c b/keyboards/handwired/promethium/promethium.c new file mode 100644 index 000000000..a0035cce1 --- /dev/null +++ b/keyboards/handwired/promethium/promethium.c @@ -0,0 +1,6 @@ +#include "promethium.h" + +void matrix_init_kb(void) { + + matrix_init_user(); +} \ No newline at end of file diff --git a/keyboards/handwired/promethium/promethium.h b/keyboards/handwired/promethium/promethium.h new file mode 100644 index 000000000..fb0dc1683 --- /dev/null +++ b/keyboards/handwired/promethium/promethium.h @@ -0,0 +1,99 @@ +#ifndef PROMETHIUM_H +#define PROMETHIUM_H + +#include "quantum.h" + +#define KEYMAP( \ + k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \ + k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ + k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c \ +) \ +{ \ + {k11, k12, k13, k14, k15, k16}, \ + {k21, k22, k23, k24, k25, k26}, \ + {k31, k32, k33, k34, k35, k36}, \ + {k41, k42, k43, k44, k45, k46}, \ + {k17, k18, k19, k1a, k1b, k1c}, \ + {k27, k28, k29, k2a, k2b, k2c}, \ + {k37, k38, k39, k3a, k3b, k3c}, \ + {k47, k48, k49, k4a, k4b, k4c} \ +} + +enum led_sequence { + LED_IND_EMOJI, + LED_IND_NUM, + LED_IND_FUNC, + + LED_IND_BATTERY, + LED_IND_USB, + LED_IND_BLUETOOTH, + + LED_TAB, + LED_ESC, + LED_LSFT, + LED_LCTL, + + LED_LGUI, + LED_Z, + LED_A, + LED_Q, + + LED_W, + LED_S, + LED_X, + LED_LALT, + + LED_PUNC, + LED_C, + LED_D, + LED_E, + + LED_R, + LED_F, + LED_V, + LED_NUM, + + LED_LSPC, + LED_B, + LED_G, + LED_T, + + LED_TRACKPOINT1, + LED_TRACKPOINT2, + LED_TRACKPOINT3, + + LED_RSPC, + LED_N, + LED_HH, + LED_Y, + + LED_U, + LED_J, + LED_M, + LED_FUNC, + + LED_EMOJI, + LED_COMM, + LED_K, + LED_I, + + LED_O, + LED_L, + LED_DOT, + LED_RALT, + + LED_RGUI, + LED_SLSH, + LED_SCLN, + LED_P, + + LED_BKSP, + LED_ENT, + LED_RSFT, + LED_RCTL +}; + +#endif + + diff --git a/keyboards/handwired/promethium/readme.md b/keyboards/handwired/promethium/readme.md new file mode 100644 index 000000000..64e2c3a16 --- /dev/null +++ b/keyboards/handwired/promethium/readme.md @@ -0,0 +1,12 @@ +Promethium Keyboard Firmware +============================ +A handwired Planck based keyboard using the Adafruit Feather 32u4 Bluefruit LE controller. + +Features: + +* Single piece split form factor +* Vertical staggered +* Trackpoint +* Bluetooth LE *TBD* +* Battery +* Per switch RGB LED \ No newline at end of file diff --git a/keyboards/handwired/promethium/rgbsps.c b/keyboards/handwired/promethium/rgbsps.c new file mode 100644 index 000000000..ea922ec3f --- /dev/null +++ b/keyboards/handwired/promethium/rgbsps.c @@ -0,0 +1,24 @@ +#include "light_ws2812.h" +#include "rgbsps.h" + +struct cRGB led[RGBSPS_NUM]; + +void rgbsps_set(uint8_t index, uint8_t r, uint8_t g, uint8_t b) { + led[index].r = r; + led[index].g = g; + led[index].b = b; +} + +void rgbsps_setall(uint8_t r, uint8_t g, uint8_t b) { + for (uint16_t i = 0; i < RGBSPS_NUM; i++) { + rgbsps_set(i, r, g, b); + } +} + +void rgbsps_turnoff(void) { + rgbsps_setall(0, 0, 0); +} + +void rgbsps_send(void) { + ws2812_setleds(led, RGBSPS_NUM); +} \ No newline at end of file diff --git a/keyboards/handwired/promethium/rgbsps.h b/keyboards/handwired/promethium/rgbsps.h new file mode 100644 index 000000000..6da197f75 --- /dev/null +++ b/keyboards/handwired/promethium/rgbsps.h @@ -0,0 +1,4 @@ +void rgbsps_set(uint8_t index, uint8_t r, uint8_t g, uint8_t b); +void rgbsps_setall(uint8_t r, uint8_t g, uint8_t b); +void rgbsps_turnoff(void); +void rgbsps_send(void); \ No newline at end of file diff --git a/keyboards/handwired/promethium/rules.mk b/keyboards/handwired/promethium/rules.mk new file mode 100644 index 000000000..835b13c4f --- /dev/null +++ b/keyboards/handwired/promethium/rules.mk @@ -0,0 +1,75 @@ + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 8000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= no # Console for debug(+400) +COMMAND_ENABLE ?= no # Commands for debug and configuration +NKRO_ENABLE ?= yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality +MIDI_ENABLE ?= no # MIDI controls +AUDIO_ENABLE ?= no # Audio output on port C6 +UNICODE_ENABLE ?= no # Unicode +UNICODEMAP_ENABLE = yes +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +PS2_MOUSE_ENABLE ?= yes +PS2_USE_INT ?= yes + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend + +include $(TMK_DIR)/protocol.mk +SRC += $(QUANTUM_DIR)/light_ws2812.c +SRC += rgbsps.c \ No newline at end of file -- cgit v1.2.3 From b5019bef055d3b3a90b8b42268b9ad874600782b Mon Sep 17 00:00:00 2001 From: Priyadi Iman Nurcahyo Date: Sat, 26 Nov 2016 13:44:50 +0700 Subject: change init delay to 2000ms --- keyboards/handwired/promethium/promethium.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'keyboards') diff --git a/keyboards/handwired/promethium/promethium.h b/keyboards/handwired/promethium/promethium.h index fb0dc1683..8f2a8c3be 100644 --- a/keyboards/handwired/promethium/promethium.h +++ b/keyboards/handwired/promethium/promethium.h @@ -3,6 +3,8 @@ #include "quantum.h" +#define PS2_INIT_DELAY 2000 + #define KEYMAP( \ k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \ k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ -- cgit v1.2.3 From 7f3c9c6a395a921d2914fc5cac1ac8f9441c33eb Mon Sep 17 00:00:00 2001 From: Priyadi Iman Nurcahyo Date: Sat, 26 Nov 2016 13:46:05 +0700 Subject: protocols.mk is already included in latest QMK --- keyboards/handwired/promethium/rules.mk | 1 - 1 file changed, 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/handwired/promethium/rules.mk b/keyboards/handwired/promethium/rules.mk index 835b13c4f..0842780cc 100644 --- a/keyboards/handwired/promethium/rules.mk +++ b/keyboards/handwired/promethium/rules.mk @@ -70,6 +70,5 @@ PS2_USE_INT ?= yes # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend -include $(TMK_DIR)/protocol.mk SRC += $(QUANTUM_DIR)/light_ws2812.c SRC += rgbsps.c \ No newline at end of file -- cgit v1.2.3 From 0f39ab52192c0e34f0aea5ff6bb1fa2ded427b6e Mon Sep 17 00:00:00 2001 From: Priyadi Iman Nurcahyo Date: Sat, 26 Nov 2016 13:47:03 +0700 Subject: remove ifdef on chip type --- keyboards/handwired/promethium/config.h | 2 -- 1 file changed, 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/handwired/promethium/config.h b/keyboards/handwired/promethium/config.h index 5a2afe6ab..473af67d3 100644 --- a/keyboards/handwired/promethium/config.h +++ b/keyboards/handwired/promethium/config.h @@ -116,7 +116,6 @@ along with this program. If not, see . /* PS/2 mouse USART version */ #ifdef PS2_USE_USART -#if defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__) /* XCK for clock line and RXD for data line */ #define PS2_CLOCK_PORT PORTD #define PS2_CLOCK_PIN PIND @@ -158,7 +157,6 @@ along with this program. If not, see . #define PS2_USART_ERROR (UCSR1A & ((1<event.pressed) { // For resetting EEPROM - send_unicode_midi(0x0CA0); + api_send_unicode(0x0CA0); } break; } diff --git a/keyboards/ergodox/rules.mk b/keyboards/ergodox/rules.mk index add64ec76..2e501e81b 100644 --- a/keyboards/ergodox/rules.mk +++ b/keyboards/ergodox/rules.mk @@ -24,6 +24,5 @@ COMMAND_ENABLE ?= yes # Commands for debug and configuration CUSTOM_MATRIX ?= yes # Custom matrix file for the ErgoDox EZ SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -MIDI_ENABLE ?= no # MIDI controls UNICODE_ENABLE ?= yes # Unicode ONEHAND_ENABLE ?= yes # Allow swapping hands of keyboard diff --git a/keyboards/planck/rules.mk b/keyboards/planck/rules.mk index 25db53a31..ccee97271 100644 --- a/keyboards/planck/rules.mk +++ b/keyboards/planck/rules.mk @@ -62,6 +62,7 @@ AUDIO_ENABLE ?= no # Audio output on port C6 UNICODE_ENABLE ?= no # Unicode BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +API_SYSEX_ENABLE = yes # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend \ No newline at end of file diff --git a/keyboards/preonic/keymaps/default/Makefile b/keyboards/preonic/keymaps/default/Makefile index 581e08cd0..3d4659ceb 100644 --- a/keyboards/preonic/keymaps/default/Makefile +++ b/keyboards/preonic/keymaps/default/Makefile @@ -1,25 +1,3 @@ - - -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = yes # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. - -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - ifndef QUANTUM_DIR include ../../../../Makefile endif \ No newline at end of file diff --git a/keyboards/preonic/rules.mk b/keyboards/preonic/rules.mk index d0f3a3a1c..c4ce2aacc 100644 --- a/keyboards/preonic/rules.mk +++ b/keyboards/preonic/rules.mk @@ -53,7 +53,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # the appropriate keymap folder that will get included automatically # BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) CONSOLE_ENABLE ?= no # Console for debug(+400) COMMAND_ENABLE ?= yes # Commands for debug and configuration @@ -64,6 +64,7 @@ AUDIO_ENABLE ?= no # Audio output on port C6 UNICODE_ENABLE ?= no # Unicode BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +API_SYSEX_ENABLE ?= yes # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend \ No newline at end of file diff --git a/quantum/api.c b/quantum/api.c new file mode 100644 index 000000000..4ca3b9676 --- /dev/null +++ b/quantum/api.c @@ -0,0 +1,178 @@ +#include "api.h" +#include "quantum.h" + +void dword_to_bytes(uint32_t dword, uint8_t * bytes) { + bytes[0] = (dword >> 24) & 0xFF; + bytes[1] = (dword >> 16) & 0xFF; + bytes[2] = (dword >> 8) & 0xFF; + bytes[3] = (dword >> 0) & 0xFF; +} + +uint32_t bytes_to_dword(uint8_t * bytes, uint8_t index) { + return ((uint32_t)bytes[index + 0] << 24) | ((uint32_t)bytes[index + 1] << 16) | ((uint32_t)bytes[index + 2] << 8) | (uint32_t)bytes[index + 3]; +} + +__attribute__ ((weak)) +bool process_api_quantum(uint8_t length, uint8_t * data) { + return process_api_keyboard(length, data); +} + +__attribute__ ((weak)) +bool process_api_keyboard(uint8_t length, uint8_t * data) { + return process_api_user(length, data); +} + +__attribute__ ((weak)) +bool process_api_user(uint8_t length, uint8_t * data) { + return true; +} + +void process_api(uint16_t length, uint8_t * data) { + // SEND_STRING("\nRX: "); + // for (uint8_t i = 0; i < length; i++) { + // send_byte(data[i]); + // SEND_STRING(" "); + // } + if (!process_api_quantum(length, data)) + return; + + switch (data[0]) { + case MT_SET_DATA: + switch (data[1]) { + case DT_DEFAULT_LAYER: { + eeconfig_update_default_layer(data[2]); + default_layer_set((uint32_t)(data[2])); + break; + } + case DT_KEYMAP_OPTIONS: { + eeconfig_update_keymap(data[2]); + break; + } + case DT_RGBLIGHT: { + #ifdef RGBLIGHT_ENABLE + uint32_t rgblight = bytes_to_dword(data, 2); + rgblight_update_dword(rgblight); + #endif + break; + } + } + case MT_GET_DATA: + switch (data[1]) { + case DT_HANDSHAKE: { + MT_GET_DATA_ACK(DT_HANDSHAKE, NULL, 0); + break; + } + case DT_DEBUG: { + uint8_t debug_bytes[1] = { eeprom_read_byte(EECONFIG_DEBUG) }; + MT_GET_DATA_ACK(DT_DEBUG, debug_bytes, 1); + break; + } + case DT_DEFAULT_LAYER: { + uint8_t default_bytes[1] = { eeprom_read_byte(EECONFIG_DEFAULT_LAYER) }; + MT_GET_DATA_ACK(DT_DEFAULT_LAYER, default_bytes, 1); + break; + } + case DT_CURRENT_LAYER: { + uint8_t layer_state_bytes[4]; + dword_to_bytes(layer_state, layer_state_bytes); + MT_GET_DATA_ACK(DT_CURRENT_LAYER, layer_state_bytes, 4); + break; + } + case DT_AUDIO: { + #ifdef AUDIO_ENABLE + uint8_t audio_bytes[1] = { eeprom_read_byte(EECONFIG_AUDIO) }; + MT_GET_DATA_ACK(DT_AUDIO, audio_bytes, 1); + #else + MT_GET_DATA_ACK(DT_AUDIO, NULL, 0); + #endif + break; + } + case DT_BACKLIGHT: { + #ifdef BACKLIGHT_ENABLE + uint8_t backlight_bytes[1] = { eeprom_read_byte(EECONFIG_BACKLIGHT) }; + MT_GET_DATA_ACK(DT_BACKLIGHT, backlight_bytes, 1); + #else + MT_GET_DATA_ACK(DT_BACKLIGHT, NULL, 0); + #endif + break; + } + case DT_RGBLIGHT: { + #ifdef RGBLIGHT_ENABLE + uint8_t rgblight_bytes[4]; + dword_to_bytes(eeconfig_read_rgblight(), rgblight_bytes); + MT_GET_DATA_ACK(DT_RGBLIGHT, rgblight_bytes, 4); + #else + MT_GET_DATA_ACK(DT_RGBLIGHT, NULL, 0); + #endif + break; + } + case DT_KEYMAP_OPTIONS: { + uint8_t keymap_bytes[1] = { eeconfig_read_keymap() }; + MT_GET_DATA_ACK(DT_KEYMAP_OPTIONS, keymap_bytes, 1); + break; + } + case DT_KEYMAP_SIZE: { + uint8_t keymap_size[2] = {MATRIX_ROWS, MATRIX_COLS}; + MT_GET_DATA_ACK(DT_KEYMAP_SIZE, keymap_size, 2); + break; + } + case DT_KEYMAP: { + uint8_t keymap_data[MATRIX_ROWS * MATRIX_COLS * 4 + 3]; + keymap_data[0] = data[2]; + keymap_data[1] = MATRIX_ROWS; + keymap_data[2] = MATRIX_COLS; + for (int i = 0; i < MATRIX_ROWS; i++) { + for (int j = 0; j < MATRIX_COLS; j++) { + keymap_data[3 + (i*MATRIX_COLS*2) + (j*2)] = pgm_read_word(&keymaps[data[2]][i][j]) >> 8; + keymap_data[3 + (i*MATRIX_COLS*2) + (j*2) + 1] = pgm_read_word(&keymaps[data[2]][i][j]) & 0xFF; + } + } + MT_GET_DATA_ACK(DT_KEYMAP, keymap_data, MATRIX_ROWS * MATRIX_COLS * 4 + 3); + // uint8_t keymap_data[5]; + // keymap_data[0] = data[2]; + // keymap_data[1] = data[3]; + // keymap_data[2] = data[4]; + // keymap_data[3] = pgm_read_word(&keymaps[data[2]][data[3]][data[4]]) >> 8; + // keymap_data[4] = pgm_read_word(&keymaps[data[2]][data[3]][data[4]]) & 0xFF; + + // MT_GET_DATA_ACK(DT_KEYMAP, keymap_data, 5); + break; + } + default: + break; + } + break; + case MT_SET_DATA_ACK: + case MT_GET_DATA_ACK: + break; + case MT_SEND_DATA: + break; + case MT_SEND_DATA_ACK: + break; + case MT_EXE_ACTION: + break; + case MT_EXE_ACTION_ACK: + break; + case MT_TYPE_ERROR: + break; + default: ; // command not recognised + SEND_BYTES(MT_TYPE_ERROR, DT_NONE, data, length); + break; + + // #ifdef RGBLIGHT_ENABLE + // case 0x27: ; // RGB LED functions + // switch (*data++) { + // case 0x00: ; // Update HSV + // rgblight_sethsv((data[0] << 8 | data[1]) % 360, data[2], data[3]); + // break; + // case 0x01: ; // Update RGB + // break; + // case 0x02: ; // Update mode + // rgblight_mode(data[0]); + // break; + // } + // break; + // #endif + } + +} \ No newline at end of file diff --git a/quantum/api.h b/quantum/api.h new file mode 100644 index 000000000..00dcdb895 --- /dev/null +++ b/quantum/api.h @@ -0,0 +1,59 @@ +#ifndef _API_H_ +#define _API_H_ + +#include "lufa.h" + +enum MESSAGE_TYPE { + MT_GET_DATA = 0x10, // Get data from keyboard + MT_GET_DATA_ACK = 0x11, // returned data to process (ACK) + MT_SET_DATA = 0x20, // Set data on keyboard + MT_SET_DATA_ACK = 0x21, // returned data to confirm (ACK) + MT_SEND_DATA = 0x30, // Sending data/action from keyboard + MT_SEND_DATA_ACK = 0x31, // returned data/action confirmation (ACK) + MT_EXE_ACTION = 0x40, // executing actions on keyboard + MT_EXE_ACTION_ACK =0x41, // return confirmation/value (ACK) + MT_TYPE_ERROR = 0x80 // type not recofgnised (ACK) +}; + +enum DATA_TYPE { + DT_NONE = 0x00, + DT_HANDSHAKE, + DT_DEFAULT_LAYER, + DT_CURRENT_LAYER, + DT_KEYMAP_OPTIONS, + DT_BACKLIGHT, + DT_RGBLIGHT, + DT_UNICODE, + DT_DEBUG, + DT_AUDIO, + DT_QUANTUM_ACTION, + DT_KEYBOARD_ACTION, + DT_USER_ACTION, + DT_KEYMAP_SIZE, + DT_KEYMAP +}; + +void dword_to_bytes(uint32_t dword, uint8_t * bytes); +uint32_t bytes_to_dword(uint8_t * bytes, uint8_t index); + +#define MT_GET_DATA(data_type, data, length) SEND_BYTES(MT_GET_DATA, data_type, data, length) +#define MT_GET_DATA_ACK(data_type, data, length) SEND_BYTES(MT_GET_DATA_ACK, data_type, data, length) +#define MT_SET_DATA(data_type, data, length) SEND_BYTES(MT_SET_DATA, data_type, data, length) +#define MT_SET_DATA_ACK(data_type, data, length) SEND_BYTES(MT_SET_DATA_ACK, data_type, data, length) +#define MT_SEND_DATA(data_type, data, length) SEND_BYTES(MT_SEND_DATA, data_type, data, length) +#define MT_SEND_DATA_ACK(data_type, data, length) SEND_BYTES(MT_SEND_DATA_ACK, data_type, data, length) +#define MT_EXE_ACTION(data_type, data, length) SEND_BYTES(MT_EXE_ACTION, data_type, data, length) +#define MT_EXE_ACTION_ACK(data_type, data, length) SEND_BYTES(MT_EXE_ACTION_ACK, data_type, data, length) + +void process_api(uint16_t length, uint8_t * data); + +__attribute__ ((weak)) +bool process_api_quantum(uint8_t length, uint8_t * data); + +__attribute__ ((weak)) +bool process_api_keyboard(uint8_t length, uint8_t * data); + +__attribute__ ((weak)) +bool process_api_user(uint8_t length, uint8_t * data); + +#endif \ No newline at end of file diff --git a/quantum/api/api_sysex.c b/quantum/api/api_sysex.c new file mode 100644 index 000000000..a4a554e76 --- /dev/null +++ b/quantum/api/api_sysex.c @@ -0,0 +1,29 @@ +#include "api_sysex.h" + +void send_bytes_sysex(uint8_t message_type, uint8_t data_type, uint8_t * bytes, uint16_t length) { + // SEND_STRING("\nTX: "); + // for (uint8_t i = 0; i < length; i++) { + // send_byte(bytes[i]); + // SEND_STRING(" "); + // } + uint8_t * precode = malloc(sizeof(uint8_t) * (length + 2)); + precode[0] = message_type; + precode[1] = data_type; + memcpy(precode + 2, bytes, length); + uint8_t * encoded = malloc(sizeof(uint8_t) * (sysex_encoded_length(length + 2))); + uint16_t encoded_length = sysex_encode(encoded, precode, length + 2); + uint8_t * array = malloc(sizeof(uint8_t) * (encoded_length + 5)); + array[0] = 0xF0; + array[1] = 0x00; + array[2] = 0x00; + array[3] = 0x00; + array[encoded_length + 4] = 0xF7; + memcpy(array + 4, encoded, encoded_length); + midi_send_array(&midi_device, encoded_length + 5, array); + + // SEND_STRING("\nTD: "); + // for (uint8_t i = 0; i < encoded_length + 5; i++) { + // send_byte(array[i]); + // SEND_STRING(" "); + // } +} \ No newline at end of file diff --git a/quantum/api/api_sysex.h b/quantum/api/api_sysex.h new file mode 100644 index 000000000..b947b60e5 --- /dev/null +++ b/quantum/api/api_sysex.h @@ -0,0 +1,10 @@ +#ifndef _API_SYSEX_H_ +#define _API_SYSEX_H_ + +#include "api.h" + +void send_bytes_sysex(uint8_t message_type, uint8_t data_type, uint8_t * bytes, uint16_t length); + +#define SEND_BYTES(mt, dt, b, l) send_bytes_sysex(mt, dt, b, l) + +#endif \ No newline at end of file diff --git a/quantum/quantum.c b/quantum/quantum.c index 8372a7adc..f653564a6 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -847,12 +847,12 @@ void send_nibble(uint8_t number) { } } -void send_unicode_midi(uint32_t unicode) { - #ifdef MIDI_ENABLE +void api_send_unicode(uint32_t unicode) { +#ifdef API_ENABLE uint8_t chunk[4]; dword_to_bytes(unicode, chunk); MT_SEND_DATA(DT_UNICODE, chunk, 5); - #endif +#endif } __attribute__ ((weak)) diff --git a/quantum/quantum.h b/quantum/quantum.h index 316da15b9..e6adf974a 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -119,6 +119,6 @@ void send_nibble(uint8_t number); void led_set_user(uint8_t usb_led); void led_set_kb(uint8_t usb_led); -void send_unicode_midi(uint32_t unicode); +void api_send_unicode(uint32_t unicode); #endif diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index aa2e781c8..39d4824b6 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c @@ -1091,37 +1091,17 @@ void fallthrough_callback(MidiDevice * device, #endif } -#ifdef RGB_MIDI - rgblight_config_t rgblight_config; -#endif void cc_callback(MidiDevice * device, uint8_t chan, uint8_t num, uint8_t val) { //sending it back on the next channel // midi_send_cc(device, (chan + 1) % 16, num, val); - #ifdef RGB_MIDI - rgblight_config.raw = eeconfig_read_rgblight(); - switch (num) { - case 14: - rgblight_config.hue = val * 360 / 127; - break; - case 15: - rgblight_config.sat = val << 1; - break; - case 16: - rgblight_config.val = val << 1; - break; - } - rgblight_sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val); - #endif } uint8_t midi_buffer[MIDI_SYSEX_BUFFER] = {0}; void sysex_callback(MidiDevice * device, uint16_t start, uint8_t length, uint8_t * data) { - // for (int i = 0; i < length; i++) - // midi_send_cc(device, 15, 0x7F & data[i], 0x7F & (start + i)); - // if (start == 0x27) { + #ifdef API_SYSEX_ENABLE // SEND_STRING("\n"); // send_word(start); // SEND_STRING(": "); @@ -1136,190 +1116,13 @@ void sysex_callback(MidiDevice * device, uint16_t start, uint8_t length, uint8_t // } uint8_t * decoded = malloc(sizeof(uint8_t) * (sysex_decoded_length(start + place - 4))); uint16_t decode_length = sysex_decode(decoded, midi_buffer + 4, start + place - 4); - sysex_buffer_callback(device, decode_length, decoded); + process_api(decode_length, decoded); } // SEND_STRING(" "); data++; } - // } - -} - -void dword_to_bytes(uint32_t dword, uint8_t * bytes) { - bytes[0] = (dword >> 24) & 0xFF; - bytes[1] = (dword >> 16) & 0xFF; - bytes[2] = (dword >> 8) & 0xFF; - bytes[3] = (dword >> 0) & 0xFF; -} - -uint32_t bytes_to_dword(uint8_t * bytes, uint8_t index) { - return ((uint32_t)bytes[index + 0] << 24) | ((uint32_t)bytes[index + 1] << 16) | ((uint32_t)bytes[index + 2] << 8) | (uint32_t)bytes[index + 3]; -} - -void send_bytes_sysex(uint8_t message_type, uint8_t data_type, uint8_t * bytes, uint8_t length) { - // SEND_STRING("\nTX: "); - // for (uint8_t i = 0; i < length; i++) { - // send_byte(bytes[i]); - // SEND_STRING(" "); - // } - uint8_t * precode = malloc(sizeof(uint8_t) * (length + 2)); - precode[0] = message_type; - precode[1] = data_type; - memcpy(precode + 2, bytes, length); - uint8_t * encoded = malloc(sizeof(uint8_t) * (sysex_encoded_length(length + 2))); - uint16_t encoded_length = sysex_encode(encoded, precode, length + 2); - uint8_t * array = malloc(sizeof(uint8_t) * (encoded_length + 5)); - array[0] = 0xF0; - array[1] = 0x00; - array[2] = 0x00; - array[3] = 0x00; - array[encoded_length + 4] = 0xF7; - memcpy(array + 4, encoded, encoded_length); - midi_send_array(&midi_device, encoded_length + 5, array); - - // SEND_STRING("\nTD: "); - // for (uint8_t i = 0; i < encoded_length + 5; i++) { - // send_byte(array[i]); - // SEND_STRING(" "); - // } -} - -__attribute__ ((weak)) -bool sysex_process_quantum(uint8_t length, uint8_t * data) { - return sysex_process_keyboard(length, data); -} - -__attribute__ ((weak)) -bool sysex_process_keyboard(uint8_t length, uint8_t * data) { - return sysex_process_user(length, data); -} - -__attribute__ ((weak)) -bool sysex_process_user(uint8_t length, uint8_t * data) { - return true; + #endif } -void sysex_buffer_callback(MidiDevice * device, uint8_t length, uint8_t * data) { - // SEND_STRING("\nRX: "); - // for (uint8_t i = 0; i < length; i++) { - // send_byte(data[i]); - // SEND_STRING(" "); - // } - if (!sysex_process_quantum(length, data)) - return; - - switch (data[0]) { - case MT_SET_DATA: - switch (data[1]) { - case DT_DEFAULT_LAYER: { - eeconfig_update_default_layer(data[2]); - default_layer_set((uint32_t)(data[2])); - break; - } - case DT_KEYMAP_OPTIONS: { - eeconfig_update_keymap(data[2]); - break; - } - case DT_RGBLIGHT: { - #ifdef RGBLIGHT_ENABLE - uint32_t rgblight = bytes_to_dword(data, 2); - rgblight_update_dword(rgblight); - #endif - break; - } - } - case MT_GET_DATA: - switch (data[1]) { - case DT_HANDSHAKE: { - MT_GET_DATA_ACK(DT_HANDSHAKE, NULL, 0); - break; - } - case DT_DEBUG: { - uint8_t debug_bytes[1] = { eeprom_read_byte(EECONFIG_DEBUG) }; - MT_GET_DATA_ACK(DT_DEBUG, debug_bytes, 1); - break; - } - case DT_DEFAULT_LAYER: { - uint8_t default_bytes[1] = { eeprom_read_byte(EECONFIG_DEFAULT_LAYER) }; - MT_GET_DATA_ACK(DT_DEFAULT_LAYER, default_bytes, 1); - break; - } - case DT_CURRENT_LAYER: { - uint8_t layer_state_bytes[4]; - dword_to_bytes(layer_state, layer_state_bytes); - MT_GET_DATA_ACK(DT_CURRENT_LAYER, layer_state_bytes, 4); - break; - } - case DT_AUDIO: { - #ifdef AUDIO_ENABLE - uint8_t audio_bytes[1] = { eeprom_read_byte(EECONFIG_AUDIO) }; - MT_GET_DATA_ACK(DT_AUDIO, audio_bytes, 1); - #else - MT_GET_DATA_ACK(DT_AUDIO, NULL, 0); - #endif - break; - } - case DT_BACKLIGHT: { - #ifdef BACKLIGHT_ENABLE - uint8_t backlight_bytes[1] = { eeprom_read_byte(EECONFIG_BACKLIGHT) }; - MT_GET_DATA_ACK(DT_BACKLIGHT, backlight_bytes, 1); - #else - MT_GET_DATA_ACK(DT_BACKLIGHT, NULL, 0); - #endif - break; - } - case DT_RGBLIGHT: { - #ifdef RGBLIGHT_ENABLE - uint8_t rgblight_bytes[4]; - dword_to_bytes(eeconfig_read_rgblight(), rgblight_bytes); - MT_GET_DATA_ACK(DT_RGBLIGHT, rgblight_bytes, 4); - #else - MT_GET_DATA_ACK(DT_RGBLIGHT, NULL, 0); - #endif - break; - } - case DT_KEYMAP_OPTIONS: { - uint8_t keymap_bytes[1] = { eeconfig_read_keymap() }; - MT_GET_DATA_ACK(DT_KEYMAP_OPTIONS, keymap_bytes, 1); - break; - } - default: - break; - } - break; - case MT_SET_DATA_ACK: - case MT_GET_DATA_ACK: - break; - case MT_SEND_DATA: - break; - case MT_SEND_DATA_ACK: - break; - case MT_EXE_ACTION: - break; - case MT_EXE_ACTION_ACK: - break; - case MT_TYPE_ERROR: - break; - default: ; // command not recognised - send_bytes_sysex(MT_TYPE_ERROR, DT_NONE, data, length); - break; - - // #ifdef RGBLIGHT_ENABLE - // case 0x27: ; // RGB LED functions - // switch (*data++) { - // case 0x00: ; // Update HSV - // rgblight_sethsv((data[0] << 8 | data[1]) % 360, data[2], data[3]); - // break; - // case 0x01: ; // Update RGB - // break; - // case 0x02: ; // Update mode - // rgblight_mode(data[0]); - // break; - // } - // break; - // #endif - } - -} #endif diff --git a/tmk_core/protocol/lufa/lufa.h b/tmk_core/protocol/lufa/lufa.h index 0962dda8d..b11854101 100644 --- a/tmk_core/protocol/lufa/lufa.h +++ b/tmk_core/protocol/lufa/lufa.h @@ -68,64 +68,17 @@ typedef struct { } __attribute__ ((packed)) report_extra_t; #ifdef MIDI_ENABLE - #define MIDI_SYSEX_BUFFER 16 void MIDI_Task(void); MidiDevice midi_device; + #define MIDI_SYSEX_BUFFER 32 +#endif - void sysex_callback(MidiDevice * device, uint16_t start, uint8_t length, uint8_t * data); - void sysex_buffer_callback(MidiDevice * device, uint8_t length, uint8_t * data); - void send_bytes_sysex(uint8_t message_type, uint8_t data_type, uint8_t * bytes, uint8_t length); - void dword_to_bytes(uint32_t dword, uint8_t * bytes); - uint32_t bytes_to_dword(uint8_t * bytes, uint8_t index); - - __attribute__ ((weak)) - bool sysex_process_quantum(uint8_t length, uint8_t * data); - - __attribute__ ((weak)) - bool sysex_process_keyboard(uint8_t length, uint8_t * data); - - __attribute__ ((weak)) - bool sysex_process_user(uint8_t length, uint8_t * data); - - enum MESSAGE_TYPE { - MT_GET_DATA = 0x10, // Get data from keyboard - MT_GET_DATA_ACK = 0x11, // returned data to process (ACK) - MT_SET_DATA = 0x20, // Set data on keyboard - MT_SET_DATA_ACK = 0x21, // returned data to confirm (ACK) - MT_SEND_DATA = 0x30, // Sending data/action from keyboard - MT_SEND_DATA_ACK = 0x31, // returned data/action confirmation (ACK) - MT_EXE_ACTION = 0x40, // executing actions on keyboard - MT_EXE_ACTION_ACK =0x41, // return confirmation/value (ACK) - MT_TYPE_ERROR = 0x80 // type not recofgnised (ACK) - }; - - enum DATA_TYPE { - DT_NONE = 0x00, - DT_HANDSHAKE, - DT_DEFAULT_LAYER, - DT_CURRENT_LAYER, - DT_KEYMAP_OPTIONS, - DT_BACKLIGHT, - DT_RGBLIGHT, - DT_UNICODE, - DT_DEBUG, - DT_AUDIO, - DT_QUANTUM_ACTION, - DT_KEYBOARD_ACTION, - DT_USER_ACTION, - - }; - - - #define MT_GET_DATA(data_type, data, length) send_bytes_sysex(MT_GET_DATA, data_type, data, length) - #define MT_GET_DATA_ACK(data_type, data, length) send_bytes_sysex(MT_GET_DATA_ACK, data_type, data, length) - #define MT_SET_DATA(data_type, data, length) send_bytes_sysex(MT_SET_DATA, data_type, data, length) - #define MT_SET_DATA_ACK(data_type, data, length) send_bytes_sysex(MT_SET_DATA_ACK, data_type, data, length) - #define MT_SEND_DATA(data_type, data, length) send_bytes_sysex(MT_SEND_DATA, data_type, data, length) - #define MT_SEND_DATA_ACK(data_type, data, length) send_bytes_sysex(MT_SEND_DATA_ACK, data_type, data, length) - #define MT_EXE_ACTION(data_type, data, length) send_bytes_sysex(MT_EXE_ACTION, data_type, data, length) - #define MT_EXE_ACTION_ACK(data_type, data, length) send_bytes_sysex(MT_EXE_ACTION_ACK, data_type, data, length) +#ifdef API_ENABLE + #include "api.h" +#endif +#ifdef API_SYSEX_ENABLE + #include "api_sysex.h" #endif // #if LUFA_VERSION_INTEGER < 0x120730 -- cgit v1.2.3 From e26a80508f2247d27e431a7415df1ff3405f598a Mon Sep 17 00:00:00 2001 From: Olivier Date: Mon, 28 Nov 2016 11:20:00 +0100 Subject: Reorganize the numeric keypad layer more like a traditional numeric keypad. --- keyboards/ergodox/keymaps/bepo/bepo.png | Bin 80838 -> 80249 bytes keyboards/ergodox/keymaps/bepo/keymap.c | 24 ++++++++++++------------ 2 files changed, 12 insertions(+), 12 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/bepo/bepo.png b/keyboards/ergodox/keymaps/bepo/bepo.png index bde2e2cfa..54992f5ae 100644 Binary files a/keyboards/ergodox/keymaps/bepo/bepo.png and b/keyboards/ergodox/keymaps/bepo/bepo.png differ diff --git a/keyboards/ergodox/keymaps/bepo/keymap.c b/keyboards/ergodox/keymaps/bepo/keymap.c index ae8047ab5..c1a8ae21d 100644 --- a/keyboards/ergodox/keymaps/bepo/keymap.c +++ b/keyboards/ergodox/keymaps/bepo/keymap.c @@ -201,18 +201,18 @@ KC_TRNS, KC_TRNS, KC_NO), /* Keymap 5: numeric layer, sends keypad codes * * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | + | - | / | * | | + * | | | | | | | | | | | NumLo| / | * | - | | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | | | | | | 7 | 8 | 9 | | | + * | | | | | | | | | | | 7 | 8 | 9 | + | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | |------| |------| | 4 | 5 | 6 | | | + * | | | | | | |------| |------| | 4 | 5 | 6 | + | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | 1 | 2 | 3 | | | + * | | | | | | | | | | | 1 | 2 | 3 | Enter| | * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' - * | | | | | | | | | | | | | 0 | 00 | . | | | + * | | | | | | | | | | | | | 0 | 00 | . | Enter| | * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' * | | | | | | | | - * | | |------| |------| | Enter| + * | | |------| |------| | | * | | | | | | | | * `--------------------' `--------------------' */ @@ -227,14 +227,14 @@ KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, // Right hand - KC_NO, KC_NO, KC_KP_PLUS, KC_KP_MINUS, KC_KP_SLASH, KC_KP_ASTERISK, KC_NO, - KC_NO, KC_NO, KC_KP_7, KC_KP_8, KC_KP_9, KC_NO, KC_NO, - KC_NO, KC_KP_4, KC_KP_5, KC_KP_6, KC_NO, KC_NO, - KC_NO, KC_NO, KC_KP_1, KC_KP_2, KC_KP_3, KC_NO, KC_NO, - KC_KP_0, M(KP_00), KC_KP_COMMA, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NUMLOCK, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, KC_NO, + KC_NO, KC_NO, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, KC_NO, + KC_NO, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, KC_NO, + KC_NO, KC_NO, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, KC_NO, + KC_KP_0, M(KP_00), KC_KP_COMMA, KC_KP_ENTER, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, -KC_TRNS, KC_TRNS, KC_KP_ENTER) +KC_TRNS, KC_TRNS, KC_TRNS) }; const uint16_t PROGMEM fn_actions[] = { -- cgit v1.2.3 From 3f1fca2eb8078cdfbf576d6d4168de8e6ae1c2f6 Mon Sep 17 00:00:00 2001 From: Olivier Date: Mon, 28 Nov 2016 11:21:23 +0100 Subject: Adjust comment. --- keyboards/ergodox/keymaps/bepo/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/bepo/readme.md b/keyboards/ergodox/keymaps/bepo/readme.md index 207b67571..51a506985 100644 --- a/keyboards/ergodox/keymaps/bepo/readme.md +++ b/keyboards/ergodox/keymaps/bepo/readme.md @@ -23,7 +23,7 @@ La touche "Tab" est placée comme sur la TypeMatrix 2020. Meilleure symétrie et accessibilité que la TypeMatrix 2030 : les touches "W" et "%" ont dû être déplacées du côté gauche en raison du nombre de touches de l'ErgoDox, mais l'auriculaire droit ne gère maintenant que deux colonnes de touches au lieu de trois. La touche "Ê" redevient accessible sur la même rangée que les autres lettres, comme sur un clavier classique en disposition bépo. Les lettres, chiffres et symboles sont tous regroupés sur 4 lignes et 6 colonnes pour chaque main, et la première rangée de lettres à la main gauche conserve une identité visuelle "BÉPO". -Touche de fonction permettant de saisir les touches F1 à F12, les touches F1 à F10 sont placées de façon logique par rapport aux chiffres 1 à 0. Cette même touche permet l'accès aux touches directionnelles sans déplacer la main droite. Les touches "Home" et "End" sont placées de la même façon que sur une TypeMatrix 2030 par rapport aux touches directionnelles. Les touches "Page Up" et "Page Down" sont également accessibles facilement sans déplacer la main droite. Les fonctions "VolUp" et "VolDown" sont placées comme sur la TypeMatrix 2030, avec la fonction "Mute" juste au dessus. Les fonctions "Undo", "Cut", "Copy" et "Paste" sont placées côte à côte comme elles le seraient sur un clavier QWERTY en combinaison avec la touche "Ctrl" (à l'emplacement des lettres "Z", "X", "C" et "V"). Par rapport au layout "SpaceFN", l'utilisation d'une touche de fonction dédiée au pouce permet de ne pas ajouter de latence, et la touche espace reste compatible avec les jeux (action au moment de l'appui et possibilité d'appui long). +Touche de fonction permettant de saisir les touches F1 à F12, les touches F1 à F10 sont placées de façon logique par rapport aux chiffres 1 à 0. Cette même touche permet l'accès aux touches directionnelles sans déplacer la main droite et d'effectuer des actions souris avec uniquement la main gauche. Les touches "Home" et "End" sont placées de la même façon que sur une TypeMatrix 2030 par rapport aux touches directionnelles. Les touches "Page Up" et "Page Down" sont également accessibles facilement sans déplacer la main droite. Les fonctions "VolUp" et "VolDown" sont placées comme sur la TypeMatrix 2030, avec la fonction "Mute" juste au dessus. Les fonctions "Undo", "Cut", "Copy" et "Paste" sont placées côte à côte comme elles le seraient sur un clavier QWERTY en combinaison avec la touche "Ctrl" (à l'emplacement des lettres "Z", "X", "C" et "V"). Par rapport au layout "SpaceFN", l'utilisation d'une touche de fonction dédiée au pouce permet de ne pas ajouter de latence, et la touche espace reste compatible avec les jeux (action au moment de l'appui et possibilité d'appui long). Touche de fonction permettant l'accès au pavé numérique comme sur la TypeMatrix 2030, mais sans avoir à déplacer la main droite : avec les doigts sur la rangée de repos, possibilité de saisir les chiffres "4", "5" et "6" comme sur un pavé numérique classique. Le double "0" de la TypeMatrix a été conservé, et gagne une possibilité de répétition en simples "0". -- cgit v1.2.3 From 2d0ada01902a0103dc4f4f54a416f0666c641b5b Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Mon, 28 Nov 2016 07:55:02 -0500 Subject: Pulls LED config into common config for EZ --- keyboards/ergodox/ez/config.h | 11 +++++++++++ keyboards/ergodox/keymaps/erez_experimental/config.h | 10 ---------- 2 files changed, 11 insertions(+), 10 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/ez/config.h b/keyboards/ergodox/ez/config.h index 67a856e51..0b7e8b2ee 100644 --- a/keyboards/ergodox/ez/config.h +++ b/keyboards/ergodox/ez/config.h @@ -45,6 +45,17 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCE 5 +/* ws2812 RGB LED */ +#define RGB_DI_PIN D7 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 15 // Number of LEDs +#define RGBLIGHT_HUE_STEP 12 +#define RGBLIGHT_SAT_STEP 255 +#define RGBLIGHT_VAL_STEP 12 + +#define RGB_MIDI +#define RGBW_BB_TWI + /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/ergodox/keymaps/erez_experimental/config.h b/keyboards/ergodox/keymaps/erez_experimental/config.h index fbd12ab79..4da18c65a 100644 --- a/keyboards/ergodox/keymaps/erez_experimental/config.h +++ b/keyboards/ergodox/keymaps/erez_experimental/config.h @@ -9,15 +9,5 @@ #undef LEADER_TIMEOUT #define LEADER_TIMEOUT 300 -/* ws2812 RGB LED */ -#define RGB_DI_PIN D7 -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 15 // Number of LEDs -#define RGBLIGHT_HUE_STEP 12 -#define RGBLIGHT_SAT_STEP 255 -#define RGBLIGHT_VAL_STEP 12 - -#define RGB_MIDI -#define RGBW_BB_TWI #endif -- cgit v1.2.3 From 9caf866618840ca38f4ceb1166ad679174c752c3 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Mon, 28 Nov 2016 07:59:01 -0500 Subject: Tweaks EZ Makefile --- keyboards/ergodox/ez/Makefile | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/ez/Makefile b/keyboards/ergodox/ez/Makefile index 191c6bb66..9b6121e2c 100644 --- a/keyboards/ergodox/ez/Makefile +++ b/keyboards/ergodox/ez/Makefile @@ -1,3 +1,8 @@ +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +COMMAND_ENABLE = no # Commands for debug and configuration +RGBLIGHT_ENABLE ?= yes +MIDI_ENABLE ?= yes + ifndef MAKEFILE_INCLUDED include ../../../Makefile -endif \ No newline at end of file +endif -- cgit v1.2.3 From d2b6438e391743544d437ca8c2998de6ab631894 Mon Sep 17 00:00:00 2001 From: Olivier Date: Mon, 28 Nov 2016 14:10:31 +0100 Subject: A little cleanup, add some comments, change others. --- keyboards/ergodox/keymaps/bepo/keymap.c | 42 +++++++++++++-------------------- 1 file changed, 16 insertions(+), 26 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/bepo/keymap.c b/keyboards/ergodox/keymaps/bepo/keymap.c index c1a8ae21d..8f068e238 100644 --- a/keyboards/ergodox/keymaps/bepo/keymap.c +++ b/keyboards/ergodox/keymaps/bepo/keymap.c @@ -1,19 +1,19 @@ #include "ergodox.h" -#include "debug.h" -#include "action_layer.h" #include "keymap_bepo.h" -#define BASE 0 // default layer -#define QWER 1 // qwerty compat layer -#define SQWER 2 // shifted qwerty compat layer -#define AQWER 3 // alted qwerty compat layer -#define FNAV 4 // function / navigation keys -#define NUM 5 // numeric keypad keys +// keymaps +#define BASE 0 // default layer, for bepo compatible systems +#define QWER 1 // bepo to qwerty base compat layer, for qwerty systems +#define SQWER 2 // bepo with shift key to qwerty compat layer +#define AQWER 3 // bepo with altgr key to qwerty compat layer +#define FNAV 4 // function / navigation / mouse layer +#define NUM 5 // numeric keypad layer -#define KP_00 0 +// macros +#define KP_00 0 // keypad "double 0" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Base layer +/* Keymap 0: default layer * * ,--------------------------------------------------. ,--------------------------------------------------. * | $ | " | < | > | ( | ) |Delete| |ScroLo| @ | + | - | / | * | = | @@ -50,7 +50,7 @@ KC_ESC, KC_INS, KC_LGUI, KC_LCTL, KC_LALT, DF(QWER), DF(BASE), MO(NUM), MO(FNAV), KC_RSHIFT, KC_ENTER), -/* Keymap 1: QWERTY system compatibility layer +/* Keymap 1: bepo to qwerty base compat layer * * ,--------------------------------------------------. ,--------------------------------------------------. * | $ | " | < | > | ( | ) |Delete| |ScroLo| @ | + | - | / | * | = | @@ -87,7 +87,7 @@ KC_ESC, KC_INS, KC_LGUI, KC_LCTL, KC_LALT, DF(QWER), DF(BASE), MO(NUM), MO(FNAV), MO(SQWER), KC_ENTER), -/* Keymap 2: QWERTY shifted system compatibility layer +/* Keymap 2: bepo with shift key to qwerty compat layer * * ,--------------------------------------------------. ,--------------------------------------------------. * | # | 1 | 2 | 3 | 4 | 5 |Delete| |ScroLo| 6 | 7 | 8 | 9 | 0 | = | @@ -124,7 +124,7 @@ S(KC_ESC), S(KC_INS), S(KC_LGUI), S(KC_LCTL), S(KC_LALT), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -/* Keymap 3: QWERTY alted system compatibility layer +/* Keymap 3: bepo with altgr key to qwerty compat layer * * ,--------------------------------------------------. ,--------------------------------------------------. * | $ | " | < | > | [ | ] |Delete| |ScroLo| @ | + | - | / | * | = | @@ -161,7 +161,7 @@ KC_ESC, KC_INS, KC_LGUI, KC_LCTL, KC_LALT, KC_TRNS, KC_TRNS, MO(NUM), MO(FNAV), MO(SQWER), KC_ENTER), -/* Keymap 4: function / navigation layer +/* Keymap 4: function / navigation / mouse layer * * ,--------------------------------------------------. ,--------------------------------------------------. * | | F1 | F2 | F3 | F4 | F5 |VolMut| | | F6 | F7 | F8 | F9 | F10 | | @@ -198,7 +198,7 @@ KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO), -/* Keymap 5: numeric layer, sends keypad codes +/* Keymap 5: numeric keypad layer, sends keypad codes * * ,--------------------------------------------------. ,--------------------------------------------------. * | | | | | | | | | | | NumLo| / | * | - | | @@ -237,12 +237,10 @@ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; -const uint16_t PROGMEM fn_actions[] = { -}; - const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { switch(id) { + // keypad "double 0" case KP_00: if (record->event.pressed) { return MACRO( T(KP_0), D(KP_0), END ); @@ -253,11 +251,3 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } return MACRO_NONE; }; - -// Runs just one time when the keyboard initializes. -void matrix_init_user(void) { -}; - -// Runs constantly in the background, in a loop. -void matrix_scan_user(void) { -}; -- cgit v1.2.3 From 84735836e309fe9e2c45ed991a58820ae2bb9123 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Mon, 28 Nov 2016 08:13:32 -0500 Subject: Tweaks position of TOG not to conflict with MO --- keyboards/ergodox/keymaps/erez_experimental/keymap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/erez_experimental/keymap.c b/keyboards/ergodox/keymaps/erez_experimental/keymap.c index 0c0e3c4e3..2963c40e3 100644 --- a/keyboards/ergodox/keymaps/erez_experimental/keymap.c +++ b/keyboards/ergodox/keymaps/erez_experimental/keymap.c @@ -71,7 +71,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | |NxtTab|PrvTab| | | | | | | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. - * | | | | | | + * | | | |TOG | * ,------|------|------| |------+------+------. * |VAI |VAD |HUI | |SAI |TOG |MOD | * | | |------| |------| | | @@ -95,9 +95,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_AMPR, KC_UNDS, KC_MINS, CM_SCLN, KC_PLUS, KC_TRNS, KC_TRNS, KC_PIPE, KC_AT, KC_EQL, KC_PERC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, + RGB_TOG, KC_TRNS, RGB_SAI, - RGB_SAD, RGB_TOG, RGB_MOD + RGB_SAD, KC_TRNS, RGB_MOD ), /* Keymap 2: Media and mouse keys * -- cgit v1.2.3 From f02eccbb29ee6a8cf421895dcef2e55a76c1bdcb Mon Sep 17 00:00:00 2001 From: Olivier Date: Mon, 28 Nov 2016 14:16:42 +0100 Subject: Change layer names (cosmetic change) and reorder them so that the "shift" layer can be accessed from the "alt" layer when in QWERTY compat mode. --- keyboards/ergodox/keymaps/bepo/keymap.c | 124 ++++++++++++++++---------------- 1 file changed, 62 insertions(+), 62 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/bepo/keymap.c b/keyboards/ergodox/keymaps/bepo/keymap.c index 8f068e238..c19ab0d48 100644 --- a/keyboards/ergodox/keymaps/bepo/keymap.c +++ b/keyboards/ergodox/keymaps/bepo/keymap.c @@ -2,12 +2,12 @@ #include "keymap_bepo.h" // keymaps -#define BASE 0 // default layer, for bepo compatible systems -#define QWER 1 // bepo to qwerty base compat layer, for qwerty systems -#define SQWER 2 // bepo with shift key to qwerty compat layer -#define AQWER 3 // bepo with altgr key to qwerty compat layer +#define BEPO 0 // default layer, for bepo compatible systems +#define QW_B 1 // bepo to qwerty base compat layer, for qwerty systems +#define QW_A 2 // bepo with altgr key to qwerty compat layer +#define QW_S 3 // bepo with shift key to qwerty compat layer #define FNAV 4 // function / navigation / mouse layer -#define NUM 5 // numeric keypad layer +#define NUMK 5 // numeric keypad layer // macros #define KP_00 0 // keypad "double 0" @@ -26,20 +26,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' * |Escape|Insert|LSuper| LCtrl| LAlt| | BEPO |QWERTY| |AZERTY| BEPO | | AltGr| RCtrl|RSuper|PrntSc| Pause| * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' - * | | | L_Num| | L_Num| | | + * | | |L_NumK| |L_NumK| | | * | Space|LShift|------| |------|RShift|Enter | * | | |L_FNav| |L_FNav| | | * `--------------------' `--------------------' */ -[BASE] = KEYMAP( +[BEPO] = KEYMAP( // Left hand BP_DOLLAR, BP_DQOT, BP_LGIL, BP_RGIL, BP_LPRN, BP_RPRN, KC_DEL, BP_PERCENT, BP_B, BP_E_ACUTE, BP_P, BP_O, BP_E_GRAVE, KC_BSPC, BP_W, BP_A, BP_U, BP_I, BP_E, BP_COMMA, BP_ECRC, BP_A_GRAVE, BP_Y, BP_X, BP_DOT, BP_K, KC_TAB, KC_ESC, KC_INS, KC_LGUI, KC_LCTL, KC_LALT, - DF(BASE), DF(QWER), - MO(NUM), + DF(BEPO), DF(QW_B), + MO(NUMK), KC_SPC, KC_LSHIFT, MO(FNAV), // Right hand KC_SLCK, BP_AT, BP_PLUS, BP_MINUS, BP_SLASH, BP_ASTR, BP_EQUAL, @@ -47,8 +47,8 @@ KC_ESC, KC_INS, KC_LGUI, KC_LCTL, KC_LALT, BP_C, BP_T, BP_S, BP_R, BP_N, BP_M, KC_NUMLOCK, BP_APOS, BP_Q, BP_G, BP_H, BP_F, BP_CCED, BP_ALGR, KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE, -DF(QWER), DF(BASE), -MO(NUM), +DF(QW_B), DF(BEPO), +MO(NUMK), MO(FNAV), KC_RSHIFT, KC_ENTER), /* Keymap 1: bepo to qwerty base compat layer * @@ -63,31 +63,68 @@ MO(FNAV), KC_RSHIFT, KC_ENTER), * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' * |Escape|Insert|LSuper| LCtrl| LAlt| | BEPO |QWERTY| |AZERTY| BEPO | | AltGr| RCtrl|RSuper|PrntSc| Pause| * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' - * | | | L_Num| | L_Num| | | + * | | |L_NumK| |L_NumK| | | * | Space|LShift|------| |------|RShift|Enter | * | | |L_FNav| |L_FNav| | | * `--------------------' `--------------------' */ -[QWER] = KEYMAP( +[QW_B] = KEYMAP( // Left hand KC_DOLLAR, S(KC_QUOT), S(KC_COMM), S(KC_DOT), KC_LPRN, KC_RPRN, KC_DEL, KC_PERCENT, KC_B, KC_E, KC_P, KC_O, KC_E, KC_BSPC, KC_W, KC_A, KC_U, KC_I, KC_E, KC_COMMA, KC_E, KC_A, KC_Y, KC_X, KC_DOT, KC_K, KC_TAB, KC_ESC, KC_INS, KC_LGUI, KC_LCTL, KC_LALT, - DF(BASE), DF(QWER), - MO(NUM), - KC_SPC, MO(SQWER), MO(FNAV), + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_SPC, MO(QW_S), KC_TRNS, +// Right hand + KC_SLCK, KC_AT, KC_PLUS, KC_MINUS, KC_SLASH, KC_ASTR, KC_EQUAL, + KC_CAPSLOCK, KC_CIRC, KC_V, KC_D, KC_L, KC_J, KC_Z, + KC_C, KC_T, KC_S, KC_R, KC_N, KC_M, + KC_NUMLOCK, KC_QUOT, KC_Q, KC_G, KC_H, KC_F, KC_C, + MO(QW_A), KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE, +KC_TRNS, KC_TRNS, +KC_TRNS, +KC_TRNS, MO(QW_S), KC_ENTER), +/* Keymap 2: bepo with altgr key to qwerty compat layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | $ | " | < | > | [ | ] |Delete| |ScroLo| @ | + | - | / | * | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | % | | | e | & | o | e |Backsp| |CapsLo| ^ | v | d | l | j | z | + * |--------+------+------+------+------+------| ace | | |------+------+------+------+------+--------| + * | w | a | u | i | € | , |------| |------| c | t | s | r | n | m | + * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------| + * | e | \ | { | } | . | ~ | | | | ' | q | g | h | f | c | + * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' + * |Escape|Insert|LSuper| LCtrl| LAlt| | BEPO |QWERTY| |AZERTY| BEPO | | AltGr| RCtrl|RSuper|PrntSc| Pause| + * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' + * | | |L_NumK| |L_NumK| | | + * | _ |LShift|------| |------|RShift|Enter | + * | | |L_FNav| |L_FNav| | | + * `--------------------' `--------------------' + */ +[QW_A] = KEYMAP( +// Left hand +KC_DOLLAR, S(KC_QUOT), S(KC_COMM), S(KC_DOT), KC_LBRC, KC_RBRC, KC_DEL, +KC_PERCENT, KC_PIPE, KC_E, KC_AMPR, KC_O, KC_E, KC_BSPC, +KC_W, KC_A, KC_U, KC_I, RALT(KC_5), KC_COMMA, +KC_E, KC_BSLASH, KC_LCBR, KC_RCBR, KC_DOT, KC_TILDE, KC_TAB, +KC_ESC, KC_INS, KC_LGUI, KC_LCTL, KC_LALT, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_UNDS, MO(QW_S), KC_TRNS, // Right hand KC_SLCK, KC_AT, KC_PLUS, KC_MINUS, KC_SLASH, KC_ASTR, KC_EQUAL, KC_CAPSLOCK, KC_CIRC, KC_V, KC_D, KC_L, KC_J, KC_Z, KC_C, KC_T, KC_S, KC_R, KC_N, KC_M, KC_NUMLOCK, KC_QUOT, KC_Q, KC_G, KC_H, KC_F, KC_C, - MO(AQWER), KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE, -DF(QWER), DF(BASE), -MO(NUM), -MO(FNAV), MO(SQWER), KC_ENTER), -/* Keymap 2: bepo with shift key to qwerty compat layer + KC_TRNS, KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE, +KC_TRNS, KC_TRNS, +KC_TRNS, +KC_TRNS, MO(QW_S), KC_ENTER), +/* Keymap 3: bepo with shift key to qwerty compat layer * * ,--------------------------------------------------. ,--------------------------------------------------. * | # | 1 | 2 | 3 | 4 | 5 |Delete| |ScroLo| 6 | 7 | 8 | 9 | 0 | = | @@ -100,12 +137,12 @@ MO(FNAV), MO(SQWER), KC_ENTER), * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' * |Escape|Insert|LSuper| LCtrl| LAlt| | BEPO |QWERTY| |AZERTY| BEPO | | AltGr| RCtrl|RSuper|PrntSc| Pause| * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' - * | | | L_Num| | L_Num| | | + * | | |L_NumK| |L_NumK| | | * | Space|LShift|------| |------|RShift|Enter | * | | |L_FNav| |L_FNav| | | * `--------------------' `--------------------' */ -[SQWER] = KEYMAP( +[QW_S] = KEYMAP( // Left hand KC_HASH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_GRV, S(KC_B), S(KC_E), S(KC_P), S(KC_O), S(KC_E), KC_TRNS, @@ -124,43 +161,6 @@ S(KC_ESC), S(KC_INS), S(KC_LGUI), S(KC_LCTL), S(KC_LALT), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -/* Keymap 3: bepo with altgr key to qwerty compat layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | $ | " | < | > | [ | ] |Delete| |ScroLo| @ | + | - | / | * | = | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | % | | | e | & | o | e |Backsp| |CapsLo| ^ | v | d | l | j | z | - * |--------+------+------+------+------+------| ace | | |------+------+------+------+------+--------| - * | w | a | u | i | € | , |------| |------| c | t | s | r | n | m | - * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------| - * | e | \ | { | } | . | ~ | | | | ' | q | g | h | f | c | - * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' - * |Escape|Insert|LSuper| LCtrl| LAlt| | BEPO |QWERTY| |AZERTY| BEPO | | AltGr| RCtrl|RSuper|PrntSc| Pause| - * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' - * | | | L_Num| | L_Num| | | - * | _ |LShift|------| |------|RShift|Enter | - * | | |L_FNav| |L_FNav| | | - * `--------------------' `--------------------' - */ -[AQWER] = KEYMAP( -// Left hand -KC_DOLLAR, S(KC_QUOT), S(KC_COMM), S(KC_DOT), KC_LBRC, KC_RBRC, KC_DEL, -KC_PERCENT, KC_PIPE, KC_E, KC_AMPR, KC_O, KC_E, KC_BSPC, -KC_W, KC_A, KC_U, KC_I, RALT(KC_5), KC_COMMA, -KC_E, KC_BSLASH, KC_LCBR, KC_RCBR, KC_DOT, KC_TILDE, KC_TAB, -KC_ESC, KC_INS, KC_LGUI, KC_LCTL, KC_LALT, - KC_TRNS, KC_TRNS, - MO(NUM), - KC_UNDS, MO(SQWER), MO(FNAV), -// Right hand - KC_SLCK, KC_AT, KC_PLUS, KC_MINUS, KC_SLASH, KC_ASTR, KC_EQUAL, - KC_CAPSLOCK, KC_CIRC, KC_V, KC_D, KC_L, KC_J, KC_Z, - KC_C, KC_T, KC_S, KC_R, KC_N, KC_M, - KC_NUMLOCK, KC_QUOT, KC_Q, KC_G, KC_H, KC_F, KC_C, - KC_TRNS, KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE, -KC_TRNS, KC_TRNS, -MO(NUM), -MO(FNAV), MO(SQWER), KC_ENTER), /* Keymap 4: function / navigation / mouse layer * * ,--------------------------------------------------. ,--------------------------------------------------. @@ -216,7 +216,7 @@ KC_TRNS, KC_TRNS, KC_NO), * | | | | | | | | * `--------------------' `--------------------' */ -[NUM] = KEYMAP( +[NUMK] = KEYMAP( // Left hand KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, @@ -234,7 +234,7 @@ KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_0, M(KP_00), KC_KP_COMMA, KC_KP_ENTER, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, -KC_TRNS, KC_TRNS, KC_TRNS) +KC_TRNS, KC_TRNS, KC_NO) }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -- cgit v1.2.3 From 5a2501d90fb9d2ea1a60d42dfd664d899865e6b5 Mon Sep 17 00:00:00 2001 From: Olivier Date: Mon, 28 Nov 2016 16:38:03 +0100 Subject: Add the AZERTY compatibility layer. --- keyboards/ergodox/keymaps/bepo/keymap.c | 125 +++++++++++++++++++++++++++++-- keyboards/ergodox/keymaps/bepo/readme.md | 4 +- 2 files changed, 122 insertions(+), 7 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/bepo/keymap.c b/keyboards/ergodox/keymaps/bepo/keymap.c index c19ab0d48..05250ee6a 100644 --- a/keyboards/ergodox/keymaps/bepo/keymap.c +++ b/keyboards/ergodox/keymaps/bepo/keymap.c @@ -1,13 +1,17 @@ #include "ergodox.h" #include "keymap_bepo.h" +#include "keymap_french.h" // keymaps #define BEPO 0 // default layer, for bepo compatible systems #define QW_B 1 // bepo to qwerty base compat layer, for qwerty systems #define QW_A 2 // bepo with altgr key to qwerty compat layer #define QW_S 3 // bepo with shift key to qwerty compat layer -#define FNAV 4 // function / navigation / mouse layer -#define NUMK 5 // numeric keypad layer +#define AZ_B 4 // bepo to azerty base compat layer, for azerty systems +#define AZ_A 5 // bepo with altgr key to azerty compat layer +#define AZ_S 6 // bepo with shift key to azerty compat layer +#define FNAV 7 // function / navigation / mouse layer +#define NUMK 8 // numeric keypad layer // macros #define KP_00 0 // keypad "double 0" @@ -47,7 +51,7 @@ KC_ESC, KC_INS, KC_LGUI, KC_LCTL, KC_LALT, BP_C, BP_T, BP_S, BP_R, BP_N, BP_M, KC_NUMLOCK, BP_APOS, BP_Q, BP_G, BP_H, BP_F, BP_CCED, BP_ALGR, KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE, -DF(QW_B), DF(BEPO), +DF(AZ_B), DF(BEPO), MO(NUMK), MO(FNAV), KC_RSHIFT, KC_ENTER), /* Keymap 1: bepo to qwerty base compat layer @@ -161,7 +165,118 @@ S(KC_ESC), S(KC_INS), S(KC_LGUI), S(KC_LCTL), S(KC_LALT), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -/* Keymap 4: function / navigation / mouse layer +/* Keymap 4: bepo to azerty base compat layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | $ | " | < | > | ( | ) |Delete| |ScroLo| @ | + | - | / | * | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | % | b |e_acut| p | o |e_grav|Backsp| |CapsLo| ^ | v | d | l | j | z | + * |--------+------+------+------+------+------| ace | | |------+------+------+------+------+--------| + * | w | a | u | i | e | , |------| |------| c | t | s | r | n | m | + * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------| + * | e |a_grav| y | x | . | k | | | | ' | q | g | h | f | c_cedil| + * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' + * |Escape|Insert|LSuper| LCtrl| LAlt| | BEPO |QWERTY| |AZERTY| BEPO | | AltGr| RCtrl|RSuper|PrntSc| Pause| + * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' + * | | |L_NumK| |L_NumK| | | + * | Space|LShift|------| |------|RShift|Enter | + * | | |L_FNav| |L_FNav| | | + * `--------------------' `--------------------' + */ +[AZ_B] = KEYMAP( +// Left hand +FR_DLR, FR_QUOT, FR_LESS, FR_GRTR, FR_LPRN, FR_RPRN, KC_DEL, +FR_PERC, KC_B, FR_EACU, KC_P, KC_O, FR_EGRV, KC_BSPC, +FR_W, FR_A, KC_U, KC_I, KC_E, FR_COMM, +KC_E, FR_AGRV, KC_Y, KC_X, FR_DOT, KC_K, KC_TAB, +KC_ESC, KC_INS, KC_LGUI, KC_LCTL, KC_LALT, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_SPC, MO(AZ_S), KC_TRNS, +// Right hand + KC_SLCK, FR_AT, FR_PLUS, FR_MINS, FR_SLSH, FR_ASTR, FR_EQL, + KC_CAPSLOCK, KC_LBRC, KC_V, KC_D, KC_L, KC_J, FR_Z, + KC_C, KC_T, KC_S, KC_R, KC_N, FR_M, + KC_NUMLOCK, FR_APOS, FR_Q, KC_G, KC_H, KC_F, FR_CCED, + MO(AZ_A), KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE, +KC_TRNS, KC_TRNS, +KC_TRNS, +KC_TRNS, MO(AZ_S), KC_ENTER), +/* Keymap 5: bepo with altgr key to azerty compat layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | $ | " | < | > | [ | ] |Delete| |ScroLo| @ | + | - | / | * | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | % | | | e | & | o | e |Backsp| |CapsLo| ^ | v | d | l | j | z | + * |--------+------+------+------+------+------| ace | | |------+------+------+------+------+--------| + * | w | a |u_grav| trem | € | , |------| |------| c | t | s | r | n | m | + * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------| + * | / | \ | { | } | . | ~ | | | | ' | q | g | h | f | c | + * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' + * |Escape|Insert|LSuper| LCtrl| LAlt| | BEPO |QWERTY| |AZERTY| BEPO | | AltGr| RCtrl|RSuper|PrntSc| Pause| + * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' + * | | |L_NumK| |L_NumK| | | + * | _ |LShift|------| |------|RShift|Enter | + * | | |L_FNav| |L_FNav| | | + * `--------------------' `--------------------' + */ +[AZ_A] = KEYMAP( +// Left hand +FR_DLR, FR_QUOT, FR_LESS, FR_GRTR, FR_LBRC, FR_RBRC, KC_DEL, +FR_PERC, FR_PIPE, FR_EACU, FR_AMP, KC_O, FR_EGRV, KC_BSPC, +FR_W, FR_A, FR_UGRV, S(KC_LBRC), FR_EURO, FR_COMM, +FR_SLSH, FR_BSLS, FR_LCBR, FR_RCBR, FR_DOT, FR_TILD, KC_TAB, +KC_ESC, KC_INS, KC_LGUI, KC_LCTL, KC_LALT, + KC_TRNS, KC_TRNS, + KC_TRNS, + FR_UNDS, MO(AZ_S), KC_TRNS, +// Right hand + KC_SLCK, FR_AT, FR_PLUS, FR_MINS, FR_SLSH, FR_ASTR, FR_EQL, + KC_CAPSLOCK, KC_LBRC, KC_V, KC_D, KC_L, KC_J, FR_Z, + KC_C, KC_T, KC_S, KC_R, KC_N, FR_M, + KC_NUMLOCK, FR_APOS, FR_Q, KC_G, KC_H, KC_F, FR_CCED, + KC_TRNS, KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE, +KC_TRNS, KC_TRNS, +KC_TRNS, +KC_TRNS, MO(AZ_S), KC_ENTER), +/* Keymap 6: bepo with shift key to azerty compat layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | # | 1 | 2 | 3 | 4 | 5 |Delete| |ScroLo| 6 | 7 | 8 | 9 | 0 | ° | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | ` | B | E | P | O | E |Backsp| |CapsLo| ! | V | D | L | J | Z | + * |--------+------+------+------+------+------| ace | | |------+------+------+------+------+--------| + * | W | A | U | I | E | ; |------| |------| C | T | S | R | N | M | + * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------| + * | E | A | Y | X | : | K | | | | ? | Q | G | H | F | C | + * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' + * |Escape|Insert|LSuper| LCtrl| LAlt| | BEPO |QWERTY| |AZERTY| BEPO | | AltGr| RCtrl|RSuper|PrntSc| Pause| + * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' + * | | |L_NumK| |L_NumK| | | + * | Space|LShift|------| |------|RShift|Enter | + * | | |L_FNav| |L_FNav| | | + * `--------------------' `--------------------' + */ +[AZ_S] = KEYMAP( +// Left hand +FR_HASH, FR_1, FR_2, FR_3, FR_4, FR_5, KC_TRNS, +FR_GRV, S(KC_B), S(KC_E), S(KC_P), S(KC_O), S(KC_E), KC_TRNS, +S(FR_W), S(FR_A), S(KC_U), S(KC_I), S(KC_E), FR_SCLN, +S(KC_E), S(FR_A), S(KC_Y), S(KC_X), FR_COLN, S(KC_K), S(KC_TAB), +S(KC_ESC), S(KC_INS), S(KC_LGUI), S(KC_LCTL), S(KC_LALT), + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, +// Right hand + KC_TRNS, FR_6, FR_7, FR_8, FR_9, FR_0, FR_OVRR, + KC_TRNS, FR_EXLM, S(KC_V), S(KC_D), S(KC_L), S(KC_J), S(FR_Z), + S(KC_C), S(KC_T), S(KC_S), S(KC_R), S(KC_N), S(FR_M), + KC_TRNS, FR_QUES, S(FR_Q), S(KC_G), S(KC_H), S(KC_F), S(KC_C), + S(KC_RALT), S(KC_RCTL), S(KC_RGUI), KC_TRNS, KC_TRNS, +KC_TRNS, KC_TRNS, +KC_TRNS, +KC_TRNS, KC_TRNS, KC_TRNS), +/* Keymap 7: function / navigation / mouse layer * * ,--------------------------------------------------. ,--------------------------------------------------. * | | F1 | F2 | F3 | F4 | F5 |VolMut| | | F6 | F7 | F8 | F9 | F10 | | @@ -198,7 +313,7 @@ KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO), -/* Keymap 5: numeric keypad layer, sends keypad codes +/* Keymap 8: numeric keypad layer, sends keypad codes * * ,--------------------------------------------------. ,--------------------------------------------------. * | | | | | | | | | | | NumLo| / | * | - | | diff --git a/keyboards/ergodox/keymaps/bepo/readme.md b/keyboards/ergodox/keymaps/bepo/readme.md index 51a506985..2959ac829 100644 --- a/keyboards/ergodox/keymaps/bepo/readme.md +++ b/keyboards/ergodox/keymaps/bepo/readme.md @@ -27,8 +27,8 @@ Touche de fonction permettant de saisir les touches F1 à F12, les touches F1 à Touche de fonction permettant l'accès au pavé numérique comme sur la TypeMatrix 2030, mais sans avoir à déplacer la main droite : avec les doigts sur la rangée de repos, possibilité de saisir les chiffres "4", "5" et "6" comme sur un pavé numérique classique. Le double "0" de la TypeMatrix a été conservé, et gagne une possibilité de répétition en simples "0". -Touche permettant de basculer en mode BEPO sur un système configuré pour un clavier QWERTY. Cette compatibilité n'est pas parfaite (pas encore de gestion des accents mais ça devrait être faisable avec une disposition en qwerty international, et les combinaisons de touches ne sont pas toutes supportées puisque le clavier traduit déjà certaines touches en combinaisons) mais reste pratique pour une saisie de texte occasionnelle. +Touche permettant de basculer en mode BEPO sur un système configuré pour un clavier QWERTY. Cette compatibilité n'est pas parfaite (pas encore de gestion des accents mais ça devrait être faisable avec une disposition en qwerty international, et les combinaisons de touches ne sont pas toutes supportées puisque le clavier traduit déjà certaines touches en combinaisons) mais reste pratique pour une saisie de texte occasionnelle et pour des accès BIOS ou console en QWERTY. -TODO : couche de compatibilité pour utiliser la disposition BÉPO sur un système configuré pour un clavier AZERTY. +Touche permettant de basculer en mode BEPO sur un système configuré pour un clavier AZERTY. Cette compatibilité n'est pas parfaite (pas de gestion des caractères non présents sur le clavier AZERTY, et les combinaisons de touches ne sont pas toutes supportées puisque le clavier traduit déjà certaines touches en combinaisons) mais reste pratique pour une saisie de texte occasionnelle et pour faire du bureau à distance vers un système Windows sans BEPO. > Olivier Smedts -- cgit v1.2.3 From 06f18e95d4670a055ca349da7d653e0bcb37d83a Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 29 Nov 2016 00:06:12 -0500 Subject: enable api sysex for ez --- keyboards/ergodox/ez/rules.mk | 1 + 1 file changed, 1 insertion(+) (limited to 'keyboards') diff --git a/keyboards/ergodox/ez/rules.mk b/keyboards/ergodox/ez/rules.mk index a9715beb8..f570061fe 100644 --- a/keyboards/ergodox/ez/rules.mk +++ b/keyboards/ergodox/ez/rules.mk @@ -72,6 +72,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=512 # SLEEP_LED_ENABLE = no +API_SYSEX_ENABLE ?= yes ifndef QUANTUM_DIR include ../../../Makefile -- cgit v1.2.3 From d0cefef946660865dae80877886fcce610920a27 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 29 Nov 2016 00:09:56 -0500 Subject: enable rgblight by default for ez --- keyboards/ergodox/ez/config.h | 11 +++++++++++ keyboards/ergodox/ez/rules.mk | 1 + 2 files changed, 12 insertions(+) (limited to 'keyboards') diff --git a/keyboards/ergodox/ez/config.h b/keyboards/ergodox/ez/config.h index 67a856e51..c2750a321 100644 --- a/keyboards/ergodox/ez/config.h +++ b/keyboards/ergodox/ez/config.h @@ -41,6 +41,17 @@ along with this program. If not, see . #define LED_BRIGHTNESS_LO 15 #define LED_BRIGHTNESS_HI 255 +/* ws2812 RGB LED */ +#define RGB_DI_PIN D7 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 15 // Number of LEDs +#define RGBLIGHT_HUE_STEP 12 +#define RGBLIGHT_SAT_STEP 255 +#define RGBLIGHT_VAL_STEP 12 + +#define RGB_MIDI +#define RGBW_BB_TWI + /* Set 0 if debouncing isn't needed */ #define DEBOUNCE 5 diff --git a/keyboards/ergodox/ez/rules.mk b/keyboards/ergodox/ez/rules.mk index f570061fe..893cfa7a8 100644 --- a/keyboards/ergodox/ez/rules.mk +++ b/keyboards/ergodox/ez/rules.mk @@ -73,6 +73,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=512 SLEEP_LED_ENABLE = no API_SYSEX_ENABLE ?= yes +RGBLIGHT_ENABLE ?= yes ifndef QUANTUM_DIR include ../../../Makefile -- cgit v1.2.3 From f946d830f98da0161753d37da9659caa7469cf4f Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 29 Nov 2016 00:11:11 -0500 Subject: guess i didnt pull --- keyboards/ergodox/ez/config.h | 11 ----------- 1 file changed, 11 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/ez/config.h b/keyboards/ergodox/ez/config.h index f3e1020bd..c2750a321 100644 --- a/keyboards/ergodox/ez/config.h +++ b/keyboards/ergodox/ez/config.h @@ -56,17 +56,6 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCE 5 -/* ws2812 RGB LED */ -#define RGB_DI_PIN D7 -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 15 // Number of LEDs -#define RGBLIGHT_HUE_STEP 12 -#define RGBLIGHT_SAT_STEP 255 -#define RGBLIGHT_VAL_STEP 12 - -#define RGB_MIDI -#define RGBW_BB_TWI - /* * Feature disable options * These options are also useful to firmware size reduction. -- cgit v1.2.3 From 4094544d41450617bc21ab58646603b8964eae0e Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Tue, 29 Nov 2016 09:23:16 -0500 Subject: Test layout for ErgoDox EZ manufacturing robot --- .../ergodox/keymaps/robot_test_layout/keymap.c | 130 +++++++++++++++++++++ .../ergodox/keymaps/robot_test_layout/readme.md | 5 + quantum/rgblight.c | 6 + quantum/rgblight.h | 2 + 4 files changed, 143 insertions(+) create mode 100644 keyboards/ergodox/keymaps/robot_test_layout/keymap.c create mode 100644 keyboards/ergodox/keymaps/robot_test_layout/readme.md (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/robot_test_layout/keymap.c b/keyboards/ergodox/keymaps/robot_test_layout/keymap.c new file mode 100644 index 000000000..0363eedc2 --- /dev/null +++ b/keyboards/ergodox/keymaps/robot_test_layout/keymap.c @@ -0,0 +1,130 @@ +#include "ergodox.h" +#include "debug.h" +#include "action_layer.h" +#include "version.h" + +enum custom_keycodes { + PLACEHOLDER = SAFE_RANGE, // can always be here + RGB_FF0000, + RGB_00FF00, + RGB_0000FF, + RGB_FFFFFF, + RGB_TOGGLE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = KEYMAP( + RGB_TOGGLE,RGB_FF0000,RGB_00FF00,RGB_0000FF,RGB_FFFFFF,RGB_TOGGLE,KC_6, + KC_A,KC_Q,KC_W,KC_E,KC_R,KC_T,KC_E,KC_A,KC_A,KC_S,KC_D,KC_F,KC_G,KC_A,KC_Z,KC_X,KC_C,KC_V,KC_B,KC_L,KC_Z,KC_QUOTE,KC_N,KC_U,KC_C,KC_E,KC_8,KC_9,KC_Y,KC_COMMA,KC_6,KC_7,KC_6,KC_7,KC_8,KC_9,KC_0,KC_MINUS,KC_J,KC_Y,KC_U,KC_I,KC_O,KC_P,KC_BSLASH,KC_H,KC_J,KC_K,KC_L,KC_J,KC_K,KC_Z,KC_N,KC_M,KC_COMMA,KC_DOT,KC_E,KC_QUOTE,KC_8,KC_7,KC_LBRACKET,KC_RBRACKET,KC_H,KC_9,KC_7,KC_8,KC_7,KC_6,KC_9), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(1) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case 0: + if (record->event.pressed) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + } + break; + } + return MACRO_NONE; +}; + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + // dynamically generate these. + case RGB_FF0000: + if (record->event.pressed) { + #ifdef RGBLIGHT_ENABLE + EZ_RGB(0xff0000); + register_code(KC_A); unregister_code(KC_A); + #endif + } + return false; + break; + case RGB_00FF00: + if (record->event.pressed) { + #ifdef RGBLIGHT_ENABLE + EZ_RGB(0x00ff00); + register_code(KC_B); unregister_code(KC_B); + #endif + } + return false; + break; + case RGB_0000FF: + if (record->event.pressed) { + #ifdef RGBLIGHT_ENABLE + EZ_RGB(0x0000ff); + register_code(KC_C); unregister_code(KC_C); + #endif + } + return false; + break; + case RGB_FFFFFF: + if (record->event.pressed) { + #ifdef RGBLIGHT_ENABLE + EZ_RGB(0xffffff); + register_code(KC_D); unregister_code(KC_D); + #endif + } + return false; + break; + case RGB_TOGGLE: + if (record->event.pressed) { + #ifdef RGBLIGHT_ENABLE + rgblight_toggle(); + register_code(KC_F); unregister_code(KC_F); + #endif + } + return false; + break; + } + return true; +} + +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + case 3: + ergodox_right_led_3_on(); + break; + case 4: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + break; + case 5: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); + break; + case 6: + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + break; + case 7: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + break; + default: + break; + } + +}; diff --git a/keyboards/ergodox/keymaps/robot_test_layout/readme.md b/keyboards/ergodox/keymaps/robot_test_layout/readme.md new file mode 100644 index 000000000..45dc2aa76 --- /dev/null +++ b/keyboards/ergodox/keymaps/robot_test_layout/readme.md @@ -0,0 +1,5 @@ +# Robot test layout + +Use this layout if you like to pretend you're [Norman](https://www.youtube.com/watch?v=-sbxFBay-tg), the ErgoDox EZ manufacturing robot. + +It's really meant just for internal use, but we're posting it on GitHub anyway, because hurray to open source. :) diff --git a/quantum/rgblight.c b/quantum/rgblight.c index bb03d6e91..625971e0f 100644 --- a/quantum/rgblight.c +++ b/quantum/rgblight.c @@ -425,6 +425,12 @@ void rgblight_timer_toggle(void) { dprintf("TIMER3 toggled.\n"); } +void rgblight_show_solid_color(uint8_t r, uint8_t g, uint8_t b) { + rgblight_enable(); + rgblight_mode(1); + rgblight_setrgb(r, g, b); +} + void rgblight_task(void) { if (rgblight_timer_enabled) { // mode = 1, static light, do nothing here diff --git a/quantum/rgblight.h b/quantum/rgblight.h index 28a410e48..aa1d026e0 100644 --- a/quantum/rgblight.h +++ b/quantum/rgblight.h @@ -84,6 +84,8 @@ void sethsv(uint16_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1); void setrgb(uint8_t r, uint8_t g, uint8_t b, LED_TYPE *led1); void rgblight_sethsv_noeeprom(uint16_t hue, uint8_t sat, uint8_t val); +#define EZ_RGB(val) rgblight_show_solid_color((val >> 16) & 0xFF, (val >> 8) & 0xFF, val & 0xFF) +void rgblight_show_solid_color(uint8_t r, uint8_t g, uint8_t b); void rgblight_task(void); -- cgit v1.2.3 From fe001d46fd06924bb81fe8d506f5be8894db3df0 Mon Sep 17 00:00:00 2001 From: Wilba6582 Date: Mon, 28 Nov 2016 18:31:16 +1100 Subject: Initial version of Raw HID interface --- keyboards/planck/planck.c | 16 ++++++- keyboards/planck/rules.mk | 3 +- tmk_core/common.mk | 4 ++ tmk_core/common/raw_hid.h | 8 ++++ tmk_core/protocol/lufa/descriptor.c | 87 +++++++++++++++++++++++++++++++++- tmk_core/protocol/lufa/descriptor.h | 35 +++++++++++--- tmk_core/protocol/lufa/lufa.c | 94 +++++++++++++++++++++++++++++++++++++ 7 files changed, 237 insertions(+), 10 deletions(-) create mode 100644 tmk_core/common/raw_hid.h (limited to 'keyboards') diff --git a/keyboards/planck/planck.c b/keyboards/planck/planck.c index 645b450d1..0d37b6622 100644 --- a/keyboards/planck/planck.c +++ b/keyboards/planck/planck.c @@ -1,5 +1,8 @@ #include "planck.h" +#include "raw_hid.h" +#include "keymap.h" + #ifdef ONEHAND_ENABLE __attribute__ ((weak)) const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { @@ -16,4 +19,15 @@ void matrix_init_kb(void) { PORTE |= (1<<6); matrix_init_user(); -} \ No newline at end of file +} + +#ifdef RAW_ENABLE + +void raw_hid_receive( uint8_t *data, uint8_t length ) +{ + // Basic test of Raw HID + // Echo back data received + raw_hid_send( data, length ); +} + +#endif diff --git a/keyboards/planck/rules.mk b/keyboards/planck/rules.mk index ccee97271..4874d92b9 100644 --- a/keyboards/planck/rules.mk +++ b/keyboards/planck/rules.mk @@ -62,7 +62,8 @@ AUDIO_ENABLE ?= no # Audio output on port C6 UNICODE_ENABLE ?= no # Unicode BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. -API_SYSEX_ENABLE = yes +API_SYSEX_ENABLE = no +RAW_ENABLE = yes # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend \ No newline at end of file diff --git a/tmk_core/common.mk b/tmk_core/common.mk index f826a7b54..d65f02f12 100644 --- a/tmk_core/common.mk +++ b/tmk_core/common.mk @@ -50,6 +50,10 @@ ifeq ($(strip $(EXTRAKEY_ENABLE)), yes) TMK_COMMON_DEFS += -DEXTRAKEY_ENABLE endif +ifeq ($(strip $(RAW_ENABLE)), yes) + TMK_COMMON_DEFS += -DRAW_ENABLE +endif + ifeq ($(strip $(CONSOLE_ENABLE)), yes) TMK_COMMON_DEFS += -DCONSOLE_ENABLE else diff --git a/tmk_core/common/raw_hid.h b/tmk_core/common/raw_hid.h new file mode 100644 index 000000000..86da02fd1 --- /dev/null +++ b/tmk_core/common/raw_hid.h @@ -0,0 +1,8 @@ +#ifndef _RAW_HID_H_ +#define _RAW_HID_H_ + +void raw_hid_receive( uint8_t *data, uint8_t length ); + +void raw_hid_send( uint8_t *data, uint8_t length ); + +#endif diff --git a/tmk_core/protocol/lufa/descriptor.c b/tmk_core/protocol/lufa/descriptor.c index 6f2407f58..bf47787d2 100644 --- a/tmk_core/protocol/lufa/descriptor.c +++ b/tmk_core/protocol/lufa/descriptor.c @@ -164,6 +164,28 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM ExtrakeyReport[] = }; #endif +#ifdef RAW_ENABLE +const USB_Descriptor_HIDReport_Datatype_t PROGMEM RawReport[] = +{ + HID_RI_USAGE_PAGE(16, 0xFF60), /* Vendor Page 0xFF60 */ + HID_RI_USAGE(8, 0x61), /* Vendor Usage 0x61 */ + HID_RI_COLLECTION(8, 0x01), /* Application */ + HID_RI_USAGE(8, 0x62), /* Vendor Usage 0x62 */ + HID_RI_LOGICAL_MINIMUM(8, 0x00), + HID_RI_LOGICAL_MAXIMUM(16, 0x00FF), + HID_RI_REPORT_COUNT(8, RAW_EPSIZE), + HID_RI_REPORT_SIZE(8, 0x08), + HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), + HID_RI_USAGE(8, 0x63), /* Vendor Usage 0x63 */ + HID_RI_LOGICAL_MINIMUM(8, 0x00), + HID_RI_LOGICAL_MAXIMUM(16, 0x00FF), + HID_RI_REPORT_COUNT(8, RAW_EPSIZE), + HID_RI_REPORT_SIZE(8, 0x08), + HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), + HID_RI_END_COLLECTION(0), +}; +#endif + #ifdef CONSOLE_ENABLE const USB_Descriptor_HIDReport_Datatype_t PROGMEM ConsoleReport[] = { @@ -399,6 +421,58 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = }, #endif + /* + * Raw + */ + #ifdef RAW_ENABLE + .Raw_Interface = + { + .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, + + .InterfaceNumber = RAW_INTERFACE, + .AlternateSetting = 0x00, + + .TotalEndpoints = 2, + + .Class = HID_CSCP_HIDClass, + .SubClass = HID_CSCP_NonBootSubclass, + .Protocol = HID_CSCP_NonBootProtocol, + + .InterfaceStrIndex = NO_DESCRIPTOR + }, + + .Raw_HID = + { + .Header = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = HID_DTYPE_HID}, + + .HIDSpec = VERSION_BCD(1,1,1), + .CountryCode = 0x00, + .TotalReportDescriptors = 1, + .HIDReportType = HID_DTYPE_Report, + .HIDReportLength = sizeof(RawReport) + }, + + .Raw_INEndpoint = + { + .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, + + .EndpointAddress = (ENDPOINT_DIR_IN | RAW_IN_EPNUM), + .Attributes = (EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), + .EndpointSize = RAW_EPSIZE, + .PollingIntervalMS = 0x01 + }, + + .Raw_OUTEndpoint = + { + .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, + + .EndpointAddress = (ENDPOINT_DIR_OUT | RAW_OUT_EPNUM), + .Attributes = (EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), + .EndpointSize = RAW_EPSIZE, + .PollingIntervalMS = 0x01 + }, + #endif + /* * Console */ @@ -754,7 +828,6 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = .PollingIntervalMS = 0x05 }, #endif - }; @@ -846,6 +919,12 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, Size = sizeof(USB_HID_Descriptor_HID_t); break; #endif +#ifdef RAW_ENABLE + case RAW_INTERFACE: + Address = &ConfigurationDescriptor.Raw_HID; + Size = sizeof(USB_HID_Descriptor_HID_t); + break; +#endif #ifdef CONSOLE_ENABLE case CONSOLE_INTERFACE: Address = &ConfigurationDescriptor.Console_HID; @@ -878,6 +957,12 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, Size = sizeof(ExtrakeyReport); break; #endif +#ifdef RAW_ENABLE + case RAW_INTERFACE: + Address = &RawReport; + Size = sizeof(RawReport); + break; +#endif #ifdef CONSOLE_ENABLE case CONSOLE_INTERFACE: Address = &ConsoleReport; diff --git a/tmk_core/protocol/lufa/descriptor.h b/tmk_core/protocol/lufa/descriptor.h index c6c94e361..24ce420e6 100644 --- a/tmk_core/protocol/lufa/descriptor.h +++ b/tmk_core/protocol/lufa/descriptor.h @@ -71,6 +71,14 @@ typedef struct USB_Descriptor_Endpoint_t Extrakey_INEndpoint; #endif +#ifdef RAW_ENABLE + // Raw HID Interface + USB_Descriptor_Interface_t Raw_Interface; + USB_HID_Descriptor_HID_t Raw_HID; + USB_Descriptor_Endpoint_t Raw_INEndpoint; + USB_Descriptor_Endpoint_t Raw_OUTEndpoint; +#endif + #ifdef CONSOLE_ENABLE // Console HID Interface USB_Descriptor_Interface_t Console_Interface; @@ -137,10 +145,16 @@ typedef struct # define EXTRAKEY_INTERFACE MOUSE_INTERFACE #endif +#ifdef RAW_ENABLE +# define RAW_INTERFACE (EXTRAKEY_INTERFACE + 1) +#else +# define RAW_INTERFACE EXTRAKEY_INTERFACE +#endif + #ifdef CONSOLE_ENABLE -# define CONSOLE_INTERFACE (EXTRAKEY_INTERFACE + 1) +# define CONSOLE_INTERFACE (RAW_INTERFACE + 1) #else -# define CONSOLE_INTERFACE EXTRAKEY_INTERFACE +# define CONSOLE_INTERFACE RAW_INTERFACE #endif #ifdef NKRO_ENABLE @@ -182,12 +196,19 @@ typedef struct # define EXTRAKEY_IN_EPNUM MOUSE_IN_EPNUM #endif +#ifdef RAW_ENABLE +# define RAW_IN_EPNUM (EXTRAKEY_IN_EPNUM + 1) +# define RAW_OUT_EPNUM (EXTRAKEY_IN_EPNUM + 2) +#else +# define RAW_OUT_EPNUM EXTRAKEY_IN_EPNUM +#endif + #ifdef CONSOLE_ENABLE -# define CONSOLE_IN_EPNUM (EXTRAKEY_IN_EPNUM + 1) -# define CONSOLE_OUT_EPNUM (EXTRAKEY_IN_EPNUM + 1) -//# define CONSOLE_OUT_EPNUM (EXTRAKEY_IN_EPNUM + 2) +# define CONSOLE_IN_EPNUM (RAW_OUT_EPNUM + 1) +//# define CONSOLE_OUT_EPNUM (RAW_OUT_EPNUM + 2) +# define CONSOLE_OUT_EPNUM (RAW_OUT_EPNUM + 1) #else -# define CONSOLE_OUT_EPNUM EXTRAKEY_IN_EPNUM +# define CONSOLE_OUT_EPNUM RAW_OUT_EPNUM #endif #ifdef NKRO_ENABLE @@ -217,7 +238,6 @@ typedef struct # define CDC_OUT_EPNUM MIDI_STREAM_OUT_EPNUM #endif - #if defined(__AVR_ATmega32U2__) && CDC_OUT_EPNUM > 4 # error "Endpoints are not available enough to support all functions. Remove some in Makefile.(MOUSEKEY, EXTRAKEY, CONSOLE, NKRO, MIDI, SERIAL)" #endif @@ -225,6 +245,7 @@ typedef struct #define KEYBOARD_EPSIZE 8 #define MOUSE_EPSIZE 8 #define EXTRAKEY_EPSIZE 8 +#define RAW_EPSIZE 32 #define CONSOLE_EPSIZE 32 #define NKRO_EPSIZE 32 #define MIDI_STREAM_EPSIZE 64 diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index 39d4824b6..aeb5f0781 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c @@ -80,6 +80,10 @@ #include "sysex_tools.h" #endif +#ifdef RAW_ENABLE + #include "raw_hid.h" +#endif + uint8_t keyboard_idle = 0; /* 0: Boot Protocol, 1: Report Protocol(default) */ uint8_t keyboard_protocol = 1; @@ -175,6 +179,80 @@ USB_ClassInfo_CDC_Device_t cdc_device = }; #endif +#ifdef RAW_ENABLE + +void raw_hid_send( uint8_t *data, uint8_t length ) +{ + // TODO: implement variable size packet + if ( length != RAW_EPSIZE ) + { + return; + } + + if (USB_DeviceState != DEVICE_STATE_Configured) + { + return; + } + + // TODO: decide if we allow calls to raw_hid_send() in the middle + // of other endpoint usage. + uint8_t ep = Endpoint_GetCurrentEndpoint(); + + Endpoint_SelectEndpoint(RAW_IN_EPNUM); + + // Check to see if the host is ready to accept another packet + if (Endpoint_IsINReady()) + { + // Write data + Endpoint_Write_Stream_LE(data, RAW_EPSIZE, NULL); + // Finalize the stream transfer to send the last packet + Endpoint_ClearIN(); + } + + Endpoint_SelectEndpoint(ep); +} + +__attribute__ ((weak)) +void raw_hid_receive( uint8_t *data, uint8_t length ) +{ + // Users should #include "raw_hid.h" in their own code + // and implement this function there. Leave this as weak linkage + // so users can opt to not handle data coming in. +} + +static void raw_hid_task(void) +{ + // Create a temporary buffer to hold the read in data from the host + uint8_t data[RAW_EPSIZE]; + bool data_read = false; + + // Device must be connected and configured for the task to run + if (USB_DeviceState != DEVICE_STATE_Configured) + return; + + Endpoint_SelectEndpoint(RAW_OUT_EPNUM); + + // Check to see if a packet has been sent from the host + if (Endpoint_IsOUTReceived()) + { + // Check to see if the packet contains data + if (Endpoint_IsReadWriteAllowed()) + { + /* Read data */ + Endpoint_Read_Stream_LE(data, sizeof(data), NULL); + data_read = true; + } + + // Finalize the stream transfer to receive the last packet + Endpoint_ClearOUT(); + + if ( data_read ) + { + raw_hid_receive( data, sizeof(data) ); + } + } +} +#endif /******************************************************************************* * Console @@ -294,6 +372,8 @@ void EVENT_USB_Device_WakeUp() #endif } + + #ifdef CONSOLE_ENABLE static bool console_flush = false; #define CONSOLE_FLUSH_SET(b) do { \ @@ -311,6 +391,7 @@ void EVENT_USB_Device_StartOfFrame(void) Console_Task(); console_flush = false; } + #endif /** Event handler for the USB_ConfigurationChanged event. @@ -339,6 +420,14 @@ void EVENT_USB_Device_ConfigurationChanged(void) EXTRAKEY_EPSIZE, ENDPOINT_BANK_SINGLE); #endif +#ifdef RAW_ENABLE + /* Setup Raw HID Report Endpoints */ + ConfigSuccess &= ENDPOINT_CONFIG(RAW_IN_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_IN, + RAW_EPSIZE, ENDPOINT_BANK_SINGLE); + ConfigSuccess &= ENDPOINT_CONFIG(RAW_OUT_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_OUT, + RAW_EPSIZE, ENDPOINT_BANK_SINGLE); +#endif + #ifdef CONSOLE_ENABLE /* Setup Console HID Report Endpoints */ ConfigSuccess &= ENDPOINT_CONFIG(CONSOLE_IN_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_IN, @@ -1064,9 +1153,14 @@ int main(void) CDC_Device_USBTask(&cdc_device); #endif +#ifdef RAW_ENABLE + raw_hid_task(); +#endif + #if !defined(INTERRUPT_CONTROL_ENDPOINT) USB_USBTask(); #endif + } } -- cgit v1.2.3 From 66b13a66e93c50ba6258fcde548ab946fd8db683 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Wed, 30 Nov 2016 22:22:57 -0500 Subject: Better layout --- .../ergodox/keymaps/robot_test_layout/keymap.c | 121 ++++++++++++--------- 1 file changed, 71 insertions(+), 50 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/robot_test_layout/keymap.c b/keyboards/ergodox/keymaps/robot_test_layout/keymap.c index 0363eedc2..480be177f 100644 --- a/keyboards/ergodox/keymaps/robot_test_layout/keymap.c +++ b/keyboards/ergodox/keymaps/robot_test_layout/keymap.c @@ -9,16 +9,42 @@ enum custom_keycodes { RGB_00FF00, RGB_0000FF, RGB_FFFFFF, - RGB_TOGGLE + RGB_TOGGLE, + LED1, + LED2, + LED3 }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = KEYMAP( - RGB_TOGGLE,RGB_FF0000,RGB_00FF00,RGB_0000FF,RGB_FFFFFF,RGB_TOGGLE,KC_6, - KC_A,KC_Q,KC_W,KC_E,KC_R,KC_T,KC_E,KC_A,KC_A,KC_S,KC_D,KC_F,KC_G,KC_A,KC_Z,KC_X,KC_C,KC_V,KC_B,KC_L,KC_Z,KC_QUOTE,KC_N,KC_U,KC_C,KC_E,KC_8,KC_9,KC_Y,KC_COMMA,KC_6,KC_7,KC_6,KC_7,KC_8,KC_9,KC_0,KC_MINUS,KC_J,KC_Y,KC_U,KC_I,KC_O,KC_P,KC_BSLASH,KC_H,KC_J,KC_K,KC_L,KC_J,KC_K,KC_Z,KC_N,KC_M,KC_COMMA,KC_DOT,KC_E,KC_QUOTE,KC_8,KC_7,KC_LBRACKET,KC_RBRACKET,KC_H,KC_9,KC_7,KC_8,KC_7,KC_6,KC_9), + RGB_TOGGLE, RGB_FF0000, RGB_00FF00, RGB_0000FF, RGB_FFFFFF, KC_5, KC_LPRN, + KC_GRAVE, KC_A, KC_B, KC_C, KC_D, KC_E, KC_EXLM, + KC_HASH, KC_J, KC_K, KC_L, KC_M, KC_N, + KC_AMPR, KC_T, KC_U, KC_V, KC_W, KC_X, KC_DLR, + KC_PIPE, KC_R, KC_PLUS, KC_LCBR, KC_RCBR, + + KC_F, KC_G, + KC_H, + KC_P, KC_O, KC_I, + + + + // RIGHT HAND + KC_RPRN, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_AT, KC_F, KC_G, KC_H, KC_I, KC_COLN, KC_BSLS, + KC_O, KC_P, KC_Q, KC_R, KC_S, KC_QUOT, + LSFT(KC_COMM), KC_Y, KC_Z, KC_COMM, KC_DOT, KC_SLSH, KC_ASTR, + KC_A, KC_B, KC_C, KC_D, KC_PIPE, + + LED1, KC_E, + LED2, + LED3, KC_J, KC_K + ) }; + + const uint16_t PROGMEM fn_actions[] = { [1] = ACTION_LAYER_TAP_TOGGLE(1) }; @@ -35,7 +61,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) return MACRO_NONE; }; - +bool status_led1_on = false, status_led2_on = false, status_led3_on = false; bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { // dynamically generate these. @@ -43,7 +69,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { #ifdef RGBLIGHT_ENABLE EZ_RGB(0xff0000); - register_code(KC_A); unregister_code(KC_A); + register_code(KC_1); unregister_code(KC_1); #endif } return false; @@ -52,7 +78,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { #ifdef RGBLIGHT_ENABLE EZ_RGB(0x00ff00); - register_code(KC_B); unregister_code(KC_B); + register_code(KC_2); unregister_code(KC_2); #endif } return false; @@ -61,7 +87,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { #ifdef RGBLIGHT_ENABLE EZ_RGB(0x0000ff); - register_code(KC_C); unregister_code(KC_C); + register_code(KC_3); unregister_code(KC_3); #endif } return false; @@ -70,7 +96,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { #ifdef RGBLIGHT_ENABLE EZ_RGB(0xffffff); - register_code(KC_D); unregister_code(KC_D); + register_code(KC_4); unregister_code(KC_4); #endif } return false; @@ -79,52 +105,47 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { #ifdef RGBLIGHT_ENABLE rgblight_toggle(); - register_code(KC_F); unregister_code(KC_F); + register_code(KC_EQL); unregister_code(KC_EQL); #endif } return false; break; + case LED1: + if (record->event.pressed) { + if(status_led1_on) { + ergodox_right_led_1_off(); + status_led1_on = false; + } else { + ergodox_right_led_1_on(); + status_led1_on = true; + } + } + return false; + break; + case LED2: + if (record->event.pressed) { + if(status_led2_on) { + ergodox_right_led_2_off(); + status_led2_on = false; + } else { + ergodox_right_led_2_on(); + status_led2_on = true; + } + } + return false; + break; + case LED3: + if (record->event.pressed) { + if(status_led3_on) { + ergodox_right_led_3_off(); + status_led3_on = false; + } else { + ergodox_right_led_3_on(); + status_led3_on = true; + } + } + return false; + break; } return true; } - -void matrix_scan_user(void) { - - uint8_t layer = biton32(layer_state); - - ergodox_board_led_off(); - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - switch (layer) { - case 1: - ergodox_right_led_1_on(); - break; - case 2: - ergodox_right_led_2_on(); - break; - case 3: - ergodox_right_led_3_on(); - break; - case 4: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - break; - case 5: - ergodox_right_led_1_on(); - ergodox_right_led_3_on(); - break; - case 6: - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); - break; - case 7: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); - break; - default: - break; - } - -}; -- cgit v1.2.3 From 1f290f6213c7c3bf001a85242cfae4f9b5a14942 Mon Sep 17 00:00:00 2001 From: cbbrowne Date: Thu, 1 Dec 2016 16:21:15 -0500 Subject: Make my builds smaller --- keyboards/planck/keymaps/cbbrowne/Makefile | 7 ++++--- keyboards/planck/keymaps/cbbrowne/config.h | 3 +++ 2 files changed, 7 insertions(+), 3 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/cbbrowne/Makefile b/keyboards/planck/keymaps/cbbrowne/Makefile index 581e08cd0..3c20da84b 100644 --- a/keyboards/planck/keymaps/cbbrowne/Makefile +++ b/keyboards/planck/keymaps/cbbrowne/Makefile @@ -5,8 +5,8 @@ # the appropriate keymap folder that will get included automatically # BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = no # Audio control and System control(+450) CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work @@ -16,10 +16,11 @@ AUDIO_ENABLE = yes # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +API_SYSEX_ENABLE = no # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend ifndef QUANTUM_DIR include ../../../../Makefile -endif \ No newline at end of file +endif diff --git a/keyboards/planck/keymaps/cbbrowne/config.h b/keyboards/planck/keymaps/cbbrowne/config.h index 1e04ba61d..bd15fd5a2 100644 --- a/keyboards/planck/keymaps/cbbrowne/config.h +++ b/keyboards/planck/keymaps/cbbrowne/config.h @@ -1,6 +1,9 @@ #ifndef CONFIG_USER_H #define CONFIG_USER_H +#define NO_DEBUG +#define NO_PRINT + #include "../../config.h" #define LEADER_TIMEOUT 300 -- cgit v1.2.3 From af4c44deef55a300113b4a65f8d3ab37bf2ef97d Mon Sep 17 00:00:00 2001 From: cbbrowne Date: Thu, 1 Dec 2016 16:31:30 -0500 Subject: Improve docs on SYSEX bit --- keyboards/planck/keymaps/cbbrowne/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/cbbrowne/Makefile b/keyboards/planck/keymaps/cbbrowne/Makefile index 3c20da84b..b1c70ace7 100644 --- a/keyboards/planck/keymaps/cbbrowne/Makefile +++ b/keyboards/planck/keymaps/cbbrowne/Makefile @@ -16,7 +16,7 @@ AUDIO_ENABLE = yes # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. -API_SYSEX_ENABLE = no +API_SYSEX_ENABLE = yes # Enable SYSEX API (+5390) # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -- cgit v1.2.3 From 570e784140becd8621c4d05e8e36c8b0f8402b3b Mon Sep 17 00:00:00 2001 From: cbbrowne Date: Fri, 2 Dec 2016 12:31:43 -0500 Subject: I want page-down/page-up - put those on LOWER-Left/Right near bottom corner --- keyboards/planck/keymaps/cbbrowne/keymap.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/cbbrowne/keymap.c b/keyboards/planck/keymaps/cbbrowne/keymap.c index 4742ca5c0..717f4b235 100644 --- a/keyboards/planck/keymaps/cbbrowne/keymap.c +++ b/keyboards/planck/keymaps/cbbrowne/keymap.c @@ -62,6 +62,7 @@ - How about Alt-F1 thru Alt-F8? - What's the keystroke to get from X to console these days? - A layer for doing console switching would not be a bad idea + - I haven't got page-up/page-down, let's have that... */ enum layers { @@ -117,7 +118,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QWERTY, KEYPAD, KEYPAD, ALTSLASH, _______}, - {_______, KEYPAD, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + {_______, KEYPAD, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_VOLD, KC_VOLU, KC_PGUP} }, [_KEYPAD] = { /* Key Pad */ {KC_ESC, USERNAME, MVERSION, KC_F10, KC_F11, KC_F12, KC_PGUP, KC_KP_ENTER, KC_7, KC_8, KC_9, KC_BSPC}, -- cgit v1.2.3 From f6e86cd2c904cc3951b2341b9c73a535dbf28f03 Mon Sep 17 00:00:00 2001 From: cbbrowne Date: Fri, 2 Dec 2016 12:35:03 -0500 Subject: I also want page-down/page-up on UPPER layer --- keyboards/planck/keymaps/cbbrowne/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/cbbrowne/keymap.c b/keyboards/planck/keymaps/cbbrowne/keymap.c index 717f4b235..2be4dab4b 100644 --- a/keyboards/planck/keymaps/cbbrowne/keymap.c +++ b/keyboards/planck/keymaps/cbbrowne/keymap.c @@ -112,7 +112,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QWERTY, KEYPAD, KEYPAD, ALTSLASH,_______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + {_______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_VOLD, KC_VOLU, KC_PGUP} }, [_LOWER] = { /* LOWER */ {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, -- cgit v1.2.3 From 5d43a2aecf2fcb9ed9a25ddc0924c66e544bcdf8 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Fri, 2 Dec 2016 12:53:18 -0500 Subject: Kristian's keymap --- keyboards/ergodox/keymaps/kristian/keymap.c | 79 +++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 keyboards/ergodox/keymaps/kristian/keymap.c (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/kristian/keymap.c b/keyboards/ergodox/keymaps/kristian/keymap.c new file mode 100644 index 000000000..223859091 --- /dev/null +++ b/keyboards/ergodox/keymaps/kristian/keymap.c @@ -0,0 +1,79 @@ +#include "ergodox.h" +#include "debug.h" +#include "action_layer.h" +#include "version.h" +#include "keymap_fr_ch.h" +#include "keymap_french.h" +#include "keymap_german.h" +#include "keymap_german_ch.h" +#include "keymap_nordic.h" +#include "keymap_norwegian.h" +#include "keymap_spanish.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + +[0] = KEYMAP(NO_LESS,KC_1,KC_2,KC_3,KC_4,KC_5,KC_BSPACE,KC_TAB,KC_Q,KC_W,KC_E,KC_R,KC_T,TG(1),KC_BSPACE,KC_A,KC_S,KC_D,KC_F,KC_G,SFT_T(NO_QUOT),CTL_T(KC_Z),KC_X,KC_C,KC_V,KC_B,SFT_T(KC_EQUAL),MO(1),CTL_T(KC_GRAVE),KC_LGUI,KC_LEFT,KC_RIGHT,KC_ESCAPE,KC_CAPSLOCK,KC_HOME,KC_SPACE,KC_LGUI,KC_LALT,KC_DELETE,KC_6,KC_7,KC_8,KC_9,KC_0,NO_PLUS,TG(1),KC_Y,KC_U,KC_I,KC_O,KC_P,NO_AM,KC_H,KC_J,KC_K,KC_L,LT(2,NO_OSLH),NO_AE,SFT_T(KC_RBRC),KC_N,KC_M,KC_COMMA,KC_DOT,CTL_T(KC_SLASH),SFT_T(NO_QUOT),KC_DOWN,KC_UP,NO_LPRN,NO_RPRN,MO(1),NO_QUOT,CTL_T(KC_ESCAPE),NO_APOS,KC_LALT,KC_LGUI,KC_ENTER), + +[1] = KEYMAP(M(0),KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,KC_BSPACE,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_BSPACE,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_LSHIFT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_LCTL,KC_LGUI,KC_LEFT,KC_RIGHT,KC_ESCAPE,KC_TRANSPARENT,KC_HOME,KC_SPACE,KC_LGUI,KC_LALT,KC_DELETE,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10,KC_F11,KC_TRANSPARENT,KC_7,KC_8,KC_9,KC_TRANSPARENT,KC_TRANSPARENT,KC_F12,KC_4,KC_5,KC_6,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_0,KC_1,KC_2,KC_3,NO_LBRC,NO_RBRC,KC_LSHIFT,KC_COMMA,KC_DOT,LSFT(NO_LBRC),LSFT(NO_RBRC),KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_LALT,KC_LGUI,KC_ENTER), + +[2] = KEYMAP(KC_ESCAPE,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MS_UP,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MS_LEFT,KC_MS_DOWN,KC_MS_RIGHT,KC_TRANSPARENT,KC_LSHIFT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_LCTL,KC_LALT,KC_LGUI,KC_MS_BTN1,KC_MS_BTN2,KC_ESCAPE,KC_TRANSPARENT,KC_TRANSPARENT,KC_SPACE,KC_LGUI,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MEDIA_PREV_TRACK,KC_MEDIA_PLAY_PAUSE,KC_MEDIA_NEXT_TRACK,KC_TRANSPARENT,KC_TRANSPARENT,KC_AUDIO_VOL_UP,KC_AUDIO_VOL_DOWN,KC_AUDIO_MUTE,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_ESCAPE,KC_MS_WH_UP,KC_MS_WH_DOWN,KC_MS_ACCEL0,KC_MS_ACCEL1), + +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(1) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case 0: + if (record->event.pressed) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + } + break; + } + return MACRO_NONE; +}; + +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + case 3: + ergodox_right_led_3_on(); + break; + case 4: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + break; + case 5: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); + break; + case 6: + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + break; + case 7: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + break; + default: + break; + } + +}; -- cgit v1.2.3 From aa70aa3962f0c148916412eb40924e108b6b5c07 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Fri, 2 Dec 2016 13:03:39 -0500 Subject: Tweaks Kristian's layout again --- keyboards/ergodox/keymaps/kristian/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/kristian/keymap.c b/keyboards/ergodox/keymaps/kristian/keymap.c index 223859091..e7e424325 100644 --- a/keyboards/ergodox/keymaps/kristian/keymap.c +++ b/keyboards/ergodox/keymaps/kristian/keymap.c @@ -13,7 +13,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP(NO_LESS,KC_1,KC_2,KC_3,KC_4,KC_5,KC_BSPACE,KC_TAB,KC_Q,KC_W,KC_E,KC_R,KC_T,TG(1),KC_BSPACE,KC_A,KC_S,KC_D,KC_F,KC_G,SFT_T(NO_QUOT),CTL_T(KC_Z),KC_X,KC_C,KC_V,KC_B,SFT_T(KC_EQUAL),MO(1),CTL_T(KC_GRAVE),KC_LGUI,KC_LEFT,KC_RIGHT,KC_ESCAPE,KC_CAPSLOCK,KC_HOME,KC_SPACE,KC_LGUI,KC_LALT,KC_DELETE,KC_6,KC_7,KC_8,KC_9,KC_0,NO_PLUS,TG(1),KC_Y,KC_U,KC_I,KC_O,KC_P,NO_AM,KC_H,KC_J,KC_K,KC_L,LT(2,NO_OSLH),NO_AE,SFT_T(KC_RBRC),KC_N,KC_M,KC_COMMA,KC_DOT,CTL_T(KC_SLASH),SFT_T(NO_QUOT),KC_DOWN,KC_UP,NO_LPRN,NO_RPRN,MO(1),NO_QUOT,CTL_T(KC_ESCAPE),NO_APOS,KC_LALT,KC_LGUI,KC_ENTER), +[0] = KEYMAP(NO_LESS,KC_1,KC_2,KC_3,KC_4,KC_5,KC_BSPACE,KC_TAB,KC_Q,KC_W,KC_E,KC_R,KC_T,TG(1),KC_BSPACE,KC_A,KC_S,KC_D,KC_F,KC_G,SFT_T(NO_APOS),CTL_T(KC_Z),KC_X,KC_C,KC_V,KC_B,SFT_T(KC_EQUAL),MO(1),CTL_T(KC_GRAVE),KC_LGUI,KC_LEFT,KC_RIGHT,KC_ESCAPE,KC_CAPSLOCK,KC_HOME,KC_SPACE,KC_LGUI,KC_LALT,KC_DELETE,KC_6,KC_7,KC_8,KC_9,KC_0,NO_PLUS,TG(1),KC_Y,KC_U,KC_I,KC_O,KC_P,NO_AM,KC_H,KC_J,KC_K,KC_L,LT(2,NO_OSLH),NO_AE,SFT_T(KC_RBRC),KC_N,KC_M,KC_COMMA,KC_DOT,CTL_T(KC_SLASH),SFT_T(NO_APOS),KC_DOWN,KC_UP,NO_LPRN,NO_RPRN,MO(1),NO_QUOT,CTL_T(KC_ESCAPE),NO_APOS,KC_LALT,KC_LGUI,KC_ENTER), [1] = KEYMAP(M(0),KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,KC_BSPACE,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_BSPACE,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_LSHIFT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_LCTL,KC_LGUI,KC_LEFT,KC_RIGHT,KC_ESCAPE,KC_TRANSPARENT,KC_HOME,KC_SPACE,KC_LGUI,KC_LALT,KC_DELETE,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10,KC_F11,KC_TRANSPARENT,KC_7,KC_8,KC_9,KC_TRANSPARENT,KC_TRANSPARENT,KC_F12,KC_4,KC_5,KC_6,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_0,KC_1,KC_2,KC_3,NO_LBRC,NO_RBRC,KC_LSHIFT,KC_COMMA,KC_DOT,LSFT(NO_LBRC),LSFT(NO_RBRC),KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_LALT,KC_LGUI,KC_ENTER), -- cgit v1.2.3 From 245c9508bd6169d2feb398e99234103cc669efa7 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 2 Dec 2016 13:32:50 -0500 Subject: adds warnings to 4 keymaps --- keyboards/planck/keymaps/bone2planck/Makefile | 4 +++- keyboards/planck/keymaps/brandon/Makefile | 4 +++- keyboards/planck/keymaps/impossible/Makefile | 4 +++- keyboards/planck/keymaps/jeebak/Makefile | 4 +++- 4 files changed, 12 insertions(+), 4 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/bone2planck/Makefile b/keyboards/planck/keymaps/bone2planck/Makefile index 581e08cd0..cf2c31f0f 100644 --- a/keyboards/planck/keymaps/bone2planck/Makefile +++ b/keyboards/planck/keymaps/bone2planck/Makefile @@ -1,4 +1,6 @@ - +# Please remove if no longer applicable +$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD) +$(warning Please disable some options in the Makefile to resolve) # Build Options # change to "no" to disable the options, or define them in the Makefile in diff --git a/keyboards/planck/keymaps/brandon/Makefile b/keyboards/planck/keymaps/brandon/Makefile index 581e08cd0..cf2c31f0f 100644 --- a/keyboards/planck/keymaps/brandon/Makefile +++ b/keyboards/planck/keymaps/brandon/Makefile @@ -1,4 +1,6 @@ - +# Please remove if no longer applicable +$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD) +$(warning Please disable some options in the Makefile to resolve) # Build Options # change to "no" to disable the options, or define them in the Makefile in diff --git a/keyboards/planck/keymaps/impossible/Makefile b/keyboards/planck/keymaps/impossible/Makefile index 581e08cd0..cf2c31f0f 100644 --- a/keyboards/planck/keymaps/impossible/Makefile +++ b/keyboards/planck/keymaps/impossible/Makefile @@ -1,4 +1,6 @@ - +# Please remove if no longer applicable +$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD) +$(warning Please disable some options in the Makefile to resolve) # Build Options # change to "no" to disable the options, or define them in the Makefile in diff --git a/keyboards/planck/keymaps/jeebak/Makefile b/keyboards/planck/keymaps/jeebak/Makefile index 581e08cd0..cf2c31f0f 100644 --- a/keyboards/planck/keymaps/jeebak/Makefile +++ b/keyboards/planck/keymaps/jeebak/Makefile @@ -1,4 +1,6 @@ - +# Please remove if no longer applicable +$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD) +$(warning Please disable some options in the Makefile to resolve) # Build Options # change to "no" to disable the options, or define them in the Makefile in -- cgit v1.2.3 From cee0cf8a6eca8d2316dd75f39351f13132ff0257 Mon Sep 17 00:00:00 2001 From: cbbrowne Date: Fri, 2 Dec 2016 14:12:55 -0500 Subject: Adds warnings to Planck keymaps that exceed 0x7000 bytes in size #929 --- keyboards/planck/keymaps/jhenahan/Makefile | 4 +++- keyboards/planck/keymaps/joe/Makefile | 5 ++++- keyboards/planck/keymaps/leo/Makefile | 5 ++++- keyboards/planck/keymaps/lucas/Makefile | 5 ++++- keyboards/planck/keymaps/mollat/Makefile | 5 ++++- keyboards/planck/keymaps/nico/Makefile | 5 ++++- keyboards/planck/keymaps/premek/Makefile | 3 +++ keyboards/planck/keymaps/priyadi/Makefile | 3 +++ keyboards/planck/keymaps/pvc/Makefile | 5 ++++- keyboards/planck/keymaps/sgoodwin/Makefile | 5 ++++- keyboards/planck/keymaps/tak3over/Makefile | 5 ++++- keyboards/planck/keymaps/thermal_printer/Makefile | 3 +++ keyboards/planck/keymaps/vifon/Makefile | 3 +++ 13 files changed, 47 insertions(+), 9 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/jhenahan/Makefile b/keyboards/planck/keymaps/jhenahan/Makefile index de01ad240..83da2a7f8 100644 --- a/keyboards/planck/keymaps/jhenahan/Makefile +++ b/keyboards/planck/keymaps/jhenahan/Makefile @@ -1,4 +1,6 @@ - +# Please remove if no longer applicable +$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD) +$(warning Please disable some options in the Makefile to resolve) # Build Options # change to "no" to disable the options, or define them in the Makefile in diff --git a/keyboards/planck/keymaps/joe/Makefile b/keyboards/planck/keymaps/joe/Makefile index 581e08cd0..b2ca41944 100644 --- a/keyboards/planck/keymaps/joe/Makefile +++ b/keyboards/planck/keymaps/joe/Makefile @@ -1,3 +1,6 @@ +# Please remove if no longer applicable +$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD) +$(warning Please disable some options in the Makefile to resolve) # Build Options @@ -22,4 +25,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend ifndef QUANTUM_DIR include ../../../../Makefile -endif \ No newline at end of file +endif diff --git a/keyboards/planck/keymaps/leo/Makefile b/keyboards/planck/keymaps/leo/Makefile index 581e08cd0..b2ca41944 100644 --- a/keyboards/planck/keymaps/leo/Makefile +++ b/keyboards/planck/keymaps/leo/Makefile @@ -1,3 +1,6 @@ +# Please remove if no longer applicable +$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD) +$(warning Please disable some options in the Makefile to resolve) # Build Options @@ -22,4 +25,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend ifndef QUANTUM_DIR include ../../../../Makefile -endif \ No newline at end of file +endif diff --git a/keyboards/planck/keymaps/lucas/Makefile b/keyboards/planck/keymaps/lucas/Makefile index 581e08cd0..b2ca41944 100644 --- a/keyboards/planck/keymaps/lucas/Makefile +++ b/keyboards/planck/keymaps/lucas/Makefile @@ -1,3 +1,6 @@ +# Please remove if no longer applicable +$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD) +$(warning Please disable some options in the Makefile to resolve) # Build Options @@ -22,4 +25,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend ifndef QUANTUM_DIR include ../../../../Makefile -endif \ No newline at end of file +endif diff --git a/keyboards/planck/keymaps/mollat/Makefile b/keyboards/planck/keymaps/mollat/Makefile index 581e08cd0..b2ca41944 100644 --- a/keyboards/planck/keymaps/mollat/Makefile +++ b/keyboards/planck/keymaps/mollat/Makefile @@ -1,3 +1,6 @@ +# Please remove if no longer applicable +$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD) +$(warning Please disable some options in the Makefile to resolve) # Build Options @@ -22,4 +25,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend ifndef QUANTUM_DIR include ../../../../Makefile -endif \ No newline at end of file +endif diff --git a/keyboards/planck/keymaps/nico/Makefile b/keyboards/planck/keymaps/nico/Makefile index 581e08cd0..b2ca41944 100644 --- a/keyboards/planck/keymaps/nico/Makefile +++ b/keyboards/planck/keymaps/nico/Makefile @@ -1,3 +1,6 @@ +# Please remove if no longer applicable +$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD) +$(warning Please disable some options in the Makefile to resolve) # Build Options @@ -22,4 +25,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend ifndef QUANTUM_DIR include ../../../../Makefile -endif \ No newline at end of file +endif diff --git a/keyboards/planck/keymaps/premek/Makefile b/keyboards/planck/keymaps/premek/Makefile index 0f4953888..b2ca41944 100644 --- a/keyboards/planck/keymaps/premek/Makefile +++ b/keyboards/planck/keymaps/premek/Makefile @@ -1,3 +1,6 @@ +# Please remove if no longer applicable +$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD) +$(warning Please disable some options in the Makefile to resolve) # Build Options diff --git a/keyboards/planck/keymaps/priyadi/Makefile b/keyboards/planck/keymaps/priyadi/Makefile index aa211d2f0..f113f496c 100644 --- a/keyboards/planck/keymaps/priyadi/Makefile +++ b/keyboards/planck/keymaps/priyadi/Makefile @@ -1,3 +1,6 @@ +# Please remove if no longer applicable +$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD) +$(warning Please disable some options in the Makefile to resolve) # Build Options diff --git a/keyboards/planck/keymaps/pvc/Makefile b/keyboards/planck/keymaps/pvc/Makefile index b2ff961fa..c92ca1bff 100644 --- a/keyboards/planck/keymaps/pvc/Makefile +++ b/keyboards/planck/keymaps/pvc/Makefile @@ -1,3 +1,6 @@ +# Please remove if no longer applicable +$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD) +$(warning Please disable some options in the Makefile to resolve) # Build Options # change to "no" to disable the options, or define them in the Makefile in @@ -21,4 +24,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend ifndef QUANTUM_DIR include ../../../../Makefile -endif \ No newline at end of file +endif diff --git a/keyboards/planck/keymaps/sgoodwin/Makefile b/keyboards/planck/keymaps/sgoodwin/Makefile index 581e08cd0..b2ca41944 100644 --- a/keyboards/planck/keymaps/sgoodwin/Makefile +++ b/keyboards/planck/keymaps/sgoodwin/Makefile @@ -1,3 +1,6 @@ +# Please remove if no longer applicable +$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD) +$(warning Please disable some options in the Makefile to resolve) # Build Options @@ -22,4 +25,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend ifndef QUANTUM_DIR include ../../../../Makefile -endif \ No newline at end of file +endif diff --git a/keyboards/planck/keymaps/tak3over/Makefile b/keyboards/planck/keymaps/tak3over/Makefile index 581e08cd0..b2ca41944 100644 --- a/keyboards/planck/keymaps/tak3over/Makefile +++ b/keyboards/planck/keymaps/tak3over/Makefile @@ -1,3 +1,6 @@ +# Please remove if no longer applicable +$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD) +$(warning Please disable some options in the Makefile to resolve) # Build Options @@ -22,4 +25,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend ifndef QUANTUM_DIR include ../../../../Makefile -endif \ No newline at end of file +endif diff --git a/keyboards/planck/keymaps/thermal_printer/Makefile b/keyboards/planck/keymaps/thermal_printer/Makefile index 3d1d11877..9477d1179 100644 --- a/keyboards/planck/keymaps/thermal_printer/Makefile +++ b/keyboards/planck/keymaps/thermal_printer/Makefile @@ -1,3 +1,6 @@ +# Please remove if no longer applicable +$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD) +$(warning Please disable some options in the Makefile to resolve) # Build Options diff --git a/keyboards/planck/keymaps/vifon/Makefile b/keyboards/planck/keymaps/vifon/Makefile index 838cb4e88..53660a2e7 100644 --- a/keyboards/planck/keymaps/vifon/Makefile +++ b/keyboards/planck/keymaps/vifon/Makefile @@ -1,3 +1,6 @@ +# Please remove if no longer applicable +$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD) +$(warning Please disable some options in the Makefile to resolve) # Build Options -- cgit v1.2.3 From ae66f0d70214b8a5e81ecf5977619bcd4bf6f413 Mon Sep 17 00:00:00 2001 From: climbalima Date: Sat, 3 Dec 2016 17:09:11 -0500 Subject: added plate files for lets split --- keyboards/pilcrow/Makefile | 3 + keyboards/pilcrow/config.h | 162 + keyboards/pilcrow/keymaps/default/Makefile | 21 + keyboards/pilcrow/keymaps/default/config.h | 8 + keyboards/pilcrow/keymaps/default/keymap.c | 88 + keyboards/pilcrow/keymaps/default/readme.md | 1 + keyboards/pilcrow/pilcrow.c | 28 + keyboards/pilcrow/pilcrow.h | 23 + keyboards/pilcrow/readme.md | 28 + keyboards/pilcrow/rules.mk | 67 + keyboards/weebkeeb/Makefile | 3 + keyboards/weebkeeb/aek.dxf | 6486 ++++++++++++++++++++++++++ keyboards/weebkeeb/config.h | 162 + keyboards/weebkeeb/keymaps/default/Makefile | 21 + keyboards/weebkeeb/keymaps/default/config.h | 8 + keyboards/weebkeeb/keymaps/default/keymap.c | 119 + keyboards/weebkeeb/keymaps/default/readme.md | 1 + keyboards/weebkeeb/readme.md | 28 + keyboards/weebkeeb/rules.mk | 67 + keyboards/weebkeeb/weebkeeb.c | 28 + keyboards/weebkeeb/weebkeeb.h | 23 + 21 files changed, 7375 insertions(+) create mode 100644 keyboards/pilcrow/Makefile create mode 100644 keyboards/pilcrow/config.h create mode 100644 keyboards/pilcrow/keymaps/default/Makefile create mode 100644 keyboards/pilcrow/keymaps/default/config.h create mode 100644 keyboards/pilcrow/keymaps/default/keymap.c create mode 100644 keyboards/pilcrow/keymaps/default/readme.md create mode 100644 keyboards/pilcrow/pilcrow.c create mode 100644 keyboards/pilcrow/pilcrow.h create mode 100644 keyboards/pilcrow/readme.md create mode 100644 keyboards/pilcrow/rules.mk create mode 100644 keyboards/weebkeeb/Makefile create mode 100644 keyboards/weebkeeb/aek.dxf create mode 100644 keyboards/weebkeeb/config.h create mode 100644 keyboards/weebkeeb/keymaps/default/Makefile create mode 100644 keyboards/weebkeeb/keymaps/default/config.h create mode 100644 keyboards/weebkeeb/keymaps/default/keymap.c create mode 100644 keyboards/weebkeeb/keymaps/default/readme.md create mode 100644 keyboards/weebkeeb/readme.md create mode 100644 keyboards/weebkeeb/rules.mk create mode 100644 keyboards/weebkeeb/weebkeeb.c create mode 100644 keyboards/weebkeeb/weebkeeb.h (limited to 'keyboards') diff --git a/keyboards/pilcrow/Makefile b/keyboards/pilcrow/Makefile new file mode 100644 index 000000000..4e2a6f00f --- /dev/null +++ b/keyboards/pilcrow/Makefile @@ -0,0 +1,3 @@ +ifndef MAKEFILE_INCLUDED + include ../../Makefile +endif \ No newline at end of file diff --git a/keyboards/pilcrow/config.h b/keyboards/pilcrow/config.h new file mode 100644 index 000000000..d79c1ba40 --- /dev/null +++ b/keyboards/pilcrow/config.h @@ -0,0 +1,162 @@ +/* +Copyright 2012 Jun Wako + +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 . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER You +#define PRODUCT pilcrow +#define DESCRIPTION A custom keyboard + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 10 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { B2, C6, D7, E6 } +#define MATRIX_COL_PINS { B6, D1, B4, B5, D4, D0, B3, B1, F7, F6 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/pilcrow/keymaps/default/Makefile b/keyboards/pilcrow/keymaps/default/Makefile new file mode 100644 index 000000000..f4671a9d1 --- /dev/null +++ b/keyboards/pilcrow/keymaps/default/Makefile @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/pilcrow/keymaps/default/config.h b/keyboards/pilcrow/keymaps/default/config.h new file mode 100644 index 000000000..df06a2620 --- /dev/null +++ b/keyboards/pilcrow/keymaps/default/config.h @@ -0,0 +1,8 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here + +#endif \ No newline at end of file diff --git a/keyboards/pilcrow/keymaps/default/keymap.c b/keyboards/pilcrow/keymaps/default/keymap.c new file mode 100644 index 000000000..e382e4c6a --- /dev/null +++ b/keyboards/pilcrow/keymaps/default/keymap.c @@ -0,0 +1,88 @@ +#include "pilcrow.h" +#define _______ KC_TRNS +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = KEYMAP( \ + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \ + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, \ + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \ + KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, MT(MOD_LSFT, KC_SPC), MO(2), MO(3), KC_DEL, KC_ESC \ +), + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[1] = KEYMAP( \ + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, \ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, \ + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_PIPE, S(KC_QUOT), \ + _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_GRV \ +), +[2] = KEYMAP( \ + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \ + KC_TAB, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, \ + OSM(MOD_LSFT), KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_BSLS, KC_QUOT, \ + _______, _______, _______, _______, KC_ENT, KC_ENT, _______, KC_MNXT, KC_VOLD, KC_VOLU \ +), + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[3] = KEYMAP( \ + RESET, KC_UP, _______, _______, _______, _______, _______, KC_MS_WH_DOWN, KC_MS_U, KC_MS_WH_UP, \ + KC_LEFT, KC_DOWN, KC_RIGHT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, KC_MS_L,KC_MS_D, KC_MS_R, \ + RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, \ + _______, _______, _______, _______, KC_MS_BTN1, KC_MS_BTN2, _______, _______, _______, _______ \ +) +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + +} \ No newline at end of file diff --git a/keyboards/pilcrow/keymaps/default/readme.md b/keyboards/pilcrow/keymaps/default/readme.md new file mode 100644 index 000000000..95472dfca --- /dev/null +++ b/keyboards/pilcrow/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for pilcrow \ No newline at end of file diff --git a/keyboards/pilcrow/pilcrow.c b/keyboards/pilcrow/pilcrow.c new file mode 100644 index 000000000..c8243df7b --- /dev/null +++ b/keyboards/pilcrow/pilcrow.c @@ -0,0 +1,28 @@ +#include "pilcrow.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_record_user(keycode, record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + led_set_user(usb_led); +} diff --git a/keyboards/pilcrow/pilcrow.h b/keyboards/pilcrow/pilcrow.h new file mode 100644 index 000000000..7138ccb3f --- /dev/null +++ b/keyboards/pilcrow/pilcrow.h @@ -0,0 +1,23 @@ +#ifndef PILCROW_H +#define PILCROW_H + +#include "quantum.h" + +// This a shortcut to help you visually see your layout. +// The following is an example using the Planck MIT layout +// The first section contains all of the arguements +// The second converts the arguments into a two-dimensional array +#define KEYMAP( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39 \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39 } \ +} + +#endif diff --git a/keyboards/pilcrow/readme.md b/keyboards/pilcrow/readme.md new file mode 100644 index 000000000..7a7f6d2af --- /dev/null +++ b/keyboards/pilcrow/readme.md @@ -0,0 +1,28 @@ +pilcrow keyboard firmware +====================== + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent readme](/). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/pilcrow folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default + +To build with the default keymap, simply run `make default`. + +### Other Keymaps + +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files. + +To build the firmware binary hex file with a keymap just do `make` with a keymap like this: + +``` +$ make [default|jack|] +``` + +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/pilcrow/rules.mk b/keyboards/pilcrow/rules.mk new file mode 100644 index 000000000..55898147d --- /dev/null +++ b/keyboards/pilcrow/rules.mk @@ -0,0 +1,67 @@ +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=512 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE ?= no # USB Nkey Rollover +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE ?= no # Audio output on port C6 diff --git a/keyboards/weebkeeb/Makefile b/keyboards/weebkeeb/Makefile new file mode 100644 index 000000000..4e2a6f00f --- /dev/null +++ b/keyboards/weebkeeb/Makefile @@ -0,0 +1,3 @@ +ifndef MAKEFILE_INCLUDED + include ../../Makefile +endif \ No newline at end of file diff --git a/keyboards/weebkeeb/aek.dxf b/keyboards/weebkeeb/aek.dxf new file mode 100644 index 000000000..cfe80946b --- /dev/null +++ b/keyboards/weebkeeb/aek.dxf @@ -0,0 +1,6486 @@ +0 +SECTION +2 +ENTITIES +0 +LINE +8 +0 +10 +104.7875 +20 +-89.2875 +11 +104.7875 +21 +-91.6875 +0 +LINE +8 +0 +10 +104.7875 +20 +-91.6875 +11 +102.3875 +21 +-91.6875 +0 +LINE +8 +0 +10 +102.3875 +20 +-91.6875 +11 +102.3875 +21 +-89.2875 +0 +LINE +8 +0 +10 +102.3875 +20 +-89.2875 +11 +104.7875 +21 +-89.2875 +0 +LINE +8 +0 +10 +116.8875 +20 +-89.2875 +11 +116.8875 +21 +-91.6875 +0 +LINE +8 +0 +10 +116.8875 +20 +-91.6875 +11 +114.4875 +21 +-91.6875 +0 +LINE +8 +0 +10 +114.4875 +20 +-91.6875 +11 +114.4875 +21 +-89.2875 +0 +LINE +8 +0 +10 +114.4875 +20 +-89.2875 +11 +116.8875 +21 +-89.2875 +0 +CIRCLE +8 +0 +10 +109.6375 +20 +-90.4875 +40 +3.15 +0 +LINE +8 +0 +10 +103.4875 +20 +-94.3875 +11 +103.4875 +21 +-99.4875 +0 +LINE +8 +0 +10 +103.4875 +20 +-99.4875 +11 +100.8875 +21 +-99.4875 +0 +LINE +8 +0 +10 +100.8875 +20 +-99.4875 +11 +100.8875 +21 +-94.3875 +0 +LINE +8 +0 +10 +100.8875 +20 +-94.3875 +11 +103.4875 +21 +-94.3875 +0 +LINE +8 +0 +10 +191.7875 +20 +-94.3875 +11 +191.7875 +21 +-99.4875 +0 +LINE +8 +0 +10 +191.7875 +20 +-99.4875 +11 +194.3875 +21 +-99.4875 +0 +LINE +8 +0 +10 +194.3875 +20 +-99.4875 +11 +194.3875 +21 +-94.3875 +0 +LINE +8 +0 +10 +194.3875 +20 +-94.3875 +11 +191.7875 +21 +-94.3875 +0 +LINE +8 +0 +10 +155.3875 +20 +-84.0875 +11 +139.8875 +21 +-84.0875 +0 +LINE +8 +0 +10 +139.8875 +20 +-84.0875 +11 +139.8875 +21 +-96.8875 +0 +LINE +8 +0 +10 +139.8875 +20 +-96.8875 +11 +155.3875 +21 +-96.8875 +0 +LINE +8 +0 +10 +155.3875 +20 +-96.8875 +11 +155.3875 +21 +-84.0875 +0 +LINE +8 +0 +10 +256.28125 +20 +-56.2875 +11 +256.28125 +21 +-61.3875 +0 +LINE +8 +0 +10 +256.28125 +20 +-61.3875 +11 +253.68125 +21 +-61.3875 +0 +LINE +8 +0 +10 +253.68125 +20 +-61.3875 +11 +253.68125 +21 +-56.2875 +0 +LINE +8 +0 +10 +253.68125 +20 +-56.2875 +11 +256.28125 +21 +-56.2875 +0 +LINE +8 +0 +10 +281.88125 +20 +-56.2875 +11 +281.88125 +21 +-61.3875 +0 +LINE +8 +0 +10 +281.88125 +20 +-61.3875 +11 +284.48125 +21 +-61.3875 +0 +LINE +8 +0 +10 +284.48125 +20 +-61.3875 +11 +284.48125 +21 +-56.2875 +0 +LINE +8 +0 +10 +284.48125 +20 +-56.2875 +11 +281.88125 +21 +-56.2875 +0 +LINE +8 +0 +10 +276.83125 +20 +-45.9875 +11 +261.33125 +21 +-45.9875 +0 +LINE +8 +0 +10 +261.33125 +20 +-45.9875 +11 +261.33125 +21 +-58.7875 +0 +LINE +8 +0 +10 +261.33125 +20 +-58.7875 +11 +276.83125 +21 +-58.7875 +0 +LINE +8 +0 +10 +276.83125 +20 +-58.7875 +11 +276.83125 +21 +-45.9875 +0 +LINE +8 +0 +10 +258.6625 +20 +-18.1875 +11 +258.6625 +21 +-23.2875 +0 +LINE +8 +0 +10 +258.6625 +20 +-23.2875 +11 +256.0625 +21 +-23.2875 +0 +LINE +8 +0 +10 +256.0625 +20 +-23.2875 +11 +256.0625 +21 +-18.1875 +0 +LINE +8 +0 +10 +256.0625 +20 +-18.1875 +11 +258.6625 +21 +-18.1875 +0 +LINE +8 +0 +10 +284.2625 +20 +-18.1875 +11 +284.2625 +21 +-23.2875 +0 +LINE +8 +0 +10 +284.2625 +20 +-23.2875 +11 +286.8625 +21 +-23.2875 +0 +LINE +8 +0 +10 +286.8625 +20 +-23.2875 +11 +286.8625 +21 +-18.1875 +0 +LINE +8 +0 +10 +286.8625 +20 +-18.1875 +11 +284.2625 +21 +-18.1875 +0 +LINE +8 +0 +10 +279.2125 +20 +-7.8875 +11 +263.7125 +21 +-7.8875 +0 +LINE +8 +0 +10 +263.7125 +20 +-7.8875 +11 +263.7125 +21 +-20.6875 +0 +LINE +8 +0 +10 +263.7125 +20 +-20.6875 +11 +279.2125 +21 +-20.6875 +0 +LINE +8 +0 +10 +279.2125 +20 +-20.6875 +11 +279.2125 +21 +-7.8875 +0 +LINE +8 +0 +10 +13.39375 +20 +-75.3375 +11 +13.39375 +21 +-80.4375 +0 +LINE +8 +0 +10 +13.39375 +20 +-80.4375 +11 +10.79375 +21 +-80.4375 +0 +LINE +8 +0 +10 +10.79375 +20 +-80.4375 +11 +10.79375 +21 +-75.3375 +0 +LINE +8 +0 +10 +10.79375 +20 +-75.3375 +11 +13.39375 +21 +-75.3375 +0 +LINE +8 +0 +10 +38.99375 +20 +-75.3375 +11 +38.99375 +21 +-80.4375 +0 +LINE +8 +0 +10 +38.99375 +20 +-80.4375 +11 +41.59375 +21 +-80.4375 +0 +LINE +8 +0 +10 +41.59375 +20 +-80.4375 +11 +41.59375 +21 +-75.3375 +0 +LINE +8 +0 +10 +41.59375 +20 +-75.3375 +11 +38.99375 +21 +-75.3375 +0 +LINE +8 +0 +10 +33.94375 +20 +-65.0375 +11 +18.44375 +21 +-65.0375 +0 +LINE +8 +0 +10 +18.44375 +20 +-65.0375 +11 +18.44375 +21 +-77.8375 +0 +LINE +8 +0 +10 +18.44375 +20 +-77.8375 +11 +33.94375 +21 +-77.8375 +0 +LINE +8 +0 +10 +33.94375 +20 +-77.8375 +11 +33.94375 +21 +-65.0375 +0 +LINE +8 +0 +10 +193.4875 +20 +-7.8875 +11 +177.9875 +21 +-7.8875 +0 +LINE +8 +0 +10 +177.9875 +20 +-7.8875 +11 +177.9875 +21 +-20.6875 +0 +LINE +8 +0 +10 +177.9875 +20 +-20.6875 +11 +193.4875 +21 +-20.6875 +0 +LINE +8 +0 +10 +193.4875 +20 +-20.6875 +11 +193.4875 +21 +-7.8875 +0 +LINE +8 +0 +10 +174.4375 +20 +-7.8875 +11 +158.9375 +21 +-7.8875 +0 +LINE +8 +0 +10 +158.9375 +20 +-7.8875 +11 +158.9375 +21 +-20.6875 +0 +LINE +8 +0 +10 +158.9375 +20 +-20.6875 +11 +174.4375 +21 +-20.6875 +0 +LINE +8 +0 +10 +174.4375 +20 +-20.6875 +11 +174.4375 +21 +-7.8875 +0 +LINE +8 +0 +10 +183.9625 +20 +-26.9375 +11 +168.4625 +21 +-26.9375 +0 +LINE +8 +0 +10 +168.4625 +20 +-26.9375 +11 +168.4625 +21 +-39.7375 +0 +LINE +8 +0 +10 +168.4625 +20 +-39.7375 +11 +183.9625 +21 +-39.7375 +0 +LINE +8 +0 +10 +183.9625 +20 +-39.7375 +11 +183.9625 +21 +-26.9375 +0 +LINE +8 +0 +10 +169.675 +20 +-45.9875 +11 +154.175 +21 +-45.9875 +0 +LINE +8 +0 +10 +154.175 +20 +-45.9875 +11 +154.175 +21 +-58.7875 +0 +LINE +8 +0 +10 +154.175 +20 +-58.7875 +11 +169.675 +21 +-58.7875 +0 +LINE +8 +0 +10 +169.675 +20 +-58.7875 +11 +169.675 +21 +-45.9875 +0 +LINE +8 +0 +10 +150.625 +20 +-45.9875 +11 +135.125 +21 +-45.9875 +0 +LINE +8 +0 +10 +135.125 +20 +-45.9875 +11 +135.125 +21 +-58.7875 +0 +LINE +8 +0 +10 +135.125 +20 +-58.7875 +11 +150.625 +21 +-58.7875 +0 +LINE +8 +0 +10 +150.625 +20 +-58.7875 +11 +150.625 +21 +-45.9875 +0 +LINE +8 +0 +10 +160.15 +20 +-65.0375 +11 +144.65 +21 +-65.0375 +0 +LINE +8 +0 +10 +144.65 +20 +-65.0375 +11 +144.65 +21 +-77.8375 +0 +LINE +8 +0 +10 +144.65 +20 +-77.8375 +11 +160.15 +21 +-77.8375 +0 +LINE +8 +0 +10 +160.15 +20 +-77.8375 +11 +160.15 +21 +-65.0375 +0 +LINE +8 +0 +10 +141.1 +20 +-65.0375 +11 +125.6 +21 +-65.0375 +0 +LINE +8 +0 +10 +125.6 +20 +-65.0375 +11 +125.6 +21 +-77.8375 +0 +LINE +8 +0 +10 +125.6 +20 +-77.8375 +11 +141.1 +21 +-77.8375 +0 +LINE +8 +0 +10 +141.1 +20 +-77.8375 +11 +141.1 +21 +-65.0375 +0 +LINE +8 +0 +10 +155.3875 +20 +-7.8875 +11 +139.8875 +21 +-7.8875 +0 +LINE +8 +0 +10 +139.8875 +20 +-7.8875 +11 +139.8875 +21 +-20.6875 +0 +LINE +8 +0 +10 +139.8875 +20 +-20.6875 +11 +155.3875 +21 +-20.6875 +0 +LINE +8 +0 +10 +155.3875 +20 +-20.6875 +11 +155.3875 +21 +-7.8875 +0 +LINE +8 +0 +10 +136.3375 +20 +-7.8875 +11 +120.8375 +21 +-7.8875 +0 +LINE +8 +0 +10 +120.8375 +20 +-7.8875 +11 +120.8375 +21 +-20.6875 +0 +LINE +8 +0 +10 +120.8375 +20 +-20.6875 +11 +136.3375 +21 +-20.6875 +0 +LINE +8 +0 +10 +136.3375 +20 +-20.6875 +11 +136.3375 +21 +-7.8875 +0 +LINE +8 +0 +10 +164.9125 +20 +-26.9375 +11 +149.4125 +21 +-26.9375 +0 +LINE +8 +0 +10 +149.4125 +20 +-26.9375 +11 +149.4125 +21 +-39.7375 +0 +LINE +8 +0 +10 +149.4125 +20 +-39.7375 +11 +164.9125 +21 +-39.7375 +0 +LINE +8 +0 +10 +164.9125 +20 +-39.7375 +11 +164.9125 +21 +-26.9375 +0 +LINE +8 +0 +10 +145.8625 +20 +-26.9375 +11 +130.3625 +21 +-26.9375 +0 +LINE +8 +0 +10 +130.3625 +20 +-26.9375 +11 +130.3625 +21 +-39.7375 +0 +LINE +8 +0 +10 +130.3625 +20 +-39.7375 +11 +145.8625 +21 +-39.7375 +0 +LINE +8 +0 +10 +145.8625 +20 +-39.7375 +11 +145.8625 +21 +-26.9375 +0 +LINE +8 +0 +10 +131.575 +20 +-45.9875 +11 +116.075 +21 +-45.9875 +0 +LINE +8 +0 +10 +116.075 +20 +-45.9875 +11 +116.075 +21 +-58.7875 +0 +LINE +8 +0 +10 +116.075 +20 +-58.7875 +11 +131.575 +21 +-58.7875 +0 +LINE +8 +0 +10 +131.575 +20 +-58.7875 +11 +131.575 +21 +-45.9875 +0 +LINE +8 +0 +10 +122.05 +20 +-65.0375 +11 +106.55 +21 +-65.0375 +0 +LINE +8 +0 +10 +106.55 +20 +-65.0375 +11 +106.55 +21 +-77.8375 +0 +LINE +8 +0 +10 +106.55 +20 +-77.8375 +11 +122.05 +21 +-77.8375 +0 +LINE +8 +0 +10 +122.05 +20 +-77.8375 +11 +122.05 +21 +-65.0375 +0 +LINE +8 +0 +10 +103.0 +20 +-65.0375 +11 +87.5 +21 +-65.0375 +0 +LINE +8 +0 +10 +87.5 +20 +-65.0375 +11 +87.5 +21 +-77.8375 +0 +LINE +8 +0 +10 +87.5 +20 +-77.8375 +11 +103.0 +21 +-77.8375 +0 +LINE +8 +0 +10 +103.0 +20 +-77.8375 +11 +103.0 +21 +-65.0375 +0 +LINE +8 +0 +10 +117.2875 +20 +-7.8875 +11 +101.7875 +21 +-7.8875 +0 +LINE +8 +0 +10 +101.7875 +20 +-7.8875 +11 +101.7875 +21 +-20.6875 +0 +LINE +8 +0 +10 +101.7875 +20 +-20.6875 +11 +117.2875 +21 +-20.6875 +0 +LINE +8 +0 +10 +117.2875 +20 +-20.6875 +11 +117.2875 +21 +-7.8875 +0 +LINE +8 +0 +10 +98.2375 +20 +-7.8875 +11 +82.7375 +21 +-7.8875 +0 +LINE +8 +0 +10 +82.7375 +20 +-7.8875 +11 +82.7375 +21 +-20.6875 +0 +LINE +8 +0 +10 +82.7375 +20 +-20.6875 +11 +98.2375 +21 +-20.6875 +0 +LINE +8 +0 +10 +98.2375 +20 +-20.6875 +11 +98.2375 +21 +-7.8875 +0 +LINE +8 +0 +10 +126.8125 +20 +-26.9375 +11 +111.3125 +21 +-26.9375 +0 +LINE +8 +0 +10 +111.3125 +20 +-26.9375 +11 +111.3125 +21 +-39.7375 +0 +LINE +8 +0 +10 +111.3125 +20 +-39.7375 +11 +126.8125 +21 +-39.7375 +0 +LINE +8 +0 +10 +126.8125 +20 +-39.7375 +11 +126.8125 +21 +-26.9375 +0 +LINE +8 +0 +10 +107.7625 +20 +-26.9375 +11 +92.2625 +21 +-26.9375 +0 +LINE +8 +0 +10 +92.2625 +20 +-26.9375 +11 +92.2625 +21 +-39.7375 +0 +LINE +8 +0 +10 +92.2625 +20 +-39.7375 +11 +107.7625 +21 +-39.7375 +0 +LINE +8 +0 +10 +107.7625 +20 +-39.7375 +11 +107.7625 +21 +-26.9375 +0 +LINE +8 +0 +10 +112.525 +20 +-45.9875 +11 +97.025 +21 +-45.9875 +0 +LINE +8 +0 +10 +97.025 +20 +-45.9875 +11 +97.025 +21 +-58.7875 +0 +LINE +8 +0 +10 +97.025 +20 +-58.7875 +11 +112.525 +21 +-58.7875 +0 +LINE +8 +0 +10 +112.525 +20 +-58.7875 +11 +112.525 +21 +-45.9875 +0 +LINE +8 +0 +10 +93.475 +20 +-45.9875 +11 +77.975 +21 +-45.9875 +0 +LINE +8 +0 +10 +77.975 +20 +-45.9875 +11 +77.975 +21 +-58.7875 +0 +LINE +8 +0 +10 +77.975 +20 +-58.7875 +11 +93.475 +21 +-58.7875 +0 +LINE +8 +0 +10 +93.475 +20 +-58.7875 +11 +93.475 +21 +-45.9875 +0 +LINE +8 +0 +10 +83.95 +20 +-65.0375 +11 +68.45 +21 +-65.0375 +0 +LINE +8 +0 +10 +68.45 +20 +-65.0375 +11 +68.45 +21 +-77.8375 +0 +LINE +8 +0 +10 +68.45 +20 +-77.8375 +11 +83.95 +21 +-77.8375 +0 +LINE +8 +0 +10 +83.95 +20 +-77.8375 +11 +83.95 +21 +-65.0375 +0 +LINE +8 +0 +10 +79.1875 +20 +-84.0875 +11 +63.6875 +21 +-84.0875 +0 +LINE +8 +0 +10 +63.6875 +20 +-84.0875 +11 +63.6875 +21 +-96.8875 +0 +LINE +8 +0 +10 +63.6875 +20 +-96.8875 +11 +79.1875 +21 +-96.8875 +0 +LINE +8 +0 +10 +79.1875 +20 +-96.8875 +11 +79.1875 +21 +-84.0875 +0 +LINE +8 +0 +10 +79.1875 +20 +-7.8875 +11 +63.6875 +21 +-7.8875 +0 +LINE +8 +0 +10 +63.6875 +20 +-7.8875 +11 +63.6875 +21 +-20.6875 +0 +LINE +8 +0 +10 +63.6875 +20 +-20.6875 +11 +79.1875 +21 +-20.6875 +0 +LINE +8 +0 +10 +79.1875 +20 +-20.6875 +11 +79.1875 +21 +-7.8875 +0 +LINE +8 +0 +10 +60.1375 +20 +-7.8875 +11 +44.6375 +21 +-7.8875 +0 +LINE +8 +0 +10 +44.6375 +20 +-7.8875 +11 +44.6375 +21 +-20.6875 +0 +LINE +8 +0 +10 +44.6375 +20 +-20.6875 +11 +60.1375 +21 +-20.6875 +0 +LINE +8 +0 +10 +60.1375 +20 +-20.6875 +11 +60.1375 +21 +-7.8875 +0 +LINE +8 +0 +10 +88.7125 +20 +-26.9375 +11 +73.2125 +21 +-26.9375 +0 +LINE +8 +0 +10 +73.2125 +20 +-26.9375 +11 +73.2125 +21 +-39.7375 +0 +LINE +8 +0 +10 +73.2125 +20 +-39.7375 +11 +88.7125 +21 +-39.7375 +0 +LINE +8 +0 +10 +88.7125 +20 +-39.7375 +11 +88.7125 +21 +-26.9375 +0 +LINE +8 +0 +10 +69.6625 +20 +-26.9375 +11 +54.1625 +21 +-26.9375 +0 +LINE +8 +0 +10 +54.1625 +20 +-26.9375 +11 +54.1625 +21 +-39.7375 +0 +LINE +8 +0 +10 +54.1625 +20 +-39.7375 +11 +69.6625 +21 +-39.7375 +0 +LINE +8 +0 +10 +69.6625 +20 +-39.7375 +11 +69.6625 +21 +-26.9375 +0 +LINE +8 +0 +10 +74.425 +20 +-45.9875 +11 +58.925 +21 +-45.9875 +0 +LINE +8 +0 +10 +58.925 +20 +-45.9875 +11 +58.925 +21 +-58.7875 +0 +LINE +8 +0 +10 +58.925 +20 +-58.7875 +11 +74.425 +21 +-58.7875 +0 +LINE +8 +0 +10 +74.425 +20 +-58.7875 +11 +74.425 +21 +-45.9875 +0 +LINE +8 +0 +10 +64.9 +20 +-65.0375 +11 +49.4 +21 +-65.0375 +0 +LINE +8 +0 +10 +49.4 +20 +-65.0375 +11 +49.4 +21 +-77.8375 +0 +LINE +8 +0 +10 +49.4 +20 +-77.8375 +11 +64.9 +21 +-77.8375 +0 +LINE +8 +0 +10 +64.9 +20 +-77.8375 +11 +64.9 +21 +-65.0375 +0 +LINE +8 +0 +10 +52.9937 +20 +-84.0875 +11 +37.4937 +21 +-84.0875 +0 +LINE +8 +0 +10 +37.4937 +20 +-84.0875 +11 +37.4937 +21 +-96.8875 +0 +LINE +8 +0 +10 +37.4937 +20 +-96.8875 +11 +52.9937 +21 +-96.8875 +0 +LINE +8 +0 +10 +52.9937 +20 +-96.8875 +11 +52.9937 +21 +-84.0875 +0 +LINE +8 +0 +10 +41.0875 +20 +-7.8875 +11 +25.5875 +21 +-7.8875 +0 +LINE +8 +0 +10 +25.5875 +20 +-7.8875 +11 +25.5875 +21 +-20.6875 +0 +LINE +8 +0 +10 +25.5875 +20 +-20.6875 +11 +41.0875 +21 +-20.6875 +0 +LINE +8 +0 +10 +41.0875 +20 +-20.6875 +11 +41.0875 +21 +-7.8875 +0 +LINE +8 +0 +10 +22.0375 +20 +-7.8875 +11 +6.5375 +21 +-7.8875 +0 +LINE +8 +0 +10 +6.5375 +20 +-7.8875 +11 +6.5375 +21 +-20.6875 +0 +LINE +8 +0 +10 +6.5375 +20 +-20.6875 +11 +22.0375 +21 +-20.6875 +0 +LINE +8 +0 +10 +22.0375 +20 +-20.6875 +11 +22.0375 +21 +-7.8875 +0 +LINE +8 +0 +10 +50.6125 +20 +-26.9375 +11 +35.1125 +21 +-26.9375 +0 +LINE +8 +0 +10 +35.1125 +20 +-26.9375 +11 +35.1125 +21 +-39.7375 +0 +LINE +8 +0 +10 +35.1125 +20 +-39.7375 +11 +50.6125 +21 +-39.7375 +0 +LINE +8 +0 +10 +50.6125 +20 +-39.7375 +11 +50.6125 +21 +-26.9375 +0 +LINE +8 +0 +10 +26.8 +20 +-26.9375 +11 +11.3 +21 +-26.9375 +0 +LINE +8 +0 +10 +11.3 +20 +-26.9375 +11 +11.3 +21 +-39.7375 +0 +LINE +8 +0 +10 +11.3 +20 +-39.7375 +11 +26.8 +21 +-39.7375 +0 +LINE +8 +0 +10 +26.8 +20 +-39.7375 +11 +26.8 +21 +-26.9375 +0 +LINE +8 +0 +10 +55.375 +20 +-45.9875 +11 +39.875 +21 +-45.9875 +0 +LINE +8 +0 +10 +39.875 +20 +-45.9875 +11 +39.875 +21 +-58.7875 +0 +LINE +8 +0 +10 +39.875 +20 +-58.7875 +11 +55.375 +21 +-58.7875 +0 +LINE +8 +0 +10 +55.375 +20 +-58.7875 +11 +55.375 +21 +-45.9875 +0 +LINE +8 +0 +10 +29.18125 +20 +-45.9875 +11 +13.68125 +21 +-45.9875 +0 +LINE +8 +0 +10 +13.68125 +20 +-45.9875 +11 +13.68125 +21 +-58.7875 +0 +LINE +8 +0 +10 +13.68125 +20 +-58.7875 +11 +29.18125 +21 +-58.7875 +0 +LINE +8 +0 +10 +29.18125 +20 +-58.7875 +11 +29.18125 +21 +-45.9875 +0 +LINE +8 +0 +10 +26.8 +20 +-84.0875 +11 +11.3 +21 +-84.0875 +0 +LINE +8 +0 +10 +11.3 +20 +-84.0875 +11 +11.3 +21 +-96.8875 +0 +LINE +8 +0 +10 +11.3 +20 +-96.8875 +11 +26.8 +21 +-96.8875 +0 +LINE +8 +0 +10 +26.8 +20 +-96.8875 +11 +26.8 +21 +-84.0875 +0 +LINE +8 +0 +10 +260.1625 +20 +-26.9375 +11 +244.6625 +21 +-26.9375 +0 +LINE +8 +0 +10 +244.6625 +20 +-26.9375 +11 +244.6625 +21 +-39.7375 +0 +LINE +8 +0 +10 +244.6625 +20 +-39.7375 +11 +260.1625 +21 +-39.7375 +0 +LINE +8 +0 +10 +260.1625 +20 +-39.7375 +11 +260.1625 +21 +-26.9375 +0 +LINE +8 +0 +10 +283.975 +20 +-26.9375 +11 +268.475 +21 +-26.9375 +0 +LINE +8 +0 +10 +268.475 +20 +-26.9375 +11 +268.475 +21 +-39.7375 +0 +LINE +8 +0 +10 +268.475 +20 +-39.7375 +11 +283.975 +21 +-39.7375 +0 +LINE +8 +0 +10 +283.975 +20 +-39.7375 +11 +283.975 +21 +-26.9375 +0 +LINE +8 +0 +10 +283.975 +20 +-84.0875 +11 +268.475 +21 +-84.0875 +0 +LINE +8 +0 +10 +268.475 +20 +-84.0875 +11 +268.475 +21 +-96.8875 +0 +LINE +8 +0 +10 +268.475 +20 +-96.8875 +11 +283.975 +21 +-96.8875 +0 +LINE +8 +0 +10 +283.975 +20 +-96.8875 +11 +283.975 +21 +-84.0875 +0 +LINE +8 +0 +10 +250.6375 +20 +-7.8875 +11 +235.1375 +21 +-7.8875 +0 +LINE +8 +0 +10 +235.1375 +20 +-7.8875 +11 +235.1375 +21 +-20.6875 +0 +LINE +8 +0 +10 +235.1375 +20 +-20.6875 +11 +250.6375 +21 +-20.6875 +0 +LINE +8 +0 +10 +250.6375 +20 +-20.6875 +11 +250.6375 +21 +-7.8875 +0 +LINE +8 +0 +10 +241.1125 +20 +-26.9375 +11 +225.6125 +21 +-26.9375 +0 +LINE +8 +0 +10 +225.6125 +20 +-26.9375 +11 +225.6125 +21 +-39.7375 +0 +LINE +8 +0 +10 +225.6125 +20 +-39.7375 +11 +241.1125 +21 +-39.7375 +0 +LINE +8 +0 +10 +241.1125 +20 +-39.7375 +11 +241.1125 +21 +-26.9375 +0 +LINE +8 +0 +10 +222.0625 +20 +-26.9375 +11 +206.5625 +21 +-26.9375 +0 +LINE +8 +0 +10 +206.5625 +20 +-26.9375 +11 +206.5625 +21 +-39.7375 +0 +LINE +8 +0 +10 +206.5625 +20 +-39.7375 +11 +222.0625 +21 +-39.7375 +0 +LINE +8 +0 +10 +222.0625 +20 +-39.7375 +11 +222.0625 +21 +-26.9375 +0 +LINE +8 +0 +10 +245.875 +20 +-45.9875 +11 +230.375 +21 +-45.9875 +0 +LINE +8 +0 +10 +230.375 +20 +-45.9875 +11 +230.375 +21 +-58.7875 +0 +LINE +8 +0 +10 +230.375 +20 +-58.7875 +11 +245.875 +21 +-58.7875 +0 +LINE +8 +0 +10 +245.875 +20 +-58.7875 +11 +245.875 +21 +-45.9875 +0 +LINE +8 +0 +10 +226.825 +20 +-45.9875 +11 +211.325 +21 +-45.9875 +0 +LINE +8 +0 +10 +211.325 +20 +-45.9875 +11 +211.325 +21 +-58.7875 +0 +LINE +8 +0 +10 +211.325 +20 +-58.7875 +11 +226.825 +21 +-58.7875 +0 +LINE +8 +0 +10 +226.825 +20 +-58.7875 +11 +226.825 +21 +-45.9875 +0 +LINE +8 +0 +10 +236.35 +20 +-65.0375 +11 +220.85 +21 +-65.0375 +0 +LINE +8 +0 +10 +220.85 +20 +-65.0375 +11 +220.85 +21 +-77.8375 +0 +LINE +8 +0 +10 +220.85 +20 +-77.8375 +11 +236.35 +21 +-77.8375 +0 +LINE +8 +0 +10 +236.35 +20 +-77.8375 +11 +236.35 +21 +-65.0375 +0 +LINE +8 +0 +10 +217.3 +20 +-65.0375 +11 +201.8 +21 +-65.0375 +0 +LINE +8 +0 +10 +201.8 +20 +-65.0375 +11 +201.8 +21 +-77.8375 +0 +LINE +8 +0 +10 +201.8 +20 +-77.8375 +11 +217.3 +21 +-77.8375 +0 +LINE +8 +0 +10 +217.3 +20 +-77.8375 +11 +217.3 +21 +-65.0375 +0 +LINE +8 +0 +10 +257.78125 +20 +-84.0875 +11 +242.28125 +21 +-84.0875 +0 +LINE +8 +0 +10 +242.28125 +20 +-84.0875 +11 +242.28125 +21 +-96.8875 +0 +LINE +8 +0 +10 +242.28125 +20 +-96.8875 +11 +257.78125 +21 +-96.8875 +0 +LINE +8 +0 +10 +257.78125 +20 +-96.8875 +11 +257.78125 +21 +-84.0875 +0 +LINE +8 +0 +10 +231.5875 +20 +-7.8875 +11 +216.0875 +21 +-7.8875 +0 +LINE +8 +0 +10 +216.0875 +20 +-7.8875 +11 +216.0875 +21 +-20.6875 +0 +LINE +8 +0 +10 +216.0875 +20 +-20.6875 +11 +231.5875 +21 +-20.6875 +0 +LINE +8 +0 +10 +231.5875 +20 +-20.6875 +11 +231.5875 +21 +-7.8875 +0 +LINE +8 +0 +10 +212.5375 +20 +-7.8875 +11 +197.0375 +21 +-7.8875 +0 +LINE +8 +0 +10 +197.0375 +20 +-7.8875 +11 +197.0375 +21 +-20.6875 +0 +LINE +8 +0 +10 +197.0375 +20 +-20.6875 +11 +212.5375 +21 +-20.6875 +0 +LINE +8 +0 +10 +212.5375 +20 +-20.6875 +11 +212.5375 +21 +-7.8875 +0 +LINE +8 +0 +10 +203.0125 +20 +-26.9375 +11 +187.5125 +21 +-26.9375 +0 +LINE +8 +0 +10 +187.5125 +20 +-26.9375 +11 +187.5125 +21 +-39.7375 +0 +LINE +8 +0 +10 +187.5125 +20 +-39.7375 +11 +203.0125 +21 +-39.7375 +0 +LINE +8 +0 +10 +203.0125 +20 +-39.7375 +11 +203.0125 +21 +-26.9375 +0 +LINE +8 +0 +10 +207.775 +20 +-45.9875 +11 +192.275 +21 +-45.9875 +0 +LINE +8 +0 +10 +192.275 +20 +-45.9875 +11 +192.275 +21 +-58.7875 +0 +LINE +8 +0 +10 +192.275 +20 +-58.7875 +11 +207.775 +21 +-58.7875 +0 +LINE +8 +0 +10 +207.775 +20 +-58.7875 +11 +207.775 +21 +-45.9875 +0 +LINE +8 +0 +10 +188.725 +20 +-45.9875 +11 +173.225 +21 +-45.9875 +0 +LINE +8 +0 +10 +173.225 +20 +-45.9875 +11 +173.225 +21 +-58.7875 +0 +LINE +8 +0 +10 +173.225 +20 +-58.7875 +11 +188.725 +21 +-58.7875 +0 +LINE +8 +0 +10 +188.725 +20 +-58.7875 +11 +188.725 +21 +-45.9875 +0 +LINE +8 +0 +10 +198.25 +20 +-65.0375 +11 +182.75 +21 +-65.0375 +0 +LINE +8 +0 +10 +182.75 +20 +-65.0375 +11 +182.75 +21 +-77.8375 +0 +LINE +8 +0 +10 +182.75 +20 +-77.8375 +11 +198.25 +21 +-77.8375 +0 +LINE +8 +0 +10 +198.25 +20 +-77.8375 +11 +198.25 +21 +-65.0375 +0 +LINE +8 +0 +10 +179.2 +20 +-65.0375 +11 +163.7 +21 +-65.0375 +0 +LINE +8 +0 +10 +163.7 +20 +-65.0375 +11 +163.7 +21 +-77.8375 +0 +LINE +8 +0 +10 +163.7 +20 +-77.8375 +11 +179.2 +21 +-77.8375 +0 +LINE +8 +0 +10 +179.2 +20 +-77.8375 +11 +179.2 +21 +-65.0375 +0 +LINE +8 +0 +10 +231.5875 +20 +-84.0875 +11 +216.0875 +21 +-84.0875 +0 +LINE +8 +0 +10 +216.0875 +20 +-84.0875 +11 +216.0875 +21 +-96.8875 +0 +LINE +8 +0 +10 +216.0875 +20 +-96.8875 +11 +231.5875 +21 +-96.8875 +0 +LINE +8 +0 +10 +231.5875 +20 +-96.8875 +11 +231.5875 +21 +-84.0875 +0 +LINE +8 +0 +10 +244.01875 +20 +-75.3375 +11 +244.01875 +21 +-80.4375 +0 +LINE +8 +0 +10 +244.01875 +20 +-80.4375 +11 +241.41875 +21 +-80.4375 +0 +LINE +8 +0 +10 +241.41875 +20 +-80.4375 +11 +241.41875 +21 +-75.3375 +0 +LINE +8 +0 +10 +241.41875 +20 +-75.3375 +11 +244.01875 +21 +-75.3375 +0 +LINE +8 +0 +10 +284.61875 +20 +-75.3375 +11 +284.61875 +21 +-80.4375 +0 +LINE +8 +0 +10 +284.61875 +20 +-80.4375 +11 +287.21875 +21 +-80.4375 +0 +LINE +8 +0 +10 +287.21875 +20 +-80.4375 +11 +287.21875 +21 +-75.3375 +0 +LINE +8 +0 +10 +287.21875 +20 +-75.3375 +11 +284.61875 +21 +-75.3375 +0 +LINE +8 +0 +10 +272.06875 +20 +-65.0375 +11 +256.56875 +21 +-65.0375 +0 +LINE +8 +0 +10 +256.56875 +20 +-65.0375 +11 +256.56875 +21 +-77.8375 +0 +LINE +8 +0 +10 +256.56875 +20 +-77.8375 +11 +272.06875 +21 +-77.8375 +0 +LINE +8 +0 +10 +272.06875 +20 +-77.8375 +11 +272.06875 +21 +-65.0375 +0 +TEXT +8 +Cmts +62 +1 +10 +303.847897 +20 +-52.73062 +1 +95.000 mm +40 +1.5 +41 +1.5 +50 +270.186984 +7 +SIMPLEX +72 +1 +73 +2 +11 +303.847897 +21 +-52.73062 +0 +LINE +8 +Cmts +62 +1 +10 +287.34 +20 +-100.28 +11 +305.35289 +21 +-100.221215 +0 +LINE +8 +Cmts +62 +1 +10 +287.03 +20 +-5.29 +11 +305.04289 +21 +-5.231215 +0 +LINE +8 +Cmts +62 +1 +10 +302.342904 +20 +-5.240026 +11 +302.652904 +21 +-100.230026 +0 +LINE +8 +Cmts +62 +1 +10 +302.652904 +20 +-100.230026 +11 +302.06281 +21 +-99.105442 +0 +LINE +8 +Cmts +62 +1 +10 +302.652904 +20 +-100.230026 +11 +303.235645 +21 +-99.101614 +0 +LINE +8 +Cmts +62 +1 +10 +302.342904 +20 +-5.240026 +11 +301.760163 +21 +-6.368438 +0 +LINE +8 +Cmts +62 +1 +10 +302.342904 +20 +-5.240026 +11 +302.932998 +21 +-6.36461 +0 +TEXT +8 +Cmts +62 +1 +10 +17.92 +20 +-43.7 +1 +25.6125 mm +40 +1.5 +41 +1.5 +7 +SIMPLEX +72 +1 +73 +2 +11 +17.92 +21 +-43.7 +0 +LINE +8 +Cmts +62 +1 +10 +30.71 +20 +-33.34 +11 +30.71 +21 +-45.05 +0 +LINE +8 +Cmts +62 +1 +10 +5.13 +20 +-33.34 +11 +5.13 +21 +-45.05 +0 +LINE +8 +Cmts +62 +1 +10 +5.13 +20 +-42.35 +11 +30.71 +21 +-42.35 +0 +LINE +8 +Cmts +62 +1 +10 +30.71 +20 +-42.35 +11 +29.583496 +21 +-42.936421 +0 +LINE +8 +Cmts +62 +1 +10 +30.71 +20 +-42.35 +11 +29.583496 +21 +-41.763579 +0 +LINE +8 +Cmts +62 +1 +10 +5.13 +20 +-42.35 +11 +6.256504 +21 +-42.936421 +0 +LINE +8 +Cmts +62 +1 +10 +5.13 +20 +-42.35 +11 +6.256504 +21 +-41.763579 +0 +TEXT +8 +Cmts +62 +1 +10 +277.347461 +20 +-39.634741 +1 +25.6125 mm +40 +1.5 +41 +1.5 +50 +0.022425 +7 +SIMPLEX +72 +1 +73 +2 +11 +277.347461 +21 +-39.634741 +0 +LINE +8 +Cmts +62 +1 +10 +290.12 +20 +-33.34 +11 +290.12299 +21 +-40.979741 +0 +LINE +8 +Cmts +62 +1 +10 +264.57 +20 +-33.35 +11 +264.57299 +21 +-40.989741 +0 +LINE +8 +Cmts +62 +1 +10 +264.571933 +20 +-38.289741 +11 +290.121933 +21 +-38.279741 +0 +LINE +8 +Cmts +62 +1 +10 +290.121933 +20 +-38.279741 +11 +288.995659 +21 +-38.866603 +0 +LINE +8 +Cmts +62 +1 +10 +290.121933 +20 +-38.279741 +11 +288.9952 +21 +-37.693761 +0 +LINE +8 +Cmts +62 +1 +10 +264.571933 +20 +-38.289741 +11 +265.698666 +21 +-38.875721 +0 +LINE +8 +Cmts +62 +1 +10 +264.571933 +20 +-38.289741 +11 +265.698207 +21 +-37.702879 +0 +TEXT +8 +Cmts +62 +1 +10 +202.7 +20 +-90.49 +1 +6.300 mm +40 +1.5 +41 +1.5 +50 +270.0 +7 +SIMPLEX +72 +1 +73 +2 +11 +202.7 +21 +-90.49 +0 +LINE +8 +Cmts +62 +1 +10 +195.44 +20 +-93.64 +11 +204.05 +21 +-93.64 +0 +LINE +8 +Cmts +62 +1 +10 +195.44 +20 +-87.34 +11 +204.05 +21 +-87.34 +0 +LINE +8 +Cmts +62 +1 +10 +201.35 +20 +-87.34 +11 +201.35 +21 +-93.64 +0 +LINE +8 +Cmts +62 +1 +10 +201.35 +20 +-93.64 +11 +200.763579 +21 +-92.513496 +0 +LINE +8 +Cmts +62 +1 +10 +201.35 +20 +-93.64 +11 +201.936421 +21 +-92.513496 +0 +LINE +8 +Cmts +62 +1 +10 +201.35 +20 +-87.34 +11 +200.763579 +21 +-88.466504 +0 +LINE +8 +Cmts +62 +1 +10 +201.35 +20 +-87.34 +11 +201.936421 +21 +-88.466504 +0 +TEXT +8 +Cmts +62 +1 +10 +258.43468 +20 +-33.349763 +1 +6.300 mm +40 +1.5 +41 +1.5 +50 +270.090946 +7 +SIMPLEX +72 +1 +73 +2 +11 +258.43468 +21 +-33.349763 +0 +LINE +8 +Cmts +62 +1 +10 +264.59 +20 +-36.49 +11 +257.089682 +21 +-36.501906 +0 +LINE +8 +Cmts +62 +1 +10 +264.58 +20 +-30.19 +11 +257.079682 +21 +-30.201906 +0 +LINE +8 +Cmts +62 +1 +10 +259.779679 +20 +-30.19762 +11 +259.789679 +21 +-36.49762 +0 +LINE +8 +Cmts +62 +1 +10 +259.789679 +20 +-36.49762 +11 +259.201471 +21 +-35.372048 +0 +LINE +8 +Cmts +62 +1 +10 +259.789679 +20 +-36.49762 +11 +260.374311 +21 +-35.370187 +0 +LINE +8 +Cmts +62 +1 +10 +259.779679 +20 +-30.19762 +11 +259.195047 +21 +-31.325053 +0 +LINE +8 +Cmts +62 +1 +10 +259.779679 +20 +-30.19762 +11 +260.367887 +21 +-31.323192 +0 +TEXT +8 +Cmts +62 +1 +10 +24.47 +20 +-33.33 +1 +6.300 mm +40 +1.5 +41 +1.5 +50 +270.0 +7 +SIMPLEX +72 +1 +73 +2 +11 +24.47 +21 +-33.33 +0 +LINE +8 +Cmts +62 +1 +10 +30.72 +20 +-36.48 +11 +23.12 +21 +-36.48 +0 +LINE +8 +Cmts +62 +1 +10 +30.72 +20 +-30.18 +11 +23.12 +21 +-30.18 +0 +LINE +8 +Cmts +62 +1 +10 +25.82 +20 +-30.18 +11 +25.82 +21 +-36.48 +0 +LINE +8 +Cmts +62 +1 +10 +25.82 +20 +-36.48 +11 +25.233579 +21 +-35.353496 +0 +LINE +8 +Cmts +62 +1 +10 +25.82 +20 +-36.48 +11 +26.406421 +21 +-35.353496 +0 +LINE +8 +Cmts +62 +1 +10 +25.82 +20 +-30.18 +11 +25.233579 +21 +-31.306504 +0 +LINE +8 +Cmts +62 +1 +10 +25.82 +20 +-30.18 +11 +26.406421 +21 +-31.306504 +0 +TEXT +8 +Cmts +62 +1 +10 +103.46 +20 +-90.49 +1 +6.300 mm +40 +1.5 +41 +1.5 +50 +270.0 +7 +SIMPLEX +72 +1 +73 +2 +11 +103.46 +21 +-90.49 +0 +LINE +8 +Cmts +62 +1 +10 +109.64 +20 +-93.64 +11 +102.11 +21 +-93.64 +0 +LINE +8 +Cmts +62 +1 +10 +109.64 +20 +-87.34 +11 +102.11 +21 +-87.34 +0 +LINE +8 +Cmts +62 +1 +10 +104.81 +20 +-87.34 +11 +104.81 +21 +-93.64 +0 +LINE +8 +Cmts +62 +1 +10 +104.81 +20 +-93.64 +11 +104.223579 +21 +-92.513496 +0 +LINE +8 +Cmts +62 +1 +10 +104.81 +20 +-93.64 +11 +105.396421 +21 +-92.513496 +0 +LINE +8 +Cmts +62 +1 +10 +104.81 +20 +-87.34 +11 +104.223579 +21 +-88.466504 +0 +LINE +8 +Cmts +62 +1 +10 +104.81 +20 +-87.34 +11 +105.396421 +21 +-88.466504 +0 +TEXT +8 +Cmts +62 +1 +10 +171.54 +20 +-78.67 +1 +47.800 mm +40 +1.5 +41 +1.5 +7 +SIMPLEX +72 +1 +73 +2 +11 +171.54 +21 +-78.67 +0 +LINE +8 +Cmts +62 +1 +10 +147.64 +20 +-90.49 +11 +147.64 +21 +-77.32 +0 +LINE +8 +Cmts +62 +1 +10 +195.44 +20 +-90.49 +11 +195.44 +21 +-77.32 +0 +LINE +8 +Cmts +62 +1 +10 +195.44 +20 +-80.02 +11 +147.64 +21 +-80.02 +0 +LINE +8 +Cmts +62 +1 +10 +147.64 +20 +-80.02 +11 +148.766504 +21 +-79.433579 +0 +LINE +8 +Cmts +62 +1 +10 +147.64 +20 +-80.02 +11 +148.766504 +21 +-80.606421 +0 +LINE +8 +Cmts +62 +1 +10 +195.44 +20 +-80.02 +11 +194.313496 +21 +-79.433579 +0 +LINE +8 +Cmts +62 +1 +10 +195.44 +20 +-80.02 +11 +194.313496 +21 +-80.606421 +0 +TEXT +8 +Cmts +62 +1 +10 +128.64 +20 +-109.43 +1 +38.000 mm +40 +1.5 +41 +1.5 +7 +SIMPLEX +72 +1 +73 +2 +11 +128.64 +21 +-109.43 +0 +LINE +8 +Cmts +62 +1 +10 +109.64 +20 +-90.48 +11 +109.64 +21 +-110.78 +0 +LINE +8 +Cmts +62 +1 +10 +147.64 +20 +-90.48 +11 +147.64 +21 +-110.78 +0 +LINE +8 +Cmts +62 +1 +10 +147.64 +20 +-108.08 +11 +109.64 +21 +-108.08 +0 +LINE +8 +Cmts +62 +1 +10 +109.64 +20 +-108.08 +11 +110.766504 +21 +-107.493579 +0 +LINE +8 +Cmts +62 +1 +10 +109.64 +20 +-108.08 +11 +110.766504 +21 +-108.666421 +0 +LINE +8 +Cmts +62 +1 +10 +147.64 +20 +-108.08 +11 +146.513496 +21 +-107.493579 +0 +LINE +8 +Cmts +62 +1 +10 +147.64 +20 +-108.08 +11 +146.513496 +21 +-108.666421 +0 +TEXT +8 +Cmts +62 +1 +10 +197.96 +20 +-99.88 +1 +0.800 mm +40 +1.5 +41 +1.5 +50 +270.0 +7 +SIMPLEX +72 +1 +73 +2 +11 +197.96 +21 +-99.88 +0 +LINE +8 +Cmts +62 +1 +10 +194.38 +20 +-100.28 +11 +199.31 +21 +-100.28 +0 +LINE +8 +Cmts +62 +1 +10 +194.38 +20 +-99.48 +11 +199.31 +21 +-99.48 +0 +LINE +8 +Cmts +62 +1 +10 +196.61 +20 +-99.48 +11 +196.61 +21 +-100.28 +0 +LINE +8 +Cmts +62 +1 +10 +196.61 +20 +-100.28 +11 +196.023579 +21 +-99.153496 +0 +LINE +8 +Cmts +62 +1 +10 +196.61 +20 +-100.28 +11 +197.196421 +21 +-99.153496 +0 +LINE +8 +Cmts +62 +1 +10 +196.61 +20 +-99.48 +11 +196.023579 +21 +-100.606504 +0 +LINE +8 +Cmts +62 +1 +10 +196.61 +20 +-99.48 +11 +197.196421 +21 +-100.606504 +0 +TEXT +8 +Cmts +62 +1 +10 +188.875133 +20 +-92.417616 +1 +3.900 mm +40 +1.5 +41 +1.5 +50 +89.559272 +7 +SIMPLEX +72 +1 +73 +2 +11 +188.875133 +21 +-92.417616 +0 +LINE +8 +Cmts +62 +1 +10 +191.77 +20 +-94.39 +11 +187.510173 +21 +-94.357232 +0 +LINE +8 +Cmts +62 +1 +10 +191.8 +20 +-90.49 +11 +187.540173 +21 +-90.457232 +0 +LINE +8 +Cmts +62 +1 +10 +190.240093 +20 +-90.478001 +11 +190.210093 +21 +-94.378001 +0 +LINE +8 +Cmts +62 +1 +10 +190.210093 +20 +-94.378001 +11 +189.632355 +21 +-93.24702 +0 +LINE +8 +Cmts +62 +1 +10 +190.210093 +20 +-94.378001 +11 +190.805162 +21 +-93.256041 +0 +LINE +8 +Cmts +62 +1 +10 +190.240093 +20 +-90.478001 +11 +189.645024 +21 +-91.599961 +0 +LINE +8 +Cmts +62 +1 +10 +190.240093 +20 +-90.478001 +11 +190.817831 +21 +-91.608982 +0 +TEXT +8 +Cmts +62 +1 +10 +159.664849 +20 +-87.283312 +1 +6.400 mm +40 +1.5 +41 +1.5 +50 +270.089525 +7 +SIMPLEX +72 +1 +73 +2 +11 +159.664849 +21 +-87.283312 +0 +LINE +8 +Cmts +62 +1 +10 +155.38 +20 +-84.09 +11 +161.009848 +21 +-84.081203 +0 +LINE +8 +Cmts +62 +1 +10 +155.39 +20 +-90.49 +11 +161.019848 +21 +-90.481203 +0 +LINE +8 +Cmts +62 +1 +10 +158.319851 +20 +-90.485422 +11 +158.309851 +21 +-84.085422 +0 +LINE +8 +Cmts +62 +1 +10 +158.309851 +20 +-84.085422 +11 +158.898031 +21 +-85.211008 +0 +LINE +8 +Cmts +62 +1 +10 +158.309851 +20 +-84.085422 +11 +157.725191 +21 +-85.212841 +0 +LINE +8 +Cmts +62 +1 +10 +158.319851 +20 +-90.485422 +11 +158.904511 +21 +-89.358003 +0 +LINE +8 +Cmts +62 +1 +10 +158.319851 +20 +-90.485422 +11 +157.731671 +21 +-89.359836 +0 +LINE +8 +Cmts +62 +1 +10 +109.67 +20 +-90.4875 +11 +195.48 +21 +-90.4875 +0 +TEXT +8 +Cmts +62 +1 +10 +147.64 +20 +-117.98 +1 +88.300 mm +40 +1.5 +41 +1.5 +7 +SIMPLEX +72 +1 +73 +2 +11 +147.64 +21 +-117.98 +0 +LINE +8 +Cmts +62 +1 +10 +191.79 +20 +-99.49 +11 +191.79 +21 +-119.33 +0 +LINE +8 +Cmts +62 +1 +10 +103.49 +20 +-99.49 +11 +103.49 +21 +-119.33 +0 +LINE +8 +Cmts +62 +1 +10 +103.49 +20 +-116.63 +11 +191.79 +21 +-116.63 +0 +LINE +8 +Cmts +62 +1 +10 +191.79 +20 +-116.63 +11 +190.663496 +21 +-117.216421 +0 +LINE +8 +Cmts +62 +1 +10 +191.79 +20 +-116.63 +11 +190.663496 +21 +-116.043579 +0 +LINE +8 +Cmts +62 +1 +10 +103.49 +20 +-116.63 +11 +104.616504 +21 +-117.216421 +0 +LINE +8 +Cmts +62 +1 +10 +103.49 +20 +-116.63 +11 +104.616504 +21 +-116.043579 +0 +TEXT +8 +Cmts +62 +1 +10 +102.19 +20 +-104.41 +1 +2.600 mm +40 +1.5 +41 +1.5 +7 +SIMPLEX +72 +1 +73 +2 +11 +102.19 +21 +-104.41 +0 +LINE +8 +Cmts +62 +1 +10 +103.49 +20 +-99.49 +11 +103.49 +21 +-105.76 +0 +LINE +8 +Cmts +62 +1 +10 +100.89 +20 +-99.49 +11 +100.89 +21 +-105.76 +0 +LINE +8 +Cmts +62 +1 +10 +100.89 +20 +-103.06 +11 +103.49 +21 +-103.06 +0 +LINE +8 +Cmts +62 +1 +10 +103.49 +20 +-103.06 +11 +102.363496 +21 +-103.646421 +0 +LINE +8 +Cmts +62 +1 +10 +103.49 +20 +-103.06 +11 +102.363496 +21 +-102.473579 +0 +LINE +8 +Cmts +62 +1 +10 +100.89 +20 +-103.06 +11 +102.016504 +21 +-103.646421 +0 +LINE +8 +Cmts +62 +1 +10 +100.89 +20 +-103.06 +11 +102.016504 +21 +-102.473579 +0 +TEXT +8 +Cmts +62 +1 +10 +97.67 +20 +-96.94 +1 +5.100 mm +40 +1.5 +41 +1.5 +50 +270.0 +7 +SIMPLEX +72 +1 +73 +2 +11 +97.67 +21 +-96.94 +0 +LINE +8 +Cmts +62 +1 +10 +100.89 +20 +-99.49 +11 +96.32 +21 +-99.49 +0 +LINE +8 +Cmts +62 +1 +10 +100.89 +20 +-94.39 +11 +96.32 +21 +-94.39 +0 +LINE +8 +Cmts +62 +1 +10 +99.02 +20 +-94.39 +11 +99.02 +21 +-99.49 +0 +LINE +8 +Cmts +62 +1 +10 +99.02 +20 +-99.49 +11 +98.433579 +21 +-98.363496 +0 +LINE +8 +Cmts +62 +1 +10 +99.02 +20 +-99.49 +11 +99.606421 +21 +-98.363496 +0 +LINE +8 +Cmts +62 +1 +10 +99.02 +20 +-94.39 +11 +98.433579 +21 +-95.516504 +0 +LINE +8 +Cmts +62 +1 +10 +99.02 +20 +-94.39 +11 +99.606421 +21 +-95.516504 +0 +TEXT +8 +Cmts +62 +1 +10 +109.63 +20 +-81.13 +1 +14.500 mm +40 +1.5 +41 +1.5 +7 +SIMPLEX +72 +1 +73 +2 +11 +109.63 +21 +-81.13 +0 +LINE +8 +Cmts +62 +1 +10 +102.38 +20 +-89.28 +11 +102.38 +21 +-79.78 +0 +LINE +8 +Cmts +62 +1 +10 +116.88 +20 +-89.28 +11 +116.88 +21 +-79.78 +0 +LINE +8 +Cmts +62 +1 +10 +116.88 +20 +-82.48 +11 +102.38 +21 +-82.48 +0 +LINE +8 +Cmts +62 +1 +10 +102.38 +20 +-82.48 +11 +103.506504 +21 +-81.893579 +0 +LINE +8 +Cmts +62 +1 +10 +102.38 +20 +-82.48 +11 +103.506504 +21 +-83.066421 +0 +LINE +8 +Cmts +62 +1 +10 +116.88 +20 +-82.48 +11 +115.753496 +21 +-81.893579 +0 +LINE +8 +Cmts +62 +1 +10 +116.88 +20 +-82.48 +11 +115.753496 +21 +-83.066421 +0 +TEXT +8 +Cmts +62 +1 +10 +121.803009 +20 +-90.50045 +1 +2.400 mm +40 +1.5 +41 +1.5 +50 +89.761269 +7 +SIMPLEX +72 +1 +73 +2 +11 +121.803009 +21 +-90.50045 +0 +LINE +8 +Cmts +62 +1 +10 +116.89 +20 +-91.68 +11 +123.147997 +21 +-91.706075 +0 +LINE +8 +Cmts +62 +1 +10 +116.9 +20 +-89.28 +11 +123.157997 +21 +-89.306075 +0 +LINE +8 +Cmts +62 +1 +10 +120.458021 +20 +-89.294825 +11 +120.448021 +21 +-91.694825 +0 +LINE +8 +Cmts +62 +1 +10 +120.448021 +20 +-91.694825 +11 +119.866299 +21 +-90.565888 +0 +LINE +8 +Cmts +62 +1 +10 +120.448021 +20 +-91.694825 +11 +121.03913 +21 +-90.570774 +0 +LINE +8 +Cmts +62 +1 +10 +120.458021 +20 +-89.294825 +11 +119.866912 +21 +-90.418876 +0 +LINE +8 +Cmts +62 +1 +10 +120.458021 +20 +-89.294825 +11 +121.039743 +21 +-90.423762 +0 +TEXT +8 +Cmts +62 +1 +10 +115.69 +20 +-85.3 +1 +2.400 mm +40 +1.5 +41 +1.5 +7 +SIMPLEX +72 +1 +73 +2 +11 +115.69 +21 +-85.3 +0 +LINE +8 +Cmts +62 +1 +10 +116.89 +20 +-89.28 +11 +116.89 +21 +-83.95 +0 +LINE +8 +Cmts +62 +1 +10 +114.49 +20 +-89.28 +11 +114.49 +21 +-83.95 +0 +LINE +8 +Cmts +62 +1 +10 +114.49 +20 +-86.65 +11 +116.89 +21 +-86.65 +0 +LINE +8 +Cmts +62 +1 +10 +116.89 +20 +-86.65 +11 +115.763496 +21 +-87.236421 +0 +LINE +8 +Cmts +62 +1 +10 +116.89 +20 +-86.65 +11 +115.763496 +21 +-86.063579 +0 +LINE +8 +Cmts +62 +1 +10 +114.49 +20 +-86.65 +11 +115.616504 +21 +-87.236421 +0 +LINE +8 +Cmts +62 +1 +10 +114.49 +20 +-86.65 +11 +115.616504 +21 +-86.063579 +0 +TEXT +8 +Cmts +62 +1 +10 +135.19 +20 +-90.49 +1 +12.800 mm +40 +1.5 +41 +1.5 +50 +270.0 +7 +SIMPLEX +72 +1 +73 +2 +11 +135.19 +21 +-90.49 +0 +LINE +8 +Cmts +62 +1 +10 +139.89 +20 +-96.89 +11 +133.84 +21 +-96.89 +0 +LINE +8 +Cmts +62 +1 +10 +139.89 +20 +-84.09 +11 +133.84 +21 +-84.09 +0 +LINE +8 +Cmts +62 +1 +10 +136.54 +20 +-84.09 +11 +136.54 +21 +-96.89 +0 +LINE +8 +Cmts +62 +1 +10 +136.54 +20 +-96.89 +11 +135.953579 +21 +-95.763496 +0 +LINE +8 +Cmts +62 +1 +10 +136.54 +20 +-96.89 +11 +137.126421 +21 +-95.763496 +0 +LINE +8 +Cmts +62 +1 +10 +136.54 +20 +-84.09 +11 +135.953579 +21 +-85.216504 +0 +LINE +8 +Cmts +62 +1 +10 +136.54 +20 +-84.09 +11 +137.126421 +21 +-85.216504 +0 +TEXT +8 +Cmts +62 +1 +10 +147.63 +20 +-105.02 +1 +15.500 mm +40 +1.5 +41 +1.5 +7 +SIMPLEX +72 +1 +73 +2 +11 +147.63 +21 +-105.02 +0 +LINE +8 +Cmts +62 +1 +10 +139.88 +20 +-96.87 +11 +139.88 +21 +-106.37 +0 +LINE +8 +Cmts +62 +1 +10 +155.38 +20 +-96.87 +11 +155.38 +21 +-106.37 +0 +LINE +8 +Cmts +62 +1 +10 +155.38 +20 +-103.67 +11 +139.88 +21 +-103.67 +0 +LINE +8 +Cmts +62 +1 +10 +139.88 +20 +-103.67 +11 +141.006504 +21 +-103.083579 +0 +LINE +8 +Cmts +62 +1 +10 +139.88 +20 +-103.67 +11 +141.006504 +21 +-104.256421 +0 +LINE +8 +Cmts +62 +1 +10 +155.38 +20 +-103.67 +11 +154.253496 +21 +-103.083579 +0 +LINE +8 +Cmts +62 +1 +10 +155.38 +20 +-103.67 +11 +154.253496 +21 +-104.256421 +0 +CIRCLE +8 +0 +10 +30.75 +20 +-33.3375 +40 +3.15 +0 +CIRCLE +8 +0 +10 +195.4375 +20 +-90.4875 +40 +3.15 +0 +CIRCLE +8 +0 +10 +264.525 +20 +-33.3375 +40 +3.15 +0 +LINE +8 +0 +10 +290.1375 +20 +-7.7875 +11 +290.1375 +21 +-58.7125 +0 +LINE +8 +0 +10 +288.3375 +20 +-58.7125 +11 +290.1375 +21 +-58.7125 +0 +LINE +8 +0 +10 +5.1375 +20 +-65.0125 +11 +5.1375 +21 +-97.7875 +0 +LINE +8 +0 +10 +288.3375 +20 +-65.1125 +11 +290.1375 +21 +-65.1125 +0 +LINE +8 +0 +10 +8.7375 +20 +-65.0125 +11 +5.1375 +21 +-65.0125 +0 +LINE +8 +0 +10 +8.7375 +20 +-58.8125 +11 +5.1375 +21 +-58.8125 +0 +ARC +8 +0 +10 +8.7375 +20 +-61.9125 +30 +0.0 +40 +3.1 +50 +-90.0 +51 +90.0 +0 +ARC +8 +0 +10 +288.3375 +20 +-61.9125 +30 +0.0 +40 +3.2 +50 +90.0 +51 +270.0 +0 +TEXT +8 +Cmts +62 +1 +10 +277.6375 +20 +6.3625 +1 +25.000 mm +40 +1.5 +41 +1.5 +7 +SIMPLEX +72 +1 +73 +2 +11 +277.6375 +21 +6.3625 +0 +LINE +8 +Cmts +62 +1 +10 +265.1375 +20 +-33.3375 +11 +265.1375 +21 +7.7125 +0 +LINE +8 +Cmts +62 +1 +10 +290.1375 +20 +-33.3375 +11 +290.1375 +21 +7.7125 +0 +LINE +8 +Cmts +62 +1 +10 +290.1375 +20 +5.0125 +11 +265.1375 +21 +5.0125 +0 +LINE +8 +Cmts +62 +1 +10 +265.1375 +20 +5.0125 +11 +266.264004 +21 +5.598921 +0 +LINE +8 +Cmts +62 +1 +10 +265.1375 +20 +5.0125 +11 +266.264004 +21 +4.426079 +0 +LINE +8 +Cmts +62 +1 +10 +290.1375 +20 +5.0125 +11 +289.010996 +21 +5.598921 +0 +LINE +8 +Cmts +62 +1 +10 +290.1375 +20 +5.0125 +11 +289.010996 +21 +4.426079 +0 +TEXT +8 +Cmts +62 +1 +10 +147.6375 +20 +10.875 +1 +285.000 mm +40 +1.5 +41 +1.5 +7 +SIMPLEX +72 +1 +73 +2 +11 +147.6375 +21 +10.875 +0 +LINE +8 +Cmts +62 +1 +10 +290.1375 +20 +-7.14375 +11 +290.1375 +21 +12.225 +0 +LINE +8 +Cmts +62 +1 +10 +5.1375 +20 +-7.14375 +11 +5.1375 +21 +12.225 +0 +LINE +8 +Cmts +62 +1 +10 +5.1375 +20 +9.525 +11 +290.1375 +21 +9.525 +0 +LINE +8 +Cmts +62 +1 +10 +290.1375 +20 +9.525 +11 +289.010996 +21 +8.938579 +0 +LINE +8 +Cmts +62 +1 +10 +290.1375 +20 +9.525 +11 +289.010996 +21 +10.111421 +0 +LINE +8 +Cmts +62 +1 +10 +5.1375 +20 +9.525 +11 +6.264004 +21 +8.938579 +0 +LINE +8 +Cmts +62 +1 +10 +5.1375 +20 +9.525 +11 +6.264004 +21 +10.111421 +0 +ARC +8 +0 +10 +7.6375 +20 +-97.7875 +30 +0.0 +40 +2.5 +50 +-180.0 +51 +-90.0 +0 +ARC +8 +0 +10 +287.6375 +20 +-97.7875 +30 +0.0 +40 +2.5 +50 +-90.0 +51 +0.0 +0 +ARC +8 +0 +10 +287.6375 +20 +-7.7875 +30 +0.0 +40 +2.5 +50 +0.0 +51 +90.0 +0 +ARC +8 +0 +10 +7.6375 +20 +-7.7875 +30 +0.0 +40 +2.5 +50 +90.0 +51 +180.0 +0 +LINE +8 +0 +10 +290.1375 +20 +-97.7875 +11 +290.1375 +21 +-65.1125 +0 +LINE +8 +0 +10 +7.6375 +20 +-100.2875 +11 +287.6375 +21 +-100.2875 +0 +LINE +8 +0 +10 +5.1375 +20 +-7.7875 +11 +5.1375 +21 +-58.8125 +0 +LINE +8 +0 +10 +7.6375 +20 +-5.2875 +11 +287.6375 +21 +-5.2875 +0 +ENDSEC +0 +EOF \ No newline at end of file diff --git a/keyboards/weebkeeb/config.h b/keyboards/weebkeeb/config.h new file mode 100644 index 000000000..859adc9cc --- /dev/null +++ b/keyboards/weebkeeb/config.h @@ -0,0 +1,162 @@ +/* +Copyright 2012 Jun Wako + +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 . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER You +#define PRODUCT weebkeeb +#define DESCRIPTION A custom keyboard + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { F4, F5, F6, F7 } +#define MATRIX_COL_PINS { B0, B1, B2, B3, B4, B5, B6, B7, C6, C7, F0, F1 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/weebkeeb/keymaps/default/Makefile b/keyboards/weebkeeb/keymaps/default/Makefile new file mode 100644 index 000000000..f4671a9d1 --- /dev/null +++ b/keyboards/weebkeeb/keymaps/default/Makefile @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/weebkeeb/keymaps/default/config.h b/keyboards/weebkeeb/keymaps/default/config.h new file mode 100644 index 000000000..df06a2620 --- /dev/null +++ b/keyboards/weebkeeb/keymaps/default/config.h @@ -0,0 +1,8 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here + +#endif \ No newline at end of file diff --git a/keyboards/weebkeeb/keymaps/default/keymap.c b/keyboards/weebkeeb/keymaps/default/keymap.c new file mode 100644 index 000000000..cdf1f1e4c --- /dev/null +++ b/keyboards/weebkeeb/keymaps/default/keymap.c @@ -0,0 +1,119 @@ +#include "weebkeeb.h" + +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _ADJUST 16 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, + RAISE, + ADJUST, +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = KEYMAP( \ + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, \ + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ + KC_LCTL, ADJUST, KC_LALT, KC_LGUI, MO(3), KC_SPC, KC_SPC, MO(4), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[3] = KEYMAP( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, \ + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______, \ + _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ +), +[4] = KEYMAP( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, \ + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, \ + _______, _______, _______, _______, _______, KC_ENT, KC_ENT, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ +), + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = KEYMAP( \ + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ + _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ + _______, RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +) +}; +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + +} \ No newline at end of file diff --git a/keyboards/weebkeeb/keymaps/default/readme.md b/keyboards/weebkeeb/keymaps/default/readme.md new file mode 100644 index 000000000..877132276 --- /dev/null +++ b/keyboards/weebkeeb/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for weebkeeb \ No newline at end of file diff --git a/keyboards/weebkeeb/readme.md b/keyboards/weebkeeb/readme.md new file mode 100644 index 000000000..bf31016c8 --- /dev/null +++ b/keyboards/weebkeeb/readme.md @@ -0,0 +1,28 @@ +weebkeeb keyboard firmware +====================== + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent readme](/). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/weebkeeb folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default + +To build with the default keymap, simply run `make default`. + +### Other Keymaps + +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files. + +To build the firmware binary hex file with a keymap just do `make` with a keymap like this: + +``` +$ make [default|jack|] +``` + +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/weebkeeb/rules.mk b/keyboards/weebkeeb/rules.mk new file mode 100644 index 000000000..55898147d --- /dev/null +++ b/keyboards/weebkeeb/rules.mk @@ -0,0 +1,67 @@ +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=512 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE ?= no # USB Nkey Rollover +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE ?= no # Audio output on port C6 diff --git a/keyboards/weebkeeb/weebkeeb.c b/keyboards/weebkeeb/weebkeeb.c new file mode 100644 index 000000000..483fc9440 --- /dev/null +++ b/keyboards/weebkeeb/weebkeeb.c @@ -0,0 +1,28 @@ +#include "weebkeeb.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_record_user(keycode, record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + led_set_user(usb_led); +} diff --git a/keyboards/weebkeeb/weebkeeb.h b/keyboards/weebkeeb/weebkeeb.h new file mode 100644 index 000000000..7bca2c201 --- /dev/null +++ b/keyboards/weebkeeb/weebkeeb.h @@ -0,0 +1,23 @@ +#ifndef WEEBKEEB_H +#define WEEBKEEB_H + +#include "quantum.h" + +// This a shortcut to help you visually see your layout. +// The following is an example using the Planck MIT layout +// The first section contains all of the arguements +// The second converts the arguments into a two-dimensional array +#define KEYMAP( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \ +} + +#endif -- cgit v1.2.3 From 45b7718fb154c6400b169a9d3005cedebd37ff9a Mon Sep 17 00:00:00 2001 From: climbalima Date: Sat, 3 Dec 2016 17:30:40 -0500 Subject: cleaned up personal projects --- keyboards/pilcrow/Makefile | 3 - keyboards/pilcrow/config.h | 162 - keyboards/pilcrow/keymaps/default/Makefile | 21 - keyboards/pilcrow/keymaps/default/config.h | 8 - keyboards/pilcrow/keymaps/default/keymap.c | 88 - keyboards/pilcrow/keymaps/default/readme.md | 1 - keyboards/pilcrow/pilcrow.c | 28 - keyboards/pilcrow/pilcrow.h | 23 - keyboards/pilcrow/readme.md | 28 - keyboards/pilcrow/rules.mk | 67 - keyboards/weebkeeb/Makefile | 3 - keyboards/weebkeeb/aek.dxf | 6486 -------------------------- keyboards/weebkeeb/config.h | 162 - keyboards/weebkeeb/keymaps/default/Makefile | 21 - keyboards/weebkeeb/keymaps/default/config.h | 8 - keyboards/weebkeeb/keymaps/default/keymap.c | 119 - keyboards/weebkeeb/keymaps/default/readme.md | 1 - keyboards/weebkeeb/readme.md | 28 - keyboards/weebkeeb/rules.mk | 67 - keyboards/weebkeeb/weebkeeb.c | 28 - keyboards/weebkeeb/weebkeeb.h | 23 - 21 files changed, 7375 deletions(-) delete mode 100644 keyboards/pilcrow/Makefile delete mode 100644 keyboards/pilcrow/config.h delete mode 100644 keyboards/pilcrow/keymaps/default/Makefile delete mode 100644 keyboards/pilcrow/keymaps/default/config.h delete mode 100644 keyboards/pilcrow/keymaps/default/keymap.c delete mode 100644 keyboards/pilcrow/keymaps/default/readme.md delete mode 100644 keyboards/pilcrow/pilcrow.c delete mode 100644 keyboards/pilcrow/pilcrow.h delete mode 100644 keyboards/pilcrow/readme.md delete mode 100644 keyboards/pilcrow/rules.mk delete mode 100644 keyboards/weebkeeb/Makefile delete mode 100644 keyboards/weebkeeb/aek.dxf delete mode 100644 keyboards/weebkeeb/config.h delete mode 100644 keyboards/weebkeeb/keymaps/default/Makefile delete mode 100644 keyboards/weebkeeb/keymaps/default/config.h delete mode 100644 keyboards/weebkeeb/keymaps/default/keymap.c delete mode 100644 keyboards/weebkeeb/keymaps/default/readme.md delete mode 100644 keyboards/weebkeeb/readme.md delete mode 100644 keyboards/weebkeeb/rules.mk delete mode 100644 keyboards/weebkeeb/weebkeeb.c delete mode 100644 keyboards/weebkeeb/weebkeeb.h (limited to 'keyboards') diff --git a/keyboards/pilcrow/Makefile b/keyboards/pilcrow/Makefile deleted file mode 100644 index 4e2a6f00f..000000000 --- a/keyboards/pilcrow/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -ifndef MAKEFILE_INCLUDED - include ../../Makefile -endif \ No newline at end of file diff --git a/keyboards/pilcrow/config.h b/keyboards/pilcrow/config.h deleted file mode 100644 index d79c1ba40..000000000 --- a/keyboards/pilcrow/config.h +++ /dev/null @@ -1,162 +0,0 @@ -/* -Copyright 2012 Jun Wako - -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 . -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER You -#define PRODUCT pilcrow -#define DESCRIPTION A custom keyboard - -/* key matrix size */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 10 - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * -*/ -#define MATRIX_ROW_PINS { B2, C6, D7, E6 } -#define MATRIX_COL_PINS { B6, D1, B4, B5, D4, D0, B3, B1, F7, F6 } -#define UNUSED_PINS - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -// #define BACKLIGHT_PIN B7 -// #define BACKLIGHT_BREATHING -// #define BACKLIGHT_LEVELS 3 - - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCING_DELAY 5 - -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - -/* number of backlight levels */ - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -//#define FORCE_NKRO - -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* key combination for magic key command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ -) - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboards/pilcrow/keymaps/default/Makefile b/keyboards/pilcrow/keymaps/default/Makefile deleted file mode 100644 index f4671a9d1..000000000 --- a/keyboards/pilcrow/keymaps/default/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - -ifndef QUANTUM_DIR - include ../../../../Makefile -endif \ No newline at end of file diff --git a/keyboards/pilcrow/keymaps/default/config.h b/keyboards/pilcrow/keymaps/default/config.h deleted file mode 100644 index df06a2620..000000000 --- a/keyboards/pilcrow/keymaps/default/config.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include "../../config.h" - -// place overrides here - -#endif \ No newline at end of file diff --git a/keyboards/pilcrow/keymaps/default/keymap.c b/keyboards/pilcrow/keymaps/default/keymap.c deleted file mode 100644 index e382e4c6a..000000000 --- a/keyboards/pilcrow/keymaps/default/keymap.c +++ /dev/null @@ -1,88 +0,0 @@ -#include "pilcrow.h" -#define _______ KC_TRNS -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( \ - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \ - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, \ - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \ - KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, MT(MOD_LSFT, KC_SPC), MO(2), MO(3), KC_DEL, KC_ESC \ -), - -/* Colemak - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | R | S | T | D | H | N | E | I | O | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[1] = KEYMAP( \ - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, \ - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, \ - KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_PIPE, S(KC_QUOT), \ - _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_GRV \ -), -[2] = KEYMAP( \ - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \ - KC_TAB, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, \ - OSM(MOD_LSFT), KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_BSLS, KC_QUOT, \ - _______, _______, _______, _______, KC_ENT, KC_ENT, _______, KC_MNXT, KC_VOLD, KC_VOLU \ -), - -/* Adjust (Lower + Raise) - * ,-----------------------------------------------------------------------------------. - * | | Reset| | | | | | | | | | Del | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[3] = KEYMAP( \ - RESET, KC_UP, _______, _______, _______, _______, _______, KC_MS_WH_DOWN, KC_MS_U, KC_MS_WH_UP, \ - KC_LEFT, KC_DOWN, KC_RIGHT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, KC_MS_L,KC_MS_D, KC_MS_R, \ - RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, \ - _______, _______, _______, _______, KC_MS_BTN1, KC_MS_BTN2, _______, _______, _______, _______ \ -) -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; - - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - -} \ No newline at end of file diff --git a/keyboards/pilcrow/keymaps/default/readme.md b/keyboards/pilcrow/keymaps/default/readme.md deleted file mode 100644 index 95472dfca..000000000 --- a/keyboards/pilcrow/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for pilcrow \ No newline at end of file diff --git a/keyboards/pilcrow/pilcrow.c b/keyboards/pilcrow/pilcrow.c deleted file mode 100644 index c8243df7b..000000000 --- a/keyboards/pilcrow/pilcrow.c +++ /dev/null @@ -1,28 +0,0 @@ -#include "pilcrow.h" - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - - matrix_init_user(); -} - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - - matrix_scan_user(); -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware - - return process_record_user(keycode, record); -} - -void led_set_kb(uint8_t usb_led) { - // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here - - led_set_user(usb_led); -} diff --git a/keyboards/pilcrow/pilcrow.h b/keyboards/pilcrow/pilcrow.h deleted file mode 100644 index 7138ccb3f..000000000 --- a/keyboards/pilcrow/pilcrow.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef PILCROW_H -#define PILCROW_H - -#include "quantum.h" - -// This a shortcut to help you visually see your layout. -// The following is an example using the Planck MIT layout -// The first section contains all of the arguements -// The second converts the arguments into a two-dimensional array -#define KEYMAP( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39 \ -) \ -{ \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39 } \ -} - -#endif diff --git a/keyboards/pilcrow/readme.md b/keyboards/pilcrow/readme.md deleted file mode 100644 index 7a7f6d2af..000000000 --- a/keyboards/pilcrow/readme.md +++ /dev/null @@ -1,28 +0,0 @@ -pilcrow keyboard firmware -====================== - -## Quantum MK Firmware - -For the full Quantum feature list, see [the parent readme](/). - -## Building - -Download or clone the whole firmware and navigate to the keyboards/pilcrow folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. - -Depending on which keymap you would like to use, you will have to compile slightly differently. - -### Default - -To build with the default keymap, simply run `make default`. - -### Other Keymaps - -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files. - -To build the firmware binary hex file with a keymap just do `make` with a keymap like this: - -``` -$ make [default|jack|] -``` - -Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/pilcrow/rules.mk b/keyboards/pilcrow/rules.mk deleted file mode 100644 index 55898147d..000000000 --- a/keyboards/pilcrow/rules.mk +++ /dev/null @@ -1,67 +0,0 @@ -# MCU name -#MCU = at90usb1287 -MCU = atmega32u4 - -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - - -# -# LUFA specific -# -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - - -# Boot Section Size in *bytes* -# Teensy halfKay 512 -# Teensy++ halfKay 1024 -# Atmel DFU loader 4096 -# LUFA bootloader 4096 -# USBaspLoader 2048 -OPT_DEFS += -DBOOTLOADER_SIZE=512 - - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) -EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) -CONSOLE_ENABLE ?= yes # Console for debug(+400) -COMMAND_ENABLE ?= yes # Commands for debug and configuration -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend -# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE ?= no # USB Nkey Rollover -BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default -MIDI_ENABLE ?= no # MIDI controls -UNICODE_ENABLE ?= no # Unicode -BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID -AUDIO_ENABLE ?= no # Audio output on port C6 diff --git a/keyboards/weebkeeb/Makefile b/keyboards/weebkeeb/Makefile deleted file mode 100644 index 4e2a6f00f..000000000 --- a/keyboards/weebkeeb/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -ifndef MAKEFILE_INCLUDED - include ../../Makefile -endif \ No newline at end of file diff --git a/keyboards/weebkeeb/aek.dxf b/keyboards/weebkeeb/aek.dxf deleted file mode 100644 index cfe80946b..000000000 --- a/keyboards/weebkeeb/aek.dxf +++ /dev/null @@ -1,6486 +0,0 @@ -0 -SECTION -2 -ENTITIES -0 -LINE -8 -0 -10 -104.7875 -20 --89.2875 -11 -104.7875 -21 --91.6875 -0 -LINE -8 -0 -10 -104.7875 -20 --91.6875 -11 -102.3875 -21 --91.6875 -0 -LINE -8 -0 -10 -102.3875 -20 --91.6875 -11 -102.3875 -21 --89.2875 -0 -LINE -8 -0 -10 -102.3875 -20 --89.2875 -11 -104.7875 -21 --89.2875 -0 -LINE -8 -0 -10 -116.8875 -20 --89.2875 -11 -116.8875 -21 --91.6875 -0 -LINE -8 -0 -10 -116.8875 -20 --91.6875 -11 -114.4875 -21 --91.6875 -0 -LINE -8 -0 -10 -114.4875 -20 --91.6875 -11 -114.4875 -21 --89.2875 -0 -LINE -8 -0 -10 -114.4875 -20 --89.2875 -11 -116.8875 -21 --89.2875 -0 -CIRCLE -8 -0 -10 -109.6375 -20 --90.4875 -40 -3.15 -0 -LINE -8 -0 -10 -103.4875 -20 --94.3875 -11 -103.4875 -21 --99.4875 -0 -LINE -8 -0 -10 -103.4875 -20 --99.4875 -11 -100.8875 -21 --99.4875 -0 -LINE -8 -0 -10 -100.8875 -20 --99.4875 -11 -100.8875 -21 --94.3875 -0 -LINE -8 -0 -10 -100.8875 -20 --94.3875 -11 -103.4875 -21 --94.3875 -0 -LINE -8 -0 -10 -191.7875 -20 --94.3875 -11 -191.7875 -21 --99.4875 -0 -LINE -8 -0 -10 -191.7875 -20 --99.4875 -11 -194.3875 -21 --99.4875 -0 -LINE -8 -0 -10 -194.3875 -20 --99.4875 -11 -194.3875 -21 --94.3875 -0 -LINE -8 -0 -10 -194.3875 -20 --94.3875 -11 -191.7875 -21 --94.3875 -0 -LINE -8 -0 -10 -155.3875 -20 --84.0875 -11 -139.8875 -21 --84.0875 -0 -LINE -8 -0 -10 -139.8875 -20 --84.0875 -11 -139.8875 -21 --96.8875 -0 -LINE -8 -0 -10 -139.8875 -20 --96.8875 -11 -155.3875 -21 --96.8875 -0 -LINE -8 -0 -10 -155.3875 -20 --96.8875 -11 -155.3875 -21 --84.0875 -0 -LINE -8 -0 -10 -256.28125 -20 --56.2875 -11 -256.28125 -21 --61.3875 -0 -LINE -8 -0 -10 -256.28125 -20 --61.3875 -11 -253.68125 -21 --61.3875 -0 -LINE -8 -0 -10 -253.68125 -20 --61.3875 -11 -253.68125 -21 --56.2875 -0 -LINE -8 -0 -10 -253.68125 -20 --56.2875 -11 -256.28125 -21 --56.2875 -0 -LINE -8 -0 -10 -281.88125 -20 --56.2875 -11 -281.88125 -21 --61.3875 -0 -LINE -8 -0 -10 -281.88125 -20 --61.3875 -11 -284.48125 -21 --61.3875 -0 -LINE -8 -0 -10 -284.48125 -20 --61.3875 -11 -284.48125 -21 --56.2875 -0 -LINE -8 -0 -10 -284.48125 -20 --56.2875 -11 -281.88125 -21 --56.2875 -0 -LINE -8 -0 -10 -276.83125 -20 --45.9875 -11 -261.33125 -21 --45.9875 -0 -LINE -8 -0 -10 -261.33125 -20 --45.9875 -11 -261.33125 -21 --58.7875 -0 -LINE -8 -0 -10 -261.33125 -20 --58.7875 -11 -276.83125 -21 --58.7875 -0 -LINE -8 -0 -10 -276.83125 -20 --58.7875 -11 -276.83125 -21 --45.9875 -0 -LINE -8 -0 -10 -258.6625 -20 --18.1875 -11 -258.6625 -21 --23.2875 -0 -LINE -8 -0 -10 -258.6625 -20 --23.2875 -11 -256.0625 -21 --23.2875 -0 -LINE -8 -0 -10 -256.0625 -20 --23.2875 -11 -256.0625 -21 --18.1875 -0 -LINE -8 -0 -10 -256.0625 -20 --18.1875 -11 -258.6625 -21 --18.1875 -0 -LINE -8 -0 -10 -284.2625 -20 --18.1875 -11 -284.2625 -21 --23.2875 -0 -LINE -8 -0 -10 -284.2625 -20 --23.2875 -11 -286.8625 -21 --23.2875 -0 -LINE -8 -0 -10 -286.8625 -20 --23.2875 -11 -286.8625 -21 --18.1875 -0 -LINE -8 -0 -10 -286.8625 -20 --18.1875 -11 -284.2625 -21 --18.1875 -0 -LINE -8 -0 -10 -279.2125 -20 --7.8875 -11 -263.7125 -21 --7.8875 -0 -LINE -8 -0 -10 -263.7125 -20 --7.8875 -11 -263.7125 -21 --20.6875 -0 -LINE -8 -0 -10 -263.7125 -20 --20.6875 -11 -279.2125 -21 --20.6875 -0 -LINE -8 -0 -10 -279.2125 -20 --20.6875 -11 -279.2125 -21 --7.8875 -0 -LINE -8 -0 -10 -13.39375 -20 --75.3375 -11 -13.39375 -21 --80.4375 -0 -LINE -8 -0 -10 -13.39375 -20 --80.4375 -11 -10.79375 -21 --80.4375 -0 -LINE -8 -0 -10 -10.79375 -20 --80.4375 -11 -10.79375 -21 --75.3375 -0 -LINE -8 -0 -10 -10.79375 -20 --75.3375 -11 -13.39375 -21 --75.3375 -0 -LINE -8 -0 -10 -38.99375 -20 --75.3375 -11 -38.99375 -21 --80.4375 -0 -LINE -8 -0 -10 -38.99375 -20 --80.4375 -11 -41.59375 -21 --80.4375 -0 -LINE -8 -0 -10 -41.59375 -20 --80.4375 -11 -41.59375 -21 --75.3375 -0 -LINE -8 -0 -10 -41.59375 -20 --75.3375 -11 -38.99375 -21 --75.3375 -0 -LINE -8 -0 -10 -33.94375 -20 --65.0375 -11 -18.44375 -21 --65.0375 -0 -LINE -8 -0 -10 -18.44375 -20 --65.0375 -11 -18.44375 -21 --77.8375 -0 -LINE -8 -0 -10 -18.44375 -20 --77.8375 -11 -33.94375 -21 --77.8375 -0 -LINE -8 -0 -10 -33.94375 -20 --77.8375 -11 -33.94375 -21 --65.0375 -0 -LINE -8 -0 -10 -193.4875 -20 --7.8875 -11 -177.9875 -21 --7.8875 -0 -LINE -8 -0 -10 -177.9875 -20 --7.8875 -11 -177.9875 -21 --20.6875 -0 -LINE -8 -0 -10 -177.9875 -20 --20.6875 -11 -193.4875 -21 --20.6875 -0 -LINE -8 -0 -10 -193.4875 -20 --20.6875 -11 -193.4875 -21 --7.8875 -0 -LINE -8 -0 -10 -174.4375 -20 --7.8875 -11 -158.9375 -21 --7.8875 -0 -LINE -8 -0 -10 -158.9375 -20 --7.8875 -11 -158.9375 -21 --20.6875 -0 -LINE -8 -0 -10 -158.9375 -20 --20.6875 -11 -174.4375 -21 --20.6875 -0 -LINE -8 -0 -10 -174.4375 -20 --20.6875 -11 -174.4375 -21 --7.8875 -0 -LINE -8 -0 -10 -183.9625 -20 --26.9375 -11 -168.4625 -21 --26.9375 -0 -LINE -8 -0 -10 -168.4625 -20 --26.9375 -11 -168.4625 -21 --39.7375 -0 -LINE -8 -0 -10 -168.4625 -20 --39.7375 -11 -183.9625 -21 --39.7375 -0 -LINE -8 -0 -10 -183.9625 -20 --39.7375 -11 -183.9625 -21 --26.9375 -0 -LINE -8 -0 -10 -169.675 -20 --45.9875 -11 -154.175 -21 --45.9875 -0 -LINE -8 -0 -10 -154.175 -20 --45.9875 -11 -154.175 -21 --58.7875 -0 -LINE -8 -0 -10 -154.175 -20 --58.7875 -11 -169.675 -21 --58.7875 -0 -LINE -8 -0 -10 -169.675 -20 --58.7875 -11 -169.675 -21 --45.9875 -0 -LINE -8 -0 -10 -150.625 -20 --45.9875 -11 -135.125 -21 --45.9875 -0 -LINE -8 -0 -10 -135.125 -20 --45.9875 -11 -135.125 -21 --58.7875 -0 -LINE -8 -0 -10 -135.125 -20 --58.7875 -11 -150.625 -21 --58.7875 -0 -LINE -8 -0 -10 -150.625 -20 --58.7875 -11 -150.625 -21 --45.9875 -0 -LINE -8 -0 -10 -160.15 -20 --65.0375 -11 -144.65 -21 --65.0375 -0 -LINE -8 -0 -10 -144.65 -20 --65.0375 -11 -144.65 -21 --77.8375 -0 -LINE -8 -0 -10 -144.65 -20 --77.8375 -11 -160.15 -21 --77.8375 -0 -LINE -8 -0 -10 -160.15 -20 --77.8375 -11 -160.15 -21 --65.0375 -0 -LINE -8 -0 -10 -141.1 -20 --65.0375 -11 -125.6 -21 --65.0375 -0 -LINE -8 -0 -10 -125.6 -20 --65.0375 -11 -125.6 -21 --77.8375 -0 -LINE -8 -0 -10 -125.6 -20 --77.8375 -11 -141.1 -21 --77.8375 -0 -LINE -8 -0 -10 -141.1 -20 --77.8375 -11 -141.1 -21 --65.0375 -0 -LINE -8 -0 -10 -155.3875 -20 --7.8875 -11 -139.8875 -21 --7.8875 -0 -LINE -8 -0 -10 -139.8875 -20 --7.8875 -11 -139.8875 -21 --20.6875 -0 -LINE -8 -0 -10 -139.8875 -20 --20.6875 -11 -155.3875 -21 --20.6875 -0 -LINE -8 -0 -10 -155.3875 -20 --20.6875 -11 -155.3875 -21 --7.8875 -0 -LINE -8 -0 -10 -136.3375 -20 --7.8875 -11 -120.8375 -21 --7.8875 -0 -LINE -8 -0 -10 -120.8375 -20 --7.8875 -11 -120.8375 -21 --20.6875 -0 -LINE -8 -0 -10 -120.8375 -20 --20.6875 -11 -136.3375 -21 --20.6875 -0 -LINE -8 -0 -10 -136.3375 -20 --20.6875 -11 -136.3375 -21 --7.8875 -0 -LINE -8 -0 -10 -164.9125 -20 --26.9375 -11 -149.4125 -21 --26.9375 -0 -LINE -8 -0 -10 -149.4125 -20 --26.9375 -11 -149.4125 -21 --39.7375 -0 -LINE -8 -0 -10 -149.4125 -20 --39.7375 -11 -164.9125 -21 --39.7375 -0 -LINE -8 -0 -10 -164.9125 -20 --39.7375 -11 -164.9125 -21 --26.9375 -0 -LINE -8 -0 -10 -145.8625 -20 --26.9375 -11 -130.3625 -21 --26.9375 -0 -LINE -8 -0 -10 -130.3625 -20 --26.9375 -11 -130.3625 -21 --39.7375 -0 -LINE -8 -0 -10 -130.3625 -20 --39.7375 -11 -145.8625 -21 --39.7375 -0 -LINE -8 -0 -10 -145.8625 -20 --39.7375 -11 -145.8625 -21 --26.9375 -0 -LINE -8 -0 -10 -131.575 -20 --45.9875 -11 -116.075 -21 --45.9875 -0 -LINE -8 -0 -10 -116.075 -20 --45.9875 -11 -116.075 -21 --58.7875 -0 -LINE -8 -0 -10 -116.075 -20 --58.7875 -11 -131.575 -21 --58.7875 -0 -LINE -8 -0 -10 -131.575 -20 --58.7875 -11 -131.575 -21 --45.9875 -0 -LINE -8 -0 -10 -122.05 -20 --65.0375 -11 -106.55 -21 --65.0375 -0 -LINE -8 -0 -10 -106.55 -20 --65.0375 -11 -106.55 -21 --77.8375 -0 -LINE -8 -0 -10 -106.55 -20 --77.8375 -11 -122.05 -21 --77.8375 -0 -LINE -8 -0 -10 -122.05 -20 --77.8375 -11 -122.05 -21 --65.0375 -0 -LINE -8 -0 -10 -103.0 -20 --65.0375 -11 -87.5 -21 --65.0375 -0 -LINE -8 -0 -10 -87.5 -20 --65.0375 -11 -87.5 -21 --77.8375 -0 -LINE -8 -0 -10 -87.5 -20 --77.8375 -11 -103.0 -21 --77.8375 -0 -LINE -8 -0 -10 -103.0 -20 --77.8375 -11 -103.0 -21 --65.0375 -0 -LINE -8 -0 -10 -117.2875 -20 --7.8875 -11 -101.7875 -21 --7.8875 -0 -LINE -8 -0 -10 -101.7875 -20 --7.8875 -11 -101.7875 -21 --20.6875 -0 -LINE -8 -0 -10 -101.7875 -20 --20.6875 -11 -117.2875 -21 --20.6875 -0 -LINE -8 -0 -10 -117.2875 -20 --20.6875 -11 -117.2875 -21 --7.8875 -0 -LINE -8 -0 -10 -98.2375 -20 --7.8875 -11 -82.7375 -21 --7.8875 -0 -LINE -8 -0 -10 -82.7375 -20 --7.8875 -11 -82.7375 -21 --20.6875 -0 -LINE -8 -0 -10 -82.7375 -20 --20.6875 -11 -98.2375 -21 --20.6875 -0 -LINE -8 -0 -10 -98.2375 -20 --20.6875 -11 -98.2375 -21 --7.8875 -0 -LINE -8 -0 -10 -126.8125 -20 --26.9375 -11 -111.3125 -21 --26.9375 -0 -LINE -8 -0 -10 -111.3125 -20 --26.9375 -11 -111.3125 -21 --39.7375 -0 -LINE -8 -0 -10 -111.3125 -20 --39.7375 -11 -126.8125 -21 --39.7375 -0 -LINE -8 -0 -10 -126.8125 -20 --39.7375 -11 -126.8125 -21 --26.9375 -0 -LINE -8 -0 -10 -107.7625 -20 --26.9375 -11 -92.2625 -21 --26.9375 -0 -LINE -8 -0 -10 -92.2625 -20 --26.9375 -11 -92.2625 -21 --39.7375 -0 -LINE -8 -0 -10 -92.2625 -20 --39.7375 -11 -107.7625 -21 --39.7375 -0 -LINE -8 -0 -10 -107.7625 -20 --39.7375 -11 -107.7625 -21 --26.9375 -0 -LINE -8 -0 -10 -112.525 -20 --45.9875 -11 -97.025 -21 --45.9875 -0 -LINE -8 -0 -10 -97.025 -20 --45.9875 -11 -97.025 -21 --58.7875 -0 -LINE -8 -0 -10 -97.025 -20 --58.7875 -11 -112.525 -21 --58.7875 -0 -LINE -8 -0 -10 -112.525 -20 --58.7875 -11 -112.525 -21 --45.9875 -0 -LINE -8 -0 -10 -93.475 -20 --45.9875 -11 -77.975 -21 --45.9875 -0 -LINE -8 -0 -10 -77.975 -20 --45.9875 -11 -77.975 -21 --58.7875 -0 -LINE -8 -0 -10 -77.975 -20 --58.7875 -11 -93.475 -21 --58.7875 -0 -LINE -8 -0 -10 -93.475 -20 --58.7875 -11 -93.475 -21 --45.9875 -0 -LINE -8 -0 -10 -83.95 -20 --65.0375 -11 -68.45 -21 --65.0375 -0 -LINE -8 -0 -10 -68.45 -20 --65.0375 -11 -68.45 -21 --77.8375 -0 -LINE -8 -0 -10 -68.45 -20 --77.8375 -11 -83.95 -21 --77.8375 -0 -LINE -8 -0 -10 -83.95 -20 --77.8375 -11 -83.95 -21 --65.0375 -0 -LINE -8 -0 -10 -79.1875 -20 --84.0875 -11 -63.6875 -21 --84.0875 -0 -LINE -8 -0 -10 -63.6875 -20 --84.0875 -11 -63.6875 -21 --96.8875 -0 -LINE -8 -0 -10 -63.6875 -20 --96.8875 -11 -79.1875 -21 --96.8875 -0 -LINE -8 -0 -10 -79.1875 -20 --96.8875 -11 -79.1875 -21 --84.0875 -0 -LINE -8 -0 -10 -79.1875 -20 --7.8875 -11 -63.6875 -21 --7.8875 -0 -LINE -8 -0 -10 -63.6875 -20 --7.8875 -11 -63.6875 -21 --20.6875 -0 -LINE -8 -0 -10 -63.6875 -20 --20.6875 -11 -79.1875 -21 --20.6875 -0 -LINE -8 -0 -10 -79.1875 -20 --20.6875 -11 -79.1875 -21 --7.8875 -0 -LINE -8 -0 -10 -60.1375 -20 --7.8875 -11 -44.6375 -21 --7.8875 -0 -LINE -8 -0 -10 -44.6375 -20 --7.8875 -11 -44.6375 -21 --20.6875 -0 -LINE -8 -0 -10 -44.6375 -20 --20.6875 -11 -60.1375 -21 --20.6875 -0 -LINE -8 -0 -10 -60.1375 -20 --20.6875 -11 -60.1375 -21 --7.8875 -0 -LINE -8 -0 -10 -88.7125 -20 --26.9375 -11 -73.2125 -21 --26.9375 -0 -LINE -8 -0 -10 -73.2125 -20 --26.9375 -11 -73.2125 -21 --39.7375 -0 -LINE -8 -0 -10 -73.2125 -20 --39.7375 -11 -88.7125 -21 --39.7375 -0 -LINE -8 -0 -10 -88.7125 -20 --39.7375 -11 -88.7125 -21 --26.9375 -0 -LINE -8 -0 -10 -69.6625 -20 --26.9375 -11 -54.1625 -21 --26.9375 -0 -LINE -8 -0 -10 -54.1625 -20 --26.9375 -11 -54.1625 -21 --39.7375 -0 -LINE -8 -0 -10 -54.1625 -20 --39.7375 -11 -69.6625 -21 --39.7375 -0 -LINE -8 -0 -10 -69.6625 -20 --39.7375 -11 -69.6625 -21 --26.9375 -0 -LINE -8 -0 -10 -74.425 -20 --45.9875 -11 -58.925 -21 --45.9875 -0 -LINE -8 -0 -10 -58.925 -20 --45.9875 -11 -58.925 -21 --58.7875 -0 -LINE -8 -0 -10 -58.925 -20 --58.7875 -11 -74.425 -21 --58.7875 -0 -LINE -8 -0 -10 -74.425 -20 --58.7875 -11 -74.425 -21 --45.9875 -0 -LINE -8 -0 -10 -64.9 -20 --65.0375 -11 -49.4 -21 --65.0375 -0 -LINE -8 -0 -10 -49.4 -20 --65.0375 -11 -49.4 -21 --77.8375 -0 -LINE -8 -0 -10 -49.4 -20 --77.8375 -11 -64.9 -21 --77.8375 -0 -LINE -8 -0 -10 -64.9 -20 --77.8375 -11 -64.9 -21 --65.0375 -0 -LINE -8 -0 -10 -52.9937 -20 --84.0875 -11 -37.4937 -21 --84.0875 -0 -LINE -8 -0 -10 -37.4937 -20 --84.0875 -11 -37.4937 -21 --96.8875 -0 -LINE -8 -0 -10 -37.4937 -20 --96.8875 -11 -52.9937 -21 --96.8875 -0 -LINE -8 -0 -10 -52.9937 -20 --96.8875 -11 -52.9937 -21 --84.0875 -0 -LINE -8 -0 -10 -41.0875 -20 --7.8875 -11 -25.5875 -21 --7.8875 -0 -LINE -8 -0 -10 -25.5875 -20 --7.8875 -11 -25.5875 -21 --20.6875 -0 -LINE -8 -0 -10 -25.5875 -20 --20.6875 -11 -41.0875 -21 --20.6875 -0 -LINE -8 -0 -10 -41.0875 -20 --20.6875 -11 -41.0875 -21 --7.8875 -0 -LINE -8 -0 -10 -22.0375 -20 --7.8875 -11 -6.5375 -21 --7.8875 -0 -LINE -8 -0 -10 -6.5375 -20 --7.8875 -11 -6.5375 -21 --20.6875 -0 -LINE -8 -0 -10 -6.5375 -20 --20.6875 -11 -22.0375 -21 --20.6875 -0 -LINE -8 -0 -10 -22.0375 -20 --20.6875 -11 -22.0375 -21 --7.8875 -0 -LINE -8 -0 -10 -50.6125 -20 --26.9375 -11 -35.1125 -21 --26.9375 -0 -LINE -8 -0 -10 -35.1125 -20 --26.9375 -11 -35.1125 -21 --39.7375 -0 -LINE -8 -0 -10 -35.1125 -20 --39.7375 -11 -50.6125 -21 --39.7375 -0 -LINE -8 -0 -10 -50.6125 -20 --39.7375 -11 -50.6125 -21 --26.9375 -0 -LINE -8 -0 -10 -26.8 -20 --26.9375 -11 -11.3 -21 --26.9375 -0 -LINE -8 -0 -10 -11.3 -20 --26.9375 -11 -11.3 -21 --39.7375 -0 -LINE -8 -0 -10 -11.3 -20 --39.7375 -11 -26.8 -21 --39.7375 -0 -LINE -8 -0 -10 -26.8 -20 --39.7375 -11 -26.8 -21 --26.9375 -0 -LINE -8 -0 -10 -55.375 -20 --45.9875 -11 -39.875 -21 --45.9875 -0 -LINE -8 -0 -10 -39.875 -20 --45.9875 -11 -39.875 -21 --58.7875 -0 -LINE -8 -0 -10 -39.875 -20 --58.7875 -11 -55.375 -21 --58.7875 -0 -LINE -8 -0 -10 -55.375 -20 --58.7875 -11 -55.375 -21 --45.9875 -0 -LINE -8 -0 -10 -29.18125 -20 --45.9875 -11 -13.68125 -21 --45.9875 -0 -LINE -8 -0 -10 -13.68125 -20 --45.9875 -11 -13.68125 -21 --58.7875 -0 -LINE -8 -0 -10 -13.68125 -20 --58.7875 -11 -29.18125 -21 --58.7875 -0 -LINE -8 -0 -10 -29.18125 -20 --58.7875 -11 -29.18125 -21 --45.9875 -0 -LINE -8 -0 -10 -26.8 -20 --84.0875 -11 -11.3 -21 --84.0875 -0 -LINE -8 -0 -10 -11.3 -20 --84.0875 -11 -11.3 -21 --96.8875 -0 -LINE -8 -0 -10 -11.3 -20 --96.8875 -11 -26.8 -21 --96.8875 -0 -LINE -8 -0 -10 -26.8 -20 --96.8875 -11 -26.8 -21 --84.0875 -0 -LINE -8 -0 -10 -260.1625 -20 --26.9375 -11 -244.6625 -21 --26.9375 -0 -LINE -8 -0 -10 -244.6625 -20 --26.9375 -11 -244.6625 -21 --39.7375 -0 -LINE -8 -0 -10 -244.6625 -20 --39.7375 -11 -260.1625 -21 --39.7375 -0 -LINE -8 -0 -10 -260.1625 -20 --39.7375 -11 -260.1625 -21 --26.9375 -0 -LINE -8 -0 -10 -283.975 -20 --26.9375 -11 -268.475 -21 --26.9375 -0 -LINE -8 -0 -10 -268.475 -20 --26.9375 -11 -268.475 -21 --39.7375 -0 -LINE -8 -0 -10 -268.475 -20 --39.7375 -11 -283.975 -21 --39.7375 -0 -LINE -8 -0 -10 -283.975 -20 --39.7375 -11 -283.975 -21 --26.9375 -0 -LINE -8 -0 -10 -283.975 -20 --84.0875 -11 -268.475 -21 --84.0875 -0 -LINE -8 -0 -10 -268.475 -20 --84.0875 -11 -268.475 -21 --96.8875 -0 -LINE -8 -0 -10 -268.475 -20 --96.8875 -11 -283.975 -21 --96.8875 -0 -LINE -8 -0 -10 -283.975 -20 --96.8875 -11 -283.975 -21 --84.0875 -0 -LINE -8 -0 -10 -250.6375 -20 --7.8875 -11 -235.1375 -21 --7.8875 -0 -LINE -8 -0 -10 -235.1375 -20 --7.8875 -11 -235.1375 -21 --20.6875 -0 -LINE -8 -0 -10 -235.1375 -20 --20.6875 -11 -250.6375 -21 --20.6875 -0 -LINE -8 -0 -10 -250.6375 -20 --20.6875 -11 -250.6375 -21 --7.8875 -0 -LINE -8 -0 -10 -241.1125 -20 --26.9375 -11 -225.6125 -21 --26.9375 -0 -LINE -8 -0 -10 -225.6125 -20 --26.9375 -11 -225.6125 -21 --39.7375 -0 -LINE -8 -0 -10 -225.6125 -20 --39.7375 -11 -241.1125 -21 --39.7375 -0 -LINE -8 -0 -10 -241.1125 -20 --39.7375 -11 -241.1125 -21 --26.9375 -0 -LINE -8 -0 -10 -222.0625 -20 --26.9375 -11 -206.5625 -21 --26.9375 -0 -LINE -8 -0 -10 -206.5625 -20 --26.9375 -11 -206.5625 -21 --39.7375 -0 -LINE -8 -0 -10 -206.5625 -20 --39.7375 -11 -222.0625 -21 --39.7375 -0 -LINE -8 -0 -10 -222.0625 -20 --39.7375 -11 -222.0625 -21 --26.9375 -0 -LINE -8 -0 -10 -245.875 -20 --45.9875 -11 -230.375 -21 --45.9875 -0 -LINE -8 -0 -10 -230.375 -20 --45.9875 -11 -230.375 -21 --58.7875 -0 -LINE -8 -0 -10 -230.375 -20 --58.7875 -11 -245.875 -21 --58.7875 -0 -LINE -8 -0 -10 -245.875 -20 --58.7875 -11 -245.875 -21 --45.9875 -0 -LINE -8 -0 -10 -226.825 -20 --45.9875 -11 -211.325 -21 --45.9875 -0 -LINE -8 -0 -10 -211.325 -20 --45.9875 -11 -211.325 -21 --58.7875 -0 -LINE -8 -0 -10 -211.325 -20 --58.7875 -11 -226.825 -21 --58.7875 -0 -LINE -8 -0 -10 -226.825 -20 --58.7875 -11 -226.825 -21 --45.9875 -0 -LINE -8 -0 -10 -236.35 -20 --65.0375 -11 -220.85 -21 --65.0375 -0 -LINE -8 -0 -10 -220.85 -20 --65.0375 -11 -220.85 -21 --77.8375 -0 -LINE -8 -0 -10 -220.85 -20 --77.8375 -11 -236.35 -21 --77.8375 -0 -LINE -8 -0 -10 -236.35 -20 --77.8375 -11 -236.35 -21 --65.0375 -0 -LINE -8 -0 -10 -217.3 -20 --65.0375 -11 -201.8 -21 --65.0375 -0 -LINE -8 -0 -10 -201.8 -20 --65.0375 -11 -201.8 -21 --77.8375 -0 -LINE -8 -0 -10 -201.8 -20 --77.8375 -11 -217.3 -21 --77.8375 -0 -LINE -8 -0 -10 -217.3 -20 --77.8375 -11 -217.3 -21 --65.0375 -0 -LINE -8 -0 -10 -257.78125 -20 --84.0875 -11 -242.28125 -21 --84.0875 -0 -LINE -8 -0 -10 -242.28125 -20 --84.0875 -11 -242.28125 -21 --96.8875 -0 -LINE -8 -0 -10 -242.28125 -20 --96.8875 -11 -257.78125 -21 --96.8875 -0 -LINE -8 -0 -10 -257.78125 -20 --96.8875 -11 -257.78125 -21 --84.0875 -0 -LINE -8 -0 -10 -231.5875 -20 --7.8875 -11 -216.0875 -21 --7.8875 -0 -LINE -8 -0 -10 -216.0875 -20 --7.8875 -11 -216.0875 -21 --20.6875 -0 -LINE -8 -0 -10 -216.0875 -20 --20.6875 -11 -231.5875 -21 --20.6875 -0 -LINE -8 -0 -10 -231.5875 -20 --20.6875 -11 -231.5875 -21 --7.8875 -0 -LINE -8 -0 -10 -212.5375 -20 --7.8875 -11 -197.0375 -21 --7.8875 -0 -LINE -8 -0 -10 -197.0375 -20 --7.8875 -11 -197.0375 -21 --20.6875 -0 -LINE -8 -0 -10 -197.0375 -20 --20.6875 -11 -212.5375 -21 --20.6875 -0 -LINE -8 -0 -10 -212.5375 -20 --20.6875 -11 -212.5375 -21 --7.8875 -0 -LINE -8 -0 -10 -203.0125 -20 --26.9375 -11 -187.5125 -21 --26.9375 -0 -LINE -8 -0 -10 -187.5125 -20 --26.9375 -11 -187.5125 -21 --39.7375 -0 -LINE -8 -0 -10 -187.5125 -20 --39.7375 -11 -203.0125 -21 --39.7375 -0 -LINE -8 -0 -10 -203.0125 -20 --39.7375 -11 -203.0125 -21 --26.9375 -0 -LINE -8 -0 -10 -207.775 -20 --45.9875 -11 -192.275 -21 --45.9875 -0 -LINE -8 -0 -10 -192.275 -20 --45.9875 -11 -192.275 -21 --58.7875 -0 -LINE -8 -0 -10 -192.275 -20 --58.7875 -11 -207.775 -21 --58.7875 -0 -LINE -8 -0 -10 -207.775 -20 --58.7875 -11 -207.775 -21 --45.9875 -0 -LINE -8 -0 -10 -188.725 -20 --45.9875 -11 -173.225 -21 --45.9875 -0 -LINE -8 -0 -10 -173.225 -20 --45.9875 -11 -173.225 -21 --58.7875 -0 -LINE -8 -0 -10 -173.225 -20 --58.7875 -11 -188.725 -21 --58.7875 -0 -LINE -8 -0 -10 -188.725 -20 --58.7875 -11 -188.725 -21 --45.9875 -0 -LINE -8 -0 -10 -198.25 -20 --65.0375 -11 -182.75 -21 --65.0375 -0 -LINE -8 -0 -10 -182.75 -20 --65.0375 -11 -182.75 -21 --77.8375 -0 -LINE -8 -0 -10 -182.75 -20 --77.8375 -11 -198.25 -21 --77.8375 -0 -LINE -8 -0 -10 -198.25 -20 --77.8375 -11 -198.25 -21 --65.0375 -0 -LINE -8 -0 -10 -179.2 -20 --65.0375 -11 -163.7 -21 --65.0375 -0 -LINE -8 -0 -10 -163.7 -20 --65.0375 -11 -163.7 -21 --77.8375 -0 -LINE -8 -0 -10 -163.7 -20 --77.8375 -11 -179.2 -21 --77.8375 -0 -LINE -8 -0 -10 -179.2 -20 --77.8375 -11 -179.2 -21 --65.0375 -0 -LINE -8 -0 -10 -231.5875 -20 --84.0875 -11 -216.0875 -21 --84.0875 -0 -LINE -8 -0 -10 -216.0875 -20 --84.0875 -11 -216.0875 -21 --96.8875 -0 -LINE -8 -0 -10 -216.0875 -20 --96.8875 -11 -231.5875 -21 --96.8875 -0 -LINE -8 -0 -10 -231.5875 -20 --96.8875 -11 -231.5875 -21 --84.0875 -0 -LINE -8 -0 -10 -244.01875 -20 --75.3375 -11 -244.01875 -21 --80.4375 -0 -LINE -8 -0 -10 -244.01875 -20 --80.4375 -11 -241.41875 -21 --80.4375 -0 -LINE -8 -0 -10 -241.41875 -20 --80.4375 -11 -241.41875 -21 --75.3375 -0 -LINE -8 -0 -10 -241.41875 -20 --75.3375 -11 -244.01875 -21 --75.3375 -0 -LINE -8 -0 -10 -284.61875 -20 --75.3375 -11 -284.61875 -21 --80.4375 -0 -LINE -8 -0 -10 -284.61875 -20 --80.4375 -11 -287.21875 -21 --80.4375 -0 -LINE -8 -0 -10 -287.21875 -20 --80.4375 -11 -287.21875 -21 --75.3375 -0 -LINE -8 -0 -10 -287.21875 -20 --75.3375 -11 -284.61875 -21 --75.3375 -0 -LINE -8 -0 -10 -272.06875 -20 --65.0375 -11 -256.56875 -21 --65.0375 -0 -LINE -8 -0 -10 -256.56875 -20 --65.0375 -11 -256.56875 -21 --77.8375 -0 -LINE -8 -0 -10 -256.56875 -20 --77.8375 -11 -272.06875 -21 --77.8375 -0 -LINE -8 -0 -10 -272.06875 -20 --77.8375 -11 -272.06875 -21 --65.0375 -0 -TEXT -8 -Cmts -62 -1 -10 -303.847897 -20 --52.73062 -1 -95.000 mm -40 -1.5 -41 -1.5 -50 -270.186984 -7 -SIMPLEX -72 -1 -73 -2 -11 -303.847897 -21 --52.73062 -0 -LINE -8 -Cmts -62 -1 -10 -287.34 -20 --100.28 -11 -305.35289 -21 --100.221215 -0 -LINE -8 -Cmts -62 -1 -10 -287.03 -20 --5.29 -11 -305.04289 -21 --5.231215 -0 -LINE -8 -Cmts -62 -1 -10 -302.342904 -20 --5.240026 -11 -302.652904 -21 --100.230026 -0 -LINE -8 -Cmts -62 -1 -10 -302.652904 -20 --100.230026 -11 -302.06281 -21 --99.105442 -0 -LINE -8 -Cmts -62 -1 -10 -302.652904 -20 --100.230026 -11 -303.235645 -21 --99.101614 -0 -LINE -8 -Cmts -62 -1 -10 -302.342904 -20 --5.240026 -11 -301.760163 -21 --6.368438 -0 -LINE -8 -Cmts -62 -1 -10 -302.342904 -20 --5.240026 -11 -302.932998 -21 --6.36461 -0 -TEXT -8 -Cmts -62 -1 -10 -17.92 -20 --43.7 -1 -25.6125 mm -40 -1.5 -41 -1.5 -7 -SIMPLEX -72 -1 -73 -2 -11 -17.92 -21 --43.7 -0 -LINE -8 -Cmts -62 -1 -10 -30.71 -20 --33.34 -11 -30.71 -21 --45.05 -0 -LINE -8 -Cmts -62 -1 -10 -5.13 -20 --33.34 -11 -5.13 -21 --45.05 -0 -LINE -8 -Cmts -62 -1 -10 -5.13 -20 --42.35 -11 -30.71 -21 --42.35 -0 -LINE -8 -Cmts -62 -1 -10 -30.71 -20 --42.35 -11 -29.583496 -21 --42.936421 -0 -LINE -8 -Cmts -62 -1 -10 -30.71 -20 --42.35 -11 -29.583496 -21 --41.763579 -0 -LINE -8 -Cmts -62 -1 -10 -5.13 -20 --42.35 -11 -6.256504 -21 --42.936421 -0 -LINE -8 -Cmts -62 -1 -10 -5.13 -20 --42.35 -11 -6.256504 -21 --41.763579 -0 -TEXT -8 -Cmts -62 -1 -10 -277.347461 -20 --39.634741 -1 -25.6125 mm -40 -1.5 -41 -1.5 -50 -0.022425 -7 -SIMPLEX -72 -1 -73 -2 -11 -277.347461 -21 --39.634741 -0 -LINE -8 -Cmts -62 -1 -10 -290.12 -20 --33.34 -11 -290.12299 -21 --40.979741 -0 -LINE -8 -Cmts -62 -1 -10 -264.57 -20 --33.35 -11 -264.57299 -21 --40.989741 -0 -LINE -8 -Cmts -62 -1 -10 -264.571933 -20 --38.289741 -11 -290.121933 -21 --38.279741 -0 -LINE -8 -Cmts -62 -1 -10 -290.121933 -20 --38.279741 -11 -288.995659 -21 --38.866603 -0 -LINE -8 -Cmts -62 -1 -10 -290.121933 -20 --38.279741 -11 -288.9952 -21 --37.693761 -0 -LINE -8 -Cmts -62 -1 -10 -264.571933 -20 --38.289741 -11 -265.698666 -21 --38.875721 -0 -LINE -8 -Cmts -62 -1 -10 -264.571933 -20 --38.289741 -11 -265.698207 -21 --37.702879 -0 -TEXT -8 -Cmts -62 -1 -10 -202.7 -20 --90.49 -1 -6.300 mm -40 -1.5 -41 -1.5 -50 -270.0 -7 -SIMPLEX -72 -1 -73 -2 -11 -202.7 -21 --90.49 -0 -LINE -8 -Cmts -62 -1 -10 -195.44 -20 --93.64 -11 -204.05 -21 --93.64 -0 -LINE -8 -Cmts -62 -1 -10 -195.44 -20 --87.34 -11 -204.05 -21 --87.34 -0 -LINE -8 -Cmts -62 -1 -10 -201.35 -20 --87.34 -11 -201.35 -21 --93.64 -0 -LINE -8 -Cmts -62 -1 -10 -201.35 -20 --93.64 -11 -200.763579 -21 --92.513496 -0 -LINE -8 -Cmts -62 -1 -10 -201.35 -20 --93.64 -11 -201.936421 -21 --92.513496 -0 -LINE -8 -Cmts -62 -1 -10 -201.35 -20 --87.34 -11 -200.763579 -21 --88.466504 -0 -LINE -8 -Cmts -62 -1 -10 -201.35 -20 --87.34 -11 -201.936421 -21 --88.466504 -0 -TEXT -8 -Cmts -62 -1 -10 -258.43468 -20 --33.349763 -1 -6.300 mm -40 -1.5 -41 -1.5 -50 -270.090946 -7 -SIMPLEX -72 -1 -73 -2 -11 -258.43468 -21 --33.349763 -0 -LINE -8 -Cmts -62 -1 -10 -264.59 -20 --36.49 -11 -257.089682 -21 --36.501906 -0 -LINE -8 -Cmts -62 -1 -10 -264.58 -20 --30.19 -11 -257.079682 -21 --30.201906 -0 -LINE -8 -Cmts -62 -1 -10 -259.779679 -20 --30.19762 -11 -259.789679 -21 --36.49762 -0 -LINE -8 -Cmts -62 -1 -10 -259.789679 -20 --36.49762 -11 -259.201471 -21 --35.372048 -0 -LINE -8 -Cmts -62 -1 -10 -259.789679 -20 --36.49762 -11 -260.374311 -21 --35.370187 -0 -LINE -8 -Cmts -62 -1 -10 -259.779679 -20 --30.19762 -11 -259.195047 -21 --31.325053 -0 -LINE -8 -Cmts -62 -1 -10 -259.779679 -20 --30.19762 -11 -260.367887 -21 --31.323192 -0 -TEXT -8 -Cmts -62 -1 -10 -24.47 -20 --33.33 -1 -6.300 mm -40 -1.5 -41 -1.5 -50 -270.0 -7 -SIMPLEX -72 -1 -73 -2 -11 -24.47 -21 --33.33 -0 -LINE -8 -Cmts -62 -1 -10 -30.72 -20 --36.48 -11 -23.12 -21 --36.48 -0 -LINE -8 -Cmts -62 -1 -10 -30.72 -20 --30.18 -11 -23.12 -21 --30.18 -0 -LINE -8 -Cmts -62 -1 -10 -25.82 -20 --30.18 -11 -25.82 -21 --36.48 -0 -LINE -8 -Cmts -62 -1 -10 -25.82 -20 --36.48 -11 -25.233579 -21 --35.353496 -0 -LINE -8 -Cmts -62 -1 -10 -25.82 -20 --36.48 -11 -26.406421 -21 --35.353496 -0 -LINE -8 -Cmts -62 -1 -10 -25.82 -20 --30.18 -11 -25.233579 -21 --31.306504 -0 -LINE -8 -Cmts -62 -1 -10 -25.82 -20 --30.18 -11 -26.406421 -21 --31.306504 -0 -TEXT -8 -Cmts -62 -1 -10 -103.46 -20 --90.49 -1 -6.300 mm -40 -1.5 -41 -1.5 -50 -270.0 -7 -SIMPLEX -72 -1 -73 -2 -11 -103.46 -21 --90.49 -0 -LINE -8 -Cmts -62 -1 -10 -109.64 -20 --93.64 -11 -102.11 -21 --93.64 -0 -LINE -8 -Cmts -62 -1 -10 -109.64 -20 --87.34 -11 -102.11 -21 --87.34 -0 -LINE -8 -Cmts -62 -1 -10 -104.81 -20 --87.34 -11 -104.81 -21 --93.64 -0 -LINE -8 -Cmts -62 -1 -10 -104.81 -20 --93.64 -11 -104.223579 -21 --92.513496 -0 -LINE -8 -Cmts -62 -1 -10 -104.81 -20 --93.64 -11 -105.396421 -21 --92.513496 -0 -LINE -8 -Cmts -62 -1 -10 -104.81 -20 --87.34 -11 -104.223579 -21 --88.466504 -0 -LINE -8 -Cmts -62 -1 -10 -104.81 -20 --87.34 -11 -105.396421 -21 --88.466504 -0 -TEXT -8 -Cmts -62 -1 -10 -171.54 -20 --78.67 -1 -47.800 mm -40 -1.5 -41 -1.5 -7 -SIMPLEX -72 -1 -73 -2 -11 -171.54 -21 --78.67 -0 -LINE -8 -Cmts -62 -1 -10 -147.64 -20 --90.49 -11 -147.64 -21 --77.32 -0 -LINE -8 -Cmts -62 -1 -10 -195.44 -20 --90.49 -11 -195.44 -21 --77.32 -0 -LINE -8 -Cmts -62 -1 -10 -195.44 -20 --80.02 -11 -147.64 -21 --80.02 -0 -LINE -8 -Cmts -62 -1 -10 -147.64 -20 --80.02 -11 -148.766504 -21 --79.433579 -0 -LINE -8 -Cmts -62 -1 -10 -147.64 -20 --80.02 -11 -148.766504 -21 --80.606421 -0 -LINE -8 -Cmts -62 -1 -10 -195.44 -20 --80.02 -11 -194.313496 -21 --79.433579 -0 -LINE -8 -Cmts -62 -1 -10 -195.44 -20 --80.02 -11 -194.313496 -21 --80.606421 -0 -TEXT -8 -Cmts -62 -1 -10 -128.64 -20 --109.43 -1 -38.000 mm -40 -1.5 -41 -1.5 -7 -SIMPLEX -72 -1 -73 -2 -11 -128.64 -21 --109.43 -0 -LINE -8 -Cmts -62 -1 -10 -109.64 -20 --90.48 -11 -109.64 -21 --110.78 -0 -LINE -8 -Cmts -62 -1 -10 -147.64 -20 --90.48 -11 -147.64 -21 --110.78 -0 -LINE -8 -Cmts -62 -1 -10 -147.64 -20 --108.08 -11 -109.64 -21 --108.08 -0 -LINE -8 -Cmts -62 -1 -10 -109.64 -20 --108.08 -11 -110.766504 -21 --107.493579 -0 -LINE -8 -Cmts -62 -1 -10 -109.64 -20 --108.08 -11 -110.766504 -21 --108.666421 -0 -LINE -8 -Cmts -62 -1 -10 -147.64 -20 --108.08 -11 -146.513496 -21 --107.493579 -0 -LINE -8 -Cmts -62 -1 -10 -147.64 -20 --108.08 -11 -146.513496 -21 --108.666421 -0 -TEXT -8 -Cmts -62 -1 -10 -197.96 -20 --99.88 -1 -0.800 mm -40 -1.5 -41 -1.5 -50 -270.0 -7 -SIMPLEX -72 -1 -73 -2 -11 -197.96 -21 --99.88 -0 -LINE -8 -Cmts -62 -1 -10 -194.38 -20 --100.28 -11 -199.31 -21 --100.28 -0 -LINE -8 -Cmts -62 -1 -10 -194.38 -20 --99.48 -11 -199.31 -21 --99.48 -0 -LINE -8 -Cmts -62 -1 -10 -196.61 -20 --99.48 -11 -196.61 -21 --100.28 -0 -LINE -8 -Cmts -62 -1 -10 -196.61 -20 --100.28 -11 -196.023579 -21 --99.153496 -0 -LINE -8 -Cmts -62 -1 -10 -196.61 -20 --100.28 -11 -197.196421 -21 --99.153496 -0 -LINE -8 -Cmts -62 -1 -10 -196.61 -20 --99.48 -11 -196.023579 -21 --100.606504 -0 -LINE -8 -Cmts -62 -1 -10 -196.61 -20 --99.48 -11 -197.196421 -21 --100.606504 -0 -TEXT -8 -Cmts -62 -1 -10 -188.875133 -20 --92.417616 -1 -3.900 mm -40 -1.5 -41 -1.5 -50 -89.559272 -7 -SIMPLEX -72 -1 -73 -2 -11 -188.875133 -21 --92.417616 -0 -LINE -8 -Cmts -62 -1 -10 -191.77 -20 --94.39 -11 -187.510173 -21 --94.357232 -0 -LINE -8 -Cmts -62 -1 -10 -191.8 -20 --90.49 -11 -187.540173 -21 --90.457232 -0 -LINE -8 -Cmts -62 -1 -10 -190.240093 -20 --90.478001 -11 -190.210093 -21 --94.378001 -0 -LINE -8 -Cmts -62 -1 -10 -190.210093 -20 --94.378001 -11 -189.632355 -21 --93.24702 -0 -LINE -8 -Cmts -62 -1 -10 -190.210093 -20 --94.378001 -11 -190.805162 -21 --93.256041 -0 -LINE -8 -Cmts -62 -1 -10 -190.240093 -20 --90.478001 -11 -189.645024 -21 --91.599961 -0 -LINE -8 -Cmts -62 -1 -10 -190.240093 -20 --90.478001 -11 -190.817831 -21 --91.608982 -0 -TEXT -8 -Cmts -62 -1 -10 -159.664849 -20 --87.283312 -1 -6.400 mm -40 -1.5 -41 -1.5 -50 -270.089525 -7 -SIMPLEX -72 -1 -73 -2 -11 -159.664849 -21 --87.283312 -0 -LINE -8 -Cmts -62 -1 -10 -155.38 -20 --84.09 -11 -161.009848 -21 --84.081203 -0 -LINE -8 -Cmts -62 -1 -10 -155.39 -20 --90.49 -11 -161.019848 -21 --90.481203 -0 -LINE -8 -Cmts -62 -1 -10 -158.319851 -20 --90.485422 -11 -158.309851 -21 --84.085422 -0 -LINE -8 -Cmts -62 -1 -10 -158.309851 -20 --84.085422 -11 -158.898031 -21 --85.211008 -0 -LINE -8 -Cmts -62 -1 -10 -158.309851 -20 --84.085422 -11 -157.725191 -21 --85.212841 -0 -LINE -8 -Cmts -62 -1 -10 -158.319851 -20 --90.485422 -11 -158.904511 -21 --89.358003 -0 -LINE -8 -Cmts -62 -1 -10 -158.319851 -20 --90.485422 -11 -157.731671 -21 --89.359836 -0 -LINE -8 -Cmts -62 -1 -10 -109.67 -20 --90.4875 -11 -195.48 -21 --90.4875 -0 -TEXT -8 -Cmts -62 -1 -10 -147.64 -20 --117.98 -1 -88.300 mm -40 -1.5 -41 -1.5 -7 -SIMPLEX -72 -1 -73 -2 -11 -147.64 -21 --117.98 -0 -LINE -8 -Cmts -62 -1 -10 -191.79 -20 --99.49 -11 -191.79 -21 --119.33 -0 -LINE -8 -Cmts -62 -1 -10 -103.49 -20 --99.49 -11 -103.49 -21 --119.33 -0 -LINE -8 -Cmts -62 -1 -10 -103.49 -20 --116.63 -11 -191.79 -21 --116.63 -0 -LINE -8 -Cmts -62 -1 -10 -191.79 -20 --116.63 -11 -190.663496 -21 --117.216421 -0 -LINE -8 -Cmts -62 -1 -10 -191.79 -20 --116.63 -11 -190.663496 -21 --116.043579 -0 -LINE -8 -Cmts -62 -1 -10 -103.49 -20 --116.63 -11 -104.616504 -21 --117.216421 -0 -LINE -8 -Cmts -62 -1 -10 -103.49 -20 --116.63 -11 -104.616504 -21 --116.043579 -0 -TEXT -8 -Cmts -62 -1 -10 -102.19 -20 --104.41 -1 -2.600 mm -40 -1.5 -41 -1.5 -7 -SIMPLEX -72 -1 -73 -2 -11 -102.19 -21 --104.41 -0 -LINE -8 -Cmts -62 -1 -10 -103.49 -20 --99.49 -11 -103.49 -21 --105.76 -0 -LINE -8 -Cmts -62 -1 -10 -100.89 -20 --99.49 -11 -100.89 -21 --105.76 -0 -LINE -8 -Cmts -62 -1 -10 -100.89 -20 --103.06 -11 -103.49 -21 --103.06 -0 -LINE -8 -Cmts -62 -1 -10 -103.49 -20 --103.06 -11 -102.363496 -21 --103.646421 -0 -LINE -8 -Cmts -62 -1 -10 -103.49 -20 --103.06 -11 -102.363496 -21 --102.473579 -0 -LINE -8 -Cmts -62 -1 -10 -100.89 -20 --103.06 -11 -102.016504 -21 --103.646421 -0 -LINE -8 -Cmts -62 -1 -10 -100.89 -20 --103.06 -11 -102.016504 -21 --102.473579 -0 -TEXT -8 -Cmts -62 -1 -10 -97.67 -20 --96.94 -1 -5.100 mm -40 -1.5 -41 -1.5 -50 -270.0 -7 -SIMPLEX -72 -1 -73 -2 -11 -97.67 -21 --96.94 -0 -LINE -8 -Cmts -62 -1 -10 -100.89 -20 --99.49 -11 -96.32 -21 --99.49 -0 -LINE -8 -Cmts -62 -1 -10 -100.89 -20 --94.39 -11 -96.32 -21 --94.39 -0 -LINE -8 -Cmts -62 -1 -10 -99.02 -20 --94.39 -11 -99.02 -21 --99.49 -0 -LINE -8 -Cmts -62 -1 -10 -99.02 -20 --99.49 -11 -98.433579 -21 --98.363496 -0 -LINE -8 -Cmts -62 -1 -10 -99.02 -20 --99.49 -11 -99.606421 -21 --98.363496 -0 -LINE -8 -Cmts -62 -1 -10 -99.02 -20 --94.39 -11 -98.433579 -21 --95.516504 -0 -LINE -8 -Cmts -62 -1 -10 -99.02 -20 --94.39 -11 -99.606421 -21 --95.516504 -0 -TEXT -8 -Cmts -62 -1 -10 -109.63 -20 --81.13 -1 -14.500 mm -40 -1.5 -41 -1.5 -7 -SIMPLEX -72 -1 -73 -2 -11 -109.63 -21 --81.13 -0 -LINE -8 -Cmts -62 -1 -10 -102.38 -20 --89.28 -11 -102.38 -21 --79.78 -0 -LINE -8 -Cmts -62 -1 -10 -116.88 -20 --89.28 -11 -116.88 -21 --79.78 -0 -LINE -8 -Cmts -62 -1 -10 -116.88 -20 --82.48 -11 -102.38 -21 --82.48 -0 -LINE -8 -Cmts -62 -1 -10 -102.38 -20 --82.48 -11 -103.506504 -21 --81.893579 -0 -LINE -8 -Cmts -62 -1 -10 -102.38 -20 --82.48 -11 -103.506504 -21 --83.066421 -0 -LINE -8 -Cmts -62 -1 -10 -116.88 -20 --82.48 -11 -115.753496 -21 --81.893579 -0 -LINE -8 -Cmts -62 -1 -10 -116.88 -20 --82.48 -11 -115.753496 -21 --83.066421 -0 -TEXT -8 -Cmts -62 -1 -10 -121.803009 -20 --90.50045 -1 -2.400 mm -40 -1.5 -41 -1.5 -50 -89.761269 -7 -SIMPLEX -72 -1 -73 -2 -11 -121.803009 -21 --90.50045 -0 -LINE -8 -Cmts -62 -1 -10 -116.89 -20 --91.68 -11 -123.147997 -21 --91.706075 -0 -LINE -8 -Cmts -62 -1 -10 -116.9 -20 --89.28 -11 -123.157997 -21 --89.306075 -0 -LINE -8 -Cmts -62 -1 -10 -120.458021 -20 --89.294825 -11 -120.448021 -21 --91.694825 -0 -LINE -8 -Cmts -62 -1 -10 -120.448021 -20 --91.694825 -11 -119.866299 -21 --90.565888 -0 -LINE -8 -Cmts -62 -1 -10 -120.448021 -20 --91.694825 -11 -121.03913 -21 --90.570774 -0 -LINE -8 -Cmts -62 -1 -10 -120.458021 -20 --89.294825 -11 -119.866912 -21 --90.418876 -0 -LINE -8 -Cmts -62 -1 -10 -120.458021 -20 --89.294825 -11 -121.039743 -21 --90.423762 -0 -TEXT -8 -Cmts -62 -1 -10 -115.69 -20 --85.3 -1 -2.400 mm -40 -1.5 -41 -1.5 -7 -SIMPLEX -72 -1 -73 -2 -11 -115.69 -21 --85.3 -0 -LINE -8 -Cmts -62 -1 -10 -116.89 -20 --89.28 -11 -116.89 -21 --83.95 -0 -LINE -8 -Cmts -62 -1 -10 -114.49 -20 --89.28 -11 -114.49 -21 --83.95 -0 -LINE -8 -Cmts -62 -1 -10 -114.49 -20 --86.65 -11 -116.89 -21 --86.65 -0 -LINE -8 -Cmts -62 -1 -10 -116.89 -20 --86.65 -11 -115.763496 -21 --87.236421 -0 -LINE -8 -Cmts -62 -1 -10 -116.89 -20 --86.65 -11 -115.763496 -21 --86.063579 -0 -LINE -8 -Cmts -62 -1 -10 -114.49 -20 --86.65 -11 -115.616504 -21 --87.236421 -0 -LINE -8 -Cmts -62 -1 -10 -114.49 -20 --86.65 -11 -115.616504 -21 --86.063579 -0 -TEXT -8 -Cmts -62 -1 -10 -135.19 -20 --90.49 -1 -12.800 mm -40 -1.5 -41 -1.5 -50 -270.0 -7 -SIMPLEX -72 -1 -73 -2 -11 -135.19 -21 --90.49 -0 -LINE -8 -Cmts -62 -1 -10 -139.89 -20 --96.89 -11 -133.84 -21 --96.89 -0 -LINE -8 -Cmts -62 -1 -10 -139.89 -20 --84.09 -11 -133.84 -21 --84.09 -0 -LINE -8 -Cmts -62 -1 -10 -136.54 -20 --84.09 -11 -136.54 -21 --96.89 -0 -LINE -8 -Cmts -62 -1 -10 -136.54 -20 --96.89 -11 -135.953579 -21 --95.763496 -0 -LINE -8 -Cmts -62 -1 -10 -136.54 -20 --96.89 -11 -137.126421 -21 --95.763496 -0 -LINE -8 -Cmts -62 -1 -10 -136.54 -20 --84.09 -11 -135.953579 -21 --85.216504 -0 -LINE -8 -Cmts -62 -1 -10 -136.54 -20 --84.09 -11 -137.126421 -21 --85.216504 -0 -TEXT -8 -Cmts -62 -1 -10 -147.63 -20 --105.02 -1 -15.500 mm -40 -1.5 -41 -1.5 -7 -SIMPLEX -72 -1 -73 -2 -11 -147.63 -21 --105.02 -0 -LINE -8 -Cmts -62 -1 -10 -139.88 -20 --96.87 -11 -139.88 -21 --106.37 -0 -LINE -8 -Cmts -62 -1 -10 -155.38 -20 --96.87 -11 -155.38 -21 --106.37 -0 -LINE -8 -Cmts -62 -1 -10 -155.38 -20 --103.67 -11 -139.88 -21 --103.67 -0 -LINE -8 -Cmts -62 -1 -10 -139.88 -20 --103.67 -11 -141.006504 -21 --103.083579 -0 -LINE -8 -Cmts -62 -1 -10 -139.88 -20 --103.67 -11 -141.006504 -21 --104.256421 -0 -LINE -8 -Cmts -62 -1 -10 -155.38 -20 --103.67 -11 -154.253496 -21 --103.083579 -0 -LINE -8 -Cmts -62 -1 -10 -155.38 -20 --103.67 -11 -154.253496 -21 --104.256421 -0 -CIRCLE -8 -0 -10 -30.75 -20 --33.3375 -40 -3.15 -0 -CIRCLE -8 -0 -10 -195.4375 -20 --90.4875 -40 -3.15 -0 -CIRCLE -8 -0 -10 -264.525 -20 --33.3375 -40 -3.15 -0 -LINE -8 -0 -10 -290.1375 -20 --7.7875 -11 -290.1375 -21 --58.7125 -0 -LINE -8 -0 -10 -288.3375 -20 --58.7125 -11 -290.1375 -21 --58.7125 -0 -LINE -8 -0 -10 -5.1375 -20 --65.0125 -11 -5.1375 -21 --97.7875 -0 -LINE -8 -0 -10 -288.3375 -20 --65.1125 -11 -290.1375 -21 --65.1125 -0 -LINE -8 -0 -10 -8.7375 -20 --65.0125 -11 -5.1375 -21 --65.0125 -0 -LINE -8 -0 -10 -8.7375 -20 --58.8125 -11 -5.1375 -21 --58.8125 -0 -ARC -8 -0 -10 -8.7375 -20 --61.9125 -30 -0.0 -40 -3.1 -50 --90.0 -51 -90.0 -0 -ARC -8 -0 -10 -288.3375 -20 --61.9125 -30 -0.0 -40 -3.2 -50 -90.0 -51 -270.0 -0 -TEXT -8 -Cmts -62 -1 -10 -277.6375 -20 -6.3625 -1 -25.000 mm -40 -1.5 -41 -1.5 -7 -SIMPLEX -72 -1 -73 -2 -11 -277.6375 -21 -6.3625 -0 -LINE -8 -Cmts -62 -1 -10 -265.1375 -20 --33.3375 -11 -265.1375 -21 -7.7125 -0 -LINE -8 -Cmts -62 -1 -10 -290.1375 -20 --33.3375 -11 -290.1375 -21 -7.7125 -0 -LINE -8 -Cmts -62 -1 -10 -290.1375 -20 -5.0125 -11 -265.1375 -21 -5.0125 -0 -LINE -8 -Cmts -62 -1 -10 -265.1375 -20 -5.0125 -11 -266.264004 -21 -5.598921 -0 -LINE -8 -Cmts -62 -1 -10 -265.1375 -20 -5.0125 -11 -266.264004 -21 -4.426079 -0 -LINE -8 -Cmts -62 -1 -10 -290.1375 -20 -5.0125 -11 -289.010996 -21 -5.598921 -0 -LINE -8 -Cmts -62 -1 -10 -290.1375 -20 -5.0125 -11 -289.010996 -21 -4.426079 -0 -TEXT -8 -Cmts -62 -1 -10 -147.6375 -20 -10.875 -1 -285.000 mm -40 -1.5 -41 -1.5 -7 -SIMPLEX -72 -1 -73 -2 -11 -147.6375 -21 -10.875 -0 -LINE -8 -Cmts -62 -1 -10 -290.1375 -20 --7.14375 -11 -290.1375 -21 -12.225 -0 -LINE -8 -Cmts -62 -1 -10 -5.1375 -20 --7.14375 -11 -5.1375 -21 -12.225 -0 -LINE -8 -Cmts -62 -1 -10 -5.1375 -20 -9.525 -11 -290.1375 -21 -9.525 -0 -LINE -8 -Cmts -62 -1 -10 -290.1375 -20 -9.525 -11 -289.010996 -21 -8.938579 -0 -LINE -8 -Cmts -62 -1 -10 -290.1375 -20 -9.525 -11 -289.010996 -21 -10.111421 -0 -LINE -8 -Cmts -62 -1 -10 -5.1375 -20 -9.525 -11 -6.264004 -21 -8.938579 -0 -LINE -8 -Cmts -62 -1 -10 -5.1375 -20 -9.525 -11 -6.264004 -21 -10.111421 -0 -ARC -8 -0 -10 -7.6375 -20 --97.7875 -30 -0.0 -40 -2.5 -50 --180.0 -51 --90.0 -0 -ARC -8 -0 -10 -287.6375 -20 --97.7875 -30 -0.0 -40 -2.5 -50 --90.0 -51 -0.0 -0 -ARC -8 -0 -10 -287.6375 -20 --7.7875 -30 -0.0 -40 -2.5 -50 -0.0 -51 -90.0 -0 -ARC -8 -0 -10 -7.6375 -20 --7.7875 -30 -0.0 -40 -2.5 -50 -90.0 -51 -180.0 -0 -LINE -8 -0 -10 -290.1375 -20 --97.7875 -11 -290.1375 -21 --65.1125 -0 -LINE -8 -0 -10 -7.6375 -20 --100.2875 -11 -287.6375 -21 --100.2875 -0 -LINE -8 -0 -10 -5.1375 -20 --7.7875 -11 -5.1375 -21 --58.8125 -0 -LINE -8 -0 -10 -7.6375 -20 --5.2875 -11 -287.6375 -21 --5.2875 -0 -ENDSEC -0 -EOF \ No newline at end of file diff --git a/keyboards/weebkeeb/config.h b/keyboards/weebkeeb/config.h deleted file mode 100644 index 859adc9cc..000000000 --- a/keyboards/weebkeeb/config.h +++ /dev/null @@ -1,162 +0,0 @@ -/* -Copyright 2012 Jun Wako - -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 . -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER You -#define PRODUCT weebkeeb -#define DESCRIPTION A custom keyboard - -/* key matrix size */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 12 - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * -*/ -#define MATRIX_ROW_PINS { F4, F5, F6, F7 } -#define MATRIX_COL_PINS { B0, B1, B2, B3, B4, B5, B6, B7, C6, C7, F0, F1 } -#define UNUSED_PINS - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -// #define BACKLIGHT_PIN B7 -// #define BACKLIGHT_BREATHING -// #define BACKLIGHT_LEVELS 3 - - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCING_DELAY 5 - -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - -/* number of backlight levels */ - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -//#define FORCE_NKRO - -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* key combination for magic key command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ -) - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboards/weebkeeb/keymaps/default/Makefile b/keyboards/weebkeeb/keymaps/default/Makefile deleted file mode 100644 index f4671a9d1..000000000 --- a/keyboards/weebkeeb/keymaps/default/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - -ifndef QUANTUM_DIR - include ../../../../Makefile -endif \ No newline at end of file diff --git a/keyboards/weebkeeb/keymaps/default/config.h b/keyboards/weebkeeb/keymaps/default/config.h deleted file mode 100644 index df06a2620..000000000 --- a/keyboards/weebkeeb/keymaps/default/config.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include "../../config.h" - -// place overrides here - -#endif \ No newline at end of file diff --git a/keyboards/weebkeeb/keymaps/default/keymap.c b/keyboards/weebkeeb/keymaps/default/keymap.c deleted file mode 100644 index cdf1f1e4c..000000000 --- a/keyboards/weebkeeb/keymaps/default/keymap.c +++ /dev/null @@ -1,119 +0,0 @@ -#include "weebkeeb.h" - -#define _QWERTY 0 -#define _COLEMAK 1 -#define _DVORAK 2 -#define _LOWER 3 -#define _RAISE 4 -#define _ADJUST 16 - -enum custom_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - LOWER, - RAISE, - ADJUST, -}; - -// Fillers to make layering more clear -#define _______ KC_TRNS -#define XXXXXXX KC_NO - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* Qwerty - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | D | F | G | H | J | K | L | ; | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_QWERTY] = KEYMAP( \ - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, \ - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ - KC_LCTL, ADJUST, KC_LALT, KC_LGUI, MO(3), KC_SPC, KC_SPC, MO(4), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ -), - -/* Colemak - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | R | S | T | D | H | N | E | I | O | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[3] = KEYMAP( \ - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, \ - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______, \ - _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ -), -[4] = KEYMAP( \ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, \ - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, \ - _______, _______, _______, _______, _______, KC_ENT, KC_ENT, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ -), - -/* Adjust (Lower + Raise) - * ,-----------------------------------------------------------------------------------. - * | | Reset| | | | | | | | | | Del | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_ADJUST] = KEYMAP( \ - _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ - _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ - _______, RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ -) -}; -const uint16_t PROGMEM fn_actions[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; - - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - -} \ No newline at end of file diff --git a/keyboards/weebkeeb/keymaps/default/readme.md b/keyboards/weebkeeb/keymaps/default/readme.md deleted file mode 100644 index 877132276..000000000 --- a/keyboards/weebkeeb/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for weebkeeb \ No newline at end of file diff --git a/keyboards/weebkeeb/readme.md b/keyboards/weebkeeb/readme.md deleted file mode 100644 index bf31016c8..000000000 --- a/keyboards/weebkeeb/readme.md +++ /dev/null @@ -1,28 +0,0 @@ -weebkeeb keyboard firmware -====================== - -## Quantum MK Firmware - -For the full Quantum feature list, see [the parent readme](/). - -## Building - -Download or clone the whole firmware and navigate to the keyboards/weebkeeb folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. - -Depending on which keymap you would like to use, you will have to compile slightly differently. - -### Default - -To build with the default keymap, simply run `make default`. - -### Other Keymaps - -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files. - -To build the firmware binary hex file with a keymap just do `make` with a keymap like this: - -``` -$ make [default|jack|] -``` - -Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/weebkeeb/rules.mk b/keyboards/weebkeeb/rules.mk deleted file mode 100644 index 55898147d..000000000 --- a/keyboards/weebkeeb/rules.mk +++ /dev/null @@ -1,67 +0,0 @@ -# MCU name -#MCU = at90usb1287 -MCU = atmega32u4 - -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - - -# -# LUFA specific -# -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - - -# Boot Section Size in *bytes* -# Teensy halfKay 512 -# Teensy++ halfKay 1024 -# Atmel DFU loader 4096 -# LUFA bootloader 4096 -# USBaspLoader 2048 -OPT_DEFS += -DBOOTLOADER_SIZE=512 - - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) -EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) -CONSOLE_ENABLE ?= yes # Console for debug(+400) -COMMAND_ENABLE ?= yes # Commands for debug and configuration -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend -# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE ?= no # USB Nkey Rollover -BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default -MIDI_ENABLE ?= no # MIDI controls -UNICODE_ENABLE ?= no # Unicode -BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID -AUDIO_ENABLE ?= no # Audio output on port C6 diff --git a/keyboards/weebkeeb/weebkeeb.c b/keyboards/weebkeeb/weebkeeb.c deleted file mode 100644 index 483fc9440..000000000 --- a/keyboards/weebkeeb/weebkeeb.c +++ /dev/null @@ -1,28 +0,0 @@ -#include "weebkeeb.h" - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - - matrix_init_user(); -} - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - - matrix_scan_user(); -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware - - return process_record_user(keycode, record); -} - -void led_set_kb(uint8_t usb_led) { - // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here - - led_set_user(usb_led); -} diff --git a/keyboards/weebkeeb/weebkeeb.h b/keyboards/weebkeeb/weebkeeb.h deleted file mode 100644 index 7bca2c201..000000000 --- a/keyboards/weebkeeb/weebkeeb.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef WEEBKEEB_H -#define WEEBKEEB_H - -#include "quantum.h" - -// This a shortcut to help you visually see your layout. -// The following is an example using the Planck MIT layout -// The first section contains all of the arguements -// The second converts the arguments into a two-dimensional array -#define KEYMAP( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \ -) \ -{ \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \ -} - -#endif -- cgit v1.2.3 From 0f71c81df833a282250ecc4e66034320e40b208e Mon Sep 17 00:00:00 2001 From: climbalima Date: Sat, 3 Dec 2016 17:37:41 -0500 Subject: having trouble with conflicts --- keyboards/maxipad/config.h | 15 --------------- keyboards/maxipad/readme.md | 2 -- keyboards/maxipad/rules.mk | 3 --- 3 files changed, 20 deletions(-) (limited to 'keyboards') diff --git a/keyboards/maxipad/config.h b/keyboards/maxipad/config.h index 4377a892e..d7a5ef564 100644 --- a/keyboards/maxipad/config.h +++ b/keyboards/maxipad/config.h @@ -32,20 +32,6 @@ along with this program. If not, see . #define MATRIX_ROWS 5 #define MATRIX_COLS 6 -<<<<<<< HEAD -// Planck PCB default pin-out -// Change this to how you wired your keyboard -// COLS: Left to right, ROWS: Top to bottom -#ifdef USE_PRO_MICRO - #define MATRIX_ROW_PINS { B6, B2, B3, B1, F7 } - #define MATRIX_COL_PINS { F4, C6, D7, F5, B4, B5 } - #define UNUSED_PINS - #else - #define MATRIX_ROW_PINS { B6, F7, B2, B3, B1 } - #define MATRIX_COL_PINS { F6, C6, D7, F5, B4, B5 } - #define UNUSED_PINS - #endif -======= /* * Keyboard Matrix Assignments * @@ -65,7 +51,6 @@ along with this program. If not, see . //#define MATRIX_COL_PINS { F6, C6, D7, F5, B4, B5 } //#define UNUSED_PINS ->>>>>>> 102a830bbdb302eb0951ec7910ab7c9feae272d1 /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/maxipad/readme.md b/keyboards/maxipad/readme.md index 58ed5d718..861ea2b07 100644 --- a/keyboards/maxipad/readme.md +++ b/keyboards/maxipad/readme.md @@ -1,6 +1,4 @@ -<<<<<<< HEAD Maxipad keyboard firmware -====================== ## Quantum MK Firmware diff --git a/keyboards/maxipad/rules.mk b/keyboards/maxipad/rules.mk index 49bb5f002..a5c739152 100644 --- a/keyboards/maxipad/rules.mk +++ b/keyboards/maxipad/rules.mk @@ -59,7 +59,6 @@ EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) CONSOLE_ENABLE ?= yes # Console for debug(+400) COMMAND_ENABLE ?= yes # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -<<<<<<< HEAD # SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend # NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work # BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality @@ -67,7 +66,6 @@ COMMAND_ENABLE ?= yes # Commands for debug and configuration # UNICODE_ENABLE ?= YES # Unicode # BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID USE_PRO_MICRO ?= yes -======= SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE ?= no # USB Nkey Rollover @@ -76,4 +74,3 @@ MIDI_ENABLE ?= no # MIDI controls UNICODE_ENABLE ?= no # Unicode BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE ?= no # Audio output on port C6 ->>>>>>> 102a830bbdb302eb0951ec7910ab7c9feae272d1 -- cgit v1.2.3 From 75b18773bd9368ad53d7072d73a6280e053123a3 Mon Sep 17 00:00:00 2001 From: Priyadi Iman Nurcahyo Date: Sun, 4 Dec 2016 14:51:27 +0700 Subject: fix RGB LED order --- keyboards/handwired/promethium/promethium.h | 108 ++++++++++++++-------------- 1 file changed, 54 insertions(+), 54 deletions(-) (limited to 'keyboards') diff --git a/keyboards/handwired/promethium/promethium.h b/keyboards/handwired/promethium/promethium.h index 8f2a8c3be..662eeab99 100644 --- a/keyboards/handwired/promethium/promethium.h +++ b/keyboards/handwired/promethium/promethium.h @@ -23,77 +23,77 @@ } enum led_sequence { - LED_IND_EMOJI, - LED_IND_NUM, - LED_IND_FUNC, - - LED_IND_BATTERY, - LED_IND_USB, LED_IND_BLUETOOTH, + LED_IND_USB, + LED_IND_BATTERY, - LED_TAB, - LED_ESC, - LED_LSFT, - LED_LCTL, - - LED_LGUI, - LED_Z, - LED_A, - LED_Q, + LED_IND_FUNC, + LED_IND_NUM, + LED_IND_EMOJI, - LED_W, - LED_S, - LED_X, - LED_LALT, + LED_BKSP, + LED_ENT, + LED_RSFT, + LED_RCTL, - LED_PUNC, - LED_C, - LED_D, - LED_E, + LED_RGUI, + LED_SLSH, + LED_SCLN, + LED_P, - LED_R, - LED_F, - LED_V, - LED_NUM, + LED_O, + LED_L, + LED_DOT, + LED_RALT, - LED_LSPC, - LED_B, - LED_G, - LED_T, + LED_EMOJI, + LED_COMM, + LED_K, + LED_I, - LED_TRACKPOINT1, - LED_TRACKPOINT2, - LED_TRACKPOINT3, + LED_U, + LED_J, + LED_M, + LED_FUNC, LED_RSPC, LED_N, LED_HH, LED_Y, - LED_U, - LED_J, - LED_M, - LED_FUNC, + LED_TRACKPOINT3, + LED_TRACKPOINT2, + LED_TRACKPOINT1, - LED_EMOJI, - LED_COMM, - LED_K, - LED_I, + LED_LSPC, + LED_B, + LED_G, + LED_T, - LED_O, - LED_L, - LED_DOT, - LED_RALT, + LED_R, + LED_F, + LED_V, + LED_NUM, - LED_RGUI, - LED_SLSH, - LED_SCLN, - LED_P, + LED_PUNC, + LED_C, + LED_D, + LED_E, - LED_BKSP, - LED_ENT, - LED_RSFT, - LED_RCTL + LED_W, + LED_S, + LED_X, + LED_LALT, + + LED_LGUI, + LED_Z, + LED_A, + LED_Q, + + LED_TAB, + LED_ESC, + LED_LSFT, + LED_LCTL, }; #endif -- cgit v1.2.3 From a8e5f6180585f46684d713976ad05d4d81b11ab1 Mon Sep 17 00:00:00 2001 From: Priyadi Iman Nurcahyo Date: Sun, 4 Dec 2016 23:55:06 +0700 Subject: fix emoji LED indicators. --- .../handwired/promethium/keymaps/priyadi/keymap.c | 48 +++++++++++++--------- 1 file changed, 28 insertions(+), 20 deletions(-) (limited to 'keyboards') diff --git a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c index b2da2f97b..3d34e9822 100644 --- a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c +++ b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c @@ -282,25 +282,25 @@ void led_layer_func(void) { rgbsps_set(LED_K, 15, 0, 15); rgbsps_set(LED_L, 15, 0, 15); - rgbsps_set(LED_U, 15, 0, 10); - rgbsps_set(LED_O, 15, 0, 10); - rgbsps_set(LED_COMM, 15, 0, 10); - rgbsps_set(LED_DOT, 15, 0, 10); - rgbsps_set(LED_SCLN, 15, 0, 10); - rgbsps_set(LED_P, 15, 0, 10); - - rgbsps_set(LED_Q, 10, 0, 15); - rgbsps_set(LED_W, 10, 0, 15); - rgbsps_set(LED_E, 10, 0, 15); - rgbsps_set(LED_R, 10, 0, 15); - rgbsps_set(LED_A, 10, 0, 15); - rgbsps_set(LED_S, 10, 0, 15); - rgbsps_set(LED_D, 10, 0, 15); - rgbsps_set(LED_F, 10, 0, 15); - rgbsps_set(LED_Z, 10, 0, 15); - rgbsps_set(LED_X, 10, 0, 15); - rgbsps_set(LED_C, 10, 0, 15); - rgbsps_set(LED_V, 10, 0, 15); + rgbsps_set(LED_U, 15, 0, 0); + rgbsps_set(LED_O, 15, 0, 0); + rgbsps_set(LED_COMM, 15, 0, 0); + rgbsps_set(LED_DOT, 15, 0, 0); + rgbsps_set(LED_SCLN, 15, 0, 0); + rgbsps_set(LED_P, 15, 0, 0); + + rgbsps_set(LED_Q, 0, 15, 0); + rgbsps_set(LED_W, 0, 15, 0); + rgbsps_set(LED_E, 0, 15, 0); + rgbsps_set(LED_R, 0, 15, 0); + rgbsps_set(LED_A, 0, 15, 0); + rgbsps_set(LED_S, 0, 15, 0); + rgbsps_set(LED_D, 0, 15, 0); + rgbsps_set(LED_F, 0, 15, 0); + rgbsps_set(LED_Z, 0, 15, 0); + rgbsps_set(LED_X, 0, 15, 0); + rgbsps_set(LED_C, 0, 15, 0); + rgbsps_set(LED_V, 0, 15, 0); rgbsps_send(); } @@ -361,7 +361,15 @@ void led_layer_num(void) { } void led_layer_emoji(void) { - rgbsps_setall(15, 15, 0); + for(uint8_t i = 0; i < COUNT(LED_ALNUM); i++) { + rgbsps_set(pgm_read_byte(&LED_ALNUM[i]), 15, 15, 0); + } + for(uint8_t i = 0; i < COUNT(LED_MODS); i++) { + rgbsps_set(pgm_read_byte(&LED_MODS[i]), 15, 15, 0); + } + for(uint8_t i = 0; i < COUNT(LED_FN); i++) { + rgbsps_set(pgm_read_byte(&LED_FN[i]), 15, 15, 0); + } rgbsps_set(LED_IND_FUNC, 0, 0, 0); rgbsps_set(LED_IND_NUM, 0, 0, 0); -- cgit v1.2.3 From 73073f270b55d939559e8cfd4a7d36e3510ba2f6 Mon Sep 17 00:00:00 2001 From: Priyadi Iman Nurcahyo Date: Mon, 5 Dec 2016 01:15:04 +0700 Subject: Trackpoint initialization --- .../handwired/promethium/keymaps/priyadi/flash.sh | 1 + .../handwired/promethium/keymaps/priyadi/keymap.c | 110 ++++++++++++++++++++- 2 files changed, 110 insertions(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/handwired/promethium/keymaps/priyadi/flash.sh b/keyboards/handwired/promethium/keymaps/priyadi/flash.sh index fb81a54ee..14a3b4378 100755 --- a/keyboards/handwired/promethium/keymaps/priyadi/flash.sh +++ b/keyboards/handwired/promethium/keymaps/priyadi/flash.sh @@ -1,3 +1,4 @@ #!/bin/sh +sleep 10 avrdude -p m32u4 -P /dev/ttyACM0 -c avr109 -U flash:w:../../../../../.build/handwired_promethium_priyadi.hex diff --git a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c index 3d34e9822..bf797a749 100644 --- a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c +++ b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c @@ -11,6 +11,8 @@ #include "process_unicode.h" #include "quantum.h" #include "rgbsps.h" +#include "ps2_mouse.h" +#include "ps2.h" #define COUNT(x) (sizeof (x) / sizeof (*(x))) // #define RGBLED_NUM 5 @@ -730,4 +732,110 @@ void shutdown_user() stop_all_notes(); } -#endif \ No newline at end of file +#endif + + +void ps2_mouse_init_user() { + // set TrackPoint sensitivity + PS2_MOUSE_SEND(0xE2, "set trackpoint sensitivity: 0xE2"); + PS2_MOUSE_SEND(0x81, "set trackpoint sensitivity: 0x81"); + PS2_MOUSE_SEND(0x4A, "set trackpoint sensitivity: 0x4A"); + PS2_MOUSE_SEND(0x60, "set trackpoint sensitivity: 0x60"); + + // set TrackPoint speed + // (transfer function upper plateau speed) + PS2_MOUSE_SEND(0xE2, "set trackpoint speed: 0xE2"); + PS2_MOUSE_SEND(0x81, "set trackpoint speed: 0x81"); + PS2_MOUSE_SEND(0x60, "set trackpoint speed: 0x60"); + PS2_MOUSE_SEND(0x90, "set trackpoint speed: 0x90"); + + // set TrackPoint Negative Inertia factor + PS2_MOUSE_SEND(0xE2, "set negative inertia factor: 0xE2"); + PS2_MOUSE_SEND(0x81, "set negative inertia factor: 0x81"); + PS2_MOUSE_SEND(0x4D, "set negative inertia factor: 0x4D"); + PS2_MOUSE_SEND(0x03, "set negative inertia factor: 0x03"); + + // disable up threshold (click) + PS2_MOUSE_SEND(0xE2, "set disable up threshold: 0xE2"); + PS2_MOUSE_SEND(0x47, "set disable up threshold: 0x47"); + PS2_MOUSE_SEND(0x2C, "set disable up threshold: 0x2C"); + PS2_MOUSE_SEND(0x01, "set disable up threshold: 0x01"); + + // enable TrackPoint Press to Select (PtS) + // print("ps2_mouse_init: send 0xE2: "); + // rcv = ps2_host_send(0xE2); + // phex(rcv); phex(ps2_error); print("\n"); + // print("ps2_mouse_init: send 0x47: "); + // rcv = ps2_host_send(0x47); + // phex(rcv); phex(ps2_error); print("\n"); + // print("ps2_mouse_init: send 0x2C: "); + // rcv = ps2_host_send(0x2C); + // phex(rcv); phex(ps2_error); print("\n"); + // print("ps2_mouse_init: send 0x00: "); + // rcv = ps2_host_send(0x00); + // phex(rcv); phex(ps2_error); print("\n"); + + // set TrackPoint Press to Select threshold + // print("ps2_mouse_init: send 0xE2: "); + // rcv = ps2_host_send(0xE2); + // phex(rcv); phex(ps2_error); print("\n"); + // print("ps2_mouse_init: send 0x81: "); + // rcv = ps2_host_send(0x81); + // phex(rcv); phex(ps2_error); print("\n"); + // print("ps2_mouse_init: send 0x5C: "); + // rcv = ps2_host_send(0x5C); + // phex(rcv); phex(ps2_error); print("\n"); + // // default PtS threshold is 0x08 + // print("ps2_mouse_init: send 0x04: "); + // rcv = ps2_host_send(0x04); + // phex(rcv); phex(ps2_error); print("\n"); + + // set TrackPoint Press to Select time constant (zTc) + // print("ps2_mouse_init: send 0xE2: "); + // rcv = ps2_host_send(0xE2); + // phex(rcv); phex(ps2_error); print("\n"); + // print("ps2_mouse_init: send 0x81: "); + // rcv = ps2_host_send(0x81); + // phex(rcv); phex(ps2_error); print("\n"); + // print("ps2_mouse_init: send 0x5E: "); + // rcv = ps2_host_send(0x5E); + // phex(rcv); phex(ps2_error); print("\n"); + // // default zTc is 0x26 + // print("ps2_mouse_init: send 0x45: "); + // rcv = ps2_host_send(0x45); + // phex(rcv); phex(ps2_error); print("\n"); + + /* + // set TrackPoint Press to Select Jenks Curvature (jkcur) + print("ps2_mouse_init: send 0xE2: "); + rcv = ps2_host_send(0xE2); + phex(rcv); phex(ps2_error); print("\n"); + print("ps2_mouse_init: send 0x81: "); + rcv = ps2_host_send(0x81); + phex(rcv); phex(ps2_error); print("\n"); + print("ps2_mouse_init: send 0x5D: "); + rcv = ps2_host_send(0x5D); + phex(rcv); phex(ps2_error); print("\n"); + // default jkcur is 0x87 + print("ps2_mouse_init: send 0x87: "); + rcv = ps2_host_send(0x87); + phex(rcv); phex(ps2_error); print("\n"); + */ + + /* + // set TrackPoint Minimum Drag (mindrag) + print("ps2_mouse_init: send 0xE2: "); + rcv = ps2_host_send(0xE2); + phex(rcv); phex(ps2_error); print("\n"); + print("ps2_mouse_init: send 0x81: "); + rcv = ps2_host_send(0x81); + phex(rcv); phex(ps2_error); print("\n"); + print("ps2_mouse_init: send 0x59: "); + rcv = ps2_host_send(0x59); + phex(rcv); phex(ps2_error); print("\n"); + // default PtS mindrag is 0x14 + print("ps2_mouse_init: send 0x14: "); + rcv = ps2_host_send(0x14); + phex(rcv); phex(ps2_error); print("\n"); + */ +} \ No newline at end of file -- cgit v1.2.3 From c7d11fd001cac4f0baeecdda79b7743e3695c77f Mon Sep 17 00:00:00 2001 From: Priyadi Iman Nurcahyo Date: Mon, 5 Dec 2016 02:15:38 +0700 Subject: Remove unnecessary build options --- keyboards/handwired/promethium/keymaps/priyadi/Makefile | 7 ++++--- keyboards/handwired/promethium/rules.mk | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'keyboards') diff --git a/keyboards/handwired/promethium/keymaps/priyadi/Makefile b/keyboards/handwired/promethium/keymaps/priyadi/Makefile index 2f6f27a73..46fdfa011 100644 --- a/keyboards/handwired/promethium/keymaps/priyadi/Makefile +++ b/keyboards/handwired/promethium/keymaps/priyadi/Makefile @@ -4,16 +4,17 @@ # change to "no" to disable the options, or define them in the Makefile in # the appropriate keymap folder that will get included automatically # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration +COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode +UNICODEMAP_ENABLE = yes BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. PS2_MOUSE_ENABLE = yes diff --git a/keyboards/handwired/promethium/rules.mk b/keyboards/handwired/promethium/rules.mk index 0842780cc..891f523c2 100644 --- a/keyboards/handwired/promethium/rules.mk +++ b/keyboards/handwired/promethium/rules.mk @@ -61,7 +61,7 @@ BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality MIDI_ENABLE ?= no # MIDI controls AUDIO_ENABLE ?= no # Audio output on port C6 UNICODE_ENABLE ?= no # Unicode -UNICODEMAP_ENABLE = yes +UNICODEMAP_ENABLE ?= yes BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. PS2_MOUSE_ENABLE ?= yes -- cgit v1.2.3 From 7e4341e437c2f0d8d4257b616b1d8d30a8cab4ed Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 4 Dec 2016 23:01:07 -0500 Subject: Update rules.mk --- keyboards/planck/rules.mk | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/rules.mk b/keyboards/planck/rules.mk index 4874d92b9..fb24e8235 100644 --- a/keyboards/planck/rules.mk +++ b/keyboards/planck/rules.mk @@ -62,8 +62,7 @@ AUDIO_ENABLE ?= no # Audio output on port C6 UNICODE_ENABLE ?= no # Unicode BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. -API_SYSEX_ENABLE = no -RAW_ENABLE = yes +API_SYSEX_ENABLE = yes # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend \ No newline at end of file +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend -- cgit v1.2.3 From 1eec2b7277ed24a63c42ea6b53a4db530c35dbbd Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 4 Dec 2016 23:11:22 -0500 Subject: Update planck.c --- keyboards/planck/planck.c | 14 -------------- 1 file changed, 14 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/planck.c b/keyboards/planck/planck.c index 0d37b6622..3980b02f5 100644 --- a/keyboards/planck/planck.c +++ b/keyboards/planck/planck.c @@ -1,8 +1,5 @@ #include "planck.h" -#include "raw_hid.h" -#include "keymap.h" - #ifdef ONEHAND_ENABLE __attribute__ ((weak)) const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { @@ -20,14 +17,3 @@ void matrix_init_kb(void) { matrix_init_user(); } - -#ifdef RAW_ENABLE - -void raw_hid_receive( uint8_t *data, uint8_t length ) -{ - // Basic test of Raw HID - // Echo back data received - raw_hid_send( data, length ); -} - -#endif -- cgit v1.2.3 From a05b6a72d9da9fa6056046c9f600957f43b3c8df Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Mon, 5 Dec 2016 20:34:24 -0500 Subject: Adjusts config for better mousekey support --- keyboards/ergodox/config.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/config.h b/keyboards/ergodox/config.h index edc60caae..994a8c643 100644 --- a/keyboards/ergodox/config.h +++ b/keyboards/ergodox/config.h @@ -1,10 +1,11 @@ #ifndef KEYBOARDS_ERGODOX_CONFIG_H_ #define KEYBOARDS_ERGODOX_CONFIG_H_ -#define MOUSEKEY_DELAY 100 #define MOUSEKEY_INTERVAL 20 -#define MOUSEKEY_MAX_SPEED 3 -#define MOUSEKEY_TIME_TO_MAX 10 +#define MOUSEKEY_DELAY 0 +#define MOUSEKEY_TIME_TO_MAX 5 +#define MOUSEKEY_MAX_SPEED 2 +#define MOUSEKEY_WHEEL_DELAY 0 #define TAPPING_TOGGLE 1 -- cgit v1.2.3 From 82922a4937dc9683a2364f750a67b80b63767ab5 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Mon, 5 Dec 2016 20:35:03 -0500 Subject: A new default layout that supports Shine --- keyboards/ergodox/keymaps/default/keymap.c | 84 +++++++++++++++------- .../ergodox/keymaps/erez_experimental/keymap.c | 2 +- 2 files changed, 59 insertions(+), 27 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/default/keymap.c b/keyboards/ergodox/keymaps/default/keymap.c index 2f399bd18..4eff28085 100644 --- a/keyboards/ergodox/keymaps/default/keymap.c +++ b/keyboards/ergodox/keymaps/default/keymap.c @@ -7,7 +7,12 @@ #define SYMB 1 // symbols #define MDIA 2 // media keys -#define EPRM M(1) // Macro 1: Reset EEPROM +enum custom_keycodes { + PLACEHOLDER = SAFE_RANGE, // can always be here + EPRM, + VRSN, + RGB_SLD +}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer @@ -17,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / Cmd | + * | BkSp | A | S | D | F | G |------| |------| H |J/Alt | K | L |; / L2|' / Cmd | * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' @@ -44,56 +49,56 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_HOME, KC_SPC,KC_BSPC,KC_END, // right hand - KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),GUI_T(KC_QUOT), - MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, - KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, ALT_T(KC_J), KC_K, KC_L, LT(MDIA, KC_SCLN),GUI_T(KC_QUOT), + MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, KC_LALT, CTL_T(KC_ESC), KC_PGUP, KC_PGDN,KC_TAB, KC_ENT ), /* Keymap 1: Symbol Layer * - * ,--------------------------------------------------. ,--------------------------------------------------. - * |Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | EPRM | | | | | | | . | 0 | = | | - * `----------------------------------' `----------------------------------' + * ,---------------------------------------------------. ,--------------------------------------------------. + * |Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | EPRM | | | | | | | . | 0 | = | | + * `-----------------------------------' `----------------------------------' * ,-------------. ,-------------. - * | | | | | | + * |Animat| | |Toggle|Solid | * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | + * |Bright|Bright| | | |Hue- |Hue+ | + * |ness- |ness+ |------| |------| | | * | | | | | | | | * `--------------------' `--------------------' */ // SYMBOLS [SYMB] = KEYMAP( // left hand - M(0), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + VRSN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, EPRM,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS,KC_TRNS, + RGB_MOD,KC_TRNS, KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS, + RGB_VAD,RGB_VAI,KC_TRNS, // right hand KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, - KC_TRNS, KC_TRNS, + RGB_TOG, RGB_SLD, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS + KC_TRNS, RGB_HUD, RGB_HUI ), /* Keymap 2: Media and mouse keys * @@ -160,6 +165,33 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) return MACRO_NONE; }; +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + // dynamically generate these. + case EPRM: + if (record->event.pressed) { + eeconfig_init(); + } + return false; + break; + case VRSN: + if (record->event.pressed) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + } + return false; + break; + case RGB_SLD: + if (record->event.pressed) { + #ifdef RGBLIGHT_ENABLE + rgblight_mode(1); + #endif + } + return false; + break; + } + return true; +} + // Runs just one time when the keyboard initializes. void matrix_init_user(void) { diff --git a/keyboards/ergodox/keymaps/erez_experimental/keymap.c b/keyboards/ergodox/keymaps/erez_experimental/keymap.c index 2963c40e3..13b8240ce 100644 --- a/keyboards/ergodox/keymaps/erez_experimental/keymap.c +++ b/keyboards/ergodox/keymaps/erez_experimental/keymap.c @@ -73,7 +73,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-------------. ,-------------. * | | | |TOG | * ,------|------|------| |------+------+------. - * |VAI |VAD |HUI | |SAI |TOG |MOD | + * |VAI |VAD |HUI | |SAI | |MOD | * | | |------| |------| | | * | | |HUD | |SAD | | | * `--------------------' `--------------------' -- cgit v1.2.3