소스 검색

[Keyboard] Vanana, Vaguette Lite, and Waaffle (#11441)

* added Vanana / Vaguette Lite / Waaffle

* changed extra GPIO allocations of Waaffle and Vanana

* Apply suggestions from code review

changed layout name of vaguette Lite / requested by drashna

* Apply suggestions from code review

Requested keymap changes have been made.

* all changes requested by collaborators are made

* RGB config updated / keymap updated

* fixed vaguette lite info.json

* fixed vaguette lite info.json

* fixed vaguette lite info.json

* Apply suggestions from code review

request changes are made

* pre rename h

* vaguettelite reanmed to lowercases

* fixed vanana keymap

* Apply suggestions from code review

* changed Bootmagic key of VaguetteLite as suggested

* Updated via keymap of Vaguette Lite as suggested

* add vaguette lite 6.25 layout

* added vaguette lite noclew keymap

* updated vaguette lite 6.25u keymap description

* updated vanana default keymap

* updated keymap spacing

* reabased from the official repo

* Update keymap.c

fixed vaguette lite keymap

* Apply suggestions from code review

All the requested changes by a collaborator were made.

* updated info.json of Vanana and readme files of Vanana and waffle

* rename LAYOUT_waaffle to LAYOUT_ortho_5x16

Also adjusts the info.json data to put a visual gap between the extension and main PCBs.

* make rules.mk and info.json specific to rev3

Removes nckiibs/waaffle as a build target, as it redirects to the only extant revision in the repository.

* add controller board build targets

Adds build targets for Pro Micro and Elite-C builds, with appropriate defaults for each.

Running `make nckiibs/waaffle/rev3` defaults to a Pro Micro-based build.
noclew 4 년 전
부모
커밋
0ab88f5342
43개의 변경된 파일1947개의 추가작업 그리고 0개의 파일을 삭제
  1. 119 0
      keyboards/nckiibs/vaguettelite/config.h
  2. 15 0
      keyboards/nckiibs/vaguettelite/info.json
  3. 134 0
      keyboards/nckiibs/vaguettelite/keymaps/default/keymap.c
  4. 1 0
      keyboards/nckiibs/vaguettelite/keymaps/default/readme.md
  5. 134 0
      keyboards/nckiibs/vaguettelite/keymaps/default_625u_universal/keymap.c
  6. 1 0
      keyboards/nckiibs/vaguettelite/keymaps/default_625u_universal/readme.md
  7. 154 0
      keyboards/nckiibs/vaguettelite/keymaps/noclew/keymap.c
  8. 1 0
      keyboards/nckiibs/vaguettelite/keymaps/noclew/readme.md
  9. 135 0
      keyboards/nckiibs/vaguettelite/keymaps/via/keymap.c
  10. 1 0
      keyboards/nckiibs/vaguettelite/keymaps/via/rules.mk
  11. 19 0
      keyboards/nckiibs/vaguettelite/readme.md
  12. 23 0
      keyboards/nckiibs/vaguettelite/rules.mk
  13. 17 0
      keyboards/nckiibs/vaguettelite/vaguettelite.c
  14. 57 0
      keyboards/nckiibs/vaguettelite/vaguettelite.h
  15. 24 0
      keyboards/nckiibs/vanana/config.h
  16. 12 0
      keyboards/nckiibs/vanana/info.json
  17. 144 0
      keyboards/nckiibs/vanana/keymaps/default/keymap.c
  18. 1 0
      keyboards/nckiibs/vanana/keymaps/default/readme.md
  19. 79 0
      keyboards/nckiibs/vanana/keymaps/via/keymap.c
  20. 2 0
      keyboards/nckiibs/vanana/keymaps/via/rules.mk
  21. 19 0
      keyboards/nckiibs/vanana/readme.md
  22. 100 0
      keyboards/nckiibs/vanana/rev1/config.h
  23. 17 0
      keyboards/nckiibs/vanana/rev1/rev1.c
  24. 40 0
      keyboards/nckiibs/vanana/rev1/rev1.h
  25. 2 0
      keyboards/nckiibs/vanana/rev1/rules.mk
  26. 100 0
      keyboards/nckiibs/vanana/rev2/config.h
  27. 17 0
      keyboards/nckiibs/vanana/rev2/rev2.c
  28. 41 0
      keyboards/nckiibs/vanana/rev2/rev2.h
  29. 2 0
      keyboards/nckiibs/vanana/rev2/rules.mk
  30. 25 0
      keyboards/nckiibs/vanana/rules.mk
  31. 24 0
      keyboards/nckiibs/waaffle/config.h
  32. 132 0
      keyboards/nckiibs/waaffle/keymaps/default/keymap.c
  33. 1 0
      keyboards/nckiibs/waaffle/keymaps/default/readme.md
  34. 78 0
      keyboards/nckiibs/waaffle/keymaps/via/keymap.c
  35. 1 0
      keyboards/nckiibs/waaffle/keymaps/via/rules.mk
  36. 22 0
      keyboards/nckiibs/waaffle/readme.md
  37. 137 0
      keyboards/nckiibs/waaffle/rev3/config.h
  38. 6 0
      keyboards/nckiibs/waaffle/rev3/elite_c/rules.mk
  39. 19 0
      keyboards/nckiibs/waaffle/rev3/info.json
  40. 6 0
      keyboards/nckiibs/waaffle/rev3/pro_micro/rules.mk
  41. 17 0
      keyboards/nckiibs/waaffle/rev3/rev3.c
  42. 44 0
      keyboards/nckiibs/waaffle/rev3/rev3.h
  43. 24 0
      keyboards/nckiibs/waaffle/rev3/rules.mk

+ 119 - 0
keyboards/nckiibs/vaguettelite/config.h

@@ -0,0 +1,119 @@
+/*
+Copyright 2020 noclew
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID    0x9906
+#define PRODUCT_ID   0x0011
+#define DEVICE_VER   0x0003
+#define MANUFACTURER dELIKEEb
+#define PRODUCT      Vaguette Lite
+
+/* key matrix size */
+#define MATRIX_ROWS 6
+#define MATRIX_COLS 12
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { F4, B3, D1, D2, D3, F5 }
+#define MATRIX_COL_PINS { F6, F7, B1, B2, B6, B5, B4, E6, D7, C6, D0, D4 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/*rotary encoder setting*/
+#define ENCODERS_PAD_A { D5, F1 }
+#define ENCODERS_PAD_B { B7, F0 }
+
+#define RGB_DI_PIN C7
+#ifdef RGB_DI_PIN
+#    define RGBLED_NUM 9
+#    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
+
+/* 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
+
+//#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

+ 15 - 0
keyboards/nckiibs/vaguettelite/info.json

@@ -0,0 +1,15 @@
+{
+    "keyboard_name": "vaguettelite",
+    "url": "",
+    "maintainer": "noclew",
+    "width": 15,
+    "height": 5,
+    "layouts": {
+        "LAYOUT_all": {
+            "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1, "w":1.5}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2, "w":1.25}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":0, "y":3}, {"x":1, "y":3, "w":1.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"x":2.25, "y":4, "w":1.25}, {"x":3.5, "y":4}, {"x":4.5, "y":4, "w":1.25}, {"x":5.75, "y":4, "w":2}, {"x":7.75, "y":4, "w":1.25}, {"x":9, "y":4}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}]
+        },
+        "LAYOUT_625u_universal": {
+            "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1, "w":1.5}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2, "w":2.25}, {"x":14, "y":2}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":2.75}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}]
+        }
+    }
+}

+ 134 - 0
keyboards/nckiibs/vaguettelite/keymaps/default/keymap.c

@@ -0,0 +1,134 @@
+/* Copyright 2020 noclew
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+    _BASE,
+    _LOWER,
+    _RAISE,
+    _ADJUST
+};
+
+// Defines the keycodes used by our macros in process_record_user
+enum custom_keycodes {
+    BASE,
+    LOWER,
+    RAISE,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+    /* BASE
+     * ---------------------------------------------------------------------------------------------------------
+     * |  `  |   1  |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  |  -   |  =   | Bspc | Mute |
+     * ---------------------------------------------------------------------------------------------------------
+     * | Tab     |   Q  |   W  |   E  |   R  |   T  |   Y  |   U  |   I  |   O  |   P  |    \    |   [  |  ]   |
+     *----------------------------------------------------------------------------------------------------------
+     * |   Esc      |   A  |   S  |   D  |   F  |   G  |   H  |   J  |   K  |   L  |   ;  | Enter |  N/A |  '  |
+     *----------------------------------------------------------------------------------------------------------
+     * |  N/A  |  Shift |   Z  |   X  |   C  |   V  |   B  |   N  |   M  |   ,  |   .  |   /  |  Shift   | DEL |
+     *----------------------------------------------------------------------------------------------------------
+     * | Ctrl |  GUI |  Alt  | Lower |  Space  |  Space  |  Space  | Raise |  Alt | Left | Down |  Up  | Right |
+     *----------------------------------------------------------------------------------------------------------
+     */
+
+    [_BASE] = LAYOUT_all(
+    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_AUDIO_MUTE,
+    KC_TAB ,                KC_Q   ,    KC_W   ,    KC_E   ,    KC_R   ,    KC_T   ,    KC_Y   ,    KC_U   ,    KC_I   ,    KC_O   ,    KC_P   ,        KC_BSLS,            KC_LBRC,    KC_RBRC,
+    KC_ESC ,                KC_A   ,    KC_S   ,    KC_D   ,    KC_F   ,    KC_G   ,    KC_H   ,    KC_J   ,    KC_K   ,    KC_L   ,    KC_SCLN,        KC_ENT ,            KC_NO,      KC_QUOT,
+    KC_NO  ,    KC_LSFT,    KC_Z   ,    KC_X   ,    KC_C   ,    KC_V   ,    KC_B   ,    KC_N   ,    KC_M   ,    KC_COMM,    KC_DOT ,    KC_SLSH,            RSFT_T(KC_QUOT),            KC_DEL,
+    KC_LCTL,    KC_LGUI,    KC_LALT,    LOWER  ,    KC_SPC ,            KC_SPC ,        KC_SPC ,                RAISE,      KC_RALT,                KC_LEFT,    KC_DOWN,    KC_UP,      KC_RGHT
+    ),
+
+    [_LOWER] = LAYOUT_all(
+    _______,                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_F12 ,    _______,
+    KC_BSPC,                KC_EQL ,    KC_7   ,    KC_8   ,    KC_9   ,    KC_SLSH,    KC_CIRC,    KC_LBRC,    KC_RBRC,    KC_AT  ,    KC_EXLM,        KC_BSLS,            _______,    _______,
+    KC_ENT ,                KC_0   ,    KC_4   ,    KC_5   ,    KC_6   ,    KC_MINS,    KC_UNDS,    KC_LPRN,    KC_RPRN,    KC_HASH,    KC_DQUO ,       _______,            _______,    _______,
+    KC_DLR ,    KC_DLR ,    KC_PAST,    KC_1   ,    KC_2   ,    KC_3   ,    KC_PPLS,    KC_PIPE,    KC_LCBR,    KC_RCBR,    KC_PERC,    KC_AMPR,                _______,                _______,
+    _______,    _______,    _______,    _______,    _______,            _______,        _______,                _______,    _______,                _______,    _______,    _______,    _______
+    ),
+
+    [_RAISE] = LAYOUT_all(
+    _______,                _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,
+    _______,                _______,    _______,    _______,    _______,    _______,    _______,    KC_HOME,    KC_BSPC,    KC_DEL,     KC_END ,        _______,            _______,    _______,
+    _______,                _______,    _______,    _______,    _______,    _______,    KC_LEFT,    KC_DOWN,    KC_UP,      KC_RGHT,    KC_QUOT,        _______,            _______,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    KC_PGUP,    _______,    _______,    KC_PGDN,                _______,                _______,
+    _______,    _______,    _______,    _______,    _______,            _______,        _______,                _______,    _______,                _______,    _______,    _______,    _______
+    ),
+
+    [_ADJUST] = LAYOUT_all(
+    RESET  ,                _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,   DEBUG,
+    _______,                RGB_TOG,    RGB_RMOD,   RGB_MOD,    RGB_VAD,    RGB_VAI,    _______,    _______,    _______,    _______,    _______,        _______,            _______,    _______,
+    KC_CAPS,                _______,    RGB_HUD,    RGB_HUI,    RGB_SAD,    RGB_SAI,    _______,    _______,    _______,    _______,    _______,        _______,            _______,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,                _______,                _______,
+    _______,    _______,    _______,    _______,    _______,            _______,        _______,                _______,    _______,                _______,    _______,    _______,    _______
+    )
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+    switch (keycode) {
+
+        case LOWER:
+            if (record->event.pressed) {
+                layer_on(_LOWER);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            } else {
+                layer_off(_LOWER);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            }
+        return false;
+
+        case RAISE:
+            if (record->event.pressed) {
+                layer_on(_RAISE);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            } else {
+                layer_off(_RAISE);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            }
+        return false;
+
+    }
+    return true;
+}
+
+void encoder_update_user(uint8_t index, bool clockwise) {
+    /* With an if statement we can check which encoder was turned. */
+    if (index == 0) { /* First encoder */
+        /* And with another if statement we can check the direction. */
+        if (clockwise) {
+            if (IS_LAYER_ON(_LOWER)){
+                tap_code(KC_RIGHT);
+            } else {
+                tap_code(KC_VOLU);
+            }
+        } else {
+            if (IS_LAYER_ON(_LOWER)){
+                tap_code(KC_LEFT);
+            } else {
+                tap_code(KC_VOLD);
+            }
+        }
+
+    } else if (index == 1) { /* Second encoder. Only supported by Elite-C */
+        if (clockwise) {
+            tap_code(KC_RIGHT);
+        } else {
+            tap_code(KC_LEFT);
+        }
+    }
+}

