diff options
| author | QMK Bot <[email protected]> | 2021-09-09 06:35:29 +0000 | 
|---|---|---|
| committer | QMK Bot <[email protected]> | 2021-09-09 06:35:29 +0000 | 
| commit | 4e8f064c27b887172854d351ba4525e2bb8fbc3c (patch) | |
| tree | 9ebc5f56e647dc95358c7052b7953ca77cd38497 | |
| parent | 9ce3d1a7d4424939733d80451128e4416073af94 (diff) | |
| parent | 4c88f76be8099d45444cea894bb2162870115832 (diff) | |
| download | qmk_firmware-4e8f064c27b887172854d351ba4525e2bb8fbc3c.tar.gz qmk_firmware-4e8f064c27b887172854d351ba4525e2bb8fbc3c.zip | |
Merge remote-tracking branch 'origin/master' into develop
| -rw-r--r-- | keyboards/lyra/config.h | 19 | ||||
| -rw-r--r-- | keyboards/lyra/keymaps/default/config.h | 30 | ||||
| -rw-r--r-- | keyboards/lyra/keymaps/default/keymap.c | 48 | ||||
| -rw-r--r-- | keyboards/lyra/keymaps/default/rules.mk | 1 | ||||
| -rw-r--r-- | keyboards/lyra/keymaps/via/config.h | 30 | ||||
| -rw-r--r-- | keyboards/lyra/keymaps/via/keymap.c | 55 | ||||
| -rw-r--r-- | keyboards/lyra/keymaps/via/rules.mk | 2 | ||||
| -rw-r--r-- | keyboards/lyra/lyra.c | 89 | ||||
| -rw-r--r-- | keyboards/lyra/lyra.h | 23 | ||||
| -rw-r--r-- | keyboards/lyra/readme.md | 20 | ||||
| -rw-r--r-- | keyboards/lyra/rev1/config.h | 50 | ||||
| -rw-r--r-- | keyboards/lyra/rev1/info.json | 90 | ||||
| -rw-r--r-- | keyboards/lyra/rev1/rev1.c | 17 | ||||
| -rw-r--r-- | keyboards/lyra/rev1/rev1.h | 39 | ||||
| -rw-r--r-- | keyboards/lyra/rev1/rules.mk | 27 | 
15 files changed, 540 insertions, 0 deletions
| diff --git a/keyboards/lyra/config.h b/keyboards/lyra/config.h new file mode 100644 index 0000000000..a4606507ce --- /dev/null +++ b/keyboards/lyra/config.h @@ -0,0 +1,19 @@ + /* Copyright 2021 Domanic Calleja +  *  +  * 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" + diff --git a/keyboards/lyra/keymaps/default/config.h b/keyboards/lyra/keymaps/default/config.h new file mode 100644 index 0000000000..9c4bacd36d --- /dev/null +++ b/keyboards/lyra/keymaps/default/config.h @@ -0,0 +1,30 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako <[email protected]> +Copyright 2015 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 <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 100 diff --git a/keyboards/lyra/keymaps/default/keymap.c b/keyboards/lyra/keymaps/default/keymap.c new file mode 100644 index 0000000000..1d4bef03f2 --- /dev/null +++ b/keyboards/lyra/keymaps/default/keymap.c @@ -0,0 +1,48 @@ + /* Copyright 2021 Domanic Calleja +  *  +  * 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 +// +// Keymaps +// +enum lyra_layers { +    /* _M_XYZ = Mac Os, _W_XYZ = Win/Linux */ +    _QWERTY, +    _FUNCTION + +}; +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +    // Layer 0 +    [_QWERTY] = 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_BSPC, +    KC_TAB,		KC_LBRC,	KC_Q,		KC_W,				KC_E,		KC_R,		KC_T,				KC_Y,		KC_U,       KC_I,		KC_O,		KC_P,			KC_NUHS,		KC_DEL,			 +    KC_CLCK,	KC_RBRC,	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_NUBS,	KC_Z,		KC_X,       		KC_C,       KC_V,       KC_B,            	KC_N,		KC_M,		KC_COMM,	KC_DOT,		KC_SLSH,		KC_UP,			KC_RSFT, +    KC_LCTL,	KC_LGUI,	KC_LALT,	TT(1),				KC_APP,		KC_PGDN,	KC_SPC,				KC_SPC,		KC_PGUP,	KC_RALT,	KC_RCTL,	KC_LEFT,		KC_DOWN,		KC_RGHT					 +    ), + +    // Layer 1 +    [_FUNCTION] = 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_TRNS,    KC_TRNS,	KC_TRNS,    KC_TRNS,    KC_TRNS,	KC_TRNS,			KC_TRNS,    KC_TRNS,    KC_TRNS,	KC_TRNS,    KC_TRNS,		KC_TRNS,		KC_TRNS, +    KC_TRNS,		KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS, +    KC_TRNS,		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS, +    KC_TRNS,		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_VOLD,	KC_TRNS,			KC_TRNS,	KC_VOLU,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS	 +    ) + +}; + diff --git a/keyboards/lyra/keymaps/default/rules.mk b/keyboards/lyra/keymaps/default/rules.mk new file mode 100644 index 0000000000..c02c449839 --- /dev/null +++ b/keyboards/lyra/keymaps/default/rules.mk @@ -0,0 +1 @@ +CONSOLE_ENABLE = yes
\ No newline at end of file diff --git a/keyboards/lyra/keymaps/via/config.h b/keyboards/lyra/keymaps/via/config.h new file mode 100644 index 0000000000..9c4bacd36d --- /dev/null +++ b/keyboards/lyra/keymaps/via/config.h @@ -0,0 +1,30 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako <[email protected]> +Copyright 2015 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 <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 100 diff --git a/keyboards/lyra/keymaps/via/keymap.c b/keyboards/lyra/keymaps/via/keymap.c new file mode 100644 index 0000000000..aa88c2aac5 --- /dev/null +++ b/keyboards/lyra/keymaps/via/keymap.c @@ -0,0 +1,55 @@ + /* Copyright 2021 Domanic Calleja +  *  +  * 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 +// +// Keymaps +// + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +    // Layer 0 +    [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_BSPC, +    KC_TAB,		KC_LBRC,	KC_Q,		KC_W,				KC_E,		KC_R,		KC_T,				KC_Y,		KC_U,       KC_I,		KC_O,		KC_P,			KC_NUHS,		KC_DEL,			 +    KC_CLCK,	KC_RBRC,	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_NUBS,	KC_Z,		KC_X,       		KC_C,       KC_V,       KC_B,            	KC_N,		KC_M,		KC_COMM,	KC_DOT,		KC_SLSH,		KC_UP,			KC_RSFT, +    KC_LCTL,	KC_LGUI,	KC_LALT,	TT(1),				KC_APP,		KC_PGDN,	KC_SPC,				KC_SPC,		KC_PGUP,	KC_RALT,	KC_RCTL,	KC_LEFT,		KC_DOWN,		KC_RGHT					 +    ), + +    // Layer 1 +    [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_TRNS,    KC_TRNS,	KC_TRNS,    KC_TRNS,    KC_TRNS,	KC_TRNS,			KC_TRNS,    KC_TRNS,    KC_TRNS,	KC_TRNS,    KC_TRNS,		KC_TRNS,		KC_TRNS, +    KC_TRNS,		KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS, +    KC_TRNS,		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS, +    KC_TRNS,		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_VOLD,	KC_TRNS,			KC_TRNS,	KC_VOLU,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS	 +    ), +	    // Layer 2 +    [2] = 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_TRNS,    KC_TRNS,	KC_TRNS,    KC_TRNS,    KC_TRNS,	KC_TRNS,			KC_TRNS,    KC_TRNS,    KC_TRNS,	KC_TRNS,    KC_TRNS,		KC_TRNS,		KC_TRNS, +    KC_TRNS,		KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS, +    KC_TRNS,		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS, +    KC_TRNS,		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_VOLD,	KC_TRNS,			KC_TRNS,	KC_VOLU,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS	 +    ), +	    // Layer 3 +    [3] = 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_TRNS,    KC_TRNS,	KC_TRNS,    KC_TRNS,    KC_TRNS,	KC_TRNS,			KC_TRNS,    KC_TRNS,    KC_TRNS,	KC_TRNS,    KC_TRNS,		KC_TRNS,		KC_TRNS, +    KC_TRNS,		KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS, +    KC_TRNS,		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,			KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS, +    KC_TRNS,		KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_VOLD,	KC_TRNS,			KC_TRNS,	KC_VOLU,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS	 +    ), diff --git a/keyboards/lyra/keymaps/via/rules.mk b/keyboards/lyra/keymaps/via/rules.mk new file mode 100644 index 0000000000..5e92d952f1 --- /dev/null +++ b/keyboards/lyra/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +CONSOLE_ENABLE = yes +VIA_ENABLE = yes
\ No newline at end of file diff --git a/keyboards/lyra/lyra.c b/keyboards/lyra/lyra.c new file mode 100644 index 0000000000..19f6e44642 --- /dev/null +++ b/keyboards/lyra/lyra.c @@ -0,0 +1,89 @@ + /* Copyright 2021 Domanic Calleja +  *  +  * 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 "lyra.h" + +#ifdef OLED_DRIVER_ENABLE + +// 'lyralogooled', 32x128px +__attribute__((weak)) oled_rotation_t oled_init_user(oled_rotation_t rotation) { +    if (is_keyboard_master()) { +        return OLED_ROTATION_270; +    } +    return rotation; +} + +__attribute__((weak)) void oled_task_user(void) { +    if (is_keyboard_master()) { +        oled_write_P(PSTR("      "), false); +#    ifdef WPM_ENABLE +      uint8_t n = get_current_wpm(); +        char wpm_counter[4]; +        wpm_counter[3] = '\0'; +        wpm_counter[2] = '0' + n % 10; +        wpm_counter[1] = (n /= 10) % 10 ? '0' + (n) % 10 : (n / 10) % 10 ? '0' : ' '; +        wpm_counter[0] = n / 10 ? '0' + n / 10 : ' '; +        oled_write(wpm_counter, false); +        oled_write_ln_P(PSTR("   WPM"), false); +#    else +        oled_advance_page(true); +#    endif +        oled_advance_page(true); +        led_t led_usb_state = host_keyboard_led_state(); +        oled_write_ln_P(PSTR("CPSLK"), led_usb_state.caps_lock); +        oled_advance_page(true);  oled_advance_page(true); +        oled_write_ln_P(PSTR("Lyra"), false); +        oled_write_ln_P(PSTR("v1.1"), false); +        oled_write_ln_P(PSTR("by"), false); +        oled_write_P(PSTR("Dom C"), false); +    } else { +        static const char PROGMEM QMK_logo[] = { +            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0x78, 0x18, 0x0c, 0x04, 0x06, 0x02,  +            0x02, 0x82, 0xc0, 0xf0, 0x38, 0x8c, 0xf2, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +            0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +            0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x40, 0xc0, 0x80,  +            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +            0x00, 0x00, 0x00, 0x80, 0x40, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x18, 0x30, 0x20, 0xa0, 0xe0, 0xf8,  +            0x3e, 0x1f, 0x13, 0x0c, 0x06, 0xc3, 0xf0, 0x60, 0x00, 0x80, 0xf0, 0xe0, 0x00, 0x38, 0xfe, 0x67,  +            0x7b, 0xa5, 0xf3, 0xf0, 0x70, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0x70, 0x30, 0x20, 0x00, 0x00,  +            0x00, 0x80, 0x00, 0x00, 0x00, 0x7f, 0xc0, 0xdd, 0xdd, 0xdd, 0xe3, 0x7e, 0x3c, 0x3e, 0x61, 0xdf,  +            0xde, 0xde, 0x01, 0xff, 0xfe, 0x00, 0x80, 0x80, 0x80, 0xff, 0xc0, 0xdf, 0xdf, 0xdf, 0xe0, 0xff,  +            0x7f, 0x3c, 0x62, 0xdd, 0xdd, 0xdd, 0xe3, 0x7e, 0x3c, 0xfe, 0xc1, 0xfd, 0x7d, 0xc3, 0xfd, 0x7d,  +            0xc3, 0xfe, 0xfc, 0x30, 0xea, 0xd5, 0xd5, 0xd5, 0xc3, 0xff, 0xfe, 0x7e, 0xc1, 0xfd, 0x7d, 0x7d,  +            0xc3, 0xfe, 0xfc, 0x3f, 0xe1, 0xff, 0xff, 0x3c, 0x62, 0xdd, 0xdd, 0xdd, 0xf7, 0xe6, 0x00, 0x00,  +            0x00, 0x78, 0xc4, 0xc2, 0x82, 0x82, 0x82, 0x82, 0xc2, 0xe4, 0x74, 0x7c, 0x3f, 0x1f, 0x31, 0x60,  +            0xe0, 0xc0, 0x80, 0x9c, 0xbf, 0xe7, 0xf1, 0x78, 0x3e, 0x1f, 0x0b, 0x04, 0x02, 0x01, 0x00, 0x1c,  +            0x3e, 0x2f, 0x13, 0x10, 0x0c, 0x1e, 0x3f, 0x2f, 0x13, 0x09, 0x1c, 0x3e, 0x2f, 0x10, 0x08, 0x06,  +            0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x06,  +            0x06, 0x06, 0x07, 0x03, 0x7f, 0xc1, 0xbe, 0xbe, 0xbe, 0xa6, 0xe7, 0xc7, 0x60, 0xd4, 0xaa, 0xaa,  +            0xaa, 0x86, 0xfe, 0xfc, 0x7f, 0xc0, 0xff, 0xff, 0x7f, 0xc0, 0xff, 0xff, 0xc4, 0xaa, 0xaa, 0xaa,  +            0xa6, 0xfc, 0xf8, 0xff, 0x02, 0xff, 0xff, 0x60, 0xd4, 0xaa, 0xaa, 0xaa, 0x86, 0xfe, 0xfc, 0x00,  +            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +            0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x28, 0x24,  +            0x32, 0x1b, 0x1f, 0x0f, 0x0f, 0x1f, 0x1f, 0x3c, 0x38, 0x38, 0x78, 0x70, 0x70, 0x70, 0x30, 0x38,  +            0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01,  +            0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01,  +            0x01, 0x01, 0x07, 0x0d, 0x0e, 0x07, 0x03, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00,  +            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00  +        }; +        oled_write_raw_P(QMK_logo, sizeof(QMK_logo)); +    } +} +#endif  diff --git a/keyboards/lyra/lyra.h b/keyboards/lyra/lyra.h new file mode 100644 index 0000000000..ba0c8344fe --- /dev/null +++ b/keyboards/lyra/lyra.h @@ -0,0 +1,23 @@ + /* Copyright 2021 Domanic Calleja +  *  +  * 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" + + +#ifdef KEYBOARD_lyra_rev1 +    #include "rev1.h" +#endif diff --git a/keyboards/lyra/readme.md b/keyboards/lyra/readme.md new file mode 100644 index 0000000000..575afa3f03 --- /dev/null +++ b/keyboards/lyra/readme.md @@ -0,0 +1,20 @@ +# Lyra Keyboard +By Domanic Calleja - https://github.com/Malevolti + +Lyra is 7x5 keys column-staggered split keyboard. Based on  Sofle, Lily58, Corne and Helix keyboards. +There is an open source PCB available via https://github.com/Malevolti/Lyra +Instructions for handwiring and hand-wire specific case STLs are available for home 3d printing + +Make example for this keyboard (after setting up your build environment): + +    make lyra:default + +Flashing example for this keyboard: + +    make lyra:default:flash + +Press reset button on the keyboard when asked. + +Disconnect the first half, connect the second one and repeat the process. + +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/lyra/rev1/config.h b/keyboards/lyra/rev1/config.h new file mode 100644 index 0000000000..3dc9af28aa --- /dev/null +++ b/keyboards/lyra/rev1/config.h @@ -0,0 +1,50 @@ + /* Copyright 2021 Domanic Calleja +  *  +  * 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 + +/* USB Device descriptor parameter */ +#define VENDOR_ID       0x4443  //DC +#define PRODUCT_ID      0x4C43  //LC +#define DEVICE_VER      0x3031  //01 +#define MANUFACTURER    Dom +#define PRODUCT         Lyra + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 10 +#define MATRIX_COLS 7 + +// wiring of each half +#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 } +#define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4 } + +#define DIODE_DIRECTION COL2ROW + +#define TAPPING_TERM 100 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* communication between sides */ +#define USE_SERIAL +#define SERIAL_USE_MULTI_TRANSACTION +#define SOFT_SERIAL_PIN D2 + +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/keyboards/lyra/rev1/info.json b/keyboards/lyra/rev1/info.json new file mode 100644 index 0000000000..82dd811fd5 --- /dev/null +++ b/keyboards/lyra/rev1/info.json @@ -0,0 +1,90 @@ +{ +    "keyboard_name": "lyra", +    "url": "", +    "maintainer": "malevolti", +    "layouts": { +        "LAYOUT": { +            "layout": [ +                {"x": 0, "y": 0.3}, +                {"x": 1, "y": 0.4}, +                {"x": 2, "y": 0.3}, +                {"x": 3, "y": 0.1}, +                {"x": 4, "y": 0}, +                {"x": 5, "y": 0.1}, +                {"x": 6, "y": 0.25}, + +                {"x": 8, "y": 0.25}, +                {"x": 9, "y": 0.1}, +                {"x": 10, "y": 0}, +                {"x": 11, "y": 0.1}, +                {"x": 12, "y": 0.3}, +                {"x": 13, "y": 0.4}, +                {"x": 14, "y": 0.3}, + +                {"x": 0, "y": 1.3}, +                {"x": 1, "y": 1.4}, +                {"x": 2, "y": 1.3}, +                {"x": 3, "y": 1.1}, +                {"x": 4, "y": 1}, +                {"x": 5, "y": 1.1}, +                {"x": 6, "y": 1.25}, + +                {"x": 8, "y": 1.25}, +                {"x": 9, "y": 1.1}, +                {"x": 10, "y": 1}, +                {"x": 11, "y": 1.1}, +                {"x": 12, "y": 1.3}, +                {"x": 13, "y": 1.4}, +                {"x": 14, "y": 1.3}, + +                {"x": 0, "y": 2.3}, +                {"x": 1, "y": 2.4}, +                {"x": 2, "y": 2.3}, +                {"x": 3, "y": 2.1}, +                {"x": 4, "y": 2}, +                {"x": 5, "y": 2.1}, +                {"x": 6, "y": 2.25}, + +                {"x": 8, "y": 2.25}, +                {"x": 9, "y": 2.1}, +                {"x": 10, "y": 2}, +                {"x": 11, "y": 2.1}, +                {"x": 12, "y": 2.3}, +                {"x": 13, "y": 2.4}, +                {"x": 14, "y": 2.3}, + +                {"x": 0, "y": 3.3}, +                {"x": 1, "y": 3.4}, +                {"x": 2, "y": 3.3}, +                {"x": 3, "y": 3.1}, +                {"x": 4, "y": 3}, +                {"x": 5, "y": 3.1}, +                {"x": 6, "y": 3.25}, + +                {"x": 8, "y": 3.25}, +                {"x": 9, "y": 3.1}, +                {"x": 10, "y": 3}, +                {"x": 11, "y": 3.1}, +                {"x": 12, "y": 3.3}, +                {"x": 13, "y": 3.4}, +                {"x": 14, "y": 3.3}, + +                {"x": 0, "y": 4.3}, +                {"x": 1, "y": 4.4}, +                {"x": 2, "y": 4.3}, +                {"x": 3, "y": 4.1}, +                {"x": 4, "y": 4}, +                {"x": 5, "y": 4.1}, +                {"x": 6.25, "y": 4.5}, + +                {"x": 7.75, "y": 4.5}, +                {"x": 9, "y": 4.1}, +                {"x": 10, "y": 4}, +                {"x": 11, "y": 4.1}, +                {"x": 12, "y": 4.3}, +                {"x": 13, "y": 4.4}, +                {"x": 14, "y": 4.3} +            ] +        } +    } +} diff --git a/keyboards/lyra/rev1/rev1.c b/keyboards/lyra/rev1/rev1.c new file mode 100644 index 0000000000..5d66e2bbf6 --- /dev/null +++ b/keyboards/lyra/rev1/rev1.c @@ -0,0 +1,17 @@ + /* Copyright 2021 Domanic Calleja
 +  * 
 +  * 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 "rev1.h"
 diff --git a/keyboards/lyra/rev1/rev1.h b/keyboards/lyra/rev1/rev1.h new file mode 100644 index 0000000000..81b862c5c6 --- /dev/null +++ b/keyboards/lyra/rev1/rev1.h @@ -0,0 +1,39 @@ +/* Copyright 2021 Domanic Calleja +  *  +  * 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 "lyra.h" + + +#define LAYOUT( \ +	L00, L01, L02, L03, L04, L05, L06,          R00, R01, R02, R03, R04, R05, R06,	\ +	L10, L11, L12, L13, L14, L15, L16,          R10, R11, R12, R13, R14, R15, R16,  \ +	L20, L21, L22, L23, L24, L25, L26,          R20, R21, R22, R23, R24, R25, R26,	\ +	L30, L31, L32, L33, L34, L35, L36,			R30, R31, R32, R33, R34, R35, R36,	\ +	L40, L41, L42, L43, L44, L45, L46,			R40, R41, R42, R43, R44, R45, R46	\ +	) \ +	{ \ +		{ L00, L01, L02, L03, L04, L05, L06 }, \ +		{ L10, L11, L12, L13, L14, L15, L16 }, \ +		{ L20, L21, L22, L23, L24, L25, L26 }, \ +		{ L30, L31, L32, L33, L34, L35, L36 }, \ +		{ L40, L41, L42, L43, L44, L45, L46 }, \ +		{ R06, R05, R04, R03, R02, R01, R00 }, \ +		{ R16, R15, R14, R13, R12, R11, R10 }, \ +		{ R26, R25, R24, R23, R22, R21, R20 }, \ +		{ R36, R35, R34, R33, R32, R31, R30 }, \ +		{ R46, R45, R44, R43, R42, R41, R40 }	\ +	} diff --git a/keyboards/lyra/rev1/rules.mk b/keyboards/lyra/rev1/rules.mk new file mode 100644 index 0000000000..58cc6996f0 --- /dev/null +++ b/keyboards/lyra/rev1/rules.mk @@ -0,0 +1,27 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +#   change yes to no to disable +# +BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite +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 +# 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 +RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no       # Enable Bluetooth +AUDIO_ENABLE = no           # Audio output + +SPLIT_KEYBOARD = yes +OLED_ENABLE = yes +WPM_ENABLE = yes +LTO_ENABLE = yes 
\ No newline at end of file | 
