From 6baea243af2b42ff315d0cc529b3429c6376a060 Mon Sep 17 00:00:00 2001 From: EnviousData Date: Sat, 2 Jul 2022 20:32:40 +0100 Subject: [PATCH] Add support for Envious.Design Keyboards Add various RP2040 keyboards I've designed. --- keyboards/enviousdesign/60f/60f.c | 20 ++ keyboards/enviousdesign/60f/60f.h | 45 ++++ keyboards/enviousdesign/60f/config.h | 152 ++++++++++++ keyboards/enviousdesign/60f/info.json | 10 + .../60f/keymaps/default/keymap.c | 44 ++++ .../enviousdesign/60f/keymaps/via/config.h | 9 + .../enviousdesign/60f/keymaps/via/keymap.c | 44 ++++ .../enviousdesign/60f/keymaps/via/rules.mk | 3 + keyboards/enviousdesign/60f/readme.md | 19 ++ keyboards/enviousdesign/60f/rules.mk | 21 ++ keyboards/enviousdesign/65m/65m.c | 19 ++ keyboards/enviousdesign/65m/65m.h | 23 ++ keyboards/enviousdesign/65m/config.h | 157 ++++++++++++ keyboards/enviousdesign/65m/info.json | 82 +++++++ .../65m/keymaps/default/keymap.c | 17 ++ keyboards/enviousdesign/65m/readme.md | 19 ++ keyboards/enviousdesign/65m/rules.mk | 25 ++ keyboards/enviousdesign/README.md | 15 ++ keyboards/enviousdesign/mcro/readme.md | 19 ++ keyboards/enviousdesign/mcro/rev1/config.h | 156 ++++++++++++ keyboards/enviousdesign/mcro/rev1/info.json | 10 + .../mcro/rev1/keymaps/default/keymap.c | 43 ++++ .../mcro/rev1/keymaps/via/config.h | 9 + .../mcro/rev1/keymaps/via/keymap.c | 43 ++++ .../mcro/rev1/keymaps/via/rules.mk | 3 + keyboards/enviousdesign/mcro/rev1/readme.md | 19 ++ keyboards/enviousdesign/mcro/rev1/rev1.c | 21 ++ keyboards/enviousdesign/mcro/rev1/rev1.h | 41 ++++ keyboards/enviousdesign/mcro/rev1/rules.mk | 30 +++ keyboards/enviousdesign/tkl/readme.md | 21 ++ keyboards/enviousdesign/tkl/rev0/config.h | 158 ++++++++++++ keyboards/enviousdesign/tkl/rev0/info.json | 99 ++++++++ .../tkl/rev0/keymaps/default/keymap.c | 37 +++ keyboards/enviousdesign/tkl/rev0/readme.md | 21 ++ keyboards/enviousdesign/tkl/rev0/rev0.c | 20 ++ keyboards/enviousdesign/tkl/rev0/rev0.h | 50 ++++ keyboards/enviousdesign/tkl/rev0/rules.mk | 26 ++ keyboards/enviousdesign/tkl/rev1/config.h | 160 ++++++++++++ keyboards/enviousdesign/tkl/rev1/info.json | 10 + .../tkl/rev1/keymaps/default/keymap.c | 56 +++++ .../tkl/rev1/keymaps/via/config.h | 9 + .../tkl/rev1/keymaps/via/keymap.c | 56 +++++ .../tkl/rev1/keymaps/via/rules.mk | 4 + keyboards/enviousdesign/tkl/rev1/readme.md | 21 ++ keyboards/enviousdesign/tkl/rev1/rev1.c | 19 ++ keyboards/enviousdesign/tkl/rev1/rev1.h | 50 ++++ keyboards/enviousdesign/tkl/rev1/rules.mk | 26 ++ keyboards/enviousdesign/tkl/rgb/config.h | 232 ++++++++++++++++++ keyboards/enviousdesign/tkl/rgb/info.json | 100 ++++++++ .../tkl/rgb/keymaps/default/keymap.c | 97 ++++++++ keyboards/enviousdesign/tkl/rgb/readme.md | 25 ++ keyboards/enviousdesign/tkl/rgb/rgb.c | 50 ++++ keyboards/enviousdesign/tkl/rgb/rgb.h | 53 ++++ keyboards/enviousdesign/tkl/rgb/rules.mk | 29 +++ 54 files changed, 2547 insertions(+) create mode 100644 keyboards/enviousdesign/60f/60f.c create mode 100644 keyboards/enviousdesign/60f/60f.h create mode 100644 keyboards/enviousdesign/60f/config.h create mode 100644 keyboards/enviousdesign/60f/info.json create mode 100644 keyboards/enviousdesign/60f/keymaps/default/keymap.c create mode 100644 keyboards/enviousdesign/60f/keymaps/via/config.h create mode 100644 keyboards/enviousdesign/60f/keymaps/via/keymap.c create mode 100644 keyboards/enviousdesign/60f/keymaps/via/rules.mk create mode 100644 keyboards/enviousdesign/60f/readme.md create mode 100644 keyboards/enviousdesign/60f/rules.mk create mode 100644 keyboards/enviousdesign/65m/65m.c create mode 100644 keyboards/enviousdesign/65m/65m.h create mode 100644 keyboards/enviousdesign/65m/config.h create mode 100644 keyboards/enviousdesign/65m/info.json create mode 100644 keyboards/enviousdesign/65m/keymaps/default/keymap.c create mode 100644 keyboards/enviousdesign/65m/readme.md create mode 100644 keyboards/enviousdesign/65m/rules.mk create mode 100644 keyboards/enviousdesign/README.md create mode 100644 keyboards/enviousdesign/mcro/readme.md create mode 100644 keyboards/enviousdesign/mcro/rev1/config.h create mode 100644 keyboards/enviousdesign/mcro/rev1/info.json create mode 100644 keyboards/enviousdesign/mcro/rev1/keymaps/default/keymap.c create mode 100644 keyboards/enviousdesign/mcro/rev1/keymaps/via/config.h create mode 100644 keyboards/enviousdesign/mcro/rev1/keymaps/via/keymap.c create mode 100644 keyboards/enviousdesign/mcro/rev1/keymaps/via/rules.mk create mode 100644 keyboards/enviousdesign/mcro/rev1/readme.md create mode 100644 keyboards/enviousdesign/mcro/rev1/rev1.c create mode 100644 keyboards/enviousdesign/mcro/rev1/rev1.h create mode 100644 keyboards/enviousdesign/mcro/rev1/rules.mk create mode 100644 keyboards/enviousdesign/tkl/readme.md create mode 100644 keyboards/enviousdesign/tkl/rev0/config.h create mode 100644 keyboards/enviousdesign/tkl/rev0/info.json create mode 100644 keyboards/enviousdesign/tkl/rev0/keymaps/default/keymap.c create mode 100644 keyboards/enviousdesign/tkl/rev0/readme.md create mode 100644 keyboards/enviousdesign/tkl/rev0/rev0.c create mode 100644 keyboards/enviousdesign/tkl/rev0/rev0.h create mode 100644 keyboards/enviousdesign/tkl/rev0/rules.mk create mode 100644 keyboards/enviousdesign/tkl/rev1/config.h create mode 100644 keyboards/enviousdesign/tkl/rev1/info.json create mode 100644 keyboards/enviousdesign/tkl/rev1/keymaps/default/keymap.c create mode 100644 keyboards/enviousdesign/tkl/rev1/keymaps/via/config.h create mode 100644 keyboards/enviousdesign/tkl/rev1/keymaps/via/keymap.c create mode 100644 keyboards/enviousdesign/tkl/rev1/keymaps/via/rules.mk create mode 100644 keyboards/enviousdesign/tkl/rev1/readme.md create mode 100644 keyboards/enviousdesign/tkl/rev1/rev1.c create mode 100644 keyboards/enviousdesign/tkl/rev1/rev1.h create mode 100644 keyboards/enviousdesign/tkl/rev1/rules.mk create mode 100644 keyboards/enviousdesign/tkl/rgb/config.h create mode 100644 keyboards/enviousdesign/tkl/rgb/info.json create mode 100644 keyboards/enviousdesign/tkl/rgb/keymaps/default/keymap.c create mode 100644 keyboards/enviousdesign/tkl/rgb/readme.md create mode 100644 keyboards/enviousdesign/tkl/rgb/rgb.c create mode 100644 keyboards/enviousdesign/tkl/rgb/rgb.h create mode 100644 keyboards/enviousdesign/tkl/rgb/rules.mk diff --git a/keyboards/enviousdesign/60f/60f.c b/keyboards/enviousdesign/60f/60f.c new file mode 100644 index 00000000000..41c3ff7a1a0 --- /dev/null +++ b/keyboards/enviousdesign/60f/60f.c @@ -0,0 +1,20 @@ +/* Copyright 2022 Envious Design + * + * 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 + + + diff --git a/keyboards/enviousdesign/60f/60f.h b/keyboards/enviousdesign/60f/60f.h new file mode 100644 index 00000000000..86a84c2384d --- /dev/null +++ b/keyboards/enviousdesign/60f/60f.h @@ -0,0 +1,45 @@ +/* Copyright 2022 Envious DesignLAYOUT_60_iso + * + * 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 is 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_60_comb( \ + KC100, KC101, KC102, KC103, KC104, KC105, KC106, KC107, KC108, KC109, KC110, KC111, KC112, KC113, \ + KC200, KC201, KC202, KC203, KC204, KC205, KC206, KC207, KC208, KC209, KC210, KC211, KC212, KC213, \ + KC300, KC301, KC302, KC303, KC304, KC305, KC306, KC307, KC308, KC309, KC310, KC311, KC312, KC313, \ + KC400, KC401, KC402, KC403, KC404, KC405, KC406, KC407, KC408, KC409, KC410, KC411, KC412, \ + KC500, KC501, KC502, KC503, KC504, KC505, KC506, KC507 \ +) { \ + { KC100, KC101, KC102, KC103, KC104, KC105, KC106, KC107, KC108, KC109, KC110, KC111, KC112, KC_NO, KC113,}, \ + { KC200, KC_NO, KC201, KC202, KC203, KC204, KC205, KC206, KC207, KC208, KC209, KC210, KC211, KC212, KC213,}, \ + { KC300, KC_NO, KC301, KC302, KC303, KC304, KC305, KC306, KC307, KC308, KC309, KC310, KC311, KC312, KC313,}, \ + { KC400, KC401, KC402, KC403, KC404, KC405, KC406, KC407, KC408, KC409, KC410, KC411, KC_NO, KC412, KC_NO,}, \ + { KC500, KC501, KC_NO, KC502, KC_NO, KC_NO, KC503, KC_NO, KC_NO, KC_NO, KC504, KC505, KC_NO, KC506, KC507 } \ +} diff --git a/keyboards/enviousdesign/60f/config.h b/keyboards/enviousdesign/60f/config.h new file mode 100644 index 00000000000..ec816a9edff --- /dev/null +++ b/keyboards/enviousdesign/60f/config.h @@ -0,0 +1,152 @@ +/* +Copyright 2022 Envious Design + +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 0x2E8A +#define PRODUCT_ID 0xE739 +#define DEVICE_VER 0x0001 +#define MANUFACTURER EnviousDesign +#define PRODUCT 60F 1.0 + +/* 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 { 11, 12, 13, 14, 15 } +#define MATRIX_COL_PINS { 10, 9, 8, 7, 6, 5, 16, 17, 18, 19, 20, 21, 22, 26, 27 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#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 LED_NUM_LOCK_PIN B0 +//#define LED_CAPS_LOCK_PIN 25 +//#define LED_SCROLL_LOCK_PIN B2 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +//#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 +/*== customize breathing effect ==*/ +/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +/*==== use exp() and sin() ====*/ +//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +//#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* 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 useful 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 + +/* + * 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 + +/* disable these deprecated features by default */ +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/enviousdesign/60f/info.json b/keyboards/enviousdesign/60f/info.json new file mode 100644 index 00000000000..49be98a45a8 --- /dev/null +++ b/keyboards/enviousdesign/60f/info.json @@ -0,0 +1,10 @@ +{ + "keyboard_name": "60F 1.0", + "url": "http://envious.design", + "maintainer": "Envious.Design", + "layouts": { + "LAYOUT_60_comb": { + "layout": [{"label":"0,0", "x":2.5, "y":0}, {"label":"0,1", "x":3.5, "y":0}, {"label":"0,2", "x":4.5, "y":0}, {"label":"0,3", "x":5.5, "y":0}, {"label":"0,4", "x":6.5, "y":0}, {"label":"0,5", "x":7.5, "y":0}, {"label":"0,6", "x":8.5, "y":0}, {"label":"0,7", "x":9.5, "y":0}, {"label":"0,8", "x":10.5, "y":0}, {"label":"0,9", "x":11.5, "y":0}, {"label":"0,10", "x":12.5, "y":0}, {"label":"0,11", "x":13.5, "y":0}, {"label":"0,12", "x":14.5, "y":0}, {"label":"0,14", "x":15.5, "y":0, "w":2}, {"label":"1,0", "x":2.5, "y":1, "w":1.5}, {"label":"1,2", "x":4, "y":1}, {"label":"1,3", "x":5, "y":1}, {"label":"1,4", "x":6, "y":1}, {"label":"1,5", "x":7, "y":1}, {"label":"1,6", "x":8, "y":1}, {"label":"1,7", "x":9, "y":1}, {"label":"1,8", "x":10, "y":1}, {"label":"1,9", "x":11, "y":1}, {"label":"1,10", "x":12, "y":1}, {"label":"1,11", "x":13, "y":1}, {"label":"1,12", "x":14, "y":1}, {"label":"1,13", "x":15, "y":1}, {"label":"2,14", "x":16.25, "y":1, "w":1.25, "h":2}, {"label":"1,14", "x":18.5, "y":1, "w":1.5}, {"label":"2,0", "x":2.5, "y":2, "w":1.75}, {"label":"2,2", "x":4.25, "y":2}, {"label":"2,3", "x":5.25, "y":2}, {"label":"2,4", "x":6.25, "y":2}, {"label":"2,5", "x":7.25, "y":2}, {"label":"2,6", "x":8.25, "y":2}, {"label":"2,7", "x":9.25, "y":2}, {"label":"2,8", "x":10.25, "y":2}, {"label":"2,9", "x":11.25, "y":2}, {"label":"2,10", "x":12.25, "y":2}, {"label":"2,11", "x":13.25, "y":2}, {"label":"2,12", "x":14.25, "y":2}, {"label":"2,13", "x":15.25, "y":2}, {"label":"3,0", "x":2.5, "y":3, "w":1.25}, {"label":"3,1", "x":3.75, "y":3}, {"label":"3,2", "x":4.75, "y":3}, {"label":"3,3", "x":5.75, "y":3}, {"label":"3,4", "x":6.75, "y":3}, {"label":"3,5", "x":7.75, "y":3}, {"label":"3,6", "x":8.75, "y":3}, {"label":"3,7", "x":9.75, "y":3}, {"label":"3,8", "x":10.75, "y":3}, {"label":"3,9", "x":11.75, "y":3}, {"label":"3,10", "x":12.75, "y":3}, {"label":"3,11", "x":13.75, "y":3}, {"label":"3,13", "x":14.75, "y":3, "w":2.75}, {"label":"4,0", "x":2.5, "y":4, "w":1.25}, {"label":"4,1", "x":3.75, "y":4, "w":1.25}, {"label":"4,3", "x":5, "y":4, "w":1.25}, {"label":"4,6", "x":6.25, "y":4, "w":6.25}, {"label":"4,10", "x":12.5, "y":4, "w":1.25}, {"label":"4,11", "x":13.75, "y":4, "w":1.25}, {"label":"4,13", "x":15, "y":4, "w":1.25}, {"label":"4,14", "x":16.25, "y":4, "w":1.25}] + } + } +} \ No newline at end of file diff --git a/keyboards/enviousdesign/60f/keymaps/default/keymap.c b/keyboards/enviousdesign/60f/keymaps/default/keymap.c new file mode 100644 index 00000000000..bbb4a524221 --- /dev/null +++ b/keyboards/enviousdesign/60f/keymaps/default/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2022 Envious Design + * + * 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 + +//tempoary I guess. +#define RESET KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_60_comb( + 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_NUHS, 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_RSFT, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(1), KC_RCTL + ), + [1] = LAYOUT_60_comb( + 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, + QK_BOOT, KC_VOLU, KC_UP, KC_MYCM, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INSERT,KC_HOME,KC_PGUP, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_TRNS, + KC_TRNS, KC_VOLD, KC_TRNS, KC_TRNS, KC_CALCULATOR,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_APP, KC_TRNS, KC_TRNS + ), [2] = LAYOUT_60_comb( + 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, + QK_BOOT, KC_VOLU, KC_UP, KC_MYCM, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INSERT,KC_HOME,KC_PGUP, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_TRNS, + KC_TRNS, KC_VOLD, KC_TRNS, KC_TRNS, KC_CALCULATOR,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_APP, KC_TRNS, KC_TRNS + ), +}; + diff --git a/keyboards/enviousdesign/60f/keymaps/via/config.h b/keyboards/enviousdesign/60f/keymaps/via/config.h new file mode 100644 index 00000000000..ad5d33ada08 --- /dev/null +++ b/keyboards/enviousdesign/60f/keymaps/via/config.h @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0x96, 0x81, 0x7A, 0x4C, 0xCA, 0xED, 0xA7, 0x6B} + + +#define VIAL_UNLOCK_COMBO_ROWS { 0, 2 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 13 } diff --git a/keyboards/enviousdesign/60f/keymaps/via/keymap.c b/keyboards/enviousdesign/60f/keymaps/via/keymap.c new file mode 100644 index 00000000000..bbb4a524221 --- /dev/null +++ b/keyboards/enviousdesign/60f/keymaps/via/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2022 Envious Design + * + * 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 + +//tempoary I guess. +#define RESET KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_60_comb( + 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_NUHS, 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_RSFT, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(1), KC_RCTL + ), + [1] = LAYOUT_60_comb( + 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, + QK_BOOT, KC_VOLU, KC_UP, KC_MYCM, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INSERT,KC_HOME,KC_PGUP, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_TRNS, + KC_TRNS, KC_VOLD, KC_TRNS, KC_TRNS, KC_CALCULATOR,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_APP, KC_TRNS, KC_TRNS + ), [2] = LAYOUT_60_comb( + 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, + QK_BOOT, KC_VOLU, KC_UP, KC_MYCM, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INSERT,KC_HOME,KC_PGUP, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_TRNS, + KC_TRNS, KC_VOLD, KC_TRNS, KC_TRNS, KC_CALCULATOR,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_APP, KC_TRNS, KC_TRNS + ), +}; + diff --git a/keyboards/enviousdesign/60f/keymaps/via/rules.mk b/keyboards/enviousdesign/60f/keymaps/via/rules.mk new file mode 100644 index 00000000000..492d1d8f570 --- /dev/null +++ b/keyboards/enviousdesign/60f/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +EEPROM_DRIVER = vendor +VIA_ENABLE = yes +VIAL_ENABLE = yes \ No newline at end of file diff --git a/keyboards/enviousdesign/60f/readme.md b/keyboards/enviousdesign/60f/readme.md new file mode 100644 index 00000000000..55e1647139a --- /dev/null +++ b/keyboards/enviousdesign/60f/readme.md @@ -0,0 +1,19 @@ +# EnvKB 60F + + +A low cost Standard 60% Design which takes inspiration from the CFTKB Mysterium. + +* Keyboard Maintainer: [Envious-Data](https://github.com/envious-data) +* Hardware Supported: + * EnvKB 60F **<- you are here** + + + +Make example for this keyboard (after setting up your build environment): + +``` +make envious/envkb/60f: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/enviousdesign/60f/rules.mk b/keyboards/enviousdesign/60f/rules.mk new file mode 100644 index 00000000000..084edb96ffc --- /dev/null +++ b/keyboards/enviousdesign/60f/rules.mk @@ -0,0 +1,21 @@ +# MCU name +MCU = RP2040 +BOOTLOADER = rp2040 + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # 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 = 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 + diff --git a/keyboards/enviousdesign/65m/65m.c b/keyboards/enviousdesign/65m/65m.c new file mode 100644 index 00000000000..b142f3692ec --- /dev/null +++ b/keyboards/enviousdesign/65m/65m.c @@ -0,0 +1,19 @@ +/* Copyright 2021 + * + * 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 + + diff --git a/keyboards/enviousdesign/65m/65m.h b/keyboards/enviousdesign/65m/65m.h new file mode 100644 index 00000000000..e1e4b4f6f2d --- /dev/null +++ b/keyboards/enviousdesign/65m/65m.h @@ -0,0 +1,23 @@ +// Copyright 2022 +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \ + K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K2E, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F, K3G, \ + K40, K41, K43, K44, K46, K48, K4A, K4B, K4C, K4D, K4E, K4F, K4G \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, XXX, K0E, XXX, XXX }, \ + { K10, XXX, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX, XXX, XXX }, \ + { K20, XXX, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, XXX, XXX }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E, K3F, K3G }, \ + { K40, K41, XXX, K43, K44, XXX, K46, XXX, K48, XXX, K4A, K4B, K4C, K4D, K4E, K4F, K4G }, \ +} + diff --git a/keyboards/enviousdesign/65m/config.h b/keyboards/enviousdesign/65m/config.h new file mode 100644 index 00000000000..b04b79c7531 --- /dev/null +++ b/keyboards/enviousdesign/65m/config.h @@ -0,0 +1,157 @@ +/* +Copyright 2021 + +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 0x2E8A +#define PRODUCT_ID 0xE739 +#define DEVICE_VER 0x0001 +#define MANUFACTURER EnviousDesign +#define PRODUCT EnvKB 65M + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 17 + +#define GPIO_INPUT_PIN_DELAY 100 + +#define DEBUG_MATRIX_SCAN_RATE +#define DEBUG_ACTION + +/* + * KeyMatrix 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 { GP21, GP20, GP19, GP18, GP17 } +#define MATRIX_COL_PINS { GP0, GP1, GP2, GP3, GP4, GP5, GP6, GP7, GP8, GP9, GP10, GP11, GP12, GP13, GP14, GP15, GP16 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* + * Split Keyspecific options, make sure you have 'SPLIT_KEY= yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +//#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 + +//#define LED_NUM_LOCK_PIN B0 +//#define LED_CAPS_LOCK_PIN 25 +//#define LED_SCROLL_LOCK_PIN B2 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +//#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 +/*== customize breathing effect ==*/ +/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +/*==== use exp() and sin() ====*/ +//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +//#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* 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 useful 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 keyreset. + * + * 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 key. Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * 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 + +/* disable these deprecated features by default */ +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/enviousdesign/65m/info.json b/keyboards/enviousdesign/65m/info.json new file mode 100644 index 00000000000..9e4ec087c6e --- /dev/null +++ b/keyboards/enviousdesign/65m/info.json @@ -0,0 +1,82 @@ +{ + "keyboard_name": "EnvKB 65M", + "url": "http://envious.design", + "maintainer": "Envious.Design", + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "K00 (B0,B5)", "x": 0, "y": 0 }, + { "label": "K01 (B0,B6)", "x": 1, "y": 0 }, + { "label": "K02 (B0,B7)", "x": 2, "y": 0 }, + { "label": "K03 (B0,C0)", "x": 3, "y": 0 }, + { "label": "K04 (B0,C1)", "x": 4, "y": 0 }, + { "label": "K05 (B0,C2)", "x": 5, "y": 0 }, + { "label": "K06 (B0,C3)", "x": 6, "y": 0 }, + { "label": "K07 (B0,C4)", "x": 7, "y": 0 }, + { "label": "K08 (B0,C5)", "x": 8, "y": 0 }, + { "label": "K09 (B0,C6)", "x": 9, "y": 0 }, + { "label": "K0A (B0,C7)", "x": 10, "y": 0 }, + { "label": "K0B (B0,D0)", "x": 11, "y": 0 }, + { "label": "K0C (B0,D1)", "x": 12, "y": 0 }, + { "label": "K0E (B0,D3)", "x": 13, "y": 0, "w": 2 }, + { "label": "K10 (B1,B5)", "x": 0, "y": 1, "w": 1.5 }, + { "label": "K12 (B1,B7)", "x": 1.5, "y": 1 }, + { "label": "K13 (B1,C0)", "x": 2.5, "y": 1 }, + { "label": "K14 (B1,C1)", "x": 3.5, "y": 1 }, + { "label": "K15 (B1,C2)", "x": 4.5, "y": 1 }, + { "label": "K16 (B1,C3)", "x": 5.5, "y": 1 }, + { "label": "K17 (B1,C4)", "x": 6.5, "y": 1 }, + { "label": "K18 (B1,C5)", "x": 7.5, "y": 1 }, + { "label": "K19 (B1,C6)", "x": 8.5, "y": 1 }, + { "label": "K1A (B1,C7)", "x": 9.5, "y": 1 }, + { "label": "K1B (B1,D0)", "x": 10.5, "y": 1 }, + { "label": "K1C (B1,D1)", "x": 11.5, "y": 1 }, + { "label": "K1D (B1,D2)", "x": 12.5, "y": 1 }, + { "label": "K2E (B2,D3)", "x": 13.75, "y": 1, "w": 1.25, "h": 2 }, + { "label": "K20 (B2,B5)", "x": 0, "y": 2, "w": 1.75 }, + { "label": "K22 (B2,B7)", "x": 1.75, "y": 2 }, + { "label": "K23 (B2,C0)", "x": 2.75, "y": 2 }, + { "label": "K24 (B2,C1)", "x": 3.75, "y": 2 }, + { "label": "K25 (B2,C2)", "x": 4.75, "y": 2 }, + { "label": "K26 (B2,C3)", "x": 5.75, "y": 2 }, + { "label": "K27 (B2,C4)", "x": 6.75, "y": 2 }, + { "label": "K28 (B2,C5)", "x": 7.75, "y": 2 }, + { "label": "K29 (B2,C6)", "x": 8.75, "y": 2 }, + { "label": "K2A (B2,C7)", "x": 9.75, "y": 2 }, + { "label": "K2B (B2,D0)", "x": 10.75, "y": 2 }, + { "label": "K2C (B2,D1)", "x": 11.75, "y": 2 }, + { "label": "K2D (B2,D2)", "x": 12.75, "y": 2 }, + { "label": "K30 (B3,B5)", "x": 0, "y": 3, "w": 1.25 }, + { "label": "K31 (B3,B6)", "x": 1.25, "y": 3 }, + { "label": "K32 (B3,B7)", "x": 2.25, "y": 3 }, + { "label": "K33 (B3,C0)", "x": 3.25, "y": 3 }, + { "label": "K34 (B3,C1)", "x": 4.25, "y": 3 }, + { "label": "K35 (B3,C2)", "x": 5.25, "y": 3 }, + { "label": "K36 (B3,C3)", "x": 6.25, "y": 3 }, + { "label": "K37 (B3,C4)", "x": 7.25, "y": 3 }, + { "label": "K38 (B3,C5)", "x": 8.25, "y": 3 }, + { "label": "K39 (B3,C6)", "x": 9.25, "y": 3 }, + { "label": "K3A (B3,C7)", "x": 10.25, "y": 3 }, + { "label": "K3B (B3,D0)", "x": 11.25, "y": 3 }, + { "label": "K3D (B3,D2)", "x": 12.25, "y": 3, "w": 1.75 }, + { "label": "K3E (B3,D3)", "x": 14, "y": 3 }, + { "label": "K3F (B3,D4)", "x": 15, "y": 3 }, + { "label": "K3G (B3,D5)", "x": 16, "y": 3 }, + { "label": "K40 (B4,B5)", "x": 0, "y": 4, "w": 1.25 }, + { "label": "K41 (B4,B6)", "x": 1.25, "y": 4, "w": 1.25 }, + { "label": "K43 (B4,C0)", "x": 2.5, "y": 4, "w": 1.25 }, + { "label": "K44 (B4,C1)", "x": 3.75, "y": 4, "w": 2.25 }, + { "label": "K46 (B4,C3)", "x": 6, "y": 4, "w": 1.75 }, + { "label": "K48 (B4,C5)", "x": 7.75, "y": 4, "w": 2.25 }, + { "label": "K4A (B4,C7)", "x": 10, "y": 4 }, + { "label": "K4B (B4,D0)", "x": 11, "y": 4 }, + { "label": "K4C (B4,D1)", "x": 12, "y": 4 }, + { "label": "K4D (B4,D2)", "x": 13, "y": 4 }, + { "label": "K4E (B4,D3)", "x": 14, "y": 4 }, + { "label": "K4F (B4,D4)", "x": 15, "y": 4 }, + { "label": "K4G (B4,D5)", "x": 16, "y": 4 } + ] + } + } + ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/" +} diff --git a/keyboards/enviousdesign/65m/keymaps/default/keymap.c b/keyboards/enviousdesign/65m/keymaps/default/keymap.c new file mode 100644 index 00000000000..1f51892c93d --- /dev/null +++ b/keyboards/enviousdesign/65m/keymaps/default/keymap.c @@ -0,0 +1,17 @@ +#include QMK_KEYBOARD_H + + +// This is unfinished as hecc +// Ill sort this out once I get a working 65% kit in my hands + +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_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_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_NUHS, + 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_LSFT, KC_UP, XXXXXXX, XXXXXXX, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, XXXXXXX, XXXXXXX, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX + ), + +}; \ No newline at end of file diff --git a/keyboards/enviousdesign/65m/readme.md b/keyboards/enviousdesign/65m/readme.md new file mode 100644 index 00000000000..21a72a584f4 --- /dev/null +++ b/keyboards/enviousdesign/65m/readme.md @@ -0,0 +1,19 @@ +# EnvKB 65M + + +A low cost 65% kit featuring split space and an attempt at fitting a standard keycap set. + +* Keyboard Maintainer: [Envious-Data](https://github.com/envious-data) +* Hardware Supported: + * EnvKB 65M **<- you are here** + + + +Make example for this keyboard (after setting up your build environment): + +``` +make envious/envkb/65m: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/enviousdesign/65m/rules.mk b/keyboards/enviousdesign/65m/rules.mk new file mode 100644 index 00000000000..70a370a1d78 --- /dev/null +++ b/keyboards/enviousdesign/65m/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = RP2040 +BOOTLOADER = rp2040 + + +VIA_ENABLE = no + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # 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 = 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 + +#LAYOUTS = 65m_all diff --git a/keyboards/enviousdesign/README.md b/keyboards/enviousdesign/README.md new file mode 100644 index 00000000000..0d6f1787dda --- /dev/null +++ b/keyboards/enviousdesign/README.md @@ -0,0 +1,15 @@ +# Envious.Design QMK Keyboard + +Various RP2040 based keyboard designs intended to be reasonably affordable. + +* Keyboard Maintainer: [Envious-Data](https://github.com/envious-data) +* Hardware Supported: + * EnvKB TKL "Delirium" + * Rev 0 + * Rev 1 + * RGB + * EnvKB 60F + * EnvKB 65M + * EnvKB MCRO 1.0 +* Hardware Availability: + * Order Via [Mechboards](http://Mechboards.co.uk) or [BlackCatPlasticWorks](http://BlackCatPlasticworks.com) diff --git a/keyboards/enviousdesign/mcro/readme.md b/keyboards/enviousdesign/mcro/readme.md new file mode 100644 index 00000000000..79101b89046 --- /dev/null +++ b/keyboards/enviousdesign/mcro/readme.md @@ -0,0 +1,19 @@ +# EnvKB MCRO + + +A small 12 Key macro pad for various uses + +* Keyboard Maintainer: [Envious-Data](https://github.com/envious-data) +* Hardware Supported: + * EnvKB MCRO Rev 1 **<-- You are here** + + + +Make example for this keyboard (after setting up your build environment): + +``` +make envious/mcro/rev1: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/enviousdesign/mcro/rev1/config.h b/keyboards/enviousdesign/mcro/rev1/config.h new file mode 100644 index 00000000000..3ba38e0e9a5 --- /dev/null +++ b/keyboards/enviousdesign/mcro/rev1/config.h @@ -0,0 +1,156 @@ +/* +Copyright 2022 Envious Design + +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 0x2E8A +#define PRODUCT_ID 0xE739 +#define DEVICE_VER 0x0011 +#define MANUFACTURER EnviousDesign +#define PRODUCT MCRO 1.0 + +/* key matrix size */ +#define MATRIX_ROWS 3 +#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 { GP4, GP11, GP15 } +#define MATRIX_COL_PINS { GP18, GP19, GP20, GP21 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#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 LED_NUM_LOCK_PIN B0 +//#define LED_CAPS_LOCK_PIN 25 +//#define LED_SCROLL_LOCK_PIN B2 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +//#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 +/*== customize breathing effect ==*/ +/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +/*==== use exp() and sin() ====*/ +//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +//#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* 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 useful 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 + +/* + * 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 + +/* disable these deprecated features by default */ +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 +//#define DYNAMIC_KEYMAP_MACRO_COUNT 16 diff --git a/keyboards/enviousdesign/mcro/rev1/info.json b/keyboards/enviousdesign/mcro/rev1/info.json new file mode 100644 index 00000000000..eee3da38a06 --- /dev/null +++ b/keyboards/enviousdesign/mcro/rev1/info.json @@ -0,0 +1,10 @@ +{ + "keyboard_name": "MCRO 1.0", + "url": "http://envious.design", + "maintainer": "Envious.Design", + "layouts": { + "LAYOUT": { + "layout": [{"label":"F13", "x":0, "y":0}, {"label":"F14", "x":1, "y":0}, {"label":"F15", "x":2, "y":0}, {"label":"F16", "x":3, "y":0}, {"label":"F17", "x":0, "y":1.25}, {"label":"F18", "x":1, "y":1.25}, {"label":"F19", "x":2, "y":1.25}, {"label":"F20", "x":3, "y":1.25}, {"label":"F21", "x":0, "y":2.5}, {"label":"F22", "x":1, "y":2.5}, {"label":"F23", "x":2, "y":2.5}, {"label":"F24", "x":3, "y":2.5}] + } + } +} \ No newline at end of file diff --git a/keyboards/enviousdesign/mcro/rev1/keymaps/default/keymap.c b/keyboards/enviousdesign/mcro/rev1/keymaps/default/keymap.c new file mode 100644 index 00000000000..67c07ef4a35 --- /dev/null +++ b/keyboards/enviousdesign/mcro/rev1/keymaps/default/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2022 Envious Design + * + * 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 "pico_eeprom.h" + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = { + {KC_F13, KC_F14, KC_F15, KC_F16}, + {KC_F17, KC_F18, KC_F19, KC_F20}, + {KC_F21, KC_F22, KC_F23, KC_F24}, + }, + [1] = { + {KC_F13, KC_F14, KC_F15, KC_F16}, + {KC_F17, KC_F18, KC_F19, KC_F20}, + {KC_F21, KC_F22, KC_F23, KC_F24}, + }, + [2] = { + {KC_F13, KC_F14, KC_F15, KC_F16}, + {KC_F17, KC_F18, KC_F19, KC_F20}, + {KC_F21, KC_F22, KC_F23, KC_F24}, + }, + [3] = { + {KC_F13, KC_F14, KC_F15, KC_F16}, + {KC_F17, KC_F18, KC_F19, KC_F20}, + {KC_F21, KC_F22, KC_F23, KC_F24}, + }, +}; + diff --git a/keyboards/enviousdesign/mcro/rev1/keymaps/via/config.h b/keyboards/enviousdesign/mcro/rev1/keymaps/via/config.h new file mode 100644 index 00000000000..6723ab6c319 --- /dev/null +++ b/keyboards/enviousdesign/mcro/rev1/keymaps/via/config.h @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0xA4, 0x13, 0x53, 0xAF, 0xD2, 0x3D, 0x62, 0x66} + + +#define VIAL_UNLOCK_COMBO_ROWS { 0, 2 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 13 } diff --git a/keyboards/enviousdesign/mcro/rev1/keymaps/via/keymap.c b/keyboards/enviousdesign/mcro/rev1/keymaps/via/keymap.c new file mode 100644 index 00000000000..67c07ef4a35 --- /dev/null +++ b/keyboards/enviousdesign/mcro/rev1/keymaps/via/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2022 Envious Design + * + * 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 "pico_eeprom.h" + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = { + {KC_F13, KC_F14, KC_F15, KC_F16}, + {KC_F17, KC_F18, KC_F19, KC_F20}, + {KC_F21, KC_F22, KC_F23, KC_F24}, + }, + [1] = { + {KC_F13, KC_F14, KC_F15, KC_F16}, + {KC_F17, KC_F18, KC_F19, KC_F20}, + {KC_F21, KC_F22, KC_F23, KC_F24}, + }, + [2] = { + {KC_F13, KC_F14, KC_F15, KC_F16}, + {KC_F17, KC_F18, KC_F19, KC_F20}, + {KC_F21, KC_F22, KC_F23, KC_F24}, + }, + [3] = { + {KC_F13, KC_F14, KC_F15, KC_F16}, + {KC_F17, KC_F18, KC_F19, KC_F20}, + {KC_F21, KC_F22, KC_F23, KC_F24}, + }, +}; + diff --git a/keyboards/enviousdesign/mcro/rev1/keymaps/via/rules.mk b/keyboards/enviousdesign/mcro/rev1/keymaps/via/rules.mk new file mode 100644 index 00000000000..492d1d8f570 --- /dev/null +++ b/keyboards/enviousdesign/mcro/rev1/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +EEPROM_DRIVER = vendor +VIA_ENABLE = yes +VIAL_ENABLE = yes \ No newline at end of file diff --git a/keyboards/enviousdesign/mcro/rev1/readme.md b/keyboards/enviousdesign/mcro/rev1/readme.md new file mode 100644 index 00000000000..79101b89046 --- /dev/null +++ b/keyboards/enviousdesign/mcro/rev1/readme.md @@ -0,0 +1,19 @@ +# EnvKB MCRO + + +A small 12 Key macro pad for various uses + +* Keyboard Maintainer: [Envious-Data](https://github.com/envious-data) +* Hardware Supported: + * EnvKB MCRO Rev 1 **<-- You are here** + + + +Make example for this keyboard (after setting up your build environment): + +``` +make envious/mcro/rev1: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/enviousdesign/mcro/rev1/rev1.c b/keyboards/enviousdesign/mcro/rev1/rev1.c new file mode 100644 index 00000000000..5ae15edec8a --- /dev/null +++ b/keyboards/enviousdesign/mcro/rev1/rev1.c @@ -0,0 +1,21 @@ +/* Copyright 2022 Envious Design + * + * 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 + +void board_init(void) { +} diff --git a/keyboards/enviousdesign/mcro/rev1/rev1.h b/keyboards/enviousdesign/mcro/rev1/rev1.h new file mode 100644 index 00000000000..6c9ca3c30d7 --- /dev/null +++ b/keyboards/enviousdesign/mcro/rev1/rev1.h @@ -0,0 +1,41 @@ +/* Copyright 2022 Envious DesignLAYOUT_60_iso + * + * 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 is 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, \ + K10, K11, K12, K13, \ + K20, K21, K22, K23 \ +) { \ + { K00, K01, K02, K03 }, \ + { K10, K11, K12, K13 }, \ + { K20, K21, K22, K23 } \ +} diff --git a/keyboards/enviousdesign/mcro/rev1/rules.mk b/keyboards/enviousdesign/mcro/rev1/rules.mk new file mode 100644 index 00000000000..0cf6595954e --- /dev/null +++ b/keyboards/enviousdesign/mcro/rev1/rules.mk @@ -0,0 +1,30 @@ +# MCU name +# MCU_FAMILY = PICO +# MCU_SERIES = RP2040 +# MCU = cortex-m0plus + +# MCU name +MCU = RP2040 +BOOTLOADER = rp2040 + +#ALLOW_WARNINGS = yes +#PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS! + +VIA_ENABLE = no + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # 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 = 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 diff --git a/keyboards/enviousdesign/tkl/readme.md b/keyboards/enviousdesign/tkl/readme.md new file mode 100644 index 00000000000..ebfbbbba890 --- /dev/null +++ b/keyboards/enviousdesign/tkl/readme.md @@ -0,0 +1,21 @@ +# EnvKB DELIRIUM + + +A low cost Standard TKL Design which takes inspiration from the CFTKB Mysterium. + +* Keyboard Maintainer: [Envious-Data](https://github.com/envious-data) +* Hardware Supported: + * EnvKB TKL Prototype (Revision 0) + * EnvKB TKL Rev1 + * EnvKB TKL RGB HS + + + +Make example for this keyboard (after setting up your build environment): + +``` +make envious/envkb-tkl/rev1: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/enviousdesign/tkl/rev0/config.h b/keyboards/enviousdesign/tkl/rev0/config.h new file mode 100644 index 00000000000..d7bf1ed9841 --- /dev/null +++ b/keyboards/enviousdesign/tkl/rev0/config.h @@ -0,0 +1,158 @@ +/* +Copyright 2022 Envious Design + +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 0x2E8A +#define PRODUCT_ID 0xE739 +#define DEVICE_VER 0x0000 +#define MANUFACTURER EnviousDesign +#define PRODUCT EnvKB TKL Prototype + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 18 + +//#define GPIO_INPUT_PIN_DELAY 100 +//#define DEBUG_MATRIX_SCAN_RATE +//#define DEBUG_ACTION + +/* + * 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 { 20, 21, 22, 26, 27, 28 } +#define MATRIX_COL_PINS { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 19, 18, 17, 16 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#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 LED_NUM_LOCK_PIN B0 +//#define LED_CAPS_LOCK_PIN 25 +//#define LED_SCROLL_LOCK_PIN B2 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +//#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 +/*== customize breathing effect ==*/ +/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +/*==== use exp() and sin() ====*/ +//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +//#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* 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 useful 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 + +/* + * 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 + +/* disable these deprecated features by default */ +// #define NO_ACTION_MACRO +// #define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 + +//#define TRANSIENT_EEPROM_SIZE 128 \ No newline at end of file diff --git a/keyboards/enviousdesign/tkl/rev0/info.json b/keyboards/enviousdesign/tkl/rev0/info.json new file mode 100644 index 00000000000..aa357d43c19 --- /dev/null +++ b/keyboards/enviousdesign/tkl/rev0/info.json @@ -0,0 +1,99 @@ +{ + "keyboard_name": "Delirium Prototype", + "maintainer": "Envious.Design", + "url": "http://envious.design", + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "0,0", "x": 0.0, "y": 0.0 }, + { "label": "0,2", "x": 2.0, "y": 0.0 }, + { "label": "0,3", "x": 3.0, "y": 0.0 }, + { "label": "0,4", "x": 4.0, "y": 0.0 }, + { "label": "0,5", "x": 5.0, "y": 0.0 }, + { "label": "0,7", "x": 6.5, "y": 0.0 }, + { "label": "0,8", "x": 7.5, "y": 0.0 }, + { "label": "0,9", "x": 8.5, "y": 0.0 }, + { "label": "0,10", "x": 9.5, "y": 0.0 }, + { "label": "0,11", "x": 11.0, "y": 0.0 }, + { "label": "0,12", "x": 12.0, "y": 0.0 }, + { "label": "0,13", "x": 13.0, "y": 0.0 }, + { "label": "0,14", "x": 14.0, "y": 0.0 }, + { "label": "0,15", "x": 15.25, "y": 0.0 }, + { "label": "0,16", "x": 16.25, "y": 0.0 }, + { "label": "0,17", "x": 17.25, "y": 0.0 }, + { "label": "1,0", "x": 0.0, "y": 1.5 }, + { "label": "1,1", "x": 1.0, "y": 1.5 }, + { "label": "1,2", "x": 2.0, "y": 1.5 }, + { "label": "1,3", "x": 3.0, "y": 1.5 }, + { "label": "1,4", "x": 4.0, "y": 1.5 }, + { "label": "1,5", "x": 5.0, "y": 1.5 }, + { "label": "1,6", "x": 6.0, "y": 1.5 }, + { "label": "1,7", "x": 7.0, "y": 1.5 }, + { "label": "1,8", "x": 8.0, "y": 1.5 }, + { "label": "1,9", "x": 9.0, "y": 1.5 }, + { "label": "1,10", "x": 10.0, "y": 1.5 }, + { "label": "1,11", "x": 11.0, "y": 1.5 }, + { "label": "1,12", "x": 12.0, "y": 1.5 }, + { "label": "1,14", "w": 2.0, "x": 13.0, "y": 1.5 }, + { "label": "1,15", "x": 15.25, "y": 1.5 }, + { "label": "1,16", "x": 16.25, "y": 1.5 }, + { "label": "1,17", "x": 17.25, "y": 1.5 }, + { "label": "2,0", "w": 1.5, "x": 0.0, "y": 2.5 }, + { "label": "2,2", "x": 1.5, "y": 2.5 }, + { "label": "2,3", "x": 2.5, "y": 2.5 }, + { "label": "2,4", "x": 3.5, "y": 2.5 }, + { "label": "2,5", "x": 4.5, "y": 2.5 }, + { "label": "2,6", "x": 5.5, "y": 2.5 }, + { "label": "2,7", "x": 6.5, "y": 2.5 }, + { "label": "2,8", "x": 7.5, "y": 2.5 }, + { "label": "2,9", "x": 8.5, "y": 2.5 }, + { "label": "2,10", "x": 9.5, "y": 2.5 }, + { "label": "2,11", "x": 10.5, "y": 2.5 }, + { "label": "2,12", "x": 11.5, "y": 2.5 }, + { "label": "2,13", "x": 12.5, "y": 2.5 }, + { "h": 2.0, "label": "3,14", "w": 1.25, "x": 13.75, "y": 2.5 }, + { "label": "2,15", "x": 15.25, "y": 2.5 }, + { "label": "2,16", "x": 16.25, "y": 2.5 }, + { "label": "2,17", "x": 17.25, "y": 2.5 }, + { "label": "3,0", "w": 1.75, "x": 0.0, "y": 3.5 }, + { "label": "3,2", "x": 1.75, "y": 3.5 }, + { "label": "3,3", "x": 2.75, "y": 3.5 }, + { "label": "3,4", "x": 3.75, "y": 3.5 }, + { "label": "3,5", "x": 4.75, "y": 3.5 }, + { "label": "3,6", "x": 5.75, "y": 3.5 }, + { "label": "3,7", "x": 6.75, "y": 3.5 }, + { "label": "3,8", "x": 7.75, "y": 3.5 }, + { "label": "3,9", "x": 8.75, "y": 3.5 }, + { "label": "3,10", "x": 9.75, "y": 3.5 }, + { "label": "3,11", "x": 10.75, "y": 3.5 }, + { "label": "3,12", "x": 11.75, "y": 3.5 }, + { "label": "3,13", "x": 12.75, "y": 3.5 }, + { "label": "4,0", "w": 1.25, "x": 0.0, "y": 4.5 }, + { "label": "4,1", "x": 1.25, "y": 4.5 }, + { "label": "4,2", "x": 2.25, "y": 4.5 }, + { "label": "4,3", "x": 3.25, "y": 4.5 }, + { "label": "4,4", "x": 4.25, "y": 4.5 }, + { "label": "4,5", "x": 5.25, "y": 4.5 }, + { "label": "4,6", "x": 6.25, "y": 4.5 }, + { "label": "4,7", "x": 7.25, "y": 4.5 }, + { "label": "4,8", "x": 8.25, "y": 4.5 }, + { "label": "4,9", "x": 9.25, "y": 4.5 }, + { "label": "4,10", "x": 10.25, "y": 4.5 }, + { "label": "4,11", "x": 11.25, "y": 4.5 }, + { "label": "4,13", "w": 2.75, "x": 12.25, "y": 4.5 }, + { "label": "4,16", "x": 16.25, "y": 4.5 }, + { "label": "5,0", "w": 1.25, "x": 0.0, "y": 5.5 }, + { "label": "5,1", "w": 1.25, "x": 1.25, "y": 5.5 }, + { "label": "5,3", "w": 1.25, "x": 2.5, "y": 5.5 }, + { "label": "5,6", "w": 6.25, "x": 3.75, "y": 5.5 }, + { "label": "5,10", "w": 1.25, "x": 10.0, "y": 5.5 }, + { "label": "5,11", "w": 1.25, "x": 11.25, "y": 5.5 }, + { "label": "5,13", "w": 1.25, "x": 12.5, "y": 5.5 }, + { "label": "5,14", "w": 1.25, "x": 13.75, "y": 5.5 }, + { "label": "5,15", "x": 15.25, "y": 5.5 }, + { "label": "5,16", "x": 16.25, "y": 5.5 }, + { "label": "5,17", "x": 17.25, "y": 5.5 }, + ] + } + } +} \ No newline at end of file diff --git a/keyboards/enviousdesign/tkl/rev0/keymaps/default/keymap.c b/keyboards/enviousdesign/tkl/rev0/keymaps/default/keymap.c new file mode 100644 index 00000000000..ed4384df143 --- /dev/null +++ b/keyboards/enviousdesign/tkl/rev0/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2022 Envious Design + * + * 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] = { + /* Base */ + [0] = 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_ENT , 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_NUHS, + 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_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + QK_BOOTLOADER, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MUTE, KC_VOLD, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MYCM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALCULATOR,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, 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/enviousdesign/tkl/rev0/readme.md b/keyboards/enviousdesign/tkl/rev0/readme.md new file mode 100644 index 00000000000..3d3ab7e000c --- /dev/null +++ b/keyboards/enviousdesign/tkl/rev0/readme.md @@ -0,0 +1,21 @@ +# EnvKB DELIRIUM + + +A low cost Standard TKL Design which takes inspiration from the CFTKB Mysterium. + +* Keyboard Maintainer: [Envious-Data](https://github.com/envious-data) +* Hardware Supported: + * EnvKB TKL Prototype (Revision 0) **<- you are here** + * EnvKB TKL Rev1 + * EnvKB TKL RGB HS + + + +Make example for this keyboard (after setting up your build environment): + +``` +make envious/envkb-tkl/rev0: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/enviousdesign/tkl/rev0/rev0.c b/keyboards/enviousdesign/tkl/rev0/rev0.c new file mode 100644 index 00000000000..dbd40c7cb12 --- /dev/null +++ b/keyboards/enviousdesign/tkl/rev0/rev0.c @@ -0,0 +1,20 @@ +/* Copyright 2022 Envious Design + * + * 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 + + diff --git a/keyboards/enviousdesign/tkl/rev0/rev0.h b/keyboards/enviousdesign/tkl/rev0/rev0.h new file mode 100644 index 00000000000..7655ad749d0 --- /dev/null +++ b/keyboards/enviousdesign/tkl/rev0/rev0.h @@ -0,0 +1,50 @@ +/* Copyright 2022 Envious Design + * + * 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 is 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 XXX KC_NO + +#define LAYOUT( \ + K00, K02, K03, K04, K05, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, K2G, K2H, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, \ + K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, K5B, K5D, K5G, \ + K60, K61, K63, K66, K6A, K6B, K6D, K6E, K6F, K6G, K6H \ +) { \ + { K00, XXX, K02, K03, K04, K05, XXX, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E, K2F, K2G, K2H }, \ + { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H }, \ + { K40, XXX, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, XXX, XXX, XXX, XXX }, \ + { K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, K5B, XXX, K5D, XXX, XXX, K5G, XXX }, \ + { K60, K61, XXX, K63, XXX, XXX, K66, XXX, XXX, XXX, K6A, K6B, XXX, K6D, K6E, K6F, K6G, K6H }, \ +} + diff --git a/keyboards/enviousdesign/tkl/rev0/rules.mk b/keyboards/enviousdesign/tkl/rev0/rules.mk new file mode 100644 index 00000000000..7ac4da74e5c --- /dev/null +++ b/keyboards/enviousdesign/tkl/rev0/rules.mk @@ -0,0 +1,26 @@ +# MCU name +MCU = RP2040 +BOOTLOADER = rp2040 + +ALLOW_WARNINGS = yes +PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS! + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +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 +# 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 +OLED_DRIVER_ENABLE = no # oled enable + +#EEPROM_DRIVER = transient diff --git a/keyboards/enviousdesign/tkl/rev1/config.h b/keyboards/enviousdesign/tkl/rev1/config.h new file mode 100644 index 00000000000..77cb0762324 --- /dev/null +++ b/keyboards/enviousdesign/tkl/rev1/config.h @@ -0,0 +1,160 @@ +/* +Copyright 2022 Envious Design + +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 PRODUCT Delirium TKL Rev 1.0+ +#define VENDOR_ID 0x2E8A +#define PRODUCT_ID 0xE739 +#define DEVICE_VER 0x0001 +#define MANUFACTURER EnviousDesign + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 18 + +//#define GPIO_INPUT_PIN_DELAY 100 +//#define DEBUG_MATRIX_SCAN_RATE +//#define DEBUG_ACTION + +/* + * 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 { 20, 21, 22, 26, 27, 28 } +#define MATRIX_COL_PINS { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 19, 18, 17, 16 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#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 0 // or D1, D2, D3, E6 + +//#define LED_NUM_LOCK_PIN B0 +#define LED_CAPS_LOCK_PIN GP25 +//#define LED_SCROLL_LOCK_PIN B2 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +//#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 +/*== customize breathing effect ==*/ +/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +/*==== use exp() and sin() ====*/ +//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +//#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* 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 useful 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 + +/* + * 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 + +/* disable these deprecated features by default */ +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 + +//#define I2C1_SDA_PIN GP0 +//#define I2C1_SCL_PIN GP1 +//#define I2C_DRIVER I2CD1 diff --git a/keyboards/enviousdesign/tkl/rev1/info.json b/keyboards/enviousdesign/tkl/rev1/info.json new file mode 100644 index 00000000000..f09257c54b7 --- /dev/null +++ b/keyboards/enviousdesign/tkl/rev1/info.json @@ -0,0 +1,10 @@ +{ + "keyboard_name": "Delirium TKL 1.0+", + "url": "http://envious.design", + "maintainer": "Envious.Design", + "layouts": { + "LAYOUT_tkl_comb": { + "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":"\u00ac", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"\"", "x":2, "y":1.5}, {"label":"\u00a3", "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":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.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":"Enter", "x":13.75, "y":2.5, "w":1.25, "h":2}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"|", "x":18.5, "y":2.5, "w":1.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":"~", "x":12.75, "y":3.5}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"label":"|", "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":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"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":"AltGr", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] + } + } +} \ No newline at end of file diff --git a/keyboards/enviousdesign/tkl/rev1/keymaps/default/keymap.c b/keyboards/enviousdesign/tkl/rev1/keymaps/default/keymap.c new file mode 100644 index 00000000000..95e21a55340 --- /dev/null +++ b/keyboards/enviousdesign/tkl/rev1/keymaps/default/keymap.c @@ -0,0 +1,56 @@ +/* Copyright 2022 Envious Design + * + * 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] = { + /* Base */ + [0] = LAYOUT_tkl_comb( + 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_NUHS, 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_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_comb( + QK_BOOTLOADER, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MUTE, KC_VOLD, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MYCM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALCULATOR,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_APP, KC_TRNS, KC_EXEC, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_tkl_comb( + QK_BOOTLOADER, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MUTE, KC_VOLD, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MYCM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALCULATOR,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_APP, KC_TRNS, KC_EXEC, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_tkl_comb( + QK_BOOTLOADER, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MUTE, KC_VOLD, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MYCM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALCULATOR,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_APP, KC_TRNS, KC_EXEC, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/enviousdesign/tkl/rev1/keymaps/via/config.h b/keyboards/enviousdesign/tkl/rev1/keymaps/via/config.h new file mode 100644 index 00000000000..33dedd424ec --- /dev/null +++ b/keyboards/enviousdesign/tkl/rev1/keymaps/via/config.h @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0xC3, 0x73, 0xA9, 0xCA, 0xD8, 0x79, 0xAF, 0xC5} + + +#define VIAL_UNLOCK_COMBO_ROWS { 0, 2 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 13 } diff --git a/keyboards/enviousdesign/tkl/rev1/keymaps/via/keymap.c b/keyboards/enviousdesign/tkl/rev1/keymaps/via/keymap.c new file mode 100644 index 00000000000..13b2ce22a5e --- /dev/null +++ b/keyboards/enviousdesign/tkl/rev1/keymaps/via/keymap.c @@ -0,0 +1,56 @@ +/* Copyright 2022 Envious Design + * + * 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] = { + /* Base */ + [0] = LAYOUT_tkl_comb( + 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_NUHS, 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_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_comb( + QK_BOOTLOADER, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MUTE, KC_VOLD, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MYCM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALCULATOR,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_APP, KC_TRNS, KC_EXEC, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_tkl_comb( + QK_BOOTLOADER, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MUTE, KC_VOLD, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MYCM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALCULATOR,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_APP, KC_TRNS, KC_EXEC, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_tkl_comb( + QK_BOOTLOADER, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MUTE, KC_VOLD, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MYCM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALCULATOR,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_APP, KC_TRNS, KC_EXEC, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/enviousdesign/tkl/rev1/keymaps/via/rules.mk b/keyboards/enviousdesign/tkl/rev1/keymaps/via/rules.mk new file mode 100644 index 00000000000..b4f31bdcfc8 --- /dev/null +++ b/keyboards/enviousdesign/tkl/rev1/keymaps/via/rules.mk @@ -0,0 +1,4 @@ +EEPROM_DRIVER = vendor +VIA_ENABLE = yes +VIAL_ENABLE = yes +VIAL_INSECURE = yes \ No newline at end of file diff --git a/keyboards/enviousdesign/tkl/rev1/readme.md b/keyboards/enviousdesign/tkl/rev1/readme.md new file mode 100644 index 00000000000..4f94bd95000 --- /dev/null +++ b/keyboards/enviousdesign/tkl/rev1/readme.md @@ -0,0 +1,21 @@ +# EnvKB DELIRIUM + + +A low cost Standard TKL Design which takes inspiration from the CFTKB Mysterium. + +* Keyboard Maintainer: [Envious-Data](https://github.com/envious-data) +* Hardware Supported: + * EnvKB TKL Prototype (Revision 0) + * EnvKB TKL Rev1 **<- you are here** + * EnvKB TKL RGB HS + + + +Make example for this keyboard (after setting up your build environment): + +``` +make envious/envkb-tkl/rev1: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/enviousdesign/tkl/rev1/rev1.c b/keyboards/enviousdesign/tkl/rev1/rev1.c new file mode 100644 index 00000000000..b8a62a6431e --- /dev/null +++ b/keyboards/enviousdesign/tkl/rev1/rev1.c @@ -0,0 +1,19 @@ +/* Copyright 2022 Envious Design + * + * 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 + + diff --git a/keyboards/enviousdesign/tkl/rev1/rev1.h b/keyboards/enviousdesign/tkl/rev1/rev1.h new file mode 100644 index 00000000000..41658462938 --- /dev/null +++ b/keyboards/enviousdesign/tkl/rev1/rev1.h @@ -0,0 +1,50 @@ +/* Copyright 2022 Envious Design + * + * 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" +//#include "via.h" + +/* This is 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_tkl_comb( \ + KC000, KC001, KC002, KC003, KC004, KC005, KC006, KC007, KC008, KC009, KC010, KC011, KC012, KC013, KC014, KC015, \ + \ + KC100, KC101, KC102, KC103, KC104, KC105, KC106, KC107, KC108, KC109, KC110, KC111, KC112, KC113, KC114, KC115, KC116, \ + KC200, KC201, KC202, KC203, KC204, KC205, KC206, KC207, KC208, KC209, KC210, KC211, KC212, KC213, KC214, KC215, KC216, \ + KC300, KC301, KC302, KC303, KC304, KC305, KC306, KC307, KC308, KC309, KC310, KC311, KC312, KC313, \ + KC400, KC401, KC402, KC403, KC404, KC405, KC406, KC407, KC408, KC409, KC410, KC411, KC412, KC413, \ + KC500, KC501, KC502, KC503, KC504, KC505, KC506, KC507, KC508, KC509, KC510 \ +) { \ + { KC000, KC_NO, KC001, KC002, KC003, KC004, KC_NO, KC005, KC006, KC007, KC008, KC009, KC010, KC011, KC012, KC013, KC014, KC015 }, \ + { KC100, KC101, KC102, KC103, KC104, KC105, KC106, KC107, KC108, KC109, KC110, KC111, KC112, KC_NO, KC113, KC114, KC115, KC116 }, \ + { KC200, KC_NO, KC201, KC202, KC203, KC204, KC205, KC206, KC207, KC208, KC209, KC210, KC211, KC212, KC213, KC214, KC215, KC216 }, \ + { KC300, KC_NO, KC301, KC302, KC303, KC304, KC305, KC306, KC307, KC308, KC309, KC310, KC311, KC312, KC313, KC_NO, KC_NO, KC_NO }, \ + { KC400, KC401, KC402, KC403, KC404, KC405, KC406, KC407, KC408, KC409, KC410, KC411, KC_NO, KC412, KC_NO, KC_NO, KC413, KC_NO }, \ + { KC500, KC501, KC_NO, KC502, KC_NO, KC_NO, KC503, KC_NO, KC_NO, KC_NO, KC504, KC505, KC_NO, KC506, KC507, KC508, KC509, KC510 }, \ +} diff --git a/keyboards/enviousdesign/tkl/rev1/rules.mk b/keyboards/enviousdesign/tkl/rev1/rules.mk new file mode 100644 index 00000000000..a48b49873cf --- /dev/null +++ b/keyboards/enviousdesign/tkl/rev1/rules.mk @@ -0,0 +1,26 @@ +# MCU name +MCU = RP2040 +BOOTLOADER = rp2040 + +#ALLOW_WARNINGS = yes +#PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS! + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +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 +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +#OLED_ENABLE = yes +#OLED_DRIVER = SSD1306 \ No newline at end of file diff --git a/keyboards/enviousdesign/tkl/rgb/config.h b/keyboards/enviousdesign/tkl/rgb/config.h new file mode 100644 index 00000000000..2e81cd0cd41 --- /dev/null +++ b/keyboards/enviousdesign/tkl/rgb/config.h @@ -0,0 +1,232 @@ +/* +Copyright 2022 Envious Design + +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 0x2E8A +#define PRODUCT_ID 0x000A +#define DEVICE_VER 0x0001 +#define MANUFACTURER EnviousDesign +#define PRODUCT ALT Delirium RGB + + + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 18 + +//#define GPIO_INPUT_PIN_DELAY 100 +//#define DEBUG_MATRIX_SCAN_RATE +//#define DEBUG_ACTION + +/* + * 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 { GP20, GP21, GP22, GP26, GP27, GP28 } +#define MATRIX_COL_PINS { GP2, GP3, GP4, GP5, GP6, GP7, GP8, GP9, GP10, GP11, GP12, GP13, GP14, GP15, GP19, GP18, GP17, GP16 } +#define UNUSED_PINS { GP1, GP23, GP24, GP29 } + +/* COL2ROW, ROW2COL */ +#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 LED_NUM_LOCK_PIN B0 +//#define LED_CAPS_LOCK_PIN 25 +//#define LED_SCROLL_LOCK_PIN B2 +//#define LED_COMPOSE_PIN B3 +//#define LED_KANA_PIN B4 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +//#define NOP_FUDGE 0.4 +//#define RGB_DI_PIN +#define RGB_DI_PIN GP0 +//#ifdef RGB_DI_PIN +# define RGBLED_NUM 88 +# define RGBLIGHT_HUE_STEP 1 +# define RGBLIGHT_SAT_STEP 1 +# define RGBLIGHT_VAL_STEP 1 +# define RGBLIGHT_LIMIT_VAL 64 /* 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 +/*== customize breathing effect ==*/ +/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +/*==== use exp() and sin() ====*/ +//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +//#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* 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 useful 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 + +/* + * 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 + +/* disable these deprecated features by default */ +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 + +/* RGB BITS AND BOBS (not stock) +#define RGBLIGHT_LAYERS +#define RGBLIGHT_LAYER_BLINK +#define RGBLIGHT_LAYERS_RETAIN_VAL +#define RGBLIGHT_SLEEP +#define RGBLIGHT_DEFAULT_HUE 84 +*/ + +//#define RGB_DI_PIN GP0 +// The number of LEDs connected +#define DRIVER_LED_TOTAL 88 + + +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR +# 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 +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +# define ENABLE_RGB_MATRIX_TYPING_HEATMAP +# define ENABLE_RGB_MATRIX_DIGITAL_RAIN +# define 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 + +//some config bits +//#define RGB_MATRIX_KEYPRESSES // reacts to keypresses +//#define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +#define RGB_DISABLE_AFTER_TIMEOUT 900 // number of ticks to wait until disabling effects (ticks seem to be 1 per second on my RP2040) +#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended +//#define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +#define RGB_MATRIX_LED_FLUSH_LIMIT 8 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) +//#define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 64 +#define EECONFIG_RGB_MATRIX (uint32_t *)28 diff --git a/keyboards/enviousdesign/tkl/rgb/info.json b/keyboards/enviousdesign/tkl/rgb/info.json new file mode 100644 index 00000000000..0ad61a9d0e4 --- /dev/null +++ b/keyboards/enviousdesign/tkl/rgb/info.json @@ -0,0 +1,100 @@ +{ + "keyboard_name": "Delirium RGB", + "maintainer": "Envious.Design", + "url": "http://envious.design", + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "0,0", "x": 0.0, "y": 0.0 }, + { "label": "0,2", "x": 2.0, "y": 0.0 }, + { "label": "0,3", "x": 3.0, "y": 0.0 }, + { "label": "0,4", "x": 4.0, "y": 0.0 }, + { "label": "0,5", "x": 5.0, "y": 0.0 }, + { "label": "0,7", "x": 6.5, "y": 0.0 }, + { "label": "0,8", "x": 7.5, "y": 0.0 }, + { "label": "0,9", "x": 8.5, "y": 0.0 }, + { "label": "0,10", "x": 9.5, "y": 0.0 }, + { "label": "0,11", "x": 11.0, "y": 0.0 }, + { "label": "0,12", "x": 12.0, "y": 0.0 }, + { "label": "0,13", "x": 13.0, "y": 0.0 }, + { "label": "0,14", "x": 14.0, "y": 0.0 }, + { "label": "0,15", "x": 15.25, "y": 0.0 }, + { "label": "0,16", "x": 16.25, "y": 0.0 }, + { "label": "0,17", "x": 17.25, "y": 0.0 }, + { "label": "1,0", "x": 0.0, "y": 1.5 }, + { "label": "1,1", "x": 1.0, "y": 1.5 }, + { "label": "1,2", "x": 2.0, "y": 1.5 }, + { "label": "1,3", "x": 3.0, "y": 1.5 }, + { "label": "1,4", "x": 4.0, "y": 1.5 }, + { "label": "1,5", "x": 5.0, "y": 1.5 }, + { "label": "1,6", "x": 6.0, "y": 1.5 }, + { "label": "1,7", "x": 7.0, "y": 1.5 }, + { "label": "1,8", "x": 8.0, "y": 1.5 }, + { "label": "1,9", "x": 9.0, "y": 1.5 }, + { "label": "1,10", "x": 10.0, "y": 1.5 }, + { "label": "1,11", "x": 11.0, "y": 1.5 }, + { "label": "1,12", "x": 12.0, "y": 1.5 }, + { "label": "1,14", "w": 2.0, "x": 13.0, "y": 1.5 }, + { "label": "1,15", "x": 15.25, "y": 1.5 }, + { "label": "1,16", "x": 16.25, "y": 1.5 }, + { "label": "1,17", "x": 17.25, "y": 1.5 }, + { "label": "2,0", "w": 1.5, "x": 0.0, "y": 2.5 }, + { "label": "2,2", "x": 1.5, "y": 2.5 }, + { "label": "2,3", "x": 2.5, "y": 2.5 }, + { "label": "2,4", "x": 3.5, "y": 2.5 }, + { "label": "2,5", "x": 4.5, "y": 2.5 }, + { "label": "2,6", "x": 5.5, "y": 2.5 }, + { "label": "2,7", "x": 6.5, "y": 2.5 }, + { "label": "2,8", "x": 7.5, "y": 2.5 }, + { "label": "2,9", "x": 8.5, "y": 2.5 }, + { "label": "2,10", "x": 9.5, "y": 2.5 }, + { "label": "2,11", "x": 10.5, "y": 2.5 }, + { "label": "2,12", "x": 11.5, "y": 2.5 }, + { "label": "2,13", "x": 12.5, "y": 2.5 }, + { "h": 2.0, "label": "3,14", "w": 1.25, "x": 13.75, "y": 2.5 }, + { "label": "2,15", "x": 15.25, "y": 2.5 }, + { "label": "2,16", "x": 16.25, "y": 2.5 }, + { "label": "2,17", "x": 17.25, "y": 2.5 }, + { "label": "3,0", "w": 1.75, "x": 0.0, "y": 3.5 }, + { "label": "3,2", "x": 1.75, "y": 3.5 }, + { "label": "3,3", "x": 2.75, "y": 3.5 }, + { "label": "3,4", "x": 3.75, "y": 3.5 }, + { "label": "3,5", "x": 4.75, "y": 3.5 }, + { "label": "3,6", "x": 5.75, "y": 3.5 }, + { "label": "3,7", "x": 6.75, "y": 3.5 }, + { "label": "3,8", "x": 7.75, "y": 3.5 }, + { "label": "3,9", "x": 8.75, "y": 3.5 }, + { "label": "3,10", "x": 9.75, "y": 3.5 }, + { "label": "3,11", "x": 10.75, "y": 3.5 }, + { "label": "3,12", "x": 11.75, "y": 3.5 }, + { "label": "3,13", "x": 12.75, "y": 3.5 }, + { "label": "4,0", "w": 1.25, "x": 0.0, "y": 4.5 }, + { "label": "4,1", "x": 1.25, "y": 4.5 }, + { "label": "4,2", "x": 2.25, "y": 4.5 }, + { "label": "4,3", "x": 3.25, "y": 4.5 }, + { "label": "4,4", "x": 4.25, "y": 4.5 }, + { "label": "4,5", "x": 5.25, "y": 4.5 }, + { "label": "4,6", "x": 6.25, "y": 4.5 }, + { "label": "4,7", "x": 7.25, "y": 4.5 }, + { "label": "4,8", "x": 8.25, "y": 4.5 }, + { "label": "4,9", "x": 9.25, "y": 4.5 }, + { "label": "4,10", "x": 10.25, "y": 4.5 }, + { "label": "4,11", "x": 11.25, "y": 4.5 }, + { "label": "4,13", "w": 2.75, "x": 12.25, "y": 4.5 }, + { "label": "4,16", "x": 16.25, "y": 4.5 }, + { "label": "5,0", "w": 1.25, "x": 0.0, "y": 5.5 }, + { "label": "5,1", "w": 1.25, "x": 1.25, "y": 5.5 }, + { "label": "5,3", "w": 1.25, "x": 2.5, "y": 5.5 }, + { "label": "5,6", "w": 6.25, "x": 3.75, "y": 5.5 }, + { "label": "5,10", "w": 1.25, "x": 10.0, "y": 5.5 }, + { "label": "5,11", "w": 1.25, "x": 11.25, "y": 5.5 }, + { "label": "5,13", "w": 1.25, "x": 12.5, "y": 5.5 }, + { "label": "5,14", "w": 1.25, "x": 13.75, "y": 5.5 }, + { "label": "5,15", "x": 15.25, "y": 5.5 }, + { "label": "5,16", "x": 16.25, "y": 5.5 }, + { "label": "5,17", "x": 17.25, "y": 5.5 }, + { "label": "2,14", "w": 1.5, "x": 13.5, "y": 6.5 }, + ] + } + } +} \ No newline at end of file diff --git a/keyboards/enviousdesign/tkl/rgb/keymaps/default/keymap.c b/keyboards/enviousdesign/tkl/rgb/keymaps/default/keymap.c new file mode 100644 index 00000000000..4d177413a7d --- /dev/null +++ b/keyboards/enviousdesign/tkl/rgb/keymaps/default/keymap.c @@ -0,0 +1,97 @@ +/* Copyright 2022 Envious Design + * + * 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 "pico_eeprom.h" +#include "print.h" +#include "stdbool.h" +#include + +#define rgb_matrix_hsv_to_rgb hsv_to_rgb + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = 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_NO, 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_NUHS, 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_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + QK_BOOTLOADER, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MUTE, KC_VOLD, 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_TRNS, RGB_MOD, RGB_SAI, RGB_VAI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MYCM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD,RGB_SAD, 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, RGB_TOG, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALCULATOR,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SPD, RGB_HUD + ), + [2] = LAYOUT( + QK_BOOTLOADER, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MUTE, KC_VOLD, 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_TRNS, RGB_MOD, RGB_SAI, RGB_VAI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MYCM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD,RGB_SAD, 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, RGB_TOG, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALCULATOR,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SPD, RGB_HUD + ), + [3] = LAYOUT( + QK_BOOTLOADER, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MUTE, KC_VOLD, 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_TRNS, RGB_MOD, RGB_SAI, RGB_VAI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MYCM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD,RGB_SAD, 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, RGB_TOG, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALCULATOR,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SPD, RGB_HUD + ) +}; + + + +void suspend_power_down_user(void) { + rgb_matrix_set_suspend_state(true); +} + +void suspend_wakeup_init_user(void) { + rgb_matrix_set_suspend_state(false); +} + + +void rgb_matrix_indicators_kb(void) { + switch (biton32(layer_state)) { + case 1: + rgb_matrix_set_color(83, 16, 16, 16); + break; + default: + break; + } +} + + +void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + if (host_keyboard_led_state().caps_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(50, 16, 16, 16); // assuming caps lock is at led #50 + } + if (host_keyboard_led_state().scroll_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(14, 16, 16, 16); // assuming caps lock is at led #14 + + } else { + } +} + diff --git a/keyboards/enviousdesign/tkl/rgb/readme.md b/keyboards/enviousdesign/tkl/rgb/readme.md new file mode 100644 index 00000000000..91fb7403bf4 --- /dev/null +++ b/keyboards/enviousdesign/tkl/rgb/readme.md @@ -0,0 +1,25 @@ +# EnvKB DELIRIUM + + +A low cost Standard TKL Design which takes inspiration from the CFTKB Mysterium. + +* Keyboard Maintainer: [Envious-Data](https://github.com/envious-data) +* Hardware Supported: + * EnvKB TKL Prototype (Revision 0) + * EnvKB TKL Rev1 + * EnvKB TKL RGB HS **<- you are here** + + + +Make example for this keyboard (after setting up your build environment): + +``` +make envious/envkb-tkl/rgb: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). + + +## Additional notes +input latency may be increased with more complex animations. diff --git a/keyboards/enviousdesign/tkl/rgb/rgb.c b/keyboards/enviousdesign/tkl/rgb/rgb.c new file mode 100644 index 00000000000..1b6d8b8b6f7 --- /dev/null +++ b/keyboards/enviousdesign/tkl/rgb/rgb.c @@ -0,0 +1,50 @@ +/* Copyright 2022 Envious Design + * + * 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 "rgb.h" + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + // Key Matrix to LED Index + { 0, NO_LED, 1, 2, 3, 4, NO_LED, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, + { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, NO_LED, 29, 30, 31, 32 }, + { 33, NO_LED, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, NO_LED, 47, 48, 49}, + { 50, NO_LED, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 46, NO_LED, NO_LED, NO_LED }, + { 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, NO_LED, 75, NO_LED, NO_LED, 76, NO_LED }, + { 77, 78, NO_LED, 79, NO_LED, NO_LED, 80, NO_LED, NO_LED, NO_LED, 81, 82, NO_LED, 83, 84, 85, 86, 87} +}, { + // LED Index to Physical Position + { 0,0 }, { 26,0 }, { 39,0 }, { 52,0 }, { 65,0 }, { 84,0 }, { 97,0 }, {110,0 }, {123,0 }, {143,0 }, + {156,0 }, {169,0 }, {182,0 }, {198,0 }, {211,0 }, {224,0 }, { 0,17 }, { 13,17 }, { 26,17 }, { 39,17 }, + { 52,17 }, { 65,17 }, { 78,17 }, { 91,17 }, {104,17 }, {117,17 }, {130,17 }, {143,17 }, {156,17 }, {175,17 }, + {198,17 }, {211,17 }, {224,17 }, { 3,29 }, { 19,29 }, { 32,29 }, { 45,29 }, { 58,29 }, { 71,29 }, { 84,29 }, + { 97,29 }, {110,29 }, {123,29 }, {136,29 }, {149,29 }, {162,29 }, {175,29 }, {198,29 }, {211,29 }, {224,29 }, + { 5,41 }, { 23,41 }, { 36,41 }, { 49,41 }, { 62,41 }, { 75,41 }, { 88,41 }, {101,41 }, {114,41 }, {127,41 }, + {140,41 }, {153,41 }, {166,41 }, { 2,52 }, { 16,52 }, { 29,52 }, { 42,52 }, { 55,52 }, { 68,52 }, { 81,52 }, + { 94,52 }, {107,52 }, {120,52 }, {133,52 }, {146,52 }, {170,52 }, {211,52 }, { 2,64 }, { 18,64 }, { 34,64 }, + { 83,64 }, {131,64 }, {148,64 }, {164,64 }, {180,64 }, {198,64 }, {211,64 }, {224,64 }, +}, { + // LED Index to Flag + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4 +} }; +#endif diff --git a/keyboards/enviousdesign/tkl/rgb/rgb.h b/keyboards/enviousdesign/tkl/rgb/rgb.h new file mode 100644 index 00000000000..c4b17644af5 --- /dev/null +++ b/keyboards/enviousdesign/tkl/rgb/rgb.h @@ -0,0 +1,53 @@ +/* Copyright 2022 Envious Design + * + * 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" +//#include "via.h" + +/* This is 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( \ + KC000, KC001, KC002, KC003, KC004, KC005, KC006, KC007, KC008, KC009, KC010, KC011, KC012, KC013, KC014, KC015, \ + \ + KC100, KC101, KC102, KC103, KC104, KC105, KC106, KC107, KC108, KC109, KC110, KC111, KC112, KC113, KC114, KC115, KC116, \ + KC200, KC201, KC202, KC203, KC204, KC205, KC206, KC207, KC208, KC209, KC210, KC211, KC212, KC213, KC214, KC215, KC216, \ + KC300, KC301, KC302, KC303, KC304, KC305, KC306, KC307, KC308, KC309, KC310, KC311, KC312, KC313, \ + KC400, KC401, KC402, KC403, KC404, KC405, KC406, KC407, KC408, KC409, KC410, KC411, KC412, KC413, \ + KC500, KC501, KC502, KC503, KC504, KC505, KC506, KC507, KC508, KC509, KC510 \ +) { \ + { KC000, KC_NO, KC001, KC002, KC003, KC004, KC_NO, KC005, KC006, KC007, KC008, KC009, KC010, KC011, KC012, KC013, KC014, KC015 }, \ + { KC100, KC101, KC102, KC103, KC104, KC105, KC106, KC107, KC108, KC109, KC110, KC111, KC112, KC_NO, KC113, KC114, KC115, KC116 }, \ + { KC200, KC_NO, KC201, KC202, KC203, KC204, KC205, KC206, KC207, KC208, KC209, KC210, KC211, KC212, KC213, KC214, KC215, KC216 }, \ + { KC300, KC_NO, KC301, KC302, KC303, KC304, KC305, KC306, KC307, KC308, KC309, KC310, KC311, KC312, KC313, KC_NO, KC_NO, KC_NO }, \ + { KC400, KC401, KC402, KC403, KC404, KC405, KC406, KC407, KC408, KC409, KC410, KC411, KC_NO, KC412, KC_NO, KC_NO, KC413, KC_NO }, \ + { KC500, KC501, KC_NO, KC502, KC_NO, KC_NO, KC503, KC_NO, KC_NO, KC_NO, KC504, KC505, KC_NO, KC506, KC507, KC508, KC509, KC510 }, \ +} + + diff --git a/keyboards/enviousdesign/tkl/rgb/rules.mk b/keyboards/enviousdesign/tkl/rgb/rules.mk new file mode 100644 index 00000000000..5ebc1d0a139 --- /dev/null +++ b/keyboards/enviousdesign/tkl/rgb/rules.mk @@ -0,0 +1,29 @@ +# MCU name +MCU = RP2040 +BOOTLOADER = rp2040 + +#ALLOW_WARNINGS = yes +#PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS! + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +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 +# 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 + +#for rgb to work with rp2040 +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 +WS2812_DRIVER = vendor +EEPROM_DRIVER = vendor \ No newline at end of file