+ 1 - 0
keyboards/nckiibs/vaguettelite/keymaps/default/readme.md

@@ -0,0 +1 @@
+# The default keymap for Vaguette LITE

+ 134 - 0
keyboards/nckiibs/vaguettelite/keymaps/default_625u_universal/keymap.c

@@ -0,0 +1,134 @@
+/* Copyright 2020 noclew
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+    _BASE,
+    _LOWER,
+    _RAISE,
+    _ADJUST
+};
+
+// Defines the keycodes used by our macros in process_record_user
+enum custom_keycodes {
+    BASE,
+    LOWER,
+    RAISE,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+    /* BASE
+     * ---------------------------------------------------------------------------------------------------------
+     * |  `  |   1  |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  |  -  |   =   | BSpc | Mute |
+     * ---------------------------------------------------------------------------------------------------------
+     * | Tab     |   Q  |   W  |   E  |   R  |   T  |   Y  |   U  |   I  |   O  |   P  |    \    |   [  |  ]   |
+     *----------------------------------------------------------------------------------------------------------
+     * |   Esc      |   A  |   S  |   D  |   F  |   G  |   H  |   J  |   K  |   L  |   ;  |     Enter    |  '  |
+     *----------------------------------------------------------------------------------------------------------
+     * |     Shift      |   Z  |   X  |   C  |   V  |   B  |   N  |   M  |   ,  |   .  |   /  |     Shift      |
+     *----------------------------------------------------------------------------------------------------------
+     * | Ctrl |  GUI |  Alt  |                Space                     |  Raise  | Left | Down |  Up  | Right |
+     *----------------------------------------------------------------------------------------------------------
+     */
+
+    [_BASE] = LAYOUT_625u_universal(
+    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_MINS,    KC_BSPC,    KC_AUDIO_MUTE,
+    KC_TAB ,                KC_Q   ,    KC_W   ,    KC_E   ,    KC_R   ,    KC_T   ,    KC_Y   ,    KC_U   ,    KC_I   ,    KC_O   ,    KC_P   ,            KC_BSLS,        KC_LBRC,    KC_RBRC,
+    KC_ESC ,                KC_A   ,    KC_S   ,    KC_D   ,    KC_F   ,    KC_G   ,    KC_H   ,    KC_J   ,    KC_K   ,    KC_L   ,    KC_SCLN,            KC_ENT ,                    KC_QUOT,
+                KC_LSFT,    KC_Z   ,    KC_X   ,    KC_C   ,    KC_V   ,    KC_B   ,    KC_N   ,    KC_M   ,    KC_COMM,    KC_DOT ,    KC_SLSH,            RSFT_T(KC_QUOT),
+    KC_LCTL,    KC_LGUI,    KC_LALT,                            KC_SPC ,                            RAISE  ,    KC_LEFT,    KC_DOWN,    KC_UP  ,    KC_RGHT
+    ),
+
+    [_LOWER] = LAYOUT_625u_universal(
+    _______,                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_F12 ,    _______,
+    KC_BSPC,                KC_EQL ,    KC_7   ,    KC_8   ,    KC_9   ,    KC_SLSH,    KC_CIRC,    KC_LBRC,    KC_RBRC,    KC_AT  ,    KC_EXLM,            KC_BSLS,        _______,    _______,
+    KC_ENT ,                KC_0   ,    KC_4   ,    KC_5   ,    KC_6   ,    KC_MINS,    KC_UNDS,    KC_LPRN,    KC_RPRN,    KC_HASH,    KC_DQUO,            _______,                    _______,
+                KC_DLR ,    KC_PAST,    KC_1   ,    KC_2   ,    KC_3   ,    KC_PPLS,    KC_PIPE,    KC_LCBR,    KC_RCBR,    KC_PERC,    KC_AMPR,            _______,
+    _______,    _______,    _______,                            _______,                            _______,    _______,    _______,    _______,    _______
+    ),
+
+    [_RAISE] = LAYOUT_625u_universal(
+    _______,                _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,
+    _______,                _______,    _______,    _______,    _______,    _______,    _______,    KC_HOME,    KC_BSPC,    KC_DEL,     KC_END ,            _______,        _______,    _______,
+    _______,                _______,    _______,    _______,    _______,    _______,    KC_LEFT,    KC_DOWN,    KC_UP,      KC_RGHT,    KC_QUOT,            _______,                    _______,
+                _______,    _______,    _______,    _______,    _______,    _______,    _______,    KC_PGUP,    _______,    _______,    KC_PGDN,            _______,
+    _______,    _______,    _______,                            _______,                            _______,    _______,    _______,    _______,    _______
+    ),
+
+    [_ADJUST] = LAYOUT_625u_universal(
+    RESET  ,                _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,   DEBUG,
+    _______,                RGB_TOG,    RGB_RMOD,   RGB_MOD,    RGB_VAD,    RGB_VAI,    _______,    _______,    _______,    _______,    _______,            _______,        _______,    _______,
+    KC_CAPS,                _______,    RGB_HUD,    RGB_HUI,    RGB_SAD,    RGB_SAI,    _______,    _______,    _______,    _______,    _______,            _______,                    _______,
+                _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,            _______,
+    _______,    _______,    _______,                            _______,                            _______,    _______,    _______,    _______,    _______
+    )
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+    switch (keycode) {
+
+        case LOWER:
+            if (record->event.pressed) {
+                layer_on(_LOWER);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            } else {
+                layer_off(_LOWER);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            }
+        return false;
+
+        case RAISE:
+            if (record->event.pressed) {
+                layer_on(_RAISE);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            } else {
+                layer_off(_RAISE);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            }
+        return false;
+
+    }
+    return true;
+}
+
+void encoder_update_user(uint8_t index, bool clockwise) {
+    /* With an if statement we can check which encoder was turned. */
+    if (index == 0) { /* First encoder */
+        /* And with another if statement we can check the direction. */
+        if (clockwise) {
+            if (IS_LAYER_ON(_LOWER)){
+                tap_code(KC_RIGHT);
+            } else {
+                tap_code(KC_VOLU);
+            }
+        } else {
+            if (IS_LAYER_ON(_LOWER)){
+                tap_code(KC_LEFT);
+            } else {
+                tap_code(KC_VOLD);
+            }
+        }
+
+    } else if (index == 1) { /* Second encoder. Only supported by Elite-C */
+        if (clockwise) {
+            tap_code(KC_RIGHT);
+        } else {
+            tap_code(KC_LEFT);
+        }
+    }
+}

