From af04936e1f8d0a2b1932488d679ac313a8b269de Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sun, 27 Jan 2019 21:05:26 -0800 Subject: [PATCH 01/55] Add default layout for e6_rgb (#4973) --- keyboards/e6_rgb/keymaps/default/keymap.c | 29 +++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 keyboards/e6_rgb/keymaps/default/keymap.c diff --git a/keyboards/e6_rgb/keymaps/default/keymap.c b/keyboards/e6_rgb/keymaps/default/keymap.c new file mode 100644 index 00000000000..0f7f09f5516 --- /dev/null +++ b/keyboards/e6_rgb/keymaps/default/keymap.c @@ -0,0 +1,29 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Layer 0: Default Layer + * ,-----------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| BSp | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| + * |-----------------------------------------------------------| + * |Contro| A| S| D| F| G| H| J| K| L| ;| '|Enter | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn0| + * |-----------------------------------------------------------' + * |Ctrl |Gui|Alt | Space |Alt |Gui|Fn |Ctrl | + * `-----------------------------------------------------------' + */ + [0] = LAYOUT_60_ansi( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC,\ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS,\ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT,\ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,\ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL), + [1] = LAYOUT_60_ansi( + 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,_______,\ + RESET, RGB_TOG,RGB_MOD,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,\ + _______, _______,_______,_______,_______,_______,KC_LEFT,KC_DOWN,KC_UP,KC_RIGHT,_______,_______,_______,\ + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,\ + _______,_______,_______, _______, _______,_______,_______,_______), +}; From ad6a7e9cec0d733f86a976439625cf30be7e7af9 Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Mon, 28 Jan 2019 06:40:13 -0800 Subject: [PATCH 02/55] Alice: refactor and Configurator bugfix (#4979) - layout macro and keymap layers refactored to more closely resemble physical keyboard layout - added layout mockup to alice.h - correct info.json data (was missing a key) --- keyboards/alice/alice.h | 24 ++++++-- keyboards/alice/info.json | 70 +++++++++++++++++++++++- keyboards/alice/keymaps/default/keymap.c | 22 ++++---- keyboards/alice/keymaps/mrkeebs/keymap.c | 22 ++++---- 4 files changed, 107 insertions(+), 31 deletions(-) diff --git a/keyboards/alice/alice.h b/keyboards/alice/alice.h index a92618593a3..16460ed701c 100644 --- a/keyboards/alice/alice.h +++ b/keyboards/alice/alice.h @@ -19,13 +19,25 @@ along with this program. If not, see . #include "quantum.h" +/* LAYOUT + * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┐ + * │63 │ │00 │01 │02 │03 │04 │05 │06 │ │07 │08 │09 │10 │11 │12 │13 │14 │ + * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ + * │64 │ │15 │16 │17 │18 │19 │20 │ │21 │22 │23 │24 │25 │26 │27 │28 │ + * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │65 │ │29 │30 │31 │32 │33 │34 │ │35 │36 │37 │38 │39 │40 │41 │ + * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ + * │42 │43 │44 │45 │46 │47 │ │48 │49 │50 │51 │52 │53 │54 │55 │ + * ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐ ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤ + * │56 │ │57 │58 │59 │ │60 │61 │ │62 │ + * └─────┘ └─────┴───────┴────┘ └──────────┴─────┘ └─────┘ + */ #define LAYOUT( \ - 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, K40, K41, \ - K42, K43, K44, K45, K46, K47, K48, K49, K50, K51, K52, K53, K54, K55, \ - K56, K57, K58, K59, K60, K61, K62, \ - K63, K64, K65 \ + K63, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, K14, \ + K64, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, K26, K27, K28, \ + K65, K29, K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K40, K41, \ + K42, K43, K44, K45, K46, K47, K48, K49, K50, K51, K52, K53, K54, K55, \ + K56, K57, K58, K59, K60, K61, K62 \ ) \ { \ { K00 , K01 , K02 , K03 , K04 , K05 , K06 , K07 , K08 , K09 , K10 , K11 , K12 , K13 , K14 }, \ diff --git a/keyboards/alice/info.json b/keyboards/alice/info.json index 5ea1f6756e1..b2620933267 100644 --- a/keyboards/alice/info.json +++ b/keyboards/alice/info.json @@ -6,7 +6,75 @@ "height": 5, "layouts": { "LAYOUT": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"~", "x":1.25, "y":0}, {"label":"!", "x":2.25, "y":0}, {"label":"@", "x":3.25, "y":0}, {"label":"#", "x":4.25, "y":0}, {"label":"$", "x":5.25, "y":0}, {"label":"%", "x":6.25, "y":0}, {"label":"^", "x":7.25, "y":0}, {"label":"&", "x":9.75, "y":0}, {"label":"*", "x":10.75, "y":0}, {"label":"(", "x":11.75, "y":0}, {"label":")", "x":12.75, "y":0}, {"label":"_", "x":13.75, "y":0}, {"label":"+", "x":14.75, "y":0}, {"label":"|", "x":15.75, "y":0}, {"label":"~", "x":16.75, "y":0}, {"label":"Insert", "x":0, "y":1}, {"label":"Tab", "x":1.25, "y":1, "w":1.5}, {"label":"Q", "x":2.75, "y":1}, {"label":"W", "x":3.75, "y":1}, {"label":"E", "x":4.75, "y":1}, {"label":"R", "x":5.75, "y":1}, {"label":"T", "x":6.75, "y":1}, {"label":"Y", "x":9.25, "y":1}, {"label":"U", "x":10.25, "y":1}, {"label":"I", "x":11.25, "y":1}, {"label":"O", "x":12.25, "y":1}, {"label":"P", "x":13.25, "y":1}, {"label":"{", "x":14.25, "y":1}, {"label":"}", "x":15.25, "y":1}, {"label":"Backspace", "x":16.25, "y":1, "w":1.5}, {"label":"Delete", "x":0, "y":2}, {"label":"Caps Lock", "x":1.25, "y":2, "w":1.75}, {"label":"A", "x":3, "y":2}, {"label":"S", "x":4, "y":2}, {"label":"D", "x":5, "y":2}, {"label":"F", "x":6, "y":2}, {"label":"G", "x":7, "y":2}, {"label":"H", "x":9.5, "y":2}, {"label":"J", "x":10.5, "y":2}, {"label":"K", "x":11.5, "y":2}, {"label":"L", "x":12.5, "y":2}, {"label":":", "x":13.5, "y":2}, {"label":"\"", "x":14.5, "y":2}, {"label":"Enter", "x":15.5, "y":2, "w":2.25}, {"label":"Shift", "x":1.25, "y":3, "w":2.25}, {"label":"Z", "x":3.5, "y":3}, {"label":"X", "x":4.5, "y":3}, {"label":"C", "x":5.5, "y":3}, {"label":"V", "x":6.5, "y":3}, {"label":"B", "x":9, "y":3}, {"label":"N", "x":10, "y":3}, {"label":"M", "x":11, "y":3}, {"label":"<", "x":12, "y":3}, {"label":">", "x":13, "y":3}, {"label":"?", "x":14, "y":3}, {"label":"Shift", "x":15, "y":3, "w":1.75}, {"label":"Fn", "x":16.75, "y":3}, {"label":"Ctrl", "x":1.25, "y":4, "w":1.5}, {"label":"Alt", "x":3.5, "y":4, "w":1.5}, {"x":5, "y":4, "w":2.25}, {"label":"Win", "x":7.25, "y":4, "w":1.25}, {"x":9, "y":4, "w":2.75}, {"label":"Alt", "x":11.75, "y":4, "w":1.5}, {"label":"Ctrl", "x":16.25, "y":4, "w":1.5}] + "key_count": 66, + "layout": [ + {"label":"K63", "x":0, "y":0}, + {"label":"K00", "x":1.25, "y":0}, + {"label":"K01", "x":2.25, "y":0}, + {"label":"K02", "x":3.25, "y":0}, + {"label":"K03", "x":4.25, "y":0}, + {"label":"K04", "x":5.25, "y":0}, + {"label":"K05", "x":6.25, "y":0}, + {"label":"K06", "x":7.25, "y":0}, + {"label":"K07", "x":10.25, "y":0}, + {"label":"K08", "x":11.25, "y":0}, + {"label":"K09", "x":12.25, "y":0}, + {"label":"K10", "x":13.25, "y":0}, + {"label":"K11", "x":14.25, "y":0}, + {"label":"K12", "x":15.25, "y":0}, + {"label":"K13", "x":16.25, "y":0}, + {"label":"K14", "x":17.25, "y":0}, + {"label":"K64", "x":0, "y":1}, + {"label":"K15", "x":1.25, "y":1, "w":1.5}, + {"label":"K16", "x":2.75, "y":1}, + {"label":"K17", "x":3.75, "y":1}, + {"label":"K18", "x":4.75, "y":1}, + {"label":"K19", "x":5.75, "y":1}, + {"label":"K20", "x":6.75, "y":1}, + {"label":"K21", "x":9.75, "y":1}, + {"label":"K22", "x":10.75, "y":1}, + {"label":"K23", "x":11.75, "y":1}, + {"label":"K24", "x":12.75, "y":1}, + {"label":"K25", "x":13.75, "y":1}, + {"label":"K26", "x":14.75, "y":1}, + {"label":"K27", "x":15.75, "y":1}, + {"label":"K28", "x":16.75, "y":1, "w":1.5}, + {"label":"K65", "x":0, "y":2}, + {"label":"K29", "x":1.25, "y":2, "w":1.75}, + {"label":"K30", "x":3, "y":2}, + {"label":"K31", "x":4, "y":2}, + {"label":"K32", "x":5, "y":2}, + {"label":"K33", "x":6, "y":2}, + {"label":"K34", "x":7, "y":2}, + {"label":"K35", "x":10, "y":2}, + {"label":"K36", "x":11, "y":2}, + {"label":"K37", "x":12, "y":2}, + {"label":"K38", "x":13, "y":2}, + {"label":"K39", "x":14, "y":2}, + {"label":"K40", "x":15, "y":2}, + {"label":"K41", "x":16, "y":2, "w":2.25}, + {"label":"K42", "x":1.25, "y":3, "w":2.25}, + {"label":"K43", "x":3.5, "y":3}, + {"label":"K44", "x":4.5, "y":3}, + {"label":"K45", "x":5.5, "y":3}, + {"label":"K46", "x":6.5, "y":3}, + {"label":"K47", "x":7.5, "y":3}, + {"label":"K48", "x":9.5, "y":3}, + {"label":"K49", "x":10.5, "y":3}, + {"label":"K50", "x":11.5, "y":3}, + {"label":"K51", "x":12.5, "y":3}, + {"label":"K52", "x":13.5, "y":3}, + {"label":"K53", "x":14.5, "y":3}, + {"label":"K54", "x":15.5, "y":3, "w":1.75}, + {"label":"K55", "x":17.25, "y":3}, + {"label":"K56", "x":1.25, "y":4, "w":1.5}, + {"label":"K57", "x":4.25, "y":4, "w":1.5}, + {"label":"K58", "x":5.75, "y":4, "w":2}, + {"label":"K59", "x":7.75, "y":4, "w":1.25}, + {"label":"K60", "x":9.5, "y":4, "w":2.75}, + {"label":"K61", "x":12.25, "y":4, "w":1.5}, + {"label":"K62", "x":16.75, "y":4, "w":1.5} + ] } } } diff --git a/keyboards/alice/keymaps/default/keymap.c b/keyboards/alice/keymaps/default/keymap.c index a0b6d467d4e..29fff66183d 100644 --- a/keyboards/alice/keymaps/default/keymap.c +++ b/keyboards/alice/keymaps/default/keymap.c @@ -19,19 +19,17 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSLS, \ - 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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), \ - KC_LGUI, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL, \ - KC_ESC, KC_PGUP, KC_PGDN \ + KC_ESC, KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSLS, \ + KC_PGUP, 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_PGDN, 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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), \ + KC_LGUI, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL \ ), [1] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP , _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RGHT, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______ \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP , _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RGHT, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______ \ ), }; diff --git a/keyboards/alice/keymaps/mrkeebs/keymap.c b/keyboards/alice/keymaps/mrkeebs/keymap.c index 6b013387009..3d8099c4139 100644 --- a/keyboards/alice/keymaps/mrkeebs/keymap.c +++ b/keyboards/alice/keymaps/mrkeebs/keymap.c @@ -19,19 +19,17 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSLS, \ - 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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), \ - KC_LGUI, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL, \ - KC_ESC, KC_PGUP, KC_PGDN \ + KC_ESC, KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSLS, \ + KC_PGUP, 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_PGDN, 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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), \ + KC_LGUI, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL \ ), [1] = LAYOUT( - 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_DEL, KC_INS, \ - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, KC_UP , _______, _______, \ - _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RGHT, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, \ - RESET, _______, _______ \ + RESET, 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_DEL, KC_INS, \ + _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, KC_UP , _______, _______, \ + _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RGHT, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______ \ ), }; From 693e1afa59686f9848517a3da895078d51bb6894 Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Mon, 28 Jan 2019 08:28:47 -0800 Subject: [PATCH 03/55] BDN9 Configurator support (#4978) --- keyboards/bdn9/info.json | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/keyboards/bdn9/info.json b/keyboards/bdn9/info.json index e69de29bb2d..a985a05e04d 100644 --- a/keyboards/bdn9/info.json +++ b/keyboards/bdn9/info.json @@ -0,0 +1,22 @@ +{ + "keyboard_name": "Keeb.io BDN9", + "url": "", + "maintainer": "nooges", + "width": 3, + "height": 3, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2} + ] + } + } +} From 5672dc8030e99541e1d71c749916249fb4b2504b Mon Sep 17 00:00:00 2001 From: ai03 Date: Mon, 28 Jan 2019 12:34:42 -0800 Subject: [PATCH 04/55] Add Lunar Keyboard (#4976) * Generate project * Adjust files * Get things working * Update readme * Add VIA configurator compatibility * Grammar * Update keymap * Split lunar info default and VIA keymaps * Copyrights * VIA tuneup * A few missed copyrights * Remove unnecessary junk * Remove unnecessary bits, fix readme --- keyboards/ai03/README.md | 4 + keyboards/ai03/lunar/config.h | 266 ++++++++++++++++++ keyboards/ai03/lunar/info.json | 13 + keyboards/ai03/lunar/keymaps/default/keymap.c | 90 ++++++ .../ai03/lunar/keymaps/default/readme.md | 2 + keyboards/ai03/lunar/keymaps/via/keymap.c | 64 +++++ keyboards/ai03/lunar/keymaps/via/readme.md | 2 + keyboards/ai03/lunar/keymaps/via/rules.mk | 86 ++++++ keyboards/ai03/lunar/lunar.c | 22 ++ keyboards/ai03/lunar/lunar.h | 41 +++ keyboards/ai03/lunar/readme.md | 15 + keyboards/ai03/lunar/rules.mk | 81 ++++++ 12 files changed, 686 insertions(+) create mode 100644 keyboards/ai03/README.md create mode 100644 keyboards/ai03/lunar/config.h create mode 100644 keyboards/ai03/lunar/info.json create mode 100644 keyboards/ai03/lunar/keymaps/default/keymap.c create mode 100644 keyboards/ai03/lunar/keymaps/default/readme.md create mode 100644 keyboards/ai03/lunar/keymaps/via/keymap.c create mode 100644 keyboards/ai03/lunar/keymaps/via/readme.md create mode 100644 keyboards/ai03/lunar/keymaps/via/rules.mk create mode 100644 keyboards/ai03/lunar/lunar.c create mode 100644 keyboards/ai03/lunar/lunar.h create mode 100644 keyboards/ai03/lunar/readme.md create mode 100644 keyboards/ai03/lunar/rules.mk diff --git a/keyboards/ai03/README.md b/keyboards/ai03/README.md new file mode 100644 index 00000000000..90bd219289a --- /dev/null +++ b/keyboards/ai03/README.md @@ -0,0 +1,4 @@ +# ai03 +QMK folders for PCB commissions. + +Website: [ai03 Keyboard Designs](https://kb.ai03.me/) \ No newline at end of file diff --git a/keyboards/ai03/lunar/config.h b/keyboards/ai03/lunar/config.h new file mode 100644 index 00000000000..4b30ca3094f --- /dev/null +++ b/keyboards/ai03/lunar/config.h @@ -0,0 +1,266 @@ +/* +Copyright 2019 Ryota Goto + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xA103 +#define PRODUCT_ID 0x0001 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Switchplate Peripherals +#define PRODUCT Lunar +#define DESCRIPTION 65% AEK keyboard + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* + * 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 { B3, D0, D1, D2, D3 } +#define MATRIX_COL_PINS { D5, D4, D6, D7, B4, B5, B6, C6, C7, F7, F6, F5, F4, F1, F0 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ +#define DIODE_DIRECTION COL2ROW + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + +// #define RGB_DI_PIN E2 +// #ifdef RGB_DI_PIN +// #define RGBLED_NUM 16 +// #define RGBLIGHT_HUE_STEP 8 +// #define RGBLIGHT_SAT_STEP 8 +// #define RGBLIGHT_VAL_STEP 8 +// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +// /*== all animations enable ==*/ +// #define RGBLIGHT_ANIMATIONS +// /*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +// #endif + +/* 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 + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * 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 */ +/* defined by default; to change, uncomment and set to the combination you want */ +// #define IS_COMMAND() (get_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 + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ +//#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 1 + +/* + * HD44780 LCD Display Configuration + */ +/* +#define LCD_LINES 2 //< number of visible lines of the display +#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display + +#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode + +#if LCD_IO_MODE +#define LCD_PORT PORTB //< port for the LCD lines +#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0 +#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1 +#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2 +#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3 +#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0 +#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1 +#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2 +#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3 +#define LCD_RS_PORT LCD_PORT //< port for RS line +#define LCD_RS_PIN 3 //< pin for RS line +#define LCD_RW_PORT LCD_PORT //< port for RW line +#define LCD_RW_PIN 2 //< pin for RW line +#define LCD_E_PORT LCD_PORT //< port for Enable line +#define LCD_E_PIN 1 //< pin for Enable line +#endif +*/ + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 + +/* VIA Configurator Compatibility */ + +#define DYNAMIC_KEYMAP_LAYER_COUNT 4 + +// EEPROM usage + +#define EEPROM_MAGIC 0x451F +#define EEPROM_MAGIC_ADDR 32 +// Bump this every time we change what we store +// This will automatically reset the EEPROM with defaults +// and avoid loading invalid data from the EEPROM +#define EEPROM_VERSION 0x08 +#define EEPROM_VERSION_ADDR 34 + +// Dynamic keymap starts after EEPROM version +#define DYNAMIC_KEYMAP_EEPROM_ADDR 35 +// DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR = DYNAMIC_KEYMAP_EEPROM_ADDR + (DYNAMIC_KEYMAP_LAYER_COUNT * MATRIX_ROWS * MATRIX_COLS * 2) +#define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR 635 +// DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE = 1024 - DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR +#define DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE 389 +#define DYNAMIC_KEYMAP_MACRO_COUNT 16 diff --git a/keyboards/ai03/lunar/info.json b/keyboards/ai03/lunar/info.json new file mode 100644 index 00000000000..c7f6454f0ee --- /dev/null +++ b/keyboards/ai03/lunar/info.json @@ -0,0 +1,13 @@ +{ + "keyboard_name": "Lunar", + "url": "https://geekhack.org/index.php?topic=96112.0", + "maintainer": "ai03", + "bootloader": "", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Insert", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Delete", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Home", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"End", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4, "w":1.25}, {"label":"Alt", "x":2.75, "y":4, "w":1.5}, {"x":4.25, "y":4, "w":2.25}, {"x":6.5, "y":4, "w":1.5}, {"x":8, "y":4, "w":2.75}, {"label":"Alt", "x":10.75, "y":4, "w":1.25}, {"label":"Win", "x":12, "y":4}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] + } + } +} \ No newline at end of file diff --git a/keyboards/ai03/lunar/keymaps/default/keymap.c b/keyboards/ai03/lunar/keymaps/default/keymap.c new file mode 100644 index 00000000000..4705d00ec1d --- /dev/null +++ b/keyboards/ai03/lunar/keymaps/default/keymap.c @@ -0,0 +1,90 @@ +/* Copyright 2019 Ryota Goto + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + MANUAL = SAFE_RANGE, + SWPLURL +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* + + Layout + + K000 K001 K002 K003 K004 K005 K006 K007 K008 K009 K010 K011 K012 K013 K212 K014 + K100 K101 K102 K103 K104 K105 K106 K107 K108 K109 K110 K111 K112 K113 K114 + K200 K201 K202 K203 K204 K205 K206 K207 K208 K209 K210 K211 K213 K214 + K300 K301 K302 K303 K304 K305 K306 K307 K308 K309 K310 K311 K313 K314 + K400 K401 K402 K403 K405 K407 K409 K410 K411 K413 K414 + + K212 = Split backspace (bound to Del by default) + K403, K407 = Split space (bound to space by default) + K405 = Main space + + */ + + [0] = LAYOUT( /* Base */ + 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_BSPC, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, + MO(1), 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_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(1), KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( /* FN */ + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, MANUAL, + KC_CAPS, _______, KC_UP, _______, _______, _______, KC_NLCK, KC_P7, KC_P8, KC_P9, KC_MPRV, KC_MPLY, KC_MNXT, _______, SWPLURL, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_VOLD, KC_VOLU, KC_P4, KC_P5, KC_P6, _______, _______, _______, _______, + _______, KC_RCTL, KC_RGUI, KC_RALT, _______, _______, KC_P0, KC_P1, KC_P2, KC_P3, _______, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case MANUAL: + if (record->event.pressed) { + // when keycode QMKBEST is pressed + SEND_STRING("https://kb.ai03.me/redir/lunar/index.html"); + } else { + // when keycode QMKBEST is released + } + break; + case SWPLURL: + if (record->event.pressed) { + // when keycode QMKURL is pressed + SEND_STRING("https://switchplate.co/collections/lunar-group-buy"); + } else { + // when keycode QMKURL is released + } + break; + } + return true; +} + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +void led_set_user(uint8_t usb_led) { + +} diff --git a/keyboards/ai03/lunar/keymaps/default/readme.md b/keyboards/ai03/lunar/keymaps/default/readme.md new file mode 100644 index 00000000000..8ff536ffc1e --- /dev/null +++ b/keyboards/ai03/lunar/keymaps/default/readme.md @@ -0,0 +1,2 @@ +# The default keymap for Lunar +For use without VIA configurator. \ No newline at end of file diff --git a/keyboards/ai03/lunar/keymaps/via/keymap.c b/keyboards/ai03/lunar/keymaps/via/keymap.c new file mode 100644 index 00000000000..b98e6cf0aa7 --- /dev/null +++ b/keyboards/ai03/lunar/keymaps/via/keymap.c @@ -0,0 +1,64 @@ +/* Copyright 2019 Ryota Goto + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* + + Layout + + K000 K001 K002 K003 K004 K005 K006 K007 K008 K009 K010 K011 K012 K013 K212 K014 + K100 K101 K102 K103 K104 K105 K106 K107 K108 K109 K110 K111 K112 K113 K114 + K200 K201 K202 K203 K204 K205 K206 K207 K208 K209 K210 K211 K213 K214 + K300 K301 K302 K303 K304 K305 K306 K307 K308 K309 K310 K311 K313 K314 + K400 K401 K402 K403 K405 K407 K409 K410 K411 K413 K414 + + K212 = Split backspace (bound to Del by default) + K403, K407 = Split space (bound to space by default) + K405 = Main space + + */ + + [0] = LAYOUT( /* Base */ + 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_BSPC, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, + MO(1), 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_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(1), KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( /* FN */ + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, _______, + KC_CAPS, _______, KC_UP, _______, _______, _______, KC_NLCK, KC_P7, KC_P8, KC_P9, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_VOLD, KC_VOLU, KC_P4, KC_P5, KC_P6, _______, _______, _______, _______, + _______, KC_RCTL, KC_RGUI, KC_RALT, _______, _______, KC_P0, KC_P1, KC_P2, KC_P3, _______, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ), + [2] = LAYOUT( /* Blank. For VIA compatibility */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT( /* Blank. For VIA compatibility */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/ai03/lunar/keymaps/via/readme.md b/keyboards/ai03/lunar/keymaps/via/readme.md new file mode 100644 index 00000000000..ff0b73bfcee --- /dev/null +++ b/keyboards/ai03/lunar/keymaps/via/readme.md @@ -0,0 +1,2 @@ +# The VIA keymap for Lunar +This keymap is for compatibility with the VIA configurator. \ No newline at end of file diff --git a/keyboards/ai03/lunar/keymaps/via/rules.mk b/keyboards/ai03/lunar/keymaps/via/rules.mk new file mode 100644 index 00000000000..7c10c3fbbd1 --- /dev/null +++ b/keyboards/ai03/lunar/keymaps/via/rules.mk @@ -0,0 +1,86 @@ +# MCU name +#MCU = at90usb1286 +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 + + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +BOOTLOADER = atmel-dfu + + +# If you don't know the bootloader type, then you can specify the +# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +# OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# 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 = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400) + +SRC += keyboards/wilba_tech/wt_main.c + +RAW_ENABLE = yes +DYNAMIC_KEYMAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/ai03/lunar/lunar.c b/keyboards/ai03/lunar/lunar.c new file mode 100644 index 00000000000..37438c71e61 --- /dev/null +++ b/keyboards/ai03/lunar/lunar.c @@ -0,0 +1,22 @@ +/* Copyright 2019 Ryota Goto + * + * 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 . + */ +#include "lunar.h" + +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/ai03/lunar/lunar.h b/keyboards/ai03/lunar/lunar.h new file mode 100644 index 00000000000..2e66ecb5c56 --- /dev/null +++ b/keyboards/ai03/lunar/lunar.h @@ -0,0 +1,41 @@ +/* Copyright 2019 Ryota Goto + * + * 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 . + */ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K212, K014, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K213, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \ + K400, K401, K402, K403, K405, K407, K409, K410, K411, K413, K414 \ +) \ +{ \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \ + { K400, K401, K402, K403, KC_NO, K405, KC_NO, K407, KC_NO, K409, K410, K411, KC_NO, K413, K414 } \ +} diff --git a/keyboards/ai03/lunar/readme.md b/keyboards/ai03/lunar/readme.md new file mode 100644 index 00000000000..585d6454ba5 --- /dev/null +++ b/keyboards/ai03/lunar/readme.md @@ -0,0 +1,15 @@ +# Lunar + +![Photo](https://i.imgur.com/hYoW8IJ.jpg) + +A 65% keyboard made specifically for Alps SKCM/L switches and AEK/M0116 keycaps. + +Keyboard Maintainer: [ai03](https://github.com/ai03-2725) +Hardware Supported: Official Lunar PCB +Hardware Availability: [Switchplate Peripherals](https://switchplate.co/) + +Make example for this keyboard (after setting up your build environment): + + make ai03/lunar:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/ai03/lunar/rules.mk b/keyboards/ai03/lunar/rules.mk new file mode 100644 index 00000000000..8c2532574a9 --- /dev/null +++ b/keyboards/ai03/lunar/rules.mk @@ -0,0 +1,81 @@ +# MCU name +#MCU = at90usb1286 +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 + + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +BOOTLOADER = atmel-dfu + + +# If you don't know the bootloader type, then you can specify the +# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +# OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# 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 = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400) From 12a2572295ae4daa69299941c0fa491bd6e04669 Mon Sep 17 00:00:00 2001 From: mtei <2170248+mtei@users.noreply.github.com> Date: Tue, 29 Jan 2019 03:23:46 +0900 Subject: [PATCH 05/55] Prevent wasteful writing to eeprom. --- quantum/rgblight.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/quantum/rgblight.c b/quantum/rgblight.c index 23420ddd87d..cf2666eb4b6 100644 --- a/quantum/rgblight.c +++ b/quantum/rgblight.c @@ -128,7 +128,9 @@ uint32_t eeconfig_read_rgblight(void) { } void eeconfig_update_rgblight(uint32_t val) { #ifdef __AVR__ + if (eeconfig_read_rgblight() != val) { eeprom_update_dword(EECONFIG_RGBLIGHT, val); + } #endif } void eeconfig_update_rgblight_default(void) { From d9120412d3d81fc688a7e5346711cf716518dc34 Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Mon, 28 Jan 2019 15:24:34 -0800 Subject: [PATCH 06/55] Fix layouts for S7 Elephant in info.json (#4989) The following layouts were being rendered with 6.75u Spacebars instead of 7u: - LAYOUT_ansi_blocker_7u - LAYOUT_ansi_blocker_7u_small_lshift - LAYOUT_ansi_blocker_7u_small_bspc - LAYOUT_ansi_blocker_7u_small_lshift_small_bspc - LAYOUT_iso_blocker_7u This commit corrects this issue. Flagged by yanfali on QMK Discord. --- keyboards/s7_elephant/info.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/keyboards/s7_elephant/info.json b/keyboards/s7_elephant/info.json index 972f20ce04e..3d45f0b094c 100644 --- a/keyboards/s7_elephant/info.json +++ b/keyboards/s7_elephant/info.json @@ -1322,8 +1322,8 @@ {"label":"Ctrl", "x":2, "y":4, "w":1.5}, {"label":"Win", "x":3.5, "y":4}, {"label":"Alt", "x":4.5, "y":4, "w":1.5}, - {"x":6, "y":4, "w":6.75}, - {"label":"Fn", "x":12.75, "y":4, "w":1.5}, + {"label":"Space", "x":6, "y":4, "w":7}, + {"label":"Fn", "x":13, "y":4, "w":1.5}, {"label":"Left", "x":15, "y":4}, {"label":"Down", "x":16, "y":4}, {"label":"Right", "x":17, "y":4} @@ -1399,8 +1399,8 @@ {"label":"Ctrl", "x":2, "y":4, "w":1.5}, {"label":"Win", "x":3.5, "y":4}, {"label":"Alt", "x":4.5, "y":4, "w":1.5}, - {"x":6, "y":4, "w":6.75}, - {"label":"Fn", "x":12.75, "y":4, "w":1.5}, + {"label":"Space", "x":6, "y":4, "w":7}, + {"label":"Fn", "x":13, "y":4, "w":1.5}, {"label":"Left", "x":15, "y":4}, {"label":"Down", "x":16, "y":4}, {"label":"Right", "x":17, "y":4} @@ -1476,8 +1476,8 @@ {"label":"Ctrl", "x":2, "y":4, "w":1.5}, {"label":"Win", "x":3.5, "y":4}, {"label":"Alt", "x":4.5, "y":4, "w":1.5}, - {"x":6, "y":4, "w":6.75}, - {"label":"Fn", "x":12.75, "y":4, "w":1.5}, + {"label":"Space", "x":6, "y":4, "w":7}, + {"label":"Fn", "x":13, "y":4, "w":1.5}, {"label":"Left", "x":15, "y":4}, {"label":"Down", "x":16, "y":4}, {"label":"Right", "x":17, "y":4} @@ -1554,8 +1554,8 @@ {"label":"Ctrl", "x":2, "y":4, "w":1.5}, {"label":"Win", "x":3.5, "y":4}, {"label":"Alt", "x":4.5, "y":4, "w":1.5}, - {"x":6, "y":4, "w":6.75}, - {"label":"Fn", "x":12.75, "y":4, "w":1.5}, + {"label":"Space", "x":6, "y":4, "w":7}, + {"label":"Fn", "x":13, "y":4, "w":1.5}, {"label":"Left", "x":15, "y":4}, {"label":"Down", "x":16, "y":4}, {"label":"Right", "x":17, "y":4} @@ -2337,8 +2337,8 @@ {"label":"Ctrl", "x":2, "y":4, "w":1.5}, {"label":"Win", "x":3.5, "y":4}, {"label":"Alt", "x":4.5, "y":4, "w":1.5}, - {"x":6, "y":4, "w":6.75}, - {"label":"Fn", "x":12.75, "y":4, "w":1.5}, + {"label":"Space", "x":6, "y":4, "w":7}, + {"label":"Fn", "x":13, "y":4, "w":1.5}, {"label":"Left", "x":15, "y":4}, {"label":"Down", "x":16, "y":4}, {"label":"Right", "x":17, "y":4} From 0f507f01696eae0e8fe808d17a19db3f6d9e2ce4 Mon Sep 17 00:00:00 2001 From: Andrew Kannan Date: Mon, 28 Jan 2019 19:40:02 -0500 Subject: [PATCH 07/55] Practice60 RGB and PWM Backlight (#4929) * Update Practice60 to enable RGB via SPI DMA and use PWM backlight breathing * Correct stm32f103c8t6 flash size in eeprom definition * Remove unused files and improve ifdef checks * Update quantum/rgblight.c Co-Authored-By: awkannan * Update quantum/rgblight.c Co-Authored-By: awkannan * EEPROM implementation fix and updated p60 code * Update define * Remove dead code * Update keymap to remove test key * Update keymap again --- drivers/avr/ws2812.c | 4 +- .../handwired/practice60/bootloader_defs.h | 2 +- keyboards/handwired/practice60/config.h | 13 +- keyboards/handwired/practice60/halconf.h | 2 +- keyboards/handwired/practice60/hsv2rgb.c | 80 ------- keyboards/handwired/practice60/hsv2rgb.h | 23 -- .../practice60/keymaps/default/keymap.c | 6 +- keyboards/handwired/practice60/led.c | 220 +++++++++++++++++- keyboards/handwired/practice60/led_custom.h | 6 + keyboards/handwired/practice60/mcuconf.h | 2 +- keyboards/handwired/practice60/practice60.c | 17 +- keyboards/handwired/practice60/rules.mk | 4 +- keyboards/handwired/practice60/underglow.h | 10 - .../practice60/{underglow.c => ws2812.c} | 115 ++++----- keyboards/handwired/practice60/ws2812.h | 20 ++ quantum/rgblight.c | 11 +- tmk_core/common/chibios/eeprom_stm32.c | 17 +- 17 files changed, 330 insertions(+), 222 deletions(-) delete mode 100644 keyboards/handwired/practice60/hsv2rgb.c delete mode 100644 keyboards/handwired/practice60/hsv2rgb.h create mode 100644 keyboards/handwired/practice60/led_custom.h delete mode 100644 keyboards/handwired/practice60/underglow.h rename keyboards/handwired/practice60/{underglow.c => ws2812.c} (58%) create mode 100644 keyboards/handwired/practice60/ws2812.h diff --git a/drivers/avr/ws2812.c b/drivers/avr/ws2812.c index 59e032bf71c..5bd837ec754 100644 --- a/drivers/avr/ws2812.c +++ b/drivers/avr/ws2812.c @@ -128,11 +128,11 @@ unsigned char I2C_Write(unsigned char c) c <<= 1; } - + I2C_WriteBit(0); _delay_us(I2C_DELAY); _delay_us(I2C_DELAY); - + // _delay_us(I2C_DELAY); //return I2C_ReadBit(); return 0; diff --git a/keyboards/handwired/practice60/bootloader_defs.h b/keyboards/handwired/practice60/bootloader_defs.h index 0f45203cb61..6b8fa9f727c 100644 --- a/keyboards/handwired/practice60/bootloader_defs.h +++ b/keyboards/handwired/practice60/bootloader_defs.h @@ -7,4 +7,4 @@ // STM32F103* does NOT have an USB bootloader in ROM (only serial), // so setting anything here does not make much sense -// #define STM32_BOOTLOADER_ADDRESS 0x1FFFC800 +#define STM32_BOOTLOADER_ADDRESS 0x80000000 diff --git a/keyboards/handwired/practice60/config.h b/keyboards/handwired/practice60/config.h index 648dd62edcf..c015bb74652 100644 --- a/keyboards/handwired/practice60/config.h +++ b/keyboards/handwired/practice60/config.h @@ -35,7 +35,9 @@ along with this program. If not, see . #define MATRIX_ROW_PINS { B3, B4, B5, B6, B7 } #define DIODE_DIRECTION COL2ROW -#define BACKLIGHT_LEVELS 1 +#define BACKLIGHT_LEVELS 6 +#define BACKLIGHT_BREATHING +#define BREATHING_PERIOD 6 /* define if matrix has ghost */ //#define MATRIX_HAS_GHOST @@ -48,6 +50,15 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE +#define RGBLIGHT_ANIMATIONS + +#define WS2812_LED_N 9 +#define RGBLED_NUM WS2812_LED_N +#define PORT_WS2812 GPIOB +#define PIN_WS2812 15 +#define WS2812_SPI SPID2 + + /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/handwired/practice60/halconf.h b/keyboards/handwired/practice60/halconf.h index 5fba285a380..72879a575b9 100644 --- a/keyboards/handwired/practice60/halconf.h +++ b/keyboards/handwired/practice60/halconf.h @@ -111,7 +111,7 @@ * @brief Enables the PWM subsystem. */ #if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM FALSE +#define HAL_USE_PWM TRUE #endif /** diff --git a/keyboards/handwired/practice60/hsv2rgb.c b/keyboards/handwired/practice60/hsv2rgb.c deleted file mode 100644 index adb7af8fa57..00000000000 --- a/keyboards/handwired/practice60/hsv2rgb.c +++ /dev/null @@ -1,80 +0,0 @@ -/* hsv2rgb.c - * Integer only conversion functions between HSV and RGB - */ - -#include "hsv2rgb.h" - -// TODO fix these buggy macros -#define max(x,y) ((x>y) ? x:y) -#define min(x,y) ((x>y) ? y:x) -#define min3(x,y,z) (min(min(x,y),z)) -#define max3(x,y,z) (max(max(x,y),z)) - - -rgb_color hsv2rgb(hsv_color hsv) -{ - // From : http://qscribble.blogspot.fr/2008/06/integer-conversion-from-hsl-to-rgb.html - int h = hsv.h; - int s = hsv.s; - int v = hsv.v; - rgb_color rgb = {0, 0, 0}; - - if (v == 0) - return rgb; - - // sextant = 0 .. 5 - int sextant = (h*6)/256; - // f = 0 .. 42 - int f = h - (sextant*256)/6; - - int p = (v * (256 - s))/256; - int q = (v * (256*43 - s*f))/(256*43); - int t = (v * (256*43 - s*(43-f)))/(256*43); - - // Corrige les erreurs dues aux arrondis - p = max(min(p, 255), 0); - q = max(min(q, 255), 0); - t = max(min(t, 255), 0); - - switch(sextant){ - case 0: rgb.r = v; rgb.g = t; rgb.b = p; break; - case 1: rgb.r = q; rgb.g = v; rgb.b = p; break; - case 2: rgb.r = p; rgb.g = v; rgb.b = t; break; - case 3: rgb.r = p; rgb.g = q; rgb.b = v; break; - case 4: rgb.r = t; rgb.g = p; rgb.b = v; break; - default:rgb.r = v; rgb.g = p; rgb.b = q; break; - } - return rgb; -} - - -hsv_color rgb2hsv(rgb_color rgb) -{ - // From : http://www.ruinelli.ch/rgb-to-hsv - hsv_color hsv = {0, 0, 0}; - int min, max, delta; - - min = min3(rgb.r, rgb.g, rgb.b); - max = max3(rgb.r, rgb.g, rgb.b); - - if(max==0) { - hsv.h = 0; - hsv.s = 0; - hsv.v = 0; - return hsv; - } - - hsv.v = max; - delta = max - min; - - hsv.s = (delta)*255 / max; - - if(rgb.r == max) - hsv.h = (rgb.g - rgb.b)*42/delta; // between yellow & magenta - else if(rgb.g == max) - hsv.h = 120 + (rgb.b - rgb.r)*42/delta; // between cyan & yellow - else - hsv.h = 240 + (rgb.r - rgb.g)*42/delta; // between magenta & cyan - - return hsv; -} \ No newline at end of file diff --git a/keyboards/handwired/practice60/hsv2rgb.h b/keyboards/handwired/practice60/hsv2rgb.h deleted file mode 100644 index 99566c32c07..00000000000 --- a/keyboards/handwired/practice60/hsv2rgb.h +++ /dev/null @@ -1,23 +0,0 @@ -/* hsv2rgb.h - * Convert Hue Saturation Value to Red Green Blue - * - * Programme de convertion d'une information HSV en RGB - */ -#ifndef HSV2RGB_H -#define HSV2RGB_H - -typedef struct { - unsigned char h; - unsigned char s; - unsigned char v; -} hsv_color; - -typedef struct { - unsigned char r; - unsigned char g; - unsigned char b; -} rgb_color; - -rgb_color hsv2rgb(hsv_color hsv); - -#endif \ No newline at end of file diff --git a/keyboards/handwired/practice60/keymaps/default/keymap.c b/keyboards/handwired/practice60/keymaps/default/keymap.c index ac6e7550972..66ebe0646d5 100644 --- a/keyboards/handwired/practice60/keymaps/default/keymap.c +++ b/keyboards/handwired/practice60/keymaps/default/keymap.c @@ -32,16 +32,16 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT_60_ansi( KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MT(MOD_LSFT, KC_Y), KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL ), [_FN1] = LAYOUT_60_ansi( - KC_GESC, 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_BSPC, \ + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \ RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ BL_INC, BL_DEC, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ KC_GRV, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/handwired/practice60/led.c b/keyboards/handwired/practice60/led.c index f15baed169d..a9ede5bbaa8 100644 --- a/keyboards/handwired/practice60/led.c +++ b/keyboards/handwired/practice60/led.c @@ -18,34 +18,240 @@ along with this program. If not, see . #include "hal.h" #include "backlight.h" #include "led.h" +#include "led_custom.h" #include "printf.h" +static void breathing_callback(PWMDriver *pwmp); + +static PWMConfig pwmCFG = { + 0xFFFF, /* PWM clock frequency */ + 256, /* PWM period (in ticks) 1S (1/10kHz=0.1mS 0.1ms*10000 ticks=1S) */ + NULL, /* No Callback */ + { + {PWM_OUTPUT_ACTIVE_HIGH, NULL}, /* Enable Channel 0 */ + {PWM_OUTPUT_DISABLED, NULL}, + {PWM_OUTPUT_DISABLED, NULL}, + {PWM_OUTPUT_DISABLED, NULL} + }, + 0, /* HW dependent part.*/ + 0 +}; + +static PWMConfig pwmCFG_breathing = { + 0xFFFF, /* 10kHz PWM clock frequency */ + 256, /* PWM period (in ticks) 1S (1/10kHz=0.1mS 0.1ms*10000 ticks=1S) */ + breathing_callback, /* Breathing Callback */ + { + {PWM_OUTPUT_ACTIVE_HIGH, NULL}, /* Enable Channel 0 */ + {PWM_OUTPUT_DISABLED, NULL}, + {PWM_OUTPUT_DISABLED, NULL}, + {PWM_OUTPUT_DISABLED, NULL} + }, + 0, /* HW dependent part.*/ + 0 +}; + +// See http://jared.geek.nz/2013/feb/linear-led-pwm +static uint16_t cie_lightness(uint16_t v) { + if (v <= 5243) // if below 8% of max + return v / 9; // same as dividing by 900% + else { + uint32_t y = (((uint32_t) v + 10486) << 8) / (10486 + 0xFFFFUL); // add 16% of max and compare + // to get a useful result with integer division, we shift left in the expression above + // and revert what we've done again after squaring. + y = y * y * y >> 8; + if (y > 0xFFFFUL) // prevent overflow + return 0xFFFFU; + else + return (uint16_t) y; + } +} + + void backlight_init_ports(void) { printf("backlight_init_ports()\n"); #ifdef BACKLIGHT_ENABLE - palSetPadMode(GPIOA, 8, PAL_MODE_OUTPUT_PUSHPULL); - palSetPad(GPIOA, 8); + + palSetPadMode(GPIOA, 8, PAL_MODE_STM32_ALTERNATE_PUSHPULL); + pwmStart(&PWMD1, &pwmCFG); + pwmEnableChannel(&PWMD1, 0, PWM_FRACTION_TO_WIDTH(&PWMD1, 0xFFFF,cie_lightness(0xFFFF))); #endif } void backlight_set(uint8_t level) { printf("backlight_set(%d)\n", level); #ifdef BACKLIGHT_ENABLE + uint32_t duty = (uint32_t)(cie_lightness(0xFFFF * (uint32_t) level / BACKLIGHT_LEVELS)); + printf("duty: (%d)\n", duty); if (level == 0) { // Turn backlight off - palSetPad(GPIOA, 8); + pwmDisableChannel(&PWMD1, 0); } else { - // Turn backlight on - palClearPad(GPIOA, 8); + // Turn backlight on + if(!is_breathing()){ + pwmEnableChannel(&PWMD1, 0, PWM_FRACTION_TO_WIDTH(&PWMD1,0xFFFF,duty)); + } } #endif } + +uint8_t backlight_tick = 0; + +void backlight_task(void) { +} + +#define BREATHING_NO_HALT 0 +#define BREATHING_HALT_OFF 1 +#define BREATHING_HALT_ON 2 +#define BREATHING_STEPS 128 + +static uint8_t breathing_period = BREATHING_PERIOD; +static uint8_t breathing_halt = BREATHING_NO_HALT; +static uint16_t breathing_counter = 0; + +bool is_breathing(void) { + return PWMD1.config == &pwmCFG_breathing; +} + +#define breathing_min() do {breathing_counter = 0;} while (0) +#define breathing_max() do {breathing_counter = breathing_period * 256 / 2;} while (0) + + +void breathing_interrupt_enable(void){ + pwmStop(&PWMD1); + printf("starting with callback\n"); + pwmStart(&PWMD1, &pwmCFG_breathing); + chSysLockFromISR(); + pwmEnablePeriodicNotification(&PWMD1); + pwmEnableChannelI( + &PWMD1, + 0, + PWM_FRACTION_TO_WIDTH( + &PWMD1, + 0xFFFF, + 0xFFFF + ) + ); + chSysUnlockFromISR(); +} + +void breathing_interrupt_disable(void){ + pwmStop(&PWMD1); + printf("starting without callback\n"); + pwmStart(&PWMD1, &pwmCFG); +} + +void breathing_enable(void) +{ + printf("breathing_enable()\n"); + breathing_counter = 0; + breathing_halt = BREATHING_NO_HALT; + breathing_interrupt_enable(); +} + +void breathing_pulse(void) +{ + if (get_backlight_level() == 0) + breathing_min(); + else + breathing_max(); + breathing_halt = BREATHING_HALT_ON; + breathing_interrupt_enable(); +} + +void breathing_disable(void) +{ + printf("breathing_disable()\n"); + breathing_interrupt_disable(); + // Restore backlight level + backlight_set(get_backlight_level()); +} + +void breathing_self_disable(void) +{ + if (get_backlight_level() == 0) + breathing_halt = BREATHING_HALT_OFF; + else + breathing_halt = BREATHING_HALT_ON; +} + +void breathing_toggle(void) { + if (is_breathing()){ + printf("disable breathing\n"); + breathing_disable(); + } else { + printf("enable breathing\n"); + breathing_enable(); + } +} + +void breathing_period_set(uint8_t value) +{ + if (!value) + value = 1; + breathing_period = value; +} + +void breathing_period_default(void) { + breathing_period_set(BREATHING_PERIOD); +} + +void breathing_period_inc(void) +{ + breathing_period_set(breathing_period+1); +} + +void breathing_period_dec(void) +{ + breathing_period_set(breathing_period-1); +} + +/* To generate breathing curve in python: + * from math import sin, pi; [int(sin(x/128.0*pi)**4*255) for x in range(128)] + */ +static const uint8_t breathing_table[BREATHING_STEPS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 3, 4, 5, 6, 8, 10, 12, 15, 17, 20, 24, 28, 32, 36, 41, 46, 51, 57, 63, 70, 76, 83, 91, 98, 106, 113, 121, 129, 138, 146, 154, 162, 170, 178, 185, 193, 200, 207, 213, 220, 225, 231, 235, 240, 244, 247, 250, 252, 253, 254, 255, 254, 253, 252, 250, 247, 244, 240, 235, 231, 225, 220, 213, 207, 200, 193, 185, 178, 170, 162, 154, 146, 138, 129, 121, 113, 106, 98, 91, 83, 76, 70, 63, 57, 51, 46, 41, 36, 32, 28, 24, 20, 17, 15, 12, 10, 8, 6, 5, 4, 3, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + +// Use this before the cie_lightness function. +static inline uint16_t scale_backlight(uint16_t v) { + return v / BACKLIGHT_LEVELS * get_backlight_level(); +} + +static void breathing_callback(PWMDriver *pwmp) +{ + (void)pwmp; + uint16_t interval = (uint16_t) breathing_period * 256 / BREATHING_STEPS; + // resetting after one period to prevent ugly reset at overflow. + breathing_counter = (breathing_counter + 1) % (breathing_period * 256); + uint8_t index = breathing_counter / interval % BREATHING_STEPS; + + if (((breathing_halt == BREATHING_HALT_ON) && (index == BREATHING_STEPS / 2)) || + ((breathing_halt == BREATHING_HALT_OFF) && (index == BREATHING_STEPS - 1))) + { + breathing_interrupt_disable(); + } + + uint32_t duty = cie_lightness(scale_backlight(breathing_table[index] * 256)); + + chSysLockFromISR(); + pwmEnableChannelI( + &PWMD1, + 0, + PWM_FRACTION_TO_WIDTH( + &PWMD1, + 0xFFFF, + duty + ) + ); + chSysUnlockFromISR(); +} + + void led_set(uint8_t usb_led) { if (usb_led & (1< 1tick is 0.32us + PORT_WS2812, + PIN_WS2812, + SPI_CR1_BR_1|SPI_CR1_BR_0 // baudrate : fpclk / 8 => 1tick is 0.32us (2.25 MHz) }; -/* + /* * Function used to initialize the driver. * * Starts by shutting off all the LEDs. @@ -77,21 +60,19 @@ static const SPIConfig spicfg = { * txbuff values) */ void leds_init(void){ + /* MOSI pin*/ + palSetPadMode(PORT_WS2812, PIN_WS2812, PAL_MODE_STM32_ALTERNATE_PUSHPULL); for(int i = 0; i < RESET_SIZE; i++) txbuf[DATA_SIZE+i] = 0x00; for (int i=0; i #include #endif +#ifdef STM32_EEPROM_ENABLE + #include "hal.h" + #include "eeprom.h" + #include "eeprom_stm32.h" +#endif #include "wait.h" #include "progmem.h" #include "timer.h" @@ -120,14 +125,14 @@ void setrgb(uint8_t r, uint8_t g, uint8_t b, LED_TYPE *led1) { uint32_t eeconfig_read_rgblight(void) { - #ifdef __AVR__ + #if defined(__AVR__) || defined(STM32_EEPROM_ENABLE) || defined(PROTOCOL_ARM_ATSAM) || defined(EEPROM_SIZE) return eeprom_read_dword(EECONFIG_RGBLIGHT); #else return 0; #endif } void eeconfig_update_rgblight(uint32_t val) { - #ifdef __AVR__ + #if defined(__AVR__) || defined(STM32_EEPROM_ENABLE) || defined(PROTOCOL_ARM_ATSAM) || defined(EEPROM_SIZE) if (eeconfig_read_rgblight() != val) { eeprom_update_dword(EECONFIG_RGBLIGHT, val); } @@ -333,7 +338,7 @@ void rgblight_disable_noeeprom(void) { #ifdef RGBLIGHT_USE_TIMER rgblight_timer_disable(); #endif - _delay_ms(50); + wait_ms(50); rgblight_set(); } diff --git a/tmk_core/common/chibios/eeprom_stm32.c b/tmk_core/common/chibios/eeprom_stm32.c index a15430d676c..17d38af6a07 100755 --- a/tmk_core/common/chibios/eeprom_stm32.c +++ b/tmk_core/common/chibios/eeprom_stm32.c @@ -75,17 +75,13 @@ uint16_t EEPROM_WriteDataByte (uint16_t Address, uint8_t DataByte) { } // calculate which page is affected (Pagenum1/Pagenum2...PagenumN) - page = (FEE_PAGE_BASE_ADDRESS + FEE_ADDR_OFFSET(Address)) & 0x00000FFF; - - if (page % FEE_PAGE_SIZE) page = page + FEE_PAGE_SIZE; - page = (page / FEE_PAGE_SIZE) - 1; + page = FEE_ADDR_OFFSET(Address) / FEE_PAGE_SIZE; // if current data is 0xFF, the byte is empty, just overwrite with the new one if ((*(__IO uint16_t*)(FEE_PAGE_BASE_ADDRESS + FEE_ADDR_OFFSET(Address))) == FEE_EMPTY_WORD) { FlashStatus = FLASH_ProgramHalfWord(FEE_PAGE_BASE_ADDRESS + FEE_ADDR_OFFSET(Address), (uint16_t)(0x00FF & DataByte)); - } - else { + } else { // Copy Page to a buffer memcpy(DataBuf, (uint8_t*)FEE_PAGE_BASE_ADDRESS + (page * FEE_PAGE_SIZE), FEE_PAGE_SIZE); // !!! Calculate base address for the desired page @@ -96,18 +92,17 @@ uint16_t EEPROM_WriteDataByte (uint16_t Address, uint8_t DataByte) { } // manipulate desired data byte in temp data array if new byte is differ to the current - DataBuf[FEE_ADDR_OFFSET(Address)] = DataByte; + DataBuf[FEE_ADDR_OFFSET(Address) % FEE_PAGE_SIZE] = DataByte; //Erase Page - FlashStatus = FLASH_ErasePage(FEE_PAGE_BASE_ADDRESS + page); + FlashStatus = FLASH_ErasePage(FEE_PAGE_BASE_ADDRESS + (page * FEE_PAGE_SIZE)); - // Write new data (whole page) to flash if data has beed changed + // Write new data (whole page) to flash if data has been changed for(i = 0; i < (FEE_PAGE_SIZE / 2); i++) { if ((__IO uint16_t)(0xFF00 | DataBuf[FEE_ADDR_OFFSET(i)]) != 0xFFFF) { FlashStatus = FLASH_ProgramHalfWord((FEE_PAGE_BASE_ADDRESS + (page * FEE_PAGE_SIZE)) + (i * 2), (uint16_t)(0xFF00 | DataBuf[FEE_ADDR_OFFSET(i)])); } } - } return FlashStatus; } @@ -168,7 +163,7 @@ void eeprom_update_word (uint16_t *Address, uint16_t Value) uint32_t eeprom_read_dword (const uint32_t *Address) { const uint16_t p = (const uint32_t) Address; - return EEPROM_ReadDataByte(p) | (EEPROM_ReadDataByte(p+1) << 8) + return EEPROM_ReadDataByte(p) | (EEPROM_ReadDataByte(p+1) << 8) | (EEPROM_ReadDataByte(p+2) << 16) | (EEPROM_ReadDataByte(p+3) << 24); } From df251d7a1387390383f12b3ff31d71d7e3de5a42 Mon Sep 17 00:00:00 2001 From: Rockman18 Date: Tue, 29 Jan 2019 01:57:56 +0100 Subject: [PATCH 08/55] Backlight - New option : BACKLIGHT_CAPS_LOCK (#4769) * [BACKLIGHT_CAPS_LOCK_INDICATOR] Use backlight toggling as Caps Lock LED I've implemented this feature because S65-X doesn't have LED indicators and the existing led_set_kb(usb_led) function try to use backlight as indicator but that creates an inconsistency with backlight_config state. - define `BACKLIGHT_CAPS_LOCK_INDICATOR` to enable Caps Lock indicator using backlight (for keyboards without dedicated LED) - Don't turn off LED indicators when suspend because backlight is already turned off. Else led_set(0) will turn back on backlight. - Documentation has been updated * [BACKLIGHT_CAPS_LOCK_INDICATOR] Turn off all LED indicators except Caps Lock if BACKLIGHT_CAPS_LOCK_INDICATOR * [BACKLIGHT_CAPS_LOCK] Rename BACKLIGHT_CAPS_LOCK_INDICATOR * [BACKLIGHT_CAPS_LOCK] Use new IS_LED_ON method --- docs/feature_backlight.md | 1 + quantum/quantum.c | 18 ++++++++++++ tmk_core/common/avr/suspend.c | 55 ++++++++++++++++++++--------------- 3 files changed, 50 insertions(+), 24 deletions(-) diff --git a/docs/feature_backlight.md b/docs/feature_backlight.md index f7a35406c7a..c7a1f131ed7 100644 --- a/docs/feature_backlight.md +++ b/docs/feature_backlight.md @@ -40,6 +40,7 @@ To change the behaviour of the backlighting, `#define` these in your `config.h`: |---------------------|-------------|-------------------------------------------------------------------------------------------------------------| |`BACKLIGHT_PIN` |`B7` |The pin that controls the LEDs. Unless you are designing your own keyboard, you shouldn't need to change this| |`BACKLIGHT_LEVELS` |`3` |The number of brightness levels (maximum 15 excluding off) | +|`BACKLIGHT_CAPS_LOCK`|*Not defined*|Enable Caps Lock indicator using backlight (for keyboards without dedicated LED) | |`BACKLIGHT_BREATHING`|*Not defined*|Enable backlight breathing, if hardware PWM is used | |`BREATHING_PERIOD` |`6` |The length of one backlight "breath" in seconds | diff --git a/quantum/quantum.c b/quantum/quantum.c index 5d8ffe34eb8..c1829c7685c 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -1448,6 +1448,24 @@ void led_set(uint8_t usb_led) // PORTE &= ~(1<<6); // } +#if defined(BACKLIGHT_CAPS_LOCK) && defined(BACKLIGHT_ENABLE) + // Use backlight as Caps Lock indicator + uint8_t bl_toggle_lvl = 0; + + if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK) && !backlight_config.enable) { + // Turning Caps Lock ON and backlight is disabled in config + // Toggling backlight to the brightest level + bl_toggle_lvl = BACKLIGHT_LEVELS; + } else if (IS_LED_OFF(usb_led, USB_LED_CAPS_LOCK) && backlight_config.enable) { + // Turning Caps Lock OFF and backlight is enabled in config + // Toggling backlight and restoring config level + bl_toggle_lvl = backlight_config.level; + } + + // Set level without modify backlight_config to keep ability to restore state + backlight_set(bl_toggle_lvl); +#endif + led_set_kb(usb_led); } diff --git a/tmk_core/common/avr/suspend.c b/tmk_core/common/avr/suspend.c index 28219f4ddd7..1194a040ee7 100644 --- a/tmk_core/common/avr/suspend.c +++ b/tmk_core/common/avr/suspend.c @@ -102,24 +102,31 @@ static uint8_t wdt_timeout = 0; */ static void power_down(uint8_t wdto) { #ifdef PROTOCOL_LUFA - if (USB_DeviceState == DEVICE_STATE_Configured) return; + if (USB_DeviceState == DEVICE_STATE_Configured) return; #endif - wdt_timeout = wdto; + wdt_timeout = wdto; - // Watchdog Interrupt Mode - wdt_intr_enable(wdto); + // Watchdog Interrupt Mode + wdt_intr_enable(wdto); #ifdef BACKLIGHT_ENABLE - backlight_set(0); + backlight_set(0); #endif - // Turn off LED indicators - led_set(0); + // Turn off LED indicators + uint8_t leds_off = 0; +#if defined(BACKLIGHT_CAPS_LOCK) && defined(BACKLIGHT_ENABLE) + if (is_backlight_enabled()) { + // Don't try to turn off Caps Lock indicator as it is backlight and backlight is already off + leds_off |= (1< Date: Tue, 29 Jan 2019 02:05:43 +0100 Subject: [PATCH 09/55] [Keyboard] E7-V1 keyboard support (#4965) * Add the e7-v1 keyboard The e7-v1 is a 75% keyboard made by Exclusive based on an Atmega32u4 pub with RGB lights on top and backlighting. This PR add supports for the regular ANSI layout and ANSI split backspace layout. No ISO yet :( * My e7-v1 keymap Difference from base layout: * split backspace * Home & End on last keys of row 0 instead of Insert/Del * Fn is on the End key when hold * supports both a windows/linux keymap and osx keymap * layer change is reflected in the rgb leds of the logo --- keyboards/e7v1/config.h | 47 ++++++ keyboards/e7v1/e7v1.c | 25 ++++ keyboards/e7v1/e7v1.h | 103 +++++++++++++ keyboards/e7v1/keymaps/ansi_splitbs/keymap.c | 37 +++++ keyboards/e7v1/keymaps/ansi_splitbs/readme.md | 5 + keyboards/e7v1/keymaps/default/keymap.c | 37 +++++ keyboards/e7v1/keymaps/default/readme.md | 5 + keyboards/e7v1/keymaps/masterzen/keymap.c | 138 ++++++++++++++++++ keyboards/e7v1/keymaps/masterzen/readme.md | 14 ++ keyboards/e7v1/readme.md | 15 ++ keyboards/e7v1/rules.mk | 54 +++++++ 11 files changed, 480 insertions(+) create mode 100644 keyboards/e7v1/config.h create mode 100644 keyboards/e7v1/e7v1.c create mode 100644 keyboards/e7v1/e7v1.h create mode 100644 keyboards/e7v1/keymaps/ansi_splitbs/keymap.c create mode 100644 keyboards/e7v1/keymaps/ansi_splitbs/readme.md create mode 100644 keyboards/e7v1/keymaps/default/keymap.c create mode 100644 keyboards/e7v1/keymaps/default/readme.md create mode 100644 keyboards/e7v1/keymaps/masterzen/keymap.c create mode 100644 keyboards/e7v1/keymaps/masterzen/readme.md create mode 100644 keyboards/e7v1/readme.md create mode 100644 keyboards/e7v1/rules.mk diff --git a/keyboards/e7v1/config.h b/keyboards/e7v1/config.h new file mode 100644 index 00000000000..653d8740418 --- /dev/null +++ b/keyboards/e7v1/config.h @@ -0,0 +1,47 @@ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x7050 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Exclusive / E - Team +#define PRODUCT E7 - V1 +#define DESCRIPTION E7 - V1 QMK PCB(LED) + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 16 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4, B5 } +#define MATRIX_COL_PINS { B6, D0, D1, D2, D3, D4, D5, D6, D7, C6, C7, F4, F5, F6, F7, F1 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* number of backlight levels */ +#define BACKLIGHT_PIN B7 +#ifdef BACKLIGHT_PIN +#define BACKLIGHT_LEVELS 6 +#endif + +/* 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 + +#define RGB_DI_PIN E6 +#ifdef RGB_DI_PIN +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 20 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#endif diff --git a/keyboards/e7v1/e7v1.c b/keyboards/e7v1/e7v1.c new file mode 100644 index 00000000000..381585e6cfb --- /dev/null +++ b/keyboards/e7v1/e7v1.c @@ -0,0 +1,25 @@ +#include "e7v1.h" + +void matrix_init_kb(void) { + setPinOutput(F0); + matrix_init_user(); +} + +void matrix_scan_kb(void) { + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + return process_record_user(keycode, record); +} + +void led_set_kb(uint8_t usb_led) { + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + writePinHigh(F0); + } else { + writePinLow(F0); + } + + led_set_user(usb_led); +} + diff --git a/keyboards/e7v1/e7v1.h b/keyboards/e7v1/e7v1.h new file mode 100644 index 00000000000..45ef519cd08 --- /dev/null +++ b/keyboards/e7v1/e7v1.h @@ -0,0 +1,103 @@ +#pragma once + +#include "quantum.h" + +// layout with all the switches supported by the PCB +#define LAYOUT_all( \ + K000, K001, K002, K003, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, \ + K500, K501, K502, K505, K510, K511, K512, K513, K514, K515 \ +) { \ + { K000, K001, K002, K003, KC_NO, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ + { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, KC_NO }, \ + { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, KC_NO }, \ + { K500, K501, K502, KC_NO, KC_NO, K505, KC_NO, KC_NO, KC_NO, KC_NO, K510, KC_NO, K512, K513, K514, K515 } \ +} + +#define LAYOUT_75_ansi( \ + K000, K001, K002, K003, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, \ + K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, \ + K500, K501, K502, K505, K510, K512, K513, K514, K515 \ +) { \ + { K000, K001, K002, K003, KC_NO, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ + { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, KC_NO }, \ + { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, KC_NO }, \ + { K500, K501, K502, KC_NO, KC_NO, K505, KC_NO, KC_NO, KC_NO, KC_NO, K510, KC_NO, K512, K513, K514, K515 } \ +} + +// Ansi layout with a 7u space bar +#define LAYOUT_75_ansi_7u( \ + K000, K001, K002, K003, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, \ + K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, \ + K500, K501, K505, K510, K512, K513, K514, K515 \ +) { \ + { K000, K001, K002, K003, KC_NO, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ + { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, KC_NO }, \ + { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, KC_NO }, \ + { K500, K501, KC_NO, KC_NO, KC_NO, K505, KC_NO, KC_NO, KC_NO, KC_NO, K510, KC_NO, K512, K513, K514, K515 } \ +} + +// ANSI layout with split backspace +#define LAYOUT_75_ansi_splitbs( \ + K000, K001, K002, K003, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, \ + K400 , K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, \ + K500, K501, K502, K505, K510, K512, K513, K514, K515 \ +) { \ + { K000, K001, K002, K003, KC_NO, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ + { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, KC_NO }, \ + { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, KC_NO }, \ + { K500, K501, K502, KC_NO, KC_NO, K505, KC_NO, KC_NO, KC_NO, KC_NO, K510, KC_NO, K512, K513, K514, K515 } \ +} + +// ANSI layout with split backspace +#define LAYOUT_75_ansi_7u_splitbs( \ + K000, K001, K002, K003, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, \ + K400 , K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, \ + K500, K501, K505, K510, K512, K513, K514, K515 \ +) { \ + { K000, K001, K002, K003, KC_NO, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ + { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, KC_NO }, \ + { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, KC_NO }, \ + { K500, K501, KC_NO, KC_NO, KC_NO, K505, KC_NO, KC_NO, KC_NO, KC_NO, K510, KC_NO, K512, K513, K514, K515 } \ +} + +#define LAYOUT_75_iso( \ + K000, K001, K002, K003, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, \ + K500, K501, K502, K505, K510, K512, K513, K514, K515 \ +) { \ + { K000, K001, K002, K003, KC_NO, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO, K215 }, \ + { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, KC_NO }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, KC_NO }, \ + { K500, K501, K502, KC_NO, KC_NO, K505, KC_NO, KC_NO, KC_NO, KC_NO, K510, KC_NO, K512, K513, K514, K515 } \ +} diff --git a/keyboards/e7v1/keymaps/ansi_splitbs/keymap.c b/keyboards/e7v1/keymaps/ansi_splitbs/keymap.c new file mode 100644 index 00000000000..242020b20a5 --- /dev/null +++ b/keyboards/e7v1/keymaps/ansi_splitbs/keymap.c @@ -0,0 +1,37 @@ +#include QMK_KEYBOARD_H + +/* + * ,---------------------------------------------------------------------| + * |Esc|▓|F1 |F2 |F3 |F4 |▓|F5 |F6 |F7 |F8 |▓|F9 |F10|F11|F12|▓|Ins|▓|Del| + * |---------------------------------------------------------------------| + * |` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= |\ |Del|▓PgU | + * |---------------------------------------------------------------------| + * |Tab |Q |W |E |R |T |Y |U |I |O |P |[ | ] | BSpc|▓PgDn| + * |---------------------------------------------------------------------| + * |Caps |A |S |D |F |G |H |J |K |L |; |' | Enter |▓▓▓▓▓▓▓| + * |---------------------------------------------------------------------| + * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |▓| Up |▓▓| + * |---------------------------------------------------------------------| + * |Ctrl|GUI |Alt | Space |Alt |Fn |▓|Lt |Dn |Rt | + * `---------------------------------------------------------------------|' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_75_ansi_splitbs( + 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_INS, KC_DEL, + KC_GRV, 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_DEL, KC_PGUP, + 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_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT,KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + [1] = LAYOUT_75_ansi_splitbs( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, BL_DEC, BL_INC, KC_LGUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, MO(1), RGB_MOD, RGB_VAD, RGB_HUD), + + +}; diff --git a/keyboards/e7v1/keymaps/ansi_splitbs/readme.md b/keyboards/e7v1/keymaps/ansi_splitbs/readme.md new file mode 100644 index 00000000000..be9f4c312e2 --- /dev/null +++ b/keyboards/e7v1/keymaps/ansi_splitbs/readme.md @@ -0,0 +1,5 @@ +# ANSI split backspace Keymap + +Split backspace ANSI keymap with a base layer and an adjust layer. + +Keymap Maintainer: [masterzen](https://github.com/amnesia0287) diff --git a/keyboards/e7v1/keymaps/default/keymap.c b/keyboards/e7v1/keymaps/default/keymap.c new file mode 100644 index 00000000000..189c01eca29 --- /dev/null +++ b/keyboards/e7v1/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +#include QMK_KEYBOARD_H + +/* + * ,---------------------------------------------------------------------| + * |Esc|▓|F1 |F2 |F3 |F4 |▓|F5 |F6 |F7 |F8 |▓|F9 |F10|F11|F12|▓|Ins|▓|Del| + * |---------------------------------------------------------------------| + * |` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= |Backspace|▓PgU | + * |---------------------------------------------------------------------| + * |Tab |Q |W |E |R |T |Y |U |I |O |P |[ | ] | \ |▓PgDn| + * |---------------------------------------------------------------------| + * |Caps |A |S |D |F |G |H |J |K |L |; |' | Enter |▓▓▓▓▓▓▓| + * |---------------------------------------------------------------------| + * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |▓| Up |▓▓| + * |---------------------------------------------------------------------| + * |Ctrl|GUI |Alt | Space |Alt |Fn |▓|Lt |Dn |Rt | + * `---------------------------------------------------------------------|' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_75_ansi( + 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_INS, KC_DEL, + KC_GRV, 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_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT,KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + [1] = LAYOUT_75_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, BL_DEC, BL_INC, KC_LGUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, MO(1), RGB_MOD, RGB_VAD, RGB_HUD), + + +}; diff --git a/keyboards/e7v1/keymaps/default/readme.md b/keyboards/e7v1/keymaps/default/readme.md new file mode 100644 index 00000000000..a6fc70a6aa8 --- /dev/null +++ b/keyboards/e7v1/keymaps/default/readme.md @@ -0,0 +1,5 @@ +# Default Keymap + +Default ANSI keymap with a base layer and an adjust layer. + +Keymap Maintainer: [masterzen](https://github.com/amnesia0287) diff --git a/keyboards/e7v1/keymaps/masterzen/keymap.c b/keyboards/e7v1/keymaps/masterzen/keymap.c new file mode 100644 index 00000000000..61a41f629ca --- /dev/null +++ b/keyboards/e7v1/keymaps/masterzen/keymap.c @@ -0,0 +1,138 @@ +#include QMK_KEYBOARD_H + +enum layers { + BASE, // qwerty linux + OSX, // qwerty osx + + _ADJUST, // function key layer +}; + +enum keycodes { + // default layout switcher + LAY_LIN = SAFE_RANGE, + LAY_OSX +}; + +/* + * ,---------------------------------------------------------------------| + * |Esc|▓|F1 |F2 |F3 |F4 |▓|F5 |F6 |F7 |F8 |▓|F9 |F10|F11|F12|▓|Hom|▓|End| + * |---------------------------------------------------------------------| + * |` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= |\ |Del|▓PgU | + * |---------------------------------------------------------------------| + * |Tab |Q |W |E |R |T |Y |U |I |O |P |[ | ] | BSpc|▓PgDn| + * |---------------------------------------------------------------------| + * |LCTRL |A |S |D |F |G |H |J |K |L |; |' | Enter |▓▓▓▓▓▓▓| + * |---------------------------------------------------------------------| + * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |▓| Up |▓▓| + * |---------------------------------------------------------------------| + * |Ctrl|GUI |Alt | Space |Alt |Fn |▓|Lt |Dn |Rt | + * `---------------------------------------------------------------------|' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = LAYOUT_75_ansi_splitbs( + 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_HOME, LT(_ADJUST,KC_END), + KC_GRV, 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_DEL, KC_PGUP, + 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_PGDN, + 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, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT), + + [OSX] = LAYOUT_75_ansi_splitbs( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_LCTL, KC_LALT, KC_LGUI, _______, KC_LGUI, KC_RALT, _______, _______, _______), + + [_ADJUST] = LAYOUT_75_ansi_splitbs( + RESET, LAY_LIN, LAY_OSX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(_ADJUST), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, BL_DEC, BL_INC, KC_LGUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_VAD, RGB_HUD), + + +}; + +extern rgblight_config_t rgblight_config; + +bool edit = false; +uint32_t mode; +uint16_t hue; +uint8_t sat; +uint8_t val; + +void matrix_init_user(void) +{ + mode = rgblight_config.mode; +} + + +void persistent_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) + { + /* layout switcher */ + case LAY_LIN: + if (record->event.pressed) + { + persistent_default_layer_set(1UL << BASE); + } + return false; + break; + case LAY_OSX: + if (record->event.pressed) + { + persistent_default_layer_set(1UL << OSX); + } + return false; + break; + case RGB_MOD: + // allows to set the rgb mode while in the ADJUST layer which uses + // its own mode + if (record->event.pressed) + { + rgblight_mode(mode); + rgblight_step(); + mode = rgblight_config.mode; + } + return false; + break; + } + return true; +} + +uint32_t layer_state_set_user(uint32_t state) +{ + if (state == BASE && edit == true) + { + hue = rgblight_get_hue(); + sat = rgblight_get_sat(); + val = rgblight_get_val(); + edit = false; + } + + switch (biton32(state)) + { + case _ADJUST: + mode = rgblight_get_mode(); + rgblight_mode_noeeprom(1); + rgblight_setrgb(0xD3, 0x7F, 0xED); + edit = true; + break; + default: + rgblight_mode(mode); + rgblight_sethsv(hue, sat, val); + break; + } + return state; +} diff --git a/keyboards/e7v1/keymaps/masterzen/readme.md b/keyboards/e7v1/keymaps/masterzen/readme.md new file mode 100644 index 00000000000..ee4f2a531f5 --- /dev/null +++ b/keyboards/e7v1/keymaps/masterzen/readme.md @@ -0,0 +1,14 @@ +# masterzen's Keymap + +![masterzen keymap Layout Image](https://imgur.com/SF4UP2j) + +Keymap Maintainer: [masterzen](https://github.com/masterzen) + + +Difference from base layout: + * split backspace + * Home & End on last keys of row 0 instead of Insert/Del + * Fn is on the End key when hold + * supports both a windows/linux keymap and osx keymap + * layer change is reflected in the rgb leds of the logo + diff --git a/keyboards/e7v1/readme.md b/keyboards/e7v1/readme.md new file mode 100644 index 00000000000..6224694b4ff --- /dev/null +++ b/keyboards/e7v1/readme.md @@ -0,0 +1,15 @@ +# E7-V1 + +![E7-V1](https://imgur.com/a/5v5pV9U) + +A 75% keyboard made by Exclusive and run in a Geekhack group buy. + +Keyboard Maintainer: [masterzen](https://github.com/masterzen) +Hardware Supported: E7 - V1 QMK PCB LED +Hardware Availability: [https://geekhack.org/index.php?topic=97182.msg2654226#msg2654226](https://geekhack.org/index.php?topic=97182.msg2654226#msg2654226) + +Make example for this keyboard (after setting up your build environment): + + make e7v1:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/e7v1/rules.mk b/keyboards/e7v1/rules.mk new file mode 100644 index 00000000000..f903df7de52 --- /dev/null +++ b/keyboards/e7v1/rules.mk @@ -0,0 +1,54 @@ +# MCU name +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 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = full # 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 +SLEEP_LED_ENABLE = no # 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 +AUDIO_ENABLE = no +RGBLIGHT_ENABLE = yes From 02180c87f2618d6be33f0c171b48418e2b88c800 Mon Sep 17 00:00:00 2001 From: noroadsleft <18669334+noroadsleft@users.noreply.github.com> Date: Mon, 28 Jan 2019 17:09:58 -0800 Subject: [PATCH 10/55] handwired/space_oddity: refactor, Configurator support and readme cleanup (#4977) * handwired/space_oddity: refactor - config.h: updated to use #pragma once include guard - rules.mk: replace `?=` with `=` - space_oddity.h: - updated to use #pragma once include guard - layout macro KEYMAP renamed to LAYOUT - default keymap: - updated to use #include QMK_KEYBOARD_H - replace references to Planck keycodes - replace fn_actions-powered layer switch keycode - rebuild keymap block comments - keymap layers now use short-form keycodes - refactor action_get_macro keycodes into process_record_user * handwired/space_oddity: Configurator support * handwired/space_oddity: readme cleanup - update readme to better conform with QMK template - fixed the make command. --- keyboards/handwired/space_oddity/config.h | 5 +- keyboards/handwired/space_oddity/info.json | 78 +++++ .../space_oddity/keymaps/default/keymap.c | 326 +++++++++--------- keyboards/handwired/space_oddity/readme.md | 23 +- keyboards/handwired/space_oddity/rules.mk | 22 +- .../handwired/space_oddity/space_oddity.h | 7 +- 6 files changed, 269 insertions(+), 192 deletions(-) create mode 100644 keyboards/handwired/space_oddity/info.json diff --git a/keyboards/handwired/space_oddity/config.h b/keyboards/handwired/space_oddity/config.h index aae53e98108..83221642322 100644 --- a/keyboards/handwired/space_oddity/config.h +++ b/keyboards/handwired/space_oddity/config.h @@ -1,5 +1,4 @@ -#ifndef CONFIG_H -#define CONFIG_H +#pragma once #include "config_common.h" @@ -51,5 +50,3 @@ #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 #endif - -#endif diff --git a/keyboards/handwired/space_oddity/info.json b/keyboards/handwired/space_oddity/info.json new file mode 100644 index 00000000000..37e24b33c48 --- /dev/null +++ b/keyboards/handwired/space_oddity/info.json @@ -0,0 +1,78 @@ +{ + "keyboard_name": "Space Oddity", + "url": "", + "maintainer": "qmk", + "width": 14, + "height": 6, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"Macro 0", "x":0, "y":0, "w":2}, + {"label":"Macro 1", "x":2, "y":0, "w":2}, + {"label":"Macro 2", "x":4, "y":0, "w":2}, + {"label":"Macro 3", "x":6, "y":0, "w":2}, + {"label":"Macro 4", "x":8, "y":0, "w":2}, + {"label":"Dynamic Macro 1", "x":10, "y":0, "w":2}, + {"label":"Dynamic Macro 2", "x":12, "y":0, "w":2}, + {"label":"~", "x":0, "y":1, "w":2}, + {"label":"!", "x":2, "y":1}, + {"label":"@", "x":3, "y":1}, + {"label":"#", "x":4, "y":1}, + {"label":"$", "x":5, "y":1}, + {"label":"%", "x":6, "y":1}, + {"label":"^", "x":7, "y":1}, + {"label":"&", "x":8, "y":1}, + {"label":"*", "x":9, "y":1}, + {"label":"(", "x":10, "y":1}, + {"label":")", "x":11, "y":1}, + {"label":"Backspace", "x":12, "y":1, "w":2}, + {"label":"Tab", "x":0, "y":2, "w":2}, + {"label":"Q", "x":2, "y":2}, + {"label":"W", "x":3, "y":2}, + {"label":"E", "x":4, "y":2}, + {"label":"R", "x":5, "y":2}, + {"label":"T", "x":6, "y":2}, + {"label":"Y", "x":7, "y":2}, + {"label":"U", "x":8, "y":2}, + {"label":"I", "x":9, "y":2}, + {"label":"O", "x":10, "y":2}, + {"label":"P", "x":11, "y":2}, + {"label":"_", "x":12, "y":2, "w":2}, + {"label":"Esc (Ctrl)", "x":0, "y":3, "w":2}, + {"label":"A", "x":2, "y":3}, + {"label":"S", "x":3, "y":3}, + {"label":"D", "x":4, "y":3}, + {"label":"F", "x":5, "y":3}, + {"label":"G", "x":6, "y":3}, + {"label":"H", "x":7, "y":3}, + {"label":"J", "x":8, "y":3}, + {"label":"K", "x":9, "y":3}, + {"label":"L", "x":10, "y":3}, + {"label":":", "x":11, "y":3}, + {"label":"\"", "x":12, "y":3, "w":2}, + {"label":"Caps Lock (Shift)", "x":0.25, "y":4, "w":1.75}, + {"label":"Z", "x":2, "y":4}, + {"label":"X", "x":3, "y":4}, + {"label":"C", "x":4, "y":4}, + {"label":"V", "x":5, "y":4}, + {"label":"B", "x":6, "y":4}, + {"label":"N", "x":7, "y":4}, + {"label":"M", "x":8, "y":4}, + {"label":"<", "x":9, "y":4}, + {"label":">", "x":10, "y":4}, + {"label":"?", "x":11, "y":4}, + {"label":"Enter (Shift)", "x":12, "y":4, "w":1.75}, + {"label":"MO(2)", "x":1, "y":5}, + {"label":"MO(1)", "x":2, "y":5}, + {"label":"GUI", "x":3, "y":5}, + {"label":"Alt", "x":4, "y":5}, + {"label":"Ctrl", "x":5, "y":5, "w":2}, + {"label":"Space", "x":7, "y":5, "w":2}, + {"label":"Left (Alt)", "x":9, "y":5}, + {"label":"Right (Hyper)", "x":10, "y":5}, + {"label":"Up (MO(1))", "x":11, "y":5}, + {"label":"Down (MO(2))", "x":12, "y":5} + ] + } + } +} diff --git a/keyboards/handwired/space_oddity/keymaps/default/keymap.c b/keyboards/handwired/space_oddity/keymaps/default/keymap.c index 4230cdf8dbd..6e42a281515 100644 --- a/keyboards/handwired/space_oddity/keymaps/default/keymap.c +++ b/keyboards/handwired/space_oddity/keymaps/default/keymap.c @@ -15,12 +15,16 @@ along with this program. If not, see . */ -#include "space_oddity.h" +#include QMK_KEYBOARD_H -// Planck keycodes needed for dynamic macros. -enum planck_keycodes { +// Custom keycodes needed for dynamic macros. +enum custom_keycodes { QWERTY = SAFE_RANGE, + PAIR_PR, + PAIR_BR, + PAIR_CB, + LAMBDA, DYNAMIC_MACRO_RANGE, }; @@ -36,13 +40,6 @@ enum { #define MOUSE_LAYER 2 -// Toggle MOUSE_LAYER. Additional layers can be added for additional layouts or other special functions. -const uint16_t PROGMEM fn_actions[] = { - - [2] = ACTION_LAYER_TOGGLE(MOUSE_LAYER), - -}; - // Tap dance actions - double tap for Caps Lock. qk_tap_dance_action_t tap_dance_actions[] = { @@ -52,186 +49,185 @@ qk_tap_dance_action_t tap_dance_actions[] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Here is an ASCII version of the base layout. Note that Dynamic Macros 1 and 2 are considered Macro 5 and Macro 6. - - ___________________________________________________________________________________ - | | | | | | Dynamic | Dynamic | - | Macro 0 | Macro 1 | Macro 2 | Macro 3 | Macro 4 | Macro 1 | Macro 2 | - |___________|___________|___________|___________|___________|___________|___________| - | | | | | | | | | | | | | - | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | BKSP | - |___________|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|___________| - | | | | | | | | | | | | | - | TAB | Q | W | E | R | T | Y | U | I | O | P | - | - |___________|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|___________| - | | | | | | | | | | | | | - |ESC (CTL_T)| A | S | D | F | G | H | J | K | L | ; | ' | - |___________|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|___________| - | | | | | | | | | | | | | - | SHFT | Z | X | C | V | B | N | M | , | . | / |SHFT(ENT)| - |_________|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_________| - | | | | | | | ALT | HYP | LT 1| LT 2| - | M2 | M1 | GUI | ALT | CTRL | SPC |(LFT)|(RGT)| (UP)|(DWN)| - |_____|_____|_____|_____|___________|___________|_____|_____|_____|_____| - */ - - KEYMAP( - M(0), M(1), M(2), M(3), M(4), DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, - 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, - CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - TD(SFT_CAPS), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT), - MO(2), MO(1), KC_LGUI, KC_RALT, KC_LCTRL, KC_SPC, ALT_T(KC_LEFT), ALL_T(KC_RGHT), LT(1, KC_UP), LT(2, KC_DOWN)), - - /* Function layer. - Blank keys correspond to the KC_TRNS keycode. - - ___________________________________________________________________________________ - | | | | | | DYN REC | DYN REC | - | Macro 7 | | | | | 1 | 2 | - |___________|___________|___________|___________|___________|___________|___________| - | DYN REC | | | | | | | | | | | | - | STOP | F1 | F2 | F3 | F4 | F5 | [ | 7 | 8 | 9 | * | DEL | - |___________|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|___________| - | | | | | | | | | | | | | - | | F6 | F7 | F8 | F9 | F10 | ] | 4 | 5 | 6 | + | = | - |___________|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|___________| - | | | | | | | | | | | | | - | \ | F11 | F12 | F13 | F14 | F15 | { | 1 | 2 | 3 | - | | | - |___________|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|___________| - | | | | | | | | | | | | | - | | F16 | F17 | F18 | F19 | F20 | } | 0 | , | . | / | | - |_________|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_________| - | | | | | | | | | | | - | | | | | | | | | | | - |_____|_____|_____|_____|___________|___________|_____|_____|_____|_____| - + /* Here is an ASCII version of the base layout. Note that Dynamic Macros 1 and 2 are considered Macro 5 and Macro 6. + * + * ___________________________________________________________________________________ + * | | | | | | Dynamic | Dynamic | + * | () | [] | {} | NO OP | NO OP | Macro 1 | Macro 2 | + * |___________|___________|___________|___________|___________|___________|___________| + * | | | | | | | | | | | | | + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | BKSP | + * |___________|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|___________| + * | | | | | | | | | | | | | + * | TAB | Q | W | E | R | T | Y | U | I | O | P | - | + * |___________|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|___________| + * | | | | | | | | | | | | | + * |ESC (CTL_T)| A | S | D | F | G | H | J | K | L | ; | ' | + * |___________|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|___________| + * | | | | | | | | | | | | | + * | SHFT | Z | X | C | V | B | N | M | , | . | / |SHFT(ENT)| + * |_________|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_________| + * | | | | | | | ALT | HYP | LT 1| LT 2| + * |MO(2)|MO(1)| GUI | ALT | CTRL | SPC |(LFT)|(RGT)| (UP)|(DWN)| + * |_____|_____|_____|_____|___________|___________|_____|_____|_____|_____| */ - - KEYMAP( - M(7), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DYN_REC_START1, DYN_REC_START2, - DYN_REC_STOP, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LBRC, KC_P7, KC_P8, KC_P9, KC_ASTR, KC_DEL, - KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_RBRC, KC_P4, KC_P5, KC_P6, KC_PLUS, KC_EQL, - KC_BSLS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_LCBR, KC_P1, KC_P2, KC_P3, KC_MINS, KC_PIPE, - KC_TRNS, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_RCBR, KC_P0, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - /* Mouse layer. - - ___________________________________________________________________________________ - | | | | | | | | - | | | | | | | | - |___________|___________|___________|___________|___________|___________|___________| - | | | | MS | | | | | | | | | - | | | | UP | | | | | | | | | - |___________|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|___________| - | | | MS | MS | MS | | | | | | | | - | | | LFT | DWN | RGT | | | MS1 | MS3 | MS2 | | | - |___________|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|___________| - | | | | | | | | | | | | | - | | | | | | | | | | | | | - |___________|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|___________| - | | | | | | | | | | | | | - | |RESET| | | | | | | | | | | - |_________|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_________| - | | | | | | | | | | | - | | | | | | | | | | F(2)| - |_____|_____|_____|_____|___________|___________|_____|_____|_____|_____| + [0] = LAYOUT( \ + PAIR_PR, PAIR_BR, PAIR_CB, XXXXXXX, XXXXXXX, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, \ + 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, \ + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + TD(SFT_CAPS), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT), \ + MO(2), MO(1), KC_LGUI, KC_RALT, KC_LCTL, KC_SPC, ALT_T(KC_LEFT), ALL_T(KC_RGHT), LT(1, KC_UP), LT(2, KC_DOWN) \ + ), + /* Function layer. + * Blank keys correspond to the KC_TRNS keycode. + * + * ___________________________________________________________________________________ + * | | | | | | DYN REC | DYN REC | + * | LAMBDA | | | | | 1 | 2 | + * |___________|___________|___________|___________|___________|___________|___________| + * | DYN REC | | | | | | | | | | | | + * | STOP | F1 | F2 | F3 | F4 | F5 | [ | 7 | 8 | 9 | * | DEL | + * |___________|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|___________| + * | | | | | | | | | | | | | + * | | F6 | F7 | F8 | F9 | F10 | ] | 4 | 5 | 6 | + | = | + * |___________|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|___________| + * | | | | | | | | | | | | | + * | \ | F11 | F12 | F13 | F14 | F15 | { | 1 | 2 | 3 | - | | | + * |___________|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|___________| + * | | | | | | | | | | | | | + * | | F16 | F17 | F18 | F19 | F20 | } | 0 | , | . | / | | + * |_________|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_________| + * | | | | | | | | | | | + * | | | | | | | | | | | + * |_____|_____|_____|_____|___________|___________|_____|_____|_____|_____| + * */ - - KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS, KC_TRNS, KC_MS_BTN1, KC_MS_BTN3, KC_MS_BTN2, KC_TRNS, KC_TRNS, - KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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(2)) + + [1] = LAYOUT( \ + LAMBDA, _______, _______, _______, _______, DYN_REC_START1, DYN_REC_START2, \ + DYN_REC_STOP, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LBRC, KC_P7, KC_P8, KC_P9, KC_ASTR, KC_DEL, \ + _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_RBRC, KC_P4, KC_P5, KC_P6, KC_PLUS, KC_EQL, \ + KC_BSLS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_LCBR, KC_P1, KC_P2, KC_P3, KC_MINS, KC_PIPE, \ + _______, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_RCBR, KC_P0, KC_COMM, KC_DOT, KC_SLSH, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + ), + + /* Mouse layer. + * + * ___________________________________________________________________________________ + * | | | | | | | | + * | | | | | | | | + * |___________|___________|___________|___________|___________|___________|___________| + * | | | | MS | | | | | | | | | + * | | | | UP | | | | | | | | | + * |___________|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|___________| + * | | | MS | MS | MS | | | | | | | | + * | | | LFT | DWN | RGT | | | MS1 | MS3 | MS2 | | | + * |___________|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|___________| + * | | | | | | | | | | | | | + * | | | | | | | | | | | | | + * |___________|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|___________| + * | | | | | | | | | | | | | + * | |RESET| | | | | | | | | | | + * |_________|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_________| + * | | | | | | | | | | | + * | | | | | | | | | | F(2)| + * |_____|_____|_____|_____|___________|___________|_____|_____|_____|_____| + * + */ + + [2] = LAYOUT( \ + _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, KC_MS_U, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_BTN1, KC_BTN3, KC_BTN2, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, TG(2) \ + ) }; -// Simple macro ideas follow. Each of them is designed to give you a quick way to create pairs of -// delimiters and then position the cursor between them, much like Emacs' ParEdit does. This way, -// you can have some convenient coding "helpers" even when not using Emacs. It is also nice for -// LaTeX editing. -// -// Customize to your heart's content! -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("()"SS_TAP(X_LEFT)); - } - break; - - case 1: - if (record->event.pressed) { - SEND_STRING("[]"SS_TAP(X_LEFT)); - } - break; - - case 2: - if (record->event.pressed) { - SEND_STRING("{}"SS_TAP(X_LEFT)); - } - break; - - // Probably something only Lisp users will appreciate... - case 7: - if (record->event.pressed) { - SEND_STRING("(lambda ())"SS_TAP(X_LEFT)SS_TAP(X_LEFT)); - } - break; - } - - return MACRO_NONE; - -} - void matrix_init_user(void) { } void matrix_scan_user(void) { } +// Simple macro ideas follow. Each of them is designed to give you a quick way to create pairs of +// delimiters and then position the cursor between them, much like Emacs' ParEdit does. This way, +// you can have some convenient coding "helpers" even when not using Emacs. It is also nice for +// LaTeX editing. +// +// Customize to your heart's content! bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (!process_record_dynamic_macro(keycode, record)) { return false; } + + switch (keycode) { + + case PAIR_PR: + if (record->event.pressed) { + SEND_STRING("()"SS_TAP(X_LEFT)); + } + return false; + + case PAIR_BR: + if (record->event.pressed) { + SEND_STRING("[]"SS_TAP(X_LEFT)); + } + return false; + + case PAIR_CB: + if (record->event.pressed) { + SEND_STRING("{}"SS_TAP(X_LEFT)); + } + return false; + + // Probably something only Lisp users will appreciate... + case LAMBDA: + if (record->event.pressed) { + SEND_STRING("(lambda ())"SS_TAP(X_LEFT)SS_TAP(X_LEFT)); + } + return false; + } + return true; } void led_set_user(uint8_t usb_led) { - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - - } else { - - } + if (usb_led & (1 << USB_LED_NUM_LOCK)) { - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - - } else { - - } + } else { - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - - } else { - - } + } - if (usb_led & (1 << USB_LED_COMPOSE)) { - - } else { - - } + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - if (usb_led & (1 << USB_LED_KANA)) { - - } else { - - } + } else { + + } + + if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_COMPOSE)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_KANA)) { + + } else { + + } } diff --git a/keyboards/handwired/space_oddity/readme.md b/keyboards/handwired/space_oddity/readme.md index 07ec957faf4..2997833f098 100644 --- a/keyboards/handwired/space_oddity/readme.md +++ b/keyboards/handwired/space_oddity/readme.md @@ -1,5 +1,6 @@ -Space Oddity Keyboard -===================== +# Space Oddity Keyboard + +![Space Oddity](https://i.imgur.com/dE9Y4XK.jpg) This firmware is for an Emacs-focused handwired custom keyboard using an Arduino Pro Micro. @@ -7,7 +8,10 @@ As originally designed, the top row consists of 2u keys which are used for user- Some simple example macros are included. To add your own, just add the number of the macro you want in the appropriate section. -A picture of the finished product can be found here: https://imgur.com/dE9Y4XK +This design was conceived by James Taylor. Any requests for further information, suggestions, and/or tips for building your own are welcome! + +Keyboard Maintainer: [James Taylor](https://github.com/broken-username) +Hardware Supported: Arduino Pro Micro ## Pinout @@ -15,11 +19,16 @@ The following pins are used: - Columns 1-12: B2, B6, B5, B4, E6, D7, C6, D4, D0, D1, D2, D3 - Rows 1-6: F4, F5, F6, F7, B1, B3 -## Compiling and loading the firmware +## Flashing -To build the firmware, run `make handwired/space_oddity` from the toplevel directory. +Make example for this keyboard (after setting up your build environment): -On GNU/Linux, you can flash the default layout onto the microcontroller by using `avrdude -p atmega32u4 -P /dev/ttyACM0 -c avr109 -U flash:w:handwired_space_oddity_default.hex`. Note that the device name under `/dev` may be different. + make handwired/space_oddity:default +On GNU/Linux, you can flash the default layout onto the microcontroller by using -This design was conceived by James Taylor. Any requests for further information, suggestions, and/or tips for building your own are welcome! \ No newline at end of file + avrdude -p atmega32u4 -P /dev/ttyACM0 -c avr109 -U flash:w:handwired_space_oddity_default.hex + +Note that the device name under `/dev` may be different. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/handwired/space_oddity/rules.mk b/keyboards/handwired/space_oddity/rules.mk index 4dc93fad9e3..b597ef2b095 100644 --- a/keyboards/handwired/space_oddity/rules.mk +++ b/keyboards/handwired/space_oddity/rules.mk @@ -35,7 +35,7 @@ F_USB = $(F_CPU) # Bootloader # This definition is optional, and if your keyboard supports multiple bootloaders of -# different sizes, comment this out, and the correct address will be loaded +# different sizes, comment this out, and the correct address will be loaded # automatically (+60). See bootloader.mk for all options. BOOTLOADER = caterina @@ -45,14 +45,14 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT # Build Options # comment out to disable the options. # -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 ?= no # Console for debug(+400) -COMMAND_ENABLE ?= no # Commands for debug and configuration -SLEEP_LED_ENABLE ?= no # 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 ?= no # Enable keyboard backlight functionality -AUDIO_ENABLE ?= no -RGBLIGHT_ENABLE ?= no +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 = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +SLEEP_LED_ENABLE = no # 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 = no # Enable keyboard backlight functionality +AUDIO_ENABLE = no +RGBLIGHT_ENABLE = no TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/space_oddity/space_oddity.h b/keyboards/handwired/space_oddity/space_oddity.h index e9270d044e9..d35bfea5877 100644 --- a/keyboards/handwired/space_oddity/space_oddity.h +++ b/keyboards/handwired/space_oddity/space_oddity.h @@ -1,9 +1,8 @@ -#ifndef KB_H -#define KB_H +#pragma once #include "quantum.h" -#define KEYMAP( \ +#define LAYOUT( \ K000, K002, K004, K006, K008, K010, K011, \ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ @@ -18,5 +17,3 @@ { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411 }, \ { K500, K501, K502, K503, KC_NO, K505, KC_NO, K507, K508, K509, K510, K511 } \ } - -#endif \ No newline at end of file From 9e784841c026d3f05df9a5e58668b4244885386f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Em=C4=ABls=20Delle?= Date: Tue, 29 Jan 2019 03:10:43 +0200 Subject: [PATCH 11/55] [Keyboard] Additional info about TMO50 (#4980) * Create ISO HHKB keymapping for GH60 * Add media controls to Fn layer * Use M(x) instead of F(x), add Copyright text * Add README for additional information about TMO50 features/quirks --- keyboards/tmo50/keymaps/default/readme.md | 46 +++++++++++++++++++++++ keyboards/tmo50/readme.md | 2 +- 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 keyboards/tmo50/keymaps/default/readme.md diff --git a/keyboards/tmo50/keymaps/default/readme.md b/keyboards/tmo50/keymaps/default/readme.md new file mode 100644 index 00000000000..e3b0e0e6aee --- /dev/null +++ b/keyboards/tmo50/keymaps/default/readme.md @@ -0,0 +1,46 @@ +# Additional info + +## Matrix + +You probably tried or will try to configure the keymapping to your liking. To make it easier configuring your layouts, photo of keyboards matrix will help. + +![TMO50 matrix](https://i.imgur.com/ud7RB8d.png) + +As you can see here matrix consists of 4 rows and 14 columns. But the tricky part is that topmost left key (Tab/Esc) is connected to row 3 - this is done so there's no 15th column that would connect only one key to seperate pin. This also poses an thread that you will configure your layout incorrectly because KC_TAB is not in the correct place *[visually](https://i.imgur.com/RtoD9F6.png)* in *keymap.c* file. Please take this into account when making changes and double-check this. + +## Pinout + +Most of the pinout can be found in *config.h* but there's here's a table of all the used pins for TMO50 (including indicator LED pins) + +| Pin | Assigned to | +|---|---| +| D5 | Row 0 | +| D3 | Row 1 | +| D2 | Row 2 | +| D0 | Row 3 | +| | | +| D1 | Col 0 | +| D4 | Col 1 | +| F0 | Col 2 | +| F1 | Col 3 | +| F4 | Col 4 | +| F5 | Col 5 | +| F6 | Col 6 | +| F7 | Col 7 | +| D6 | Col 8 | +| D7 | Col 9 | +| B4 | Col 10 | +| B5 | Col 11 | +| B6 | Col 12 | +| C6 | Col 13 | +| | | +| B7 | Backlight | +| C7 | RGB LEDs | +| B0 | LED 4 (L4) | +| B1 | LED 3 (L3) | +| B2 | LED 2 (L2) | +| B3 | LED 1 (L1) | + +## Indicator LEDs + +Their size is 2×3×4mm. The THT hole without a circle on the pcb is VCC(+) and the other one is connect to their corresponding pin. diff --git a/keyboards/tmo50/readme.md b/keyboards/tmo50/readme.md index 2af282d1507..f4275a97873 100644 --- a/keyboards/tmo50/readme.md +++ b/keyboards/tmo50/readme.md @@ -1,6 +1,6 @@ # tmo50 -![tmo50](https://imgur.com/BhRYzl6.jpg) +![TMO50](https://imgur.com/BhRYzl6.jpg) TMO50 is a 50% mechanical keyboard with macro column on the left side. Sub60% board without compromises. From 60ae309ced682edd659a4e1479c176625136db53 Mon Sep 17 00:00:00 2001 From: patrickmt <40182064+patrickmt@users.noreply.github.com> Date: Mon, 28 Jan 2019 13:07:22 -0500 Subject: [PATCH 12/55] arm_atsam ADC0 factory calibration correction Factory calibration data was not being loaded properly for ADC0, which affects the accuracy of 5V readings. --- tmk_core/protocol/arm_atsam/adc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tmk_core/protocol/arm_atsam/adc.c b/tmk_core/protocol/arm_atsam/adc.c index ab77f92402e..cb5c349b730 100644 --- a/tmk_core/protocol/arm_atsam/adc.c +++ b/tmk_core/protocol/arm_atsam/adc.c @@ -74,9 +74,9 @@ void ADC0_init(void) while (ADC0->SYNCBUSY.bit.SAMPCTRL) { DBGC(DC_ADC0_SAMPCTRL_SYNCING_1); } //Load factory calibration data - ADC0->CALIB.bit.BIASCOMP = (ADC0_FUSES_BIASCOMP_ADDR >> ADC0_FUSES_BIASCOMP_Pos) & ADC0_FUSES_BIASCOMP_Msk; - ADC0->CALIB.bit.BIASR2R = (ADC0_FUSES_BIASR2R_ADDR >> ADC0_FUSES_BIASR2R_Pos) & ADC0_FUSES_BIASR2R_Msk; - ADC0->CALIB.bit.BIASREFBUF = (ADC0_FUSES_BIASREFBUF_ADDR >> ADC0_FUSES_BIASREFBUF_Pos) & ADC0_FUSES_BIASREFBUF_Msk; + ADC0->CALIB.bit.BIASCOMP = ((*(uint32_t *)ADC0_FUSES_BIASCOMP_ADDR) & ADC0_FUSES_BIASCOMP_Msk) >> ADC0_FUSES_BIASCOMP_Pos; + ADC0->CALIB.bit.BIASR2R = ((*(uint32_t *)ADC0_FUSES_BIASR2R_ADDR) & ADC0_FUSES_BIASR2R_Msk) >> ADC0_FUSES_BIASR2R_Pos; + ADC0->CALIB.bit.BIASREFBUF = ((*(uint32_t *)ADC0_FUSES_BIASREFBUF_ADDR) & ADC0_FUSES_BIASREFBUF_Msk) >> ADC0_FUSES_BIASREFBUF_Pos; //Enable ADC0->CTRLA.bit.ENABLE = 1; From c30155343fbdd0ef1d1fc07a60ddbaee668fab80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20=C4=90or=C4=91evi=C4=87?= Date: Mon, 28 Jan 2019 22:32:23 +0100 Subject: [PATCH 13/55] Remove #define IS_COMMAND line in keyboards/handwired/xealousbrown/config.h --- keyboards/handwired/xealousbrown/config.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/keyboards/handwired/xealousbrown/config.h b/keyboards/handwired/xealousbrown/config.h index 53430849f2c..17aa6c94ee5 100644 --- a/keyboards/handwired/xealousbrown/config.h +++ b/keyboards/handwired/xealousbrown/config.h @@ -46,6 +46,3 @@ along with this program. If not, see . /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW - -/* key combination for magic key command */ -// #define IS_COMMAND() ( keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) From efe360464d0df68e5096d7339e2279b4c77685fd Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Mon, 28 Jan 2019 17:31:33 -0800 Subject: [PATCH 14/55] Contribute the MechMerlin QMK Configurator docs (#4986) * first pass at configurator docs * edit existing docs to make reference to QMK Configurator * contribute my own newb guide to QMK officially from https://github.com/mechmerlin/qmk_setup/blob/master/qmk_configurator.md * Update docs/newbs_building_firmware_configurator.md Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com> * Update docs/newbs_building_firmware_configurator.md Big red box! Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com> * Update docs/newbs_building_firmware_configurator.md Big red box Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com> * Update docs/newbs_building_firmware_configurator.md Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com> * Update docs/newbs_building_firmware_configurator.md Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com> * Update docs/newbs_building_firmware_configurator.md Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com> * Update docs/newbs_building_firmware_configurator.md Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com> --- docs/newbs.md | 5 +- docs/newbs_building_firmware_configurator.md | 105 +++++++++++++++++++ docs/newbs_getting_started.md | 5 +- 3 files changed, 112 insertions(+), 3 deletions(-) create mode 100644 docs/newbs_building_firmware_configurator.md diff --git a/docs/newbs.md b/docs/newbs.md index 4f115c3c781..904a5294551 100644 --- a/docs/newbs.md +++ b/docs/newbs.md @@ -6,10 +6,11 @@ Not sure if your keyboard can run QMK? If it's a mechanical keyboard you built y ## Overview -There are 6 main sections to this guide: +There are 7 main sections to this guide: * [Getting Started](newbs_getting_started.md) -* [Building Your First Firmware](newbs_building_firmware.md) +* [Building Your First Firmware using the command line](newbs_building_firmware.md) +* [Building Your First Firmware using the online GUI](newbs_building_firmware_configurator.md) * [Flashing Firmware](newbs_flashing.md) * [Testing and Debugging](newbs_testing_debugging.md) * [Git Best Practices](newbs_best_practices.md) diff --git a/docs/newbs_building_firmware_configurator.md b/docs/newbs_building_firmware_configurator.md new file mode 100644 index 00000000000..0ad609304a4 --- /dev/null +++ b/docs/newbs_building_firmware_configurator.md @@ -0,0 +1,105 @@ +# QMK Configurator + +The [QMK Configurator](https://config.qmk.fm) is an online graphical user interface that generates QMK Firmware hex files. + +?> **Please follow these steps in order.** + +Watch the [Video Tutorial](https://youtu.be/7RH-1pAbjvw) + +The QMK Configurator works best with Chrome/Firefox. + + +!> **Files from other tools such as KLE, or kbfirmware will not be compatible with QMK Configurator. Do not load them, do not import them. QMK Configurator is a DIFFERENT tool. ** + +## Selecting your keyboard + +Click the drop down box and select the keyboard you want to create a keymap for. + +?> If your keyboard has several versions, make sure you select the correct one.** + +I'll say that again because it's important + +!> **MAKE SURE YOU SELECT THE RIGHT VERSION!** + +If your keyboard has been advertised to be powered by QMK but is not in the list, chances are a developer hasn't gotten to it yet or we haven't had a chance to merge it in yet. File an issue at [qmk_firmware](https://github.com/qmk/qmk_firmware/issues) requesting to support that particular keyboard, if there is no active [Pull Request](https://github.com/qmk/qmk_firmware/pulls?q=is%3Aopen+is%3Apr+label%3Akeyboard) for it. There are also QMK powered keyboards that are in their manufacturer's own github accounts. Double check for that as well. + +## Selecting your keyboard layout + +Choose the layout that best represents the keymap you want to create. Some keyboards do not have enough layouts or correct layouts defined yet. They will be supported in the future. + +## Keymap Name + +Call this keymap what you want. + +?> If you are running into issues when compiling, it may be worth changing this name, as it may already exist in the QMK Firmware repo. + +## Creating Your Keymap + +Keycode Entry is accomplished in 3 ways. +1. Drag and dropping +2. Clicking on an empty spot on the layout and clicking the keycode you desire +3. Clicking on an empty spot on the layout, pressing the physical key on your keyboard. + +Hover your mouse over a key and a short blurb will tell you what that keycode does. For a more verbose description please see + +[Basic Keycode Reference](https://docs.qmk.fm/#/keycodes_basic) +[Advanced Keycode Reference](https://docs.qmk.fm/#/feature_advanced_keycodes) + +In the event that you can't find a layout that supports your keymap, for example three spots for spacebar, or two spots for backspace, or 2 spots for shift etc etc, Fill them ALL up. + +### Example: + +3 spots for spacebar: Fill them ALL with spacebar + +2 spots for backspace: Fill them BOTH with backspace + +2 spots for right shift: Fill them BOTH with right shift + +1 spot for left shift and 1 spot for iso support: Fill them both with left shift + +5 spots, but only 4 keys: Guess and check or ask someone who has done it before. + +## Saving Your Keymap for Future Edits + +When you're satisfied with your keymap or just want to work on it later, press the `Export Keymap` button. It will save your keymap as the name you chose above appended with .json. + +You can then load this .json file in the future by pressing the `Import Keymap` button. + +!> **CAUTION:** This is not the same type of .json file used for kbfirmware.com or any other tool. If you try to use this for those tools, or the .json from those tools with QMK Configurator, there is a chance your keyboard will **explode**. + +## Generating your firmware file + +Press the green `Compile` button. + +When the compilation is done, you will be able to press the green `Download Firmware` button. + +## Flashing Your Keyboard + +Please refer to [Flashing Firmware](newbs_flashing.md) + +## Troubleshooting + +#### My .json file is not working + +If the .json file was generated with QMK Configurator, congratulations you have stumbled upon a bug. File an issue at [qmk_configurator](https://github.com/qmk/qmk_configurator/issues) + +If not....how did you miss my big bold message at the top saying not to use other .json files? + +#### There are extra spaces in my layout? What do I do? + +If you're referring to having three spots for space bar, the best course of action is to just fill them all with space bar. The same can be done for backspace and shifts + +#### What is the keycode for....... + +Please see + +[Basic Keycode Reference](https://docs.qmk.fm/#/keycodes_basic) +[Advanced Keycode Reference](https://docs.qmk.fm/#/feature_advanced_keycodes) + +#### It won't compile + +Please double check the other layers of your keymap to make sure there are no random keys present. + +## Problems and Bugs + +We are always accepting customer requests and bug reports. Please file them at [qmk_configurator](https://github.com/qmk/qmk_configurator/issues) diff --git a/docs/newbs_getting_started.md b/docs/newbs_getting_started.md index 276c7fec327..aefa1b73850 100644 --- a/docs/newbs_getting_started.md +++ b/docs/newbs_getting_started.md @@ -6,7 +6,10 @@ QMK tries to put a lot of power into your hands by making easy things easy, and # Getting Started -Before you can build keymaps, you need to install some software and set up your build environment. This only has to be done once no matter how many keyboards you plan to compile firmware for. +Before you can build keymaps, you need to install some software and set up your build environment. This only has to be done once no matter how many keyboards you plan to compile firmware for. + +If you would prefer a more graphical user interface approach, please consider using the online [QMK Configurator](https://config.qmk.fm). Please refer to [Building Your First Firmware using the online GUI](newbs_building_firmware_configurator.md). + ## Download Software From f0e0a67ea56e1830e3b89382e4739a9fcbfac509 Mon Sep 17 00:00:00 2001 From: Daniel H Klein Date: Tue, 29 Jan 2019 09:52:20 -0800 Subject: [PATCH 15/55] [Keyboard] Bug Fix To Unigo66 (#4995) * UniGo66 keyboard added * UniGo66 keyboard added * case correction of unigo66 files * create sirius folder * Update keyboards/sirius/unigo66/rules.mk Co-Authored-By: danielhklein * Update keyboards/sirius/unigo66/keymaps/danielhklein/keymap.c Co-Authored-By: danielhklein * Update keyboards/sirius/unigo66/keymaps/default/config.h Co-Authored-By: danielhklein * Update keyboards/sirius/unigo66/keymaps/danielhklein/config.h Co-Authored-By: danielhklein * debugging * correct keymap to layout * readme * remove common config * suggested changes to config.h * default keymap cleanup * bug fixes --- keyboards/sirius/unigo66/main.c | 8 +------- keyboards/sirius/unigo66/rules.mk | 6 ++---- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/keyboards/sirius/unigo66/main.c b/keyboards/sirius/unigo66/main.c index b4a0d97aafc..76e88922cb4 100644 --- a/keyboards/sirius/unigo66/main.c +++ b/keyboards/sirius/unigo66/main.c @@ -79,18 +79,12 @@ int main(void) */ sei(); -/* Some keyboards bootup quickly and cannot be initialized with this startup wait.*/ +/* Some keyboards bootup quickly and cannot be initialized with this startup wait. // wait for startup of sendchar routine while (USB_DeviceState != DEVICE_STATE_Configured) ; if (debug_enable) { _delay_ms(1000); } - - -/* // wait for USB startup & debug output - uint8_t timeout=255 - while (timeout-- && USB_DeviceState != DEVICE_STATE_Configured) { - wait_ms(4); */ debug("init: done\n"); diff --git a/keyboards/sirius/unigo66/rules.mk b/keyboards/sirius/unigo66/rules.mk index e716aa86fb2..562b2b694eb 100644 --- a/keyboards/sirius/unigo66/rules.mk +++ b/keyboards/sirius/unigo66/rules.mk @@ -26,7 +26,5 @@ EXTRAKEY_ENABLE = yes # Audio control and System control(+450) USB_HID_ENABLE = yes CUSTOM_MATRIX = yes -SRC = custom_matrix.cpp - -CUSTOM_MATRIX = yes -SRC = custom_matrix.cpp +SRC += custom_matrix.cpp \ + main.c From d0a7e96d1e300fd722b9c5f93056d58867116bc4 Mon Sep 17 00:00:00 2001 From: Geoff Lane Date: Tue, 29 Jan 2019 18:28:37 -0500 Subject: [PATCH 16/55] S60x Make Default standard layout and have separate Mac OS one (#4964) * Make Default standard layout Move Mac OS layout to a separate layout. Basically Mac has the Alt and GUI keys swapped * Fix typos * Use Bootmagic keys instead of separate MacOS keymap --- keyboards/s65_x/keymaps/default/keymap.c | 8 ++++---- keyboards/s65_x/keymaps/default/readme.md | 11 ++++++++--- keyboards/s65_x/rules.mk | 2 +- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/keyboards/s65_x/keymaps/default/keymap.c b/keyboards/s65_x/keymaps/default/keymap.c index a2fd12ed60f..00ae4d0a202 100644 --- a/keyboards/s65_x/keymaps/default/keymap.c +++ b/keyboards/s65_x/keymaps/default/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ * │Shift │ Z │ X │ C │ V │ B │ N │ M │, <│. >│/ ?│Shift │Up │PDn│ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ - * │Ctrl│Alt │GUI │Space │Alt│Fn │Ctl│Lft│Dwn│Rgt│ + * │Ctrl│GUI │Alt │Space │Alt│Fn │Ctl│Lft│Dwn│Rgt│ * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ */ @@ -28,7 +28,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_BSLS, KC_END, \ FL_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, \ 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_UP, KC_PGDN, \ - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ ), @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ - * │ │ │ │ │ │ │ │ │ │ │ + * │ │Swp │Nrm │ │ │ │ │ │ │ │ * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ */ @@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + _______, AG_SWAP, AG_NORM, _______, _______, _______, _______, _______, _______, _______ \ ), diff --git a/keyboards/s65_x/keymaps/default/readme.md b/keyboards/s65_x/keymaps/default/readme.md index 213cbe49e5c..5e53af701df 100644 --- a/keyboards/s65_x/keymaps/default/readme.md +++ b/keyboards/s65_x/keymaps/default/readme.md @@ -1,5 +1,5 @@ ### 1 ANSI -A Mac ANSI layout that assumes standard sized shifts, enter, and backspace keys. +An ANSI layout that assumes standard sized shifts, enter, and backspace keys. #### 1.0 Default layer ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ @@ -11,7 +11,7 @@ A Mac ANSI layout that assumes standard sized shifts, enter, and backspace keys. ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │LSHFT│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│ UP │PG_DN│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │LCTRL│L_ALT│L_GUI│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ FN0 │ APP │LEFT │DOWN │RIGHT│ + │LCTRL│L_GUI│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ FN0 │RCTRL│LEFT │DOWN │RIGHT│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ #### 1.1 Fn layer ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ @@ -23,5 +23,10 @@ A Mac ANSI layout that assumes standard sized shifts, enter, and backspace keys. ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │ │▒▒▒▒▒│_UL │ │ │ │ │ │ │Home │ End │ │▒▒▒▒▒│▒▒▒▒▒│Vol+ │ │ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │Mute │Vol- │Play │ + │ │AG_SW│AG_NR│█████│█████│█████│ │█████│█████│█████│ │ │ │Mute │Vol- │Play │ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ + +#### MacOS + +This keymap supports swapping the GUI and ALT keys using the Fn layer. See the +AG_SWAP and AG_NORM bindings to swap the two keys. diff --git a/keyboards/s65_x/rules.mk b/keyboards/s65_x/rules.mk index c97f7323e27..598e269cbfe 100644 --- a/keyboards/s65_x/rules.mk +++ b/keyboards/s65_x/rules.mk @@ -53,7 +53,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = no # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE From 74fcfd533508d5743a20a7cd7faba404f8fc7cd3 Mon Sep 17 00:00:00 2001 From: QMK Bot Date: Tue, 29 Jan 2019 23:31:46 +0000 Subject: [PATCH 17/55] convert to unix line-endings [skip ci] --- keyboards/s65_x/keymaps/default/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/s65_x/keymaps/default/readme.md b/keyboards/s65_x/keymaps/default/readme.md index 5e53af701df..96fa2ff53e5 100644 --- a/keyboards/s65_x/keymaps/default/readme.md +++ b/keyboards/s65_x/keymaps/default/readme.md @@ -1,4 +1,4 @@ -### 1 ANSI +### 1 ANSI An ANSI layout that assumes standard sized shifts, enter, and backspace keys. #### 1.0 Default layer From 7186d1581abbd97d7c76626ae83fc866e85d217c Mon Sep 17 00:00:00 2001 From: Andrew Kannan Date: Tue, 29 Jan 2019 23:04:20 -0500 Subject: [PATCH 18/55] Moving cannonkeys boards to one place, eeprom fix (#4999) * Move boards to cannonkeys and share resources * Share common files between cannonkey boards * Fix ortho60 keymap * update LED numbers * Add RGB keys to Ortho60 and Ortho48 * Add Backlight control to default layout Ortho60 and 48 * Remove unnecessary ws2812.c SRC from rules.mk --- .../bluepill/keyboard.c} | 7 +- .../practice60 => cannonkeys/bluepill}/led.c | 0 .../bluepill}/led_custom.h | 0 .../bluepill}/ws2812.c | 0 .../bluepill}/ws2812.h | 0 .../boards/GENERIC_STM32_F103/board.c | 0 .../boards/GENERIC_STM32_F103/board.h | 0 .../boards/GENERIC_STM32_F103/board.mk | 0 .../ortho48}/bootloader_defs.h | 0 .../ortho60 => cannonkeys/ortho48}/chconf.h | 0 keyboards/cannonkeys/ortho48/config.h | 80 +++ .../ortho48}/halconf.h | 0 keyboards/cannonkeys/ortho48/info.json | 112 ++++ .../ortho48/keymaps/default/keymap.c | 89 +++ .../ortho48}/ld/MKL26Z64.ld | 0 .../ld/STM32F103x8_stm32duino_bootloader.ld | 0 .../ortho48}/mcuconf.h | 0 keyboards/cannonkeys/ortho48/ortho48.c | 3 + keyboards/cannonkeys/ortho48/ortho48.h | 29 + keyboards/cannonkeys/ortho48/readme.md | 12 + .../ortho48}/rules.mk | 7 +- .../boards/GENERIC_STM32_F103/board.c | 0 .../boards/GENERIC_STM32_F103/board.h | 0 .../boards/GENERIC_STM32_F103/board.mk | 0 .../ortho60/bootloader_defs.h | 2 +- .../ortho60}/chconf.h | 0 .../ortho60/config.h | 13 +- .../ortho60/halconf.h | 2 +- .../ortho60/info.json | 0 .../ortho60/keymaps/default/keymap.c | 6 +- .../ortho60}/ld/MKL26Z64.ld | 0 .../ld/STM32F103x8_stm32duino_bootloader.ld | 0 .../ortho60/mcuconf.h | 2 +- keyboards/cannonkeys/ortho60/ortho60.c | 3 + .../ortho60/ortho60.h | 0 .../ortho60/readme.md | 2 +- .../ortho60/rules.mk | 5 +- .../boards/GENERIC_STM32_F103/board.c | 56 ++ .../boards/GENERIC_STM32_F103/board.h | 166 ++++++ .../boards/GENERIC_STM32_F103/board.mk | 5 + .../cannonkeys/practice60/bootloader_defs.h | 10 + keyboards/cannonkeys/practice60/chconf.h | 524 ++++++++++++++++++ .../practice60/config.h | 0 keyboards/cannonkeys/practice60/halconf.h | 353 ++++++++++++ .../practice60/info.json | 0 .../practice60/keymaps/default/keymap.c | 0 .../cannonkeys/practice60/ld/MKL26Z64.ld | 105 ++++ .../ld/STM32F103x8_stm32duino_bootloader.ld | 88 +++ keyboards/cannonkeys/practice60/mcuconf.h | 209 +++++++ keyboards/cannonkeys/practice60/practice60.c | 2 + .../practice60/practice60.h | 0 keyboards/cannonkeys/practice60/readme.md | 12 + keyboards/cannonkeys/practice60/rules.mk | 57 ++ keyboards/handwired/ortho60/hsv2rgb.c | 80 --- keyboards/handwired/ortho60/hsv2rgb.h | 23 - keyboards/handwired/ortho60/led.c | 51 -- keyboards/handwired/ortho60/ortho60.c | 32 -- keyboards/handwired/ortho60/underglow.c | 157 ------ keyboards/handwired/ortho60/underglow.h | 10 - keyboards/handwired/practice60/readme.md | 3 - tmk_core/common/chibios/eeprom_stm32.c | 12 +- 61 files changed, 1949 insertions(+), 380 deletions(-) rename keyboards/{handwired/practice60/practice60.c => cannonkeys/bluepill/keyboard.c} (85%) rename keyboards/{handwired/practice60 => cannonkeys/bluepill}/led.c (100%) rename keyboards/{handwired/practice60 => cannonkeys/bluepill}/led_custom.h (100%) rename keyboards/{handwired/practice60 => cannonkeys/bluepill}/ws2812.c (100%) rename keyboards/{handwired/practice60 => cannonkeys/bluepill}/ws2812.h (100%) rename keyboards/{handwired/ortho60 => cannonkeys/ortho48}/boards/GENERIC_STM32_F103/board.c (100%) rename keyboards/{handwired/ortho60 => cannonkeys/ortho48}/boards/GENERIC_STM32_F103/board.h (100%) rename keyboards/{handwired/ortho60 => cannonkeys/ortho48}/boards/GENERIC_STM32_F103/board.mk (100%) rename keyboards/{handwired/practice60 => cannonkeys/ortho48}/bootloader_defs.h (100%) rename keyboards/{handwired/ortho60 => cannonkeys/ortho48}/chconf.h (100%) create mode 100644 keyboards/cannonkeys/ortho48/config.h rename keyboards/{handwired/practice60 => cannonkeys/ortho48}/halconf.h (100%) create mode 100644 keyboards/cannonkeys/ortho48/info.json create mode 100644 keyboards/cannonkeys/ortho48/keymaps/default/keymap.c rename keyboards/{handwired/ortho60 => cannonkeys/ortho48}/ld/MKL26Z64.ld (100%) rename keyboards/{handwired/ortho60 => cannonkeys/ortho48}/ld/STM32F103x8_stm32duino_bootloader.ld (100%) rename keyboards/{handwired/practice60 => cannonkeys/ortho48}/mcuconf.h (100%) create mode 100644 keyboards/cannonkeys/ortho48/ortho48.c create mode 100644 keyboards/cannonkeys/ortho48/ortho48.h create mode 100644 keyboards/cannonkeys/ortho48/readme.md rename keyboards/{handwired/practice60 => cannonkeys/ortho48}/rules.mk (96%) rename keyboards/{handwired/practice60 => cannonkeys/ortho60}/boards/GENERIC_STM32_F103/board.c (100%) rename keyboards/{handwired/practice60 => cannonkeys/ortho60}/boards/GENERIC_STM32_F103/board.h (100%) rename keyboards/{handwired/practice60 => cannonkeys/ortho60}/boards/GENERIC_STM32_F103/board.mk (100%) rename keyboards/{handwired => cannonkeys}/ortho60/bootloader_defs.h (90%) rename keyboards/{handwired/practice60 => cannonkeys/ortho60}/chconf.h (100%) rename keyboards/{handwired => cannonkeys}/ortho60/config.h (88%) rename keyboards/{handwired => cannonkeys}/ortho60/halconf.h (99%) rename keyboards/{handwired => cannonkeys}/ortho60/info.json (100%) rename keyboards/{handwired => cannonkeys}/ortho60/keymaps/default/keymap.c (95%) rename keyboards/{handwired/practice60 => cannonkeys/ortho60}/ld/MKL26Z64.ld (100%) rename keyboards/{handwired/practice60 => cannonkeys/ortho60}/ld/STM32F103x8_stm32duino_bootloader.ld (100%) rename keyboards/{handwired => cannonkeys}/ortho60/mcuconf.h (99%) create mode 100644 keyboards/cannonkeys/ortho60/ortho60.c rename keyboards/{handwired => cannonkeys}/ortho60/ortho60.h (100%) rename keyboards/{handwired => cannonkeys}/ortho60/readme.md (93%) rename keyboards/{handwired => cannonkeys}/ortho60/rules.mk (96%) create mode 100644 keyboards/cannonkeys/practice60/boards/GENERIC_STM32_F103/board.c create mode 100644 keyboards/cannonkeys/practice60/boards/GENERIC_STM32_F103/board.h create mode 100644 keyboards/cannonkeys/practice60/boards/GENERIC_STM32_F103/board.mk create mode 100644 keyboards/cannonkeys/practice60/bootloader_defs.h create mode 100644 keyboards/cannonkeys/practice60/chconf.h rename keyboards/{handwired => cannonkeys}/practice60/config.h (100%) create mode 100644 keyboards/cannonkeys/practice60/halconf.h rename keyboards/{handwired => cannonkeys}/practice60/info.json (100%) rename keyboards/{handwired => cannonkeys}/practice60/keymaps/default/keymap.c (100%) create mode 100644 keyboards/cannonkeys/practice60/ld/MKL26Z64.ld create mode 100644 keyboards/cannonkeys/practice60/ld/STM32F103x8_stm32duino_bootloader.ld create mode 100644 keyboards/cannonkeys/practice60/mcuconf.h create mode 100644 keyboards/cannonkeys/practice60/practice60.c rename keyboards/{handwired => cannonkeys}/practice60/practice60.h (100%) create mode 100644 keyboards/cannonkeys/practice60/readme.md create mode 100644 keyboards/cannonkeys/practice60/rules.mk delete mode 100644 keyboards/handwired/ortho60/hsv2rgb.c delete mode 100644 keyboards/handwired/ortho60/hsv2rgb.h delete mode 100644 keyboards/handwired/ortho60/led.c delete mode 100644 keyboards/handwired/ortho60/ortho60.c delete mode 100644 keyboards/handwired/ortho60/underglow.c delete mode 100644 keyboards/handwired/ortho60/underglow.h delete mode 100644 keyboards/handwired/practice60/readme.md diff --git a/keyboards/handwired/practice60/practice60.c b/keyboards/cannonkeys/bluepill/keyboard.c similarity index 85% rename from keyboards/handwired/practice60/practice60.c rename to keyboards/cannonkeys/bluepill/keyboard.c index acc0f00e530..865628eccde 100644 --- a/keyboards/handwired/practice60/practice60.c +++ b/keyboards/cannonkeys/bluepill/keyboard.c @@ -1,14 +1,9 @@ - -#include "practice60.h" - #include "ch.h" #include "hal.h" #include "led_custom.h" -#include "print.h" -#include "debug.h" #include "util.h" +#include "quantum.h" -/* generic STM32F103C8T6 board */ #ifdef BOARD_GENERIC_STM32_F103 #define LED_ON() do { palClearPad(GPIOC, 13) ;} while (0) #define LED_OFF() do { palSetPad(GPIOC, 13); } while (0) diff --git a/keyboards/handwired/practice60/led.c b/keyboards/cannonkeys/bluepill/led.c similarity index 100% rename from keyboards/handwired/practice60/led.c rename to keyboards/cannonkeys/bluepill/led.c diff --git a/keyboards/handwired/practice60/led_custom.h b/keyboards/cannonkeys/bluepill/led_custom.h similarity index 100% rename from keyboards/handwired/practice60/led_custom.h rename to keyboards/cannonkeys/bluepill/led_custom.h diff --git a/keyboards/handwired/practice60/ws2812.c b/keyboards/cannonkeys/bluepill/ws2812.c similarity index 100% rename from keyboards/handwired/practice60/ws2812.c rename to keyboards/cannonkeys/bluepill/ws2812.c diff --git a/keyboards/handwired/practice60/ws2812.h b/keyboards/cannonkeys/bluepill/ws2812.h similarity index 100% rename from keyboards/handwired/practice60/ws2812.h rename to keyboards/cannonkeys/bluepill/ws2812.h diff --git a/keyboards/handwired/ortho60/boards/GENERIC_STM32_F103/board.c b/keyboards/cannonkeys/ortho48/boards/GENERIC_STM32_F103/board.c similarity index 100% rename from keyboards/handwired/ortho60/boards/GENERIC_STM32_F103/board.c rename to keyboards/cannonkeys/ortho48/boards/GENERIC_STM32_F103/board.c diff --git a/keyboards/handwired/ortho60/boards/GENERIC_STM32_F103/board.h b/keyboards/cannonkeys/ortho48/boards/GENERIC_STM32_F103/board.h similarity index 100% rename from keyboards/handwired/ortho60/boards/GENERIC_STM32_F103/board.h rename to keyboards/cannonkeys/ortho48/boards/GENERIC_STM32_F103/board.h diff --git a/keyboards/handwired/ortho60/boards/GENERIC_STM32_F103/board.mk b/keyboards/cannonkeys/ortho48/boards/GENERIC_STM32_F103/board.mk similarity index 100% rename from keyboards/handwired/ortho60/boards/GENERIC_STM32_F103/board.mk rename to keyboards/cannonkeys/ortho48/boards/GENERIC_STM32_F103/board.mk diff --git a/keyboards/handwired/practice60/bootloader_defs.h b/keyboards/cannonkeys/ortho48/bootloader_defs.h similarity index 100% rename from keyboards/handwired/practice60/bootloader_defs.h rename to keyboards/cannonkeys/ortho48/bootloader_defs.h diff --git a/keyboards/handwired/ortho60/chconf.h b/keyboards/cannonkeys/ortho48/chconf.h similarity index 100% rename from keyboards/handwired/ortho60/chconf.h rename to keyboards/cannonkeys/ortho48/chconf.h diff --git a/keyboards/cannonkeys/ortho48/config.h b/keyboards/cannonkeys/ortho48/config.h new file mode 100644 index 00000000000..497e08bcf5e --- /dev/null +++ b/keyboards/cannonkeys/ortho48/config.h @@ -0,0 +1,80 @@ +/* +Copyright 2015 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 . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCA04 +#define PRODUCT_ID 0x0248 +#define DEVICE_VER 0x0001 +/* in python2: list(u"whatever".encode('utf-16-le')) */ +/* at most 32 characters or the ugly hack in usb_main.c borks */ +#define MANUFACTURER QMK +#define PRODUCT Ortho48 +#define DESCRIPTION Ortho48 + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +#define MATRIX_COL_PINS { B11, B10, B1, B0, A7, A6, A5, B14, A15, A0, C15, C14} +#define MATRIX_ROW_PINS { B12, C13, A2, A1 } +#define DIODE_DIRECTION COL2ROW + +#define BACKLIGHT_LEVELS 6 +#define BACKLIGHT_BREATHING +#define BREATHING_PERIOD 6 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 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 + +#define RGBLIGHT_ANIMATIONS + +#define WS2812_LED_N 9 +#define RGBLED_NUM WS2812_LED_N +#define PORT_WS2812 GPIOB +#define PIN_WS2812 15 +#define WS2812_SPI SPID2 + + + + +/* + * 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 diff --git a/keyboards/handwired/practice60/halconf.h b/keyboards/cannonkeys/ortho48/halconf.h similarity index 100% rename from keyboards/handwired/practice60/halconf.h rename to keyboards/cannonkeys/ortho48/halconf.h diff --git a/keyboards/cannonkeys/ortho48/info.json b/keyboards/cannonkeys/ortho48/info.json new file mode 100644 index 00000000000..0e834245a11 --- /dev/null +++ b/keyboards/cannonkeys/ortho48/info.json @@ -0,0 +1,112 @@ +{ + "keyboard_name": "Ortho48", + "url": "", + "maintainer": "qmk", + "width": 12, + "height": 4, + "layouts": { + "LAYOUT_ortho_4x12": { + "layout": [ + {"label":"Tab", "x":0, "y":0}, + {"label":"Q", "x":1, "y":0}, + {"label":"W", "x":2, "y":0}, + {"label":"E", "x":3, "y":0}, + {"label":"R", "x":4, "y":0}, + {"label":"T", "x":5, "y":0}, + {"label":"Y", "x":6, "y":0}, + {"label":"U", "x":7, "y":0}, + {"label":"I", "x":8, "y":0}, + {"label":"O", "x":9, "y":0}, + {"label":"P", "x":10, "y":0}, + {"label":"Delete", "x":11, "y":0}, + {"label":"Esc", "x":0, "y":1}, + {"label":"A", "x":1, "y":1}, + {"label":"S", "x":2, "y":1}, + {"label":"D", "x":3, "y":1}, + {"label":"F", "x":4, "y":1}, + {"label":"G", "x":5, "y":1}, + {"label":"H", "x":6, "y":1}, + {"label":"J", "x":7, "y":1}, + {"label":"K", "x":8, "y":1}, + {"label":"L", "x":9, "y":1}, + {"label":";", "x":10, "y":1}, + {"label":"'", "x":11, "y":1}, + {"label":"Shift", "x":0, "y":2}, + {"label":"Z", "x":1, "y":2}, + {"label":"X", "x":2, "y":2}, + {"label":"C", "x":3, "y":2}, + {"label":"V", "x":4, "y":2}, + {"label":"B", "x":5, "y":2}, + {"label":"N", "x":6, "y":2}, + {"label":"M", "x":7, "y":2}, + {"label":",", "x":8, "y":2}, + {"label":".", "x":9, "y":2}, + {"label":"/", "x":10, "y":2}, + {"label":"Enter", "x":11, "y":2}, + {"label":"Fn", "x":0, "y":3}, + {"label":"Ctrl", "x":1, "y":3}, + {"label":"Alt", "x":2, "y":3}, + {"label":"Meta", "x":3, "y":3}, + {"label":"Lower", "x":4, "y":3}, + {"label":"Space", "x":5, "y":3}, + {"label":"Space", "x":6, "y":3}, + {"label":"Raise", "x":7, "y":3}, + {"label":"Left", "x":8, "y":3}, + {"label":"Down", "x":9, "y":3}, + {"label":"Up", "x":10, "y":3}, + {"label":"Right", "x":11, "y":3} + ] + }, + "LAYOUT_1x2uC": { + "layout": [ + {"label":"Tab", "x":0, "y":0}, + {"label":"Q", "x":1, "y":0}, + {"label":"W", "x":2, "y":0}, + {"label":"E", "x":3, "y":0}, + {"label":"R", "x":4, "y":0}, + {"label":"T", "x":5, "y":0}, + {"label":"Y", "x":6, "y":0}, + {"label":"U", "x":7, "y":0}, + {"label":"I", "x":8, "y":0}, + {"label":"O", "x":9, "y":0}, + {"label":"P", "x":10, "y":0}, + {"label":"Delete", "x":11, "y":0}, + {"label":"Esc", "x":0, "y":1}, + {"label":"A", "x":1, "y":1}, + {"label":"S", "x":2, "y":1}, + {"label":"D", "x":3, "y":1}, + {"label":"F", "x":4, "y":1}, + {"label":"G", "x":5, "y":1}, + {"label":"H", "x":6, "y":1}, + {"label":"J", "x":7, "y":1}, + {"label":"K", "x":8, "y":1}, + {"label":"L", "x":9, "y":1}, + {"label":";", "x":10, "y":1}, + {"label":"'", "x":11, "y":1}, + {"label":"Shift", "x":0, "y":2}, + {"label":"Z", "x":1, "y":2}, + {"label":"X", "x":2, "y":2}, + {"label":"C", "x":3, "y":2}, + {"label":"V", "x":4, "y":2}, + {"label":"B", "x":5, "y":2}, + {"label":"N", "x":6, "y":2}, + {"label":"M", "x":7, "y":2}, + {"label":",", "x":8, "y":2}, + {"label":".", "x":9, "y":2}, + {"label":"/", "x":10, "y":2}, + {"label":"Enter", "x":11, "y":2}, + {"label":"Fn", "x":0, "y":3}, + {"label":"Ctrl", "x":1, "y":3}, + {"label":"Alt", "x":2, "y":3}, + {"label":"Meta", "x":3, "y":3}, + {"label":"Lower", "x":4, "y":3}, + {"label":"Space", "x":5, "y":3, "w":2}, + {"label":"Raise", "x":7, "y":3}, + {"label":"Left", "x":8, "y":3}, + {"label":"Down", "x":9, "y":3}, + {"label":"Up", "x":10, "y":3}, + {"label":"Right", "x":11, "y":3} + ] + } + } +} diff --git a/keyboards/cannonkeys/ortho48/keymaps/default/keymap.c b/keyboards/cannonkeys/ortho48/keymaps/default/keymap.c new file mode 100644 index 00000000000..2c3bc80c5d4 --- /dev/null +++ b/keyboards/cannonkeys/ortho48/keymaps/default/keymap.c @@ -0,0 +1,89 @@ +/* +Copyright 2012,2013 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 . +*/ +#include QMK_KEYBOARD_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 _BASE 0 +#define _RAISE 1 +#define _LOWER 2 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE +}; + +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 | + * `-----------------------------------------------------------------------------------' + */ +[_BASE] = LAYOUT_ortho_4x12( + 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 , + BL_TOGG, KC_LCTL, KC_LALT, KC_LGUI, MO(_LOWER), KC_SPC, KC_SPC, MO(_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 | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = LAYOUT_ortho_4x12( + 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_HOME, KC_END, _______, + RESET, _______, _______, _______, _______, _______, _______, _______, 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 / |Pg Up |Pg Dn | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = LAYOUT_ortho_4x12( + 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_PGUP, KC_PGDN, _______, + RGB_TOG, RGB_MOD, BL_INC, BL_DEC, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), +}; diff --git a/keyboards/handwired/ortho60/ld/MKL26Z64.ld b/keyboards/cannonkeys/ortho48/ld/MKL26Z64.ld similarity index 100% rename from keyboards/handwired/ortho60/ld/MKL26Z64.ld rename to keyboards/cannonkeys/ortho48/ld/MKL26Z64.ld diff --git a/keyboards/handwired/ortho60/ld/STM32F103x8_stm32duino_bootloader.ld b/keyboards/cannonkeys/ortho48/ld/STM32F103x8_stm32duino_bootloader.ld similarity index 100% rename from keyboards/handwired/ortho60/ld/STM32F103x8_stm32duino_bootloader.ld rename to keyboards/cannonkeys/ortho48/ld/STM32F103x8_stm32duino_bootloader.ld diff --git a/keyboards/handwired/practice60/mcuconf.h b/keyboards/cannonkeys/ortho48/mcuconf.h similarity index 100% rename from keyboards/handwired/practice60/mcuconf.h rename to keyboards/cannonkeys/ortho48/mcuconf.h diff --git a/keyboards/cannonkeys/ortho48/ortho48.c b/keyboards/cannonkeys/ortho48/ortho48.c new file mode 100644 index 00000000000..fe38f020071 --- /dev/null +++ b/keyboards/cannonkeys/ortho48/ortho48.c @@ -0,0 +1,3 @@ + +#include "ortho48.h" + diff --git a/keyboards/cannonkeys/ortho48/ortho48.h b/keyboards/cannonkeys/ortho48/ortho48.h new file mode 100644 index 00000000000..1e51c37af7e --- /dev/null +++ b/keyboards/cannonkeys/ortho48/ortho48.h @@ -0,0 +1,29 @@ +#pragma once + +#include "quantum.h" + +#define LAYOUT_1x2uC( \ + 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 , 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, KC_NO, k37, k38, k39, k3a, k3b } \ +} + +#define LAYOUT_ortho_4x12( \ + 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 } \ +} diff --git a/keyboards/cannonkeys/ortho48/readme.md b/keyboards/cannonkeys/ortho48/readme.md new file mode 100644 index 00000000000..ba5516a3413 --- /dev/null +++ b/keyboards/cannonkeys/ortho48/readme.md @@ -0,0 +1,12 @@ +# Ortho 48 + +A Blue Pill STM32F103C8T6-based 12x4 ortholinear keyboard. + +Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan1) +Hardware Supported: Blue Pill STM32F103C8T6 + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/ortho48:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/handwired/practice60/rules.mk b/keyboards/cannonkeys/ortho48/rules.mk similarity index 96% rename from keyboards/handwired/practice60/rules.mk rename to keyboards/cannonkeys/ortho48/rules.mk index e417c91ee87..2e483a8c2cc 100644 --- a/keyboards/handwired/practice60/rules.mk +++ b/keyboards/cannonkeys/ortho48/rules.mk @@ -1,6 +1,7 @@ # project specific files +VPATH += keyboards/cannonkeys/bluepill SRC = led.c \ - ws2812.c + keyboard.c # GENERIC STM32F103C8T6 board - stm32duino bootloader OPT_DEFS = -DCORTEX_VTOR_INIT=0x2000 @@ -51,6 +52,4 @@ NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes -LAYOUTS = 60_ansi - -DEFAULT_FOLDER = handwired/practice60 +LAYOUTS = ortho_4x12 diff --git a/keyboards/handwired/practice60/boards/GENERIC_STM32_F103/board.c b/keyboards/cannonkeys/ortho60/boards/GENERIC_STM32_F103/board.c similarity index 100% rename from keyboards/handwired/practice60/boards/GENERIC_STM32_F103/board.c rename to keyboards/cannonkeys/ortho60/boards/GENERIC_STM32_F103/board.c diff --git a/keyboards/handwired/practice60/boards/GENERIC_STM32_F103/board.h b/keyboards/cannonkeys/ortho60/boards/GENERIC_STM32_F103/board.h similarity index 100% rename from keyboards/handwired/practice60/boards/GENERIC_STM32_F103/board.h rename to keyboards/cannonkeys/ortho60/boards/GENERIC_STM32_F103/board.h diff --git a/keyboards/handwired/practice60/boards/GENERIC_STM32_F103/board.mk b/keyboards/cannonkeys/ortho60/boards/GENERIC_STM32_F103/board.mk similarity index 100% rename from keyboards/handwired/practice60/boards/GENERIC_STM32_F103/board.mk rename to keyboards/cannonkeys/ortho60/boards/GENERIC_STM32_F103/board.mk diff --git a/keyboards/handwired/ortho60/bootloader_defs.h b/keyboards/cannonkeys/ortho60/bootloader_defs.h similarity index 90% rename from keyboards/handwired/ortho60/bootloader_defs.h rename to keyboards/cannonkeys/ortho60/bootloader_defs.h index 0f45203cb61..6b8fa9f727c 100644 --- a/keyboards/handwired/ortho60/bootloader_defs.h +++ b/keyboards/cannonkeys/ortho60/bootloader_defs.h @@ -7,4 +7,4 @@ // STM32F103* does NOT have an USB bootloader in ROM (only serial), // so setting anything here does not make much sense -// #define STM32_BOOTLOADER_ADDRESS 0x1FFFC800 +#define STM32_BOOTLOADER_ADDRESS 0x80000000 diff --git a/keyboards/handwired/practice60/chconf.h b/keyboards/cannonkeys/ortho60/chconf.h similarity index 100% rename from keyboards/handwired/practice60/chconf.h rename to keyboards/cannonkeys/ortho60/chconf.h diff --git a/keyboards/handwired/ortho60/config.h b/keyboards/cannonkeys/ortho60/config.h similarity index 88% rename from keyboards/handwired/ortho60/config.h rename to keyboards/cannonkeys/ortho60/config.h index 7234b54af1b..9b85952d789 100644 --- a/keyboards/handwired/ortho60/config.h +++ b/keyboards/cannonkeys/ortho60/config.h @@ -35,7 +35,9 @@ along with this program. If not, see . #define MATRIX_ROW_PINS { B3, B4, B5, B6, B7 } #define DIODE_DIRECTION COL2ROW -#define BACKLIGHT_LEVELS 1 +#define BACKLIGHT_LEVELS 6 +#define BACKLIGHT_BREATHING +#define BREATHING_PERIOD 6 /* define if matrix has ghost */ //#define MATRIX_HAS_GHOST @@ -48,6 +50,15 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE +#define RGBLIGHT_ANIMATIONS + +#define WS2812_LED_N 16 +#define RGBLED_NUM WS2812_LED_N +#define PORT_WS2812 GPIOB +#define PIN_WS2812 15 +#define WS2812_SPI SPID2 + + /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/handwired/ortho60/halconf.h b/keyboards/cannonkeys/ortho60/halconf.h similarity index 99% rename from keyboards/handwired/ortho60/halconf.h rename to keyboards/cannonkeys/ortho60/halconf.h index 5fba285a380..72879a575b9 100644 --- a/keyboards/handwired/ortho60/halconf.h +++ b/keyboards/cannonkeys/ortho60/halconf.h @@ -111,7 +111,7 @@ * @brief Enables the PWM subsystem. */ #if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM FALSE +#define HAL_USE_PWM TRUE #endif /** diff --git a/keyboards/handwired/ortho60/info.json b/keyboards/cannonkeys/ortho60/info.json similarity index 100% rename from keyboards/handwired/ortho60/info.json rename to keyboards/cannonkeys/ortho60/info.json diff --git a/keyboards/handwired/ortho60/keymaps/default/keymap.c b/keyboards/cannonkeys/ortho60/keymaps/default/keymap.c similarity index 95% rename from keyboards/handwired/ortho60/keymaps/default/keymap.c rename to keyboards/cannonkeys/ortho60/keymaps/default/keymap.c index 8617b6341aa..56caa4dc84f 100644 --- a/keyboards/handwired/ortho60/keymaps/default/keymap.c +++ b/keyboards/cannonkeys/ortho60/keymaps/default/keymap.c @@ -52,7 +52,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_DEL, \ 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, \ - BL_TOGG, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ + BL_TOGG, KC_LCTL, KC_LALT, KC_LGUI, MO(_LOWER), KC_SPC, KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ ), /* Lower * ,-----------------------------------------------------------------------------------. @@ -72,7 +72,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_DEL, \ 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_HOME, KC_END, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ + RESET, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ ), /* Raise @@ -93,6 +93,6 @@ 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_DEL, \ 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_PGUP, KC_PGDN, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ + RGB_TOG, RGB_MOD, BL_INC, BL_DEC, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ ) }; diff --git a/keyboards/handwired/practice60/ld/MKL26Z64.ld b/keyboards/cannonkeys/ortho60/ld/MKL26Z64.ld similarity index 100% rename from keyboards/handwired/practice60/ld/MKL26Z64.ld rename to keyboards/cannonkeys/ortho60/ld/MKL26Z64.ld diff --git a/keyboards/handwired/practice60/ld/STM32F103x8_stm32duino_bootloader.ld b/keyboards/cannonkeys/ortho60/ld/STM32F103x8_stm32duino_bootloader.ld similarity index 100% rename from keyboards/handwired/practice60/ld/STM32F103x8_stm32duino_bootloader.ld rename to keyboards/cannonkeys/ortho60/ld/STM32F103x8_stm32duino_bootloader.ld diff --git a/keyboards/handwired/ortho60/mcuconf.h b/keyboards/cannonkeys/ortho60/mcuconf.h similarity index 99% rename from keyboards/handwired/ortho60/mcuconf.h rename to keyboards/cannonkeys/ortho60/mcuconf.h index 9945e7408d1..fced27289e0 100644 --- a/keyboards/handwired/ortho60/mcuconf.h +++ b/keyboards/cannonkeys/ortho60/mcuconf.h @@ -132,7 +132,7 @@ * PWM driver system settings. */ #define STM32_PWM_USE_ADVANCED FALSE -#define STM32_PWM_USE_TIM1 FALSE +#define STM32_PWM_USE_TIM1 TRUE #define STM32_PWM_USE_TIM2 FALSE #define STM32_PWM_USE_TIM3 FALSE #define STM32_PWM_USE_TIM4 FALSE diff --git a/keyboards/cannonkeys/ortho60/ortho60.c b/keyboards/cannonkeys/ortho60/ortho60.c new file mode 100644 index 00000000000..f917ef96f94 --- /dev/null +++ b/keyboards/cannonkeys/ortho60/ortho60.c @@ -0,0 +1,3 @@ + +#include "ortho60.h" + diff --git a/keyboards/handwired/ortho60/ortho60.h b/keyboards/cannonkeys/ortho60/ortho60.h similarity index 100% rename from keyboards/handwired/ortho60/ortho60.h rename to keyboards/cannonkeys/ortho60/ortho60.h diff --git a/keyboards/handwired/ortho60/readme.md b/keyboards/cannonkeys/ortho60/readme.md similarity index 93% rename from keyboards/handwired/ortho60/readme.md rename to keyboards/cannonkeys/ortho60/readme.md index be2a027c4f3..c3fdbccc5d3 100644 --- a/keyboards/handwired/ortho60/readme.md +++ b/keyboards/cannonkeys/ortho60/readme.md @@ -7,6 +7,6 @@ Hardware Supported: Blue Pill STM32F103C8T6 Make example for this keyboard (after setting up your build environment): - make handwired/ortho60:default + make cannonkeys/ortho60:default See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/handwired/ortho60/rules.mk b/keyboards/cannonkeys/ortho60/rules.mk similarity index 96% rename from keyboards/handwired/ortho60/rules.mk rename to keyboards/cannonkeys/ortho60/rules.mk index 91acb3c5c65..359f447a9cf 100644 --- a/keyboards/handwired/ortho60/rules.mk +++ b/keyboards/cannonkeys/ortho60/rules.mk @@ -1,7 +1,7 @@ # project specific files +VPATH += keyboards/cannonkeys/bluepill SRC = led.c \ - underglow.c \ - hsv2rgb.c + keyboard.c # GENERIC STM32F103C8T6 board - stm32duino bootloader OPT_DEFS = -DCORTEX_VTOR_INIT=0x2000 @@ -50,5 +50,6 @@ COMMAND_ENABLE = yes # Commands for debug and configuration SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend NKRO_ENABLE = yes # USB Nkey Rollover BACKLIGHT_ENABLE = yes +RGBLIGHT_ENABLE = yes LAYOUTS = ortho_5x12 diff --git a/keyboards/cannonkeys/practice60/boards/GENERIC_STM32_F103/board.c b/keyboards/cannonkeys/practice60/boards/GENERIC_STM32_F103/board.c new file mode 100644 index 00000000000..8c5a87f35f8 --- /dev/null +++ b/keyboards/cannonkeys/practice60/boards/GENERIC_STM32_F103/board.c @@ -0,0 +1,56 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#include "hal.h" + +// Value to place in RTC backup register 10 for persistent bootloader mode +#define RTC_BOOTLOADER_FLAG 0x424C + +/** + * @brief PAL setup. + * @details Digital I/O ports static configuration as defined in @p board.h. + * This variable is used by the HAL when initializing the PAL driver. + */ +#if HAL_USE_PAL || defined(__DOXYGEN__) +const PALConfig pal_default_config = +{ + {VAL_GPIOAODR, VAL_GPIOACRL, VAL_GPIOACRH}, + {VAL_GPIOBODR, VAL_GPIOBCRL, VAL_GPIOBCRH}, + {VAL_GPIOCODR, VAL_GPIOCCRL, VAL_GPIOCCRH}, + {VAL_GPIODODR, VAL_GPIODCRL, VAL_GPIODCRH}, + {VAL_GPIOEODR, VAL_GPIOECRL, VAL_GPIOECRH}, +}; +#endif + +/* + * Early initialization code. + * This initialization must be performed just after stack setup and before + * any other initialization. + */ +void __early_init(void) { + + stm32_clock_init(); +} + +/* + * Board-specific initialization code. + */ +void boardInit(void) { + //JTAG-DP Disabled and SW-DP Enabled + AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_JTAGDISABLE; + //Set backup register DR10 to enter bootloader on reset + BKP->DR10 = RTC_BOOTLOADER_FLAG; +} diff --git a/keyboards/cannonkeys/practice60/boards/GENERIC_STM32_F103/board.h b/keyboards/cannonkeys/practice60/boards/GENERIC_STM32_F103/board.h new file mode 100644 index 00000000000..9427adabf11 --- /dev/null +++ b/keyboards/cannonkeys/practice60/boards/GENERIC_STM32_F103/board.h @@ -0,0 +1,166 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef _BOARD_H_ +#define _BOARD_H_ + +/* + * Setup for a Generic STM32F103 board. + */ + +/* + * Board identifier. + */ +#define BOARD_GENERIC_STM32_F103 +#define BOARD_NAME "Generic STM32F103x board" + +/* + * Board frequencies. + */ +#define STM32_LSECLK 32768 +#define STM32_HSECLK 8000000 + +/* + * MCU type, supported types are defined in ./os/hal/platforms/hal_lld.h. + */ +#define STM32F103xB + +/* + * IO pins assignments + */ + +/* on-board */ + +#define GPIOA_LED 8 +#define GPIOD_OSC_IN 0 +#define GPIOD_OSC_OUT 1 + +/* In case your board has a "USB enable" hardware + controlled by a pin, define it here. (It could be just + a 1.5k resistor connected to D+ line.) +*/ +/* +#define GPIOB_USB_DISC 10 +*/ + +/* + * I/O ports initial setup, this configuration is established soon after reset + * in the initialization code. + * + * The digits have the following meaning: + * 0 - Analog input. + * 1 - Push Pull output 10MHz. + * 2 - Push Pull output 2MHz. + * 3 - Push Pull output 50MHz. + * 4 - Digital input. + * 5 - Open Drain output 10MHz. + * 6 - Open Drain output 2MHz. + * 7 - Open Drain output 50MHz. + * 8 - Digital input with PullUp or PullDown resistor depending on ODR. + * 9 - Alternate Push Pull output 10MHz. + * A - Alternate Push Pull output 2MHz. + * B - Alternate Push Pull output 50MHz. + * C - Reserved. + * D - Alternate Open Drain output 10MHz. + * E - Alternate Open Drain output 2MHz. + * F - Alternate Open Drain output 50MHz. + * Please refer to the STM32 Reference Manual for details. + */ + +/* + * Port A setup. + * Everything input with pull-up except: + * PA2 - Alternate output (USART2 TX). + * PA3 - Normal input (USART2 RX). + * PA9 - Alternate output (USART1 TX). + * PA10 - Normal input (USART1 RX). + */ +#define VAL_GPIOACRL 0x88884B88 /* PA7...PA0 */ +#define VAL_GPIOACRH 0x888884B8 /* PA15...PA8 */ +#define VAL_GPIOAODR 0xFFFFFFFF + +/* + * Port B setup. + * Everything input with pull-up except: + * PB10 - Push Pull output (USB switch). + */ +#define VAL_GPIOBCRL 0x88888888 /* PB7...PB0 */ +#define VAL_GPIOBCRH 0x88888388 /* PB15...PB8 */ +#define VAL_GPIOBODR 0xFFFFFFFF + +/* + * Port C setup. + * Everything input with pull-up except: + * PC13 - Push Pull output (LED). + */ +#define VAL_GPIOCCRL 0x88888888 /* PC7...PC0 */ +#define VAL_GPIOCCRH 0x88388888 /* PC15...PC8 */ +#define VAL_GPIOCODR 0xFFFFFFFF + +/* + * Port D setup. + * Everything input with pull-up except: + * PD0 - Normal input (XTAL). + * PD1 - Normal input (XTAL). + */ +#define VAL_GPIODCRL 0x88888844 /* PD7...PD0 */ +#define VAL_GPIODCRH 0x88888888 /* PD15...PD8 */ +#define VAL_GPIODODR 0xFFFFFFFF + +/* + * Port E setup. + * Everything input with pull-up except: + */ +#define VAL_GPIOECRL 0x88888888 /* PE7...PE0 */ +#define VAL_GPIOECRH 0x88888888 /* PE15...PE8 */ +#define VAL_GPIOEODR 0xFFFFFFFF + +/* + * USB bus activation macro, required by the USB driver. + */ +/* The point is that most of the generic STM32F103* boards + have a 1.5k resistor connected on one end to the D+ line + and on the other end to some pin. Or even a slightly more + complicated "USB enable" circuit, controlled by a pin. + That should go here. + + However on some boards (e.g. one that I have), there's no + such hardware. In which case it's better to not do anything. +*/ +/* +#define usb_lld_connect_bus(usbp) palClearPad(GPIOB, GPIOB_USB_DISC) +*/ +#define usb_lld_connect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_INPUT); + +/* + * USB bus de-activation macro, required by the USB driver. + */ +/* +#define usb_lld_disconnect_bus(usbp) palSetPad(GPIOB, GPIOB_USB_DISC) +*/ +#define usb_lld_disconnect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_OUTPUT_PUSHPULL); palClearPad(GPIOA, 12); + +#if !defined(_FROM_ASM_) +#ifdef __cplusplus +extern "C" { +#endif + void boardInit(void); +#ifdef __cplusplus +} +#endif +#endif /* _FROM_ASM_ */ + +#endif /* _BOARD_H_ */ diff --git a/keyboards/cannonkeys/practice60/boards/GENERIC_STM32_F103/board.mk b/keyboards/cannonkeys/practice60/boards/GENERIC_STM32_F103/board.mk new file mode 100644 index 00000000000..6b8b312fd9f --- /dev/null +++ b/keyboards/cannonkeys/practice60/boards/GENERIC_STM32_F103/board.mk @@ -0,0 +1,5 @@ +# List of all the board related files. +BOARDSRC = $(BOARD_PATH)/boards/GENERIC_STM32_F103/board.c + +# Required include directories +BOARDINC = $(BOARD_PATH)/boards/GENERIC_STM32_F103 diff --git a/keyboards/cannonkeys/practice60/bootloader_defs.h b/keyboards/cannonkeys/practice60/bootloader_defs.h new file mode 100644 index 00000000000..6b8fa9f727c --- /dev/null +++ b/keyboards/cannonkeys/practice60/bootloader_defs.h @@ -0,0 +1,10 @@ +/* Address for jumping to bootloader on STM32 chips. */ +/* It is chip dependent, the correct number can be looked up here (page 175): + * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf + * This also requires a patch to chibios: + * /tmk_core/tool/chibios/ch-bootloader-jump.patch + */ + +// STM32F103* does NOT have an USB bootloader in ROM (only serial), +// so setting anything here does not make much sense +#define STM32_BOOTLOADER_ADDRESS 0x80000000 diff --git a/keyboards/cannonkeys/practice60/chconf.h b/keyboards/cannonkeys/practice60/chconf.h new file mode 100644 index 00000000000..bbd9b2da62d --- /dev/null +++ b/keyboards/cannonkeys/practice60/chconf.h @@ -0,0 +1,524 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/chconf.h + * @brief Configuration file template. + * @details A copy of this file must be placed in each project directory, it + * contains the application specific kernel settings. + * + * @addtogroup config + * @details Kernel related settings and hooks. + * @{ + */ + +#ifndef CHCONF_H +#define CHCONF_H + +#define _CHIBIOS_RT_CONF_ + +/*===========================================================================*/ +/** + * @name System timers settings + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System time counter resolution. + * @note Allowed values are 16 or 32 bits. + */ +#define CH_CFG_ST_RESOLUTION 32 + +/** + * @brief System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + * setting also defines the system tick time unit. + */ +#define CH_CFG_ST_FREQUENCY 100000 + +/** + * @brief Time delta constant for the tick-less mode. + * @note If this value is zero then the system uses the classic + * periodic tick. This value represents the minimum number + * of ticks that is safe to specify in a timeout directive. + * The value one is not valid, timeouts are rounded up to + * this value. + */ +#define CH_CFG_ST_TIMEDELTA 0 + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel parameters and options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Round robin interval. + * @details This constant is the number of system ticks allowed for the + * threads before preemption occurs. Setting this value to zero + * disables the preemption for threads with equal priority and the + * round robin becomes cooperative. Note that higher priority + * threads can still preempt, the kernel is always preemptive. + * @note Disabling the round robin preemption makes the kernel more compact + * and generally faster. + * @note The round robin preemption is not supported in tickless mode and + * must be set to zero in that case. + */ +#define CH_CFG_TIME_QUANTUM 0 + +/** + * @brief Managed RAM size. + * @details Size of the RAM area to be managed by the OS. If set to zero + * then the whole available RAM is used. The core memory is made + * available to the heap allocator and/or can be used directly through + * the simplified core memory allocator. + * + * @note In order to let the OS manage the whole RAM the linker script must + * provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note Requires @p CH_CFG_USE_MEMCORE. + */ +#define CH_CFG_MEMCORE_SIZE 0 + +/** + * @brief Idle thread automatic spawn suppression. + * @details When this option is activated the function @p chSysInit() + * does not spawn the idle thread. The application @p main() + * function becomes the idle thread and must implement an + * infinite loop. + */ +#define CH_CFG_NO_IDLE_THREAD FALSE + +/* Use __WFI in the idle thread for waiting. Does lower the power + * consumption. */ +#define CORTEX_ENABLE_WFI_IDLE TRUE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Performance options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief OS optimization. + * @details If enabled then time efficient rather than space efficient code + * is used when two possible implementations exist. + * + * @note This is not related to the compiler optimization options. + * @note The default is @p TRUE. + */ +#define CH_CFG_OPTIMIZE_SPEED TRUE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Subsystem options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Time Measurement APIs. + * @details If enabled then the time measurement APIs are included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_TM FALSE + +/** + * @brief Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_REGISTRY TRUE + +/** + * @brief Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_WAITEXIT TRUE + +/** + * @brief Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_SEMAPHORES TRUE + +/** + * @brief Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores by + * priority rather than in FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE + +/** + * @brief Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MUTEXES TRUE + +/** + * @brief Enables recursive behavior on mutexes. + * @note Recursive mutexes are heavier and have an increased + * memory footprint. + * + * @note The default is @p FALSE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE + +/** + * @brief Conditional Variables APIs. + * @details If enabled then the conditional variables APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#define CH_CFG_USE_CONDVARS TRUE + +/** + * @brief Conditional Variables APIs with timeout. + * @details If enabled then the conditional variables APIs with timeout + * specification are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_CONDVARS. + */ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +/** + * @brief Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_EVENTS TRUE + +/** + * @brief Events Flags APIs with timeout. + * @details If enabled then the events APIs with timeout specification + * are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_EVENTS. + */ +#define CH_CFG_USE_EVENTS_TIMEOUT TRUE + +/** + * @brief Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MESSAGES TRUE + +/** + * @brief Synchronous Messages queuing mode. + * @details If enabled then messages are served by priority rather than in + * FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_MESSAGES. + */ +#define CH_CFG_USE_MESSAGES_PRIORITY FALSE + +/** + * @brief Mailboxes APIs. + * @details If enabled then the asynchronous messages (mailboxes) APIs are + * included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#define CH_CFG_USE_MAILBOXES TRUE + +/** + * @brief Core Memory Manager APIs. + * @details If enabled then the core memory manager APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MEMCORE TRUE + +/** + * @brief Heap Allocator APIs. + * @details If enabled then the memory heap allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or + * @p CH_CFG_USE_SEMAPHORES. + * @note Mutexes are recommended. + */ +#define CH_CFG_USE_HEAP TRUE + +/** + * @brief Memory Pools Allocator APIs. + * @details If enabled then the memory pools allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MEMPOOLS FALSE + +/** + * @brief Dynamic Threads APIs. + * @details If enabled then the dynamic threads creation APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_WAITEXIT. + * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. + */ +#define CH_CFG_USE_DYNAMIC FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Debug option, kernel statistics. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_STATISTICS FALSE + +/** + * @brief Debug option, system state check. + * @details If enabled the correct call protocol for system APIs is checked + * at runtime. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_SYSTEM_STATE_CHECK FALSE + +/** + * @brief Debug option, parameters checks. + * @details If enabled then the checks on the API functions input + * parameters are activated. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_ENABLE_CHECKS FALSE + +/** + * @brief Debug option, consistency checks. + * @details If enabled then all the assertions in the kernel code are + * activated. This includes consistency checks inside the kernel, + * runtime anomalies and port-defined checks. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_ENABLE_ASSERTS FALSE + +/** + * @brief Debug option, trace buffer. + * @details If enabled then the trace buffer is activated. + * + * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. + */ +#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED + +/** + * @brief Trace buffer entries. + * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is + * different from @p CH_DBG_TRACE_MASK_DISABLED. + */ +#define CH_DBG_TRACE_BUFFER_SIZE 128 + +/** + * @brief Debug option, stack checks. + * @details If enabled then a runtime stack check is performed. + * + * @note The default is @p FALSE. + * @note The stack check is performed in a architecture/port dependent way. + * It may not be implemented or some ports. + * @note The default failure mode is to halt the system with the global + * @p panic_msg variable set to @p NULL. + */ +#define CH_DBG_ENABLE_STACK_CHECK FALSE + +/** + * @brief Debug option, stacks initialization. + * @details If enabled then the threads working area is filled with a byte + * value when a thread is created. This can be useful for the + * runtime measurement of the used stack. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_FILL_THREADS FALSE + +/** + * @brief Debug option, threads profiling. + * @details If enabled then a field is added to the @p thread_t structure that + * counts the system ticks occurred while executing the thread. + * + * @note The default is @p FALSE. + * @note This debug option is not currently compatible with the + * tickless mode. + */ +#define CH_DBG_THREADS_PROFILING FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Threads descriptor structure extension. + * @details User fields added to the end of the @p thread_t structure. + */ +#define CH_CFG_THREAD_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief Threads initialization hook. + * @details User initialization code added to the @p chThdInit() API. + * + * @note It is invoked from within @p chThdInit() and implicitly from all + * the threads creation APIs. + */ +#define CH_CFG_THREAD_INIT_HOOK(tp) { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads finalization hook. + * @details User finalization code added to the @p chThdExit() API. + */ +#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ + /* Add threads finalization code here.*/ \ +} + +/** + * @brief Context switch hook. + * @details This hook is invoked just before switching between threads. + */ +#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ + /* Context switch code here.*/ \ +} + +/** + * @brief ISR enter hook. + */ +#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ + /* IRQ prologue code here.*/ \ +} + +/** + * @brief ISR exit hook. + */ +#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ + /* IRQ epilogue code here.*/ \ +} + +/** + * @brief Idle thread enter hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to activate a power saving mode. + */ +#define CH_CFG_IDLE_ENTER_HOOK() { \ + /* Idle-enter code here.*/ \ +} + +/** + * @brief Idle thread leave hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to deactivate a power saving mode. + */ +#define CH_CFG_IDLE_LEAVE_HOOK() { \ + /* Idle-leave code here.*/ \ +} + +/** + * @brief Idle Loop hook. + * @details This hook is continuously invoked by the idle thread loop. + */ +#define CH_CFG_IDLE_LOOP_HOOK() { \ + /* Idle loop code here.*/ \ +} + +/** + * @brief System tick event hook. + * @details This hook is invoked in the system tick handler immediately + * after processing the virtual timers queue. + */ +#define CH_CFG_SYSTEM_TICK_HOOK() { \ + /* System tick event code here.*/ \ +} + +/** + * @brief System halt hook. + * @details This hook is invoked in case to a system halting error before + * the system is halted. + */ +#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ + /* System halt code here.*/ \ +} + +/** + * @brief Trace hook. + * @details This hook is invoked each time a new record is written in the + * trace buffer. + */ +#define CH_CFG_TRACE_HOOK(tep) { \ + /* Trace code here.*/ \ +} + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h). */ +/*===========================================================================*/ + +#endif /* CHCONF_H */ + +/** @} */ diff --git a/keyboards/handwired/practice60/config.h b/keyboards/cannonkeys/practice60/config.h similarity index 100% rename from keyboards/handwired/practice60/config.h rename to keyboards/cannonkeys/practice60/config.h diff --git a/keyboards/cannonkeys/practice60/halconf.h b/keyboards/cannonkeys/practice60/halconf.h new file mode 100644 index 00000000000..72879a575b9 --- /dev/null +++ b/keyboards/cannonkeys/practice60/halconf.h @@ -0,0 +1,353 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/halconf.h + * @brief HAL configuration header. + * @details HAL configuration file, this file allows to enable or disable the + * various device drivers from your application. You may also use + * this file in order to override the device drivers default settings. + * + * @addtogroup HAL_CONF + * @{ + */ + +#ifndef _HALCONF_H_ +#define _HALCONF_H_ + +#include "mcuconf.h" + +/** + * @brief Enables the PAL subsystem. + */ +#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) +#define HAL_USE_PAL TRUE +#endif + +/** + * @brief Enables the ADC subsystem. + */ +#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) +#define HAL_USE_ADC FALSE +#endif + +/** + * @brief Enables the CAN subsystem. + */ +#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) +#define HAL_USE_CAN FALSE +#endif + +/** + * @brief Enables the DAC subsystem. + */ +#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) +#define HAL_USE_DAC FALSE +#endif + +/** + * @brief Enables the EXT subsystem. + */ +#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) +#define HAL_USE_EXT FALSE +#endif + +/** + * @brief Enables the GPT subsystem. + */ +#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) +#define HAL_USE_GPT FALSE +#endif + +/** + * @brief Enables the I2C subsystem. + */ +#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) +#define HAL_USE_I2C FALSE +#endif + +/** + * @brief Enables the I2S subsystem. + */ +#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) +#define HAL_USE_I2S FALSE +#endif + +/** + * @brief Enables the ICU subsystem. + */ +#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) +#define HAL_USE_ICU FALSE +#endif + +/** + * @brief Enables the MAC subsystem. + */ +#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) +#define HAL_USE_MAC FALSE +#endif + +/** + * @brief Enables the MMC_SPI subsystem. + */ +#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) +#define HAL_USE_MMC_SPI FALSE +#endif + +/** + * @brief Enables the PWM subsystem. + */ +#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) +#define HAL_USE_PWM TRUE +#endif + +/** + * @brief Enables the RTC subsystem. + */ +#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) +#define HAL_USE_RTC FALSE +#endif + +/** + * @brief Enables the SDC subsystem. + */ +#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) +#define HAL_USE_SDC FALSE +#endif + +/** + * @brief Enables the SERIAL subsystem. + */ +#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL FALSE +#endif + +/** + * @brief Enables the SERIAL over USB subsystem. + */ +#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL_USB FALSE +#endif + +/** + * @brief Enables the SPI subsystem. + */ +#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) +#define HAL_USE_SPI TRUE +#endif + +/** + * @brief Enables the UART subsystem. + */ +#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) +#define HAL_USE_UART FALSE +#endif + +/** + * @brief Enables the USB subsystem. + */ +#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) +#define HAL_USE_USB TRUE +#endif + +/** + * @brief Enables the WDG subsystem. + */ +#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) +#define HAL_USE_WDG FALSE +#endif + +/*===========================================================================*/ +/* ADC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) +#define ADC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define ADC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* CAN driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Sleep mode related APIs inclusion switch. + */ +#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) +#define CAN_USE_SLEEP_MODE TRUE +#endif + +/*===========================================================================*/ +/* I2C driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the mutual exclusion APIs on the I2C bus. + */ +#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define I2C_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* MAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) +#define MAC_USE_ZERO_COPY FALSE +#endif + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) +#define MAC_USE_EVENTS TRUE +#endif + +/*===========================================================================*/ +/* MMC_SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + * This option is recommended also if the SPI driver does not + * use a DMA channel and heavily loads the CPU. + */ +#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) +#define MMC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SDC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Number of initialization attempts before rejecting the card. + * @note Attempts are performed at 10mS intervals. + */ +#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) +#define SDC_INIT_RETRY 100 +#endif + +/** + * @brief Include support for MMC cards. + * @note MMC support is not yet implemented so this option must be kept + * at @p FALSE. + */ +#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) +#define SDC_MMC_SUPPORT FALSE +#endif + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + */ +#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) +#define SDC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SERIAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Default bit rate. + * @details Configuration parameter, this is the baud rate selected for the + * default configuration. + */ +#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) +#define SERIAL_DEFAULT_BITRATE 38400 +#endif + +/** + * @brief Serial buffers size. + * @details Configuration parameter, you can change the depth of the queue + * buffers depending on the requirements of your application. + * @note The default is 64 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_BUFFERS_SIZE 16 +#endif + +/*===========================================================================*/ +/* SERIAL_USB driver related setting. */ +/*===========================================================================*/ + +/** + * @brief Serial over USB buffers size. + * @details Configuration parameter, the buffer size must be a multiple of + * the USB data endpoint maximum packet size. + * @note The default is 64 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_SIZE 1 +#endif + +/*===========================================================================*/ +/* SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) +#define SPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define SPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* USB driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) +#define USB_USE_WAIT TRUE +#endif + +#endif /* _HALCONF_H_ */ + +/** @} */ diff --git a/keyboards/handwired/practice60/info.json b/keyboards/cannonkeys/practice60/info.json similarity index 100% rename from keyboards/handwired/practice60/info.json rename to keyboards/cannonkeys/practice60/info.json diff --git a/keyboards/handwired/practice60/keymaps/default/keymap.c b/keyboards/cannonkeys/practice60/keymaps/default/keymap.c similarity index 100% rename from keyboards/handwired/practice60/keymaps/default/keymap.c rename to keyboards/cannonkeys/practice60/keymaps/default/keymap.c diff --git a/keyboards/cannonkeys/practice60/ld/MKL26Z64.ld b/keyboards/cannonkeys/practice60/ld/MKL26Z64.ld new file mode 100644 index 00000000000..c4ca8b874cc --- /dev/null +++ b/keyboards/cannonkeys/practice60/ld/MKL26Z64.ld @@ -0,0 +1,105 @@ +/* + * Copyright (C) 2013-2016 Fabio Utzig, http://fabioutzig.com + * (C) 2016 flabbergast + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/* + * KL26Z64 memory setup. + */ +MEMORY +{ + flash0 : org = 0x00000000, len = 0x100 + flash1 : org = 0x00000400, len = 0x10 + flash2 : org = 0x00000410, len = 62k - 0x410 + flash3 : org = 0x0000F800, len = 2k + flash4 : org = 0x00000000, len = 0 + flash5 : org = 0x00000000, len = 0 + flash6 : org = 0x00000000, len = 0 + flash7 : org = 0x00000000, len = 0 + ram0 : org = 0x1FFFF800, len = 8k + ram1 : org = 0x00000000, len = 0 + ram2 : org = 0x00000000, len = 0 + ram3 : org = 0x00000000, len = 0 + ram4 : org = 0x00000000, len = 0 + ram5 : org = 0x00000000, len = 0 + ram6 : org = 0x00000000, len = 0 + ram7 : org = 0x00000000, len = 0 +} + +/* Flash region for the configuration bytes.*/ +SECTIONS +{ + .cfmprotect : ALIGN(4) SUBALIGN(4) + { + KEEP(*(.cfmconfig)) + } > flash1 +} + +/* For each data/text section two region are defined, a virtual region + and a load region (_LMA suffix).*/ + +/* Flash region to be used for exception vectors.*/ +REGION_ALIAS("VECTORS_FLASH", flash0); +REGION_ALIAS("VECTORS_FLASH_LMA", flash0); + +/* Flash region to be used for constructors and destructors.*/ +REGION_ALIAS("XTORS_FLASH", flash2); +REGION_ALIAS("XTORS_FLASH_LMA", flash2); + +/* Flash region to be used for code text.*/ +REGION_ALIAS("TEXT_FLASH", flash2); +REGION_ALIAS("TEXT_FLASH_LMA", flash2); + +/* Flash region to be used for read only data.*/ +REGION_ALIAS("RODATA_FLASH", flash2); +REGION_ALIAS("RODATA_FLASH_LMA", flash2); + +/* Flash region to be used for various.*/ +REGION_ALIAS("VARIOUS_FLASH", flash2); +REGION_ALIAS("VARIOUS_FLASH_LMA", flash2); + +/* Flash region to be used for RAM(n) initialization data.*/ +REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2); + +/* RAM region to be used for Main stack. This stack accommodates the processing + of all exceptions and interrupts.*/ +REGION_ALIAS("MAIN_STACK_RAM", ram0); + +/* RAM region to be used for the process stack. This is the stack used by + the main() function.*/ +REGION_ALIAS("PROCESS_STACK_RAM", ram0); + +/* RAM region to be used for data segment.*/ +REGION_ALIAS("DATA_RAM", ram0); +REGION_ALIAS("DATA_RAM_LMA", flash2); + +/* RAM region to be used for BSS segment.*/ +REGION_ALIAS("BSS_RAM", ram0); + +/* RAM region to be used for the default heap.*/ +REGION_ALIAS("HEAP_RAM", ram0); + +__eeprom_workarea_start__ = ORIGIN(flash3); +__eeprom_workarea_size__ = LENGTH(flash3); +__eeprom_workarea_end__ = __eeprom_workarea_start__ + __eeprom_workarea_size__; + +/* Generic rules inclusion.*/ +INCLUDE rules.ld diff --git a/keyboards/cannonkeys/practice60/ld/STM32F103x8_stm32duino_bootloader.ld b/keyboards/cannonkeys/practice60/ld/STM32F103x8_stm32duino_bootloader.ld new file mode 100644 index 00000000000..d0688ef6016 --- /dev/null +++ b/keyboards/cannonkeys/practice60/ld/STM32F103x8_stm32duino_bootloader.ld @@ -0,0 +1,88 @@ +/* + ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/* + * ST32F103xB memory setup for use with the maplemini bootloader. + * You will have to + * #define CORTEX_VTOR_INIT 0x5000 + * in your projects chconf.h + */ +MEMORY +{ + flash0 : org = 0x08002000, len = 64k - 0x2000 + flash1 : org = 0x00000000, len = 0 + flash2 : org = 0x00000000, len = 0 + flash3 : org = 0x00000000, len = 0 + flash4 : org = 0x00000000, len = 0 + flash5 : org = 0x00000000, len = 0 + flash6 : org = 0x00000000, len = 0 + flash7 : org = 0x00000000, len = 0 + ram0 : org = 0x20000000, len = 20k + ram1 : org = 0x00000000, len = 0 + ram2 : org = 0x00000000, len = 0 + ram3 : org = 0x00000000, len = 0 + ram4 : org = 0x00000000, len = 0 + ram5 : org = 0x00000000, len = 0 + ram6 : org = 0x00000000, len = 0 + ram7 : org = 0x00000000, len = 0 +} + +/* For each data/text section two region are defined, a virtual region + and a load region (_LMA suffix).*/ + +/* Flash region to be used for exception vectors.*/ +REGION_ALIAS("VECTORS_FLASH", flash0); +REGION_ALIAS("VECTORS_FLASH_LMA", flash0); + +/* Flash region to be used for constructors and destructors.*/ +REGION_ALIAS("XTORS_FLASH", flash0); +REGION_ALIAS("XTORS_FLASH_LMA", flash0); + +/* Flash region to be used for code text.*/ +REGION_ALIAS("TEXT_FLASH", flash0); +REGION_ALIAS("TEXT_FLASH_LMA", flash0); + +/* Flash region to be used for read only data.*/ +REGION_ALIAS("RODATA_FLASH", flash0); +REGION_ALIAS("RODATA_FLASH_LMA", flash0); + +/* Flash region to be used for various.*/ +REGION_ALIAS("VARIOUS_FLASH", flash0); +REGION_ALIAS("VARIOUS_FLASH_LMA", flash0); + +/* Flash region to be used for RAM(n) initialization data.*/ +REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0); + +/* RAM region to be used for Main stack. This stack accommodates the processing + of all exceptions and interrupts.*/ +REGION_ALIAS("MAIN_STACK_RAM", ram0); + +/* RAM region to be used for the process stack. This is the stack used by + the main() function.*/ +REGION_ALIAS("PROCESS_STACK_RAM", ram0); + +/* RAM region to be used for data segment.*/ +REGION_ALIAS("DATA_RAM", ram0); +REGION_ALIAS("DATA_RAM_LMA", flash0); + +/* RAM region to be used for BSS segment.*/ +REGION_ALIAS("BSS_RAM", ram0); + +/* RAM region to be used for the default heap.*/ +REGION_ALIAS("HEAP_RAM", ram0); + +/* Generic rules inclusion.*/ +INCLUDE rules.ld diff --git a/keyboards/cannonkeys/practice60/mcuconf.h b/keyboards/cannonkeys/practice60/mcuconf.h new file mode 100644 index 00000000000..fced27289e0 --- /dev/null +++ b/keyboards/cannonkeys/practice60/mcuconf.h @@ -0,0 +1,209 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef _MCUCONF_H_ +#define _MCUCONF_H_ + +#define STM32F103_MCUCONF + +/* + * STM32F103 drivers configuration. + * The following settings override the default settings present in + * the various device driver implementation headers. + * Note that the settings for each driver only have effect if the whole + * driver is enabled in halconf.h. + * + * IRQ priorities: + * 15...0 Lowest...Highest. + * + * DMA priorities: + * 0...3 Lowest...Highest. + */ + +/* + * HAL driver system settings. + */ +#define STM32_NO_INIT FALSE +#define STM32_HSI_ENABLED TRUE +#define STM32_LSI_ENABLED FALSE +#define STM32_HSE_ENABLED TRUE +#define STM32_LSE_ENABLED FALSE +#define STM32_SW STM32_SW_PLL +#define STM32_PLLSRC STM32_PLLSRC_HSE +#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV1 +#define STM32_PLLMUL_VALUE 9 +#define STM32_HPRE STM32_HPRE_DIV1 +#define STM32_PPRE1 STM32_PPRE1_DIV2 +#define STM32_PPRE2 STM32_PPRE2_DIV2 +#define STM32_ADCPRE STM32_ADCPRE_DIV4 +#define STM32_USB_CLOCK_REQUIRED TRUE +#define STM32_USBPRE STM32_USBPRE_DIV1P5 +#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK +#define STM32_RTCSEL STM32_RTCSEL_HSEDIV +#define STM32_PVD_ENABLE FALSE +#define STM32_PLS STM32_PLS_LEV0 + +/* + * ADC driver system settings. + */ +#define STM32_ADC_USE_ADC1 FALSE +#define STM32_ADC_ADC1_DMA_PRIORITY 2 +#define STM32_ADC_ADC1_IRQ_PRIORITY 6 + +/* + * CAN driver system settings. + */ +#define STM32_CAN_USE_CAN1 FALSE +#define STM32_CAN_CAN1_IRQ_PRIORITY 11 + +/* + * EXT driver system settings. + */ +#define STM32_EXT_EXTI0_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI1_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI2_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI3_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI4_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI5_9_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI10_15_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI16_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI17_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI18_IRQ_PRIORITY 6 +#define STM32_EXT_EXTI19_IRQ_PRIORITY 6 + +/* + * GPT driver system settings. + */ +#define STM32_GPT_USE_TIM1 FALSE +#define STM32_GPT_USE_TIM2 FALSE +#define STM32_GPT_USE_TIM3 FALSE +#define STM32_GPT_USE_TIM4 FALSE +#define STM32_GPT_USE_TIM5 FALSE +#define STM32_GPT_USE_TIM8 FALSE +#define STM32_GPT_TIM1_IRQ_PRIORITY 7 +#define STM32_GPT_TIM2_IRQ_PRIORITY 7 +#define STM32_GPT_TIM3_IRQ_PRIORITY 7 +#define STM32_GPT_TIM4_IRQ_PRIORITY 7 +#define STM32_GPT_TIM5_IRQ_PRIORITY 7 +#define STM32_GPT_TIM8_IRQ_PRIORITY 7 + +/* + * I2C driver system settings. + */ +#define STM32_I2C_USE_I2C1 FALSE +#define STM32_I2C_USE_I2C2 FALSE +#define STM32_I2C_BUSY_TIMEOUT 50 +#define STM32_I2C_I2C1_IRQ_PRIORITY 5 +#define STM32_I2C_I2C2_IRQ_PRIORITY 5 +#define STM32_I2C_I2C1_DMA_PRIORITY 3 +#define STM32_I2C_I2C2_DMA_PRIORITY 3 +#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") + +/* + * ICU driver system settings. + */ +#define STM32_ICU_USE_TIM1 FALSE +#define STM32_ICU_USE_TIM2 FALSE +#define STM32_ICU_USE_TIM3 FALSE +#define STM32_ICU_USE_TIM4 FALSE +#define STM32_ICU_USE_TIM5 FALSE +#define STM32_ICU_USE_TIM8 FALSE +#define STM32_ICU_TIM1_IRQ_PRIORITY 7 +#define STM32_ICU_TIM2_IRQ_PRIORITY 7 +#define STM32_ICU_TIM3_IRQ_PRIORITY 7 +#define STM32_ICU_TIM4_IRQ_PRIORITY 7 +#define STM32_ICU_TIM5_IRQ_PRIORITY 7 +#define STM32_ICU_TIM8_IRQ_PRIORITY 7 + +/* + * PWM driver system settings. + */ +#define STM32_PWM_USE_ADVANCED FALSE +#define STM32_PWM_USE_TIM1 TRUE +#define STM32_PWM_USE_TIM2 FALSE +#define STM32_PWM_USE_TIM3 FALSE +#define STM32_PWM_USE_TIM4 FALSE +#define STM32_PWM_USE_TIM5 FALSE +#define STM32_PWM_USE_TIM8 FALSE +#define STM32_PWM_TIM1_IRQ_PRIORITY 7 +#define STM32_PWM_TIM2_IRQ_PRIORITY 7 +#define STM32_PWM_TIM3_IRQ_PRIORITY 7 +#define STM32_PWM_TIM4_IRQ_PRIORITY 7 +#define STM32_PWM_TIM5_IRQ_PRIORITY 7 +#define STM32_PWM_TIM8_IRQ_PRIORITY 7 + +/* + * RTC driver system settings. + */ +#define STM32_RTC_IRQ_PRIORITY 15 + +/* + * SERIAL driver system settings. + */ +#define STM32_SERIAL_USE_USART1 FALSE +#define STM32_SERIAL_USE_USART2 FALSE +#define STM32_SERIAL_USE_USART3 FALSE +#define STM32_SERIAL_USE_UART4 FALSE +#define STM32_SERIAL_USE_UART5 FALSE +#define STM32_SERIAL_USART1_PRIORITY 12 +#define STM32_SERIAL_USART2_PRIORITY 12 +#define STM32_SERIAL_USART3_PRIORITY 12 +#define STM32_SERIAL_UART4_PRIORITY 12 +#define STM32_SERIAL_UART5_PRIORITY 12 + +/* + * SPI driver system settings. + */ +#define STM32_SPI_USE_SPI1 FALSE +#define STM32_SPI_USE_SPI2 TRUE +#define STM32_SPI_USE_SPI3 FALSE +#define STM32_SPI_SPI1_DMA_PRIORITY 1 +#define STM32_SPI_SPI2_DMA_PRIORITY 1 +#define STM32_SPI_SPI3_DMA_PRIORITY 1 +#define STM32_SPI_SPI1_IRQ_PRIORITY 10 +#define STM32_SPI_SPI2_IRQ_PRIORITY 10 +#define STM32_SPI_SPI3_IRQ_PRIORITY 10 +#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") + +/* + * ST driver system settings. + */ +#define STM32_ST_IRQ_PRIORITY 8 +#define STM32_ST_USE_TIMER 2 + +/* + * UART driver system settings. + */ +#define STM32_UART_USE_USART1 FALSE +#define STM32_UART_USE_USART2 FALSE +#define STM32_UART_USE_USART3 FALSE +#define STM32_UART_USART1_IRQ_PRIORITY 12 +#define STM32_UART_USART2_IRQ_PRIORITY 12 +#define STM32_UART_USART3_IRQ_PRIORITY 12 +#define STM32_UART_USART1_DMA_PRIORITY 0 +#define STM32_UART_USART2_DMA_PRIORITY 0 +#define STM32_UART_USART3_DMA_PRIORITY 0 +#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") + +/* + * USB driver system settings. + */ +#define STM32_USB_USE_USB1 TRUE +#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE +#define STM32_USB_USB1_HP_IRQ_PRIORITY 13 +#define STM32_USB_USB1_LP_IRQ_PRIORITY 14 + +#endif /* _MCUCONF_H_ */ diff --git a/keyboards/cannonkeys/practice60/practice60.c b/keyboards/cannonkeys/practice60/practice60.c new file mode 100644 index 00000000000..d2cf47deb84 --- /dev/null +++ b/keyboards/cannonkeys/practice60/practice60.c @@ -0,0 +1,2 @@ + +#include "practice60.h" diff --git a/keyboards/handwired/practice60/practice60.h b/keyboards/cannonkeys/practice60/practice60.h similarity index 100% rename from keyboards/handwired/practice60/practice60.h rename to keyboards/cannonkeys/practice60/practice60.h diff --git a/keyboards/cannonkeys/practice60/readme.md b/keyboards/cannonkeys/practice60/readme.md new file mode 100644 index 00000000000..044aadf6e98 --- /dev/null +++ b/keyboards/cannonkeys/practice60/readme.md @@ -0,0 +1,12 @@ +# Practice 60 + +A Blue Pill STM32F103C8T6-based 60% ANSI board. + +Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan1) +Hardware Supported: Blue Pill STM32F103C8T6 + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/practice60:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/cannonkeys/practice60/rules.mk b/keyboards/cannonkeys/practice60/rules.mk new file mode 100644 index 00000000000..cf8554c0c6f --- /dev/null +++ b/keyboards/cannonkeys/practice60/rules.mk @@ -0,0 +1,57 @@ +# project specific files +VPATH += keyboards/cannonkeys/bluepill +SRC = led.c \ + keyboard.c + +# GENERIC STM32F103C8T6 board - stm32duino bootloader +OPT_DEFS = -DCORTEX_VTOR_INIT=0x2000 +MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader +BOARD = GENERIC_STM32_F103 + +# OPT_DEFS = +# MCU_LDSCRIPT = STM32F103x8 +# BOARD = GENERIC_STM32_F103 + +## chip/board settings +# the next two should match the directories in +# /os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) +MCU_FAMILY = STM32 +MCU_SERIES = STM32F1xx +# linker script to use +# it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ +# or /ld/ +# startup code to use +# is should exist in /os/common/ports/ARMCMx/compilers/GCC/mk/ +MCU_STARTUP = stm32f1xx +# it should exist either in /os/hal/boards/ +# or /boards +# Cortex version +# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4 +MCU = cortex-m3 +# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 +ARMV = 7 +# If you want to be able to jump to bootloader from firmware on STM32 MCUs, +# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in +# ./bootloader_defs.h or in ./boards//bootloader_defs.h (if you have +# a custom board definition that you plan to reuse). +# If you're not setting it here, leave it commented out. +# It is chip dependent, the correct number can be looked up here (page 175): +# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf +# This also requires a patch to chibios: +# /tmk_core/tool/chibios/ch-bootloader-jump.patch +#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800 + + +#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes +RGBLIGHT_ENABLE = yes + +LAYOUTS = 60_ansi + +DEFAULT_FOLDER = cannonkeys/practice60 diff --git a/keyboards/handwired/ortho60/hsv2rgb.c b/keyboards/handwired/ortho60/hsv2rgb.c deleted file mode 100644 index adb7af8fa57..00000000000 --- a/keyboards/handwired/ortho60/hsv2rgb.c +++ /dev/null @@ -1,80 +0,0 @@ -/* hsv2rgb.c - * Integer only conversion functions between HSV and RGB - */ - -#include "hsv2rgb.h" - -// TODO fix these buggy macros -#define max(x,y) ((x>y) ? x:y) -#define min(x,y) ((x>y) ? y:x) -#define min3(x,y,z) (min(min(x,y),z)) -#define max3(x,y,z) (max(max(x,y),z)) - - -rgb_color hsv2rgb(hsv_color hsv) -{ - // From : http://qscribble.blogspot.fr/2008/06/integer-conversion-from-hsl-to-rgb.html - int h = hsv.h; - int s = hsv.s; - int v = hsv.v; - rgb_color rgb = {0, 0, 0}; - - if (v == 0) - return rgb; - - // sextant = 0 .. 5 - int sextant = (h*6)/256; - // f = 0 .. 42 - int f = h - (sextant*256)/6; - - int p = (v * (256 - s))/256; - int q = (v * (256*43 - s*f))/(256*43); - int t = (v * (256*43 - s*(43-f)))/(256*43); - - // Corrige les erreurs dues aux arrondis - p = max(min(p, 255), 0); - q = max(min(q, 255), 0); - t = max(min(t, 255), 0); - - switch(sextant){ - case 0: rgb.r = v; rgb.g = t; rgb.b = p; break; - case 1: rgb.r = q; rgb.g = v; rgb.b = p; break; - case 2: rgb.r = p; rgb.g = v; rgb.b = t; break; - case 3: rgb.r = p; rgb.g = q; rgb.b = v; break; - case 4: rgb.r = t; rgb.g = p; rgb.b = v; break; - default:rgb.r = v; rgb.g = p; rgb.b = q; break; - } - return rgb; -} - - -hsv_color rgb2hsv(rgb_color rgb) -{ - // From : http://www.ruinelli.ch/rgb-to-hsv - hsv_color hsv = {0, 0, 0}; - int min, max, delta; - - min = min3(rgb.r, rgb.g, rgb.b); - max = max3(rgb.r, rgb.g, rgb.b); - - if(max==0) { - hsv.h = 0; - hsv.s = 0; - hsv.v = 0; - return hsv; - } - - hsv.v = max; - delta = max - min; - - hsv.s = (delta)*255 / max; - - if(rgb.r == max) - hsv.h = (rgb.g - rgb.b)*42/delta; // between yellow & magenta - else if(rgb.g == max) - hsv.h = 120 + (rgb.b - rgb.r)*42/delta; // between cyan & yellow - else - hsv.h = 240 + (rgb.r - rgb.g)*42/delta; // between magenta & cyan - - return hsv; -} \ No newline at end of file diff --git a/keyboards/handwired/ortho60/hsv2rgb.h b/keyboards/handwired/ortho60/hsv2rgb.h deleted file mode 100644 index 99566c32c07..00000000000 --- a/keyboards/handwired/ortho60/hsv2rgb.h +++ /dev/null @@ -1,23 +0,0 @@ -/* hsv2rgb.h - * Convert Hue Saturation Value to Red Green Blue - * - * Programme de convertion d'une information HSV en RGB - */ -#ifndef HSV2RGB_H -#define HSV2RGB_H - -typedef struct { - unsigned char h; - unsigned char s; - unsigned char v; -} hsv_color; - -typedef struct { - unsigned char r; - unsigned char g; - unsigned char b; -} rgb_color; - -rgb_color hsv2rgb(hsv_color hsv); - -#endif \ No newline at end of file diff --git a/keyboards/handwired/ortho60/led.c b/keyboards/handwired/ortho60/led.c deleted file mode 100644 index f15baed169d..00000000000 --- a/keyboards/handwired/ortho60/led.c +++ /dev/null @@ -1,51 +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 . -*/ - -#include "hal.h" -#include "backlight.h" -#include "led.h" -#include "printf.h" - -void backlight_init_ports(void) { - printf("backlight_init_ports()\n"); - #ifdef BACKLIGHT_ENABLE - palSetPadMode(GPIOA, 8, PAL_MODE_OUTPUT_PUSHPULL); - palSetPad(GPIOA, 8); - #endif -} - -void backlight_set(uint8_t level) { - printf("backlight_set(%d)\n", level); - #ifdef BACKLIGHT_ENABLE - if (level == 0) { - // Turn backlight off - palSetPad(GPIOA, 8); - } else { - // Turn backlight on - palClearPad(GPIOA, 8); - } - #endif -} - -void led_set(uint8_t usb_led) -{ - if (usb_led & (1< 1tick is 0.32us -}; - -/* - * Function used to initialize the driver. - * - * Starts by shutting off all the LEDs. - * Then gets access on the LED_SPI driver. - * May eventually launch an animation on the LEDs (e.g. a thread setting the - * txbuff values) - */ -void leds_init(void){ - for(int i = 0; i < RESET_SIZE; i++) - txbuf[DATA_SIZE+i] = 0x00; - for (int i=0; i> 8)); - EEPROM_WriteDataByte(p+2, (uint8_t) (Value >> 16)); - EEPROM_WriteDataByte(p+3, (uint8_t) (Value >> 24)); + uint32_t existingValue = EEPROM_ReadDataByte(p) | (EEPROM_ReadDataByte(p+1) << 8) + | (EEPROM_ReadDataByte(p+2) << 16) | (EEPROM_ReadDataByte(p+3) << 24); + if(Value != existingValue){ + EEPROM_WriteDataByte(p, (uint8_t) Value); + EEPROM_WriteDataByte(p+1, (uint8_t) (Value >> 8)); + EEPROM_WriteDataByte(p+2, (uint8_t) (Value >> 16)); + EEPROM_WriteDataByte(p+3, (uint8_t) (Value >> 24)); + } } void eeprom_read_block(void *buf, const void *addr, uint32_t len) { From 3d338f2555f4ceab3c4ca06d70076c663d937d63 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Tue, 29 Jan 2019 21:23:03 -0800 Subject: [PATCH 19/55] [Keyboard] Gray Studio Space 65 Support (#5001) * initial commit * get rid of vanilla code, and fix formatting * write up a nice looking readme * add in pins and enable features * define keymap and switch/physical matrix * add QMK Configurator support * switch to bootmagic lite to decrease file size --- keyboards/gray_studio/space65/config.h | 244 ++++++++++++++++++ keyboards/gray_studio/space65/info.json | 12 + .../space65/keymaps/default/config.h | 19 ++ .../space65/keymaps/default/keymap.c | 73 ++++++ .../space65/keymaps/default/readme.md | 1 + keyboards/gray_studio/space65/readme.md | 13 + keyboards/gray_studio/space65/rules.mk | 80 ++++++ keyboards/gray_studio/space65/space65.c | 43 +++ keyboards/gray_studio/space65/space65.h | 44 ++++ 9 files changed, 529 insertions(+) create mode 100644 keyboards/gray_studio/space65/config.h create mode 100644 keyboards/gray_studio/space65/info.json create mode 100644 keyboards/gray_studio/space65/keymaps/default/config.h create mode 100644 keyboards/gray_studio/space65/keymaps/default/keymap.c create mode 100644 keyboards/gray_studio/space65/keymaps/default/readme.md create mode 100644 keyboards/gray_studio/space65/readme.md create mode 100644 keyboards/gray_studio/space65/rules.mk create mode 100644 keyboards/gray_studio/space65/space65.c create mode 100644 keyboards/gray_studio/space65/space65.h diff --git a/keyboards/gray_studio/space65/config.h b/keyboards/gray_studio/space65/config.h new file mode 100644 index 00000000000..cb8ee3c0198 --- /dev/null +++ b/keyboards/gray_studio/space65/config.h @@ -0,0 +1,244 @@ +/* +Copyright 2019 MechMerlin + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Gray Studio +#define PRODUCT Space65 +#define DESCRIPTION 65% custom keyboard + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* + * 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 { D0, D1, F0, F4, F1 } +#define MATRIX_COL_PINS { B0, B3, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ +#define DIODE_DIRECTION COL2ROW + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 + +#define BACKLIGHT_PIN B7 +#define BACKLIGHT_BREATHING +#define BACKLIGHT_LEVELS 5 + +#define RGB_DI_PIN E2 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 5 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +// /*== all animations enable ==*/ +// #define RGBLIGHT_ANIMATIONS +// /*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +#endif + +/* 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 + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * 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 */ +/* defined by default; to change, uncomment and set to the combination you want */ +// #define IS_COMMAND() (get_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 + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ +//#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 1 + +/* + * HD44780 LCD Display Configuration + */ +/* +#define LCD_LINES 2 //< number of visible lines of the display +#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display + +#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode + +#if LCD_IO_MODE +#define LCD_PORT PORTB //< port for the LCD lines +#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0 +#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1 +#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2 +#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3 +#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0 +#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1 +#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2 +#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3 +#define LCD_RS_PORT LCD_PORT //< port for RS line +#define LCD_RS_PIN 3 //< pin for RS line +#define LCD_RW_PORT LCD_PORT //< port for RW line +#define LCD_RW_PIN 2 //< pin for RW line +#define LCD_E_PORT LCD_PORT //< port for Enable line +#define LCD_E_PIN 1 //< pin for Enable line +#endif +*/ + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/gray_studio/space65/info.json b/keyboards/gray_studio/space65/info.json new file mode 100644 index 00000000000..aafae5b08ad --- /dev/null +++ b/keyboards/gray_studio/space65/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Gray Studio Space65", + "url": "", + "maintainer": "qmk", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.75}, {"x":6.5, "y":4, "w":1.25}, {"x":7.75, "y":4, "w":2.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] + } + } +} \ No newline at end of file diff --git a/keyboards/gray_studio/space65/keymaps/default/config.h b/keyboards/gray_studio/space65/keymaps/default/config.h new file mode 100644 index 00000000000..26c6d6ade10 --- /dev/null +++ b/keyboards/gray_studio/space65/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2019 MechMerlin + * + * 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 . + */ + +#pragma once + +// place overrides here diff --git a/keyboards/gray_studio/space65/keymaps/default/keymap.c b/keyboards/gray_studio/space65/keymaps/default/keymap.c new file mode 100644 index 00000000000..c42bbe0f047 --- /dev/null +++ b/keyboards/gray_studio/space65/keymaps/default/keymap.c @@ -0,0 +1,73 @@ +/* Copyright 2019 MechMerlin + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + QMKBEST = SAFE_RANGE, + QMKURL +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT( \ + 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_BSLS, KC_GRV, KC_INS, \ + 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_DEL, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, \ + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT \ + ), +[1] = LAYOUT( \ + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_MUTE, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_VOLD, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END \ + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QMKBEST: + if (record->event.pressed) { + // when keycode QMKBEST is pressed + SEND_STRING("QMK is the best thing ever!"); + } else { + // when keycode QMKBEST is released + } + break; + case QMKURL: + if (record->event.pressed) { + // when keycode QMKURL is pressed + SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER)); + } else { + // when keycode QMKURL is released + } + break; + } + return true; +} + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +void led_set_user(uint8_t usb_led) { + +} diff --git a/keyboards/gray_studio/space65/keymaps/default/readme.md b/keyboards/gray_studio/space65/keymaps/default/readme.md new file mode 100644 index 00000000000..944c1e8a0f5 --- /dev/null +++ b/keyboards/gray_studio/space65/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for space65 diff --git a/keyboards/gray_studio/space65/readme.md b/keyboards/gray_studio/space65/readme.md new file mode 100644 index 00000000000..9f3b3c1629b --- /dev/null +++ b/keyboards/gray_studio/space65/readme.md @@ -0,0 +1,13 @@ +# Gray Studio Space65 + +A 65% keyboard with RGB Underglow, Backlight, USB C. + +Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin) +Hardware Supported: Gray Studio Space 65 +Hardware Availability: [Geekhack Group Buy](https://geekhack.org/index.php?topic=97216.0) + +Make example for this keyboard (after setting up your build environment): + + make gray_studio/space65:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/gray_studio/space65/rules.mk b/keyboards/gray_studio/space65/rules.mk new file mode 100644 index 00000000000..0ede67719f7 --- /dev/null +++ b/keyboards/gray_studio/space65/rules.mk @@ -0,0 +1,80 @@ +# MCU name +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 + + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +BOOTLOADER = atmel-dfu + + +# If you don't know the bootloader type, then you can specify the +# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +# OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # 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 = yes # Enable keyboard backlight functionality on B7 by default +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400) diff --git a/keyboards/gray_studio/space65/space65.c b/keyboards/gray_studio/space65/space65.c new file mode 100644 index 00000000000..26d80e00ec9 --- /dev/null +++ b/keyboards/gray_studio/space65/space65.c @@ -0,0 +1,43 @@ +/* Copyright 2019 MechMerlin + * + * 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 . + */ +#include "space65.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/gray_studio/space65/space65.h b/keyboards/gray_studio/space65/space65.h new file mode 100644 index 00000000000..c2158fd9284 --- /dev/null +++ b/keyboards/gray_studio/space65/space65.h @@ -0,0 +1,44 @@ +/* Copyright 2019 MechMerlin + * + * 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 . + */ +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, \ + k10, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, \ + k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2F, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, k3E, k3F, \ + k40, k41, k43, k45, k47, k48, k4A, k4B, k4D, k4E, k4F \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \ + { k10, KC_NO, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \ + { k20, KC_NO, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, KC_NO, k2F }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, KC_NO, k3D, k3E, k3F }, \ + { k40, k41, KC_NO, k43, KC_NO, k45, KC_NO, k47, k48, KC_NO, k4A, k4B, KC_NO, k4D, k4E, k4F }, \ +} + From d192fd00cd50256e50692f0295a1070d7fe4f26b Mon Sep 17 00:00:00 2001 From: Logan Bussell <36081148+lbussell@users.noreply.github.com> Date: Wed, 30 Jan 2019 08:56:25 -0800 Subject: [PATCH 20/55] [Keymap] Updates to ortho_4x12/buswerks keymap (#4996) * Added buswerks keymap * cleaned up comments on buswerks keymap * Added buswerks keymap readme.md * Fixed spelling in buswerks readme.md * Removed unnecessary includes, changed process_record_user to now use set_single_persistent_default_layer(), removed deprecated functions, and moved the audio ifdef block to config.h * Changed buswerks ortho_4x12 layout to accommodate 'MIT' layout * Updated README.md to reflect layout changes * update buswerks keymap * add buswerks tragicforce68 keymap * add rotary encoder support * update readme * fix image link in readme * fix KC_NO shorthand --- .../community/ortho_4x12/buswerks/config.h | 11 +- .../community/ortho_4x12/buswerks/keymap.c | 313 +++++++++--------- .../community/ortho_4x12/buswerks/readme.md | 35 +- 3 files changed, 169 insertions(+), 190 deletions(-) diff --git a/layouts/community/ortho_4x12/buswerks/config.h b/layouts/community/ortho_4x12/buswerks/config.h index 1498cae744c..8d6e26287e0 100644 --- a/layouts/community/ortho_4x12/buswerks/config.h +++ b/layouts/community/ortho_4x12/buswerks/config.h @@ -13,10 +13,15 @@ #ifdef AUDIO_ENABLE #define STARTUP_SONG SONG(PLANCK_SOUND) - // #define STARTUP_SONG SONG(NO_SOUND) - + // #define STARTUP_SONG SONG(NO_SOUND) #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ SONG(COLEMAK_SOUND), \ SONG(DVORAK_SOUND) \ } -#endif \ No newline at end of file +#endif + +// MIDI notes can be sent when in Music mode +#define MIDI_BASIC + +// Most tactile encoders have detents every 4 stages +#define ENCODER_RESOLUTION 4 diff --git a/layouts/community/ortho_4x12/buswerks/keymap.c b/layouts/community/ortho_4x12/buswerks/keymap.c index 72c592a0c3f..bea18f8f488 100644 --- a/layouts/community/ortho_4x12/buswerks/keymap.c +++ b/layouts/community/ortho_4x12/buswerks/keymap.c @@ -2,183 +2,174 @@ extern keymap_config_t keymap_config; -#define _QWERTY 0 -#define _COLEMAK 1 -#define _DVORAK 2 -#define _LOWER 3 -#define _RAISE 4 -#define _MOUSE 5 -#define _ADJUST 16 - -enum custom_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - LOWER, - RAISE, - MOUSE, - ADJUST, +enum layers { + _QWERTY, + _COLEMAK, + _DVORAK, + _LOWER, + _RAISE, + _GAME, + _ADJUST }; -// Fillers to make layering more clear -#define _______ KC_TRNS -#define KC_ KC_TRNS -#define XXXXXXX KC_NO +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, + RAISE, + GAME, + ADJUST +}; -#define ESC_CMD MT(MOD_LGUI, KC_ESC) +#define GAME TG(_GAME) #define RSE_ENT LT(_RAISE, KC_ENT) -#define KC_LOWR LOWER -#define KC_RASE RAISE -#define KC_ADJ ADJUST -#define MOUSE TG(_MOUSE) +#define ESC_CTL LCTL_T(KC_ESC) // for Linux +#define ESC_CMD LGUI_T(KC_ESC) // for macOS -#define DESK_L LCTL(KC_LEFT) -#define DESK_R LCTL(KC_RGHT) -#define MSN_CTL LCTL(KC_UP) -#define APP_WND LCTL(KC_DOWN) -#define SWITCHR LGUI(KC_TAB) +// Use these to switch desktops on macOS +#define DESK_L LCTL(KC_LEFT) +#define DESK_R LCTL(KC_RGHT) -#define WORD_L LALT(KC_LEFT) -#define WORD_R LALT(KC_RGHT) -#define LINE_L LGUI(KC_LEFT) -#define LINE_R LGUI(KC_RGHT) - -#define COPY LGUI(KC_C) -#define CUT LGUI(KC_X) -#define PASTE LGUI(KC_V) +// Use these to switch desktops on Gnome +#define DESK_UP LGUI(KC_PGUP) +#define DESK_DN LGUI(KC_PGDN) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QWERTY] = LAYOUT_ortho_4x12( - // .--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------. - KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I, KC_O , KC_P , KC_BSPC, \ - // |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - ESC_CMD, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K, KC_L , KC_SCLN, KC_QUOT, \ - // |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - KC_LSPO, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSPC, \ - // |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - KC_LCTL, KC_HYPR, MOUSE , KC_LALT, LOWER , KC_SPC , KC_SPC , RSE_ENT, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT \ - // '--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------' -), + // Use QWERTY on macOS (Colemak mapped using software) + [_QWERTY] = LAYOUT_ortho_4x12( + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I, KC_O , KC_P , KC_BSPC, \ + ESC_CMD, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K, KC_L , KC_SCLN, KC_QUOT, \ + KC_LSPO, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSPC, \ + XXXXXXX, KC_LCTL, KC_LGUI, KC_LALT, LOWER , KC_SPC , KC_SPC , RSE_ENT, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT \ + ), -[_COLEMAK] = LAYOUT_ortho_4x12( \ - // .--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------. - KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_G , KC_J , KC_L , KC_U , KC_Y , KC_SCLN, KC_BSPC, \ - // |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - ESC_CMD, KC_A , KC_R , KC_S , KC_T , KC_D , KC_H , KC_N , KC_E , KC_I , KC_O , KC_QUOT, \ - // |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - KC_LSPO, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_K , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSPC, \ - // |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - KC_LCTL, KC_HYPR, MOUSE , KC_LALT, LOWER , KC_SPC , KC_SPC , RSE_ENT, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT \ - // '--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------' -), + // Use Colemak on Linux (No native Colemak mapping) + [_COLEMAK] = LAYOUT_ortho_4x12( \ + KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_G , KC_J , KC_L , KC_U , KC_Y , KC_SCLN, KC_BSPC, \ + ESC_CTL, KC_A , KC_R , KC_S , KC_T , KC_D , KC_H , KC_N , KC_E , KC_I , KC_O , KC_QUOT, \ + KC_LSPO, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_K , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSPC, \ + XXXXXXX, KC_LCTL, KC_LGUI, KC_LALT, LOWER , KC_SPC , KC_SPC , RSE_ENT, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT \ + ), -[_DVORAK] = LAYOUT_ortho_4x12( \ - // .--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------. - KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ - // |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - ESC_CMD, 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 , \ - // |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - KC_LCTL, KC_HYPR, MOUSE , KC_LALT, LOWER , KC_SPC , KC_SPC , RSE_ENT, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT \ - // '--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------' -), + [_DVORAK] = LAYOUT_ortho_4x12( \ + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ + ESC_CTL, 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 , \ + XXXXXXX, KC_LCTL, KC_LGUI, KC_LALT, LOWER , KC_SPC , KC_SPC , RSE_ENT, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT \ + ), -[_LOWER] = LAYOUT_ortho_4x12( \ - // .--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------. - SWITCHR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_7, KC_8, KC_9, KC_MINS, _______, \ - // |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - KC_TILD, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_4, KC_5, KC_6, KC_PLUS, KC_PIPE, \ - // |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - _______, _______, _______, KC_UNDS, KC_EQL, _______, _______, KC_1, KC_2, KC_3, _______, _______, \ - // |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - _______, _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_COMM, _______, _______ \ - // '--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------' -), + [_LOWER] = LAYOUT_ortho_4x12( \ + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_7, KC_8, KC_9, KC_MINS, _______, \ + KC_TILD, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_4, KC_5, KC_6, KC_PLUS, KC_PIPE, \ + _______, _______, _______, KC_UNDS, KC_EQL, _______, _______, KC_1, KC_2, KC_3, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_COMM, _______, _______ \ + ), -[_RAISE] = LAYOUT_ortho_4x12( \ - // .--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------. - KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_UNDS, KC_EQL, KC_DEL, \ - // |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - _______, _______, KC_LBRC, KC_LCBR, KC_RCBR, KC_RBRC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_BSLS, \ - // |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - _______, _______, _______, _______, _______, _______, LINE_L, WORD_L, WORD_R, LINE_R, _______, _______, \ - // |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT \ - // '--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------' -), + [_RAISE] = LAYOUT_ortho_4x12( \ + KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, _______, KC_INS, KC_DEL, \ + KC_TILD, _______, KC_LBRC, KC_LCBR, KC_RCBR, KC_RBRC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_BSLS, \ + _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, DESK_R, DESK_DN, DESK_UP, DESK_L \ + ), -[_MOUSE] = LAYOUT_ortho_4x12( \ - // .--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------. - SWITCHR, _______, _______, KC_MS_U, _______, _______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, \ - // |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_BTN1, KC_BTN2, KC_BTN3, _______, _______, \ - // |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - _______, _______, _______, KC_WH_U, KC_WH_D, COPY, PASTE, KC_BTN4, KC_BTN5, _______, _______, _______, \ - // |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - _______, _______, MOUSE , _______, _______, KC_SPC, KC_SPC, KC_ENT, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT \ - // '--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------' -), - -[_ADJUST] = LAYOUT_ortho_4x12( \ - _______, QWERTY, COLEMAK, DVORAK, RESET, _______, _______, _______, _______, AG_NORM, AG_SWAP, _______, \ - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, AU_OFF , AU_ON , _______, \ - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ -) + [_GAME] = LAYOUT_ortho_4x12( \ + KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_G , KC_J , KC_L , KC_U , KC_Y , KC_SCLN, KC_BSPC, \ + ESC_CMD, 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, \ + xxxxxxx, KC_LCTL, KC_LGUI, KC_LALT, LOWER , KC_SPC , KC_SPC , RSE_ENT, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT \ + ), + [_ADJUST] = LAYOUT_planck_grid( + _______, RESET, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL , + _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, GAME, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - break; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_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 + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_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; +} + +void encoder_update(bool clockwise) { + if (IS_LAYER_ON(_RAISE) || IS_LAYER_ON(_LOWER)) { + if (clockwise) { + register_code(KC_VOLU); + unregister_code(KC_VOLU); + } else { + register_code(KC_VOLD); + register_code(KC_VOLD); + } + } else { + if (clockwise) { + #ifdef MOUSEKEY_ENABLE + register_code(KC_MS_WH_DOWN); + unregister_code(KC_MS_WH_DOWN); + #else + register_code(KC_PGDN); + unregister_code(KC_PGDN); + #endif + } else { + #ifdef MOUSEKEY_ENABLE + register_code(KC_MS_WH_UP); + unregister_code(KC_MS_WH_UP); + #else + register_code(KC_PGUP); + unregister_code(KC_PGUP); + #endif + } + } +} + + diff --git a/layouts/community/ortho_4x12/buswerks/readme.md b/layouts/community/ortho_4x12/buswerks/readme.md index 43c1aaf93b6..e469d6a50f9 100644 --- a/layouts/community/ortho_4x12/buswerks/readme.md +++ b/layouts/community/ortho_4x12/buswerks/readme.md @@ -1,29 +1,12 @@ -Buswerks' 4x12 Ortholinear Layout -============================ -For use on Planck, Let's Split, and similar keyboards +![Imgur](https://i.imgur.com/yx9tFUq.png) -### Layout Overview +# Logan's Ortho 4x12 Layout -- Main Layer - - Enter is located on the Raise key (layer-tap) - - Space Cadet shift keys - - Lower + shift keys = Brackets[] - - Raise + shift keys = Braces{} - - The bottom left key is the Adjust modifier - - Escape is in the traditional Caps Lock position - - Holding down the escape key acts as LGUI (intended for macOS use) -- Lower - - There is a numpad on the right hand (4, 5, and 6 are located under JKL/NEI/HTN) - - Plus and minus keys are located to the right of the numpad - - There are macOS desktop navigation keys and volume controls under the left hand +This layout is what I use on my Planck. Some features of the layout: -- Raise - - Vim-style arrow keys - - Below the arrow keys are home, end, pgup, and pgdn - - Symbols are located on the right side of the keyboard, in a somewhat logical order - - Symbols from the number row are in order, starting on the left pinky. - - Equals and underscore are in easily accessible spots, since they're commonly used in programming - - The ampersand is less common, so it's to the right of the equals symbol - -- Adjust - - Function keys are located along the top row (reset is moved to the Colemak 'R' position) \ No newline at end of file +- Rotary encoder support (no function for clicking yet) +- Numpad under right hand (I find this much more comfortable than touch-typing the number row) +- Space cadet shift +- Curly braces are under the home row (makes programming much more comfortable) + +Also, another note: the QWERTY layout uses `LGUI_T(KC_ESC)` and the COLEMAK/DVORAK layouts use `LCTL_T(KC_ESC)`. This is because I use the QWERTY layout on my Mac laptop so that I don't have to change the software remapping every time I dock my laptop. This also allows a convenient remapping of the modifier keys. I use the hardware mapped COLEMAK layout on Linux. From fb49a882b10909546aab0190f08b707c17f49452 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20=C4=90or=C4=91evi=C4=87?= Date: Wed, 30 Jan 2019 18:08:30 +0100 Subject: [PATCH 21/55] Fix link and name spelling in Space65's readme (#5004) --- keyboards/gray_studio/space65/readme.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/gray_studio/space65/readme.md b/keyboards/gray_studio/space65/readme.md index 9f3b3c1629b..83387d4b4cb 100644 --- a/keyboards/gray_studio/space65/readme.md +++ b/keyboards/gray_studio/space65/readme.md @@ -1,10 +1,10 @@ # Gray Studio Space65 -A 65% keyboard with RGB Underglow, Backlight, USB C. +A 65% keyboard with RGB underglow, backlighting and USB C, whose design was inspired by the Voyager I space probe and Apple II home computer. Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin) -Hardware Supported: Gray Studio Space 65 -Hardware Availability: [Geekhack Group Buy](https://geekhack.org/index.php?topic=97216.0) +Hardware Supported: Gray Studio Space65 +Hardware Availability: [Geekhack Group Buy](https://geekhack.org/index.php?topic=98768.0) Make example for this keyboard (after setting up your build environment): From 4c155559d5e4680af6fc4eec99aa5dc2841bc429 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Wed, 30 Jan 2019 09:09:27 -0800 Subject: [PATCH 22/55] [Keyboard] Gray Studio Directory (#5002) * move cod67 into the gray_studio directory * modify readmes --- keyboards/{ => gray_studio}/cod67/cod67.c | 0 keyboards/{ => gray_studio}/cod67/cod67.h | 0 keyboards/{ => gray_studio}/cod67/config.h | 0 keyboards/{ => gray_studio}/cod67/info.json | 0 .../{ => gray_studio}/cod67/keymaps/default/keymap.c | 0 .../{ => gray_studio}/cod67/keymaps/default/readme.md | 0 keyboards/{ => gray_studio}/cod67/readme.md | 8 +++----- keyboards/{ => gray_studio}/cod67/rules.mk | 0 keyboards/gray_studio/readme.md | 1 + 9 files changed, 4 insertions(+), 5 deletions(-) rename keyboards/{ => gray_studio}/cod67/cod67.c (100%) rename keyboards/{ => gray_studio}/cod67/cod67.h (100%) rename keyboards/{ => gray_studio}/cod67/config.h (100%) rename keyboards/{ => gray_studio}/cod67/info.json (100%) rename keyboards/{ => gray_studio}/cod67/keymaps/default/keymap.c (100%) rename keyboards/{ => gray_studio}/cod67/keymaps/default/readme.md (100%) rename keyboards/{ => gray_studio}/cod67/readme.md (75%) rename keyboards/{ => gray_studio}/cod67/rules.mk (100%) create mode 100644 keyboards/gray_studio/readme.md diff --git a/keyboards/cod67/cod67.c b/keyboards/gray_studio/cod67/cod67.c similarity index 100% rename from keyboards/cod67/cod67.c rename to keyboards/gray_studio/cod67/cod67.c diff --git a/keyboards/cod67/cod67.h b/keyboards/gray_studio/cod67/cod67.h similarity index 100% rename from keyboards/cod67/cod67.h rename to keyboards/gray_studio/cod67/cod67.h diff --git a/keyboards/cod67/config.h b/keyboards/gray_studio/cod67/config.h similarity index 100% rename from keyboards/cod67/config.h rename to keyboards/gray_studio/cod67/config.h diff --git a/keyboards/cod67/info.json b/keyboards/gray_studio/cod67/info.json similarity index 100% rename from keyboards/cod67/info.json rename to keyboards/gray_studio/cod67/info.json diff --git a/keyboards/cod67/keymaps/default/keymap.c b/keyboards/gray_studio/cod67/keymaps/default/keymap.c similarity index 100% rename from keyboards/cod67/keymaps/default/keymap.c rename to keyboards/gray_studio/cod67/keymaps/default/keymap.c diff --git a/keyboards/cod67/keymaps/default/readme.md b/keyboards/gray_studio/cod67/keymaps/default/readme.md similarity index 100% rename from keyboards/cod67/keymaps/default/readme.md rename to keyboards/gray_studio/cod67/keymaps/default/readme.md diff --git a/keyboards/cod67/readme.md b/keyboards/gray_studio/cod67/readme.md similarity index 75% rename from keyboards/cod67/readme.md rename to keyboards/gray_studio/cod67/readme.md index 5e64ff7588a..7f91cf30d1e 100644 --- a/keyboards/cod67/readme.md +++ b/keyboards/gray_studio/cod67/readme.md @@ -1,13 +1,11 @@ # Gray COD67 -![cod67](imgur.com image replace me!) - The Gray COD67 is a 60% keyboard with a modern and bold design. It features 20 RGB Underglow LED lights and a unique diffuser placement. The COD67 has the most stunning RGB light strip for a custom mechanical keyboard. It also features a center mounted USB C port. There were only 75 units made worldwide. Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin) -Hardware Supported: Gray COD67 +Hardware Supported: Gray COD67 Hardware Availability: [Zfrontier](https://en.zfrontier.com/products/cod67) At this time, flashing ONLY works on Windows systems. @@ -18,9 +16,9 @@ The COD67 will show up as a drive. Make example for this keyboard (after setting up your build environment): - make cod67:default:bin + make gray_studio/cod67:default:bin -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). Rename the resulting `.bin` file to `cod67.bin`. diff --git a/keyboards/cod67/rules.mk b/keyboards/gray_studio/cod67/rules.mk similarity index 100% rename from keyboards/cod67/rules.mk rename to keyboards/gray_studio/cod67/rules.mk diff --git a/keyboards/gray_studio/readme.md b/keyboards/gray_studio/readme.md new file mode 100644 index 00000000000..dc1baa51630 --- /dev/null +++ b/keyboards/gray_studio/readme.md @@ -0,0 +1 @@ +# Gray Studio From d7ebdfb490f6872589aa02a3d6fe601fcdac5ca4 Mon Sep 17 00:00:00 2001 From: Spaceman Date: Wed, 30 Jan 2019 12:10:31 -0500 Subject: [PATCH 23/55] Sweet16 Keymap by Spaceman added (#5003) * Create keymap.c * Update keymap.c * Changed a few things * Update keymap.c * fixed something i broke --- .../sweet16/keymaps/sebas/keymap.c | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 keyboards/1upkeyboards/sweet16/keymaps/sebas/keymap.c diff --git a/keyboards/1upkeyboards/sweet16/keymaps/sebas/keymap.c b/keyboards/1upkeyboards/sweet16/keymaps/sebas/keymap.c new file mode 100644 index 00000000000..a7e587426b3 --- /dev/null +++ b/keyboards/1upkeyboards/sweet16/keymaps/sebas/keymap.c @@ -0,0 +1,23 @@ +#include QMK_KEYBOARD_H +#define ALT TG(_FUNC) + +enum layers { + _KEYP, + _FUNC +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_KEYP]=LAYOUT_ortho_4x4( + KC_P7, KC_P8, KC_P9, ALT, + KC_P4, KC_P5, KC_P6, KC_PAST, + KC_P1, KC_P2, KC_P3, KC_PMNS, + KC_P0, KC_PDOT, KC_PENT, KC_PPLS +), +[_FUNC]=LAYOUT_ortho_4x4( + KC_MPRV, KC_MPLY, KC_MNXT, _______, + XXXXXXX, XXXXXXX, XXXXXXX, KC_NLCK, + KC_INS, KC_HOME, KC_PGUP, XXXXXXX, + KC_DEL, KC_END, KC_PGDN, XXXXXXX +) +}; From 71164eee6abe3c998227670aebe5020973a577ad Mon Sep 17 00:00:00 2001 From: Max <17062872+westfoxtrot@users.noreply.github.com> Date: Wed, 30 Jan 2019 19:51:32 +0100 Subject: [PATCH 24/55] added aanzee pcb support (#4962) * added aanzee pcb support * Update keyboards/westfoxtrot/aanzee/config.h Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com> * Update keyboards/westfoxtrot/aanzee/config.h Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com> * Update keyboards/westfoxtrot/aanzee/config.h Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com> * Update keyboards/westfoxtrot/aanzee/config.h Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com> * Update keyboards/westfoxtrot/aanzee/aanzee.c Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com> * Update keyboards/westfoxtrot/aanzee/aanzee.c Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com> * Update keyboards/westfoxtrot/aanzee/aanzee.h Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com> * Update keyboards/westfoxtrot/aanzee/keymaps/iso-default/keymap.c Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com> * Update keyboards/westfoxtrot/aanzee/aanzee.c Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com> * Update keyboards/westfoxtrot/aanzee/keymaps/iso-default/config.h Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com> * Update keyboards/westfoxtrot/aanzee/aanzee.h Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com> * Update keyboards/westfoxtrot/aanzee/config.h Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com> * Update keyboards/westfoxtrot/aanzee/keymaps/default/keymap.c Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com> * Update keyboards/westfoxtrot/aanzee/keymaps/iso-default/keymap.c Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com> * Update keyboards/westfoxtrot/aanzee/aanzee.h Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com> * Update keyboards/westfoxtrot/aanzee/keymaps/default/keymap.c Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com> * Update keyboards/westfoxtrot/aanzee/keymaps/default/keymap.c Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com> * Update keyboards/westfoxtrot/aanzee/keymaps/iso-default/keymap.c Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com> * refactored keymaps * fixed typo --- keyboards/westfoxtrot/aanzee/aanzee.c | 52 +++++++ keyboards/westfoxtrot/aanzee/aanzee.h | 65 ++++++++ keyboards/westfoxtrot/aanzee/config.h | 142 ++++++++++++++++++ keyboards/westfoxtrot/aanzee/info.json | 18 +++ .../aanzee/keymaps/default/config.h | 19 +++ .../aanzee/keymaps/default/keymap.c | 48 ++++++ .../aanzee/keymaps/default/readme.md | 1 + .../aanzee/keymaps/iso-default/config.h | 19 +++ .../aanzee/keymaps/iso-default/keymap.c | 48 ++++++ .../aanzee/keymaps/iso-default/readme.md | 1 + .../westfoxtrot/aanzee/keymaps/via/config.h | 19 +++ .../westfoxtrot/aanzee/keymaps/via/keymap.c | 48 ++++++ .../westfoxtrot/aanzee/keymaps/via/readme.md | 1 + .../westfoxtrot/aanzee/keymaps/via/rules.mk | 70 +++++++++ keyboards/westfoxtrot/aanzee/readme.md | 15 ++ keyboards/westfoxtrot/aanzee/rules.mk | 65 ++++++++ 16 files changed, 631 insertions(+) create mode 100644 keyboards/westfoxtrot/aanzee/aanzee.c create mode 100644 keyboards/westfoxtrot/aanzee/aanzee.h create mode 100644 keyboards/westfoxtrot/aanzee/config.h create mode 100644 keyboards/westfoxtrot/aanzee/info.json create mode 100644 keyboards/westfoxtrot/aanzee/keymaps/default/config.h create mode 100644 keyboards/westfoxtrot/aanzee/keymaps/default/keymap.c create mode 100644 keyboards/westfoxtrot/aanzee/keymaps/default/readme.md create mode 100644 keyboards/westfoxtrot/aanzee/keymaps/iso-default/config.h create mode 100644 keyboards/westfoxtrot/aanzee/keymaps/iso-default/keymap.c create mode 100644 keyboards/westfoxtrot/aanzee/keymaps/iso-default/readme.md create mode 100644 keyboards/westfoxtrot/aanzee/keymaps/via/config.h create mode 100644 keyboards/westfoxtrot/aanzee/keymaps/via/keymap.c create mode 100644 keyboards/westfoxtrot/aanzee/keymaps/via/readme.md create mode 100644 keyboards/westfoxtrot/aanzee/keymaps/via/rules.mk create mode 100644 keyboards/westfoxtrot/aanzee/readme.md create mode 100644 keyboards/westfoxtrot/aanzee/rules.mk diff --git a/keyboards/westfoxtrot/aanzee/aanzee.c b/keyboards/westfoxtrot/aanzee/aanzee.c new file mode 100644 index 00000000000..0dc1199be9f --- /dev/null +++ b/keyboards/westfoxtrot/aanzee/aanzee.c @@ -0,0 +1,52 @@ +/* Copyright 2019 westfoxtrot + +* + +* 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 . + +*/ + +#include "aanzee.h" + + +void led_set_kb(uint8_t usb_led) { + +if (usb_led & (1<. +*/ +#ifndef AANZEE_H +#define AANZEE_H + +#define ___ KC_NO + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. +* +* The first section contains all of the arguments representing the physical +* layout of the board and position of the keys. +* +* The second converts the arguments into a two-dimensional array which +* represents the switch matrix. +*/ +// readability + +#define LAYOUT_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0F, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2C, K2D, K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K49, K4A, K4B, K4C, K4D, K4E \ +) \ +{ \ + {K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F}, \ + {K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, ___}, \ + {K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, ___, K2C, K2D, K2E, ___}, \ + {K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, ___}, \ + {K40, K41, K42, ___, ___, ___, K46, ___, ___, K49, K4A, K4B, K4C, K4D, K4E, ___} \ +} +#define LAYOUT_iso( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K49, K4A, K4B, K4C, K4D, K4E \ +) \ +{ \ + {K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, ___}, \ + {K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, ___, K1D, K1E, ___}, \ + {K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, ___}, \ + {K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, ___}, \ + {K40, K41, K42, ___, ___, ___, K46, ___, ___, K49, K4A, K4B, K4C, K4D, K4E, ___} \ +} + +void matrix_init_user(void); +void matrix_scan_user(void); + +#endif diff --git a/keyboards/westfoxtrot/aanzee/config.h b/keyboards/westfoxtrot/aanzee/config.h new file mode 100644 index 00000000000..3959066b222 --- /dev/null +++ b/keyboards/westfoxtrot/aanzee/config.h @@ -0,0 +1,142 @@ +/* +Copyright 2019 westfoxtrot + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x21FF +#define PRODUCT_ID 0xAA01 +#define DEVICE_VER 0x0001 +#define MANUFACTURER westfoxtrot +#define PRODUCT aanzee +#define DESCRIPTION QMK Firmware for the Aanzee PCB + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +// ROWS: Top to bottom, COLS: Left to right + +#define MATRIX_ROW_PINS {B4,D7,D6,D4,B3} +#define MATRIX_COL_PINS {D2,D1,D0,D3,D5,C7,C6,B6,B5,F0,F1,F4,F5,F6,F7,B0} +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +#define BACKLIGHT_PIN B7 +#define BACKLIGHT_BREATHING +#define BACKLIGHT_LEVELS 5 + +#define RGB_DI_PIN E6 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 9 + #define RGBLIGHT_HUE_STEP 12 + #define RGBLIGHT_SAT_STEP 25 + #define RGBLIGHT_VAL_STEP 12 + #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ + #define RGBLIGHT_ANIMATIONS +/*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +#endif +#define RGBW + +/* 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 + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * 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. + * + */ + + +//dynamic keymap and via support + +#define DYNAMIC_KEYMAP_LAYER_COUNT 4 + +// EEPROM usage + +// TODO: refactor with new user EEPROM code (coming soon) +#define EEPROM_MAGIC 0x451F +#define EEPROM_MAGIC_ADDR 32 +// Bump this every time we change what we store +// This will automatically reset the EEPROM with defaults +// and avoid loading invalid data from the EEPROM +#define EEPROM_VERSION 0x08 +#define EEPROM_VERSION_ADDR 34 + +// Dynamic keymap starts after EEPROM version +#define DYNAMIC_KEYMAP_EEPROM_ADDR 35 +// Dynamic macro starts after dynamic keymaps (35+(4*10*6*2)) = (35+480) +#define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR 675 // **** CHANGE THIS BASED ON MATRIX_ROWS & MATRIX_COLS **** +#define DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE 349 // **** CHANGE THIS BASED ON 1024-DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR **** +#define DYNAMIC_KEYMAP_MACRO_COUNT 16 diff --git a/keyboards/westfoxtrot/aanzee/info.json b/keyboards/westfoxtrot/aanzee/info.json new file mode 100644 index 00000000000..d6734d620b4 --- /dev/null +++ b/keyboards/westfoxtrot/aanzee/info.json @@ -0,0 +1,18 @@ +{ + "keyboard_name": "aanzee", + "url": "", + "maintainer": "qmk", + "width": 16, + "height": 5, + "layouts": { + "LAYOUT_ansi": { + "key_count": 68, + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Home", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"PgUp", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"PgDn", "x":15, "y":2}, {"label":"\u21e7 Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"Fn", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] + }, + "LAYOUT_iso": { + "key_count": 68, + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Home", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"x":13.75, "y":1, "w":1.25, "h":2}, {"label":"PgUp", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"PgDn", "x":15, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"Fn", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] + }, + } +} +} diff --git a/keyboards/westfoxtrot/aanzee/keymaps/default/config.h b/keyboards/westfoxtrot/aanzee/keymaps/default/config.h new file mode 100644 index 00000000000..35ebb6871d6 --- /dev/null +++ b/keyboards/westfoxtrot/aanzee/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2018 westfoxtrot +* +* 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 . +*/ + +#pragma once + +// place overrides here diff --git a/keyboards/westfoxtrot/aanzee/keymaps/default/keymap.c b/keyboards/westfoxtrot/aanzee/keymaps/default/keymap.c new file mode 100644 index 00000000000..4b7a9f20809 --- /dev/null +++ b/keyboards/westfoxtrot/aanzee/keymaps/default/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2019 westfoxtrot +* +* 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 . +*/ +#include QMK_KEYBOARD_H + +#define _MA 0 +#define _F1 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_MA] = LAYOUT_ansi( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL,KC_BSPC, KC_DEL, KC_HOME,\ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_LBRC,KC_RBRC,KC_BSLS, KC_END, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,KC_SCLN,KC_QUOT, KC_ENT, KC_PGUP, \ + 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_UP, KC_PGDN, \ + KC_LCTRL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,MO(_F1),KC_RCTL,KC_LEFT,KC_DOWN, KC_RGHT), + + [_F1] = LAYOUT_ansi( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,_______,_______,_______, \ + _______,RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,_______,_______,_______,_______,_______, _______, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, \ + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ + _______,_______,_______, _______, _______,_______,_______,_______,_______, _______) + }; + + void matrix_init_user(void) { + //user initialization + } + + void matrix_scan_user(void) { + //user matrix + } + + bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; + } diff --git a/keyboards/westfoxtrot/aanzee/keymaps/default/readme.md b/keyboards/westfoxtrot/aanzee/keymaps/default/readme.md new file mode 100644 index 00000000000..77137f2f004 --- /dev/null +++ b/keyboards/westfoxtrot/aanzee/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for aanzee \ No newline at end of file diff --git a/keyboards/westfoxtrot/aanzee/keymaps/iso-default/config.h b/keyboards/westfoxtrot/aanzee/keymaps/iso-default/config.h new file mode 100644 index 00000000000..386a2fd57de --- /dev/null +++ b/keyboards/westfoxtrot/aanzee/keymaps/iso-default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2019 westfoxtrot +* +* 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 . +*/ + +#pragma once + +// place overrides here diff --git a/keyboards/westfoxtrot/aanzee/keymaps/iso-default/keymap.c b/keyboards/westfoxtrot/aanzee/keymaps/iso-default/keymap.c new file mode 100644 index 00000000000..79628eb9012 --- /dev/null +++ b/keyboards/westfoxtrot/aanzee/keymaps/iso-default/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2019 westfoxtrot +* +* 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 . +*/ +#include QMK_KEYBOARD_H + +#define _MA 0 +#define _F1 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_MA] = LAYOUT_iso( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL,KC_BSPC, KC_HOME,\ + 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_END, \ + 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_NUHS, KC_ENT, KC_PGUP, \ + KC_LSFT, KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH,KC_RSFT, KC_UP, KC_PGDN, \ + KC_LCTRL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,MO(_F1),KC_RCTL,KC_LEFT,KC_DOWN, KC_RGHT), + + [_F1] = LAYOUT_iso( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,_______,_______, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ + _______,_______,_______, _______, _______,_______,_______,_______,_______,_______) + }; + + void matrix_init_user(void) { + //user initialization + } + + void matrix_scan_user(void) { + //user matrix + } + + bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; + } diff --git a/keyboards/westfoxtrot/aanzee/keymaps/iso-default/readme.md b/keyboards/westfoxtrot/aanzee/keymaps/iso-default/readme.md new file mode 100644 index 00000000000..77137f2f004 --- /dev/null +++ b/keyboards/westfoxtrot/aanzee/keymaps/iso-default/readme.md @@ -0,0 +1 @@ +# The default keymap for aanzee \ No newline at end of file diff --git a/keyboards/westfoxtrot/aanzee/keymaps/via/config.h b/keyboards/westfoxtrot/aanzee/keymaps/via/config.h new file mode 100644 index 00000000000..35ebb6871d6 --- /dev/null +++ b/keyboards/westfoxtrot/aanzee/keymaps/via/config.h @@ -0,0 +1,19 @@ +/* Copyright 2018 westfoxtrot +* +* 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 . +*/ + +#pragma once + +// place overrides here diff --git a/keyboards/westfoxtrot/aanzee/keymaps/via/keymap.c b/keyboards/westfoxtrot/aanzee/keymaps/via/keymap.c new file mode 100644 index 00000000000..4b7a9f20809 --- /dev/null +++ b/keyboards/westfoxtrot/aanzee/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2019 westfoxtrot +* +* 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 . +*/ +#include QMK_KEYBOARD_H + +#define _MA 0 +#define _F1 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_MA] = LAYOUT_ansi( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL,KC_BSPC, KC_DEL, KC_HOME,\ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_LBRC,KC_RBRC,KC_BSLS, KC_END, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,KC_SCLN,KC_QUOT, KC_ENT, KC_PGUP, \ + 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_UP, KC_PGDN, \ + KC_LCTRL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,MO(_F1),KC_RCTL,KC_LEFT,KC_DOWN, KC_RGHT), + + [_F1] = LAYOUT_ansi( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,_______,_______,_______, \ + _______,RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,_______,_______,_______,_______,_______, _______, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, \ + _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ + _______,_______,_______, _______, _______,_______,_______,_______,_______, _______) + }; + + void matrix_init_user(void) { + //user initialization + } + + void matrix_scan_user(void) { + //user matrix + } + + bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; + } diff --git a/keyboards/westfoxtrot/aanzee/keymaps/via/readme.md b/keyboards/westfoxtrot/aanzee/keymaps/via/readme.md new file mode 100644 index 00000000000..d5c8b708def --- /dev/null +++ b/keyboards/westfoxtrot/aanzee/keymaps/via/readme.md @@ -0,0 +1 @@ +# The default keymap for aanzee with via support diff --git a/keyboards/westfoxtrot/aanzee/keymaps/via/rules.mk b/keyboards/westfoxtrot/aanzee/keymaps/via/rules.mk new file mode 100644 index 00000000000..efd8bd14ded --- /dev/null +++ b/keyboards/westfoxtrot/aanzee/keymaps/via/rules.mk @@ -0,0 +1,70 @@ +# 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 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +BOOTLOADER = atmel-dfu + +# Build Options +# comment out to disable the options. +# +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 # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality (+4870) +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality (+1150) +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID + +#add files needed for via + +RAW_ENABLE = yes +DYNAMIC_KEYMAP_ENABLE = yes +SRC += keyboards/wilba_tech/wt_main.c diff --git a/keyboards/westfoxtrot/aanzee/readme.md b/keyboards/westfoxtrot/aanzee/readme.md new file mode 100644 index 00000000000..b97f458639b --- /dev/null +++ b/keyboards/westfoxtrot/aanzee/readme.md @@ -0,0 +1,15 @@ +# aanzee + +![aanzee](https://cablecardesigns.co/portfolio-posts/aanzee) + +custom pcb for the aanzee keyboard + + Keyboard Maintainer: [westfoxtrot](https://github.com/westfoxtrot) + Hardware Supported: aanzee PCB + Hardware Availability: with group buy + +Make example for this keyboard (after setting up your build environment): + + make westfoxtrot/aanzee:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/westfoxtrot/aanzee/rules.mk b/keyboards/westfoxtrot/aanzee/rules.mk new file mode 100644 index 00000000000..cdea2a26573 --- /dev/null +++ b/keyboards/westfoxtrot/aanzee/rules.mk @@ -0,0 +1,65 @@ +# 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 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +BOOTLOADER = atmel-dfu + +# Build Options +# comment out to disable the options. +# +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 # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality (+4870) +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality (+1150) +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID + From 6a63b67cde63fc994a7adcd5be0dfd3d5733aaa9 Mon Sep 17 00:00:00 2001 From: Mattia Dal Ben Date: Wed, 30 Jan 2019 20:02:05 +0100 Subject: [PATCH 25/55] [Keyboard] Redox Wireless configurator bugfix (#4961) * Fixed wrong build instruction * Updated info.json file --- keyboards/redox_w/info.json | 86 ++++++++++++++++++++++++++++++++++++- keyboards/redox_w/readme.md | 2 +- 2 files changed, 86 insertions(+), 2 deletions(-) diff --git a/keyboards/redox_w/info.json b/keyboards/redox_w/info.json index 5bc65b5d98d..b7694a2bbd5 100644 --- a/keyboards/redox_w/info.json +++ b/keyboards/redox_w/info.json @@ -6,7 +6,91 @@ "height": 6.25, "layouts": { "LAYOUT": { - "layout": [{"label":"[L2] `", "x":0, "y":0.375, "w":1.25}, {"label":"!", "x":1.25, "y":0.375}, {"label":"@", "x":2.25, "y":0.125}, {"label":"#", "x":3.25, "y":0}, {"label":"$", "x":4.25, "y":0.125}, {"label":"%", "x":5.25, "y":0.25}, {"label":"[L1]", "x":6.25, "y":0.75}, {"label":"[L1]", "x":11.25, "y":0.75}, {"label":"^", "x":12.25, "y":0.25}, {"label":"&", "x":13.25, "y":0.125}, {"label":"*", "x":14.25, "y":0}, {"label":"(", "x":15.25, "y":0.125}, {"label":")", "x":16.25, "y":0.375}, {"label":"[L2] -", "x":17.25, "y":0.375, "w":1.25}, {"label":"Tab", "x":0, "y":1.375, "w":1.25}, {"label":"Q", "x":1.25, "y":1.375}, {"label":"W", "x":2.25, "y":1.125}, {"label":"E", "x":3.25, "y":1}, {"label":"R", "x":4.25, "y":1.125}, {"label":"T", "x":5.25, "y":1.25}, {"label":"[", "x":6.25, "y":1.75, "h":1.5}, {"label":"]", "x":11.25, "y":1.75, "h":1.5}, {"label":"Y", "x":12.25, "y":1.25}, {"label":"U", "x":13.25, "y":1.125}, {"label":"I", "x":14.25, "y":1}, {"label":"O", "x":15.25, "y":1.125}, {"label":"P", "x":16.25, "y":1.375}, {"label":"=", "x":17.25, "y":1.375, "w":1.25}, {"label":"Esc", "x":0, "y":2.375, "w":1.25}, {"label":"A", "x":1.25, "y":2.375}, {"label":"S", "x":2.25, "y":2.125}, {"label":"D", "x":3.25, "y":2}, {"label":"F", "x":4.25, "y":2.125}, {"label":"G", "x":5.25, "y":2.25}, {"label":"PgUp", "x":6.75, "y":3.75}, {"label":"End", "x":10.75, "y":3.75}, {"label":"H", "x":12.25, "y":2.25}, {"label":"J", "x":13.25, "y":2.125}, {"label":"K", "x":14.25, "y":2}, {"label":"L", "x":15.25, "y":2.125}, {"label":":", "x":16.25, "y":2.375}, {"label":"'", "x":17.25, "y":2.375, "w":1.25}, {"label":"Shift", "x":0, "y":3.375, "w":1.25}, {"label":"Z", "x":1.25, "y":3.375}, {"label":"X", "x":2.25, "y":3.125}, {"label":"C", "x":3.25, "y":3}, {"label":"V", "x":4.25, "y":3.125}, {"label":"B", "x":5.25, "y":3.25}, {"label":"PgDn", "x":7.75, "y":3.75}, {"label":"Home", "x":9.75, "y":3.75}, {"label":"N", "x":12.25, "y":3.25}, {"label":"M", "x":13.25, "y":3.125}, {"label":"<", "x":14.25, "y":3}, {"label":">", "x":15.25, "y":3.125}, {"label":"?", "x":16.25, "y":3.375}, {"label":"Shift", "x":17.25, "y":3.375, "w":1.25}, {"label":"GUI", "x":0.25, "y":4.375}, {"label":"+", "x":1.25, "y":4.375}, {"label":"-", "x":2.25, "y":4.125}, {"label":"[Alt] *", "x":3.25, "y":4}, {"label":"[Ctrl] /", "x":5.5, "y":5.25, "w":1.25}, {"label":"Backspace", "x":6.75, "y":4.75, "h":1.5}, {"label":"Del", "x":7.75, "y":4.75, "h":1.5}, {"label":"Enter", "x":9.75, "y":4.75, "h":1.5}, {"label":"Space", "x":10.75, "y":4.75, "h":1.5}, {"label":"Alt", "x":11.75, "y":5.25, "w":1.25}, {"label":"Left", "x":14.25, "y":4}, {"label":"Down", "x":15.25, "y":4.125}, {"label":"Up", "x":16.25, "y":4.375}, {"label":"Right", "x":17.25, "y":4.375}] + "layout": [ + {"label":"_Nav || `", "x":0, "y":0.375, "w":1.25}, + {"label":"1", "x":1.25, "y":0.375}, + {"label":"2", "x":2.25, "y":0.125}, + {"label":"3", "x":3.25, "y":0}, + {"label":"4", "x":4.25, "y":0.125}, + {"label":"5", "x":5.25, "y":0.25}, + + {"label":"6", "x":12.25, "y":0.25}, + {"label":"7", "x":13.25, "y":0.125}, + {"label":"8", "x":14.25, "y":0}, + {"label":"9", "x":15.25, "y":0.125}, + {"label":"0", "x":16.25, "y":0.375}, + {"label":"_Nav || -", "x":17.25, "y":0.375, "w":1.25}, + + {"label":"Tab", "x":0, "y":1.375, "w":1.25}, + {"label":"Q", "x":1.25, "y":1.375}, + {"label":"W", "x":2.25, "y":1.125}, + {"label":"E", "x":3.25, "y":1}, + {"label":"R", "x":4.25, "y":1.125}, + {"label":"T", "x":5.25, "y":1.25}, + {"label":"MO(_SYMB)", "x":6.25, "y":0.75}, + + {"label":"MO(_SYMB)", "x":11.25, "y":0.75}, + {"label":"Y", "x":12.25, "y":1.25}, + {"label":"U", "x":13.25, "y":1.125}, + {"label":"I", "x":14.25, "y":1}, + {"label":"O", "x":15.25, "y":1.125}, + {"label":"P", "x":16.25, "y":1.375}, + {"label":"=", "x":17.25, "y":1.375, "w":1.25}, + + {"label":"Esc", "x":0, "y":2.375, "w":1.25}, + {"label":"A", "x":1.25, "y":2.375}, + {"label":"S", "x":2.25, "y":2.125}, + {"label":"D", "x":3.25, "y":2}, + {"label":"F", "x":4.25, "y":2.125}, + {"label":"G", "x":5.25, "y":2.25}, + {"label":"[", "x":6.25, "y":1.75, "h":1.5}, + + {"label":"]", "x":11.25, "y":1.75, "h":1.5}, + {"label":"H", "x":12.25, "y":2.25}, + {"label":"J", "x":13.25, "y":2.125}, + {"label":"K", "x":14.25, "y":2}, + {"label":"L", "x":15.25, "y":2.125}, + {"label":";", "x":16.25, "y":2.375}, + {"label":"'", "x":17.25, "y":2.375, "w":1.25}, + + {"label":"Shift", "x":0, "y":3.375, "w":1.25}, + {"label":"Z", "x":1.25, "y":3.375}, + {"label":"X", "x":2.25, "y":3.125}, + {"label":"C", "x":3.25, "y":3}, + {"label":"V", "x":4.25, "y":3.125}, + {"label":"B", "x":5.25, "y":3.25}, + + {"label":"_Adjust/Page Up", "x":6.75, "y":3.75}, + {"label":"Page Down", "x":7.75, "y":3.75}, + + {"label":"Home", "x":9.75, "y":3.75}, + {"label":"_Adjust/End", "x":10.75, "y":3.75}, + + {"label":"N", "x":12.25, "y":3.25}, + {"label":"M", "x":13.25, "y":3.125}, + {"label":",", "x":14.25, "y":3}, + {"label":",", "x":15.25, "y":3.125}, + {"label":"\\", "x":16.25, "y":3.375}, + {"label":"Shift", "x":17.25, "y":3.375, "w":1.25}, + + {"label":"LGUI", "x":0.25, "y":4.375}, + {"label":"P+", "x":1.25, "y":4.375}, + {"label":"P-", "x":2.25, "y":4.125}, + {"label":"LAlt || P*", "x":3.25, "y":4}, + + {"label":"LCtrl || P/", "x":5.5, "y":5.25, "w":1.25}, + {"label":"Backspace", "x":6.75, "y":4.75, "h":1.5}, + {"label":"Delete", "x":7.75, "y":4.75, "h":1.5}, + + {"label":"Enter", "x":9.75, "y":4.75, "h":1.5}, + {"label":"Space", "x":10.75, "y":4.75, "h":1.5}, + {"label":"RAlt", "x":11.75, "y":5.25, "w":1.25}, + + {"label":"Left", "x":14.25, "y":4}, + {"label":"Down", "x":15.25, "y":4.125}, + {"label":"Up", "x":16.25, "y":4.375}, + {"label":"Right", "x":17.25, "y":4.375} + ] } } } diff --git a/keyboards/redox_w/readme.md b/keyboards/redox_w/readme.md index 83544a9fc27..a47fc2eadd8 100644 --- a/keyboards/redox_w/readme.md +++ b/keyboards/redox_w/readme.md @@ -22,7 +22,7 @@ make redox_w:default Example of flashing this keyboard: ```sh -make redox_w/rev1:default:avrdude +make redox_w:default:avrdude ``` See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). From 58f3ce5254b7649774963d9f8d91816d165037c8 Mon Sep 17 00:00:00 2001 From: wanleg <32079073+wanleg@users.noreply.github.com> Date: Wed, 30 Jan 2019 11:03:04 -0800 Subject: [PATCH 26/55] [Keyboard] Jj40 doc (#4914) * Update README.md * Update README.md * Update README.md * Update README.md --- keyboards/jj40/README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/keyboards/jj40/README.md b/keyboards/jj40/README.md index 26d551cf724..ed1ea90fe7c 100644 --- a/keyboards/jj40/README.md +++ b/keyboards/jj40/README.md @@ -69,3 +69,16 @@ Windows sometimes doesn't recognize the jj40. The easiest way of flashing a new 3. If you get an error such as "Resource Unavailable" when attemting to flash on Linux, you may want to compile and run `tools/usb_detach.c`. See `tools/README.md` for more info. + +## Recovery +If you flash a bad hex (e.g. you have a V1 board without RGB and compile/flash blindly without editing your rules.mk), your jj40 is now semi-bricked and you're stuck unless you have access to an ISP. The [ISP Flashing Guide](https://docs.qmk.fm/#/isp_flashing_guide) contains very good (but somewhat generalized) information. However, the instructions below should get you up and running provided you have an Arduino or clone. + +### Arduino Setup +1. Upload the ArduinoISP sketch onto your Arduino board (https://www.arduino.cc/en/Tutorial/ArduinoISP). +2. Wire the Arduino to the jj40. Match the data pins on the Arduino to those on the jj40. "RST" usually goes to D10 on the Arduino. I didn't need a capacitor when using my Uno. +![Imgur](https://i.imgur.com/oLWJOkQ.jpg) +3. Get a working bootloader from https://blog.winkeyless.kr/m/152. The file is called "main.hex" from the archive called "ps2avrGB_bootloader_161215.zip" Copy "main.hex" to your qmk folder. +4. Burn the bootloader with the following command +` avrdude -b 19200 -c avrisp -p atmega32 -v -e -U hfuse:w:0xD0:m -U lfuse:w:0x0F:m -U flash:w:main.hex:i -P comPORT` +Change `comPORT` to whatever port is used by the Arduino (e.g. `com11` in Windows or `/dev/ttyACM0` in Linux). Use Device Manager in Windows to find the port being used. Use `ls /dev/tty*` in Linux. +5. If this process is successful, you should now be able to upload normally. From 19c504662efd1139ffbf2aa05ce93ee73e121738 Mon Sep 17 00:00:00 2001 From: moyi4681 Date: Thu, 31 Jan 2019 04:18:35 +0800 Subject: [PATCH 27/55] [Keyboard] add dz60rgb keyboard (#4992) * add dz60rgb keyboard * add info.json * Update config.h * Update rules.mk * Update dz60rgb.h * Update dz60rgb.c * Update keymap.c * Update dz60rgb.h * Create readme.md * Update readme.md * Update keymap.c * Update dz60rgb.h * Update info.json --- .../boards/GENERIC_STM32_F303XC/board.c | 126 ++ .../boards/GENERIC_STM32_F303XC/board.h | 1187 +++++++++++++++++ .../boards/GENERIC_STM32_F303XC/board.mk | 5 + keyboards/dztech/dz60rgb/bootloader_defs.h | 7 + keyboards/dztech/dz60rgb/chconf.h | 520 ++++++++ keyboards/dztech/dz60rgb/config.h | 36 + keyboards/dztech/dz60rgb/dz60rgb.c | 172 +++ keyboards/dztech/dz60rgb/dz60rgb.h | 16 + keyboards/dztech/dz60rgb/halconf.h | 388 ++++++ keyboards/dztech/dz60rgb/info.json | 16 + .../dztech/dz60rgb/keymaps/default/keymap.c | 165 +++ keyboards/dztech/dz60rgb/mcuconf.h | 257 ++++ keyboards/dztech/dz60rgb/readme.md | 15 + keyboards/dztech/dz60rgb/rules.mk | 57 + 14 files changed, 2967 insertions(+) create mode 100644 keyboards/dztech/boards/GENERIC_STM32_F303XC/board.c create mode 100644 keyboards/dztech/boards/GENERIC_STM32_F303XC/board.h create mode 100644 keyboards/dztech/boards/GENERIC_STM32_F303XC/board.mk create mode 100644 keyboards/dztech/dz60rgb/bootloader_defs.h create mode 100644 keyboards/dztech/dz60rgb/chconf.h create mode 100644 keyboards/dztech/dz60rgb/config.h create mode 100644 keyboards/dztech/dz60rgb/dz60rgb.c create mode 100644 keyboards/dztech/dz60rgb/dz60rgb.h create mode 100644 keyboards/dztech/dz60rgb/halconf.h create mode 100644 keyboards/dztech/dz60rgb/info.json create mode 100644 keyboards/dztech/dz60rgb/keymaps/default/keymap.c create mode 100644 keyboards/dztech/dz60rgb/mcuconf.h create mode 100644 keyboards/dztech/dz60rgb/readme.md create mode 100644 keyboards/dztech/dz60rgb/rules.mk diff --git a/keyboards/dztech/boards/GENERIC_STM32_F303XC/board.c b/keyboards/dztech/boards/GENERIC_STM32_F303XC/board.c new file mode 100644 index 00000000000..4331155df4b --- /dev/null +++ b/keyboards/dztech/boards/GENERIC_STM32_F303XC/board.c @@ -0,0 +1,126 @@ +/* + ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#include "hal.h" + +#if HAL_USE_PAL || defined(__DOXYGEN__) +/** + * @brief PAL setup. + * @details Digital I/O ports static configuration as defined in @p board.h. + * This variable is used by the HAL when initializing the PAL driver. + */ +const PALConfig pal_default_config = { +#if STM32_HAS_GPIOA + {VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR, + VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH}, +#endif +#if STM32_HAS_GPIOB + {VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR, + VAL_GPIOB_ODR, VAL_GPIOB_AFRL, VAL_GPIOB_AFRH}, +#endif +#if STM32_HAS_GPIOC + {VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR, + VAL_GPIOC_ODR, VAL_GPIOC_AFRL, VAL_GPIOC_AFRH}, +#endif +#if STM32_HAS_GPIOD + {VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR, + VAL_GPIOD_ODR, VAL_GPIOD_AFRL, VAL_GPIOD_AFRH}, +#endif +#if STM32_HAS_GPIOE + {VAL_GPIOE_MODER, VAL_GPIOE_OTYPER, VAL_GPIOE_OSPEEDR, VAL_GPIOE_PUPDR, + VAL_GPIOE_ODR, VAL_GPIOE_AFRL, VAL_GPIOE_AFRH}, +#endif +#if STM32_HAS_GPIOF + {VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR, + VAL_GPIOF_ODR, VAL_GPIOF_AFRL, VAL_GPIOF_AFRH}, +#endif +#if STM32_HAS_GPIOG + {VAL_GPIOG_MODER, VAL_GPIOG_OTYPER, VAL_GPIOG_OSPEEDR, VAL_GPIOG_PUPDR, + VAL_GPIOG_ODR, VAL_GPIOG_AFRL, VAL_GPIOG_AFRH}, +#endif +#if STM32_HAS_GPIOH + {VAL_GPIOH_MODER, VAL_GPIOH_OTYPER, VAL_GPIOH_OSPEEDR, VAL_GPIOH_PUPDR, + VAL_GPIOH_ODR, VAL_GPIOH_AFRL, VAL_GPIOH_AFRH}, +#endif +#if STM32_HAS_GPIOI + {VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR, + VAL_GPIOI_ODR, VAL_GPIOI_AFRL, VAL_GPIOI_AFRH} +#endif +}; +#endif + +void enter_bootloader_mode_if_requested(void); + +/** + * @brief Early initialization code. + * @details This initialization must be performed just after stack setup + * and before any other initialization. + */ +void __early_init(void) { + enter_bootloader_mode_if_requested(); + stm32_clock_init(); +} + +#if HAL_USE_SDC || defined(__DOXYGEN__) +/** + * @brief SDC card detection. + */ +bool sdc_lld_is_card_inserted(SDCDriver *sdcp) { + + (void)sdcp; + /* TODO: Fill the implementation.*/ + return true; +} + +/** + * @brief SDC card write protection detection. + */ +bool sdc_lld_is_write_protected(SDCDriver *sdcp) { + + (void)sdcp; + /* TODO: Fill the implementation.*/ + return false; +} +#endif /* HAL_USE_SDC */ + +#if HAL_USE_MMC_SPI || defined(__DOXYGEN__) +/** + * @brief MMC_SPI card detection. + */ +bool mmc_lld_is_card_inserted(MMCDriver *mmcp) { + + (void)mmcp; + /* TODO: Fill the implementation.*/ + return true; +} + +/** + * @brief MMC_SPI card write protection detection. + */ +bool mmc_lld_is_write_protected(MMCDriver *mmcp) { + + (void)mmcp; + /* TODO: Fill the implementation.*/ + return false; +} +#endif + +/** + * @brief Board-specific initialization code. + * @todo Add your board-specific code, if any. + */ +void boardInit(void) { +} diff --git a/keyboards/dztech/boards/GENERIC_STM32_F303XC/board.h b/keyboards/dztech/boards/GENERIC_STM32_F303XC/board.h new file mode 100644 index 00000000000..988e6af3474 --- /dev/null +++ b/keyboards/dztech/boards/GENERIC_STM32_F303XC/board.h @@ -0,0 +1,1187 @@ +/* + ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef _BOARD_H_ +#define _BOARD_H_ + +/* + * Setup for Clueboard 60% Keyboard + */ + +/* + * Board identifier. + */ +#define BOARD_GENERIC_STM32_F303XC +#define BOARD_NAME "DZ60RGB PCB" + +/* + * Board oscillators-related settings. + * NOTE: LSE not fitted. + */ +#if !defined(STM32_LSECLK) +#define STM32_LSECLK 0U +#endif + +#define STM32_LSEDRV (3U << 3U) + +#if !defined(STM32_HSECLK) +#define STM32_HSECLK 8000000U +#endif + +// #define STM32_HSE_BYPASS + +/* + * MCU type as defined in the ST header. + */ +#define STM32F303xC + +/* + * IO pins assignments. + */ +#define GPIOA_PIN0 0U +#define GPIOA_PIN1 1U +#define GPIOA_PIN2 2U +#define GPIOA_PIN3 3U +#define GPIOA_PIN4 4U +#define GPIOA_PIN5 5U +#define GPIOA_PIN6 6U +#define GPIOA_PIN7 7U +#define GPIOA_PIN8 8U +#define GPIOA_PIN9 9U +#define GPIOA_PIN10 10U +#define GPIOA_USB_DM 11U +#define GPIOA_USB_DP 12U +#define GPIOA_SWDIO 13U +#define GPIOA_SWCLK 14U +#define GPIOA_PIN15 15U + +#define GPIOB_PIN0 0U +#define GPIOB_PIN1 1U +#define GPIOB_PIN2 2U +#define GPIOB_PIN3 3U +#define GPIOB_PIN4 4U +#define GPIOB_PIN5 5U +#define GPIOB_PIN6 6U +#define GPIOB_PIN7 7U +#define GPIOB_PIN8 8U +#define GPIOB_PIN9 9U +#define GPIOB_PIN10 10U +#define GPIOB_PIN11 11U +#define GPIOB_PIN12 12U +#define GPIOB_PIN13 13U +#define GPIOB_PIN14 14U +#define GPIOB_PIN15 15U + +#define GPIOC_PIN0 0U +#define GPIOC_PIN1 1U +#define GPIOC_PIN2 2U +#define GPIOC_PIN3 3U +#define GPIOC_PIN4 4U +#define GPIOC_PIN5 5U +#define GPIOC_PIN6 6U +#define GPIOC_PIN7 7U +#define GPIOC_PIN8 8U +#define GPIOC_PIN9 9U +#define GPIOC_PIN10 10U +#define GPIOC_PIN11 11U +#define GPIOC_PIN12 12U +#define GPIOC_PIN13 13U +#define GPIOC_PIN14 14U +#define GPIOC_PIN15 15U + +#define GPIOD_PIN0 0U +#define GPIOD_PIN1 1U +#define GPIOD_PIN2 2U +#define GPIOD_PIN3 3U +#define GPIOD_PIN4 4U +#define GPIOD_PIN5 5U +#define GPIOD_PIN6 6U +#define GPIOD_PIN7 7U +#define GPIOD_PIN8 8U +#define GPIOD_PIN9 9U +#define GPIOD_PIN10 10U +#define GPIOD_PIN11 11U +#define GPIOD_PIN12 12U +#define GPIOD_PIN13 13U +#define GPIOD_PIN14 14U +#define GPIOD_PIN15 15U + +#define GPIOE_PIN0 0U +#define GPIOE_PIN1 1U +#define GPIOE_PIN2 2U +#define GPIOE_PIN3 3U +#define GPIOE_PIN4 4U +#define GPIOE_PIN5 5U +#define GPIOE_PIN6 6U +#define GPIOE_PIN7 7U +#define GPIOE_PIN8 8U +#define GPIOE_PIN9 9U +#define GPIOE_PIN10 10U +#define GPIOE_PIN11 11U +#define GPIOE_PIN12 12U +#define GPIOE_PIN13 13U +#define GPIOE_PIN14 14U +#define GPIOE_PIN15 15U + +#define GPIOF_I2C2_SDA 0U +#define GPIOF_I2C2_SCL 1U +#define GPIOF_PIN2 2U +#define GPIOF_PIN3 3U +#define GPIOF_PIN4 4U +#define GPIOF_PIN5 5U +#define GPIOF_PIN6 6U +#define GPIOF_PIN7 7U +#define GPIOF_PIN8 8U +#define GPIOF_PIN9 9U +#define GPIOF_PIN10 10U +#define GPIOF_PIN11 11U +#define GPIOF_PIN12 12U +#define GPIOF_PIN13 13U +#define GPIOF_PIN14 14U +#define GPIOF_PIN15 15U + +#define GPIOG_PIN0 0U +#define GPIOG_PIN1 1U +#define GPIOG_PIN2 2U +#define GPIOG_PIN3 3U +#define GPIOG_PIN4 4U +#define GPIOG_PIN5 5U +#define GPIOG_PIN6 6U +#define GPIOG_PIN7 7U +#define GPIOG_PIN8 8U +#define GPIOG_PIN9 9U +#define GPIOG_PIN10 10U +#define GPIOG_PIN11 11U +#define GPIOG_PIN12 12U +#define GPIOG_PIN13 13U +#define GPIOG_PIN14 14U +#define GPIOG_PIN15 15U + +#define GPIOH_PIN0 0U +#define GPIOH_PIN1 1U +#define GPIOH_PIN2 2U +#define GPIOH_PIN3 3U +#define GPIOH_PIN4 4U +#define GPIOH_PIN5 5U +#define GPIOH_PIN6 6U +#define GPIOH_PIN7 7U +#define GPIOH_PIN8 8U +#define GPIOH_PIN9 9U +#define GPIOH_PIN10 10U +#define GPIOH_PIN11 11U +#define GPIOH_PIN12 12U +#define GPIOH_PIN13 13U +#define GPIOH_PIN14 14U +#define GPIOH_PIN15 15U + +/* + * IO lines assignments. + */ +#define LINE_L3GD20_SDI PAL_LINE(GPIOA, 7U) +#define LINE_USB_DM PAL_LINE(GPIOA, 11U) +#define LINE_USB_DP PAL_LINE(GPIOA, 12U) +#define LINE_SWDIO PAL_LINE(GPIOA, 13U) +#define LINE_SWCLK PAL_LINE(GPIOA, 14U) + +#define LINE_PIN6 PAL_LINE(GPIOF, 0U) +#define LINE_PIN7 PAL_LINE(GPIOF, 1U) + +#define LINE_CAPS_LOCK PAL_LINE(GPIOB, 7U) + + +/* + * I/O ports initial setup, this configuration is established soon after reset + * in the initialization code. + * Please refer to the STM32 Reference Manual for details. + */ +#define PIN_MODE_INPUT(n) (0U << ((n) * 2U)) +#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U)) +#define PIN_MODE_ALTERNATE(n) (2U << ((n) * 2U)) +#define PIN_MODE_ANALOG(n) (3U << ((n) * 2U)) +#define PIN_ODR_LOW(n) (0U << (n)) +#define PIN_ODR_HIGH(n) (1U << (n)) +#define PIN_OTYPE_PUSHPULL(n) (0U << (n)) +#define PIN_OTYPE_OPENDRAIN(n) (1U << (n)) +#define PIN_OSPEED_VERYLOW(n) (0U << ((n) * 2U)) +#define PIN_OSPEED_LOW(n) (1U << ((n) * 2U)) +#define PIN_OSPEED_MEDIUM(n) (2U << ((n) * 2U)) +#define PIN_OSPEED_HIGH(n) (3U << ((n) * 2U)) +#define PIN_PUPDR_FLOATING(n) (0U << ((n) * 2U)) +#define PIN_PUPDR_PULLUP(n) (1U << ((n) * 2U)) +#define PIN_PUPDR_PULLDOWN(n) (2U << ((n) * 2U)) +#define PIN_AFIO_AF(n, v) ((v) << (((n) % 8U) * 4U)) + +/* + * GPIOA setup: + * + * PA0 - NC + * PA1 - NC + * PA2 - COL1 + * PA3 - COL2 + * PA4 - SPEAKER1 + * PA5 - SPEAKER2 + * PA6 - COL3 + * PA7 - COL8 + * PA8 - COL6 + * PA9 - COL7 + * PA10 - ROW5 + * PA11 - USB_DM (alternate 14). + * PA12 - USB_DP (alternate 14). + * PA13 - SWDIO (alternate 0). + * PA14 - SWCLK (alternate 0). + * PA15 - ROW4 + */ +#define VAL_GPIOA_MODER (PIN_MODE_INPUT(GPIOA_PIN0) | \ + PIN_MODE_ALTERNATE(GPIOA_PIN1) | \ + PIN_MODE_INPUT(GPIOA_PIN2) | \ + PIN_MODE_INPUT(GPIOA_PIN3) | \ + PIN_MODE_INPUT(GPIOA_PIN4) | \ + PIN_MODE_INPUT(GPIOA_PIN5) | \ + PIN_MODE_INPUT(GPIOA_PIN6) | \ + PIN_MODE_INPUT(GPIOA_PIN7) | \ + PIN_MODE_INPUT(GPIOA_PIN8) | \ + PIN_MODE_INPUT(GPIOA_PIN9) | \ + PIN_MODE_INPUT(GPIOA_PIN10) | \ + PIN_MODE_ALTERNATE(GPIOA_USB_DM) | \ + PIN_MODE_ALTERNATE(GPIOA_USB_DP) | \ + PIN_MODE_ALTERNATE(GPIOA_SWDIO) | \ + PIN_MODE_ALTERNATE(GPIOA_SWCLK) | \ + PIN_MODE_INPUT(GPIOA_PIN15)) +#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(GPIOA_PIN0) | \ + PIN_OTYPE_PUSHPULL(GPIOA_PIN1) | \ + PIN_OTYPE_PUSHPULL(GPIOA_PIN2) | \ + PIN_OTYPE_PUSHPULL(GPIOA_PIN3) | \ + PIN_OTYPE_PUSHPULL(GPIOA_PIN4) | \ + PIN_OTYPE_PUSHPULL(GPIOA_PIN5) | \ + PIN_OTYPE_PUSHPULL(GPIOA_PIN6) | \ + PIN_OTYPE_PUSHPULL(GPIOA_PIN7) | \ + PIN_OTYPE_PUSHPULL(GPIOA_PIN8) | \ + PIN_OTYPE_PUSHPULL(GPIOA_PIN9) | \ + PIN_OTYPE_PUSHPULL(GPIOA_PIN10) | \ + PIN_OTYPE_PUSHPULL(GPIOA_USB_DM) | \ + PIN_OTYPE_PUSHPULL(GPIOA_USB_DP) | \ + PIN_OTYPE_PUSHPULL(GPIOA_SWDIO) | \ + PIN_OTYPE_PUSHPULL(GPIOA_SWCLK) | \ + PIN_OTYPE_PUSHPULL(GPIOA_PIN15)) +#define VAL_GPIOA_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOA_PIN0) | \ + PIN_OSPEED_HIGH(GPIOA_PIN1) | \ + PIN_OSPEED_VERYLOW(GPIOA_PIN2) | \ + PIN_OSPEED_VERYLOW(GPIOA_PIN3) | \ + PIN_OSPEED_VERYLOW(GPIOA_PIN4) | \ + PIN_OSPEED_VERYLOW(GPIOA_PIN5) | \ + PIN_OSPEED_VERYLOW(GPIOA_PIN6) | \ + PIN_OSPEED_VERYLOW(GPIOA_PIN7) | \ + PIN_OSPEED_VERYLOW(GPIOA_PIN8) | \ + PIN_OSPEED_VERYLOW(GPIOA_PIN9) | \ + PIN_OSPEED_VERYLOW(GPIOA_PIN10) | \ + PIN_OSPEED_HIGH(GPIOA_USB_DM) | \ + PIN_OSPEED_VERYLOW(GPIOA_USB_DP) | \ + PIN_OSPEED_HIGH(GPIOA_SWDIO) | \ + PIN_OSPEED_HIGH(GPIOA_SWCLK) | \ + PIN_OSPEED_VERYLOW(GPIOA_PIN15)) +#define VAL_GPIOA_PUPDR (PIN_PUPDR_FLOATING(GPIOA_PIN0) | \ + PIN_PUPDR_FLOATING(GPIOA_PIN1) | \ + PIN_PUPDR_PULLUP(GPIOA_PIN2) | \ + PIN_PUPDR_PULLUP(GPIOA_PIN3) | \ + PIN_PUPDR_PULLUP(GPIOA_PIN4) | \ + PIN_PUPDR_PULLUP(GPIOA_PIN5) | \ + PIN_PUPDR_PULLUP(GPIOA_PIN6) | \ + PIN_PUPDR_FLOATING(GPIOA_PIN7) | \ + PIN_PUPDR_PULLUP(GPIOA_PIN8) | \ + PIN_PUPDR_PULLUP(GPIOA_PIN9) | \ + PIN_PUPDR_PULLUP(GPIOA_PIN10) | \ + PIN_PUPDR_FLOATING(GPIOA_USB_DM) | \ + PIN_PUPDR_FLOATING(GPIOA_USB_DP) | \ + PIN_PUPDR_PULLUP(GPIOA_SWDIO) | \ + PIN_PUPDR_PULLDOWN(GPIOA_SWCLK) | \ + PIN_PUPDR_PULLUP(GPIOA_PIN15)) +#define VAL_GPIOA_ODR (PIN_ODR_HIGH(GPIOA_PIN0) | \ + PIN_ODR_HIGH(GPIOA_PIN1) | \ + PIN_ODR_HIGH(GPIOA_PIN2) | \ + PIN_ODR_HIGH(GPIOA_PIN3) | \ + PIN_ODR_HIGH(GPIOA_PIN4) | \ + PIN_ODR_HIGH(GPIOA_PIN5) | \ + PIN_ODR_HIGH(GPIOA_PIN6) | \ + PIN_ODR_HIGH(GPIOA_PIN7) | \ + PIN_ODR_HIGH(GPIOA_PIN8) | \ + PIN_ODR_HIGH(GPIOA_PIN9) | \ + PIN_ODR_HIGH(GPIOA_PIN10) | \ + PIN_ODR_HIGH(GPIOA_USB_DM) | \ + PIN_ODR_HIGH(GPIOA_USB_DP) | \ + PIN_ODR_HIGH(GPIOA_SWDIO) | \ + PIN_ODR_HIGH(GPIOA_SWCLK) | \ + PIN_ODR_HIGH(GPIOA_PIN15)) +#define VAL_GPIOA_AFRL (PIN_AFIO_AF(GPIOA_PIN0, 0) | \ + PIN_AFIO_AF(GPIOA_PIN1, 1) | \ + PIN_AFIO_AF(GPIOA_PIN2, 0) | \ + PIN_AFIO_AF(GPIOA_PIN3, 0) | \ + PIN_AFIO_AF(GPIOA_PIN4, 0) | \ + PIN_AFIO_AF(GPIOA_PIN5, 5) | \ + PIN_AFIO_AF(GPIOA_PIN6, 5) | \ + PIN_AFIO_AF(GPIOA_PIN7, 5)) +#define VAL_GPIOA_AFRH (PIN_AFIO_AF(GPIOA_PIN8, 0) | \ + PIN_AFIO_AF(GPIOA_PIN9, 0) | \ + PIN_AFIO_AF(GPIOA_PIN10, 0) | \ + PIN_AFIO_AF(GPIOA_USB_DM, 14) | \ + PIN_AFIO_AF(GPIOA_USB_DP, 14) | \ + PIN_AFIO_AF(GPIOA_SWDIO, 0) | \ + PIN_AFIO_AF(GPIOA_SWCLK, 0) | \ + PIN_AFIO_AF(GPIOA_PIN15, 0)) + +/* + * GPIOB setup: + * + * PB0 - PIN0 (input pullup). + * PB1 - PIN1 (input pullup). + * PB2 - PIN2 (input pullup). + * PB3 - PIN3 (alternate 0). + * PB4 - PIN4 (input pullup). + * PB5 - PIN5 (input pullup). + * PB6 - PIN6 LSM303DLHC_SCL (alternate 4). + * PB7 - PIN7 LSM303DLHC_SDA (alternate 4). + * PB8 - PIN8 (input pullup). + * PB9 - PIN9 (input pullup). + * PB10 - PIN10 (input pullup). + * PB11 - PIN11 (input pullup). + * PB12 - PIN12 (input pullup). + * PB13 - PIN13 (input pullup). + * PB14 - PIN14 (input pullup). + * PB15 - PIN15 (input pullup). + */ +#define VAL_GPIOB_MODER (PIN_MODE_INPUT(GPIOB_PIN0) | \ + PIN_MODE_INPUT(GPIOB_PIN1) | \ + PIN_MODE_INPUT(GPIOB_PIN2) | \ + PIN_MODE_ALTERNATE(GPIOB_PIN3) | \ + PIN_MODE_INPUT(GPIOB_PIN4) | \ + PIN_MODE_INPUT(GPIOB_PIN5) | \ + PIN_MODE_ALTERNATE(GPIOB_PIN6) | \ + PIN_MODE_OUTPUT(GPIOB_PIN7) | \ + PIN_MODE_INPUT(GPIOB_PIN8) | \ + PIN_MODE_INPUT(GPIOB_PIN9) | \ + PIN_MODE_INPUT(GPIOB_PIN10) | \ + PIN_MODE_INPUT(GPIOB_PIN11) | \ + PIN_MODE_INPUT(GPIOB_PIN12) | \ + PIN_MODE_INPUT(GPIOB_PIN13) | \ + PIN_MODE_INPUT(GPIOB_PIN14) | \ + PIN_MODE_INPUT(GPIOB_PIN15)) +#define VAL_GPIOB_OTYPER (PIN_OTYPE_PUSHPULL(GPIOB_PIN0) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN1) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN2) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN3) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN4) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN5) | \ + PIN_OTYPE_OPENDRAIN(GPIOB_PIN6) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN7) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN8) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN9) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN10) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN11) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN12) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN13) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN14) | \ + PIN_OTYPE_PUSHPULL(GPIOB_PIN15)) +#define VAL_GPIOB_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOB_PIN0) | \ + PIN_OSPEED_VERYLOW(GPIOB_PIN1) | \ + PIN_OSPEED_VERYLOW(GPIOB_PIN2) | \ + PIN_OSPEED_HIGH(GPIOB_PIN3) | \ + PIN_OSPEED_VERYLOW(GPIOB_PIN4) | \ + PIN_OSPEED_VERYLOW(GPIOB_PIN5) | \ + PIN_OSPEED_HIGH(GPIOB_PIN6) | \ + PIN_OSPEED_VERYLOW(GPIOB_PIN7) | \ + PIN_OSPEED_VERYLOW(GPIOB_PIN8) | \ + PIN_OSPEED_VERYLOW(GPIOB_PIN9) | \ + PIN_OSPEED_VERYLOW(GPIOB_PIN10) | \ + PIN_OSPEED_VERYLOW(GPIOB_PIN11) | \ + PIN_OSPEED_VERYLOW(GPIOB_PIN12) | \ + PIN_OSPEED_VERYLOW(GPIOB_PIN13) | \ + PIN_OSPEED_VERYLOW(GPIOB_PIN14) | \ + PIN_OSPEED_VERYLOW(GPIOB_PIN15)) +#define VAL_GPIOB_PUPDR (PIN_PUPDR_PULLUP(GPIOB_PIN0) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN1) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN2) | \ + PIN_PUPDR_FLOATING(GPIOB_PIN3) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN4) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN5) | \ + PIN_PUPDR_FLOATING(GPIOB_PIN6) | \ + PIN_PUPDR_PULLDOWN(GPIOB_PIN7) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN8) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN9) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN10) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN11) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN12) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN13) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN14) | \ + PIN_PUPDR_PULLUP(GPIOB_PIN15)) +#define VAL_GPIOB_ODR (PIN_ODR_HIGH(GPIOB_PIN0) | \ + PIN_ODR_HIGH(GPIOB_PIN1) | \ + PIN_ODR_HIGH(GPIOB_PIN2) | \ + PIN_ODR_HIGH(GPIOB_PIN3) | \ + PIN_ODR_HIGH(GPIOB_PIN4) | \ + PIN_ODR_HIGH(GPIOB_PIN5) | \ + PIN_ODR_HIGH(GPIOB_PIN6) | \ + PIN_ODR_LOW(GPIOB_PIN7) | \ + PIN_ODR_HIGH(GPIOB_PIN8) | \ + PIN_ODR_HIGH(GPIOB_PIN9) | \ + PIN_ODR_HIGH(GPIOB_PIN10) | \ + PIN_ODR_HIGH(GPIOB_PIN11) | \ + PIN_ODR_HIGH(GPIOB_PIN12) | \ + PIN_ODR_HIGH(GPIOB_PIN13) | \ + PIN_ODR_HIGH(GPIOB_PIN14) | \ + PIN_ODR_HIGH(GPIOB_PIN15)) +#define VAL_GPIOB_AFRL (PIN_AFIO_AF(GPIOB_PIN0, 0) | \ + PIN_AFIO_AF(GPIOB_PIN1, 0) | \ + PIN_AFIO_AF(GPIOB_PIN2, 0) | \ + PIN_AFIO_AF(GPIOB_PIN3, 0) | \ + PIN_AFIO_AF(GPIOB_PIN4, 0) | \ + PIN_AFIO_AF(GPIOB_PIN5, 0) | \ + PIN_AFIO_AF(GPIOB_PIN6, 4) | \ + PIN_AFIO_AF(GPIOB_PIN7, 0)) +#define VAL_GPIOB_AFRH (PIN_AFIO_AF(GPIOB_PIN8, 0) | \ + PIN_AFIO_AF(GPIOB_PIN9, 0) | \ + PIN_AFIO_AF(GPIOB_PIN10, 0) | \ + PIN_AFIO_AF(GPIOB_PIN11, 0) | \ + PIN_AFIO_AF(GPIOB_PIN12, 0) | \ + PIN_AFIO_AF(GPIOB_PIN13, 0) | \ + PIN_AFIO_AF(GPIOB_PIN14, 0) | \ + PIN_AFIO_AF(GPIOB_PIN15, 0)) + +/* + * GPIOC setup: + * + * PC0 - PIN0 (input pullup). + * PC1 - PIN1 (input pullup). + * PC2 - PIN2 (input pullup). + * PC3 - PIN3 (input pullup). + * PC4 - PIN4 (input pullup). + * PC5 - PIN5 (input pullup). + * PC6 - PIN6 (input pullup). + * PC7 - PIN7 (input pullup). + * PC8 - PIN8 (input pullup). + * PC9 - PIN9 (input pullup). + * PC10 - PIN10 (input pullup). + * PC11 - PIN11 (input pullup). + * PC12 - PIN12 (input pullup). + * PC13 - PIN13 (input pullup). + * PC14 - PIN14 (input floating). + * PC15 - PIN15 (input floating). + */ +#define VAL_GPIOC_MODER (PIN_MODE_INPUT(GPIOC_PIN0) | \ + PIN_MODE_INPUT(GPIOC_PIN1) | \ + PIN_MODE_INPUT(GPIOC_PIN2) | \ + PIN_MODE_INPUT(GPIOC_PIN3) | \ + PIN_MODE_INPUT(GPIOC_PIN4) | \ + PIN_MODE_INPUT(GPIOC_PIN5) | \ + PIN_MODE_INPUT(GPIOC_PIN6) | \ + PIN_MODE_INPUT(GPIOC_PIN7) | \ + PIN_MODE_INPUT(GPIOC_PIN8) | \ + PIN_MODE_INPUT(GPIOC_PIN9) | \ + PIN_MODE_INPUT(GPIOC_PIN10) | \ + PIN_MODE_INPUT(GPIOC_PIN11) | \ + PIN_MODE_INPUT(GPIOC_PIN12) | \ + PIN_MODE_INPUT(GPIOC_PIN13) | \ + PIN_MODE_INPUT(GPIOC_PIN14) | \ + PIN_MODE_INPUT(GPIOC_PIN15)) +#define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL(GPIOC_PIN0) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN1) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN2) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN3) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN4) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN5) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN6) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN7) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN8) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN9) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN10) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN11) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN12) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN13) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN14) | \ + PIN_OTYPE_PUSHPULL(GPIOC_PIN15)) +#define VAL_GPIOC_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOC_PIN0) | \ + PIN_OSPEED_VERYLOW(GPIOC_PIN1) | \ + PIN_OSPEED_VERYLOW(GPIOC_PIN2) | \ + PIN_OSPEED_VERYLOW(GPIOC_PIN3) | \ + PIN_OSPEED_VERYLOW(GPIOC_PIN4) | \ + PIN_OSPEED_VERYLOW(GPIOC_PIN5) | \ + PIN_OSPEED_VERYLOW(GPIOC_PIN6) | \ + PIN_OSPEED_VERYLOW(GPIOC_PIN7) | \ + PIN_OSPEED_VERYLOW(GPIOC_PIN8) | \ + PIN_OSPEED_VERYLOW(GPIOC_PIN9) | \ + PIN_OSPEED_VERYLOW(GPIOC_PIN10) | \ + PIN_OSPEED_VERYLOW(GPIOC_PIN11) | \ + PIN_OSPEED_VERYLOW(GPIOC_PIN12) | \ + PIN_OSPEED_VERYLOW(GPIOC_PIN13) | \ + PIN_OSPEED_HIGH(GPIOC_PIN14) | \ + PIN_OSPEED_HIGH(GPIOC_PIN15)) +#define VAL_GPIOC_PUPDR (PIN_PUPDR_PULLUP(GPIOC_PIN0) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN1) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN2) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN3) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN4) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN5) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN6) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN7) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN8) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN9) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN10) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN11) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN12) | \ + PIN_PUPDR_PULLUP(GPIOC_PIN13) | \ + PIN_PUPDR_FLOATING(GPIOC_PIN14) | \ + PIN_PUPDR_FLOATING(GPIOC_PIN15)) +#define VAL_GPIOC_ODR (PIN_ODR_HIGH(GPIOC_PIN0) | \ + PIN_ODR_HIGH(GPIOC_PIN1) | \ + PIN_ODR_HIGH(GPIOC_PIN2) | \ + PIN_ODR_HIGH(GPIOC_PIN3) | \ + PIN_ODR_HIGH(GPIOC_PIN4) | \ + PIN_ODR_HIGH(GPIOC_PIN5) | \ + PIN_ODR_HIGH(GPIOC_PIN6) | \ + PIN_ODR_HIGH(GPIOC_PIN7) | \ + PIN_ODR_HIGH(GPIOC_PIN8) | \ + PIN_ODR_HIGH(GPIOC_PIN9) | \ + PIN_ODR_HIGH(GPIOC_PIN10) | \ + PIN_ODR_HIGH(GPIOC_PIN11) | \ + PIN_ODR_HIGH(GPIOC_PIN12) | \ + PIN_ODR_HIGH(GPIOC_PIN13) | \ + PIN_ODR_HIGH(GPIOC_PIN14) | \ + PIN_ODR_HIGH(GPIOC_PIN15)) +#define VAL_GPIOC_AFRL (PIN_AFIO_AF(GPIOC_PIN0, 0) | \ + PIN_AFIO_AF(GPIOC_PIN1, 0) | \ + PIN_AFIO_AF(GPIOC_PIN2, 0) | \ + PIN_AFIO_AF(GPIOC_PIN3, 0) | \ + PIN_AFIO_AF(GPIOC_PIN4, 0) | \ + PIN_AFIO_AF(GPIOC_PIN5, 0) | \ + PIN_AFIO_AF(GPIOC_PIN6, 0) | \ + PIN_AFIO_AF(GPIOC_PIN7, 0)) +#define VAL_GPIOC_AFRH (PIN_AFIO_AF(GPIOC_PIN8, 0) | \ + PIN_AFIO_AF(GPIOC_PIN9, 0) | \ + PIN_AFIO_AF(GPIOC_PIN10, 0) | \ + PIN_AFIO_AF(GPIOC_PIN11, 0) | \ + PIN_AFIO_AF(GPIOC_PIN12, 0) | \ + PIN_AFIO_AF(GPIOC_PIN13, 0) | \ + PIN_AFIO_AF(GPIOC_PIN14, 0) | \ + PIN_AFIO_AF(GPIOC_PIN15, 0)) + +/* + * GPIOD setup: + * + * PD0 - PIN0 (input pullup). + * PD1 - PIN1 (input pullup). + * PD2 - PIN2 (input pullup). + * PD3 - PIN3 (input pullup). + * PD4 - PIN4 (input pullup). + * PD5 - PIN5 (input pullup). + * PD6 - PIN6 (input pullup). + * PD7 - PIN7 (input pullup). + * PD8 - PIN8 (input pullup). + * PD9 - PIN9 (input pullup). + * PD11 - PIN10 (input pullup). + * PD11 - PIN11 (input pullup). + * PD12 - PIN12 (input pullup). + * PD13 - PIN13 (input pullup). + * PD14 - PIN14 (input pullup). + * PD15 - PIN15 (input pullup). + */ +#define VAL_GPIOD_MODER (PIN_MODE_INPUT(GPIOD_PIN0) | \ + PIN_MODE_INPUT(GPIOD_PIN1) | \ + PIN_MODE_INPUT(GPIOD_PIN2) | \ + PIN_MODE_INPUT(GPIOD_PIN3) | \ + PIN_MODE_INPUT(GPIOD_PIN4) | \ + PIN_MODE_INPUT(GPIOD_PIN5) | \ + PIN_MODE_INPUT(GPIOD_PIN6) | \ + PIN_MODE_INPUT(GPIOD_PIN7) | \ + PIN_MODE_INPUT(GPIOD_PIN8) | \ + PIN_MODE_INPUT(GPIOD_PIN9) | \ + PIN_MODE_INPUT(GPIOD_PIN10) | \ + PIN_MODE_INPUT(GPIOD_PIN11) | \ + PIN_MODE_INPUT(GPIOD_PIN12) | \ + PIN_MODE_INPUT(GPIOD_PIN13) | \ + PIN_MODE_INPUT(GPIOD_PIN14) | \ + PIN_MODE_INPUT(GPIOD_PIN15)) +#define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL(GPIOD_PIN0) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN1) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN2) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN3) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN4) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN5) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN6) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN7) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN8) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN9) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN10) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN11) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN12) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN13) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN14) | \ + PIN_OTYPE_PUSHPULL(GPIOD_PIN15)) +#define VAL_GPIOD_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOD_PIN0) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN1) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN2) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN3) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN4) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN5) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN6) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN7) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN8) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN9) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN10) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN11) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN12) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN13) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN14) | \ + PIN_OSPEED_VERYLOW(GPIOD_PIN15)) +#define VAL_GPIOD_PUPDR (PIN_PUPDR_PULLUP(GPIOD_PIN0) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN1) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN2) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN3) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN4) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN5) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN6) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN7) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN8) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN9) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN10) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN11) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN12) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN13) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN14) | \ + PIN_PUPDR_PULLUP(GPIOD_PIN15)) +#define VAL_GPIOD_ODR (PIN_ODR_HIGH(GPIOD_PIN0) | \ + PIN_ODR_HIGH(GPIOD_PIN1) | \ + PIN_ODR_HIGH(GPIOD_PIN2) | \ + PIN_ODR_HIGH(GPIOD_PIN3) | \ + PIN_ODR_HIGH(GPIOD_PIN4) | \ + PIN_ODR_HIGH(GPIOD_PIN5) | \ + PIN_ODR_HIGH(GPIOD_PIN6) | \ + PIN_ODR_HIGH(GPIOD_PIN7) | \ + PIN_ODR_HIGH(GPIOD_PIN8) | \ + PIN_ODR_HIGH(GPIOD_PIN9) | \ + PIN_ODR_HIGH(GPIOD_PIN10) | \ + PIN_ODR_HIGH(GPIOD_PIN11) | \ + PIN_ODR_HIGH(GPIOD_PIN12) | \ + PIN_ODR_HIGH(GPIOD_PIN13) | \ + PIN_ODR_HIGH(GPIOD_PIN14) | \ + PIN_ODR_HIGH(GPIOD_PIN15)) +#define VAL_GPIOD_AFRL (PIN_AFIO_AF(GPIOD_PIN0, 0) | \ + PIN_AFIO_AF(GPIOD_PIN1, 0) | \ + PIN_AFIO_AF(GPIOD_PIN2, 0) | \ + PIN_AFIO_AF(GPIOD_PIN3, 0) | \ + PIN_AFIO_AF(GPIOD_PIN4, 0) | \ + PIN_AFIO_AF(GPIOD_PIN5, 0) | \ + PIN_AFIO_AF(GPIOD_PIN6, 0) | \ + PIN_AFIO_AF(GPIOD_PIN7, 0)) +#define VAL_GPIOD_AFRH (PIN_AFIO_AF(GPIOD_PIN8, 0) | \ + PIN_AFIO_AF(GPIOD_PIN9, 0) | \ + PIN_AFIO_AF(GPIOD_PIN10, 0) | \ + PIN_AFIO_AF(GPIOD_PIN11, 0) | \ + PIN_AFIO_AF(GPIOD_PIN12, 0) | \ + PIN_AFIO_AF(GPIOD_PIN13, 0) | \ + PIN_AFIO_AF(GPIOD_PIN14, 0) | \ + PIN_AFIO_AF(GPIOD_PIN15, 0)) + +/* + * GPIOE setup: + * + * PE0 - PIN0 (input pullup). + * PE1 - PIN1 (input pullup). + * PE2 - PIN2 (input pullup). + * PE3 - PIN3 L3GD20_CS (output pushpull maximum). + * PE4 - PIN4 (input pullup). + * PE5 - PIN5 (input pullup). + * PE6 - PIN6 (input pullup). + * PE7 - PIN7 (input pullup). + * PE8 - PIN8 (output pushpull maximum). + * PE9 - PIN9 (output pushpull maximum). + * PE10 - PIN10 (output pushpull maximum). + * PE11 - PIN11 (output pushpull maximum). + * PE12 - PIN12 (output pushpull maximum). + * PE13 - PIN13 (output pushpull maximum). + * PE14 - PIN14 (output pushpull maximum). + * PE15 - PIN15 (output pushpull maximum). + */ +#define VAL_GPIOE_MODER (PIN_MODE_INPUT(GPIOE_PIN0) | \ + PIN_MODE_INPUT(GPIOE_PIN1) | \ + PIN_MODE_INPUT(GPIOE_PIN2) |\ + PIN_MODE_OUTPUT(GPIOE_PIN3) | \ + PIN_MODE_INPUT(GPIOE_PIN4) |\ + PIN_MODE_INPUT(GPIOE_PIN5) |\ + PIN_MODE_INPUT(GPIOE_PIN6) | \ + PIN_MODE_INPUT(GPIOE_PIN7) | \ + PIN_MODE_OUTPUT(GPIOE_PIN8) | \ + PIN_MODE_OUTPUT(GPIOE_PIN9) | \ + PIN_MODE_OUTPUT(GPIOE_PIN10) | \ + PIN_MODE_OUTPUT(GPIOE_PIN11) | \ + PIN_MODE_OUTPUT(GPIOE_PIN12) | \ + PIN_MODE_OUTPUT(GPIOE_PIN13) | \ + PIN_MODE_OUTPUT(GPIOE_PIN14) | \ + PIN_MODE_OUTPUT(GPIOE_PIN15)) +#define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL(GPIOE_PIN0) |\ + PIN_OTYPE_PUSHPULL(GPIOE_PIN1) |\ + PIN_OTYPE_PUSHPULL(GPIOE_PIN2) |\ + PIN_OTYPE_PUSHPULL(GPIOE_PIN3) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN4) |\ + PIN_OTYPE_PUSHPULL(GPIOE_PIN5) |\ + PIN_OTYPE_PUSHPULL(GPIOE_PIN6) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN7) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN8) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN9) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN10) |\ + PIN_OTYPE_PUSHPULL(GPIOE_PIN11) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN12) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN13) | \ + PIN_OTYPE_PUSHPULL(GPIOE_PIN14) |\ + PIN_OTYPE_PUSHPULL(GPIOE_PIN15)) +#define VAL_GPIOE_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOE_PIN0) |\ + PIN_OSPEED_VERYLOW(GPIOE_PIN1) |\ + PIN_OSPEED_VERYLOW(GPIOE_PIN2) |\ + PIN_OSPEED_HIGH(GPIOE_PIN3) | \ + PIN_OSPEED_VERYLOW(GPIOE_PIN4) |\ + PIN_OSPEED_VERYLOW(GPIOE_PIN5) |\ + PIN_OSPEED_VERYLOW(GPIOE_PIN6) | \ + PIN_OSPEED_VERYLOW(GPIOE_PIN7) | \ + PIN_OSPEED_HIGH(GPIOE_PIN8) | \ + PIN_OSPEED_HIGH(GPIOE_PIN9) | \ + PIN_OSPEED_HIGH(GPIOE_PIN10) | \ + PIN_OSPEED_HIGH(GPIOE_PIN11) | \ + PIN_OSPEED_HIGH(GPIOE_PIN12) | \ + PIN_OSPEED_HIGH(GPIOE_PIN13) | \ + PIN_OSPEED_HIGH(GPIOE_PIN14) | \ + PIN_OSPEED_HIGH(GPIOE_PIN15)) +#define VAL_GPIOE_PUPDR (PIN_PUPDR_PULLUP(GPIOE_PIN0) | \ + PIN_PUPDR_PULLUP(GPIOE_PIN1) | \ + PIN_PUPDR_PULLUP(GPIOE_PIN2) |\ + PIN_PUPDR_FLOATING(GPIOE_PIN3) | \ + PIN_PUPDR_PULLUP(GPIOE_PIN4) |\ + PIN_PUPDR_PULLUP(GPIOE_PIN5) |\ + PIN_PUPDR_PULLUP(GPIOE_PIN6) | \ + PIN_PUPDR_PULLUP(GPIOE_PIN7) | \ + PIN_PUPDR_PULLUP(GPIOE_PIN8) | \ + PIN_PUPDR_PULLUP(GPIOE_PIN9) | \ + PIN_PUPDR_PULLUP(GPIOE_PIN10) | \ + PIN_PUPDR_FLOATING(GPIOE_PIN11) | \ + PIN_PUPDR_PULLUP(GPIOE_PIN12) | \ + PIN_PUPDR_FLOATING(GPIOE_PIN13) | \ + PIN_PUPDR_FLOATING(GPIOE_PIN14) |\ + PIN_PUPDR_FLOATING(GPIOE_PIN15)) +#define VAL_GPIOE_ODR (PIN_ODR_HIGH(GPIOE_PIN0) | \ + PIN_ODR_HIGH(GPIOE_PIN1) | \ + PIN_ODR_HIGH(GPIOE_PIN2) | \ + PIN_ODR_HIGH(GPIOE_PIN3) | \ + PIN_ODR_HIGH(GPIOE_PIN4) | \ + PIN_ODR_HIGH(GPIOE_PIN5) | \ + PIN_ODR_HIGH(GPIOE_PIN6) | \ + PIN_ODR_HIGH(GPIOE_PIN7) | \ + PIN_ODR_LOW(GPIOE_PIN8) | \ + PIN_ODR_LOW(GPIOE_PIN9) | \ + PIN_ODR_LOW(GPIOE_PIN10) | \ + PIN_ODR_LOW(GPIOE_PIN11) | \ + PIN_ODR_LOW(GPIOE_PIN12) | \ + PIN_ODR_LOW(GPIOE_PIN13) | \ + PIN_ODR_LOW(GPIOE_PIN14) | \ + PIN_ODR_LOW(GPIOE_PIN15)) +#define VAL_GPIOE_AFRL (PIN_AFIO_AF(GPIOE_PIN0, 0) | \ + PIN_AFIO_AF(GPIOE_PIN1, 0) | \ + PIN_AFIO_AF(GPIOE_PIN2, 0) |\ + PIN_AFIO_AF(GPIOE_PIN3, 0) | \ + PIN_AFIO_AF(GPIOE_PIN4, 0) |\ + PIN_AFIO_AF(GPIOE_PIN5, 0) |\ + PIN_AFIO_AF(GPIOE_PIN6, 0) | \ + PIN_AFIO_AF(GPIOE_PIN7, 0)) +#define VAL_GPIOE_AFRH (PIN_AFIO_AF(GPIOE_PIN8, 0) | \ + PIN_AFIO_AF(GPIOE_PIN9, 0) | \ + PIN_AFIO_AF(GPIOE_PIN10, 0) | \ + PIN_AFIO_AF(GPIOE_PIN11, 0) | \ + PIN_AFIO_AF(GPIOE_PIN12, 0) | \ + PIN_AFIO_AF(GPIOE_PIN13, 0) | \ + PIN_AFIO_AF(GPIOE_PIN14, 0) | \ + PIN_AFIO_AF(GPIOE_PIN15, 0)) + +/* + * GPIOF setup: + * + * PF0 - I2C2_SDA (input floating). + * PF1 - I2C2_SCL (input floating). + * PF2 - PIN2 (input pullup). + * PF3 - PIN3 (input pullup). + * PF4 - PIN4 (input pullup). + * PF5 - PIN5 (input pullup). + * PF6 - PIN6 (input pullup). + * PF7 - PIN7 (input pullup). + * PF8 - PIN8 (input pullup). + * PF9 - PIN9 (input pullup). + * PF10 - PIN10 (input pullup). + * PF11 - PIN11 (input pullup). + * PF12 - PIN12 (input pullup). + * PF13 - PIN13 (input pullup). + * PF14 - PIN14 (input pullup). + * PF15 - PIN15 (input pullup). + */ +#define VAL_GPIOF_MODER (PIN_MODE_INPUT(GPIOF_I2C2_SDA) | \ + PIN_MODE_INPUT(GPIOF_I2C2_SCL) | \ + PIN_MODE_INPUT(GPIOF_PIN2) | \ + PIN_MODE_INPUT(GPIOF_PIN3) | \ + PIN_MODE_INPUT(GPIOF_PIN4) | \ + PIN_MODE_INPUT(GPIOF_PIN5) | \ + PIN_MODE_INPUT(GPIOF_PIN6) | \ + PIN_MODE_INPUT(GPIOF_PIN7) | \ + PIN_MODE_INPUT(GPIOF_PIN8) | \ + PIN_MODE_INPUT(GPIOF_PIN9) | \ + PIN_MODE_INPUT(GPIOF_PIN10) | \ + PIN_MODE_INPUT(GPIOF_PIN11) | \ + PIN_MODE_INPUT(GPIOF_PIN12) | \ + PIN_MODE_INPUT(GPIOF_PIN13) | \ + PIN_MODE_INPUT(GPIOF_PIN14) | \ + PIN_MODE_INPUT(GPIOF_PIN15)) +#define VAL_GPIOF_OTYPER (PIN_OTYPE_PUSHPULL(GPIOF_I2C2_SDA) | \ + PIN_OTYPE_PUSHPULL(GPIOF_I2C2_SCL) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN2) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN3) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN4) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN5) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN6) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN7) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN8) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN9) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN10) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN11) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN12) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN13) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN14) | \ + PIN_OTYPE_PUSHPULL(GPIOF_PIN15)) +#define VAL_GPIOF_OSPEEDR (PIN_OSPEED_HIGH(GPIOF_I2C2_SDA) | \ + PIN_OSPEED_HIGH(GPIOF_I2C2_SCL) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN2) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN3) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN4) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN5) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN6) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN7) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN8) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN9) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN10) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN11) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN12) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN13) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN14) | \ + PIN_OSPEED_VERYLOW(GPIOF_PIN15)) +#define VAL_GPIOF_PUPDR (PIN_PUPDR_FLOATING(GPIOF_I2C2_SDA) | \ + PIN_PUPDR_FLOATING(GPIOF_I2C2_SCL) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN2) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN3) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN4) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN5) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN6) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN7) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN8) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN9) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN10) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN11) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN12) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN13) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN14) | \ + PIN_PUPDR_PULLUP(GPIOF_PIN15)) +#define VAL_GPIOF_ODR (PIN_ODR_HIGH(GPIOF_I2C2_SDA) | \ + PIN_ODR_HIGH(GPIOF_I2C2_SCL) | \ + PIN_ODR_HIGH(GPIOF_PIN2) | \ + PIN_ODR_HIGH(GPIOF_PIN3) | \ + PIN_ODR_HIGH(GPIOF_PIN4) | \ + PIN_ODR_HIGH(GPIOF_PIN5) | \ + PIN_ODR_HIGH(GPIOF_PIN6) | \ + PIN_ODR_HIGH(GPIOF_PIN7) | \ + PIN_ODR_HIGH(GPIOF_PIN8) | \ + PIN_ODR_HIGH(GPIOF_PIN9) | \ + PIN_ODR_HIGH(GPIOF_PIN10) | \ + PIN_ODR_HIGH(GPIOF_PIN11) | \ + PIN_ODR_HIGH(GPIOF_PIN12) | \ + PIN_ODR_HIGH(GPIOF_PIN13) | \ + PIN_ODR_HIGH(GPIOF_PIN14) | \ + PIN_ODR_HIGH(GPIOF_PIN15)) +#define VAL_GPIOF_AFRL (PIN_AFIO_AF(GPIOF_I2C2_SDA, 0) | \ + PIN_AFIO_AF(GPIOF_I2C2_SCL, 0) | \ + PIN_AFIO_AF(GPIOF_PIN2, 0) | \ + PIN_AFIO_AF(GPIOF_PIN3, 0) | \ + PIN_AFIO_AF(GPIOF_PIN4, 0) | \ + PIN_AFIO_AF(GPIOF_PIN5, 0) | \ + PIN_AFIO_AF(GPIOF_PIN6, 0) | \ + PIN_AFIO_AF(GPIOF_PIN7, 0)) +#define VAL_GPIOF_AFRH (PIN_AFIO_AF(GPIOF_PIN8, 0) | \ + PIN_AFIO_AF(GPIOF_PIN9, 0) | \ + PIN_AFIO_AF(GPIOF_PIN10, 0) | \ + PIN_AFIO_AF(GPIOF_PIN11, 0) | \ + PIN_AFIO_AF(GPIOF_PIN12, 0) | \ + PIN_AFIO_AF(GPIOF_PIN13, 0) | \ + PIN_AFIO_AF(GPIOF_PIN14, 0) | \ + PIN_AFIO_AF(GPIOF_PIN15, 0)) + +/* + * GPIOG setup: + * + * PG0 - PIN0 (input pullup). + * PG1 - PIN1 (input pullup). + * PG2 - PIN2 (input pullup). + * PG3 - PIN3 (input pullup). + * PG4 - PIN4 (input pullup). + * PG5 - PIN5 (input pullup). + * PG6 - PIN6 (input pullup). + * PG7 - PIN7 (input pullup). + * PG8 - PIN8 (input pullup). + * PG9 - PIN9 (input pullup). + * PG10 - PIN10 (input pullup). + * PG11 - PIN11 (input pullup). + * PG12 - PIN12 (input pullup). + * PG13 - PIN13 (input pullup). + * PG14 - PIN14 (input pullup). + * PG15 - PIN15 (input pullup). + */ +#define VAL_GPIOG_MODER (PIN_MODE_INPUT(GPIOG_PIN0) | \ + PIN_MODE_INPUT(GPIOG_PIN1) | \ + PIN_MODE_INPUT(GPIOG_PIN2) | \ + PIN_MODE_INPUT(GPIOG_PIN3) | \ + PIN_MODE_INPUT(GPIOG_PIN4) | \ + PIN_MODE_INPUT(GPIOG_PIN5) | \ + PIN_MODE_INPUT(GPIOG_PIN6) | \ + PIN_MODE_INPUT(GPIOG_PIN7) | \ + PIN_MODE_INPUT(GPIOG_PIN8) | \ + PIN_MODE_INPUT(GPIOG_PIN9) | \ + PIN_MODE_INPUT(GPIOG_PIN10) | \ + PIN_MODE_INPUT(GPIOG_PIN11) | \ + PIN_MODE_INPUT(GPIOG_PIN12) | \ + PIN_MODE_INPUT(GPIOG_PIN13) | \ + PIN_MODE_INPUT(GPIOG_PIN14) | \ + PIN_MODE_INPUT(GPIOG_PIN15)) +#define VAL_GPIOG_OTYPER (PIN_OTYPE_PUSHPULL(GPIOG_PIN0) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN1) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN2) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN3) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN4) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN5) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN6) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN7) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN8) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN9) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN10) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN11) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN12) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN13) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN14) | \ + PIN_OTYPE_PUSHPULL(GPIOG_PIN15)) +#define VAL_GPIOG_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOG_PIN0) | \ + PIN_OSPEED_VERYLOW(GPIOG_PIN1) | \ + PIN_OSPEED_VERYLOW(GPIOG_PIN2) | \ + PIN_OSPEED_VERYLOW(GPIOG_PIN3) | \ + PIN_OSPEED_VERYLOW(GPIOG_PIN4) | \ + PIN_OSPEED_VERYLOW(GPIOG_PIN5) | \ + PIN_OSPEED_VERYLOW(GPIOG_PIN6) | \ + PIN_OSPEED_VERYLOW(GPIOG_PIN7) | \ + PIN_OSPEED_VERYLOW(GPIOG_PIN8) | \ + PIN_OSPEED_VERYLOW(GPIOG_PIN9) | \ + PIN_OSPEED_VERYLOW(GPIOG_PIN10) | \ + PIN_OSPEED_VERYLOW(GPIOG_PIN11) | \ + PIN_OSPEED_VERYLOW(GPIOG_PIN12) | \ + PIN_OSPEED_VERYLOW(GPIOG_PIN13) | \ + PIN_OSPEED_VERYLOW(GPIOG_PIN14) | \ + PIN_OSPEED_VERYLOW(GPIOG_PIN15)) +#define VAL_GPIOG_PUPDR (PIN_PUPDR_PULLUP(GPIOG_PIN0) | \ + PIN_PUPDR_PULLUP(GPIOG_PIN1) | \ + PIN_PUPDR_PULLUP(GPIOG_PIN2) | \ + PIN_PUPDR_PULLUP(GPIOG_PIN3) | \ + PIN_PUPDR_PULLUP(GPIOG_PIN4) | \ + PIN_PUPDR_PULLUP(GPIOG_PIN5) | \ + PIN_PUPDR_PULLUP(GPIOG_PIN6) | \ + PIN_PUPDR_PULLUP(GPIOG_PIN7) | \ + PIN_PUPDR_PULLUP(GPIOG_PIN8) | \ + PIN_PUPDR_PULLUP(GPIOG_PIN9) | \ + PIN_PUPDR_PULLUP(GPIOG_PIN10) | \ + PIN_PUPDR_PULLUP(GPIOG_PIN11) | \ + PIN_PUPDR_PULLUP(GPIOG_PIN12) | \ + PIN_PUPDR_PULLUP(GPIOG_PIN13) | \ + PIN_PUPDR_PULLUP(GPIOG_PIN14) | \ + PIN_PUPDR_PULLUP(GPIOG_PIN15)) +#define VAL_GPIOG_ODR (PIN_ODR_HIGH(GPIOG_PIN0) | \ + PIN_ODR_HIGH(GPIOG_PIN1) | \ + PIN_ODR_HIGH(GPIOG_PIN2) | \ + PIN_ODR_HIGH(GPIOG_PIN3) | \ + PIN_ODR_HIGH(GPIOG_PIN4) | \ + PIN_ODR_HIGH(GPIOG_PIN5) | \ + PIN_ODR_HIGH(GPIOG_PIN6) | \ + PIN_ODR_HIGH(GPIOG_PIN7) | \ + PIN_ODR_HIGH(GPIOG_PIN8) | \ + PIN_ODR_HIGH(GPIOG_PIN9) | \ + PIN_ODR_HIGH(GPIOG_PIN10) | \ + PIN_ODR_HIGH(GPIOG_PIN11) | \ + PIN_ODR_HIGH(GPIOG_PIN12) | \ + PIN_ODR_HIGH(GPIOG_PIN13) | \ + PIN_ODR_HIGH(GPIOG_PIN14) | \ + PIN_ODR_HIGH(GPIOG_PIN15)) +#define VAL_GPIOG_AFRL (PIN_AFIO_AF(GPIOG_PIN0, 0) | \ + PIN_AFIO_AF(GPIOG_PIN1, 0) | \ + PIN_AFIO_AF(GPIOG_PIN2, 0) | \ + PIN_AFIO_AF(GPIOG_PIN3, 0) | \ + PIN_AFIO_AF(GPIOG_PIN4, 0) | \ + PIN_AFIO_AF(GPIOG_PIN5, 0) | \ + PIN_AFIO_AF(GPIOG_PIN6, 0) | \ + PIN_AFIO_AF(GPIOG_PIN7, 0)) +#define VAL_GPIOG_AFRH (PIN_AFIO_AF(GPIOG_PIN8, 0) | \ + PIN_AFIO_AF(GPIOG_PIN9, 0) | \ + PIN_AFIO_AF(GPIOG_PIN10, 0) | \ + PIN_AFIO_AF(GPIOG_PIN11, 0) | \ + PIN_AFIO_AF(GPIOG_PIN12, 0) | \ + PIN_AFIO_AF(GPIOG_PIN13, 0) | \ + PIN_AFIO_AF(GPIOG_PIN14, 0) | \ + PIN_AFIO_AF(GPIOG_PIN15, 0)) + +/* + * GPIOH setup: + * + * PH0 - PIN0 (input pullup). + * PH1 - PIN1 (input pullup). + * PH2 - PIN2 (input pullup). + * PH3 - PIN3 (input pullup). + * PH4 - PIN4 (input pullup). + * PH5 - PIN5 (input pullup). + * PH6 - PIN6 (input pullup). + * PH7 - PIN7 (input pullup). + * PH8 - PIN8 (input pullup). + * PH9 - PIN9 (input pullup). + * PH10 - PIN10 (input pullup). + * PH11 - PIN11 (input pullup). + * PH12 - PIN12 (input pullup). + * PH13 - PIN13 (input pullup). + * PH14 - PIN14 (input pullup). + * PH15 - PIN15 (input pullup). + */ +#define VAL_GPIOH_MODER (PIN_MODE_INPUT(GPIOH_PIN0) | \ + PIN_MODE_INPUT(GPIOH_PIN1) | \ + PIN_MODE_INPUT(GPIOH_PIN2) | \ + PIN_MODE_INPUT(GPIOH_PIN3) | \ + PIN_MODE_INPUT(GPIOH_PIN4) | \ + PIN_MODE_INPUT(GPIOH_PIN5) | \ + PIN_MODE_INPUT(GPIOH_PIN6) | \ + PIN_MODE_INPUT(GPIOH_PIN7) | \ + PIN_MODE_INPUT(GPIOH_PIN8) | \ + PIN_MODE_INPUT(GPIOH_PIN9) | \ + PIN_MODE_INPUT(GPIOH_PIN10) | \ + PIN_MODE_INPUT(GPIOH_PIN11) | \ + PIN_MODE_INPUT(GPIOH_PIN12) | \ + PIN_MODE_INPUT(GPIOH_PIN13) | \ + PIN_MODE_INPUT(GPIOH_PIN14) | \ + PIN_MODE_INPUT(GPIOH_PIN15)) +#define VAL_GPIOH_OTYPER (PIN_OTYPE_PUSHPULL(GPIOH_PIN0) | \ + PIN_OTYPE_PUSHPULL(GPIOH_PIN1) | \ + PIN_OTYPE_PUSHPULL(GPIOH_PIN2) | \ + PIN_OTYPE_PUSHPULL(GPIOH_PIN3) | \ + PIN_OTYPE_PUSHPULL(GPIOH_PIN4) | \ + PIN_OTYPE_PUSHPULL(GPIOH_PIN5) | \ + PIN_OTYPE_PUSHPULL(GPIOH_PIN6) | \ + PIN_OTYPE_PUSHPULL(GPIOH_PIN7) | \ + PIN_OTYPE_PUSHPULL(GPIOH_PIN8) | \ + PIN_OTYPE_PUSHPULL(GPIOH_PIN9) | \ + PIN_OTYPE_PUSHPULL(GPIOH_PIN10) | \ + PIN_OTYPE_PUSHPULL(GPIOH_PIN11) | \ + PIN_OTYPE_PUSHPULL(GPIOH_PIN12) | \ + PIN_OTYPE_PUSHPULL(GPIOH_PIN13) | \ + PIN_OTYPE_PUSHPULL(GPIOH_PIN14) | \ + PIN_OTYPE_PUSHPULL(GPIOH_PIN15)) +#define VAL_GPIOH_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOH_PIN0) | \ + PIN_OSPEED_VERYLOW(GPIOH_PIN1) | \ + PIN_OSPEED_VERYLOW(GPIOH_PIN2) | \ + PIN_OSPEED_VERYLOW(GPIOH_PIN3) | \ + PIN_OSPEED_VERYLOW(GPIOH_PIN4) | \ + PIN_OSPEED_VERYLOW(GPIOH_PIN5) | \ + PIN_OSPEED_VERYLOW(GPIOH_PIN6) | \ + PIN_OSPEED_VERYLOW(GPIOH_PIN7) | \ + PIN_OSPEED_VERYLOW(GPIOH_PIN8) | \ + PIN_OSPEED_VERYLOW(GPIOH_PIN9) | \ + PIN_OSPEED_VERYLOW(GPIOH_PIN10) | \ + PIN_OSPEED_VERYLOW(GPIOH_PIN11) | \ + PIN_OSPEED_VERYLOW(GPIOH_PIN12) | \ + PIN_OSPEED_VERYLOW(GPIOH_PIN13) | \ + PIN_OSPEED_VERYLOW(GPIOH_PIN14) | \ + PIN_OSPEED_VERYLOW(GPIOH_PIN15)) +#define VAL_GPIOH_PUPDR (PIN_PUPDR_PULLUP(GPIOH_PIN0) | \ + PIN_PUPDR_PULLUP(GPIOH_PIN1) | \ + PIN_PUPDR_PULLUP(GPIOH_PIN2) | \ + PIN_PUPDR_PULLUP(GPIOH_PIN3) | \ + PIN_PUPDR_PULLUP(GPIOH_PIN4) | \ + PIN_PUPDR_PULLUP(GPIOH_PIN5) | \ + PIN_PUPDR_PULLUP(GPIOH_PIN6) | \ + PIN_PUPDR_PULLUP(GPIOH_PIN7) | \ + PIN_PUPDR_PULLUP(GPIOH_PIN8) | \ + PIN_PUPDR_PULLUP(GPIOH_PIN9) | \ + PIN_PUPDR_PULLUP(GPIOH_PIN10) | \ + PIN_PUPDR_PULLUP(GPIOH_PIN11) | \ + PIN_PUPDR_PULLUP(GPIOH_PIN12) | \ + PIN_PUPDR_PULLUP(GPIOH_PIN13) | \ + PIN_PUPDR_PULLUP(GPIOH_PIN14) | \ + PIN_PUPDR_PULLUP(GPIOH_PIN15)) +#define VAL_GPIOH_ODR (PIN_ODR_HIGH(GPIOH_PIN0) | \ + PIN_ODR_HIGH(GPIOH_PIN1) | \ + PIN_ODR_HIGH(GPIOH_PIN2) | \ + PIN_ODR_HIGH(GPIOH_PIN3) | \ + PIN_ODR_HIGH(GPIOH_PIN4) | \ + PIN_ODR_HIGH(GPIOH_PIN5) | \ + PIN_ODR_HIGH(GPIOH_PIN6) | \ + PIN_ODR_HIGH(GPIOH_PIN7) | \ + PIN_ODR_HIGH(GPIOH_PIN8) | \ + PIN_ODR_HIGH(GPIOH_PIN9) | \ + PIN_ODR_HIGH(GPIOH_PIN10) | \ + PIN_ODR_HIGH(GPIOH_PIN11) | \ + PIN_ODR_HIGH(GPIOH_PIN12) | \ + PIN_ODR_HIGH(GPIOH_PIN13) | \ + PIN_ODR_HIGH(GPIOH_PIN14) | \ + PIN_ODR_HIGH(GPIOH_PIN15)) +#define VAL_GPIOH_AFRL (PIN_AFIO_AF(GPIOH_PIN0, 0) | \ + PIN_AFIO_AF(GPIOH_PIN1, 0) | \ + PIN_AFIO_AF(GPIOH_PIN2, 0) | \ + PIN_AFIO_AF(GPIOH_PIN3, 0) | \ + PIN_AFIO_AF(GPIOH_PIN4, 0) | \ + PIN_AFIO_AF(GPIOH_PIN5, 0) | \ + PIN_AFIO_AF(GPIOH_PIN6, 0) | \ + PIN_AFIO_AF(GPIOH_PIN7, 0)) +#define VAL_GPIOH_AFRH (PIN_AFIO_AF(GPIOH_PIN8, 0) | \ + PIN_AFIO_AF(GPIOH_PIN9, 0) | \ + PIN_AFIO_AF(GPIOH_PIN10, 0) | \ + PIN_AFIO_AF(GPIOH_PIN11, 0) | \ + PIN_AFIO_AF(GPIOH_PIN12, 0) | \ + PIN_AFIO_AF(GPIOH_PIN13, 0) | \ + PIN_AFIO_AF(GPIOH_PIN14, 0) | \ + PIN_AFIO_AF(GPIOH_PIN15, 0)) + + +/* + * USB bus activation macro, required by the USB driver. + */ +// #define usb_lld_connect_bus(usbp) +#define usb_lld_connect_bus(usbp) (palSetPadMode(GPIOA, GPIOA_USB_DP, PAL_MODE_ALTERNATE(14))) +// #define usb_lld_connect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_INPUT) +/* + * USB bus de-activation macro, required by the USB driver. + */ +// #define usb_lld_disconnect_bus(usbp) +#define usb_lld_disconnect_bus(usbp) (palSetPadMode(GPIOA, GPIOA_USB_DP, PAL_MODE_OUTPUT_PUSHPULL)); palClearPad(GPIOA, GPIOA_USB_DP) +// #define usb_lld_disconnect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_OUTPUT_PUSHPULL); palClearPad(GPIOA, 12) + +#if !defined(_FROM_ASM_) +#ifdef __cplusplus +extern "C" { +#endif + void boardInit(void); +#ifdef __cplusplus +} +#endif +#endif /* _FROM_ASM_ */ + +#endif /* _BOARD_H_ */ diff --git a/keyboards/dztech/boards/GENERIC_STM32_F303XC/board.mk b/keyboards/dztech/boards/GENERIC_STM32_F303XC/board.mk new file mode 100644 index 00000000000..43377629a3c --- /dev/null +++ b/keyboards/dztech/boards/GENERIC_STM32_F303XC/board.mk @@ -0,0 +1,5 @@ +# List of all the board related files. +BOARDSRC = $(BOARD_PATH)/boards/GENERIC_STM32_F303XC/board.c + +# Required include directories +BOARDINC = $(BOARD_PATH)/boards/GENERIC_STM32_F303XC diff --git a/keyboards/dztech/dz60rgb/bootloader_defs.h b/keyboards/dztech/dz60rgb/bootloader_defs.h new file mode 100644 index 00000000000..3b0e9d20a6a --- /dev/null +++ b/keyboards/dztech/dz60rgb/bootloader_defs.h @@ -0,0 +1,7 @@ +/* Address for jumping to bootloader on STM32 chips. */ +/* It is chip dependent, the correct number can be looked up here: + * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf + * This also requires a patch to chibios: + * /tmk_core/tool/chibios/ch-bootloader-jump.patch + */ +#define STM32_BOOTLOADER_ADDRESS 0x1FFFD800 diff --git a/keyboards/dztech/dz60rgb/chconf.h b/keyboards/dztech/dz60rgb/chconf.h new file mode 100644 index 00000000000..1d9f12ff1f8 --- /dev/null +++ b/keyboards/dztech/dz60rgb/chconf.h @@ -0,0 +1,520 @@ +/* + ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/chconf.h + * @brief Configuration file template. + * @details A copy of this file must be placed in each project directory, it + * contains the application specific kernel settings. + * + * @addtogroup config + * @details Kernel related settings and hooks. + * @{ + */ + +#ifndef CHCONF_H +#define CHCONF_H + +#define _CHIBIOS_RT_CONF_ + +/*===========================================================================*/ +/** + * @name System timers settings + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System time counter resolution. + * @note Allowed values are 16 or 32 bits. + */ +#define CH_CFG_ST_RESOLUTION 32 + +/** + * @brief System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + * setting also defines the system tick time unit. + */ +#define CH_CFG_ST_FREQUENCY 100000 + +/** + * @brief Time delta constant for the tick-less mode. + * @note If this value is zero then the system uses the classic + * periodic tick. This value represents the minimum number + * of ticks that is safe to specify in a timeout directive. + * The value one is not valid, timeouts are rounded up to + * this value. + */ +#define CH_CFG_ST_TIMEDELTA 2 + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel parameters and options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Round robin interval. + * @details This constant is the number of system ticks allowed for the + * threads before preemption occurs. Setting this value to zero + * disables the preemption for threads with equal priority and the + * round robin becomes cooperative. Note that higher priority + * threads can still preempt, the kernel is always preemptive. + * @note Disabling the round robin preemption makes the kernel more compact + * and generally faster. + * @note The round robin preemption is not supported in tickless mode and + * must be set to zero in that case. + */ +#define CH_CFG_TIME_QUANTUM 0 + +/** + * @brief Managed RAM size. + * @details Size of the RAM area to be managed by the OS. If set to zero + * then the whole available RAM is used. The core memory is made + * available to the heap allocator and/or can be used directly through + * the simplified core memory allocator. + * + * @note In order to let the OS manage the whole RAM the linker script must + * provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note Requires @p CH_CFG_USE_MEMCORE. + */ +#define CH_CFG_MEMCORE_SIZE 0 + +/** + * @brief Idle thread automatic spawn suppression. + * @details When this option is activated the function @p chSysInit() + * does not spawn the idle thread. The application @p main() + * function becomes the idle thread and must implement an + * infinite loop. + */ +#define CH_CFG_NO_IDLE_THREAD FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Performance options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief OS optimization. + * @details If enabled then time efficient rather than space efficient code + * is used when two possible implementations exist. + * + * @note This is not related to the compiler optimization options. + * @note The default is @p TRUE. + */ +#define CH_CFG_OPTIMIZE_SPEED TRUE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Subsystem options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Time Measurement APIs. + * @details If enabled then the time measurement APIs are included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_TM TRUE + +/** + * @brief Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_REGISTRY TRUE + +/** + * @brief Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_WAITEXIT TRUE + +/** + * @brief Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_SEMAPHORES TRUE + +/** + * @brief Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores by + * priority rather than in FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE + +/** + * @brief Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MUTEXES TRUE + +/** + * @brief Enables recursive behavior on mutexes. + * @note Recursive mutexes are heavier and have an increased + * memory footprint. + * + * @note The default is @p FALSE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE + +/** + * @brief Conditional Variables APIs. + * @details If enabled then the conditional variables APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#define CH_CFG_USE_CONDVARS TRUE + +/** + * @brief Conditional Variables APIs with timeout. + * @details If enabled then the conditional variables APIs with timeout + * specification are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_CONDVARS. + */ +#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE + +/** + * @brief Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_EVENTS TRUE + +/** + * @brief Events Flags APIs with timeout. + * @details If enabled then the events APIs with timeout specification + * are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_EVENTS. + */ +#define CH_CFG_USE_EVENTS_TIMEOUT TRUE + +/** + * @brief Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MESSAGES TRUE + +/** + * @brief Synchronous Messages queuing mode. + * @details If enabled then messages are served by priority rather than in + * FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_MESSAGES. + */ +#define CH_CFG_USE_MESSAGES_PRIORITY TRUE + +/** + * @brief Mailboxes APIs. + * @details If enabled then the asynchronous messages (mailboxes) APIs are + * included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#define CH_CFG_USE_MAILBOXES TRUE + +/** + * @brief Core Memory Manager APIs. + * @details If enabled then the core memory manager APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MEMCORE TRUE + +/** + * @brief Heap Allocator APIs. + * @details If enabled then the memory heap allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or + * @p CH_CFG_USE_SEMAPHORES. + * @note Mutexes are recommended. + */ +#define CH_CFG_USE_HEAP TRUE + +/** + * @brief Memory Pools Allocator APIs. + * @details If enabled then the memory pools allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MEMPOOLS TRUE + +/** + * @brief Dynamic Threads APIs. + * @details If enabled then the dynamic threads creation APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_WAITEXIT. + * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. + */ +#define CH_CFG_USE_DYNAMIC TRUE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Debug option, kernel statistics. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_STATISTICS FALSE + +/** + * @brief Debug option, system state check. + * @details If enabled the correct call protocol for system APIs is checked + * at runtime. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_SYSTEM_STATE_CHECK FALSE + +/** + * @brief Debug option, parameters checks. + * @details If enabled then the checks on the API functions input + * parameters are activated. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_ENABLE_CHECKS FALSE + +/** + * @brief Debug option, consistency checks. + * @details If enabled then all the assertions in the kernel code are + * activated. This includes consistency checks inside the kernel, + * runtime anomalies and port-defined checks. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_ENABLE_ASSERTS FALSE + +/** + * @brief Debug option, trace buffer. + * @details If enabled then the trace buffer is activated. + * + * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. + */ +#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED + +/** + * @brief Trace buffer entries. + * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is + * different from @p CH_DBG_TRACE_MASK_DISABLED. + */ +#define CH_DBG_TRACE_BUFFER_SIZE 128 + +/** + * @brief Debug option, stack checks. + * @details If enabled then a runtime stack check is performed. + * + * @note The default is @p FALSE. + * @note The stack check is performed in a architecture/port dependent way. + * It may not be implemented or some ports. + * @note The default failure mode is to halt the system with the global + * @p panic_msg variable set to @p NULL. + */ +#define CH_DBG_ENABLE_STACK_CHECK TRUE + +/** + * @brief Debug option, stacks initialization. + * @details If enabled then the threads working area is filled with a byte + * value when a thread is created. This can be useful for the + * runtime measurement of the used stack. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_FILL_THREADS FALSE + +/** + * @brief Debug option, threads profiling. + * @details If enabled then a field is added to the @p thread_t structure that + * counts the system ticks occurred while executing the thread. + * + * @note The default is @p FALSE. + * @note This debug option is not currently compatible with the + * tickless mode. + */ +#define CH_DBG_THREADS_PROFILING FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Threads descriptor structure extension. + * @details User fields added to the end of the @p thread_t structure. + */ +#define CH_CFG_THREAD_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief Threads initialization hook. + * @details User initialization code added to the @p chThdInit() API. + * + * @note It is invoked from within @p chThdInit() and implicitly from all + * the threads creation APIs. + */ +#define CH_CFG_THREAD_INIT_HOOK(tp) { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads finalization hook. + * @details User finalization code added to the @p chThdExit() API. + */ +#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ + /* Add threads finalization code here.*/ \ +} + +/** + * @brief Context switch hook. + * @details This hook is invoked just before switching between threads. + */ +#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ + /* Context switch code here.*/ \ +} + +/** + * @brief ISR enter hook. + */ +#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ + /* IRQ prologue code here.*/ \ +} + +/** + * @brief ISR exit hook. + */ +#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ + /* IRQ epilogue code here.*/ \ +} + +/** + * @brief Idle thread enter hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to activate a power saving mode. + */ +#define CH_CFG_IDLE_ENTER_HOOK() { \ + /* Idle-enter code here.*/ \ +} + +/** + * @brief Idle thread leave hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to deactivate a power saving mode. + */ +#define CH_CFG_IDLE_LEAVE_HOOK() { \ + /* Idle-leave code here.*/ \ +} + +/** + * @brief Idle Loop hook. + * @details This hook is continuously invoked by the idle thread loop. + */ +#define CH_CFG_IDLE_LOOP_HOOK() { \ + /* Idle loop code here.*/ \ +} + +/** + * @brief System tick event hook. + * @details This hook is invoked in the system tick handler immediately + * after processing the virtual timers queue. + */ +#define CH_CFG_SYSTEM_TICK_HOOK() { \ + /* System tick event code here.*/ \ +} + +/** + * @brief System halt hook. + * @details This hook is invoked in case to a system halting error before + * the system is halted. + */ +#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ + /* System halt code here.*/ \ +} + +/** + * @brief Trace hook. + * @details This hook is invoked each time a new record is written in the + * trace buffer. + */ +#define CH_CFG_TRACE_HOOK(tep) { \ + /* Trace code here.*/ \ +} + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h). */ +/*===========================================================================*/ + +#endif /* CHCONF_H */ + +/** @} */ diff --git a/keyboards/dztech/dz60rgb/config.h b/keyboards/dztech/dz60rgb/config.h new file mode 100644 index 00000000000..167b67a87d5 --- /dev/null +++ b/keyboards/dztech/dz60rgb/config.h @@ -0,0 +1,36 @@ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x1219 +#define DEVICE_VER 0x0001 +#define MANUFACTURER DOU +#define PRODUCT DZ60RGB +#define DESCRIPTION DZ60 ARM RGB keyboard +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +#define MATRIX_ROW_PINS { B1, B10, B11, B14, B12 } +#define MATRIX_COL_PINS {A6, A7, B0, B13, B15, A8, A15, B3, B4, B5, B8, B9, C13, C14 } + +/* #define UNUSED_PINS {A0,A1,A2, A3,A4,A9,A10,C15,A13,A14,B2}*/ + +#define DIODE_DIRECTION COL2ROW + +#define DEBOUNCE 3 + +#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +#define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended +#define RGB_MATRIX_SKIP_FRAMES 0 +#define RGB_MATRIX_KEYPRESSES +#define DISABLE_RGB_MATRIX_SPLASH +#define DISABLE_RGB_MATRIX_MULTISPLASH +#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH +#define DRIVER_ADDR_1 0b1010000 +#define DRIVER_ADDR_2 0b1010000 // this is here for compliancy reasons. + +#define DRIVER_COUNT 2 +#define DRIVER_1_LED_TOTAL 63 +#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL diff --git a/keyboards/dztech/dz60rgb/dz60rgb.c b/keyboards/dztech/dz60rgb/dz60rgb.c new file mode 100644 index 00000000000..4a4893b8e41 --- /dev/null +++ b/keyboards/dztech/dz60rgb/dz60rgb.c @@ -0,0 +1,172 @@ +#include "dz60rgb.h" +const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, K_14, J_14, L_14}, + {0, K_13, J_13, L_13}, + {0, K_12, J_12, L_12}, + {0, K_11, J_11, L_11}, + {0, K_10, J_10, L_10}, + {0, K_9, J_9, L_9}, + {0, K_8, J_8, L_8}, + {0, K_7, J_7, L_7}, + {0, K_6, J_6, L_6}, + {0, K_5, J_5, L_5}, + {0, K_4, J_4, L_4}, + {0, K_3, J_3, L_3}, + {0, K_2, J_2, L_2}, + {0, K_1, J_1, L_1}, + + {0, H_14, G_14, I_14}, + {0, H_13, G_13, I_13}, + {0, H_12, G_12, I_12}, + {0, H_11, G_11, I_11}, + {0, H_10, G_10, I_10}, + {0, H_9, G_9, I_9}, + {0, H_8, G_8, I_8}, + {0, H_7, G_7, I_7}, + {0, H_6, G_6, I_6}, + {0, H_5, G_5, I_5}, + {0, H_4, G_4, I_4}, + {0, H_3, G_3, I_3}, + {0, H_2, G_2, I_2}, + {0, H_1, G_1, I_1}, + + {0, E_14, D_14, F_14}, + {0, E_12, D_12, F_12}, + {0, E_11, D_11, F_11}, + {0, E_10, D_10, F_10}, + {0, E_9, D_9, F_9}, + {0, E_8, D_8, F_8}, + {0, E_7, D_7, F_7}, + {0, E_6, D_6, F_6}, + {0, E_5, D_5, F_5}, + {0, E_4, D_4, F_4}, + {0, E_3, D_3, F_3}, + {0, E_2, D_2, F_2}, + {0, E_1, D_1, F_1}, + + {0, B_14, A_14, C_14}, + {0, B_13, A_13, C_13}, + {0, B_11, A_11, C_11}, + {0, B_10, A_10, C_10}, + {0, B_9, A_9, C_9}, + {0, B_8, A_8, C_8}, + {0, B_7, A_7, C_7}, + {0, B_6, A_6, C_6}, + {0, B_5, A_5, C_5}, + {0, B_4, A_4, C_4}, + {0, B_3, A_3, C_3}, + {0, B_2, A_2, C_2}, + {0, B_1, A_1, C_1}, + + {0, B_15, A_15, C_15}, + {0, E_13, D_13, F_13}, + {0, B_12, A_12, C_12}, + {0, E_15, D_15, F_15}, + {0, H_15, G_15, I_15}, + {0, B_16, A_16, C_16}, + {0, E_16, D_16, F_16}, + {0, H_16, G_16, I_16}, + {0, K_16, J_16, L_16}, +}; + +const rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = { + {{0|(13<<4)}, {17.23*13, 0}, 1}, + {{0|(12<<4)}, {17.23*12, 0}, 1}, + {{0|(11<<4)}, {17.23*11, 0}, 1}, + {{0|(10<<4)}, {17.23*10, 0}, 1}, + {{0|(9<<4)}, {17.23*9, 0}, 1}, + {{0|(8<<4)}, {17.23*8, 0}, 1}, + {{0|(7<<4)}, {17.23*7, 0}, 1}, + {{0|(6<<4)}, { 17.23*6, 0}, 1}, + {{0|(5<<4)}, { 17.23*5, 0}, 1}, + {{0|(4<<4)}, { 17.23*4, 0}, 1}, + {{0|(3<<4)}, { 17.23*3, 0}, 1}, + {{0|(2<<4)}, { 17.23*2, 0}, 1}, + {{0|(1<<4)}, { 17.23*1, 0}, 1}, + {{0|(0<<4)}, { 17.23*0, 0}, 1}, + + {{1|(13<<4)}, {17.23*13, 16}, 1}, + {{1|(12<<4)}, {17.23*12, 16}, 0}, + {{1|(11<<4)}, {17.23*11, 16}, 0}, + {{1|(10<<4)}, {17.23*10, 16}, 0}, + {{1|(9<<4)}, {17.23*9, 16}, 0}, + {{1|(8<<4)}, {17.23*8, 16}, 0}, + {{1|(7<<4)}, {17.23*7, 16}, 0}, + {{1|(6<<4)}, { 17.23*6, 16}, 0}, + {{1|(5<<4)}, { 17.23*5, 16}, 0}, + {{1|(4<<4)}, { 17.23*4, 16}, 0}, + {{1|(3<<4)}, { 17.23*3, 16}, 0}, + {{1|(2<<4)}, { 17.23*2, 16}, 0}, + {{1|(1<<4)}, { 17.23*1, 16}, 0}, + {{1|(0<<4)}, { 17.23*0, 16}, 1}, + + {{2|(13<<4)}, {17.23*13, 32}, 1}, + {{2|(11<<4)}, {17.23*11, 32}, 0}, + {{2|(10<<4)}, {17.23*10, 32}, 0}, + {{2|(9<<4)}, {17.23*9, 32}, 0}, + {{2|(8<<4)}, {17.23*8, 32}, 0}, + {{2|(7<<4)}, {17.23*7, 32}, 0}, + {{2|(6<<4)}, { 17.23*6, 32}, 0}, + {{2|(5<<4)}, { 17.23*5, 32}, 0}, + {{2|(4<<4)}, { 17.23*4, 32}, 0}, + {{2|(3<<4)}, { 17.23*3, 32}, 0}, + {{2|(2<<4)}, { 17.23*2, 32}, 0}, + {{2|(1<<4)}, { 17.23*1, 32}, 0}, + {{2|(0<<4)}, { 17.23*0, 32}, 1}, + + {{3|(13<<4)}, {17.23*13, 48}, 1}, + {{3|(11<<4)}, {17.23*11, 48}, 0}, + {{3|(10<<4)}, {17.23*10, 48}, 0}, + {{3|(9<<4)}, {17.23*9, 48}, 0}, + {{3|(8<<4)}, {17.23*8, 48}, 0}, + {{3|(7<<4)}, {17.23*7, 48}, 0}, + {{3|(6<<4)}, { 17.23*6, 48}, 0}, + {{3|(5<<4)}, { 17.23*5, 48}, 0}, + {{3|(4<<4)}, { 17.23*4, 48}, 0}, + {{3|(3<<4)}, { 17.23*3, 48}, 0}, + {{3|(2<<4)}, { 17.23*2, 48}, 0}, + {{3|(1<<4)}, { 17.23*1, 48}, 0}, + {{3|(0<<4)}, { 17.23*0, 48}, 1}, + + {{4|(13<<4)}, {17.23*13, 64}, 1}, + {{4|(11<<4)}, {17.23*11, 64}, 1}, + {{4|(10<<4)}, {17.23*10, 64}, 1}, + {{4|(9<<4)}, {17.23*9, 64}, 1}, + {{4|(8<<4)}, {17.23*8, 64}, 1}, + {{4|(5<<4)}, { 17.23*5, 64}, 0}, + {{4|(2<<4)}, { 17.23*2, 64}, 1}, + {{4|(1<<4)}, { 17.23*1, 64}, 1}, + {{4|(0<<4)}, { 17.23*0, 64}, 1}, + +}; + +void matrix_init_kb(void) { + matrix_init_user(); +} + + +void matrix_scan_kb(void) { + matrix_scan_user(); +} + + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + return process_record_user(keycode, record); +} + + +void suspend_power_down_kb(void) +{ + rgb_matrix_set_suspend_state(true); +} + +void suspend_wakeup_init_kb(void) +{ + rgb_matrix_set_suspend_state(false); +} diff --git a/keyboards/dztech/dz60rgb/dz60rgb.h b/keyboards/dztech/dz60rgb/dz60rgb.h new file mode 100644 index 00000000000..a029933f1ff --- /dev/null +++ b/keyboards/dztech/dz60rgb/dz60rgb.h @@ -0,0 +1,16 @@ +#pragma once +#define XXX KC_NO +#include "quantum.h" +#define LAYOUT( \ + 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, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K41, K42, K45, K48, K49, K4A, K4B, 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, XXX, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D }, \ + { K40, K41, K42, XXX, XXX, K45, XXX, XXX, K48, K49, K4A, K4B, XXX, K4D } \ +} diff --git a/keyboards/dztech/dz60rgb/halconf.h b/keyboards/dztech/dz60rgb/halconf.h new file mode 100644 index 00000000000..eda293c49b8 --- /dev/null +++ b/keyboards/dztech/dz60rgb/halconf.h @@ -0,0 +1,388 @@ +/* + ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/halconf.h + * @brief HAL configuration header. + * @details HAL configuration file, this file allows to enable or disable the + * various device drivers from your application. You may also use + * this file in order to override the device drivers default settings. + * + * @addtogroup HAL_CONF + * @{ + */ + +#ifndef HALCONF_H +#define HALCONF_H + +#include "mcuconf.h" + +/** + * @brief Enables the PAL subsystem. + */ +#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) +#define HAL_USE_PAL TRUE +#endif + +/** + * @brief Enables the ADC subsystem. + */ +#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) +#define HAL_USE_ADC FALSE +#endif + +/** + * @brief Enables the CAN subsystem. + */ +#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) +#define HAL_USE_CAN FALSE +#endif + +/** + * @brief Enables the DAC subsystem. + */ +#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) +#define HAL_USE_DAC TRUE +#endif + +/** + * @brief Enables the EXT subsystem. + */ +#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) +#define HAL_USE_EXT FALSE +#endif + +/** + * @brief Enables the GPT subsystem. + */ +#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) +#define HAL_USE_GPT TRUE +#endif + +/** + * @brief Enables the I2C subsystem. + */ +#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) +#define HAL_USE_I2C TRUE +#endif + +/** + * @brief Enables the I2S subsystem. + */ +#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) +#define HAL_USE_I2S FALSE +#endif + +/** + * @brief Enables the ICU subsystem. + */ +#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) +#define HAL_USE_ICU FALSE +#endif + +/** + * @brief Enables the MAC subsystem. + */ +#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) +#define HAL_USE_MAC FALSE +#endif + +/** + * @brief Enables the MMC_SPI subsystem. + */ +#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) +#define HAL_USE_MMC_SPI FALSE +#endif + +/** + * @brief Enables the PWM subsystem. + */ +#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) +#define HAL_USE_PWM FALSE +#endif + +/** + * @brief Enables the QSPI subsystem. + */ +#if !defined(HAL_USE_QSPI) || defined(__DOXYGEN__) +#define HAL_USE_QSPI FALSE +#endif + +/** + * @brief Enables the RTC subsystem. + */ +#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) +#define HAL_USE_RTC FALSE +#endif + +/** + * @brief Enables the SDC subsystem. + */ +#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) +#define HAL_USE_SDC FALSE +#endif + +/** + * @brief Enables the SERIAL subsystem. + */ +#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL FALSE +#endif + +/** + * @brief Enables the SERIAL over USB subsystem. + */ +#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL_USB FALSE +#endif + +/** + * @brief Enables the SPI subsystem. + */ +#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) +#define HAL_USE_SPI FALSE +#endif + +/** + * @brief Enables the UART subsystem. + */ +#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) +#define HAL_USE_UART FALSE +#endif + +/** + * @brief Enables the USB subsystem. + */ +#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) +#define HAL_USE_USB TRUE +#endif + +/** + * @brief Enables the WDG subsystem. + */ +#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) +#define HAL_USE_WDG FALSE +#endif + +/*===========================================================================*/ +/* ADC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) +#define ADC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define ADC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* CAN driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Sleep mode related APIs inclusion switch. + */ +#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) +#define CAN_USE_SLEEP_MODE TRUE +#endif + +/*===========================================================================*/ +/* I2C driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the mutual exclusion APIs on the I2C bus. + */ +#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define I2C_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* MAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) +#define MAC_USE_ZERO_COPY FALSE +#endif + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) +#define MAC_USE_EVENTS TRUE +#endif + +/*===========================================================================*/ +/* MMC_SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + * This option is recommended also if the SPI driver does not + * use a DMA channel and heavily loads the CPU. + */ +#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) +#define MMC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SDC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Number of initialization attempts before rejecting the card. + * @note Attempts are performed at 10mS intervals. + */ +#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) +#define SDC_INIT_RETRY 100 +#endif + +/** + * @brief Include support for MMC cards. + * @note MMC support is not yet implemented so this option must be kept + * at @p FALSE. + */ +#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) +#define SDC_MMC_SUPPORT FALSE +#endif + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + */ +#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) +#define SDC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SERIAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Default bit rate. + * @details Configuration parameter, this is the baud rate selected for the + * default configuration. + */ +#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) +#define SERIAL_DEFAULT_BITRATE 38400 +#endif + +/** + * @brief Serial buffers size. + * @details Configuration parameter, you can change the depth of the queue + * buffers depending on the requirements of your application. + * @note The default is 16 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_BUFFERS_SIZE 16 +#endif + +/*===========================================================================*/ +/* SERIAL_USB driver related setting. */ +/*===========================================================================*/ + +/** + * @brief Serial over USB buffers size. + * @details Configuration parameter, the buffer size must be a multiple of + * the USB data endpoint maximum packet size. + * @note The default is 256 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_SIZE 1 +#endif + +/** + * @brief Serial over USB number of buffers. + * @note The default is 2 buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_NUMBER 2 +#endif + +/*===========================================================================*/ +/* SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) +#define SPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define SPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* UART driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__) +#define UART_USE_WAIT FALSE +#endif + +/** + * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define UART_USE_MUTUAL_EXCLUSION FALSE +#endif + +/*===========================================================================*/ +/* USB driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) +#define USB_USE_WAIT TRUE +#endif + +#endif /* HALCONF_H */ + +/** @} */ diff --git a/keyboards/dztech/dz60rgb/info.json b/keyboards/dztech/dz60rgb/info.json new file mode 100644 index 00000000000..47e705d5a2f --- /dev/null +++ b/keyboards/dztech/dz60rgb/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "dz60rgb", + "url": "", + "maintainer": "dz", + "width": 14, + "height": 5, + "layouts": { + "LAYOUT": { + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, + {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, + {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"Shift", "x":11.25, "y":3, "w":1.75}, {"label":"up", "x":13, "y":3},{"label":"?", "x":14, "y":3}, + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Left", "x":12, "y":4}, {"label":"Down", "x":13, "y":4}, {"label":"Right", "x":14, "y":4},] + } + } +} diff --git a/keyboards/dztech/dz60rgb/keymaps/default/keymap.c b/keyboards/dztech/dz60rgb/keymaps/default/keymap.c new file mode 100644 index 00000000000..8de71848d5e --- /dev/null +++ b/keyboards/dztech/dz60rgb/keymaps/default/keymap.c @@ -0,0 +1,165 @@ +#include QMK_KEYBOARD_H +extern bool g_suspend_state; +#define _LAYER0 0 +#define _LAYER1 1 +#define _LAYER2 2 +#define _LAYER3 3 +#define _LAYER4 4 +#define _LAYER5 5 +#define _LAYER6 6 +#define _LAYER7 7 +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_LAYER0] = LAYOUT( /* Base */ + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,\ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLASH,\ + CTL_T(KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), KC_UP, LT(2, KC_DEL),\ + KC_LCTL, KC_LGUI, LM(1, MOD_LALT), KC_SPC, KC_RALT, MO(1) , KC_LEFT, KC_DOWN, KC_RIGHT), + [_LAYER1] = LAYOUT( /* FN */ + TO(3), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL ,\ + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET ,\ + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS,\ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDOWN,KC_VOLU, KC_MUTE,\ + KC_TRNS, KC_TRNS, KC_TRNS, TO(4), KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), + [_LAYER2] = LAYOUT( /* LIGHT */ + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL ,\ + KC_TRNS, RGB_TOG, KC_TRNS, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, RESET ,\ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS,\ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [_LAYER3] = LAYOUT( /* NUMPAD */ + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_TRNS,\ + KC_TRNS, KC_P7, KC_P8, KC_P9, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_TRNS, KC_TRNS, TO(0),\ + KC_TRNS, KC_P4, KC_P5, KC_P6, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_TRNS, KC_PENT,\ + KC_TRNS, KC_P1, KC_P2, KC_P3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_TRNS, KC_TRNS,\ + KC_TRNS, KC_P0, KC_PDOT, KC_PENT, KC_P0, KC_PDOT, KC_TRNS, KC_TRNS, KC_TRNS), + [_LAYER4] = LAYOUT( /* MAC */ + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,\ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLASH,\ + CTL_T(KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), KC_UP, LT(2, KC_DEL),\ + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(5) , KC_LEFT, KC_DOWN, KC_RIGHT), + }; + + + +void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, bool default_layer) { + rgb_led led; + for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + led = g_rgb_leds[i]; + if (led.matrix_co.raw < 0xFF) { + if (led.modifier) { + rgb_matrix_set_color( i, red, green, blue ); + } + } + } +} + +void rgb_matrix_indicators_user(void) { + uint8_t this_led = host_keyboard_leds(); + if (!g_suspend_state) { + switch (biton32(layer_state)) { + case _LAYER1: + rgb_matrix_layer_helper(0xFF, 0x00, 0x00, false); break; + case _LAYER2: + rgb_matrix_layer_helper(0x00, 0xFF, 0x00, false); break; + case _LAYER4: + rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, false); break; + } + } + if ( this_led & (1</os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) +MCU_FAMILY = STM32 +MCU_SERIES = STM32F3xx + +# Linker script to use +# it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ +# or /ld/ +MCU_LDSCRIPT = STM32F303xC + +# Startup code to use +# - it should exist in /os/common/startup/ARMCMx/compilers/GCC/mk/ +MCU_STARTUP = stm32f3xx + +# Board: it should exist either in /os/hal/boards/ +# or /boards +BOARD = GENERIC_STM32_F303XC + +# Cortex version +MCU = cortex-m4 + +# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 +ARMV = 7 + +USE_FPU = yes + +# Vector table for application +# 0x00000000-0x00001000 area is occupied by bootlaoder.*/ +# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB +# OPT_DEFS = -DCORTEX_VTOR_INIT=0x08005000 +OPT_DEFS = + +# Do not put the microcontroller into power saving mode +# when we get USB suspend event. We want it to keep updating +# backlight effects. +OPT_DEFS += -DNO_SUSPEND_POWER_DOWN + +# Options to pass to dfu-util when flashing +DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave + +# Build Options +# comment out to disable the options. +# +BACKLIGHT_ENABLE = no +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +NKRO_ENABLE = no # USB Nkey Rollover +AUDIO_ENABLE = no +RGB_MATRIX_ENABLE = IS31FL3733 # Use RGB matrix +NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in From 1d49f76f15c9940dd1dce580c19bfda62548c980 Mon Sep 17 00:00:00 2001 From: Othi Date: Wed, 30 Jan 2019 21:01:18 +0000 Subject: [PATCH 28/55] space65-5001 init, small corrections to the total number of leds (#5006) --- keyboards/gray_studio/space65/config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/gray_studio/space65/config.h b/keyboards/gray_studio/space65/config.h index cb8ee3c0198..356e6a8cd80 100644 --- a/keyboards/gray_studio/space65/config.h +++ b/keyboards/gray_studio/space65/config.h @@ -59,7 +59,7 @@ along with this program. If not, see . #define RGB_DI_PIN E2 #ifdef RGB_DI_PIN - #define RGBLED_NUM 5 + #define RGBLED_NUM 6 #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 From c2080d3b0a56dc8c1678077ccaf84cd447fe2773 Mon Sep 17 00:00:00 2001 From: Rockman18 Date: Thu, 31 Jan 2019 00:42:30 +0100 Subject: [PATCH 29/55] [Keyboard][S65-X] BACKLIGHT_CAPS_LOCK (#4770) Replace buggy Caps Lock indicator implementation with new BACKLIGHT_CAPS_LOCK_INDICATOR feature. --- keyboards/s65_x/config.h | 6 ++++-- keyboards/s65_x/s65_x.c | 10 ++-------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/keyboards/s65_x/config.h b/keyboards/s65_x/config.h index 66bbd6a3592..48676527305 100644 --- a/keyboards/s65_x/config.h +++ b/keyboards/s65_x/config.h @@ -4,7 +4,7 @@ #include "config_common.h" /* USB Device descriptor parameter */ -#define PRODUCT S65-X-RGB +#define PRODUCT S65-X RGB #define DESCRIPTION QMK keyboard firmware for S65-X RGB #define VENDOR_ID 0xFEED #define PRODUCT_ID 0x6060 @@ -22,7 +22,8 @@ /* number of backlight levels */ #define BACKLIGHT_PIN B7 -#define BACKLIGHT_LEVELS 3 +#define BACKLIGHT_LEVELS 5 +#define BACKLIGHT_CAPS_LOCK #define RGB_DI_PIN D3 #define RGBLIGHT_ANIMATIONS @@ -31,6 +32,7 @@ #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 #define RGBLIGHT_EFFECT_KNIGHT_OFFSET 20 +#define RGBLIGHT_SLEEP /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/s65_x/s65_x.c b/keyboards/s65_x/s65_x.c index 29073750c16..844f5cf28bb 100644 --- a/keyboards/s65_x/s65_x.c +++ b/keyboards/s65_x/s65_x.c @@ -1,5 +1,4 @@ #include "s65_x.h" -#include "led.h" void matrix_init_kb(void) { // put your keyboard start-up code here @@ -14,11 +13,6 @@ void matrix_scan_kb(void) { }; void led_set_kb(uint8_t usb_led) { - if (usb_led & (1< Date: Thu, 31 Jan 2019 09:12:43 +0700 Subject: [PATCH 30/55] update canoe/readme (#5014) fix command, pyusb is installed with pip, not brew. remove extra ` in command --- keyboards/canoe/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/canoe/readme.md b/keyboards/canoe/readme.md index b8ddadea78f..729ab1a0faa 100644 --- a/keyboards/canoe/readme.md +++ b/keyboards/canoe/readme.md @@ -34,8 +34,8 @@ macOS: 3. Install the following packages: ``` brew install python - brew install pyusb - brew install --HEAD`https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb + pip install pyusb + brew install --HEAD https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb 4. Place your keyboard into reset. 5. Flash the board by typing `bootloadHID -r` followed by the path to your `.hex` file. From 8f6285d3b3fec9a5f68b15970dbbf644e97b12ec Mon Sep 17 00:00:00 2001 From: Boy_314 <32818287+Boy-314@users.noreply.github.com> Date: Wed, 30 Jan 2019 21:14:27 -0500 Subject: [PATCH 31/55] [Keyboard] 40percent.club's Half 'n' half keyboard port (#5005) * fixed arrow keys and left control * added right shift * latest version * reverted arrow keys * edited readme * added osu layer * updated osu layout * updated osu layout * added full arrow keys to osu layout * in case i mess up creating macros * added the best meme key in the world * added plover steno layer * updated boy314 layout * removed unused layers * added boy314 xd75 layout, inspired by preonic layout * added boy314 xd75 layout, inspired by preonic layout * version 2 of boy314's xd75 layout * added readme notes * updated readme for boy314 xd75 layout * qwerty support, brackets on bottom row, caps lock underglow * fixed readme/ * small changes to allow merging * minor changes to format * fixed up default readme * added numpad and tweaked bottom row * updated xd75 and preonic rev3 keymaps * added initial half n half files * fixed .h file * updated names * fixed layout in halfnhalf.h * fixed manu name, changed bootloader in rules.mk * removed redundancies in preonic and xd75 layouts * readme updated --- keyboards/40percentclub/half_n_half/config.h | 244 ++++++++++++++++++ .../40percentclub/half_n_half/half_n_half.c | 43 +++ .../40percentclub/half_n_half/half_n_half.h | 43 +++ keyboards/40percentclub/half_n_half/info.json | 0 .../half_n_half/keymaps/default/config.h | 19 ++ .../half_n_half/keymaps/default/keymap.c | 65 +++++ .../half_n_half/keymaps/default/readme.md | 1 + keyboards/40percentclub/half_n_half/readme.md | 14 + keyboards/40percentclub/half_n_half/rules.mk | 81 ++++++ keyboards/preonic/keymaps/boy314/keymap.c | 52 ++-- keyboards/xd75/keymaps/boy_314/keymap.c | 17 +- 11 files changed, 551 insertions(+), 28 deletions(-) create mode 100644 keyboards/40percentclub/half_n_half/config.h create mode 100644 keyboards/40percentclub/half_n_half/half_n_half.c create mode 100644 keyboards/40percentclub/half_n_half/half_n_half.h create mode 100644 keyboards/40percentclub/half_n_half/info.json create mode 100644 keyboards/40percentclub/half_n_half/keymaps/default/config.h create mode 100644 keyboards/40percentclub/half_n_half/keymaps/default/keymap.c create mode 100644 keyboards/40percentclub/half_n_half/keymaps/default/readme.md create mode 100644 keyboards/40percentclub/half_n_half/readme.md create mode 100644 keyboards/40percentclub/half_n_half/rules.mk diff --git a/keyboards/40percentclub/half_n_half/config.h b/keyboards/40percentclub/half_n_half/config.h new file mode 100644 index 00000000000..1c4298bc389 --- /dev/null +++ b/keyboards/40percentclub/half_n_half/config.h @@ -0,0 +1,244 @@ +/* +Copyright 2019 Boy_314 + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0A0C +#define DEVICE_VER 0x4A1F +#define MANUFACTURER di0ib +#define PRODUCT half_n_half +#define DESCRIPTION A small split ortholinear custom keyboard with 2 thumb buttons + +/* key matrix size */ +#define MATRIX_ROWS 4*2 +#define MATRIX_COLS 7 + +/* + * 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 { D4, C6, D7, E6 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ +#define DIODE_DIRECTION ROW2COL + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + +// #define RGB_DI_PIN E2 +// #ifdef RGB_DI_PIN +// #define RGBLED_NUM 16 +// #define RGBLIGHT_HUE_STEP 8 +// #define RGBLIGHT_SAT_STEP 8 +// #define RGBLIGHT_VAL_STEP 8 +// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +// /*== all animations enable ==*/ +// #define RGBLIGHT_ANIMATIONS +// /*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +// #endif + +/* 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 + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * 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 */ +/* defined by default; to change, uncomment and set to the combination you want */ +// #define IS_COMMAND() (get_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 + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ +//#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 1 + +/* + * HD44780 LCD Display Configuration + */ +/* +#define LCD_LINES 2 //< number of visible lines of the display +#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display + +#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode + +#if LCD_IO_MODE +#define LCD_PORT PORTB //< port for the LCD lines +#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0 +#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1 +#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2 +#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3 +#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0 +#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1 +#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2 +#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3 +#define LCD_RS_PORT LCD_PORT //< port for RS line +#define LCD_RS_PIN 3 //< pin for RS line +#define LCD_RW_PORT LCD_PORT //< port for RW line +#define LCD_RW_PIN 2 //< pin for RW line +#define LCD_E_PORT LCD_PORT //< port for Enable line +#define LCD_E_PIN 1 //< pin for Enable line +#endif +*/ + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/40percentclub/half_n_half/half_n_half.c b/keyboards/40percentclub/half_n_half/half_n_half.c new file mode 100644 index 00000000000..c4e6a4ce079 --- /dev/null +++ b/keyboards/40percentclub/half_n_half/half_n_half.c @@ -0,0 +1,43 @@ +/* Copyright 2019 Boy_314 + * + * 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 . + */ +#include "half_n_half.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/40percentclub/half_n_half/half_n_half.h b/keyboards/40percentclub/half_n_half/half_n_half.h new file mode 100644 index 00000000000..6cec5992908 --- /dev/null +++ b/keyboards/40percentclub/half_n_half/half_n_half.h @@ -0,0 +1,43 @@ +/* Copyright 2019 Boy_314 + * + * 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 . + */ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K50, K51, K52, K53, K54, K55, K56, \ + K10, K11, K12, K13, K14, K15, K16, K60, K61, K62, K63, K64, K65, K66, \ + K20, K21, K22, K23, K24, K25, K26, K70, K71, K72, K73, K74, K75, K76, \ + K34, K82 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06 }, \ + { K10, K11, K12, K13, K14, K15, K16 }, \ + { K20, K21, K22, K23, K24, K25, K26 }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, K34, KC_NO, KC_NO }, \ +\ + { K56, K55, K54, K53, K52, K51, K50 }, \ + { K66, K65, K64, K63, K62, K61, K60 }, \ + { K76, K75, K74, K73, K72, K71, K70 }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, K82, KC_NO, KC_NO } \ +} diff --git a/keyboards/40percentclub/half_n_half/info.json b/keyboards/40percentclub/half_n_half/info.json new file mode 100644 index 00000000000..e69de29bb2d diff --git a/keyboards/40percentclub/half_n_half/keymaps/default/config.h b/keyboards/40percentclub/half_n_half/keymaps/default/config.h new file mode 100644 index 00000000000..c8e4334124e --- /dev/null +++ b/keyboards/40percentclub/half_n_half/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2019 REPLACE_WITH_YOUR_NAME + * + * 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 . + */ + +#pragma once + +// place overrides here diff --git a/keyboards/40percentclub/half_n_half/keymaps/default/keymap.c b/keyboards/40percentclub/half_n_half/keymaps/default/keymap.c new file mode 100644 index 00000000000..2ab9a8c982f --- /dev/null +++ b/keyboards/40percentclub/half_n_half/keymaps/default/keymap.c @@ -0,0 +1,65 @@ +/* Copyright 2019 Boy_314 + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + QMKBEST = SAFE_RANGE, + QMKURL +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( /* Base */ + KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LCTL, KC_RCTL, 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_LALT, KC_RALT, 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_LGUI, KC_APP, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \ + KC_SPC, KC_SPC + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QMKBEST: + if (record->event.pressed) { + // when keycode QMKBEST is pressed + SEND_STRING("QMK is the best thing ever!"); + } else { + // when keycode QMKBEST is released + } + break; + case QMKURL: + if (record->event.pressed) { + // when keycode QMKURL is pressed + SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER)); + } else { + // when keycode QMKURL is released + } + break; + } + return true; +} + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +void led_set_user(uint8_t usb_led) { + +} diff --git a/keyboards/40percentclub/half_n_half/keymaps/default/readme.md b/keyboards/40percentclub/half_n_half/keymaps/default/readme.md new file mode 100644 index 00000000000..58a457f1bc8 --- /dev/null +++ b/keyboards/40percentclub/half_n_half/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for half_n_half \ No newline at end of file diff --git a/keyboards/40percentclub/half_n_half/readme.md b/keyboards/40percentclub/half_n_half/readme.md new file mode 100644 index 00000000000..689b6fe816e --- /dev/null +++ b/keyboards/40percentclub/half_n_half/readme.md @@ -0,0 +1,14 @@ +# half_n_half + +![half_n_half](https://2.bp.blogspot.com/-akouSRzGKQw/WutIH4qV0nI/AAAAAAACRqA/D1Gx3i1UWlccMCd0VS8td0ckWjCixrSuQCLcBGAs/s1600/b.jpg) + +A small split ortho board with two thumb keys + +Keyboard Maintainer: [Boy_314](https://github.com/boy-314) +Hardware Availability: http://www.40percent.club/2018/07/half-n-half.html + +Make example for this keyboard (after setting up your build environment): + + make 40percentclub/half_n_half:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/40percentclub/half_n_half/rules.mk b/keyboards/40percentclub/half_n_half/rules.mk new file mode 100644 index 00000000000..bd0d8f808cd --- /dev/null +++ b/keyboards/40percentclub/half_n_half/rules.mk @@ -0,0 +1,81 @@ +# MCU name +#MCU = at90usb1286 +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 + + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +BOOTLOADER = caterina + + +# If you don't know the bootloader type, then you can specify the +# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +# OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# 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 +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400) diff --git a/keyboards/preonic/keymaps/boy314/keymap.c b/keyboards/preonic/keymaps/boy314/keymap.c index 67292bdb3e3..04404f69f9a 100644 --- a/keyboards/preonic/keymaps/boy314/keymap.c +++ b/keyboards/preonic/keymaps/boy314/keymap.c @@ -21,7 +21,7 @@ // define layers #define _QWERTY 0 #define _DVORAK 1 -#define _OSU 2 +#define _ARROWS 2 #define _LOWER 10 #define _RAISE 11 #define _ADJUST 12 @@ -29,12 +29,9 @@ // macro shortcuts #define QWERTY TO(_QWERTY) #define DVORAK TO(_DVORAK) -#define OSU TO(_OSU) #define LOWER M(_LOWER) #define RAISE M(_RAISE) - -#define _______ KC_TRNS -#define XXXXXXX KC_NO +#define ARROWS TO(_ARROWS) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -48,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| Z | X | C | V | B | N | M | , | . | / | Shift| * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Del | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * | Ctrl | Del | Alt | GUI |Lower | Raise| Space | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ @@ -57,7 +54,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_ENT, \ 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_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, \ - KC_LCTL, KC_DEL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT \ + KC_LCTL, KC_DEL, KC_LGUI, KC_LALT, LOWER, RAISE, KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT \ ), /* Dvorak @@ -70,7 +67,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| ; | Q | J | K | X | B | M | W | V | Z | Shift| * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Del | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * | Ctrl | Del | Alt | GUI |Lower | Raise| Space | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ @@ -79,7 +76,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_ENT, \ KC_LSPO, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSPC, \ - KC_LCTL, KC_DEL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT \ + KC_LCTL, KC_DEL, KC_LGUI, KC_LALT, LOWER, RAISE, KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT \ +), + +/* ARROWS + * ,-----------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | Up | | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | | Left | Down |Right | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + +[_ARROWS] = LAYOUT_preonic_grid( \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT,_______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ ), /* Lower @@ -117,13 +136,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | 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_GRV, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {KC_DEL, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_PGUP, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, [_RAISE] = LAYOUT_preonic_grid( \ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ @@ -143,7 +155,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff|Dvorak| | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | OSU | | | | | | | | | | + * | |ARROWS| | | | | | | | | | * `-----------------------------------------------------------------------------------' */ @@ -152,7 +164,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, RESET, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, \ _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______, \ _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, DVORAK, _______, _______, _______, _______, \ - _______, OSU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + _______, ARROWS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ ) }; @@ -175,10 +187,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) } return false; break; - case OSU: + case ARROWS: if (record->event.pressed) { - set_single_persistent_default_layer(_OSU); + set_single_persistent_default_layer(_ARROWS); } return false; break; diff --git a/keyboards/xd75/keymaps/boy_314/keymap.c b/keyboards/xd75/keymaps/boy_314/keymap.c index 1de733f0f6e..71c72514a14 100644 --- a/keyboards/xd75/keymaps/boy_314/keymap.c +++ b/keyboards/xd75/keymaps/boy_314/keymap.c @@ -17,11 +17,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * .--------------------------------------------------------------------------------------------------------------------------------------. * | ESC | 1 | 2 | 3 | 4 | 5 | - | ` | = | 6 | 7 | 8 | 9 | 0 | BACKSP | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | TAB | ' | . | . | P | Y | [ | \ | ] | F | G | C | R | L | / | + * | TAB | ' | . | . | P | Y | [ | UP | ] | F | G | C | R | L | / | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| - * | CAP LK | A | O | E | U | I | HOME | DEL | PG UP | D | H | T | N | S | ENTER | + * | CAP LK | A | O | E | U | I | LEFT | DOWN | RIGHT | D | H | T | N | S | ENTER | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| - * | LSHIFT | ; | Q | J | K | X | END | UP | PG DN | M | W | W | V | Z | RSHIFT | + * | LSHIFT | ; | Q | J | K | X | PG DN | UP | PG UP | M | W | W | V | Z | RSHIFT | * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------| * | LCTRL | DEL | LALT | WIN | FN1 | SPACE | LEFT | DOWN | RIGHT | SPACE | FN2 | LEFT | DOWN | UP | RIGHT | * '--------------------------------------------------------------------------------------------------------------------------------------' @@ -29,9 +29,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_DV] = { /* DVORAK */ { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_GRV, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC }, - { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_LBRC, KC_BSLS, KC_RBRC, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH }, - { KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_HOME, KC_DEL, KC_PGUP, KC_D, KC_H, KC_T, KC_N, KC_S, KC_ENT }, - { KC_LSPO, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_END, KC_UP, KC_PGDN, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSPC }, + { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_LBRC, KC_UP, KC_RBRC, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH }, + { KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_LEFT, KC_DOWN, KC_RGHT, KC_D, KC_H, KC_T, KC_N, KC_S, KC_ENT }, + { KC_LSPO, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_PGDN, KC_UP, KC_PGUP, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSPC }, { KC_LCTL, KC_DEL, KC_LALT, KC_LGUI, MO(_FN1),KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, MO(_FN2),KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT }, }, @@ -67,7 +67,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| * | | | | | | | 1 | 2 | 3 | | | | | | | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | | | | | | | + | 0 | . | | | | | | | + * | | | | | | | 0 | + | . | | | | | | | * '--------------------------------------------------------------------------------------------------------------------------------------' */ @@ -76,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { { _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______, _______, _______, _______ }, { _______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______, _______, _______, _______ }, { _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, KC_PLUS, KC_0, KC_DOT, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, KC_0, KC_PLUS, KC_DOT, _______, _______, _______, _______, _______, _______ }, }, /* FUNCTION1 @@ -125,6 +125,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { } }; + const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function From 4082d880bcf5b4dacafa688fefc4f1288c3046be Mon Sep 17 00:00:00 2001 From: zvecr Date: Thu, 31 Jan 2019 02:20:13 +0000 Subject: [PATCH 32/55] Fix file size check for parallel make (#5012) --- build_keyboard.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/build_keyboard.mk b/build_keyboard.mk index 1d60f3ad798..0239a58b79b 100644 --- a/build_keyboard.mk +++ b/build_keyboard.mk @@ -369,5 +369,6 @@ $(KEYBOARD_OUTPUT)_CONFIG := $(PROJECT_CONFIG) # Default target. all: build check-size build: elf cpfirmware +check-size: build include $(TMK_PATH)/rules.mk From 9f63cd0d1de5c5ece532bdd343f8cf810ac36432 Mon Sep 17 00:00:00 2001 From: zvecr Date: Sat, 26 Jan 2019 18:03:58 +0000 Subject: [PATCH 33/55] Remove duplicate make invocations --- Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 45e47c00371..dd33357112d 100644 --- a/Makefile +++ b/Makefile @@ -548,9 +548,10 @@ endif # it has to be there to allow parallel execution of the submake # This always tries to compile everything, even if error occurs in the middle # But we return the error code at the end, to trigger travis failures - $(foreach COMMAND,$(COMMANDS),$(RUN_COMMAND)) + # The sort at this point is to remove duplicates + $(foreach COMMAND,$(sort $(COMMANDS)),$(RUN_COMMAND)) if [ -f $(ERROR_FILE) ]; then printf "$(MSG_ERRORS)" & exit 1; fi; - $(foreach TEST,$(TESTS),$(RUN_TEST)) + $(foreach TEST,$(sort $(TESTS)),$(RUN_TEST)) if [ -f $(ERROR_FILE) ]; then printf "$(MSG_ERRORS)" & exit 1; fi; # These no longer work because of the colon system From 87cbb1c552934de5573334ff56544137a37fcb2e Mon Sep 17 00:00:00 2001 From: Fredric Silberberg Date: Wed, 30 Jan 2019 22:27:46 -0800 Subject: [PATCH 34/55] Generalized nyquist layout for 5x12 boards. Removed duplicate readme.md that was cased the same and caused issues. --- keyboards/sirius/unigo66/readme.md | 17 ------------- .../community/ortho_5x12}/333fred/README.md | 8 +++--- .../community/ortho_5x12}/333fred/config.h | 1 - .../community/ortho_5x12}/333fred/keymap.c | 25 ++++++++----------- .../community/ortho_5x12}/333fred/rules.mk | 0 5 files changed, 14 insertions(+), 37 deletions(-) delete mode 100644 keyboards/sirius/unigo66/readme.md rename {keyboards/nyquist/keymaps => layouts/community/ortho_5x12}/333fred/README.md (92%) rename {keyboards/nyquist/keymaps => layouts/community/ortho_5x12}/333fred/config.h (83%) rename {keyboards/nyquist/keymaps => layouts/community/ortho_5x12}/333fred/keymap.c (88%) rename {keyboards/nyquist/keymaps => layouts/community/ortho_5x12}/333fred/rules.mk (100%) diff --git a/keyboards/sirius/unigo66/readme.md b/keyboards/sirius/unigo66/readme.md deleted file mode 100644 index 78a02ed09e2..00000000000 --- a/keyboards/sirius/unigo66/readme.md +++ /dev/null @@ -1,17 +0,0 @@ -# UniGo66 - -![UniGo66](https://i.imgur.com/ZKlcncg.png) - -The UniGo66 is an ergonomic wireless keyboard designed by Sirius and manufactured by ALF Studios. - -Join ALF Studios on [Discord](https://discord.gg/GJ8bdM) - -Make example: - - make sirius/unigo66:default - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -To get the U2U into DFU flashing mode, insert the U2U into the computer and press the button in the red circle shown below - -![U2U](https://i.imgur.com/WKwgDjZ.png) \ No newline at end of file diff --git a/keyboards/nyquist/keymaps/333fred/README.md b/layouts/community/ortho_5x12/333fred/README.md similarity index 92% rename from keyboards/nyquist/keymaps/333fred/README.md rename to layouts/community/ortho_5x12/333fred/README.md index fa354bb4d3d..f619effc610 100644 --- a/keyboards/nyquist/keymaps/333fred/README.md +++ b/layouts/community/ortho_5x12/333fred/README.md @@ -1,6 +1,6 @@ -# 333fred's Nyquist Layout +# 333fred's 5x12 Layout -This nyquist layout is based on my Ergodox Infinity Layout, which is [here](../../../../layouts/community/ergodox/333fred/README.md). It doesn't have all of my VS extensions, as I have my nyquist at home, not at work. +This 5x12 layout is based on my Ergodox Infinity Layout, which is [here](../../ergodox/333fred/README.md). It doesn't have all of my VS extensions. ## Layers @@ -18,7 +18,7 @@ Qwerty |------+------+------+------+------+------|------+------+------+------+------+------| | Shift| Z | X | C | V | B | N | M | , | . |/ Ctrl| Shift| |------+------+------+------+------+------+------+------+------+------+------+------| -| Ctrl | Alt | F4 | GUI |LwrVIM| Bksp | Spc | Ent | Lock | = | RAlt | Del | +| Ctrl | Alt | F4 | GUI | Bksp |LwrVIM| Spc | Ent | Lock | = | RAlt | Del | `-----------------------------------------------------------------------------------' ``` @@ -66,7 +66,7 @@ Gaming mode (Raise) |------+------+------+------+------+------+------+------+------+------+------+------| | | | | | | | | | | | | | |------+------+------+------+------+------+------+------+------+------+------+------| -| CTRL | | | | F | | | | | | | | +| CTRL | | | | | | | | | | | | |------+------+------+------+------+------+------+------+------+------+------+------| | Shift| Z | | | | | | | | | | GUI | |------+------+------+------+------+------+------+------+------+------+------+------| diff --git a/keyboards/nyquist/keymaps/333fred/config.h b/layouts/community/ortho_5x12/333fred/config.h similarity index 83% rename from keyboards/nyquist/keymaps/333fred/config.h rename to layouts/community/ortho_5x12/333fred/config.h index 575ec9ac528..7835fa1f07d 100644 --- a/keyboards/nyquist/keymaps/333fred/config.h +++ b/layouts/community/ortho_5x12/333fred/config.h @@ -1,6 +1,5 @@ #pragma once -#include "../../config.h" #include "333fred_config.h" #define USE_SERIAL diff --git a/keyboards/nyquist/keymaps/333fred/keymap.c b/layouts/community/ortho_5x12/333fred/keymap.c similarity index 88% rename from keyboards/nyquist/keymaps/333fred/keymap.c rename to layouts/community/ortho_5x12/333fred/keymap.c index c25bf1c5ff6..cc699dfc543 100644 --- a/keyboards/nyquist/keymaps/333fred/keymap.c +++ b/layouts/community/ortho_5x12/333fred/keymap.c @@ -9,11 +9,6 @@ enum custom_macros { PSCREEN_APP }; -// Tap dance for layer transitions -// Fillers to make layering more clear -#define _______ KC_TRNS -#define XXXXXXX KC_NO - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -26,15 +21,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| Z | X | C | V | B | N | M | , | . |/ Ctrl| Shift| * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | F4 | GUI |Lwr/VM| Bksp | Spc | Ent | Lock | = | Alt | Del | + * | Ctrl | Alt | F4 | GUI | Bksp |Lwr/VM| Spc | Ent | Lock | = | Alt | Del | * `-----------------------------------------------------------------------------------' */ -[BASE] = LAYOUT( \ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH, \ - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ - OSM(MOD_LSFT), LCTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RCTL_T(KC_SLSH), OSM(MOD_RSFT), \ - KC_LCTL, KC_LALT, KC_F4, KC_LGUI, TD(TD_SYM_VIM), KC_BSPC, KC_SPC, KC_ENT, KC_LOCK, KC_EQL, KC_RALT, KC_DEL \ +[BASE] = LAYOUT_ortho_5x12( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH, \ + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + OSM(MOD_LSFT), LCTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RCTL_T(KC_SLSH), OSM(MOD_RSFT), \ + KC_LCTL, KC_LALT, KC_F4, KC_LGUI, KC_BSPC, TD(TD_SYM_VIM), KC_SPC, KC_ENT, KC_LOCK, KC_EQL, KC_RALT, KC_DEL \ ), /* Symbols @@ -50,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Pscr | | | | | GAME | 0 | . | = | Prev | Next | Play | * `-----------------------------------------------------------------------------------' */ -[SYMB] = LAYOUT( \ +[SYMB] = LAYOUT_ortho_5x12( \ KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, \ _______, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE, KC_7, KC_8, KC_9, KC_ASTR, KC_RPRN, KC_F12, \ _______, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_GRV, KC_4, KC_5, KC_6, KC_PLUS, KC_RCBR, KC_PIPE, \ @@ -71,7 +66,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[VIM] = LAYOUT( \ +[VIM] = LAYOUT_ortho_5x12( \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, M(DLEFT), M(DRIGHT), KC_LCTL, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, \ @@ -93,7 +88,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Enter| | Lock | Bksp | Alt | Spc | Lower| Left | Up | Down | Right|QWERTY| * `-----------------------------------------------------------------------------------' */ -[GAME] = LAYOUT( \ +[GAME] = LAYOUT_ortho_5x12( \ KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ KC_LCTL, _______, _______, _______, KC_F, _______, _______, _______, _______, _______, _______, _______, \ diff --git a/keyboards/nyquist/keymaps/333fred/rules.mk b/layouts/community/ortho_5x12/333fred/rules.mk similarity index 100% rename from keyboards/nyquist/keymaps/333fred/rules.mk rename to layouts/community/ortho_5x12/333fred/rules.mk From e2411b0d4c248ee89e70b5b1549e1f98d4bd1abe Mon Sep 17 00:00:00 2001 From: Felipe Coury Date: Thu, 31 Jan 2019 13:42:12 -0200 Subject: [PATCH 35/55] Fixed TGR Alice pinout and number of LEDs (#5018) --- keyboards/alice/config.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/alice/config.h b/keyboards/alice/config.h index 34412a7e706..07b9599f58e 100644 --- a/keyboards/alice/config.h +++ b/keyboards/alice/config.h @@ -29,10 +29,10 @@ along with this program. If not, see . #define MATRIX_COLS 15 #define MATRIX_ROW_PINS { B0, B1, B2, B3, B4, B5 } -#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, C7, C6, C5, C4, C3, C2, C1 } +#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, C7, C6, C5, C4, C3, C2, D7 } #define DIODE_DIRECTION COL2ROW -#define RGBLED_NUM 20 +#define RGBLED_NUM 18 #define RGBLIGHT_ANIMATIONS #define NO_UART 1 From 4d88c716b4b2ad85c6ea1880d5f30ac3944c6589 Mon Sep 17 00:00:00 2001 From: moyi4681 Date: Fri, 1 Feb 2019 03:36:59 +0800 Subject: [PATCH 36/55] Update info.json (#5015) --- keyboards/dztech/dz60rgb/info.json | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/keyboards/dztech/dz60rgb/info.json b/keyboards/dztech/dz60rgb/info.json index 47e705d5a2f..4615706c69a 100644 --- a/keyboards/dztech/dz60rgb/info.json +++ b/keyboards/dztech/dz60rgb/info.json @@ -1,16 +1,12 @@ { "keyboard_name": "dz60rgb", "url": "", - "maintainer": "dz", + "maintainer": "dztch", "width": 14, "height": 5, "layouts": { "LAYOUT": { - "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, - {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, - {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, - {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"Shift", "x":11.25, "y":3, "w":1.75}, {"label":"up", "x":13, "y":3},{"label":"?", "x":14, "y":3}, - {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Left", "x":12, "y":4}, {"label":"Down", "x":13, "y":4}, {"label":"Right", "x":14, "y":4},] + "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"Shift", "x":11.25, "y":3, "w":1.75}, {"label":"\u2191", "x":13, "y":3},{"label":"?", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Ctrl", "x":11, "y":4}, {"label":"\u2190", "x":12, "y":4}, {"label":"\u2193", "x":13, "y":4}, {"label":"\u2192", "x":14, "y":4}] } } } From aa6cc28d431f2659a1a531bd7467011aa6713d03 Mon Sep 17 00:00:00 2001 From: Braydon Bubnick Date: Thu, 31 Jan 2019 18:31:22 -0600 Subject: [PATCH 37/55] [Keyboard] Add 1upkeyboards 1up80hte (Tsangan style PCB) (#4988) * Support for 1upkeyboards Tsangan style PCB * Suggested changes to config.h, keymap.c, rules.mk, 1up60hte.h, 1up60hte.c * Update keyboards/1upkeyboards/1up60hte/keymaps/default/keymap.c Fix for misnamed const Co-Authored-By: bubnick --- keyboards/1upkeyboards/1up60hte/1up60hte.c | 18 +++++ keyboards/1upkeyboards/1up60hte/1up60hte.h | 36 +++++++++ keyboards/1upkeyboards/1up60hte/config.h | 67 ++++++++++++++++ .../1up60hte/keymaps/default/keymap.c | 80 +++++++++++++++++++ keyboards/1upkeyboards/1up60hte/rules.mk | 56 +++++++++++++ 5 files changed, 257 insertions(+) create mode 100644 keyboards/1upkeyboards/1up60hte/1up60hte.c create mode 100644 keyboards/1upkeyboards/1up60hte/1up60hte.h create mode 100644 keyboards/1upkeyboards/1up60hte/config.h create mode 100644 keyboards/1upkeyboards/1up60hte/keymaps/default/keymap.c create mode 100644 keyboards/1upkeyboards/1up60hte/rules.mk diff --git a/keyboards/1upkeyboards/1up60hte/1up60hte.c b/keyboards/1upkeyboards/1up60hte/1up60hte.c new file mode 100644 index 00000000000..460e42a0e57 --- /dev/null +++ b/keyboards/1upkeyboards/1up60hte/1up60hte.c @@ -0,0 +1,18 @@ +/* +Copyright 2019 Bubnick + +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 . +*/ + +#include "1up60hte.h" diff --git a/keyboards/1upkeyboards/1up60hte/1up60hte.h b/keyboards/1upkeyboards/1up60hte/1up60hte.h new file mode 100644 index 00000000000..1103df6f7e8 --- /dev/null +++ b/keyboards/1upkeyboards/1up60hte/1up60hte.h @@ -0,0 +1,36 @@ +/* +Copyright 2019 Bubnick + +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 . +*/ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \ + K400, K401, K402, K406, K410, K411, K412, K413 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO }, \ + { K400, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413 } \ +} + + diff --git a/keyboards/1upkeyboards/1up60hte/config.h b/keyboards/1upkeyboards/1up60hte/config.h new file mode 100644 index 00000000000..eb61a363ff7 --- /dev/null +++ b/keyboards/1upkeyboards/1up60hte/config.h @@ -0,0 +1,67 @@ +/* +Copyright 2019 Bubnick + +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 . +*/ + + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER 1upkeyboards +#define PRODUCT 1up60hte +#define DESCRIPTION A custom 60% keyboard + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B3, B2, B1, B0, D4 } +#define MATRIX_COL_PINS { F6, F5, F4, F1, E6, D0, D1, D2, D3, D5, D6, D7, B4, B5 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* number of backlight levels */ +#define BACKLIGHT_PIN B7 +#ifdef BACKLIGHT_PIN +#define BACKLIGHT_LEVELS 3 +#endif + +/* 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 + + + +#define RGB_DI_PIN F0 +#ifdef RGB_DI_PIN +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 14 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#endif diff --git a/keyboards/1upkeyboards/1up60hte/keymaps/default/keymap.c b/keyboards/1upkeyboards/1up60hte/keymaps/default/keymap.c new file mode 100644 index 00000000000..d9cd8aebbfd --- /dev/null +++ b/keyboards/1upkeyboards/1up60hte/keymaps/default/keymap.c @@ -0,0 +1,80 @@ +/* +Copyright 2019 Bubnick + +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 . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_GRV, 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_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_NO, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI, KC_LCTL, KC_NO), + + [1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) + +}; + +void matrix_init_user(void) { + setPinOutput(B6); +} + +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) { + + if (usb_led & (1 << USB_LED_NUM_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + writePinLow(B6); + } else { + writePinHigh(B6); + } + + if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_COMPOSE)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_KANA)) { + + } else { + + } + +} diff --git a/keyboards/1upkeyboards/1up60hte/rules.mk b/keyboards/1upkeyboards/1up60hte/rules.mk new file mode 100644 index 00000000000..c77cac8a178 --- /dev/null +++ b/keyboards/1upkeyboards/1up60hte/rules.mk @@ -0,0 +1,56 @@ +# MCU name +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* +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +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 = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +SLEEP_LED_ENABLE = no # 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 +AUDIO_ENABLE = no +RGBLIGHT_ENABLE = yes From 8c5c1fd7fe8866f61081ec4cf953f48352d7c088 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Thu, 31 Jan 2019 16:37:13 -0800 Subject: [PATCH 38/55] Space65 Updates (#5008) * update reset sequence info * fix my rgb underglow led number flub * add a more sensible keymap * add caps lock led support * remove unused #define * swap the spacebar sizes around to match the space65 * use vomindoraan's suggestion in PR to use IS_LED_ON --- keyboards/gray_studio/space65/info.json | 2 +- keyboards/gray_studio/space65/keymaps/default/keymap.c | 6 +++--- keyboards/gray_studio/space65/readme.md | 4 +++- keyboards/gray_studio/space65/space65.c | 5 +++++ keyboards/gray_studio/space65/space65.h | 2 -- 5 files changed, 12 insertions(+), 7 deletions(-) diff --git a/keyboards/gray_studio/space65/info.json b/keyboards/gray_studio/space65/info.json index aafae5b08ad..9c1d439b417 100644 --- a/keyboards/gray_studio/space65/info.json +++ b/keyboards/gray_studio/space65/info.json @@ -6,7 +6,7 @@ "height": 5, "layouts": { "LAYOUT": { - "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.75}, {"x":6.5, "y":4, "w":1.25}, {"x":7.75, "y":4, "w":2.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] } } } \ No newline at end of file diff --git a/keyboards/gray_studio/space65/keymaps/default/keymap.c b/keyboards/gray_studio/space65/keymaps/default/keymap.c index c42bbe0f047..229a0c574bb 100644 --- a/keyboards/gray_studio/space65/keymaps/default/keymap.c +++ b/keyboards/gray_studio/space65/keymaps/default/keymap.c @@ -23,10 +23,10 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( \ - 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_BSLS, KC_GRV, KC_INS, \ - 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_DEL, \ + 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_BSPC, KC_BSPC, KC_DEL, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS, \ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, \ - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, \ + 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_UP, KC_PGDN, \ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT \ ), [1] = LAYOUT( \ diff --git a/keyboards/gray_studio/space65/readme.md b/keyboards/gray_studio/space65/readme.md index 83387d4b4cb..00d289e3bb7 100644 --- a/keyboards/gray_studio/space65/readme.md +++ b/keyboards/gray_studio/space65/readme.md @@ -1,11 +1,13 @@ # Gray Studio Space65 -A 65% keyboard with RGB underglow, backlighting and USB C, whose design was inspired by the Voyager I space probe and Apple II home computer. +A 65% keyboard with RGB underglow, backlighting, and USB C. Its design was inspired by the Voyager I space probe and Apple II home computer. Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin) Hardware Supported: Gray Studio Space65 Hardware Availability: [Geekhack Group Buy](https://geekhack.org/index.php?topic=98768.0) +**Reset Sequence:** Using this firmware sets `BOOTLOADER_ENABLE` to `lite`. While plugging in, hold the top left key, commonly programmed as `Esc` to put your board into bootloader mode. + Make example for this keyboard (after setting up your build environment): make gray_studio/space65:default diff --git a/keyboards/gray_studio/space65/space65.c b/keyboards/gray_studio/space65/space65.c index 26d80e00ec9..f9f2224ab81 100644 --- a/keyboards/gray_studio/space65/space65.c +++ b/keyboards/gray_studio/space65/space65.c @@ -38,6 +38,11 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { void led_set_kb(uint8_t usb_led) { // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { + writePinHigh(E6); + } else { + writePinLow(E6); + } led_set_user(usb_led); } diff --git a/keyboards/gray_studio/space65/space65.h b/keyboards/gray_studio/space65/space65.h index c2158fd9284..b7d8580c06c 100644 --- a/keyboards/gray_studio/space65/space65.h +++ b/keyboards/gray_studio/space65/space65.h @@ -17,8 +17,6 @@ #include "quantum.h" -#define XXX KC_NO - /* This a shortcut to help you visually see your layout. * * The first section contains all of the arguments representing the physical From d8e9a0f7a319e27c8dbb4e5a1131bc02b365da76 Mon Sep 17 00:00:00 2001 From: fauxpark Date: Fri, 1 Feb 2019 11:40:12 +1100 Subject: [PATCH 39/55] Change return type of layer_switch_get_layer() to uint8_t (#5011) * Change return type of layer_switch_get_layer() to uint8_t * Keep loop index signed so we don't wrap around --- tmk_core/common/action_layer.c | 4 ++-- tmk_core/common/action_layer.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tmk_core/common/action_layer.c b/tmk_core/common/action_layer.c index 6ff8c5549b5..47cad996a3d 100644 --- a/tmk_core/common/action_layer.c +++ b/tmk_core/common/action_layer.c @@ -296,7 +296,7 @@ action_t store_or_get_action(bool pressed, keypos_t key) { * * Gets the layer based on key info */ -int8_t layer_switch_get_layer(keypos_t key) { +uint8_t layer_switch_get_layer(keypos_t key) { #ifndef NO_ACTION_LAYER action_t action; action.code = ACTION_TRANSPARENT; @@ -304,7 +304,7 @@ int8_t layer_switch_get_layer(keypos_t key) { uint32_t layers = layer_state | default_layer_state; /* check top layer first */ for (int8_t i = 31; i >= 0; i--) { - if (layers & (1UL< Date: Fri, 1 Feb 2019 20:44:57 +0000 Subject: [PATCH 40/55] [Keymap] Adds Preonic keymap for muzfuz. Small Planck addition. (#5019) * Adds keymaps for muzfuz * Remove unused keys from adjust layer * Bring in line with current QMK standards. * Adds Preonic and adjusted Planck keymaps * Make changes per review request --- keyboards/planck/keymaps/muzfuz/keymap.c | 24 +- keyboards/planck/keymaps/muzfuz/readme.md | 5 +- keyboards/preonic/keymaps/muzfuz/config.h | 37 +++ keyboards/preonic/keymaps/muzfuz/keymap.c | 271 +++++++++++++++++++++ keyboards/preonic/keymaps/muzfuz/readme.md | 5 + keyboards/preonic/keymaps/muzfuz/rules.mk | 1 + 6 files changed, 327 insertions(+), 16 deletions(-) create mode 100644 keyboards/preonic/keymaps/muzfuz/config.h create mode 100644 keyboards/preonic/keymaps/muzfuz/keymap.c create mode 100644 keyboards/preonic/keymaps/muzfuz/readme.md create mode 100644 keyboards/preonic/keymaps/muzfuz/rules.mk diff --git a/keyboards/planck/keymaps/muzfuz/keymap.c b/keyboards/planck/keymaps/muzfuz/keymap.c index 16994a57629..84452a3f178 100644 --- a/keyboards/planck/keymaps/muzfuz/keymap.c +++ b/keyboards/planck/keymaps/muzfuz/keymap.c @@ -36,8 +36,8 @@ enum planck_keycodes CLNEQLS }; -#define LOWER MO(_LOWER) -#define RAISE MO(_RAISE) +#define RSE_ENT LT(_RAISE, KC_ENT) +#define LWR_SPC LT(_LOWER, KC_SPC) #define ESC_CTL CTL_T(KC_ESCAPE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -50,14 +50,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| Z | X | C | V | B | N | M | , | . | / |Shift | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Enter|Space |Raise | Left | Down | Up |Right | + * | Brite| Ctrl | Alt | GUI | Enter | Space | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ [_QWERTY] = LAYOUT_planck_grid( KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, ESC_CTL, 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_RSFT, - BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_ENT, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), + BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, KC_NO, RSE_ENT, KC_NO, LWR_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), /* Lower * ,-----------------------------------------------------------------------------------. @@ -67,12 +67,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | | => | | [ | ] | | | _ | + | | | Home | End | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Next | Vol- | Vol+ | Play | + * | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ [_LOWER] = LAYOUT_planck_grid( - 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_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, ESC_CTL, CLNEQLS, _______, KC_LCBR, KC_RCBR, KC_LPRN, KC_RPRN, KC_MINS, KC_EQL, KC_BSLS, KC_TILD, KC_RGUI, _______, HASHRKT, _______, KC_LBRC, KC_RBRC, _______, _______, KC_UNDS, KC_PLUS, KC_PIPE, KC_HOME, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), @@ -85,14 +85,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | | | | | | | | 1 | 2 | 3 | | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Next | Vol- | Vol+ | Play | + * | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ [_RAISE] = LAYOUT_planck_grid( - KC_GRV, _______, _______, KC_UP, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - ESC_CTL, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_4, KC_5, KC_6, _______, KC_RGUI, - _______, _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), + KC_GRV, _______, _______, KC_UP, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + ESC_CTL, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_4, KC_5, KC_6, _______, KC_RGUI, + _______, _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. @@ -102,7 +102,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | + * | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_planck_grid( diff --git a/keyboards/planck/keymaps/muzfuz/readme.md b/keyboards/planck/keymaps/muzfuz/readme.md index 78153fb324a..6f78284d70d 100644 --- a/keyboards/planck/keymaps/muzfuz/readme.md +++ b/keyboards/planck/keymaps/muzfuz/readme.md @@ -1,8 +1,5 @@ # The muzfuz Planck Layout ```shell -docker run -e KEYMAP=muzfuz -e KEYBOARD=planck --rm -v $('pwd'):/qmk:rw qmk_firmware -dfu-programmer atmega32u4 erase -dfu-programmer atmega32u4 flash .build/planck_rev6_muzfuz.hex -dfu-programmer atmega32u4 launch +make planck/rev6:muzfuz:dfu-util ``` diff --git a/keyboards/preonic/keymaps/muzfuz/config.h b/keyboards/preonic/keymaps/muzfuz/config.h new file mode 100644 index 00000000000..40a9524b469 --- /dev/null +++ b/keyboards/preonic/keymaps/muzfuz/config.h @@ -0,0 +1,37 @@ +#pragma once + +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(PREONIC_SOUND) + // #define STARTUP_SONG SONG(NO_SOUND) + + #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ + SONG(COLEMAK_SOUND), \ + SONG(DVORAK_SOUND) \ + } +#endif + +#define MUSIC_MASK (keycode != KC_NO) + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ + +#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 2 diff --git a/keyboards/preonic/keymaps/muzfuz/keymap.c b/keyboards/preonic/keymaps/muzfuz/keymap.c new file mode 100644 index 00000000000..a0a4b34fa94 --- /dev/null +++ b/keyboards/preonic/keymaps/muzfuz/keymap.c @@ -0,0 +1,271 @@ +/* Copyright 2015-2017 Jack Humbert + * + * 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 . + */ + +#include QMK_KEYBOARD_H +#include "muse.h" + +enum preonic_layers { + _QWERTY, + _LOWER, + _RAISE, + _ADJUST +}; + +enum preonic_keycodes +{ + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + BACKLIT, + HASHRKT, + CLNEQLS +}; + +#define RSE_ENT LT(_RAISE, KC_ENT) +#define LWR_SPC LT(_LOWER, KC_SPC) +#define ESC_CTL CTL_T(KC_ESCAPE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | \ | + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | ESCCTL | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Shift | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Enter|Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_QWERTY] = LAYOUT_preonic_grid( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + ESC_CTL, 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_RSFT, + BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, KC_NO, RSE_ENT, KC_NO, LWR_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT), + + /* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | + * ,-----------------------------------------------------------------------------------. + * | | => | | [ | ] | | | _ | + | | | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * |ESCCTL| := | | { | } | ( | ) | - | = | \ | ~ | GUI | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | [ | ] | | | | | | Home | End | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT_preonic_grid( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, + _______, HASHRKT, _______, KC_LBRC, KC_RBRC, _______, _______, KC_UNDS, KC_PLUS, KC_PIPE, _______, _______, + ESC_CTL, CLNEQLS, _______, KC_LCBR, KC_RCBR, KC_LPRN, KC_RPRN, KC_MINS, KC_EQL, KC_BSLS, KC_TILD, KC_RGUI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_END, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), + + /* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | + * ,-----------------------------------------------------------------------------------. + * | | | | Up | | | | | | | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * |ESCCTL| | Left | Down | Right | | | | | | | GUI | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT_preonic_grid( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, + ESC_CTL, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, KC_RGUI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY), + + /* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_ADJUST] = LAYOUT_preonic_grid( + 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, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL, + _______, _______, MU_MOD, AU_ON, AU_OFF, _______, _______, QWERTY, _______, _______, _______, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case HASHRKT: + if (record->event.pressed) + { + SEND_STRING("=>"); + } + break; + case CLNEQLS: + if (record->event.pressed) + { + SEND_STRING(":="); + } + break; + case QWERTY: + if (record->event.pressed) + { + set_single_persistent_default_layer(_QWERTY); + } + 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 + #ifdef __AVR__ + PORTE &= ~(1<<6); + #endif + } else { + unregister_code(KC_RSFT); + #ifdef __AVR__ + PORTE |= (1<<6); + #endif + } + return false; + break; + } + return true; +}; + +bool muse_mode = false; +uint8_t last_muse_note = 0; +uint16_t muse_counter = 0; +uint8_t muse_offset = 70; +uint16_t muse_tempo = 50; + +void encoder_update(bool clockwise) { + if (muse_mode) { + if (IS_LAYER_ON(_RAISE)) { + if (clockwise) { + muse_offset++; + } else { + muse_offset--; + } + } else { + if (clockwise) { + muse_tempo+=1; + } else { + muse_tempo-=1; + } + } + } else { + if (clockwise) { + register_code(KC_PGDN); + unregister_code(KC_PGDN); + } else { + register_code(KC_PGUP); + unregister_code(KC_PGUP); + } + } +} + +void dip_update(uint8_t index, bool active) { + switch (index) { + case 0: + if (active) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + break; + case 1: + if (active) { + muse_mode = true; + } else { + muse_mode = false; + #ifdef AUDIO_ENABLE + stop_all_notes(); + #endif + } + } +} + +void matrix_scan_user(void) { + #ifdef AUDIO_ENABLE + if (muse_mode) { + if (muse_counter == 0) { + uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()]; + if (muse_note != last_muse_note) { + stop_note(compute_freq_for_midi_note(last_muse_note)); + play_note(compute_freq_for_midi_note(muse_note), 0xF); + last_muse_note = muse_note; + } + } + muse_counter = (muse_counter + 1) % muse_tempo; + } + #endif +} + +bool music_mask_user(uint16_t keycode) { + switch (keycode) { + case RAISE: + case LOWER: + return false; + default: + return true; + } +} diff --git a/keyboards/preonic/keymaps/muzfuz/readme.md b/keyboards/preonic/keymaps/muzfuz/readme.md new file mode 100644 index 00000000000..a709d5c946e --- /dev/null +++ b/keyboards/preonic/keymaps/muzfuz/readme.md @@ -0,0 +1,5 @@ +# The muzfuz Preonic layout - largely based on the Planck's + +```shell +make preonic/rev3:muzfuz:dfu-util +``` diff --git a/keyboards/preonic/keymaps/muzfuz/rules.mk b/keyboards/preonic/keymaps/muzfuz/rules.mk new file mode 100644 index 00000000000..dcf16bef399 --- /dev/null +++ b/keyboards/preonic/keymaps/muzfuz/rules.mk @@ -0,0 +1 @@ +SRC += muse.c From fd9967dd8ed503c9125e8eb4c0e66c8f0c9fd295 Mon Sep 17 00:00:00 2001 From: Fang Date: Sat, 2 Feb 2019 03:48:40 +0100 Subject: [PATCH 41/55] Add hand-swap config to Gergo layout (#5033) --- keyboards/gergo/gergo.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/keyboards/gergo/gergo.c b/keyboards/gergo/gergo.c index c6ba91bb284..d32792e2a8c 100644 --- a/keyboards/gergo/gergo.c +++ b/keyboards/gergo/gergo.c @@ -64,3 +64,21 @@ out: //uprintf("Init %x\n", mcp23018_status); return mcp23018_status; } + +const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + { {0,0}, {0,7}, {2,7}, {3,7} }, + { {0,8}, {1,8}, {2,8}, {3,8} }, + { {0,9}, {1,9}, {2,9}, {3,9} }, + { {0,10}, {1,10}, {2,10}, {3,10} }, + { {0,11}, {1,11}, {2,11}, {3,11} }, + { {0,12}, {1,12}, {2,12}, {0,0} }, + { {0,13}, {1,13}, {2,13}, {0,0} }, + + { {1,0}, {0,0}, {2,0}, {3,0} }, + { {0,1}, {1,1}, {2,1}, {3,1} }, + { {0,2}, {1,2}, {2,2}, {3,2} }, + { {0,3}, {1,3}, {2,3}, {3,3} }, + { {0,4}, {1,4}, {2,4}, {3,4} }, + { {0,5}, {1,5}, {2,5}, {3,5} }, + { {0,6}, {1,6}, {2,6}, {3,6} } +}; From 34a11d7bac425fef2e4ba011abe7422e8e5ac4cf Mon Sep 17 00:00:00 2001 From: stanrc85 <47038504+stanrc85@users.noreply.github.com> Date: Fri, 1 Feb 2019 21:49:37 -0500 Subject: [PATCH 42/55] Stanrc85 layout update/cleanup (#5029) * Remove unused options * COMMAND disabled since it is unused * COMMAND shortcut removed * Fix some spacing for better readability. --- .../community/60_ansi/stanrc85-ansi/config.h | 2 - .../community/60_ansi/stanrc85-ansi/keymap.c | 45 +++++++++---------- .../community/60_ansi/stanrc85-ansi/rules.mk | 1 + 3 files changed, 23 insertions(+), 25 deletions(-) diff --git a/layouts/community/60_ansi/stanrc85-ansi/config.h b/layouts/community/60_ansi/stanrc85-ansi/config.h index 77f0b2e7294..904a7f524e1 100644 --- a/layouts/community/60_ansi/stanrc85-ansi/config.h +++ b/layouts/community/60_ansi/stanrc85-ansi/config.h @@ -2,5 +2,3 @@ #define TAPPING_TERM 200 #define RETRO_TAPPING - -//#define IGNORE_MOD_TAP_INTERRUPT diff --git a/layouts/community/60_ansi/stanrc85-ansi/keymap.c b/layouts/community/60_ansi/stanrc85-ansi/keymap.c index e56078a971d..796882bea33 100644 --- a/layouts/community/60_ansi/stanrc85-ansi/keymap.c +++ b/layouts/community/60_ansi/stanrc85-ansi/keymap.c @@ -15,11 +15,10 @@ */ #include QMK_KEYBOARD_H -#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) #define DEFAULT 0 //Custom ANSI -#define LAYER1 1 //Default ANSI (enable with Fn2+D) -#define LAYER2 2 //F keys, arrows, custom shortcuts, volume control -#define LAYER3 3 //Backlight controls and RESET +#define LAYER1 1 //Default ANSI (enable with Fn2+D) +#define LAYER2 2 //Function keys, arrows, custom shortcuts, volume control +#define LAYER3 3 //Backlight controls and RESET #define KC_CAD LALT(LCTL(KC_DEL)) #define KC_LOCK LGUI(KC_L) @@ -31,38 +30,38 @@ enum { }; qk_tap_dance_action_t tap_dance_actions[] = { - [TD_WIN] = ACTION_TAP_DANCE_DOUBLE(KC_CAD, KC_LOCK), + [TD_WIN] = ACTION_TAP_DANCE_DOUBLE(KC_CAD, KC_LOCK), [TD_ESC] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_GRV) }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_60_ansi( - TD(TD_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_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, - LT(2, 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_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, LT(2, KC_SPC), KC_RALT, TD(TD_WIN), MO(3), KC_RCTL), + TD(TD_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_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, + LT(2, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, LT(2, KC_SPC), KC_RALT, TD(TD_WIN), MO(3), KC_RCTL), [1] = LAYOUT_60_ansi( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_TAB,KC_Q,KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(2), MO(3), KC_RCTL), + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(2), MO(3), KC_RCTL), [2] = LAYOUT_60_ansi( - KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - _______, _______, LCA(KC_QUOT), KC_VOLU, LCA(KC_SCLN), _______, _______, KC_HOME, KC_UP, KC_END, _______, _______, _______, RESET, - KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_MPLY, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______), + KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + _______, _______, LCA(KC_QUOT), KC_VOLU, LCA(KC_SCLN), _______, _______, KC_HOME, KC_UP, KC_END, _______, _______, _______, RESET, + KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_MPLY, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______) [3] = LAYOUT_60_ansi( - RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, - KC_CAPS, _______, _______, TG(1), _______, _______, BL_STEP, BL_DEC, BL_INC, BL_TOGG, _______, _______, _______, + KC_CAPS, _______, _______, TG(1), _______, _______, BL_STEP, BL_DEC, BL_INC, BL_TOGG, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, RGB_SAI, RGB_HUD, RGB_HUI, RGB_MOD, RGB_TOG, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______) + _______, _______, _______, _______, _______, _______, _______, _______) }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { diff --git a/layouts/community/60_ansi/stanrc85-ansi/rules.mk b/layouts/community/60_ansi/stanrc85-ansi/rules.mk index e5ddcae8d92..d58c21f2b91 100644 --- a/layouts/community/60_ansi/stanrc85-ansi/rules.mk +++ b/layouts/community/60_ansi/stanrc85-ansi/rules.mk @@ -1 +1,2 @@ TAP_DANCE_ENABLE = yes +COMMAND_ENABLE = no From 4e2007b855ab32923b2f85cd1ff5222b8bad7804 Mon Sep 17 00:00:00 2001 From: stanrc85 <47038504+stanrc85@users.noreply.github.com> Date: Sat, 2 Feb 2019 15:21:32 -0500 Subject: [PATCH 43/55] [Keymap] Added , to fix errors (#5034) * Added , to fix errors * Added aliases to clean up keymaps * Additional formatting changes --- .../community/60_ansi/stanrc85-ansi/keymap.c | 37 +++++++++++-------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/layouts/community/60_ansi/stanrc85-ansi/keymap.c b/layouts/community/60_ansi/stanrc85-ansi/keymap.c index 796882bea33..f6a5f4c9838 100644 --- a/layouts/community/60_ansi/stanrc85-ansi/keymap.c +++ b/layouts/community/60_ansi/stanrc85-ansi/keymap.c @@ -20,8 +20,15 @@ #define LAYER2 2 //Function keys, arrows, custom shortcuts, volume control #define LAYER3 3 //Backlight controls and RESET +//Aliases for longer keycodes #define KC_CAD LALT(LCTL(KC_DEL)) #define KC_LOCK LGUI(KC_L) +#define CA_QUOT LCA(KC_QUOT) +#define CA_SCLN LCA(KC_SCLN) +#define CA_ESC LT(2, KC_ESC) +#define CA_SPCF LT(2, KC_SPC) +#define CA_TESC TD(TD_ESC) +#define CA_TWIN TD(TD_WIN) //Tap Dance Declarations enum { @@ -36,25 +43,25 @@ qk_tap_dance_action_t tap_dance_actions[] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_60_ansi( - TD(TD_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_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, - LT(2, 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_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, LT(2, KC_SPC), KC_RALT, TD(TD_WIN), MO(3), KC_RCTL), + CA_TESC, 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, + CA_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, CA_SPCF, KC_RALT, CA_TWIN, MO(3), KC_RCTL), [1] = LAYOUT_60_ansi( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(2), MO(3), KC_RCTL), + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(2), MO(3), KC_RCTL), [2] = LAYOUT_60_ansi( - KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - _______, _______, LCA(KC_QUOT), KC_VOLU, LCA(KC_SCLN), _______, _______, KC_HOME, KC_UP, KC_END, _______, _______, _______, RESET, - KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_MPLY, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______) + KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + _______, _______, CA_QUOT, KC_VOLU, CA_SCLN, _______, _______, KC_HOME, KC_UP, KC_END, _______, _______, _______, RESET, + KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_MPLY, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______), [3] = LAYOUT_60_ansi( RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, From e9c9c3a4fa1f9a3d948b58315b5d85369392fa6a Mon Sep 17 00:00:00 2001 From: Peter Roe Date: Sat, 2 Feb 2019 14:43:58 -0600 Subject: [PATCH 44/55] [Keyboard] ADB converter lock LED fix (#5035) * Enabled ADB lock LEDs * Updated converter/adb_usb/README.md Fixed a typo in the readme title. Added the lock LED fix to the changelog. --- keyboards/converter/adb_usb/README.md | 3 ++- keyboards/converter/adb_usb/led.c | 2 +- keyboards/converter/adb_usb/matrix.c | 10 ++-------- keyboards/converter/adb_usb/rules.mk | 3 ++- 4 files changed, 7 insertions(+), 11 deletions(-) diff --git a/keyboards/converter/adb_usb/README.md b/keyboards/converter/adb_usb/README.md index ed717500807..8de9b9ad46d 100644 --- a/keyboards/converter/adb_usb/README.md +++ b/keyboards/converter/adb_usb/README.md @@ -1,4 +1,4 @@ -ADB-to USB Keyboard Converter +ADB-to-USB Keyboard Converter ============================= This firmware converts Apple Desktop Bus (ADB) keyboard protocol to USB so that you can use an ADB keyboard on a modern computer. It works on the PJRC Teensy 2.0 and other USB AVR MCUs (ATMega32U4, AT90USB64/128, etc) and needs at least 10KB of flash memory. @@ -81,3 +81,4 @@ though the ADB protocol itself supports it. See protocol/adb.c for more info. QMK Port Changelog --------- - 2018/09/16 - Initial release. +- 2018/12/23 - Fixed lock LED support. diff --git a/keyboards/converter/adb_usb/led.c b/keyboards/converter/adb_usb/led.c index ea9bf77b5c1..3ee64a8e7d3 100644 --- a/keyboards/converter/adb_usb/led.c +++ b/keyboards/converter/adb_usb/led.c @@ -23,5 +23,5 @@ along with this program. If not, see . void led_set(uint8_t usb_led) { - adb_host_kbd_led(ADB_ADDR_KEYBOARD, ~usb_led); + adb_host_kbd_led(~usb_led); } diff --git a/keyboards/converter/adb_usb/matrix.c b/keyboards/converter/adb_usb/matrix.c index 8ee48bf23f2..4a70eb50213 100644 --- a/keyboards/converter/adb_usb/matrix.c +++ b/keyboards/converter/adb_usb/matrix.c @@ -58,26 +58,20 @@ void matrix_scan_user(void) { void matrix_init(void) { - // LED on - DDRD |= (1<<6); PORTD |= (1<<6); - adb_host_init(); + // wait for keyboard to boot up and receive command _delay_ms(2000); // initialize matrix state: all keys off for (uint8_t i=0; i < MATRIX_ROWS; i++) matrix[i] = 0x00; - led_set(host_keyboard_leds()); - - // debug_enable = false; + // debug_enable = true; // debug_matrix = true; // debug_keyboard = true; // debug_mouse = true; // print("debug enabled.\n"); - // LED off - DDRD |= (1<<6); PORTD &= ~(1<<6); matrix_init_quantum(); } diff --git a/keyboards/converter/adb_usb/rules.mk b/keyboards/converter/adb_usb/rules.mk index 3a9b6dedcca..4743b6b08f1 100644 --- a/keyboards/converter/adb_usb/rules.mk +++ b/keyboards/converter/adb_usb/rules.mk @@ -70,4 +70,5 @@ BACKLIGHT_ENABLE = no CUSTOM_MATRIX = yes SRC = matrix.c \ - adb.c + adb.c \ + led.c From c4ce613bff87eaf40c8ddd76383e3cc468e6e2a6 Mon Sep 17 00:00:00 2001 From: GreenShadowMaker <39226745+GreenShadowMaker@users.noreply.github.com> Date: Sun, 3 Feb 2019 16:59:39 -0800 Subject: [PATCH 45/55] ergodash Keyboard readme documentation (#5046) * Update readme.md Added reminder/example on how to install * Update readme.md Added note about rev2 and PCB versions * Update readme.md format --- keyboards/ergodash/readme.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/keyboards/ergodash/readme.md b/keyboards/ergodash/readme.md index 7fa76344f1d..1545b44624e 100644 --- a/keyboards/ergodash/readme.md +++ b/keyboards/ergodash/readme.md @@ -13,6 +13,13 @@ Make example for this keyboard (after setting up your build environment): See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +Install Example: (for pro micro) + `make ergodash/rev2:default:avrdude` + +Note: + "rev2" is for PCB ver 1.1,1.2 + "rev1" is from earlier pcb + # Layout ![layout](https://github.com/omkbd/picture/blob/master/ergodash-layout.png) ![PCB](https://github.com/omkbd/picture/blob/master/Ergodash_PCB.jpg) From b6fbcd9d6210524fe73921db12209e8703c74d2d Mon Sep 17 00:00:00 2001 From: Nicholas Shaff Date: Sun, 3 Feb 2019 21:40:42 -0600 Subject: [PATCH 46/55] New Keyboard: Sentraq Number Pad RGB DIY Kit (#5047) * Added QMK Config for Sentraq Number Pad keyboard. * Sentraq Number Pad documentation cleanup. * mend * Added json for configurator. * Small documentation tweaks. * Updated the layouts to use the default layouts that match. * Uncommended user level functions in keymap, left custom keycode/macro code commented but documented why. * Switched to #pragma once from #ifndef structure in header file. * Moved Sentraq number pad to sentraq creator directory. * Renamed sentraq_number_pad to number_pad now that it's nested in the sentraq directory. * Updated references inside the files for the keyboard rename and nesting. --- keyboards/sentraq/number_pad/config.h | 83 ++++++++++++++ keyboards/sentraq/number_pad/info.json | 29 +++++ .../number_pad/keymaps/default/keymap.c | 105 ++++++++++++++++++ .../number_pad/keymaps/default/readme.md | 1 + keyboards/sentraq/number_pad/number_pad.c | 43 +++++++ keyboards/sentraq/number_pad/number_pad.h | 56 ++++++++++ keyboards/sentraq/number_pad/readme.md | 13 +++ keyboards/sentraq/number_pad/rules.mk | 80 +++++++++++++ 8 files changed, 410 insertions(+) create mode 100644 keyboards/sentraq/number_pad/config.h create mode 100644 keyboards/sentraq/number_pad/info.json create mode 100644 keyboards/sentraq/number_pad/keymaps/default/keymap.c create mode 100644 keyboards/sentraq/number_pad/keymaps/default/readme.md create mode 100644 keyboards/sentraq/number_pad/number_pad.c create mode 100644 keyboards/sentraq/number_pad/number_pad.h create mode 100644 keyboards/sentraq/number_pad/readme.md create mode 100644 keyboards/sentraq/number_pad/rules.mk diff --git a/keyboards/sentraq/number_pad/config.h b/keyboards/sentraq/number_pad/config.h new file mode 100644 index 00000000000..d52670c7dac --- /dev/null +++ b/keyboards/sentraq/number_pad/config.h @@ -0,0 +1,83 @@ +/* +Copyright 2019 QMK Community + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Sentraq +#define PRODUCT Sentraq Number Pad +#define DESCRIPTION RBG backlit number pad kit + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 4 + +/* + * 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 { F5, F0, B5, D6, D4 } +#define MATRIX_COL_PINS { C7, D5, D1, D0 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ +#define DIODE_DIRECTION COL2ROW + +#define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +#define BACKLIGHT_LEVELS 3 + +#define RGB_DI_PIN B0 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 13 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ + #define RGBLIGHT_ANIMATIONS +/*== or choose animations ==*/ + #define RGBLIGHT_EFFECT_BREATHING + #define RGBLIGHT_EFFECT_RAINBOW_MOOD + #define RGBLIGHT_EFFECT_RAINBOW_SWIRL + #define RGBLIGHT_EFFECT_SNAKE + #define RGBLIGHT_EFFECT_KNIGHT + #define RGBLIGHT_EFFECT_CHRISTMAS + #define RGBLIGHT_EFFECT_STATIC_GRADIENT + #define RGBLIGHT_EFFECT_RGB_TEST + #define RGBLIGHT_EFFECT_ALTERNATING +#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) diff --git a/keyboards/sentraq/number_pad/info.json b/keyboards/sentraq/number_pad/info.json new file mode 100644 index 00000000000..1c6e3f53ca8 --- /dev/null +++ b/keyboards/sentraq/number_pad/info.json @@ -0,0 +1,29 @@ +{ + "keyboard_name": "Sentraq Number Pad", + "maintainer": "qmk", + "url": "https://sentraq.com/collections/kits/products/number-pad-rgb-kit", + "width": 4, + "height": 5, + "layouts": { + "LAYOUT_numpad_5x4": { + "keycount": 17, + "layout": [ + {"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, + {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1, "h":2}, + {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, + {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3, "h":2}, + {"x":0, "y":4, "w":2}, {"x":2, "y":4} + ] + }, + "LAYOUT_ortho_5x4": { + "keycount": 20, + "layout": [ + {"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, + {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, + {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, + {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, + {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4} + ] + } + } +} diff --git a/keyboards/sentraq/number_pad/keymaps/default/keymap.c b/keyboards/sentraq/number_pad/keymaps/default/keymap.c new file mode 100644 index 00000000000..90c806a917b --- /dev/null +++ b/keyboards/sentraq/number_pad/keymaps/default/keymap.c @@ -0,0 +1,105 @@ +/* Copyright 2019 QMK Community + * + * 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 . + */ +#include QMK_KEYBOARD_H + +#define _BL 0 +#define _FN 1 + +// Defines the keycodes used by our macros in process_record_user. +// Disabled as it isn't used in this keymap, but available for modification. +// enum custom_keycodes { +// QMKBEST = SAFE_RANGE, +// QMKURL +// }; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BL] = LAYOUT_numpad_5x4( + /* Base Layer: Number Pad + * ,---------------. + * |FN | / | * | - | + * |---+---+---|---| + * | 7 | 8 | 9 | | + * |---+---+---| + | + * | 4 | 5 | 6 | | + * |---+---+---|---| + * | 1 | 2 | 3 | | + * |---+---+---|Ent| + * | 0 | . | | + * `---------------' + */ + MO(_FN), KC_PSLS, KC_PAST, KC_PMNS, \ + KC_P7, KC_P8, KC_P9, \ + KC_P4, KC_P5, KC_P6, KC_PPLS, \ + KC_P1, KC_P2, KC_P3, \ + KC_P0, KC_PDOT, KC_PENT + ), + /* Function Layer: RGB Controls and Numlock + * ,---------------. + * |FN |TOG|M+ |M- | Mode + * |---+---+---|---| + * | |H- |H+ | | Hue + * |---+---+---| | + * | |S- |S+ | | Saturation + * |---+---+---|---| + * | |B- |B+ |NUM| Brightness + * |---+---+---| | + * | | |LCK| + * `---------------' + */ + [_FN] = LAYOUT_numpad_5x4( + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD, \ + KC_NO, RGB_HUD, RGB_HUI, \ + KC_NO, RGB_SAD, RGB_SAI, KC_NO, \ + KC_NO, RGB_VAD, RGB_VAI, \ + KC_NO, KC_NO, KC_NLCK + ), +}; + +// Handles macros for keycodes defined above. +// Disabled as it isn't used in this keymap, but available for modification. +// bool process_record_user(uint16_t keycode, keyrecord_t *record) { +// switch (keycode) { +// case QMKBEST: +// if (record->event.pressed) { +// // when keycode QMKBEST is pressed +// SEND_STRING("QMK is the best thing ever!"); +// } else { +// // when keycode QMKBEST is released +// } +// break; +// case QMKURL: +// if (record->event.pressed) { +// // when keycode QMKURL is pressed +// SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER)); +// } else { +// // when keycode QMKURL is released +// } +// break; +// } +// return true; +// } + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +void led_set_user(uint8_t usb_led) { + +} diff --git a/keyboards/sentraq/number_pad/keymaps/default/readme.md b/keyboards/sentraq/number_pad/keymaps/default/readme.md new file mode 100644 index 00000000000..a2c0e756762 --- /dev/null +++ b/keyboards/sentraq/number_pad/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Sentraq Number Pad RGB DIY Kit diff --git a/keyboards/sentraq/number_pad/number_pad.c b/keyboards/sentraq/number_pad/number_pad.c new file mode 100644 index 00000000000..8c39efac58c --- /dev/null +++ b/keyboards/sentraq/number_pad/number_pad.c @@ -0,0 +1,43 @@ +/* Copyright 2019 QMK Community + * + * 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 . + */ +#include "number_pad.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/sentraq/number_pad/number_pad.h b/keyboards/sentraq/number_pad/number_pad.h new file mode 100644 index 00000000000..05bcd527cd0 --- /dev/null +++ b/keyboards/sentraq/number_pad/number_pad.h @@ -0,0 +1,56 @@ +/* Copyright 2019 QMK Community + * + * 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 . + */ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_numpad_5x4( \ + K00, K01, K02, K03, \ + K10, K11, K12, \ + K20, K21, K22, K23, \ + K30, K31, K32, \ + K40, K42, K43 \ +) \ +{ \ + { K00, K01, K02, K03 }, \ + { K10, K11, K12, KC_NO }, \ + { K20, K21, K22, K23 }, \ + { K30, K31, K32, KC_NO }, \ + { K40, KC_NO, K42, K43 } \ +} + +#define LAYOUT_ortho_5x4( \ + K00, K01, K02, K03, \ + K10, K11, K12, K13, \ + K20, K21, K22, K23, \ + K30, K31, K32, K33, \ + K40, K41, K42, K43 \ +) \ +{ \ + { K00, K01, K02, K03 }, \ + { K10, K11, K12, K13 }, \ + { K20, K21, K22, K23 }, \ + { K30, K31, K32, K33 }, \ + { K40, K41, K42, K43 } \ +} diff --git a/keyboards/sentraq/number_pad/readme.md b/keyboards/sentraq/number_pad/readme.md new file mode 100644 index 00000000000..ce9bfe4357c --- /dev/null +++ b/keyboards/sentraq/number_pad/readme.md @@ -0,0 +1,13 @@ +# Sentraq Number Pad RGB DIY Kit + +Sentraq Number Pad RGB DIY Kit. + +Keyboard Maintainer: QMK Community\ +Hardware Supported: Sentraq Number Pad PCB\ +Hardware Availability: [Sentraq](https://sentraq.com/collections/kits/products/number-pad-rgb-kit) + +Make example for this keyboard (after setting up your build environment): + + make sentraq/number_pad:default:dfu + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/sentraq/number_pad/rules.mk b/keyboards/sentraq/number_pad/rules.mk new file mode 100644 index 00000000000..8678b7f886e --- /dev/null +++ b/keyboards/sentraq/number_pad/rules.mk @@ -0,0 +1,80 @@ +# MCU name +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 + + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +BOOTLOADER = atmel-dfu + + +# If you don't know the bootloader type, then you can specify the +# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# change yes to no to disable +# +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 = 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 = yes # Enable keyboard backlight functionality on B7 by default +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400) From d26e73756ff47cf6025c474917a41581494141c7 Mon Sep 17 00:00:00 2001 From: Nicholas Shaff Date: Mon, 4 Feb 2019 08:15:32 -0600 Subject: [PATCH 47/55] Fixed the key_count attribute name and numpad_5x4 layout in the info.json. (#5049) --- keyboards/sentraq/number_pad/info.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/keyboards/sentraq/number_pad/info.json b/keyboards/sentraq/number_pad/info.json index 1c6e3f53ca8..3e17835d590 100644 --- a/keyboards/sentraq/number_pad/info.json +++ b/keyboards/sentraq/number_pad/info.json @@ -6,17 +6,17 @@ "height": 5, "layouts": { "LAYOUT_numpad_5x4": { - "keycount": 17, + "key_count": 17, "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, - {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1, "h":2}, - {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, - {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3, "h":2}, - {"x":0, "y":4, "w":2}, {"x":2, "y":4} + {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, + {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":1, "h":2}, + {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, + {"x":0, "y":4, "w":2}, {"x":2, "y":4}, {"x":3, "y":3, "h":2} ] }, "LAYOUT_ortho_5x4": { - "keycount": 20, + "key_count": 20, "layout": [ {"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, From b49dbf9b19264e7558253a34ca737dcd301487b1 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Mon, 4 Feb 2019 10:29:04 -0800 Subject: [PATCH 48/55] [Keyboard] Create KBDFans directory (#5025) * move over kbd19x into the kbdfans directory * move over kbd4x into the kbdfans directory * move kbd66 into the kbdfans directory * move the kbd6x into the kbdfans directory * move kbd8x into the kbdfans directory * move kbd75 into the kbdfans directory * move kbd67 into kbdfans directory * add a fairly sparse readme for kbdfans directory * update make instructions for keyboards and add the Complete Newbs Guide to readmes that was missing it * get kbd75 compiling again * remove repetitive #defines of KC_NO and KC_TRNS when QMK_KEYBOARD_H is already included in KBD75 * add links to kbdfans readme * fix some readme formatting * there is no reason to have two different keymaps with such a small difference, condensing to one * turning on backlights by default * enable backlight by default for kbd66 * noticed that the kbd75 had caps lock led code in every keymap. Moved it out to the keyboard.c so everyone can partake. * Update keyboards/kbdfans/kbd66/readme.md Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com> * update readme link ordering --- keyboards/kbd75/rev1/rev1.c | 1 - keyboards/kbd75/rev2/rev2.c | 1 - keyboards/kbd75/rules.mk | 1 - .../keymaps/default_backlighting/rules.mk | 17 --------- keyboards/{ => kbdfans}/kbd19x/config.h | 0 keyboards/{ => kbdfans}/kbd19x/info.json | 0 keyboards/{ => kbdfans}/kbd19x/kbd19x.c | 0 keyboards/{ => kbdfans}/kbd19x/kbd19x.h | 0 .../kbd19x/keymaps/default/config.h | 0 .../kbd19x/keymaps/default/keymap.c | 0 .../kbd19x/keymaps/default/readme.md | 0 keyboards/{ => kbdfans}/kbd19x/readme.md | 4 +-- keyboards/{ => kbdfans}/kbd19x/rules.mk | 0 keyboards/{ => kbdfans}/kbd4x/config.h | 0 keyboards/{ => kbdfans}/kbd4x/info.json | 0 keyboards/{ => kbdfans}/kbd4x/kbd4x.c | 0 keyboards/{ => kbdfans}/kbd4x/kbd4x.h | 0 .../kbd4x/keymaps/default/config.h | 0 .../kbd4x/keymaps/default/keymap.c | 0 .../kbd4x/keymaps/default/readme.md | 0 keyboards/{ => kbdfans}/kbd4x/readme.md | 2 +- keyboards/{ => kbdfans}/kbd4x/rules.mk | 0 keyboards/{ => kbdfans}/kbd66/config.h | 0 keyboards/{ => kbdfans}/kbd66/info.json | 0 keyboards/{ => kbdfans}/kbd66/kbd66.c | 0 keyboards/{ => kbdfans}/kbd66/kbd66.h | 0 .../{ => kbdfans}/kbd66/keymaps/ansi/config.h | 0 .../{ => kbdfans}/kbd66/keymaps/ansi/keymap.c | 0 .../kbd66/keymaps/ansi/readme.md | 0 .../kbd66/keymaps/default/config.h | 0 .../kbd66/keymaps/default/keymap.c | 0 .../kbd66/keymaps/default/readme.md | 0 .../{ => kbdfans}/kbd66/keymaps/iso/config.h | 0 .../{ => kbdfans}/kbd66/keymaps/iso/keymap.c | 0 .../{ => kbdfans}/kbd66/keymaps/iso/readme.md | 0 .../kbd66/keymaps/maartenwut/config.h | 0 .../kbd66/keymaps/maartenwut/keymap.c | 0 .../kbd66/keymaps/maartenwut/readme.md | 0 keyboards/{ => kbdfans}/kbd66/readme.md | 4 +-- keyboards/{ => kbdfans}/kbd66/rules.mk | 2 +- .../{ => kbdfans}/kbd67/hotswap/config.h | 0 .../{ => kbdfans}/kbd67/hotswap/hotswap.c | 0 .../{ => kbdfans}/kbd67/hotswap/hotswap.h | 0 .../{ => kbdfans}/kbd67/hotswap/info.json | 0 .../kbd67/hotswap/keymaps/default/config.h | 0 .../kbd67/hotswap/keymaps/default/keymap.c | 0 .../kbd67/hotswap/keymaps/default/readme.md | 0 .../kbd67/hotswap/keymaps/zunger/config.h | 0 .../kbd67/hotswap/keymaps/zunger/keymap.c | 0 .../kbd67/hotswap/keymaps/zunger/readme.md | 0 .../kbd67/hotswap/keymaps/zunger/rules.mk | 0 .../{ => kbdfans}/kbd67/hotswap/readme.md | 0 .../{ => kbdfans}/kbd67/hotswap/rules.mk | 0 keyboards/{ => kbdfans}/kbd67/readme.md | 4 +-- keyboards/{ => kbdfans}/kbd67/rev1/config.h | 0 keyboards/{ => kbdfans}/kbd67/rev1/info.json | 0 .../kbd67/rev1/keymaps/default/config.h | 0 .../kbd67/rev1/keymaps/default/keymap.c | 0 .../kbd67/rev1/keymaps/default/readme.md | 0 keyboards/{ => kbdfans}/kbd67/rev1/readme.md | 0 keyboards/{ => kbdfans}/kbd67/rev1/rev1.c | 0 keyboards/{ => kbdfans}/kbd67/rev1/rev1.h | 0 keyboards/{ => kbdfans}/kbd67/rev1/rules.mk | 0 keyboards/{ => kbdfans}/kbd6x/config.h | 0 keyboards/{ => kbdfans}/kbd6x/info.json | 0 keyboards/{ => kbdfans}/kbd6x/kbd6x.c | 0 keyboards/{ => kbdfans}/kbd6x/kbd6x.h | 0 .../kbd6x/keymaps/default/keymap.c | 0 .../kbd6x/keymaps/default/readme.md | 0 .../keymaps/hhkb-default-improved/keymap.c | 0 .../keymaps/hhkb-default-improved/readme.md | 0 .../kbd6x/keymaps/hhkb-default/keymap.c | 0 .../kbd6x/keymaps/hhkb-default/readme.md | 0 .../kbd6x/keymaps/konstantin/config.h | 0 .../kbd6x/keymaps/konstantin/keymap.c | 0 .../kbd6x/keymaps/konstantin/rules.mk | 0 .../{ => kbdfans}/kbd6x/keymaps/othi/config.h | 0 .../{ => kbdfans}/kbd6x/keymaps/othi/keymap.c | 0 .../kbd6x/keymaps/othi/readme.md | 0 .../{ => kbdfans}/kbd6x/keymaps/othi/rules.mk | 0 keyboards/{ => kbdfans}/kbd6x/readme.md | 4 +-- keyboards/{ => kbdfans}/kbd6x/rules.mk | 0 keyboards/{ => kbdfans}/kbd75/config.h | 0 keyboards/{ => kbdfans}/kbd75/kbd75.c | 0 keyboards/{ => kbdfans}/kbd75/kbd75.h | 4 +-- .../{ => kbdfans}/kbd75/keymaps/adit/keymap.c | 36 ------------------- .../kbd75/keymaps/default/keymap.c | 11 ------ .../kbd75/keymaps/edulpn/README.md | 0 .../kbd75/keymaps/edulpn/keymap.c | 0 .../{ => kbdfans}/kbd75/keymaps/iso/keymap.c | 10 ------ .../{ => kbdfans}/kbd75/keymaps/smt/keymap.c | 4 --- .../kbd75/keymaps/spacemanspiff/keymap.c | 9 ----- .../kbd75/keymaps/spacemanspiff/readme.md | 0 keyboards/{ => kbdfans}/kbd75/readme.md | 11 +++--- keyboards/{ => kbdfans}/kbd75/rev1/info.json | 0 keyboards/kbdfans/kbd75/rev1/rev1.c | 12 +++++++ keyboards/{ => kbdfans}/kbd75/rev1/rev1.h | 0 keyboards/{ => kbdfans}/kbd75/rev1/rules.mk | 0 keyboards/{ => kbdfans}/kbd75/rev2/info.json | 0 keyboards/kbdfans/kbd75/rev2/rev2.c | 12 +++++++ keyboards/{ => kbdfans}/kbd75/rev2/rev2.h | 0 keyboards/{ => kbdfans}/kbd75/rev2/rules.mk | 0 keyboards/kbdfans/kbd75/rules.mk | 1 + keyboards/{ => kbdfans}/kbd8x/config.h | 0 keyboards/{ => kbdfans}/kbd8x/info.json | 0 keyboards/{ => kbdfans}/kbd8x/kbd8x.c | 0 keyboards/{ => kbdfans}/kbd8x/kbd8x.h | 0 .../kbd8x/keymaps/default/config.h | 0 .../kbd8x/keymaps/default/keymap.c | 8 +++++ .../kbd8x/keymaps/default/readme.md | 0 .../keymaps/default_backlighting/config.h | 0 .../keymaps/default_backlighting/keymap.c | 0 .../keymaps/default_backlighting/readme.md | 0 .../keymaps/default_backlighting/rules.mk | 1 + keyboards/{ => kbdfans}/kbd8x/readme.md | 6 ++-- keyboards/{ => kbdfans}/kbd8x/rules.mk | 4 +-- keyboards/kbdfans/readme.md | 17 +++++++++ 117 files changed, 73 insertions(+), 113 deletions(-) delete mode 100644 keyboards/kbd75/rev1/rev1.c delete mode 100644 keyboards/kbd75/rev2/rev2.c delete mode 100644 keyboards/kbd75/rules.mk delete mode 100644 keyboards/kbd8x/keymaps/default_backlighting/rules.mk rename keyboards/{ => kbdfans}/kbd19x/config.h (100%) rename keyboards/{ => kbdfans}/kbd19x/info.json (100%) rename keyboards/{ => kbdfans}/kbd19x/kbd19x.c (100%) rename keyboards/{ => kbdfans}/kbd19x/kbd19x.h (100%) rename keyboards/{ => kbdfans}/kbd19x/keymaps/default/config.h (100%) rename keyboards/{ => kbdfans}/kbd19x/keymaps/default/keymap.c (100%) rename keyboards/{ => kbdfans}/kbd19x/keymaps/default/readme.md (100%) rename keyboards/{ => kbdfans}/kbd19x/readme.md (94%) rename keyboards/{ => kbdfans}/kbd19x/rules.mk (100%) rename keyboards/{ => kbdfans}/kbd4x/config.h (100%) rename keyboards/{ => kbdfans}/kbd4x/info.json (100%) rename keyboards/{ => kbdfans}/kbd4x/kbd4x.c (100%) rename keyboards/{ => kbdfans}/kbd4x/kbd4x.h (100%) rename keyboards/{ => kbdfans}/kbd4x/keymaps/default/config.h (100%) rename keyboards/{ => kbdfans}/kbd4x/keymaps/default/keymap.c (100%) rename keyboards/{ => kbdfans}/kbd4x/keymaps/default/readme.md (100%) rename keyboards/{ => kbdfans}/kbd4x/readme.md (96%) rename keyboards/{ => kbdfans}/kbd4x/rules.mk (100%) rename keyboards/{ => kbdfans}/kbd66/config.h (100%) rename keyboards/{ => kbdfans}/kbd66/info.json (100%) rename keyboards/{ => kbdfans}/kbd66/kbd66.c (100%) rename keyboards/{ => kbdfans}/kbd66/kbd66.h (100%) rename keyboards/{ => kbdfans}/kbd66/keymaps/ansi/config.h (100%) rename keyboards/{ => kbdfans}/kbd66/keymaps/ansi/keymap.c (100%) rename keyboards/{ => kbdfans}/kbd66/keymaps/ansi/readme.md (100%) rename keyboards/{ => kbdfans}/kbd66/keymaps/default/config.h (100%) rename keyboards/{ => kbdfans}/kbd66/keymaps/default/keymap.c (100%) rename keyboards/{ => kbdfans}/kbd66/keymaps/default/readme.md (100%) rename keyboards/{ => kbdfans}/kbd66/keymaps/iso/config.h (100%) rename keyboards/{ => kbdfans}/kbd66/keymaps/iso/keymap.c (100%) rename keyboards/{ => kbdfans}/kbd66/keymaps/iso/readme.md (100%) rename keyboards/{ => kbdfans}/kbd66/keymaps/maartenwut/config.h (100%) rename keyboards/{ => kbdfans}/kbd66/keymaps/maartenwut/keymap.c (100%) rename keyboards/{ => kbdfans}/kbd66/keymaps/maartenwut/readme.md (100%) rename keyboards/{ => kbdfans}/kbd66/readme.md (57%) rename keyboards/{ => kbdfans}/kbd66/rules.mk (97%) rename keyboards/{ => kbdfans}/kbd67/hotswap/config.h (100%) rename keyboards/{ => kbdfans}/kbd67/hotswap/hotswap.c (100%) rename keyboards/{ => kbdfans}/kbd67/hotswap/hotswap.h (100%) rename keyboards/{ => kbdfans}/kbd67/hotswap/info.json (100%) rename keyboards/{ => kbdfans}/kbd67/hotswap/keymaps/default/config.h (100%) rename keyboards/{ => kbdfans}/kbd67/hotswap/keymaps/default/keymap.c (100%) rename keyboards/{ => kbdfans}/kbd67/hotswap/keymaps/default/readme.md (100%) rename keyboards/{ => kbdfans}/kbd67/hotswap/keymaps/zunger/config.h (100%) rename keyboards/{ => kbdfans}/kbd67/hotswap/keymaps/zunger/keymap.c (100%) rename keyboards/{ => kbdfans}/kbd67/hotswap/keymaps/zunger/readme.md (100%) rename keyboards/{ => kbdfans}/kbd67/hotswap/keymaps/zunger/rules.mk (100%) rename keyboards/{ => kbdfans}/kbd67/hotswap/readme.md (100%) rename keyboards/{ => kbdfans}/kbd67/hotswap/rules.mk (100%) rename keyboards/{ => kbdfans}/kbd67/readme.md (91%) rename keyboards/{ => kbdfans}/kbd67/rev1/config.h (100%) rename keyboards/{ => kbdfans}/kbd67/rev1/info.json (100%) rename keyboards/{ => kbdfans}/kbd67/rev1/keymaps/default/config.h (100%) rename keyboards/{ => kbdfans}/kbd67/rev1/keymaps/default/keymap.c (100%) rename keyboards/{ => kbdfans}/kbd67/rev1/keymaps/default/readme.md (100%) rename keyboards/{ => kbdfans}/kbd67/rev1/readme.md (100%) rename keyboards/{ => kbdfans}/kbd67/rev1/rev1.c (100%) rename keyboards/{ => kbdfans}/kbd67/rev1/rev1.h (100%) rename keyboards/{ => kbdfans}/kbd67/rev1/rules.mk (100%) rename keyboards/{ => kbdfans}/kbd6x/config.h (100%) rename keyboards/{ => kbdfans}/kbd6x/info.json (100%) rename keyboards/{ => kbdfans}/kbd6x/kbd6x.c (100%) rename keyboards/{ => kbdfans}/kbd6x/kbd6x.h (100%) rename keyboards/{ => kbdfans}/kbd6x/keymaps/default/keymap.c (100%) rename keyboards/{ => kbdfans}/kbd6x/keymaps/default/readme.md (100%) rename keyboards/{ => kbdfans}/kbd6x/keymaps/hhkb-default-improved/keymap.c (100%) rename keyboards/{ => kbdfans}/kbd6x/keymaps/hhkb-default-improved/readme.md (100%) rename keyboards/{ => kbdfans}/kbd6x/keymaps/hhkb-default/keymap.c (100%) rename keyboards/{ => kbdfans}/kbd6x/keymaps/hhkb-default/readme.md (100%) rename keyboards/{ => kbdfans}/kbd6x/keymaps/konstantin/config.h (100%) rename keyboards/{ => kbdfans}/kbd6x/keymaps/konstantin/keymap.c (100%) rename keyboards/{ => kbdfans}/kbd6x/keymaps/konstantin/rules.mk (100%) rename keyboards/{ => kbdfans}/kbd6x/keymaps/othi/config.h (100%) rename keyboards/{ => kbdfans}/kbd6x/keymaps/othi/keymap.c (100%) rename keyboards/{ => kbdfans}/kbd6x/keymaps/othi/readme.md (100%) rename keyboards/{ => kbdfans}/kbd6x/keymaps/othi/rules.mk (100%) rename keyboards/{ => kbdfans}/kbd6x/readme.md (51%) rename keyboards/{ => kbdfans}/kbd6x/rules.mk (100%) rename keyboards/{ => kbdfans}/kbd75/config.h (100%) rename keyboards/{ => kbdfans}/kbd75/kbd75.c (100%) rename keyboards/{ => kbdfans}/kbd75/kbd75.h (68%) rename keyboards/{ => kbdfans}/kbd75/keymaps/adit/keymap.c (88%) rename keyboards/{ => kbdfans}/kbd75/keymaps/default/keymap.c (90%) rename keyboards/{ => kbdfans}/kbd75/keymaps/edulpn/README.md (100%) rename keyboards/{ => kbdfans}/kbd75/keymaps/edulpn/keymap.c (100%) rename keyboards/{ => kbdfans}/kbd75/keymaps/iso/keymap.c (91%) rename keyboards/{ => kbdfans}/kbd75/keymaps/smt/keymap.c (99%) rename keyboards/{ => kbdfans}/kbd75/keymaps/spacemanspiff/keymap.c (95%) rename keyboards/{ => kbdfans}/kbd75/keymaps/spacemanspiff/readme.md (100%) rename keyboards/{ => kbdfans}/kbd75/readme.md (58%) rename keyboards/{ => kbdfans}/kbd75/rev1/info.json (100%) create mode 100644 keyboards/kbdfans/kbd75/rev1/rev1.c rename keyboards/{ => kbdfans}/kbd75/rev1/rev1.h (100%) rename keyboards/{ => kbdfans}/kbd75/rev1/rules.mk (100%) rename keyboards/{ => kbdfans}/kbd75/rev2/info.json (100%) create mode 100644 keyboards/kbdfans/kbd75/rev2/rev2.c rename keyboards/{ => kbdfans}/kbd75/rev2/rev2.h (100%) rename keyboards/{ => kbdfans}/kbd75/rev2/rules.mk (100%) create mode 100644 keyboards/kbdfans/kbd75/rules.mk rename keyboards/{ => kbdfans}/kbd8x/config.h (100%) rename keyboards/{ => kbdfans}/kbd8x/info.json (100%) rename keyboards/{ => kbdfans}/kbd8x/kbd8x.c (100%) rename keyboards/{ => kbdfans}/kbd8x/kbd8x.h (100%) rename keyboards/{ => kbdfans}/kbd8x/keymaps/default/config.h (100%) rename keyboards/{ => kbdfans}/kbd8x/keymaps/default/keymap.c (69%) rename keyboards/{ => kbdfans}/kbd8x/keymaps/default/readme.md (100%) rename keyboards/{ => kbdfans}/kbd8x/keymaps/default_backlighting/config.h (100%) rename keyboards/{ => kbdfans}/kbd8x/keymaps/default_backlighting/keymap.c (100%) rename keyboards/{ => kbdfans}/kbd8x/keymaps/default_backlighting/readme.md (100%) create mode 100644 keyboards/kbdfans/kbd8x/keymaps/default_backlighting/rules.mk rename keyboards/{ => kbdfans}/kbd8x/readme.md (51%) rename keyboards/{ => kbdfans}/kbd8x/rules.mk (95%) create mode 100644 keyboards/kbdfans/readme.md diff --git a/keyboards/kbd75/rev1/rev1.c b/keyboards/kbd75/rev1/rev1.c deleted file mode 100644 index 520a869e57b..00000000000 --- a/keyboards/kbd75/rev1/rev1.c +++ /dev/null @@ -1 +0,0 @@ -#include "rev1.h" diff --git a/keyboards/kbd75/rev2/rev2.c b/keyboards/kbd75/rev2/rev2.c deleted file mode 100644 index b1af81707d2..00000000000 --- a/keyboards/kbd75/rev2/rev2.c +++ /dev/null @@ -1 +0,0 @@ -#include "rev2.h" diff --git a/keyboards/kbd75/rules.mk b/keyboards/kbd75/rules.mk deleted file mode 100644 index ae49271ab36..00000000000 --- a/keyboards/kbd75/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kbd75/rev1 diff --git a/keyboards/kbd8x/keymaps/default_backlighting/rules.mk b/keyboards/kbd8x/keymaps/default_backlighting/rules.mk deleted file mode 100644 index 07b9f81fd05..00000000000 --- a/keyboards/kbd8x/keymaps/default_backlighting/rules.mk +++ /dev/null @@ -1,17 +0,0 @@ -#Build Options - -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 = 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 = yes # Enable keyboard backlight functionality on B7 by default -MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches diff --git a/keyboards/kbd19x/config.h b/keyboards/kbdfans/kbd19x/config.h similarity index 100% rename from keyboards/kbd19x/config.h rename to keyboards/kbdfans/kbd19x/config.h diff --git a/keyboards/kbd19x/info.json b/keyboards/kbdfans/kbd19x/info.json similarity index 100% rename from keyboards/kbd19x/info.json rename to keyboards/kbdfans/kbd19x/info.json diff --git a/keyboards/kbd19x/kbd19x.c b/keyboards/kbdfans/kbd19x/kbd19x.c similarity index 100% rename from keyboards/kbd19x/kbd19x.c rename to keyboards/kbdfans/kbd19x/kbd19x.c diff --git a/keyboards/kbd19x/kbd19x.h b/keyboards/kbdfans/kbd19x/kbd19x.h similarity index 100% rename from keyboards/kbd19x/kbd19x.h rename to keyboards/kbdfans/kbd19x/kbd19x.h diff --git a/keyboards/kbd19x/keymaps/default/config.h b/keyboards/kbdfans/kbd19x/keymaps/default/config.h similarity index 100% rename from keyboards/kbd19x/keymaps/default/config.h rename to keyboards/kbdfans/kbd19x/keymaps/default/config.h diff --git a/keyboards/kbd19x/keymaps/default/keymap.c b/keyboards/kbdfans/kbd19x/keymaps/default/keymap.c similarity index 100% rename from keyboards/kbd19x/keymaps/default/keymap.c rename to keyboards/kbdfans/kbd19x/keymaps/default/keymap.c diff --git a/keyboards/kbd19x/keymaps/default/readme.md b/keyboards/kbdfans/kbd19x/keymaps/default/readme.md similarity index 100% rename from keyboards/kbd19x/keymaps/default/readme.md rename to keyboards/kbdfans/kbd19x/keymaps/default/readme.md diff --git a/keyboards/kbd19x/readme.md b/keyboards/kbdfans/kbd19x/readme.md similarity index 94% rename from keyboards/kbd19x/readme.md rename to keyboards/kbdfans/kbd19x/readme.md index ee4969b00d5..80b84b5f75f 100644 --- a/keyboards/kbd19x/readme.md +++ b/keyboards/kbdfans/kbd19x/readme.md @@ -1,4 +1,4 @@ -# kbd19x +# KBD19x ![kbd19x](https://i.imgur.com/0hWTEnh.jpg) @@ -14,6 +14,6 @@ Hardware Availability: [KBDfans](https://kbdfans.cn) Make example for this keyboard (after setting up your build environment): - make kbd19x:default + make kbdfans/kbd19x:default See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/kbd19x/rules.mk b/keyboards/kbdfans/kbd19x/rules.mk similarity index 100% rename from keyboards/kbd19x/rules.mk rename to keyboards/kbdfans/kbd19x/rules.mk diff --git a/keyboards/kbd4x/config.h b/keyboards/kbdfans/kbd4x/config.h similarity index 100% rename from keyboards/kbd4x/config.h rename to keyboards/kbdfans/kbd4x/config.h diff --git a/keyboards/kbd4x/info.json b/keyboards/kbdfans/kbd4x/info.json similarity index 100% rename from keyboards/kbd4x/info.json rename to keyboards/kbdfans/kbd4x/info.json diff --git a/keyboards/kbd4x/kbd4x.c b/keyboards/kbdfans/kbd4x/kbd4x.c similarity index 100% rename from keyboards/kbd4x/kbd4x.c rename to keyboards/kbdfans/kbd4x/kbd4x.c diff --git a/keyboards/kbd4x/kbd4x.h b/keyboards/kbdfans/kbd4x/kbd4x.h similarity index 100% rename from keyboards/kbd4x/kbd4x.h rename to keyboards/kbdfans/kbd4x/kbd4x.h diff --git a/keyboards/kbd4x/keymaps/default/config.h b/keyboards/kbdfans/kbd4x/keymaps/default/config.h similarity index 100% rename from keyboards/kbd4x/keymaps/default/config.h rename to keyboards/kbdfans/kbd4x/keymaps/default/config.h diff --git a/keyboards/kbd4x/keymaps/default/keymap.c b/keyboards/kbdfans/kbd4x/keymaps/default/keymap.c similarity index 100% rename from keyboards/kbd4x/keymaps/default/keymap.c rename to keyboards/kbdfans/kbd4x/keymaps/default/keymap.c diff --git a/keyboards/kbd4x/keymaps/default/readme.md b/keyboards/kbdfans/kbd4x/keymaps/default/readme.md similarity index 100% rename from keyboards/kbd4x/keymaps/default/readme.md rename to keyboards/kbdfans/kbd4x/keymaps/default/readme.md diff --git a/keyboards/kbd4x/readme.md b/keyboards/kbdfans/kbd4x/readme.md similarity index 96% rename from keyboards/kbd4x/readme.md rename to keyboards/kbdfans/kbd4x/readme.md index 42dc450248c..2e2a29290fa 100644 --- a/keyboards/kbd4x/readme.md +++ b/keyboards/kbdfans/kbd4x/readme.md @@ -10,6 +10,6 @@ Hardware Availability: https://kbdfans.cn/collections/diy-kit/products/kbd4x-cus Make example for this keyboard (after setting up your build environment): - make kbd4x:default + make kbdfans/kbd4x:default See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/kbd4x/rules.mk b/keyboards/kbdfans/kbd4x/rules.mk similarity index 100% rename from keyboards/kbd4x/rules.mk rename to keyboards/kbdfans/kbd4x/rules.mk diff --git a/keyboards/kbd66/config.h b/keyboards/kbdfans/kbd66/config.h similarity index 100% rename from keyboards/kbd66/config.h rename to keyboards/kbdfans/kbd66/config.h diff --git a/keyboards/kbd66/info.json b/keyboards/kbdfans/kbd66/info.json similarity index 100% rename from keyboards/kbd66/info.json rename to keyboards/kbdfans/kbd66/info.json diff --git a/keyboards/kbd66/kbd66.c b/keyboards/kbdfans/kbd66/kbd66.c similarity index 100% rename from keyboards/kbd66/kbd66.c rename to keyboards/kbdfans/kbd66/kbd66.c diff --git a/keyboards/kbd66/kbd66.h b/keyboards/kbdfans/kbd66/kbd66.h similarity index 100% rename from keyboards/kbd66/kbd66.h rename to keyboards/kbdfans/kbd66/kbd66.h diff --git a/keyboards/kbd66/keymaps/ansi/config.h b/keyboards/kbdfans/kbd66/keymaps/ansi/config.h similarity index 100% rename from keyboards/kbd66/keymaps/ansi/config.h rename to keyboards/kbdfans/kbd66/keymaps/ansi/config.h diff --git a/keyboards/kbd66/keymaps/ansi/keymap.c b/keyboards/kbdfans/kbd66/keymaps/ansi/keymap.c similarity index 100% rename from keyboards/kbd66/keymaps/ansi/keymap.c rename to keyboards/kbdfans/kbd66/keymaps/ansi/keymap.c diff --git a/keyboards/kbd66/keymaps/ansi/readme.md b/keyboards/kbdfans/kbd66/keymaps/ansi/readme.md similarity index 100% rename from keyboards/kbd66/keymaps/ansi/readme.md rename to keyboards/kbdfans/kbd66/keymaps/ansi/readme.md diff --git a/keyboards/kbd66/keymaps/default/config.h b/keyboards/kbdfans/kbd66/keymaps/default/config.h similarity index 100% rename from keyboards/kbd66/keymaps/default/config.h rename to keyboards/kbdfans/kbd66/keymaps/default/config.h diff --git a/keyboards/kbd66/keymaps/default/keymap.c b/keyboards/kbdfans/kbd66/keymaps/default/keymap.c similarity index 100% rename from keyboards/kbd66/keymaps/default/keymap.c rename to keyboards/kbdfans/kbd66/keymaps/default/keymap.c diff --git a/keyboards/kbd66/keymaps/default/readme.md b/keyboards/kbdfans/kbd66/keymaps/default/readme.md similarity index 100% rename from keyboards/kbd66/keymaps/default/readme.md rename to keyboards/kbdfans/kbd66/keymaps/default/readme.md diff --git a/keyboards/kbd66/keymaps/iso/config.h b/keyboards/kbdfans/kbd66/keymaps/iso/config.h similarity index 100% rename from keyboards/kbd66/keymaps/iso/config.h rename to keyboards/kbdfans/kbd66/keymaps/iso/config.h diff --git a/keyboards/kbd66/keymaps/iso/keymap.c b/keyboards/kbdfans/kbd66/keymaps/iso/keymap.c similarity index 100% rename from keyboards/kbd66/keymaps/iso/keymap.c rename to keyboards/kbdfans/kbd66/keymaps/iso/keymap.c diff --git a/keyboards/kbd66/keymaps/iso/readme.md b/keyboards/kbdfans/kbd66/keymaps/iso/readme.md similarity index 100% rename from keyboards/kbd66/keymaps/iso/readme.md rename to keyboards/kbdfans/kbd66/keymaps/iso/readme.md diff --git a/keyboards/kbd66/keymaps/maartenwut/config.h b/keyboards/kbdfans/kbd66/keymaps/maartenwut/config.h similarity index 100% rename from keyboards/kbd66/keymaps/maartenwut/config.h rename to keyboards/kbdfans/kbd66/keymaps/maartenwut/config.h diff --git a/keyboards/kbd66/keymaps/maartenwut/keymap.c b/keyboards/kbdfans/kbd66/keymaps/maartenwut/keymap.c similarity index 100% rename from keyboards/kbd66/keymaps/maartenwut/keymap.c rename to keyboards/kbdfans/kbd66/keymaps/maartenwut/keymap.c diff --git a/keyboards/kbd66/keymaps/maartenwut/readme.md b/keyboards/kbdfans/kbd66/keymaps/maartenwut/readme.md similarity index 100% rename from keyboards/kbd66/keymaps/maartenwut/readme.md rename to keyboards/kbdfans/kbd66/keymaps/maartenwut/readme.md diff --git a/keyboards/kbd66/readme.md b/keyboards/kbdfans/kbd66/readme.md similarity index 57% rename from keyboards/kbd66/readme.md rename to keyboards/kbdfans/kbd66/readme.md index 2ac5555711d..a2e5de0157f 100644 --- a/keyboards/kbd66/readme.md +++ b/keyboards/kbdfans/kbd66/readme.md @@ -10,6 +10,6 @@ Hardware Availability: [KBDFans](https://kbdfans.cn), [Massdrop](https://www.mas Make example for this keyboard (after setting up your build environment): - make kbd66:default + make kbdfans/kbd66:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. \ No newline at end of file +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/kbd66/rules.mk b/keyboards/kbdfans/kbd66/rules.mk similarity index 97% rename from keyboards/kbd66/rules.mk rename to keyboards/kbdfans/kbd66/rules.mk index 45eb6ee3766..dcc9b5bbd65 100644 --- a/keyboards/kbd66/rules.mk +++ b/keyboards/kbdfans/kbd66/rules.mk @@ -60,7 +60,7 @@ COMMAND_ENABLE = yes # Commands for debug and configuration 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 +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID diff --git a/keyboards/kbd67/hotswap/config.h b/keyboards/kbdfans/kbd67/hotswap/config.h similarity index 100% rename from keyboards/kbd67/hotswap/config.h rename to keyboards/kbdfans/kbd67/hotswap/config.h diff --git a/keyboards/kbd67/hotswap/hotswap.c b/keyboards/kbdfans/kbd67/hotswap/hotswap.c similarity index 100% rename from keyboards/kbd67/hotswap/hotswap.c rename to keyboards/kbdfans/kbd67/hotswap/hotswap.c diff --git a/keyboards/kbd67/hotswap/hotswap.h b/keyboards/kbdfans/kbd67/hotswap/hotswap.h similarity index 100% rename from keyboards/kbd67/hotswap/hotswap.h rename to keyboards/kbdfans/kbd67/hotswap/hotswap.h diff --git a/keyboards/kbd67/hotswap/info.json b/keyboards/kbdfans/kbd67/hotswap/info.json similarity index 100% rename from keyboards/kbd67/hotswap/info.json rename to keyboards/kbdfans/kbd67/hotswap/info.json diff --git a/keyboards/kbd67/hotswap/keymaps/default/config.h b/keyboards/kbdfans/kbd67/hotswap/keymaps/default/config.h similarity index 100% rename from keyboards/kbd67/hotswap/keymaps/default/config.h rename to keyboards/kbdfans/kbd67/hotswap/keymaps/default/config.h diff --git a/keyboards/kbd67/hotswap/keymaps/default/keymap.c b/keyboards/kbdfans/kbd67/hotswap/keymaps/default/keymap.c similarity index 100% rename from keyboards/kbd67/hotswap/keymaps/default/keymap.c rename to keyboards/kbdfans/kbd67/hotswap/keymaps/default/keymap.c diff --git a/keyboards/kbd67/hotswap/keymaps/default/readme.md b/keyboards/kbdfans/kbd67/hotswap/keymaps/default/readme.md similarity index 100% rename from keyboards/kbd67/hotswap/keymaps/default/readme.md rename to keyboards/kbdfans/kbd67/hotswap/keymaps/default/readme.md diff --git a/keyboards/kbd67/hotswap/keymaps/zunger/config.h b/keyboards/kbdfans/kbd67/hotswap/keymaps/zunger/config.h similarity index 100% rename from keyboards/kbd67/hotswap/keymaps/zunger/config.h rename to keyboards/kbdfans/kbd67/hotswap/keymaps/zunger/config.h diff --git a/keyboards/kbd67/hotswap/keymaps/zunger/keymap.c b/keyboards/kbdfans/kbd67/hotswap/keymaps/zunger/keymap.c similarity index 100% rename from keyboards/kbd67/hotswap/keymaps/zunger/keymap.c rename to keyboards/kbdfans/kbd67/hotswap/keymaps/zunger/keymap.c diff --git a/keyboards/kbd67/hotswap/keymaps/zunger/readme.md b/keyboards/kbdfans/kbd67/hotswap/keymaps/zunger/readme.md similarity index 100% rename from keyboards/kbd67/hotswap/keymaps/zunger/readme.md rename to keyboards/kbdfans/kbd67/hotswap/keymaps/zunger/readme.md diff --git a/keyboards/kbd67/hotswap/keymaps/zunger/rules.mk b/keyboards/kbdfans/kbd67/hotswap/keymaps/zunger/rules.mk similarity index 100% rename from keyboards/kbd67/hotswap/keymaps/zunger/rules.mk rename to keyboards/kbdfans/kbd67/hotswap/keymaps/zunger/rules.mk diff --git a/keyboards/kbd67/hotswap/readme.md b/keyboards/kbdfans/kbd67/hotswap/readme.md similarity index 100% rename from keyboards/kbd67/hotswap/readme.md rename to keyboards/kbdfans/kbd67/hotswap/readme.md diff --git a/keyboards/kbd67/hotswap/rules.mk b/keyboards/kbdfans/kbd67/hotswap/rules.mk similarity index 100% rename from keyboards/kbd67/hotswap/rules.mk rename to keyboards/kbdfans/kbd67/hotswap/rules.mk diff --git a/keyboards/kbd67/readme.md b/keyboards/kbdfans/kbd67/readme.md similarity index 91% rename from keyboards/kbd67/readme.md rename to keyboards/kbdfans/kbd67/readme.md index cdaf7e922db..7ee3c6adbb1 100644 --- a/keyboards/kbd67/readme.md +++ b/keyboards/kbdfans/kbd67/readme.md @@ -9,7 +9,7 @@ Hardware Availability: KBDFans Make example for this keyboard (after setting up your build environment): - make kbd67/rev1:default - make kbd67/hotswap:default + make kbdfans/kbd67/rev1:default + make kbdfans/kbd67/hotswap:default See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/kbd67/rev1/config.h b/keyboards/kbdfans/kbd67/rev1/config.h similarity index 100% rename from keyboards/kbd67/rev1/config.h rename to keyboards/kbdfans/kbd67/rev1/config.h diff --git a/keyboards/kbd67/rev1/info.json b/keyboards/kbdfans/kbd67/rev1/info.json similarity index 100% rename from keyboards/kbd67/rev1/info.json rename to keyboards/kbdfans/kbd67/rev1/info.json diff --git a/keyboards/kbd67/rev1/keymaps/default/config.h b/keyboards/kbdfans/kbd67/rev1/keymaps/default/config.h similarity index 100% rename from keyboards/kbd67/rev1/keymaps/default/config.h rename to keyboards/kbdfans/kbd67/rev1/keymaps/default/config.h diff --git a/keyboards/kbd67/rev1/keymaps/default/keymap.c b/keyboards/kbdfans/kbd67/rev1/keymaps/default/keymap.c similarity index 100% rename from keyboards/kbd67/rev1/keymaps/default/keymap.c rename to keyboards/kbdfans/kbd67/rev1/keymaps/default/keymap.c diff --git a/keyboards/kbd67/rev1/keymaps/default/readme.md b/keyboards/kbdfans/kbd67/rev1/keymaps/default/readme.md similarity index 100% rename from keyboards/kbd67/rev1/keymaps/default/readme.md rename to keyboards/kbdfans/kbd67/rev1/keymaps/default/readme.md diff --git a/keyboards/kbd67/rev1/readme.md b/keyboards/kbdfans/kbd67/rev1/readme.md similarity index 100% rename from keyboards/kbd67/rev1/readme.md rename to keyboards/kbdfans/kbd67/rev1/readme.md diff --git a/keyboards/kbd67/rev1/rev1.c b/keyboards/kbdfans/kbd67/rev1/rev1.c similarity index 100% rename from keyboards/kbd67/rev1/rev1.c rename to keyboards/kbdfans/kbd67/rev1/rev1.c diff --git a/keyboards/kbd67/rev1/rev1.h b/keyboards/kbdfans/kbd67/rev1/rev1.h similarity index 100% rename from keyboards/kbd67/rev1/rev1.h rename to keyboards/kbdfans/kbd67/rev1/rev1.h diff --git a/keyboards/kbd67/rev1/rules.mk b/keyboards/kbdfans/kbd67/rev1/rules.mk similarity index 100% rename from keyboards/kbd67/rev1/rules.mk rename to keyboards/kbdfans/kbd67/rev1/rules.mk diff --git a/keyboards/kbd6x/config.h b/keyboards/kbdfans/kbd6x/config.h similarity index 100% rename from keyboards/kbd6x/config.h rename to keyboards/kbdfans/kbd6x/config.h diff --git a/keyboards/kbd6x/info.json b/keyboards/kbdfans/kbd6x/info.json similarity index 100% rename from keyboards/kbd6x/info.json rename to keyboards/kbdfans/kbd6x/info.json diff --git a/keyboards/kbd6x/kbd6x.c b/keyboards/kbdfans/kbd6x/kbd6x.c similarity index 100% rename from keyboards/kbd6x/kbd6x.c rename to keyboards/kbdfans/kbd6x/kbd6x.c diff --git a/keyboards/kbd6x/kbd6x.h b/keyboards/kbdfans/kbd6x/kbd6x.h similarity index 100% rename from keyboards/kbd6x/kbd6x.h rename to keyboards/kbdfans/kbd6x/kbd6x.h diff --git a/keyboards/kbd6x/keymaps/default/keymap.c b/keyboards/kbdfans/kbd6x/keymaps/default/keymap.c similarity index 100% rename from keyboards/kbd6x/keymaps/default/keymap.c rename to keyboards/kbdfans/kbd6x/keymaps/default/keymap.c diff --git a/keyboards/kbd6x/keymaps/default/readme.md b/keyboards/kbdfans/kbd6x/keymaps/default/readme.md similarity index 100% rename from keyboards/kbd6x/keymaps/default/readme.md rename to keyboards/kbdfans/kbd6x/keymaps/default/readme.md diff --git a/keyboards/kbd6x/keymaps/hhkb-default-improved/keymap.c b/keyboards/kbdfans/kbd6x/keymaps/hhkb-default-improved/keymap.c similarity index 100% rename from keyboards/kbd6x/keymaps/hhkb-default-improved/keymap.c rename to keyboards/kbdfans/kbd6x/keymaps/hhkb-default-improved/keymap.c diff --git a/keyboards/kbd6x/keymaps/hhkb-default-improved/readme.md b/keyboards/kbdfans/kbd6x/keymaps/hhkb-default-improved/readme.md similarity index 100% rename from keyboards/kbd6x/keymaps/hhkb-default-improved/readme.md rename to keyboards/kbdfans/kbd6x/keymaps/hhkb-default-improved/readme.md diff --git a/keyboards/kbd6x/keymaps/hhkb-default/keymap.c b/keyboards/kbdfans/kbd6x/keymaps/hhkb-default/keymap.c similarity index 100% rename from keyboards/kbd6x/keymaps/hhkb-default/keymap.c rename to keyboards/kbdfans/kbd6x/keymaps/hhkb-default/keymap.c diff --git a/keyboards/kbd6x/keymaps/hhkb-default/readme.md b/keyboards/kbdfans/kbd6x/keymaps/hhkb-default/readme.md similarity index 100% rename from keyboards/kbd6x/keymaps/hhkb-default/readme.md rename to keyboards/kbdfans/kbd6x/keymaps/hhkb-default/readme.md diff --git a/keyboards/kbd6x/keymaps/konstantin/config.h b/keyboards/kbdfans/kbd6x/keymaps/konstantin/config.h similarity index 100% rename from keyboards/kbd6x/keymaps/konstantin/config.h rename to keyboards/kbdfans/kbd6x/keymaps/konstantin/config.h diff --git a/keyboards/kbd6x/keymaps/konstantin/keymap.c b/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c similarity index 100% rename from keyboards/kbd6x/keymaps/konstantin/keymap.c rename to keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c diff --git a/keyboards/kbd6x/keymaps/konstantin/rules.mk b/keyboards/kbdfans/kbd6x/keymaps/konstantin/rules.mk similarity index 100% rename from keyboards/kbd6x/keymaps/konstantin/rules.mk rename to keyboards/kbdfans/kbd6x/keymaps/konstantin/rules.mk diff --git a/keyboards/kbd6x/keymaps/othi/config.h b/keyboards/kbdfans/kbd6x/keymaps/othi/config.h similarity index 100% rename from keyboards/kbd6x/keymaps/othi/config.h rename to keyboards/kbdfans/kbd6x/keymaps/othi/config.h diff --git a/keyboards/kbd6x/keymaps/othi/keymap.c b/keyboards/kbdfans/kbd6x/keymaps/othi/keymap.c similarity index 100% rename from keyboards/kbd6x/keymaps/othi/keymap.c rename to keyboards/kbdfans/kbd6x/keymaps/othi/keymap.c diff --git a/keyboards/kbd6x/keymaps/othi/readme.md b/keyboards/kbdfans/kbd6x/keymaps/othi/readme.md similarity index 100% rename from keyboards/kbd6x/keymaps/othi/readme.md rename to keyboards/kbdfans/kbd6x/keymaps/othi/readme.md diff --git a/keyboards/kbd6x/keymaps/othi/rules.mk b/keyboards/kbdfans/kbd6x/keymaps/othi/rules.mk similarity index 100% rename from keyboards/kbd6x/keymaps/othi/rules.mk rename to keyboards/kbdfans/kbd6x/keymaps/othi/rules.mk diff --git a/keyboards/kbd6x/readme.md b/keyboards/kbdfans/kbd6x/readme.md similarity index 51% rename from keyboards/kbd6x/readme.md rename to keyboards/kbdfans/kbd6x/readme.md index 0e8e865621b..1728c8c21bf 100644 --- a/keyboards/kbd6x/readme.md +++ b/keyboards/kbdfans/kbd6x/readme.md @@ -8,6 +8,6 @@ Hardware Availability: [KBDFans](https://kbdfans.cn/products/kbd6x-wkl-hot-swap- Make example for this keyboard (after setting up your build environment): - make kbd6x:default + make kbdfans/kbd6x:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/kbd6x/rules.mk b/keyboards/kbdfans/kbd6x/rules.mk similarity index 100% rename from keyboards/kbd6x/rules.mk rename to keyboards/kbdfans/kbd6x/rules.mk diff --git a/keyboards/kbd75/config.h b/keyboards/kbdfans/kbd75/config.h similarity index 100% rename from keyboards/kbd75/config.h rename to keyboards/kbdfans/kbd75/config.h diff --git a/keyboards/kbd75/kbd75.c b/keyboards/kbdfans/kbd75/kbd75.c similarity index 100% rename from keyboards/kbd75/kbd75.c rename to keyboards/kbdfans/kbd75/kbd75.c diff --git a/keyboards/kbd75/kbd75.h b/keyboards/kbdfans/kbd75/kbd75.h similarity index 68% rename from keyboards/kbd75/kbd75.h rename to keyboards/kbdfans/kbd75/kbd75.h index 0798ad0996c..8e6f094500b 100644 --- a/keyboards/kbd75/kbd75.h +++ b/keyboards/kbdfans/kbd75/kbd75.h @@ -3,11 +3,11 @@ #include "quantum.h" -#ifdef KEYBOARD_kbd75_rev1 +#ifdef KEYBOARD_kbdfans_kbd75_rev1 #include "rev1.h" #endif -#ifdef KEYBOARD_kbd75_rev2 +#ifdef KEYBOARD_kbdfans_kbd75_rev2 #include "../rev1/rev1.h" #include "rev2.h" #endif diff --git a/keyboards/kbd75/keymaps/adit/keymap.c b/keyboards/kbdfans/kbd75/keymaps/adit/keymap.c similarity index 88% rename from keyboards/kbd75/keymaps/adit/keymap.c rename to keyboards/kbdfans/kbd75/keymaps/adit/keymap.c index 3c70d97864c..b7cae4810b5 100644 --- a/keyboards/kbd75/keymaps/adit/keymap.c +++ b/keyboards/kbdfans/kbd75/keymaps/adit/keymap.c @@ -2,8 +2,6 @@ #define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) -#define _______ KC_TRNS - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( @@ -45,40 +43,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -void led_set_user(uint8_t usb_led) { - - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - DDRB |= (1 << 2); PORTB &= ~(1 << 2); - } else { - DDRB &= ~(1 << 2); PORTB &= ~(1 << 2); - } - - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_COMPOSE)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_KANA)) { - - } else { - - } - -} - enum function_id { SHIFT_ESC, }; diff --git a/keyboards/kbd75/keymaps/default/keymap.c b/keyboards/kbdfans/kbd75/keymaps/default/keymap.c similarity index 90% rename from keyboards/kbd75/keymaps/default/keymap.c rename to keyboards/kbdfans/kbd75/keymaps/default/keymap.c index 3074d869278..839030aaa9a 100644 --- a/keyboards/kbd75/keymaps/default/keymap.c +++ b/keyboards/kbdfans/kbd75/keymaps/default/keymap.c @@ -1,7 +1,5 @@ #include QMK_KEYBOARD_H -#define _______ KC_TRNS - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( @@ -22,12 +20,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; - -void led_set_user(uint8_t usb_led) { - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - DDRB |= (1 << 2); PORTB &= ~(1 << 2); - } else { - DDRB &= ~(1 << 2); PORTB &= ~(1 << 2); - } -} - diff --git a/keyboards/kbd75/keymaps/edulpn/README.md b/keyboards/kbdfans/kbd75/keymaps/edulpn/README.md similarity index 100% rename from keyboards/kbd75/keymaps/edulpn/README.md rename to keyboards/kbdfans/kbd75/keymaps/edulpn/README.md diff --git a/keyboards/kbd75/keymaps/edulpn/keymap.c b/keyboards/kbdfans/kbd75/keymaps/edulpn/keymap.c similarity index 100% rename from keyboards/kbd75/keymaps/edulpn/keymap.c rename to keyboards/kbdfans/kbd75/keymaps/edulpn/keymap.c diff --git a/keyboards/kbd75/keymaps/iso/keymap.c b/keyboards/kbdfans/kbd75/keymaps/iso/keymap.c similarity index 91% rename from keyboards/kbd75/keymaps/iso/keymap.c rename to keyboards/kbdfans/kbd75/keymaps/iso/keymap.c index 230f1dd73a1..0b7c701a30d 100644 --- a/keyboards/kbd75/keymaps/iso/keymap.c +++ b/keyboards/kbdfans/kbd75/keymaps/iso/keymap.c @@ -1,7 +1,5 @@ #include QMK_KEYBOARD_H -#define _______ KC_TRNS - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( @@ -22,11 +20,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; - -void led_set_user(uint8_t usb_led) { - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - DDRB |= (1 << 2); PORTB &= ~(1 << 2); - } else { - DDRB &= ~(1 << 2); PORTB &= ~(1 << 2); - } -} diff --git a/keyboards/kbd75/keymaps/smt/keymap.c b/keyboards/kbdfans/kbd75/keymaps/smt/keymap.c similarity index 99% rename from keyboards/kbd75/keymaps/smt/keymap.c rename to keyboards/kbdfans/kbd75/keymaps/smt/keymap.c index a29a7e8a9fa..edf01c854ed 100644 --- a/keyboards/kbd75/keymaps/smt/keymap.c +++ b/keyboards/kbdfans/kbd75/keymaps/smt/keymap.c @@ -12,10 +12,6 @@ enum planck_keycodes { DVORAK }; -// Helpful defines -#define _______ KC_TRNS -#define XXXXXXX KC_NO - // Custom macros #define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl #define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper (Super+Ctrl+Shift+Alt) diff --git a/keyboards/kbd75/keymaps/spacemanspiff/keymap.c b/keyboards/kbdfans/kbd75/keymaps/spacemanspiff/keymap.c similarity index 95% rename from keyboards/kbd75/keymaps/spacemanspiff/keymap.c rename to keyboards/kbdfans/kbd75/keymaps/spacemanspiff/keymap.c index 82a2ad9bec7..05e7c567135 100644 --- a/keyboards/kbd75/keymaps/spacemanspiff/keymap.c +++ b/keyboards/kbdfans/kbd75/keymaps/spacemanspiff/keymap.c @@ -39,12 +39,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; - -void led_set_user(uint8_t usb_led) { - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - DDRB |= (1 << 2); PORTB &= ~(1 << 2); - } else { - DDRB &= ~(1 << 2); PORTB &= ~(1 << 2); - } -} - diff --git a/keyboards/kbd75/keymaps/spacemanspiff/readme.md b/keyboards/kbdfans/kbd75/keymaps/spacemanspiff/readme.md similarity index 100% rename from keyboards/kbd75/keymaps/spacemanspiff/readme.md rename to keyboards/kbdfans/kbd75/keymaps/spacemanspiff/readme.md diff --git a/keyboards/kbd75/readme.md b/keyboards/kbdfans/kbd75/readme.md similarity index 58% rename from keyboards/kbd75/readme.md rename to keyboards/kbdfans/kbd75/readme.md index 4c93a8fbefe..89fe2741618 100644 --- a/keyboards/kbd75/readme.md +++ b/keyboards/kbdfans/kbd75/readme.md @@ -1,8 +1,7 @@ -KBD75 -=== +# KBD75 Keyboard Maintainer: QMK Community -Hardware Supported: KBD75 PCB rev 1 and 2 +Hardware Supported: KBD75 PCB rev 1 and 2 Hardware Availability: https://kbdfans.myshopify.com/products/kbd75-keyboard-set?variant=35638534029 The KBD75 has two revisions. Revision 2 has a USB C port and allows a numpad layout. `.hex` files made @@ -12,7 +11,7 @@ different areas. Make example for this keyboard (after setting up your build environment): - make kbd75/rev1:default - make kbd75/rev2:default + make kbdfans/kbd75/rev1:default + make kbdfans/kbd75/rev2:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/kbd75/rev1/info.json b/keyboards/kbdfans/kbd75/rev1/info.json similarity index 100% rename from keyboards/kbd75/rev1/info.json rename to keyboards/kbdfans/kbd75/rev1/info.json diff --git a/keyboards/kbdfans/kbd75/rev1/rev1.c b/keyboards/kbdfans/kbd75/rev1/rev1.c new file mode 100644 index 00000000000..9ed08602a47 --- /dev/null +++ b/keyboards/kbdfans/kbd75/rev1/rev1.c @@ -0,0 +1,12 @@ +#include "rev1.h" + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { + writePinHigh(B2); + } else { + writePinLow(B2); + } + + led_set_user(usb_led); +} diff --git a/keyboards/kbd75/rev1/rev1.h b/keyboards/kbdfans/kbd75/rev1/rev1.h similarity index 100% rename from keyboards/kbd75/rev1/rev1.h rename to keyboards/kbdfans/kbd75/rev1/rev1.h diff --git a/keyboards/kbd75/rev1/rules.mk b/keyboards/kbdfans/kbd75/rev1/rules.mk similarity index 100% rename from keyboards/kbd75/rev1/rules.mk rename to keyboards/kbdfans/kbd75/rev1/rules.mk diff --git a/keyboards/kbd75/rev2/info.json b/keyboards/kbdfans/kbd75/rev2/info.json similarity index 100% rename from keyboards/kbd75/rev2/info.json rename to keyboards/kbdfans/kbd75/rev2/info.json diff --git a/keyboards/kbdfans/kbd75/rev2/rev2.c b/keyboards/kbdfans/kbd75/rev2/rev2.c new file mode 100644 index 00000000000..bec65d6a6c3 --- /dev/null +++ b/keyboards/kbdfans/kbd75/rev2/rev2.c @@ -0,0 +1,12 @@ +#include "rev2.h" + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { + writePinHigh(B2); + } else { + writePinLow(B2); + } + + led_set_user(usb_led); +} diff --git a/keyboards/kbd75/rev2/rev2.h b/keyboards/kbdfans/kbd75/rev2/rev2.h similarity index 100% rename from keyboards/kbd75/rev2/rev2.h rename to keyboards/kbdfans/kbd75/rev2/rev2.h diff --git a/keyboards/kbd75/rev2/rules.mk b/keyboards/kbdfans/kbd75/rev2/rules.mk similarity index 100% rename from keyboards/kbd75/rev2/rules.mk rename to keyboards/kbdfans/kbd75/rev2/rules.mk diff --git a/keyboards/kbdfans/kbd75/rules.mk b/keyboards/kbdfans/kbd75/rules.mk new file mode 100644 index 00000000000..5c461713161 --- /dev/null +++ b/keyboards/kbdfans/kbd75/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = kbdfans/kbd75/rev1 diff --git a/keyboards/kbd8x/config.h b/keyboards/kbdfans/kbd8x/config.h similarity index 100% rename from keyboards/kbd8x/config.h rename to keyboards/kbdfans/kbd8x/config.h diff --git a/keyboards/kbd8x/info.json b/keyboards/kbdfans/kbd8x/info.json similarity index 100% rename from keyboards/kbd8x/info.json rename to keyboards/kbdfans/kbd8x/info.json diff --git a/keyboards/kbd8x/kbd8x.c b/keyboards/kbdfans/kbd8x/kbd8x.c similarity index 100% rename from keyboards/kbd8x/kbd8x.c rename to keyboards/kbdfans/kbd8x/kbd8x.c diff --git a/keyboards/kbd8x/kbd8x.h b/keyboards/kbdfans/kbd8x/kbd8x.h similarity index 100% rename from keyboards/kbd8x/kbd8x.h rename to keyboards/kbdfans/kbd8x/kbd8x.h diff --git a/keyboards/kbd8x/keymaps/default/config.h b/keyboards/kbdfans/kbd8x/keymaps/default/config.h similarity index 100% rename from keyboards/kbd8x/keymaps/default/config.h rename to keyboards/kbdfans/kbd8x/keymaps/default/config.h diff --git a/keyboards/kbd8x/keymaps/default/keymap.c b/keyboards/kbdfans/kbd8x/keymaps/default/keymap.c similarity index 69% rename from keyboards/kbd8x/keymaps/default/keymap.c rename to keyboards/kbdfans/kbd8x/keymaps/default/keymap.c index 3d315035bee..a7dcd5518c1 100644 --- a/keyboards/kbd8x/keymaps/default/keymap.c +++ b/keyboards/kbdfans/kbd8x/keymaps/default/keymap.c @@ -25,6 +25,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_NUBS, 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_UP, \ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + [1] = LAYOUT_all( + 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_TOG, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, 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, RESET, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, BL_TOGG, BL_INC, BL_DEC, BL_BRTG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) diff --git a/keyboards/kbd8x/keymaps/default/readme.md b/keyboards/kbdfans/kbd8x/keymaps/default/readme.md similarity index 100% rename from keyboards/kbd8x/keymaps/default/readme.md rename to keyboards/kbdfans/kbd8x/keymaps/default/readme.md diff --git a/keyboards/kbd8x/keymaps/default_backlighting/config.h b/keyboards/kbdfans/kbd8x/keymaps/default_backlighting/config.h similarity index 100% rename from keyboards/kbd8x/keymaps/default_backlighting/config.h rename to keyboards/kbdfans/kbd8x/keymaps/default_backlighting/config.h diff --git a/keyboards/kbd8x/keymaps/default_backlighting/keymap.c b/keyboards/kbdfans/kbd8x/keymaps/default_backlighting/keymap.c similarity index 100% rename from keyboards/kbd8x/keymaps/default_backlighting/keymap.c rename to keyboards/kbdfans/kbd8x/keymaps/default_backlighting/keymap.c diff --git a/keyboards/kbd8x/keymaps/default_backlighting/readme.md b/keyboards/kbdfans/kbd8x/keymaps/default_backlighting/readme.md similarity index 100% rename from keyboards/kbd8x/keymaps/default_backlighting/readme.md rename to keyboards/kbdfans/kbd8x/keymaps/default_backlighting/readme.md diff --git a/keyboards/kbdfans/kbd8x/keymaps/default_backlighting/rules.mk b/keyboards/kbdfans/kbd8x/keymaps/default_backlighting/rules.mk new file mode 100644 index 00000000000..d98bb1cb177 --- /dev/null +++ b/keyboards/kbdfans/kbd8x/keymaps/default_backlighting/rules.mk @@ -0,0 +1 @@ +#Build Options diff --git a/keyboards/kbd8x/readme.md b/keyboards/kbdfans/kbd8x/readme.md similarity index 51% rename from keyboards/kbd8x/readme.md rename to keyboards/kbdfans/kbd8x/readme.md index 8c50af68f68..9f8555560ab 100644 --- a/keyboards/kbd8x/readme.md +++ b/keyboards/kbdfans/kbd8x/readme.md @@ -1,4 +1,4 @@ -# KBD 8X +# KBD8X ![kbd8x](imgur.com image replace me!) @@ -10,6 +10,6 @@ Hardware Availability: [KBDFans](https://kbdfans.cn/blogs/updates/kbd-8x-update- Make example for this keyboard (after setting up your build environment): - make kbd8x:default + make kbdfans/kbd8x:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/kbd8x/rules.mk b/keyboards/kbdfans/kbd8x/rules.mk similarity index 95% rename from keyboards/kbd8x/rules.mk rename to keyboards/kbdfans/kbd8x/rules.mk index e5925463ec5..be757756415 100644 --- a/keyboards/kbd8x/rules.mk +++ b/keyboards/kbdfans/kbd8x/rules.mk @@ -60,8 +60,8 @@ COMMAND_ENABLE = yes # Commands for debug and configuration 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 -RGBLIGHT_ENABLE ?= yes # Enable keyboard RGB underglow +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID diff --git a/keyboards/kbdfans/readme.md b/keyboards/kbdfans/readme.md new file mode 100644 index 00000000000..1ba5ed3d115 --- /dev/null +++ b/keyboards/kbdfans/readme.md @@ -0,0 +1,17 @@ +# KBDFans + +KBDfans is a keyboard retailer located in China. + +## Online Stores + +**Website:** https://kbdfans.cn/ +**AliExpress:** https://kbdfans.aliexpress.com/ +**eBay:** https://www.ebay.com/str/KBDfans/ +**Taobao:** https://yikewaishe.taobao.com/ + +## Social Media + +**Discord:** https://discord.gg/HMZKDhn +**Facebook:** https://www.facebook.com/KBDfanskeyboard/ +**Instagram:** https://www.instagram.com/kbdfans.cn/ + From ff893bf17c454f28a8a00f9bf27d4ec4a72727e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Em=C4=ABls=20Delle?= Date: Tue, 5 Feb 2019 00:12:23 +0200 Subject: [PATCH 49/55] Tmo50 indicators (#5044) * Create ISO HHKB keymapping for GH60 * Add media controls to Fn layer * Use M(x) instead of F(x), add Copyright text * Add README for additional information about TMO50 features/quirks * Add indicator LED code * Move indicator code to tmo50.c --- keyboards/tmo50/keymaps/default/keymap.c | 1 - keyboards/tmo50/tmo50.c | 41 ++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/keyboards/tmo50/keymaps/default/keymap.c b/keyboards/tmo50/keymaps/default/keymap.c index 419893f1a68..7b8b644cc6e 100644 --- a/keyboards/tmo50/keymaps/default/keymap.c +++ b/keyboards/tmo50/keymaps/default/keymap.c @@ -48,4 +48,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), }; - diff --git a/keyboards/tmo50/tmo50.c b/keyboards/tmo50/tmo50.c index a42ab4720af..4f6288133da 100644 --- a/keyboards/tmo50/tmo50.c +++ b/keyboards/tmo50/tmo50.c @@ -19,6 +19,15 @@ void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up + DDRB |= (1 << PB0); //init B0 + PORTB &= ~(1 << PB0); //turn on B0 + DDRB |= (1 << PB1); + PORTB |= (1< Date: Mon, 4 Feb 2019 16:57:45 -0600 Subject: [PATCH 50/55] 1up60hte hhkb layout support (#5050) * Tweaks to default 1up60hte layout + support for HHKB style layout * Added changes to layouts * Fix config.h * Fixed errant KC_NO in layout * Added readme to keyboard... Will update with images/store link when avail. * Update to use LAYOUT_60_hhkb default layout * md formatting fix * Update keyboards/1upkeyboards/1up60hte/readme.md Co-Authored-By: bubnick * Update keyboards/1upkeyboards/1up60hte/readme.md Co-Authored-By: bubnick * Added layout to rules.mk, fixed layout to be compatble with community HHKB keymaps --- keyboards/1upkeyboards/1up60hte/1up60hte.h | 16 +++- keyboards/1upkeyboards/1up60hte/config.h | 2 - .../1up60hte/keymaps/default/keymap.c | 8 +- .../1up60hte/keymaps/hhkb/keymap.c | 79 +++++++++++++++++++ keyboards/1upkeyboards/1up60hte/readme.md | 13 +++ keyboards/1upkeyboards/1up60hte/rules.mk | 2 + 6 files changed, 113 insertions(+), 7 deletions(-) create mode 100644 keyboards/1upkeyboards/1up60hte/keymaps/hhkb/keymap.c create mode 100644 keyboards/1upkeyboards/1up60hte/readme.md diff --git a/keyboards/1upkeyboards/1up60hte/1up60hte.h b/keyboards/1upkeyboards/1up60hte/1up60hte.h index 1103df6f7e8..eb4082f1ae7 100644 --- a/keyboards/1upkeyboards/1up60hte/1up60hte.h +++ b/keyboards/1upkeyboards/1up60hte/1up60hte.h @@ -19,7 +19,7 @@ along with this program. If not, see . #include "quantum.h" -#define LAYOUT( \ +#define LAYOUT_all( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, \ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \ @@ -33,4 +33,18 @@ along with this program. If not, see . { K400, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413 } \ } +/* HHKB Variant */ +#define LAYOUT_60_hhkb( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \ + K401, K402, K406, K410, K411, K413 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, KC_NO }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO }, \ + { KC_NO, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, KC_NO, K413 } \ +} diff --git a/keyboards/1upkeyboards/1up60hte/config.h b/keyboards/1upkeyboards/1up60hte/config.h index eb61a363ff7..c7e023a5edc 100644 --- a/keyboards/1upkeyboards/1up60hte/config.h +++ b/keyboards/1upkeyboards/1up60hte/config.h @@ -55,8 +55,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - - #define RGB_DI_PIN F0 #ifdef RGB_DI_PIN #define RGBLIGHT_ANIMATIONS diff --git a/keyboards/1upkeyboards/1up60hte/keymaps/default/keymap.c b/keyboards/1upkeyboards/1up60hte/keymaps/default/keymap.c index d9cd8aebbfd..396b660803a 100644 --- a/keyboards/1upkeyboards/1up60hte/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/1up60hte/keymaps/default/keymap.c @@ -18,14 +18,14 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_GRV, 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, + [0] = LAYOUT_all( + 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_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_NO, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI, KC_LCTL, KC_NO), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI, KC_LCTL, KC_BSPC), - [1] = LAYOUT( + [1] = LAYOUT_all( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/1upkeyboards/1up60hte/keymaps/hhkb/keymap.c b/keyboards/1upkeyboards/1up60hte/keymaps/hhkb/keymap.c new file mode 100644 index 00000000000..1b06739b68f --- /dev/null +++ b/keyboards/1upkeyboards/1up60hte/keymaps/hhkb/keymap.c @@ -0,0 +1,79 @@ +/* +Copyright 2019 Bubnick + +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 . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_all( + 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_BSLS, + 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_LSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI, KC_LCTL, KC_BSPC), + + [1] = LAYOUT_all( + RESET, 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_CAPS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS, + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, RGB_VAD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, 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_DEL) +}; + +void matrix_init_user(void) { + setPinOutput(B6); +} + +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) { + + if (usb_led & (1 << USB_LED_NUM_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + writePinLow(B6); + } else { + writePinHigh(B6); + } + + if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_COMPOSE)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_KANA)) { + + } else { + + } + +} diff --git a/keyboards/1upkeyboards/1up60hte/readme.md b/keyboards/1upkeyboards/1up60hte/readme.md new file mode 100644 index 00000000000..a5278788b71 --- /dev/null +++ b/keyboards/1upkeyboards/1up60hte/readme.md @@ -0,0 +1,13 @@ +# 1up60hte (Hot Swap Edition - Tsangan) + +A 60% PCB with USB C, RGB underglow, backlighting, hotswappable switches, and a Tsangan layout. + +Keyboard Maintainer: [Bubnick](https://github.com/bubnick) +Hardware Supported: 1up60hte 60% PCB +Hardware Availability: [1upkeyboards.com](https://www.1upkeyboards.com/) + +Make example for this keyboard (after setting up your build environment): + + make 1upkeyboards/1up60hte:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/1upkeyboards/1up60hte/rules.mk b/keyboards/1upkeyboards/1up60hte/rules.mk index c77cac8a178..b8b5582991b 100644 --- a/keyboards/1upkeyboards/1up60hte/rules.mk +++ b/keyboards/1upkeyboards/1up60hte/rules.mk @@ -54,3 +54,5 @@ NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https:/ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality AUDIO_ENABLE = no RGBLIGHT_ENABLE = yes + +LAYOUTS = 60_hhkb From e9c3e041460fa82addc67c194b9a881b3ee967e6 Mon Sep 17 00:00:00 2001 From: Flugschwein Date: Sat, 2 Feb 2019 23:32:26 +0100 Subject: [PATCH 51/55] Fix QWERTZ <> QWERTY issue in sendstring_german.h Small mistake that caused sendstring commands to exchange y with z. --- quantum/keymap_extras/sendstring_german.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/quantum/keymap_extras/sendstring_german.h b/quantum/keymap_extras/sendstring_german.h index 1eaafee3173..f20fab77d18 100644 --- a/quantum/keymap_extras/sendstring_german.h +++ b/quantum/keymap_extras/sendstring_german.h @@ -67,7 +67,7 @@ const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { /* P Q R S T U V W */ KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, /* X Y Z [ \ ] ^ _ */ - KC_X, KC_Y, KC_Z, KC_LBRC, KC_BSLS, KC_RBRC, DE_CIRC, DE_MINS, + KC_X, DE_Y, DE_Z, KC_LBRC, KC_BSLS, KC_RBRC, DE_CIRC, DE_MINS, /* ` a b c d e f g */ DE_ACUT, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, /* h i j k l m n o */ @@ -75,7 +75,7 @@ const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { /* p q r s t u v w */ KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, /* x y z { | } ~ DELETE */ - KC_X, KC_Y, KC_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_GRV, KC_DEL + KC_X, DE_Y, DE_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_GRV, KC_DEL }; #endif From 80d427a2035afdc57b850381a36e4dd9d2c179ea Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Mon, 4 Feb 2019 15:08:37 -0800 Subject: [PATCH 52/55] [Keyboard] New Macropad: 1upkeyboards super16 (#5039) * initial commit * Do a nice write up for readme * establish switch matrix and physical layout * Put in the pins that are used * QMK configurator support and keymap * set bootloader to caterina because pro micro boohoo * add ortho_4x4 support for user spaces * got the columns reversed lol --- keyboards/1upkeyboards/super16/config.h | 244 ++++++++++++++++++ keyboards/1upkeyboards/super16/info.json | 12 + .../super16/keymaps/default/config.h | 19 ++ .../super16/keymaps/default/keymap.c | 65 +++++ .../super16/keymaps/default/readme.md | 1 + keyboards/1upkeyboards/super16/readme.md | 13 + keyboards/1upkeyboards/super16/rules.mk | 83 ++++++ keyboards/1upkeyboards/super16/super16.c | 43 +++ keyboards/1upkeyboards/super16/super16.h | 39 +++ 9 files changed, 519 insertions(+) create mode 100644 keyboards/1upkeyboards/super16/config.h create mode 100644 keyboards/1upkeyboards/super16/info.json create mode 100644 keyboards/1upkeyboards/super16/keymaps/default/config.h create mode 100644 keyboards/1upkeyboards/super16/keymaps/default/keymap.c create mode 100644 keyboards/1upkeyboards/super16/keymaps/default/readme.md create mode 100644 keyboards/1upkeyboards/super16/readme.md create mode 100644 keyboards/1upkeyboards/super16/rules.mk create mode 100644 keyboards/1upkeyboards/super16/super16.c create mode 100644 keyboards/1upkeyboards/super16/super16.h diff --git a/keyboards/1upkeyboards/super16/config.h b/keyboards/1upkeyboards/super16/config.h new file mode 100644 index 00000000000..1f97c6fea90 --- /dev/null +++ b/keyboards/1upkeyboards/super16/config.h @@ -0,0 +1,244 @@ +/* +Copyright 2019 MechMerlin + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0001 +#define MANUFACTURER 1upkeyboards +#define PRODUCT super16 +#define DESCRIPTION A 4x4 custom macropad + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 4 + +/* + * 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 { D1, D0, F4, F5 } +#define MATRIX_COL_PINS { D4, C6, F6, F7 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ +#define DIODE_DIRECTION COL2ROW + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + +#define RGB_DI_PIN D3 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 16 // Add 12 if attaching the RGB LED ring + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ +// #define RGBLIGHT_ANIMATIONS +// /*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +#endif + +/* 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 + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * 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 */ +/* defined by default; to change, uncomment and set to the combination you want */ +// #define IS_COMMAND() (get_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 + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ +//#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 1 + +/* + * HD44780 LCD Display Configuration + */ +/* +#define LCD_LINES 2 //< number of visible lines of the display +#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display + +#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode + +#if LCD_IO_MODE +#define LCD_PORT PORTB //< port for the LCD lines +#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0 +#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1 +#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2 +#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3 +#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0 +#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1 +#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2 +#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3 +#define LCD_RS_PORT LCD_PORT //< port for RS line +#define LCD_RS_PIN 3 //< pin for RS line +#define LCD_RW_PORT LCD_PORT //< port for RW line +#define LCD_RW_PIN 2 //< pin for RW line +#define LCD_E_PORT LCD_PORT //< port for Enable line +#define LCD_E_PIN 1 //< pin for Enable line +#endif +*/ + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/1upkeyboards/super16/info.json b/keyboards/1upkeyboards/super16/info.json new file mode 100644 index 00000000000..e8f4faa23d4 --- /dev/null +++ b/keyboards/1upkeyboards/super16/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "super16", + "url": "", + "maintainer": "qmk", + "width": 4, + "height": 4, + "layouts": { + "LAYOUT_ortho_4x4": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}] + } + } +} \ No newline at end of file diff --git a/keyboards/1upkeyboards/super16/keymaps/default/config.h b/keyboards/1upkeyboards/super16/keymaps/default/config.h new file mode 100644 index 00000000000..16fc8b97468 --- /dev/null +++ b/keyboards/1upkeyboards/super16/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2019 'mechmerlin' + * + * 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 . + */ + +#pragma once + +// place overrides here diff --git a/keyboards/1upkeyboards/super16/keymaps/default/keymap.c b/keyboards/1upkeyboards/super16/keymaps/default/keymap.c new file mode 100644 index 00000000000..36ad3f2839a --- /dev/null +++ b/keyboards/1upkeyboards/super16/keymaps/default/keymap.c @@ -0,0 +1,65 @@ +/* Copyright 2019 MechMerlin + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + QMKBEST = SAFE_RANGE, + QMKURL +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_4x4( /* Base */ + KC_A, KC_1, KC_2, KC_4, \ + KC_A, KC_1, KC_2, KC_4, \ + KC_A, KC_1, KC_2, KC_4, \ + KC_A, KC_1, KC_2, KC_4 \ + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QMKBEST: + if (record->event.pressed) { + // when keycode QMKBEST is pressed + SEND_STRING("QMK is the best thing ever!"); + } else { + // when keycode QMKBEST is released + } + break; + case QMKURL: + if (record->event.pressed) { + // when keycode QMKURL is pressed + SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER)); + } else { + // when keycode QMKURL is released + } + break; + } + return true; +} + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +void led_set_user(uint8_t usb_led) { + +} diff --git a/keyboards/1upkeyboards/super16/keymaps/default/readme.md b/keyboards/1upkeyboards/super16/keymaps/default/readme.md new file mode 100644 index 00000000000..814f15c005a --- /dev/null +++ b/keyboards/1upkeyboards/super16/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for super16 diff --git a/keyboards/1upkeyboards/super16/readme.md b/keyboards/1upkeyboards/super16/readme.md new file mode 100644 index 00000000000..61b92ff85e9 --- /dev/null +++ b/keyboards/1upkeyboards/super16/readme.md @@ -0,0 +1,13 @@ +# Super 16 Macro Pad + +A 4x4 macropad with RGB underglow. + +Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin) +Hardware Supported: Super 16 Macropad +Hardware Availability: [1upkeyboards](https://www.1upkeyboards.com/shop/keyboard-kits/super-16-macro-pad/) + +Make example for this keyboard (after setting up your build environment): + + make 1upkeyboards/super16:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/1upkeyboards/super16/rules.mk b/keyboards/1upkeyboards/super16/rules.mk new file mode 100644 index 00000000000..efcde883428 --- /dev/null +++ b/keyboards/1upkeyboards/super16/rules.mk @@ -0,0 +1,83 @@ +# MCU name +#MCU = at90usb1286 +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 + + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +BOOTLOADER = caterina + + +# If you don't know the bootloader type, then you can specify the +# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +# OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # 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 +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400) + +LAYOUTS = ortho_4x4 \ No newline at end of file diff --git a/keyboards/1upkeyboards/super16/super16.c b/keyboards/1upkeyboards/super16/super16.c new file mode 100644 index 00000000000..cf33cab9269 --- /dev/null +++ b/keyboards/1upkeyboards/super16/super16.c @@ -0,0 +1,43 @@ +/* Copyright 2019 MechMerlin + * + * 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 . + */ +#include "super16.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/1upkeyboards/super16/super16.h b/keyboards/1upkeyboards/super16/super16.h new file mode 100644 index 00000000000..a95f687b164 --- /dev/null +++ b/keyboards/1upkeyboards/super16/super16.h @@ -0,0 +1,39 @@ +/* Copyright 2019 MechMerlin + * + * 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 . + */ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_ortho_4x4( \ + k00, k01, k02, k03, \ + k10, k11, k12, k13, \ + k20, k21, k22, k23, \ + k30, k31, k32, k33 \ +) \ +{ \ + { k00, k01, k02, k03 }, \ + { k10, k11, k12, k13 }, \ + { k20, k21, k22, k23 }, \ + { k30, k31, k32, k33 }, \ +} From e4ff07aff06dcdc45859bfc1e5106069fb65020b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20=C4=90or=C4=91evi=C4=87?= Date: Tue, 5 Feb 2019 00:10:11 +0100 Subject: [PATCH 53/55] Fix mixed tabs/spaces and typos in keyboards/converter makefiles (#5041) * Fix mixed tabs and spaces in adb_usb and m0110_usb makefiles * Fix typos in converter build options * Tweak ordering and spacing in converter makefiles --- keyboards/converter/adb_usb/rules.mk | 34 +++++++++++----------- keyboards/converter/hp_46010a/rules.mk | 16 +++++------ keyboards/converter/ibm_5291/rules.mk | 12 ++++---- keyboards/converter/ibm_terminal/rules.mk | 16 +++++------ keyboards/converter/m0110_usb/rules.mk | 35 +++++++++++------------ keyboards/converter/palm_usb/rules.mk | 32 +++++++++------------ keyboards/converter/sun_usb/rules.mk | 25 +++++++--------- keyboards/converter/usb_usb/rules.mk | 26 ++++++++--------- keyboards/converter/xt_usb/rules.mk | 21 ++++++-------- 9 files changed, 98 insertions(+), 119 deletions(-) diff --git a/keyboards/converter/adb_usb/rules.mk b/keyboards/converter/adb_usb/rules.mk index 4743b6b08f1..7901898c7c3 100644 --- a/keyboards/converter/adb_usb/rules.mk +++ b/keyboards/converter/adb_usb/rules.mk @@ -1,7 +1,7 @@ # MCU name -# atmega32u4 Teensy2.0 -# atemga32u4 TMK Converter rev.1 -# atemga32u2 TMK Converter rev.2 +# atmega32u4 Teensy2.0 +# atemga32u4 TMK Converter rev.1 +# atemga32u2 TMK Converter rev.2 MCU = atmega32u4 # Processor frequency. @@ -50,25 +50,23 @@ BOOTLOADER = caterina # Boot Section Size in *bytes* # Teensy halfKay 512 # Teensy++ halfKay 1024 -# Atmel DFU loader 4096 for TMK Converter rev.1/rev.2 +# Atmel DFU loader 4096 for TMK Converter rev.1/rev.2 # LUFA bootloader 4096 # USBaspLoader 2048 # Build Options # comment out to disable the options. # -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = no # Mouse keys(+4700) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = no # Commands for debug and configuration -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -NKRO_ENABLE = no # USB Nkey Rollover - not yet supported in LUFA -EXTRAKEY_ENABLE = yes -USB_HID_ENABLE = yes -BACKLIGHT_ENABLE = no -#BLUETOOTH = AdafruitBLE # For Adafruit Feather 32U4 BLE support, uncomment this line +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = no # USB Nkey Rollover - not yet supported in LUFA +EXTRAKEY_ENABLE = yes +USB_HID_ENABLE = yes +BACKLIGHT_ENABLE = no +#BLUETOOTH = AdafruitBLE # For Adafruit Feather 32U4 BLE support, uncomment this line +CUSTOM_MATRIX = yes -CUSTOM_MATRIX = yes -SRC = matrix.c \ - adb.c \ - led.c +SRC = matrix.c adb.c led.c diff --git a/keyboards/converter/hp_46010a/rules.mk b/keyboards/converter/hp_46010a/rules.mk index ddd2d593bd2..25be649995c 100644 --- a/keyboards/converter/hp_46010a/rules.mk +++ b/keyboards/converter/hp_46010a/rules.mk @@ -39,7 +39,7 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT # Bootloader # This definition is optional, and if your keyboard supports multiple bootloaders of -# different sizes, comment this out, and the correct address will be loaded +# different sizes, comment this out, and the correct address will be loaded # automatically (+60). See bootloader.mk for all options. BOOTLOADER = halfkay @@ -48,8 +48,8 @@ BOOTLOADER = halfkay # 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 = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) CONSOLE_ENABLE = yes # 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 @@ -62,11 +62,9 @@ RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. API_SYSEX_ENABLE = no SPLIT_KEYBOARD = no WAIT_FOR_USB = yes - +LAYOUTS_HAS_RGB = 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 - -LAYOUTS_HAS_RGB = NO - +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend CUSTOM_MATRIX = yes -SRC = matrix.c \ No newline at end of file + +SRC = matrix.c diff --git a/keyboards/converter/ibm_5291/rules.mk b/keyboards/converter/ibm_5291/rules.mk index ca0c850c0ba..57e385f0a9a 100644 --- a/keyboards/converter/ibm_5291/rules.mk +++ b/keyboards/converter/ibm_5291/rules.mk @@ -39,7 +39,7 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT # Bootloader # This definition is optional, and if your keyboard supports multiple bootloaders of -# different sizes, comment this out, and the correct address will be loaded +# different sizes, comment this out, and the correct address will be loaded # automatically (+60). See bootloader.mk for all options. BOOTLOADER = halfkay @@ -62,11 +62,9 @@ RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. API_SYSEX_ENABLE = no SPLIT_KEYBOARD = no WAIT_FOR_USB = yes - +LAYOUTS_HAS_RGB = 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 - -LAYOUTS_HAS_RGB = NO - +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend CUSTOM_MATRIX = yes -SRC = matrix.c \ No newline at end of file + +SRC = matrix.c diff --git a/keyboards/converter/ibm_terminal/rules.mk b/keyboards/converter/ibm_terminal/rules.mk index 77b3a6f3f75..3fa8792464c 100644 --- a/keyboards/converter/ibm_terminal/rules.mk +++ b/keyboards/converter/ibm_terminal/rules.mk @@ -36,7 +36,6 @@ 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 @@ -46,11 +45,11 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT OPT_DEFS += -DBOOTLOADER_SIZE=4096 # Build Options -# change to "no" to disable the options, or define them in the Makefile in +# 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) +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 @@ -61,12 +60,11 @@ 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. +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. PS2_USE_USART = yes -API_SYSEX_ENABLE = n +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 CUSTOM_MATRIX = 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 - -SRC = matrix.c led.c \ No newline at end of file +SRC = matrix.c led.c diff --git a/keyboards/converter/m0110_usb/rules.mk b/keyboards/converter/m0110_usb/rules.mk index 3b4ca83b750..bffee05fde2 100644 --- a/keyboards/converter/m0110_usb/rules.mk +++ b/keyboards/converter/m0110_usb/rules.mk @@ -1,7 +1,7 @@ # MCU name -# atmega32u4 Teensy2.0 -# atemga32u4 TMK Converter rev.1 -# atemga32u2 TMK Converter rev.2 +# atmega32u4 Teensy2.0 +# atemga32u4 TMK Converter rev.1 +# atemga32u2 TMK Converter rev.2 MCU = atmega32u4 # Processor frequency. @@ -43,31 +43,30 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT # Bootloader # This definition is optional, and if your keyboard supports multiple bootloaders of -# different sizes, comment this out, and the correct address will be loaded +# different sizes, comment this out, and the correct address will be loaded # automatically (+60). See bootloader.mk for all options. BOOTLOADER = caterina # Boot Section Size in *bytes* # Teensy halfKay 512 # Teensy++ halfKay 1024 -# Atmel DFU loader 4096 for TMK Converter rev.1/rev.2 +# Atmel DFU loader 4096 for TMK Converter rev.1/rev.2 # LUFA bootloader 4096 # USBaspLoader 2048 # Build Options # comment out to disable the options. # -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = no # Mouse keys(+4700) -CONSOLE_ENABLE = yes # Console for debug(+400) -COMMAND_ENABLE = no # Commands for debug and configuration -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -NKRO_ENABLE = no # USB Nkey Rollover - not yet supported in LUFA -EXTRAKEY_ENABLE = yes -USB_HID_ENABLE = yes -BACKLIGHT_ENABLE = no -#BLUETOOTH = AdafruitBLE # For Adafruit Feather 32U4 BLE support, uncomment this line +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = no # USB Nkey Rollover - not yet supported in LUFA +EXTRAKEY_ENABLE = yes +USB_HID_ENABLE = yes +BACKLIGHT_ENABLE = no +#BLUETOOTH = AdafruitBLE # For Adafruit Feather 32U4 BLE support, uncomment this line +CUSTOM_MATRIX = yes -CUSTOM_MATRIX = yes -SRC = matrix.c \ - m0110.c +SRC = matrix.c m0110.c diff --git a/keyboards/converter/palm_usb/rules.mk b/keyboards/converter/palm_usb/rules.mk index 35ea3995e65..8dfc2ca4d71 100644 --- a/keyboards/converter/palm_usb/rules.mk +++ b/keyboards/converter/palm_usb/rules.mk @@ -9,38 +9,34 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT BOOTLOADER = caterina # Build Options -# change to "no" to disable the options, or define them in the Makefile in +# 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 = no # 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 +EXTRAKEY_ENABLE = no # 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 AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode -UNICODEMAP_ENABLE = no +UNICODEMAP_ENABLE = no BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. +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 +#HARDWARE_SERIAL = yes CUSTOM_MATRIX = 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 - -#HARDWARE_SERIAL = yes - SRC += matrix.c - ifdef HARDWARE_SERIAL - # untested with palm_usb - SRC += protocol/serial_uart.c - OPT_DEFS += -DHARDWARE_SERIAL + # Untested with palm_usb + SRC += protocol/serial_uart.c + OPT_DEFS += -DHARDWARE_SERIAL else - SRC += protocol/serial_soft.c + SRC += protocol/serial_soft.c endif DEFAULT_FOLDER = converter/palm_usb/stowaway - diff --git a/keyboards/converter/sun_usb/rules.mk b/keyboards/converter/sun_usb/rules.mk index 3cf503b1d25..22311c3d4c7 100644 --- a/keyboards/converter/sun_usb/rules.mk +++ b/keyboards/converter/sun_usb/rules.mk @@ -9,14 +9,14 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT BOOTLOADER = lufa-dfu # Build Options -# change to "no" to disable the options, or define them in the Makefile in +# 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) +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 +CONSOLE_ENABLE = yes # 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 @@ -24,21 +24,18 @@ 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. +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 +#HARDWARE_SERIAL = yes CUSTOM_MATRIX = 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 - -#HARDWARE_SERIAL = yes - SRC += matrix.c led.c - ifdef HARDWARE_SERIAL - SRC += protocol/serial_uart.c - OPT_DEFS += -DHARDWARE_SERIAL + SRC += protocol/serial_uart.c + OPT_DEFS += -DHARDWARE_SERIAL else - SRC += protocol/serial_soft.c + SRC += protocol/serial_soft.c endif DEFAULT_FOLDER = converter/sun_usb/type5 diff --git a/keyboards/converter/usb_usb/rules.mk b/keyboards/converter/usb_usb/rules.mk index 7a8f24bb49a..dfe89ee7d94 100644 --- a/keyboards/converter/usb_usb/rules.mk +++ b/keyboards/converter/usb_usb/rules.mk @@ -1,7 +1,6 @@ # MCU name 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 @@ -23,7 +22,6 @@ F_CPU ?= 16000000 DEFAULT_FOLDER = converter/usb_usb/hasu - # # LUFA specific # @@ -45,7 +43,7 @@ F_USB = $(F_CPU) # Bootloader # This definition is optional, and if your keyboard supports multiple bootloaders of -# different sizes, comment this out, and the correct address will be loaded +# different sizes, comment this out, and the correct address will be loaded # automatically (+60). See bootloader.mk for all options. BOOTLOADER = caterina @@ -55,15 +53,15 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT # Build Options # comment out to disable the options. # -# 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 -# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -# NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA -# BACKLIGHT_ENABLE = yes -USB_HID_ENABLE = yes +#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 +#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +#NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA +#BACKLIGHT_ENABLE = yes +USB_HID_ENABLE = yes +CUSTOM_MATRIX = yes -CUSTOM_MATRIX = yes -SRC = custom_matrix.cpp \ No newline at end of file +SRC = custom_matrix.cpp diff --git a/keyboards/converter/xt_usb/rules.mk b/keyboards/converter/xt_usb/rules.mk index 0b8731f3263..1f96251830f 100644 --- a/keyboards/converter/xt_usb/rules.mk +++ b/keyboards/converter/xt_usb/rules.mk @@ -14,7 +14,6 @@ MCU = atmega32u4 # software delays. F_CPU = 16000000 - # # LUFA specific # @@ -42,21 +41,19 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT # BOOTLOADER = caterina # Pro Micro BOOTLOADER = halfkay # Teensy - # Build Options # 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 -NKRO_ENABLE = yes # USB Nkey Rollover -XT_ENABLE = yes -CUSTOM_MATRIX = yes +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 = yes # USB Nkey Rollover +XT_ENABLE = yes +CUSTOM_MATRIX = yes +SRC = matrix.c led.c # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax - -SRC = matrix.c led.c From ab579650b69f3080acc6cda62202605605a909bd Mon Sep 17 00:00:00 2001 From: Josh Forisha Date: Mon, 4 Feb 2019 17:29:44 -0600 Subject: [PATCH 54/55] Fix XD87 ANSI layout values (#5031) The tkl_ansi layout had an incorrect value for the grave/tilde key, and number row keys were misnumbered. This fix removes the typo and adds the missing K1C key. --- keyboards/xd87/xd87.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/xd87/xd87.h b/keyboards/xd87/xd87.h index c4df290a3be..2ed47fe9767 100644 --- a/keyboards/xd87/xd87.h +++ b/keyboards/xd87/xd87.h @@ -37,14 +37,14 @@ #define LAYOUT_tkl_ansi( \ K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ - K01, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1D, K1E, K1F, K1G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4F, \ K50, K51, K52, K58, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ ) LAYOUT_all( \ K00, KC_NO, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, KC_NO, K1D, KC_NO, K1E, K1F, K1G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, K1E, K1F, K1G, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, \ K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, KC_NO, KC_NO, K4F, KC_NO, \ @@ -67,4 +67,4 @@ K50, K51, K52, KC_NO, K58, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ ) -#endif \ No newline at end of file +#endif From 33526778209f9de570edd0b7af1a42eed8fffdc2 Mon Sep 17 00:00:00 2001 From: Brice Figureau Date: Tue, 5 Feb 2019 00:31:59 +0100 Subject: [PATCH 55/55] Make QMK Configurator work with e7-v1 (#5007) * Make QMK Configurator work with e7-v1 This adds the missing info.json file for the e7-v1 keyboard which I forgot to add to the original PR. This allows to see the correct layout in QMK Configurator. * Fix the ISO layout The ISO layout has one extra key (hash/tilde) on row 3 right before the enter key. The e7-v1 PCB has this key wired at the same switch as the ANSI backslash (since this switch is not used in ISO). --- keyboards/e7v1/config.h | 6 +++--- keyboards/e7v1/e7v1.h | 8 ++++---- keyboards/e7v1/info.json | 25 +++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 7 deletions(-) create mode 100644 keyboards/e7v1/info.json diff --git a/keyboards/e7v1/config.h b/keyboards/e7v1/config.h index 653d8740418..eacb3ba312b 100644 --- a/keyboards/e7v1/config.h +++ b/keyboards/e7v1/config.h @@ -6,9 +6,9 @@ #define VENDOR_ID 0xFEED #define PRODUCT_ID 0x7050 #define DEVICE_VER 0x0001 -#define MANUFACTURER Exclusive / E - Team -#define PRODUCT E7 - V1 -#define DESCRIPTION E7 - V1 QMK PCB(LED) +#define MANUFACTURER Exclusive / E-Team +#define PRODUCT E7-V1 +#define DESCRIPTION E7-V1 QMK PCB(LED) /* key matrix size */ #define MATRIX_ROWS 6 diff --git a/keyboards/e7v1/e7v1.h b/keyboards/e7v1/e7v1.h index 45ef519cd08..2fc7acb3bab 100644 --- a/keyboards/e7v1/e7v1.h +++ b/keyboards/e7v1/e7v1.h @@ -15,8 +15,8 @@ { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \ { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, KC_NO }, \ - { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, KC_NO }, \ - { K500, K501, K502, KC_NO, KC_NO, K505, KC_NO, KC_NO, KC_NO, KC_NO, K510, KC_NO, K512, K513, K514, K515 } \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, KC_NO }, \ + { K500, K501, K502, KC_NO, KC_NO, K505, KC_NO, KC_NO, KC_NO, KC_NO, K510, K511, K512, K513, K514, K515 } \ } #define LAYOUT_75_ansi( \ @@ -90,13 +90,13 @@ K000, K001, K002, K003, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, \ - K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K214, K313, \ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, \ K500, K501, K502, K505, K510, K512, K513, K514, K515 \ ) { \ { K000, K001, K002, K003, KC_NO, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \ - { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO, K215 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, KC_NO }, \ { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, KC_NO }, \ { K500, K501, K502, KC_NO, KC_NO, K505, KC_NO, KC_NO, KC_NO, KC_NO, K510, KC_NO, K512, K513, K514, K515 } \ diff --git a/keyboards/e7v1/info.json b/keyboards/e7v1/info.json new file mode 100644 index 00000000000..e675e661fa4 --- /dev/null +++ b/keyboards/e7v1/info.json @@ -0,0 +1,25 @@ +{ + "keyboard_name": "E7-V1", + "url": "", + "maintainer": "masterzen", + "width": 16.25, + "height": 6.5, + "layouts": { + "LAYOUT_all": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Home", "x":14, "y":0}, {"label":"End", "x":15.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"x":13, "y":1.5}, {"label":"Backspace", "x":14, "y":1.5}, {"label":"Page Up", "x":15.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"\\", "x":13.5, "y":2.5, "w":1.5}, {"label":"Page down", "x":15.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"label":"Z", "x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, {"label":"\u2191", "x":14.25, "y":4.75}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5}, {"label":"Win", "x":11, "y":5.5}, {"x":12, "y":5.5}, {"label":"\u2190", "x":13.25, "y":5.75}, {"label":"\u2193", "x":14.25, "y":5.75}, {"label":"\u2192", "x":15.25, "y":5.75}] + }, + "LAYOUT_75_ansi": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Home", "x":14, "y":0}, {"label":"End", "x":15.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Page Up", "x":15.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"\\", "x":13.5, "y":2.5, "w":1.5}, {"label":"Page down", "x":15.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, {"label":"\u2191", "x":14.25, "y":4.75}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.5}, {"label":"Win", "x":11.5, "y":5.5, "w":1.5}, {"label":"\u2190", "x":13.25, "y":5.75}, {"label":"\u2193", "x":14.25, "y":5.75}, {"label":"\u2192", "x":15.25, "y":5.75}] + }, + "LAYOUT_75_ansi_7u": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Home", "x":14, "y":0}, {"label":"End", "x":15.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"|", "x":13, "y":1.5, "w":2}, {"label":"Page Up", "x":15.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"Backspace", "x":13.5, "y":2.5, "w":1.5}, {"label":"Page down", "x":15.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, {"label":"\u2191", "x":14.25, "y":4.75}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, {"label":"Win", "x":1.5, "y":5.5, "w":1.5}, {"x":3, "y":5.5, "w":7}, {"label":"Alt", "x":10, "y":5.5, "w":1.5}, {"label":"Win", "x":11.5, "y":5.5, "w":1.5}, {"label":"\u2190", "x":13.25, "y":5.75}, {"label":"\u2193", "x":14.25, "y":5.75}, {"label":"\u2192", "x":15.25, "y":5.75}] }, + "LAYOUT_75_ansi_7u_splitbs": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Home", "x":14, "y":0}, {"label":"End", "x":15.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"|", "x":13, "y":1.5}, {"label":"Del", "x":14, "y":1.5}, {"label":"Page Up", "x":15.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"Backspace", "x":13.5, "y":2.5, "w":1.5}, {"label":"Page down", "x":15.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, {"label":"\u2191", "x":14.25, "y":4.75}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, {"label":"Win", "x":1.5, "y":5.5, "w":1.5}, {"x":3, "y":5.5, "w":7}, {"label":"Alt", "x":10, "y":5.5, "w":1.5}, {"label":"Win", "x":11.5, "y":5.5, "w":1.5}, {"label":"\u2190", "x":13.25, "y":5.75}, {"label":"\u2193", "x":14.25, "y":5.75}, {"label":"\u2192", "x":15.25, "y":5.75}] + }, + "LAYOUT_75_iso": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Home", "x":14, "y":0}, {"label":"End", "x":15.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Page Up", "x":15.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"Page down", "x":15.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"x":12.75, "y":3.5}, {"label":"Enter", "x":13.75, "y":2.5, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"label":"Z", "x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, {"label":"\u2191", "x":14.25, "y":4.75}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.5}, {"label":"Win", "x":11.5, "y":5.5, "w":1.5}, {"label":"\u2190", "x":13.25, "y":5.75}, {"label":"\u2193", "x":14.25, "y":5.75}, {"label":"\u2192", "x":15.25, "y":5.75}]}, + "LAYOUT_75_ansi_splitbs": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Home", "x":14, "y":0}, {"label":"End", "x":15.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"|", "x":13, "y":1.5}, {"label":"Del", "x":14, "y":1.5}, {"label":"Page Up", "x":15.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"Backspace", "x":13.5, "y":2.5, "w":1.5}, {"label":"Page down", "x":15.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, {"label":"\u2191", "x":14.25, "y":4.75}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.5}, {"label":"Win", "x":11.5, "y":5.5, "w":1.5}, {"label":"\u2190", "x":13.25, "y":5.75}, {"label":"\u2193", "x":14.25, "y":5.75}, {"label":"\u2192", "x":15.25, "y":5.75}] + } + } +}