diff options
| -rw-r--r-- | keyboards/linworks/fave87h/config.h | 103 | ||||
| -rw-r--r-- | keyboards/linworks/fave87h/fave87h.c | 51 | ||||
| -rw-r--r-- | keyboards/linworks/fave87h/fave87h.h | 34 | ||||
| -rw-r--r-- | keyboards/linworks/fave87h/info.json | 10 | ||||
| -rw-r--r-- | keyboards/linworks/fave87h/keymaps/default/keymap.c | 49 | ||||
| -rw-r--r-- | keyboards/linworks/fave87h/keymaps/via/keymap.c | 68 | ||||
| -rw-r--r-- | keyboards/linworks/fave87h/keymaps/via/rules.mk | 1 | ||||
| -rw-r--r-- | keyboards/linworks/fave87h/readme.md | 22 | ||||
| -rw-r--r-- | keyboards/linworks/fave87h/rules.mk | 23 | 
9 files changed, 361 insertions, 0 deletions
| diff --git a/keyboards/linworks/fave87h/config.h b/keyboards/linworks/fave87h/config.h new file mode 100644 index 0000000000..64f6fc4cba --- /dev/null +++ b/keyboards/linworks/fave87h/config.h @@ -0,0 +1,103 @@ +/* +Copyright 2020 <[email protected]> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID    0x4C58 //"LX" +#define PRODUCT_ID   0x0003 // FAve 87H +#define DEVICE_VER   0x0001 // Version 1 +#define MANUFACTURER    Lx3 +#define PRODUCT         FAve 87H + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +// Checked with Eagle Schematic +#define MATRIX_ROW_PINS { B1, B2, B3, D3, D1, D0  } +#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4, B0, B7, E6} +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +//Led configuration +#define RGB_DI_PIN D2 + +#define DRIVER_LED_TOTAL 127 +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 140 + +#define RGB_MATRIX_KEYPRESSES +//#define RGB_MATRIX_FRAMEBUFFER_EFFECTS + +#define RGB_DISABLE_WHEN_USB_SUSPENDED + +#define ENABLE_RGB_MATRIX_ALPHAS_MODS +#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_BREATHING +#define ENABLE_RGB_MATRIX_BAND_SAT +#define ENABLE_RGB_MATRIX_BAND_VAL +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define ENABLE_RGB_MATRIX_CYCLE_ALL +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +#define ENABLE_RGB_MATRIX_DUAL_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +#define ENABLE_RGB_MATRIX_RAINDROPS +#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +#define ENABLE_RGB_MATRIX_HUE_BREATHING +#define ENABLE_RGB_MATRIX_HUE_PENDULUM +#define ENABLE_RGB_MATRIX_HUE_WAVE +#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +#define ENABLE_RGB_MATRIX_PIXEL_RAIN +#ifdef RGB_MATRIX_FRAMEBUFFER_EFFECTS +    #define ENABLE_RGB_MATRIX_TYPING_HEATMAP +    #define ENABLE_RGB_MATRIX_DIGITAL_RAIN +#endif +#ifdef RGB_MATRIX_KEYPRESSES +    #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +    #define ENABLE_RGB_MATRIX_SOLID_REACTIVE +    #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +    #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +    #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +    #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +    #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +    #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +    #define ENABLE_RGB_MATRIX_SPLASH +    #define ENABLE_RGB_MATRIX_MULTISPLASH +    #define ENABLE_RGB_MATRIX_SOLID_SPLASH +    #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif + +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/keyboards/linworks/fave87h/fave87h.c b/keyboards/linworks/fave87h/fave87h.c new file mode 100644 index 0000000000..3bf2739f0b --- /dev/null +++ b/keyboards/linworks/fave87h/fave87h.c @@ -0,0 +1,51 @@ +/* +Copyright 2020 <[email protected]> +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ +#include "fave87h.h" + + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { +    { +        // Key Matrix to LED Index +        { 47, NO_LED, 48,     49,     50, 51,     52,     53,     54, 55, 56,     57,     58,     59,     60,     61,     62 }, +        { 46,     45, 44,     43,     42, 41,     40,     39,     38, 37, 36,     35,     34,     33,     32,     31,     30 }, +        { 13,     14, 15,     16,     17, 18,     19,     20,     21, 22, 23,     24,     25,     26,     27,     28,     29 }, +        { 12,     11, 10,      9,      8,  7,      6,      5,      4,  3,  2,      1, NO_LED,      0, NO_LED, NO_LED, NO_LED }, +        { 74,     75, 76,     77,     78, 79,     80,     81,     82, 83, 84, NO_LED,     85, NO_LED, NO_LED,     86, NO_LED }, +        { 73,     72, 71, NO_LED, NO_LED, 70, NO_LED, NO_LED, NO_LED, 69, 68, NO_LED,     67,     66,     65,     64,     63 }, +    }, { +        // LED Index to Physical Position +        {190, 40},  {167, 40},  {153, 40},  {139, 40},  {125, 40},  {111, 40},  {97, 40},   {83, 40},   {69, 40},   {55, 40},  +        {40, 40},   {26, 40},   {0, 41},    {5, 27},    {23, 27},   {37, 27},   {51, 27},   {65, 27},   {79, 27},   {93, 27},  +        {107, 27},  {121, 27},  {135, 27},  {149, 27},  {163, 27},  {177, 27},  {195, 27},  {216, 27},  {230, 27},  {244, 27},  +        {244, 15},  {230, 15},  {216, 15},  {191, 17},  {170, 15},  {156, 15},  {142, 15},  {128, 15},  {114, 15},  {100, 15},  +        {86, 15},   {72, 15},   {58, 15},   {44, 15},   {30, 15},   {16, 15},   {2, 15},    {2, 0},     {30, 0},    {44, 0},  +        {58, 0},    {72, 0},    {93, 0},    {107, 0},   {121, 0},   {135, 0},   {156, 0},   {170, 0},   {184, 0},   {198, 0},  +        {216, 0},   {230, 0},   {244, 0},   {244, 64},  {230, 64},  {216, 64},  {197, 64},  {179, 64},  {162, 64},  {144, 64},  +        {91, 64},   {39, 64},   {21, 64},   {4, 64},    {11, 52},   {33, 52},   {47, 52},   {62, 52},   {76, 52},   {90, 52},  +        {104, 52},  {118, 52},  {132, 52},  {146, 52},  {160, 52},  {186, 52},  {230, 52} +    }, { +        // LED Index to Flag +        1,    4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1,  +        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,  +        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,  +        8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1,  +        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1,       4, +        1, 1, 1,       4,          1, 1,    1, 1, 1, 1, 1, + +        2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, +        2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +    } +}; +#endif diff --git a/keyboards/linworks/fave87h/fave87h.h b/keyboards/linworks/fave87h/fave87h.h new file mode 100644 index 0000000000..748dae3ebc --- /dev/null +++ b/keyboards/linworks/fave87h/fave87h.h @@ -0,0 +1,34 @@ +/* +Copyright 2020 <[email protected]> +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +#include "quantum.h" + +/* FAve 87H Keymap Definitions */ +#define LAYOUT( \ +    K00,      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, 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, K3C, K3D,                 \ +    K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A,      K4C,            K4F,      \ +    K50, K51, K52,           K55,                K59, K5A,      K5C, K5D,  K5E, K5F, K5G  \ +) { \ +    { 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,   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,   K3C, K3D,   KC_NO, KC_NO, KC_NO }, \ +    { K40, K41,   K42, K43,   K44,   K45, K46,   K47,   K48,   K49, K4A, KC_NO, K4C, KC_NO, KC_NO, K4F,   KC_NO }, \ +    { K50, K51,   K52, KC_NO, KC_NO, K55, KC_NO, KC_NO, KC_NO, K59, K5A, KC_NO, K5C, K5D,   K5E,   K5F,   K5G   }  \ +} diff --git a/keyboards/linworks/fave87h/info.json b/keyboards/linworks/fave87h/info.json new file mode 100644 index 0000000000..ac82fa4d8a --- /dev/null +++ b/keyboards/linworks/fave87h/info.json @@ -0,0 +1,10 @@ +{ +    "keyboard_name": "Lx3 FAve 87H", +    "url": "", +    "maintainer": "ToastyStoemp", +    "layouts": { +        "LAYOUT": { +            "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"label":"Backspace", "x":13, "y":1.25, "w":2}, {"label":"Delete", "x":14, "y":1.25}, {"label":"Insert", "x":15.25, "y":1.25}, {"label":"Home", "x":16.25, "y":1.25}, {"label":"PgUp", "x":17.25, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.25}, {"label":"End", "x":16.25, "y":2.25}, {"label":"PgDn", "x":17.25, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, {"label":"Shift", "x":0, "y":4.25, "w":2.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.25}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"label":"Alt", "x":10, "y":5.25, "w":1.25}, {"label":"Win", "x":11.25, "y":5.25, "w":1.25}, {"label":"Fn", "x":12.5, "y":5.25, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.25}, {"label":"\u2193", "x":16.25, "y":5.25}, {"label":"\u2192", "x":17.25, "y":5.25}] +        } +    } +} diff --git a/keyboards/linworks/fave87h/keymaps/default/keymap.c b/keyboards/linworks/fave87h/keymaps/default/keymap.c new file mode 100644 index 0000000000..661c48f452 --- /dev/null +++ b/keyboards/linworks/fave87h/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +/* +Copyright 2020 <[email protected]> +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include QMK_KEYBOARD_H + +enum layers { +    _LAYER0, +    _LAYER1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +    [_LAYER0] = LAYOUT( +        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_PSCR, KC_SLCK, KC_PAUS, +        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_INS,  KC_HOME, 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_DEL,  KC_END,  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_DEL,  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_RGUI,          MO(1),   KC_RCTL,    KC_LEFT, KC_DOWN, KC_RGHT +    ), + +    [_LAYER1] = 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, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS, +        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST,         +        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET,   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,                      KC_AUDIO_VOL_UP, +        KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS,                            KC_TRNS, KC_TRNS,          KC_TRNS, KC_TRNS,    KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK +    ) +    }; +}; + +void rgb_matrix_indicators_user(void) { +    led_t host_leds = host_keyboard_led_state(); +    if (host_leds.caps_lock) { +        rgb_matrix_set_color(12, 254, 189, 41); // set caps lock led color first number is index, R G B +    } +}
\ No newline at end of file diff --git a/keyboards/linworks/fave87h/keymaps/via/keymap.c b/keyboards/linworks/fave87h/keymaps/via/keymap.c new file mode 100644 index 0000000000..a64a67df47 --- /dev/null +++ b/keyboards/linworks/fave87h/keymaps/via/keymap.c @@ -0,0 +1,68 @@ +/* +Copyright 2020 <[email protected]> +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include QMK_KEYBOARD_H + +enum layers { +    _LAYER0, +    _LAYER1, +    _LAYER2, +    _LAYER3, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +    [_LAYER0] = LAYOUT( +        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_PSCR, KC_SLCK, KC_PAUS, +        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_INS,  KC_HOME, 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_DEL,  KC_END,  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_DEL,  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_RGUI,          MO(1),   KC_RCTL,    KC_LEFT, KC_DOWN, KC_RGHT +    ), + +    [_LAYER1] = 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, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS, +        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST,         +        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET,   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,                      KC_AUDIO_VOL_UP, +        KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS,                            KC_TRNS, KC_TRNS,          KC_TRNS, KC_TRNS,    KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK +    ), + +    [_LAYER2] = 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, KC_TRNS, KC_TRNS,         +        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,                      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( +        KC_TRNS,          KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS, +        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS, +        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS, +        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,         +        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,                      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 rgb_matrix_indicators_user(void) { +    led_t host_leds = host_keyboard_led_state(); +    if (host_leds.caps_lock) { +        rgb_matrix_set_color(12, 254, 189, 41); // set caps lock led color first number is index, R G B +    } +}
\ No newline at end of file diff --git a/keyboards/linworks/fave87h/keymaps/via/rules.mk b/keyboards/linworks/fave87h/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/linworks/fave87h/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/linworks/fave87h/readme.md b/keyboards/linworks/fave87h/readme.md new file mode 100644 index 0000000000..cd256bcee5 --- /dev/null +++ b/keyboards/linworks/fave87h/readme.md @@ -0,0 +1,22 @@ +# FAve 87H + +The following is the QMK Firmware for the FAve 87H Hotswap PCB. + +The PCB features: +* QMK & VIA compatibility +* Hotswap + +--- + +* Keyboard Maintainer: [ToastyStoemp](https://github.com/ToastyStoemp) + +Make example for this keyboard (after setting up your build environment): + +    make linworks/fave87h: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). + +## Bootloader Enter the bootloader in 3 ways:  +* **Bootmagic reset**: Hold down the key ESC key and plug in the keyboard (Top Left most switch) +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the B key on layer 1 which is mapped to `RESET` diff --git a/keyboards/linworks/fave87h/rules.mk b/keyboards/linworks/fave87h/rules.mk new file mode 100644 index 0000000000..01b02d60ca --- /dev/null +++ b/keyboards/linworks/fave87h/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency +F_CPU = 8000000 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +#   change yes to no to disable +# +BOOTMAGIC_ENABLE = yes     # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no       # Mouse keys +EXTRAKEY_ENABLE = yes       # Audio control and System control +CONSOLE_ENABLE = no         # Console for debug +COMMAND_ENABLE = no        # Commands for debug and configuration +NKRO_ENABLE = yes           # Enable N-key Rollover +BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow +AUDIO_ENABLE = no           # Audio output +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812
\ No newline at end of file | 