+ 1 - 0
keyboards/nckiibs/vaguettelite/keymaps/default_625u_universal/readme.md

@@ -0,0 +1 @@
+# The keymap using standard 6.25u spacebar for Vaguette LITE

+ 154 - 0
keyboards/nckiibs/vaguettelite/keymaps/noclew/keymap.c

@@ -0,0 +1,154 @@
+/* Copyright 2020 noclew
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+    _BASE,
+    _LOWER,
+    _RAISE,
+    _ADJUST,
+    _MAC,
+    _GAME
+};
+
+// Defines the keycodes used by our macros in process_record_user
+enum custom_keycodes {
+    BASE,
+    LOWER,
+    RAISE,
+    MAC,
+    GAME
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+    /* BASE
+     * ---------------------------------------------------------------------------------------------------------
+     * |  `  |   1  |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  |  -   |  =   | Bspc | Mute |
+     * ---------------------------------------------------------------------------------------------------------
+     * | Tab     |   Q  |   W  |   E  |   R  |   T  |   Y  |   U  |   I  |   O  |   P  |    \    |   [  |  ]   |
+     *----------------------------------------------------------------------------------------------------------
+     * |   Esc      |   A  |   S  |   D  |   F  |   G  |   H  |   J  |   K  |   L  |   ;  | Enter |  N/A |  '  |
+     *----------------------------------------------------------------------------------------------------------
+     * |  N/A  |  Shift |   Z  |   X  |   C  |   V  |   B  |   N  |   M  |   ,  |   .  |   /  |  Shift   | DEL |
+     *----------------------------------------------------------------------------------------------------------
+     * | Ctrl |  GUI |  Alt  | Lower |  Space  |  Space  |  Space  | Raise |  Alt | Left | Down |  Up  | Right |
+     *----------------------------------------------------------------------------------------------------------
+     */
+
+    [_BASE] = LAYOUT_all(
+    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_MINS,    KC_BSPC,    KC_AUDIO_MUTE,
+    KC_TAB ,                KC_Q   ,    KC_W   ,    KC_E   ,    KC_R   ,    KC_T   ,    KC_Y   ,    KC_U   ,    KC_I   ,    KC_O   ,    KC_P   ,        KC_BSLS,            KC_LBRC,    KC_RBRC,
+    KC_ESC ,                KC_A   ,    KC_S   ,    KC_D   ,    KC_F   ,    KC_G   ,    KC_H   ,    KC_J   ,    KC_K   ,    KC_L   ,    KC_SCLN,        KC_ENT ,            KC_NO,      KC_QUOT,
+    KC_NO  ,    KC_LSFT,    KC_Z   ,    KC_X   ,    KC_C   ,    KC_V   ,    KC_B   ,    KC_N   ,    KC_M   ,    KC_COMM,    KC_DOT ,    KC_SLSH,            RSFT_T(KC_QUOT),            KC_DEL,
+    KC_LCTL,    KC_LGUI,    KC_LALT,    LOWER  ,    KC_SPC ,            KC_SPC ,        KC_SPC ,                RAISE,      KC_RALT,                KC_LEFT,    KC_DOWN,    KC_UP,      KC_RGHT
+    ),
+
+    [_MAC] = LAYOUT_all(
+    _______,                _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,
+    _______,                _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,        _______,            _______,    _______,
+    _______,                _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,        _______,            _______,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,                _______,                _______,
+    _______,    KC_LALT,    KC_LGUI,    _______,    _______,            _______,        _______,                _______,    _______,                _______,    _______,    _______,    _______
+    ),
+
+    [_GAME] = LAYOUT_all(
+    _______,                _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,
+    _______,                _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,        _______,            _______,    _______,
+    _______,                _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,        _______,            _______,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,                _______,                _______,
+    _______,    _______,    MO(_LOWER), KC_LALT,    _______,            _______,        _______,                _______,    _______,                _______,    _______,    _______,    _______
+    ),
+
+    [_LOWER] = LAYOUT_all(
+    _______,                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_F12 ,    _______,
+    KC_BSPC,                KC_EQL ,    KC_7   ,    KC_8   ,    KC_9   ,    KC_SLSH,    KC_CIRC,    KC_LBRC,    KC_RBRC,    KC_AT  ,    KC_EXLM,        KC_BSLS,            _______,    _______,
+    KC_ENT ,                KC_0   ,    KC_4   ,    KC_5   ,    KC_6   ,    KC_MINS,    KC_UNDS,    KC_LPRN,    KC_RPRN,    KC_HASH,    KC_DQUO ,       _______,            _______,    _______,
+    KC_DLR ,    KC_DLR ,    KC_PAST,    KC_1   ,    KC_2   ,    KC_3   ,    KC_PPLS,    KC_PIPE,    KC_LCBR,    KC_RCBR,    KC_PERC,    KC_AMPR,                _______,                _______,
+    _______,    _______,    _______,    _______,    _______,            _______,        _______,                _______,    _______,                _______,    _______,    _______,    _______
+    ),
+
+    [_RAISE] = LAYOUT_all(
+    _______,                _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,
+    _______,                _______,    _______,    _______,    _______,    _______,    _______,    KC_HOME,    KC_BSPC,    KC_DEL,     KC_END ,        _______,            _______,    _______,
+    _______,                _______,    _______,    _______,    _______,    _______,    KC_LEFT,    KC_DOWN,    KC_UP,      KC_RGHT,    KC_QUOT,        _______,            _______,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    KC_PGUP,    _______,    _______,    KC_PGDN,                _______,                _______,
+    _______,    _______,    _______,    _______,    _______,            _______,        _______,                _______,    _______,                _______,    _______,    _______,    _______
+    ),
+
+    [_ADJUST] = LAYOUT_all(
+    RESET  ,                _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,   DEBUG,
+    _______,                RGB_TOG,    RGB_RMOD,   RGB_MOD,    RGB_VAD,    RGB_VAI,    _______,    _______,    _______,    _______,    _______,        _______,            _______,    _______,
+    KC_CAPS,                RGB_HUD,    RGB_HUI,    RGB_SAD,    RGB_SAI,    _______,    _______,    TG(_GAME),  _______,    _______,    _______,        _______,            _______,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    TG(_MAC),   _______,    _______,    _______,                _______,                _______,
+    _______,    _______,    _______,    _______,    _______,            _______,        _______,                _______,    _______,                _______,    _______,    _______,    _______
+    )
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+    switch (keycode) {
+
+        case LOWER:
+            if (record->event.pressed) {
+                layer_on(_LOWER);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            } else {
+                layer_off(_LOWER);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            }
+        return false;
+
+        case RAISE:
+            if (record->event.pressed) {
+                layer_on(_RAISE);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            } else {
+                layer_off(_RAISE);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            }
+        return false;
+
+    }
+    return true;
+}
+
+void encoder_update_user(uint8_t index, bool clockwise) {
+    /* With an if statement we can check which encoder was turned. */
+    if (index == 0) { /* First encoder */
+        /* And with another if statement we can check the direction. */
+        if (clockwise) {
+            if (IS_LAYER_ON(_LOWER)){
+                tap_code(KC_RIGHT);
+            } else {
+                tap_code(KC_VOLU);
+            }
+        } else {
+            if (IS_LAYER_ON(_LOWER)){
+                tap_code(KC_LEFT);
+            } else {
+                tap_code(KC_VOLD);
+            }
+        }
+
+    } else if (index == 1) { /* Second encoder. Only supported by Elite-C */
+        if (clockwise) {
+            tap_code(KC_RIGHT);
+        } else {
+            tap_code(KC_LEFT);
+        }
+    }
+}

+ 1 - 0
keyboards/nckiibs/vaguettelite/keymaps/noclew/readme.md

@@ -0,0 +1 @@
+# The noclew's keymap for Vaguette LITE

+ 135 - 0
keyboards/nckiibs/vaguettelite/keymaps/via/keymap.c

@@ -0,0 +1,135 @@
+/* Copyright 2020 noclew
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+    _BASE,
+    _LOWER,
+    _RAISE,
+    _ADJUST
+};
+
+// Defines the keycodes used by our macros in process_record_user
+enum custom_keycodes {
+    BASE,
+    LOWER,
+    RAISE,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+    /* BASE
+     * ---------------------------------------------------------------------------------------------------------
+     * |  `  |   1  |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  | BSpc |  Del |  Del | Mute |
+     * ---------------------------------------------------------------------------------------------------------
+     * | Tab     |   Q  |   W  |   E  |   R  |   T  |   Y  |   U  |   I  |   O  |   P  |    \    |   [  |  ]   |
+     *----------------------------------------------------------------------------------------------------------
+     * |   Esc      |   A  |   S  |   D  |   F  |   G  |   H  |   J  |   K  |   L  |   ;  | Enter |  N/A |  '  |
+     *----------------------------------------------------------------------------------------------------------
+     * |  N/A  |  Shift |   Z  |   X  |   C  |   V  |   B  |   N  |   M  |   ,  |   .  |   /  |  Shift   |  /  |
+     *----------------------------------------------------------------------------------------------------------
+     * | Ctrl |  GUI |  Alt  | Lower |  Space  |  Space  |  Space  | Raise |  Alt | Left | Down |  Up  | Right |
+     *----------------------------------------------------------------------------------------------------------
+     */
+
+    [_BASE] = LAYOUT_all(
+    KC_GRV ,                KC_1   ,    KC_2   ,    KC_3   ,    KC_4   ,    KC_5   ,    KC_6   ,    KC_7   ,    KC_8   ,    KC_9   ,    KC_0   ,    KC_BSPC,    KC_DEL,     KC_DEL,     KC_AUDIO_MUTE,
+    KC_TAB ,                KC_Q   ,    KC_W   ,    KC_E   ,    KC_R   ,    KC_T   ,    KC_Y   ,    KC_U   ,    KC_I   ,    KC_O   ,    KC_P   ,        KC_BSLS,            KC_LBRC,    KC_RBRC,
+    KC_ESC ,                KC_A   ,    KC_S   ,    KC_D   ,    KC_F   ,    KC_G   ,    KC_H   ,    KC_J   ,    KC_K   ,    KC_L   ,    KC_SCLN,        KC_ENT ,            KC_NO,      KC_QUOT,
+    KC_NO  ,    KC_LSFT,    KC_Z   ,    KC_X   ,    KC_C   ,    KC_V   ,    KC_B   ,    KC_N   ,    KC_M   ,    KC_COMM,    KC_DOT ,    KC_SLSH,            RSFT_T(KC_QUOT),            KC_SLSH,
+    KC_LCTL,    KC_LGUI,    KC_LALT,    LOWER  ,    KC_SPC ,            KC_SPC ,        KC_SPC ,                RAISE,      KC_RALT,                KC_LEFT,    KC_DOWN,    KC_UP,      KC_RGHT
+    ),
+
+    [_LOWER] = LAYOUT_all(
+    _______,                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_F12 ,    _______,
+    KC_BSPC,                KC_EQL ,    KC_7   ,    KC_8   ,    KC_9   ,    KC_SLSH,    KC_CIRC,    KC_LBRC,    KC_RBRC,    KC_AT  ,    KC_EXLM,        KC_BSLS,            _______,    _______,
+    KC_ENT ,                KC_0   ,    KC_4   ,    KC_5   ,    KC_6   ,    KC_MINS,    KC_UNDS,    KC_LPRN,    KC_RPRN,    KC_HASH,    KC_DQUO ,       _______,            _______,    _______,
+    KC_DLR ,    KC_DLR ,    KC_PAST,    KC_1   ,    KC_2   ,    KC_3   ,    KC_PPLS,    KC_PIPE,    KC_LCBR,    KC_RCBR,    KC_PERC,    KC_AMPR,                _______,                _______,
+    _______,    _______,    _______,    _______,    _______,            _______,        _______,                _______,    _______,                _______,    _______,    _______,    _______
+    ),
+
+    [_RAISE] = LAYOUT_all(
+    _______,                _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,
+    _______,                _______,    _______,    _______,    _______,    _______,    _______,    KC_HOME,    KC_BSPC,    KC_DEL,     KC_END ,        _______,            _______,    _______,
+    _______,                _______,    _______,    _______,    _______,    _______,    KC_LEFT,    KC_DOWN,    KC_UP,      KC_RGHT,    KC_QUOT,        _______,            _______,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    KC_PGUP,    _______,    _______,    KC_PGDN,                _______,                _______,
+    _______,    _______,    _______,    _______,    _______,            _______,        _______,                _______,    _______,                _______,    _______,    _______,    _______
+    ),
+
+    [_ADJUST] = LAYOUT_all(
+    RESET  ,                _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,   DEBUG,
+    _______,                RGB_TOG,    RGB_RMOD,   RGB_MOD,    RGB_VAD,    RGB_VAI,    _______,    _______,    _______,    _______,    _______,        _______,            _______,    _______,
+    KC_CAPS,                _______,    RGB_HUD,    RGB_HUI,    RGB_SAD,    RGB_SAI,    _______,    _______,    _______,    _______,    _______,        _______,            _______,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,                _______,                _______,
+    _______,    _______,    _______,    _______,    _______,            _______,        _______,                _______,    _______,                _______,    _______,    _______,    _______
+    )
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+    switch (keycode) {
+
+        case LOWER:
+            if (record->event.pressed) {
+                layer_on(_LOWER);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            } else {
+                layer_off(_LOWER);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            }
+        return false;
+
+        case RAISE:
+            if (record->event.pressed) {
+                layer_on(_RAISE);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            } else {
+                layer_off(_RAISE);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            }
+        return false;
+
+    }
+    return true;
+}
+
+void encoder_update_user(uint8_t index, bool clockwise) {
+    /* With an if statement we can check which encoder was turned. */
+    if (index == 0) { /* First encoder */
+        /* And with another if statement we can check the direction. */
+        if (clockwise) {
+            if (IS_LAYER_ON(_LOWER)){
+                tap_code(KC_RIGHT);
+            } else {
+                tap_code(KC_VOLU);
+            }
+        } else {
+            if (IS_LAYER_ON(_LOWER)){
+                tap_code(KC_LEFT);
+            } else {
+                tap_code(KC_VOLD);
+            }
+        }
+
+    } else if (index == 1) { /* Second encoder. Only supported by Elite-C */
+        if (clockwise) {
+            tap_code(KC_RIGHT);
+        } else {
+            tap_code(KC_LEFT);
+        }
+    }
+}

+ 1 - 0
keyboards/nckiibs/vaguettelite/keymaps/via/rules.mk

@@ -0,0 +1 @@
+VIA_ENABLE = yes

+ 19 - 0
keyboards/nckiibs/vaguettelite/readme.md

@@ -0,0 +1,19 @@
+# Vaguette Lite
+
+![vaguettelite](https://i.imgur.com/bSZKD1cl.jpg)
+
+Vaguette Lite is a 60% keyboard that has a reduced alphas area, and it is a variation of Vaguette, which is a 40% keyboard with a detachable Numpad. 
+
+* Keyboard Maintainer: [noclew](https://github.com/noclew)
+* Hardware Supported: Vaguette Lite PCB
+* Hardware Availability: Not commercially available. GB on Reddit and Geekhack time to times.
+
+Make example for this keyboard (after setting up your build environment):
+
+    make nckiibs/vaguettelite:default
+
+Flashing example for this keyboard:
+
+    make nckiibs/vaguettelite:default:flash
+
+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).

+ 23 - 0
keyboards/nckiibs/vaguettelite/rules.mk

@@ -0,0 +1,23 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+#   change yes to no to disable
+#
+BOOTMAGIC_ENABLE = lite     # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes       # Mouse keys
+EXTRAKEY_ENABLE = yes       # Audio control and System control
+CONSOLE_ENABLE = no         # Console for debug
+COMMAND_ENABLE = no         # Commands for debug and configuration
+# 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 = yes       # Enable keyboard RGB underglow
+BLUETOOTH_ENABLE = no       # Enable Bluetooth
+AUDIO_ENABLE = no           # Audio output
+ENCODER_ENABLE = yes

+ 17 - 0
keyboards/nckiibs/vaguettelite/vaguettelite.c

@@ -0,0 +1,17 @@
+/* Copyright 2020 noclew
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "vaguettelite.h"

+ 57 - 0
keyboards/nckiibs/vaguettelite/vaguettelite.h

@@ -0,0 +1,57 @@
+/* Copyright 2020 noclew
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+/* 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_all( \
+    k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k65, k66, k69,\
+    k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k67, k68,\
+    k25, k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, k36, k61, k70,\
+    k60, k37, k38, k39, k40, k41, k42, k43, k44, k45, k46, k47, k48, k62,\
+    k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k63, k64 \
+) { \
+    { k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12 }, \
+    { k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24 }, \
+    { k25, k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, k36 }, \
+    { k37, k38, k39, k40, k41, k42, k43, k44, k45, k46, k47, k48 }, \
+    { k49, k50, k51, k52, k53, k54, KC_NO, k55, k56, k57, k58, k59}, \
+    { k60, KC_NO, k61, k62, k63, k64, k65, k66, k67, k68, k69, k70 } \
+}
+
+#define LAYOUT_625u_universal( \
+    k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k65, k66, k69,\
+    k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k67, k68,\
+    k25, k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, k36, k70,\
+         k37, k38, k39, k40, k41, k42, k43, k44, k45, k46, k47, k48,\
+    k49, k50, k51,          k54,            k57, k58, k59, k63, k64 \
+) { \
+    { k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12 }, \
+    { k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24 }, \
+    { k25, k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, k36 }, \
+    { k37, k38, k39, k40, k41, k42, k43, k44, k45, k46, k47, k48 }, \
+    { k49, k50, k51, KC_NO, KC_NO, k54, KC_NO, KC_NO, KC_NO, k57, k58, k59}, \
+    { KC_NO, KC_NO, KC_NO, KC_NO, k63, k64, k65, k66, k67, k68, k69, k70 } \
+}

+ 24 - 0
keyboards/nckiibs/vanana/config.h

@@ -0,0 +1,24 @@
+/*
+Copyright 2020 noclew
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+#define VENDOR_ID    0x9906
+#define PRODUCT_ID   0x0013
+#define MANUFACTURER dELIKEEb

+ 12 - 0
keyboards/nckiibs/vanana/info.json

@@ -0,0 +1,12 @@
+{
+    "keyboard_name": "vanana",
+    "url": "",
+    "maintainer": "noclew",
+    "width": 15,
+    "height": 5,
+    "layouts": {
+        "LAYOUT": {
+            "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":7, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":7, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4, "w":1.25}, {"x":5.25, "y":4, "w":1.5}, {"x":8.25, "y":4, "w":1.5}, {"x":9.75, "y":4, "w":1.25}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}]
+        }
+    }
+}

+ 144 - 0
keyboards/nckiibs/vanana/keymaps/default/keymap.c

@@ -0,0 +1,144 @@
+/* Copyright 2020 noclew
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+#ifdef AUDIO_ENABLE
+  float song_coin[][2]  = SONG(COIN_SOUND);
+#endif
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+    _BASE,
+    _LOWER,
+    _RAISE,
+    _ADJUST
+};
+
+// Defines the keycodes used by our macros in process_record_user
+enum custom_keycodes {
+    BASE,
+    LOWER,
+    RAISE,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    /* BASE
+     * -------------------------------------------               -------------------------------------------
+     * |   `  |   1  |   2  |   3  |   4  |   5  |               |   6  |   7  |   8  |   9  |   0  | Bksp |
+     * -------------------------------------------               -------------------------------------------
+     * | Tab  |   Q  |   W  |   E  |   R  |   T  |               |   Y  |   U  |   I  |   O  |   P  |   \  |
+     * -------------------------------------------   ---------  --------------------------------------------
+     * | Esc  |   A  |   S  |   D  |   F  |   G  |   | Bksp  |   |   H  |   J  |   K  |   L  |   ;  |Enter |
+     * -------------------------------------------   ---------   -------------------------------------------
+     * | Shift|   Z  |   X  |   C  |   V  |   B  |   | Del   |   |   N  |   M  |   ,  |   .  |   /  | "    |
+     * -------------------------------------------   ---------   -------------------------------------------
+     *        | GUI  |  Alt | Ctrl |Lower |Space |               |Space |Raise |Alt   | Left | Right|
+     *        ------------------------------------               ------------------------------------
+     */
+
+    [_BASE] = LAYOUT(
+    KC_GRV,     KC_1   ,    KC_2   ,    KC_3   ,    KC_4   ,    KC_5  ,                 KC_6   ,    KC_7   ,    KC_8   ,    KC_9   ,    KC_0   ,    KC_BSPC,
+    KC_TAB,     KC_Q   ,    KC_W   ,    KC_E   ,    KC_R   ,    KC_T  ,                 KC_Y   ,    KC_U   ,    KC_I   ,    KC_O   ,    KC_P   ,    KC_BSLS,
+    KC_ESC,     KC_A   ,    KC_S   ,    KC_D   ,    KC_F   ,    KC_G  ,     KC_BSPC,    KC_H   ,    KC_J   ,    KC_K   ,    KC_L   ,    KC_SCLN,    KC_ENT ,
+    KC_LSFT,    KC_Z   ,    KC_X   ,    KC_C   ,    KC_V   ,    KC_B  ,     KC_DEL ,    KC_N   ,    KC_M   ,    KC_COMM,    KC_DOT ,    KC_SLSH,    RSFT_T(KC_QUOT),
+                KC_LGUI,    KC_LALT,    KC_LCTL,    LOWER  ,    KC_SPC,                 KC_SPC ,    RAISE  ,    KC_RALT,    KC_LEFT,    KC_RGHT
+    ),
+
+    [_LOWER] = LAYOUT(
+    KC_F1  ,    KC_F2  ,    KC_F3  ,    KC_F4  ,    KC_F5  ,    KC_F6  ,                KC_F7  ,    KC_F8  ,    KC_F9  ,    KC_F10 ,    KC_F11 ,    KC_F12 ,
+    KC_BSPC,    KC_EQL ,    KC_7   ,    KC_8   ,    KC_9   ,    KC_PPLS,                KC_CIRC,    KC_LBRC,    KC_RBRC,    KC_AT  ,    KC_EXLM,    KC_BSLS,
+    KC_ENT ,    KC_0   ,    KC_4   ,    KC_5   ,    KC_6   ,    KC_MINS,    KC_LEFT,    KC_UNDS,    KC_LPRN,    KC_RPRN,    KC_HASH,    KC_DQUO,    _______,
+    KC_DLR ,    KC_PAST,    KC_1   ,    KC_2   ,    KC_3   ,    KC_SLSH,    KC_RGHT,    KC_PIPE,    KC_LCBR,    KC_RCBR,    KC_PERC,    KC_AMPR,    _______,
+                _______,    _______,    _______,    _______,    _______,                _______,    _______,    _______,    _______,    _______
+    ),
+
+    [_RAISE] = LAYOUT(
+    _______,    _______,    _______,    _______,    _______,    _______,                _______,    _______,    _______,    _______,    _______,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,                _______,    KC_HOME,    KC_BSPC,    KC_DEL ,    KC_END ,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,    KC_UP  ,    KC_LEFT,    KC_DOWN,    KC_UP  ,    KC_RGHT,    KC_QUOT,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,    KC_DOWN,    _______,    KC_PGUP,    _______,    KC_PGDN,    _______,    _______,
+                _______,    _______,    _______,    _______,    _______,                _______,    _______,    _______,    _______,    _______
+    ),
+    [_ADJUST] = LAYOUT(
+    RESET  ,    _______,    _______,    _______,    _______,    _______,                _______,    _______,    _______,    _______,    _______,    DEBUG  ,
+    _______,    RGB_TOG,    RGB_RMOD,   RGB_MOD,    RGB_VAD,    RGB_VAI,                _______,    _______,    _______,    _______,    _______,    _______,
+    KC_CAPS,    _______,    RGB_HUD,    RGB_HUI,    RGB_SAD,    RGB_SAI,    KC_VOLU,    _______,    _______,    _______,    _______,    _______,    _______,
+    _______,    AU_ON  ,    AU_OFF ,    _______,    _______,    _______,    KC_VOLD,    _______,    _______,    _______,    _______,    _______,    _______,
+                _______,    _______,    _______,    _______,    _______,                _______,    _______,    _______,    _______,    _______
+    )
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+    switch (keycode) {
+
+        case LOWER:
+            if (record->event.pressed) {
+                layer_on(_LOWER);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            } else {
+                layer_off(_LOWER);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            }
+        return false;
+
+        case RAISE:
+            if (record->event.pressed) {
+                layer_on(_RAISE);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            } else {
+                layer_off(_RAISE);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            }
+        return false;
+
+        case RESET:
+            if (record->event.pressed) {
+                #ifdef AUDIO_ENABLE
+                    stop_all_notes();
+                    PLAY_SONG(song_coin);
+                #endif
+            }
+        return false;
+    }
+    return true;
+}
+
+void encoder_update_user(uint8_t index, bool clockwise) {
+    /* With an if statement we can check which encoder was turned. */
+    if (index == 0) { /* First encoder */
+        /* And with another if statement we can check the direction. */
+        if (clockwise) {
+            if (IS_LAYER_ON(_LOWER)){
+                tap_code(KC_VOLU);
+            } else {
+                tap_code(KC_RIGHT);
+            }
+        } else {
+            if (IS_LAYER_ON(_LOWER)){
+                tap_code(KC_VOLD);
+            } else {
+                tap_code(KC_LEFT);
+            }
+        }
+
+    } else if (index == 1) { /* Second encoder. Only supported by Elite-C */
+        if (clockwise) {
+            tap_code(KC_RIGHT);
+        } else {
+            tap_code(KC_LEFT);
+        }
+    }
+}

+ 1 - 0
keyboards/nckiibs/vanana/keymaps/default/readme.md

@@ -0,0 +1 @@
+# The default keymap for vanana

+ 79 - 0
keyboards/nckiibs/vanana/keymaps/via/keymap.c

@@ -0,0 +1,79 @@
+/* Copyright 2020 noclew
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+    _BASE,
+    _LOWER,
+    _RAISE,
+    _ADJUST
+};
+
+// Defines the keycodes used by our macros in process_record_user
+enum custom_keycodes {
+    BASE,
+    LOWER,
+    RAISE,
+};
+
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    /* BASE
+     * -------------------------------------------               -------------------------------------------
+     * |   `  |   1  |   2  |   3  |   4  |   5  |               |   6  |   7  |   8  |   9  |   0  | Bksp |
+     * -------------------------------------------               -------------------------------------------
+     * | Tab  |   Q  |   W  |   E  |   R  |   T  |               |   Y  |   U  |   I  |   O  |   P  |   \  |
+     * -------------------------------------------   ---------  --------------------------------------------
+     * | Esc  |   A  |   S  |   D  |   F  |   G  |   | Bksp  |   |   H  |   J  |   K  |   L  |   ;  |Enter |
+     * -------------------------------------------   ---------   -------------------------------------------
+     * | Shift|   Z  |   X  |   C  |   V  |   B  |   | Del   |   |   N  |   M  |   ,  |   .  |   /  | "    |
+     * -------------------------------------------   ---------   -------------------------------------------
+     *        | Ctrl | GUI  |  Alt |Lower |Space |               |Space |Raise |Alt   | DOWN | UP   |
+     *        ------------------------------------               ------------------------------------
+     */
+
+    [_BASE] = LAYOUT(
+    KC_GRV,     KC_1   ,    KC_2   ,    KC_3   ,    KC_4   ,    KC_5,                       KC_6   ,    KC_7   ,    KC_8   ,    KC_9   ,    KC_0   ,    KC_BSPC,
+    KC_TAB,     KC_Q   ,    KC_W   ,    KC_E   ,    KC_R   ,    KC_T,                       KC_Y   ,    KC_U   ,    KC_I   ,    KC_O   ,    KC_P   ,    KC_BSLS,
+    KC_ESC,     KC_A   ,    KC_S   ,    KC_D   ,    KC_F   ,    KC_G,       KC_BSPC,        KC_H   ,    KC_J   ,    KC_K   ,    KC_L   ,    KC_SCLN,    KC_ENT ,
+    KC_LSFT,    KC_Z   ,    KC_X   ,    KC_C   ,    KC_V   ,    KC_B,       KC_DEL ,        KC_N   ,    KC_M   ,    KC_COMM,    KC_DOT ,    KC_SLSH,    RSFT_T(KC_QUOT),
+                KC_LCTL,    KC_LALT,    KC_LGUI,    LOWER  ,    KC_SPC,                     KC_SPC ,    RAISE  ,    KC_RALT,    KC_DOWN,    KC_UP
+    ),
+    [_LOWER] = LAYOUT(
+    KC_F1  ,    KC_F2  ,    KC_F3  ,    KC_F4  ,    KC_F5  ,    KC_F6  ,                    KC_F7  ,    KC_F8  ,    KC_F9  ,    KC_F10 ,    KC_F11 ,    KC_F12 ,
+    KC_BSPC,    KC_EQL ,    KC_7   ,    KC_8   ,    KC_9   ,    KC_SLSH,                    KC_CIRC,    KC_LBRC,    KC_RBRC,    KC_AT  ,    KC_EXLM,    KC_BSLS,
+    KC_ENT ,    KC_0   ,    KC_4   ,    KC_5   ,    KC_6   ,    KC_MINS,     KC_LEFT,       KC_UNDS,    KC_LPRN,    KC_RPRN,    KC_HASH,    KC_DQUO,    _______,
+    KC_DLR ,    KC_PAST,    KC_1   ,    KC_2   ,    KC_3   ,    KC_PPLS,     KC_RGHT,       KC_PIPE,    KC_LCBR,    KC_RCBR,    KC_PERC,    KC_AMPR,    _______,
+                _______,    _______,    _______,    _______,    _______,                    _______,    _______,    _______,    _______,    _______
+    ),
+
+    [_RAISE] = LAYOUT(
+    _______,    _______,    _______,    _______,    _______,    _______,                    _______,    _______,    _______,    _______,    _______,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,                    _______,    KC_HOME,    KC_BSPC,    KC_DEL ,    KC_END ,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,    KC_UP  ,        KC_LEFT,    KC_DOWN,    KC_UP  ,    KC_RGHT,    KC_QUOT,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,    KC_DOWN,        _______,    KC_PGUP,    _______,    KC_PGDN,    _______,    _______,
+                _______,    _______,    _______,    _______,    _______,                    _______,    _______,    _______,    _______,    _______
+    ),
+    [_ADJUST] = LAYOUT(
+    RESET  ,    _______,    _______,    _______,    _______,    _______,                    _______,    _______,    _______,    _______,    _______,    DEBUG  ,
+    _______,    RGB_TOG,    RGB_RMOD,   RGB_MOD,    RGB_VAD,    RGB_VAI,                    _______,    _______,    _______,    _______,    _______,    _______,
+    KC_CAPS,    _______,    RGB_HUD,    RGB_HUI,    RGB_SAD,    RGB_SAI,    KC_VOLU,        _______,    _______,    _______,    _______,    _______,    _______,
+    _______,    AU_ON  ,    AU_OFF ,    _______,    _______,    _______,    KC_VOLD,        _______,    _______,    _______,    _______,    _______,    _______,
+                _______,    _______,    _______,    _______,    _______,                    _______,    _______,    _______,    _______,    _______
+    )
+};

+ 2 - 0
keyboards/nckiibs/vanana/keymaps/via/rules.mk

@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+AUDIO_ENABLE = no          # Audio output

+ 19 - 0
keyboards/nckiibs/vanana/readme.md

@@ -0,0 +1,19 @@
+# Vanana
+
+![vanana](https://i.imgur.com/I5a5KKNl.jpg)
+
+Vanana is a non-split ergonomic keyboard with RGB underglow and on-board pinouts for a Bluetooth setup. Designed by dELIKEEb.
+
+* Keyboard Maintainer: [noclew](https://github.com/noclew)
+* Hardware Supported: Vanana PCB
+* Hardware Availability: Not commercially available. GB on Reddit and Geekhack time to times.
+
+Make example for this keyboard (after setting up your build environment):
+
+    make nckiibs/vanana/rev2:default
+
+Flashing example for this keyboard:
+
+    make nckiibs/vanana/rev2:default:flash
+
+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).

+ 100 - 0
keyboards/nckiibs/vanana/rev1/config.h

@@ -0,0 +1,100 @@
+/*
+Copyright 2020 noclew
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+/* USB Device descriptor parameter */
+#define DEVICE_VER   0x0001
+#define PRODUCT      Vanana rev1
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 12
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { D2, D7, B4, B5, B6 }
+#define MATRIX_COL_PINS { B2, B3, B1, F7, F5, F6, D3, D1, D0, D4, C6, E6 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Rotary Encoder and Buzzer */
+#define ENCODERS_PAD_A { C7, F1 }
+#define ENCODERS_PAD_B { D5, F0 }
+#define B7_AUDIO
+
+#define RGB_DI_PIN F0
+#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
+
+/* 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

+ 17 - 0
keyboards/nckiibs/vanana/rev1/rev1.c

@@ -0,0 +1,17 @@
+/* Copyright 2020 noclew
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "rev1.h"

+ 40 - 0
keyboards/nckiibs/vanana/rev1/rev1.h

@@ -0,0 +1,40 @@
+/* Copyright 2020 noclew
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#include "quantum.h"
+
+/* 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( \
+    k01, k02, k03, k04, k05, k06,      k07, k08, k09, k10, k11, k12, \
+    k13, k14, k15, k16, k17, k18,      k19, k20, k21, k22, k23, k24, \
+    k25, k26, k27, k28, k29, k30, k49, k31, k32, k33, k34, k35, k36, \
+    k37, k38, k39, k40, k41, k42, k60, k43, k44, k45, k46, k47, k48, \
+         k50, k51, k52, k53, k54,      k55, k56, k57, k58, k59 \
+) { \
+    { k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12 }, \
+    { k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24 }, \
+    { k25, k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, k36 }, \
+    { k37, k38, k39, k40, k41, k42, k43, k44, k45, k46, k47, k48 }, \
+    { k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60 }  \
+}

+ 2 - 0
keyboards/nckiibs/vanana/rev1/rules.mk

@@ -0,0 +1,2 @@
+RGBLIGHT_ENABLE = no       # Enable keyboard RGB underglow
+AUDIO_ENABLE = no          # Audio output

+ 100 - 0
keyboards/nckiibs/vanana/rev2/config.h

@@ -0,0 +1,100 @@
+/*
+Copyright 2020 noclew
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+/* USB Device descriptor parameter */
+#define DEVICE_VER   0x0002
+#define PRODUCT      Vanana rev2
+
+/* key matrix size */
+#define MATRIX_ROWS 6
+#define MATRIX_COLS 10
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { D1, C6, E6, B4, B5, F5}
+#define MATRIX_COL_PINS { B3, B1, F7, F6, F4, D2, D3, D0, D4, D7 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Rotary Encoder and Buzzer */
+#define ENCODERS_PAD_A { B6, F0 }
+#define ENCODERS_PAD_B { B2, F1 }
+#define B7_AUDIO
+
+#define RGB_DI_PIN C7
+#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
+
+/* 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

+ 17 - 0
keyboards/nckiibs/vanana/rev2/rev2.c

@@ -0,0 +1,17 @@
+/* Copyright 2020 noclew
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "rev2.h"

+ 41 - 0
keyboards/nckiibs/vanana/rev2/rev2.h

@@ -0,0 +1,41 @@
+/* Copyright 2020 noclew
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#include "quantum.h"
+
+/* 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( \
+    k01, k02, k03, k04, k05, k55,      k60, k06, k07, k08, k09, k10, \
+    k11, k12, k13, k14, k15, k54,      k59, k16, k17, k18, k19, k20, \
+    k21, k22, k23, k24, k25, k53, k56, k58, k26, k27, k28, k29, k30, \
+    k31, k32, k33, k34, k35, k52, k51, k57, k36, k37, k38, k39, k40, \
+         k41, k42, k43, k44, k45,      k46, k47, k48, k49, k50 \
+) { \
+    { k01, k02, k03, k04, k05, k06, k07, k08, k09, k10 }, \
+    { k11, k12, k13, k14, k15, k16, k17, k18, k19, k20 }, \
+    { k21, k22, k23, k24, k25, k26, k27, k28, k29, k30 }, \
+    { k31, k32, k33, k34, k35, k36, k37, k38, k39, k40 }, \
+    { k41, k42, k43, k44, k45, k46, k47, k48, k49, k50 }, \
+    { k51, k52, k53, k54, k55, k56, k57, k58, k59, k60 } \
+}

+ 2 - 0
keyboards/nckiibs/vanana/rev2/rules.mk

@@ -0,0 +1,2 @@
+RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
+AUDIO_ENABLE = yes          # Audio output

+ 25 - 0
keyboards/nckiibs/vanana/rules.mk

@@ -0,0 +1,25 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+BOOTMAGIC_ENABLE = lite     # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes       # Mouse keys
+EXTRAKEY_ENABLE = yes       # Audio control and System control
+CONSOLE_ENABLE = no         # Console for debug
+COMMAND_ENABLE = no         # Commands for debug and configuration
+# 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
+BLUETOOTH_ENABLE = no       # Enable Bluetooth
+ENCODER_ENABLE = yes		# Enable Rotary Encoder
+
+# additional features for ELITE-C
+RGBLIGHT_ENABLE = no       # Enable keyboard RGB underglow
+AUDIO_ENABLE = no          # Audio output
+
+DEFAULT_FOLDER = nckiibs/vanana/rev2

+ 24 - 0
keyboards/nckiibs/waaffle/config.h

@@ -0,0 +1,24 @@
+/*
+Copyright 2020 noclew
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+#define VENDOR_ID       0x9906
+#define PRODUCT_ID      0x0012
+#define MANUFACTURER    dELIKEEb

+ 132 - 0
keyboards/nckiibs/waaffle/keymaps/default/keymap.c

@@ -0,0 +1,132 @@
+/* Copyright 2020 noclew
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+    _BASE,
+    _LOWER,
+    _RAISE,
+    _ADJUST
+};
+
+// Defines the keycodes used by our macros in process_record_user
+enum custom_keycodes {
+    BASE,
+    LOWER,
+    RAISE,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    /* BASE
+     * ------------------------------------------------------------------------------------------------------------------
+     * |  *   |   /  |   =  |  Del ||   `  |   1  |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  | BSpc |
+     * ------------------------------------------------------------------------------------------------------------------
+     * |  +   |   7  |   8  |   9  || Tab  |   Q  |   W  |   E  |   R  |   T  |   Y  |   U  |   I  |   O  |   P  |   \  |
+     *-------------------------------------------------------------------------------------------------------------------
+     * |  +   |   4  |   5  |   6  || Esc  |   A  |   S  |   D  |   F  |   G  |   H  |   J  |   K  |   L  |   ;  | Enter|
+     *------------------------------------------------------------------------------------------------------------------
+     * | Enter|   1  |   2  |   3  || Shift|   Z  |   X  |   C  |   V  |   B  |   N  |   M  |   ,  |   .  |   /  | Shift|
+     *-------------------------------------------------------------------------------------------------------------------
+     * | Enter|   .  |   0  |   0  || Ctrl | Ctrl | Alt  | GUI  |Lower |    Space    |Raise | Left | Down |  Up  | Right|
+     *-------------------------------------------------------------------------------------------------------------------
+     */
+    [_BASE] = LAYOUT_ortho_5x16(
+    KC_PAST,    KC_PSLS,    KC_EQL,     KC_DEL,     KC_GRV,     KC_1,       KC_2,       KC_3,       KC_4,       KC_5,       KC_6,       KC_7,       KC_8,       KC_9,       KC_0,       KC_BSPC,
+    KC_PPLS,    KC_7,       KC_8,       KC_9,       KC_TAB,     KC_Q,       KC_W,       KC_E,       KC_R,       KC_T,       KC_Y,       KC_U,       KC_I,       KC_O,       KC_P,       KC_BSLS,
+    KC_PPLS,    KC_4,       KC_5,       KC_6,       KC_ESC,     KC_A,       KC_S,       KC_D,       KC_F,       KC_G,       KC_H,       KC_J,       KC_K,       KC_L,       KC_SCLN,    KC_ENT,
+    KC_ENT,     KC_1,       KC_2,       KC_3,       KC_LSFT,    KC_Z,       KC_X,       KC_C,       KC_V,       KC_B,       KC_N,       KC_M,       KC_COMM,    KC_DOT,     KC_SLSH,    RSFT_T(KC_QUOT),
+    KC_ENT,     KC_PDOT,    KC_0,       KC_0,       KC_LCTL,    KC_LCTL,    KC_LALT,    KC_LGUI,    LOWER,      KC_SPC,     KC_SPC,     RAISE,      KC_LEFT,    KC_DOWN,    KC_UP,      KC_RGHT
+    ),
+
+    [_LOWER] = LAYOUT_ortho_5x16(
+    _______,    _______,    _______,    _______,    KC_F1  ,    KC_F2  ,    KC_F3  ,    KC_F4  ,    KC_F5  ,    KC_F6  ,    KC_F7  ,    KC_F8  ,    KC_F9  ,    KC_F10 ,    KC_F11 ,    KC_F12 ,
+    _______,    _______,    _______,    _______,    KC_BSPC,    KC_EQL ,    KC_7   ,    KC_8   ,    KC_9   ,    KC_SLSH,    KC_CIRC,    KC_LBRC,    KC_RBRC,    KC_AT  ,    KC_EXLM,    KC_BSLS,
+    _______,    _______,    _______,    _______,    KC_ENT ,    KC_0   ,    KC_4   ,    KC_5   ,    KC_6   ,    KC_MINS,    KC_UNDS,    KC_LPRN,    KC_RPRN,    KC_HASH,    KC_DQUO,    _______,
+    _______,    _______,    _______,    _______,    KC_DLR ,    KC_PAST,    KC_1   ,    KC_2   ,    KC_3   ,    KC_PPLS,    KC_PIPE,    KC_LCBR,    KC_RCBR,    KC_PERC,    KC_AMPR,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______
+    ),
+
+    [_RAISE] = LAYOUT_ortho_5x16(
+    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    KC_HOME,    KC_BSPC,    KC_DEL ,    KC_END ,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    KC_LEFT,    KC_DOWN,    KC_UP,      KC_RGHT,    KC_QUOT,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    KC_PGUP,    _______,    _______,    KC_PGDN,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______
+    ),
+
+    [_ADJUST] = LAYOUT_ortho_5x16(
+    _______,    _______,    _______,    _______,    RESET,      _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    DEBUG  ,
+    _______,    _______,    _______,    _______,    _______,    RGB_TOG,    RGB_RMOD,   RGB_MOD,    RGB_VAD,    RGB_VAI,    _______,    _______,    _______,    _______,    _______,    _______,
+    _______,    _______,    _______,    _______,    KC_CAPS,    _______,    RGB_HUD,    RGB_HUI,    RGB_SAD,    RGB_SAI,    _______,    _______,    _______,    _______,    _______,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______
+    )
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+    switch (keycode) {
+
+        case LOWER:
+            if (record->event.pressed) {
+                layer_on(_LOWER);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            } else {
+                layer_off(_LOWER);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            }
+        return false;
+
+        case RAISE:
+            if (record->event.pressed) {
+                layer_on(_RAISE);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            } else {
+                layer_off(_RAISE);
+                update_tri_layer(_LOWER, _RAISE, _ADJUST);
+            }
+        return false;
+
+    }
+    return true;
+}
+
+void encoder_update_user(uint8_t index, bool clockwise) {
+    /* With an if statement we can check which encoder was turned. */
+    if (index == 0) { /* First encoder */
+        /* And with another if statement we can check the direction. */
+        if (clockwise) {
+            if (IS_LAYER_ON(_LOWER)){
+                tap_code(KC_RIGHT);
+            } else {
+                tap_code(KC_VOLU);
+            }
+        } else {
+            if (IS_LAYER_ON(_LOWER)){
+                tap_code(KC_LEFT);
+            } else {
+                tap_code(KC_VOLD);
+            }
+        }
+
+    } else if (index == 1) { /* Second encoder. Only supported by Elite-C */
+        if (clockwise) {
+            tap_code(KC_RIGHT);
+        } else {
+            tap_code(KC_LEFT);
+        }
+    }
+}

+ 1 - 0
keyboards/nckiibs/waaffle/keymaps/default/readme.md

@@ -0,0 +1 @@
+# The default keymap for waaffle

+ 78 - 0
keyboards/nckiibs/waaffle/keymaps/via/keymap.c

@@ -0,0 +1,78 @@
+/* Copyright 2020 noclew
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+    _BASE,
+    _LOWER,
+    _RAISE,
+    _ADJUST
+};
+
+// Defines the keycodes used by our macros in process_record_user
+enum custom_keycodes {
+    BASE,
+    LOWER,
+    RAISE,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    /* BASE
+     * ------------------------------------------------------------------------------------------------------------------
+     * |  *   |   /  |   =  |  Del ||   `  |   1  |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  | BSpc |
+     * ------------------------------------------------------------------------------------------------------------------
+     * |  +   |   7  |   8  |   9  || Tab  |   Q  |   W  |   E  |   R  |   T  |   Y  |   U  |   I  |   O  |   P  |   \  |
+     *-------------------------------------------------------------------------------------------------------------------
+     * |  +   |   4  |   5  |   6  || Esc  |   A  |   S  |   D  |   F  |   G  |   H  |   J  |   K  |   L  |   ;  | Enter|
+     *------------------------------------------------------------------------------------------------------------------
+     * | Enter|   1  |   2  |   3  || Shift|   Z  |   X  |   C  |   V  |   B  |   N  |   M  |   ,  |   .  |   /  | Shift|
+     *-------------------------------------------------------------------------------------------------------------------
+     * | Enter|   .  |   0  |   0  || Ctrl | Ctrl | Alt  | GUI  |Lower |    Space    |Raise | Left | Down |  Up  | Right|
+     *-------------------------------------------------------------------------------------------------------------------
+     */
+    [_BASE] = LAYOUT_ortho_5x16(
+    KC_PAST,    KC_PSLS,    KC_EQL,     KC_DEL,     KC_GRV,     KC_1,       KC_2,       KC_3,       KC_4,       KC_5,       KC_6,       KC_7,       KC_8,       KC_9,       KC_0,       KC_BSPC,
+    KC_PPLS,    KC_7,       KC_8,       KC_9,       KC_TAB,     KC_Q,       KC_W,       KC_E,       KC_R,       KC_T,       KC_Y,       KC_U,       KC_I,       KC_O,       KC_P,       KC_BSLS,
+    KC_PPLS,    KC_4,       KC_5,       KC_6,       KC_ESC,     KC_A,       KC_S,       KC_D,       KC_F,       KC_G,       KC_H,       KC_J,       KC_K,       KC_L,       KC_SCLN,    KC_ENT,
+    KC_ENT,     KC_1,       KC_2,       KC_3,       KC_LSFT,    KC_Z,       KC_X,       KC_C,       KC_V,       KC_B,       KC_N,       KC_M,       KC_COMM,    KC_DOT,     KC_SLSH,    RSFT_T(KC_QUOT),
+    KC_ENT,     KC_PDOT,    KC_0,       KC_0,       KC_LCTL,    KC_LCTL,    KC_LALT,    KC_LGUI,    LOWER,      KC_SPC,     KC_SPC,     RAISE,      KC_LEFT,    KC_DOWN,    KC_UP,      KC_RGHT
+    ),
+
+    [_LOWER] = LAYOUT_ortho_5x16(
+    _______,    _______,    _______,    _______,    KC_F1  ,    KC_F2  ,    KC_F3  ,    KC_F4  ,    KC_F5  ,    KC_F6  ,    KC_F7  ,    KC_F8  ,    KC_F9  ,    KC_F10 ,    KC_F11 ,    KC_F12 ,
+    _______,    _______,    _______,    _______,    KC_BSPC,    KC_EQL ,    KC_7   ,    KC_8   ,    KC_9   ,    KC_SLSH,    KC_CIRC,    KC_LBRC,    KC_RBRC,    KC_AT  ,    KC_EXLM,    KC_BSLS,
+    _______,    _______,    _______,    _______,    KC_ENT ,    KC_0   ,    KC_4   ,    KC_5   ,    KC_6   ,    KC_MINS,    KC_UNDS,    KC_LPRN,    KC_RPRN,    KC_HASH,    KC_DQUO,    _______,
+    _______,    _______,    _______,    _______,    KC_DLR ,    KC_PAST,    KC_1   ,    KC_2   ,    KC_3   ,    KC_PPLS,    KC_PIPE,    KC_LCBR,    KC_RCBR,    KC_PERC,    KC_AMPR,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______
+    ),
+
+    [_RAISE] = LAYOUT_ortho_5x16(
+    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    KC_HOME,    KC_BSPC,    KC_DEL ,    KC_END ,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    KC_LEFT,    KC_DOWN,    KC_UP,      KC_RGHT,    KC_QUOT,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    KC_PGUP,    _______,    _______,    KC_PGDN,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______
+    ),
+
+    [_ADJUST] = LAYOUT_ortho_5x16(
+    _______,    _______,    _______,    _______,    RESET,      _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    DEBUG  ,
+    _______,    _______,    _______,    _______,    _______,    RGB_TOG,    RGB_RMOD,   RGB_MOD,    RGB_VAD,    RGB_VAI,    _______,    _______,    _______,    _______,    _______,    _______,
+    _______,    _______,    _______,    _______,    KC_CAPS,    _______,    RGB_HUD,    RGB_HUI,    RGB_SAD,    RGB_SAI,    _______,    _______,    _______,    _______,    _______,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,
+    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______
+    )
+};

+ 1 - 0
keyboards/nckiibs/waaffle/keymaps/via/rules.mk

@@ -0,0 +1 @@
+VIA_ENABLE = yes

+ 22 - 0
keyboards/nckiibs/waaffle/readme.md

@@ -0,0 +1,22 @@
+# Waaffle
+
+![waaffle](https://i.imgur.com/MMIuK9tl.jpg)
+![waaffle](https://imgur.com/6IMH4kul.jpg)
+
+Waaffle is an ortholinear keyboard that supports 60 key and 80 key layouts. The base PCB has a 60 key ortholinear layout, and it can be expanded to an 80 key ortholinear keyboard simply by adding an extension PCB. Waaffle features RGB underglow and on-board pinouts including a power switch and battery connection for a Bluetooth setup. Designed by dELIKEEb
+
+* Keyboard Maintainer: [noclew](https://github.com/noclew)
+* Hardware Supported: Waaffle PCB
+* Hardware Availability: Not commercially available. GB on Reddit and Geekhack time to times. 
+
+Make example for this keyboard (after setting up your build environment):
+
+    make nckiibs/waaffle/rev3/pro_micro:default  # for Pro Micro builds
+    make nckiibs/waaffle/rev3/elite_c:default    # for Elite-C builds
+
+Flashing example for this keyboard:
+
+    make nckiibs/waaffle/rev3/pro_micro:default:flash  # for Pro Micro builds
+    make nckiibs/waaffle/rev3/elite_c:default:flash    # for Elite-C builds
+
+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).

+ 137 - 0
keyboards/nckiibs/waaffle/rev3/config.h

@@ -0,0 +1,137 @@
+/*
+Copyright 2020 noclew
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+/* USB Device descriptor parameter */
+#define DEVICE_VER      0x0003
+#define PRODUCT         Waaffle_rev3
+
+/* key matrix size */
+#define MATRIX_ROWS 8
+#define MATRIX_COLS 10
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { F4, B6, B2, B3, B1, F5, F6, F7 }
+#define MATRIX_COL_PINS { D3, D2, B5, B4, E6, D7, C6, D4, D0, D1 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+//#define BACKLIGHT_PIN B7
+//#define BACKLIGHT_LEVELS 3
+//#define BACKLIGHT_BREATHING
+
+/*rotary encoder setting*/
+#define ENCODERS_PAD_A { B7, F1 }
+#define ENCODERS_PAD_B { D5, F0 }
+
+#define RGB_DI_PIN C7
+#ifdef RGB_DI_PIN
+#    define RGBLED_NUM 10
+#    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
+
+/* 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 6
+#define BOOTMAGIC_LITE_COLUMN 0

+ 6 - 0
keyboards/nckiibs/waaffle/rev3/elite_c/rules.mk

@@ -0,0 +1,6 @@
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# supported on Elite-C controllers
+RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
+ENCODER_ENABLE = yes        # Enable Rotary Encoder

+ 19 - 0
keyboards/nckiibs/waaffle/rev3/info.json

@@ -0,0 +1,19 @@
+{
+    "keyboard_name": "waaffle",
+    "url": "",
+    "maintainer": "noclew",
+    "width": 16.25,
+    "height": 5,
+    "layouts": {
+        "LAYOUT_ortho_5x16": {
+            "layout":
+            [
+                {"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4.25, "y":0}, {"x":5.25, "y":0}, {"x":6.25, "y":0}, {"x":7.25, "y":0}, {"x":8.25, "y":0}, {"x":9.25, "y":0}, {"x":10.25, "y":0}, {"x":11.25, "y":0}, {"x":12.25, "y":0}, {"x":13.25, "y":0}, {"x":14.25, "y":0}, {"x":15.25, "y":0},
+                {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4.25, "y":1}, {"x":5.25, "y":1}, {"x":6.25, "y":1}, {"x":7.25, "y":1}, {"x":8.25, "y":1}, {"x":9.25, "y":1}, {"x":10.25, "y":1}, {"x":11.25, "y":1}, {"x":12.25, "y":1}, {"x":13.25, "y":1}, {"x":14.25, "y":1}, {"x":15.25, "y":1},
+                {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4.25, "y":2}, {"x":5.25, "y":2}, {"x":6.25, "y":2}, {"x":7.25, "y":2}, {"x":8.25, "y":2}, {"x":9.25, "y":2}, {"x":10.25, "y":2}, {"x":11.25, "y":2}, {"x":12.25, "y":2}, {"x":13.25, "y":2}, {"x":14.25, "y":2}, {"x":15.25, "y":2},
+                {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3}, {"x":13.25, "y":3}, {"x":14.25, "y":3}, {"x":15.25, "y":3},
+                {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4.25, "y":4}, {"x":5.25, "y":4}, {"x":6.25, "y":4}, {"x":7.25, "y":4}, {"x":8.25, "y":4}, {"x":9.25, "y":4}, {"x":10.25, "y":4}, {"x":11.25, "y":4}, {"x":12.25, "y":4}, {"x":13.25, "y":4}, {"x":14.25, "y":4}, {"x":15.25, "y":4}
+            ]
+        }
+    }
+}

+ 6 - 0
keyboards/nckiibs/waaffle/rev3/pro_micro/rules.mk

@@ -0,0 +1,6 @@
+# Bootloader selection
+BOOTLOADER = caterina
+
+# not supported on Pro Micro controllers
+RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
+ENCODER_ENABLE = no         # Enable Rotary Encoder

+ 17 - 0
keyboards/nckiibs/waaffle/rev3/rev3.c

@@ -0,0 +1,17 @@
+/* Copyright 2020 noclew
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "rev3.h"

+ 44 - 0
keyboards/nckiibs/waaffle/rev3/rev3.h

@@ -0,0 +1,44 @@
+/* Copyright 2020 noclew
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+/* 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_ortho_5x16( \
+    k76, k66, k56, k71, k61, k51, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, \
+    k77, k67, k57, k72, k62, k52, k11, k12, k13, k14, k15, k16, k17, k18, k19, k20, \
+    k78, k68, k58, k73, k63, k53, k21, k22, k23, k24, k25, k26, k27, k28, k29, k30, \
+    k79, k69, k59, k74, k64, k54, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, \
+    k80, k70, k60, k75, k65, k55, k41, k42, k43, k44, k45, k46, k47, k48, k49, k50 \
+) { \
+    { k01, k02, k03, k04, k05, k06, k07, k08, k09, k10 }, \
+    { k11, k12, k13, k14, k15, k16, k17, k18, k19, k20 }, \
+    { k21, k22, k23, k24, k25, k26, k27, k28, k29, k30 }, \
+    { k31, k32, k33, k34, k35, k36, k37, k38, k39, k40 }, \
+    { k41, k42, k43, k44, k45, k46, k47, k48, k49, k50 }, \
+    { k51, k52, k53, k54, k55, k56, k57, k58, k59, k60 }, \
+    { k61, k62, k63, k64, k65, k66, k67, k68, k69, k70 }, \
+    { k71, k72, k73, k74, k75, k76, k77, k78, k79, k80 } \
+}

+ 24 - 0
keyboards/nckiibs/waaffle/rev3/rules.mk

@@ -0,0 +1,24 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = caterina
+
+# Build Options
+#   change yes to no to disable
+#
+BOOTMAGIC_ENABLE = lite     # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes       # Mouse keys
+EXTRAKEY_ENABLE = yes       # Audio control and System control
+CONSOLE_ENABLE = no         # Console for debug
+COMMAND_ENABLE = no         # Commands for debug and configuration
+# 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
+
+DEFAULT_FOLDER = nckiibs/waaffle/rev3/pro_micro