From c7449b384013fbd9efb8a25ce1d51b73f988a3fb Mon Sep 17 00:00:00 2001
From: Garret G <45295190+TheRoyalSweatshirt@users.noreply.github.com>
Date: Mon, 27 Apr 2020 16:35:03 -0500
Subject: [PATCH] [Keyboard] Add royal directory and add 2 keyboard releases
 (#8877)

* add royal project folder and 2 released keyboards

* fix iso keymap clarification

* Apply suggestions from code review

* Update keyboards/the_royal/schwann/schwann.h

* Update keyboards/the_royal/liminal/liminal.h

* Update keyboards/the_royal/schwann/keymaps/default/keymap.c

* Apply suggestions from code review

new

* Update keymap.c

* Update keymap.c

* Apply suggestions from code review

* Update rules.mk

* add rules.mk to schwann default

* Apply suggestions from code review

* add rules.mk to shwann default
---
 keyboards/the_royal/liminal/config.h          |  38 +++++
 keyboards/the_royal/liminal/info.json         |  68 ++++++++
 .../liminal/keymaps/default/config.h          |   6 +
 .../liminal/keymaps/default/keymap.c          | 161 ++++++++++++++++++
 .../liminal/keymaps/default/rules.mk          |   1 +
 .../liminal/keymaps/default_iso/config.h      |   6 +
 .../liminal/keymaps/default_iso/keymap.c      | 158 +++++++++++++++++
 .../liminal/keymaps/default_iso/rules.mk      |   1 +
 keyboards/the_royal/liminal/liminal.c         |   1 +
 keyboards/the_royal/liminal/liminal.h         |  19 +++
 keyboards/the_royal/liminal/readme.md         |  14 ++
 keyboards/the_royal/liminal/rules.mk          |  32 ++++
 keyboards/the_royal/schwann/config.h          |  39 +++++
 keyboards/the_royal/schwann/info.json         | 156 +++++++++++++++++
 .../schwann/keymaps/default/keymap.c          | 136 +++++++++++++++
 .../schwann/keymaps/default/rules.mk          |   1 +
 keyboards/the_royal/schwann/readme.md         |  15 ++
 keyboards/the_royal/schwann/rules.mk          |  32 ++++
 keyboards/the_royal/schwann/schwann.c         |   1 +
 keyboards/the_royal/schwann/schwann.h         |  44 +++++
 20 files changed, 929 insertions(+)
 create mode 100644 keyboards/the_royal/liminal/config.h
 create mode 100644 keyboards/the_royal/liminal/info.json
 create mode 100644 keyboards/the_royal/liminal/keymaps/default/config.h
 create mode 100644 keyboards/the_royal/liminal/keymaps/default/keymap.c
 create mode 100644 keyboards/the_royal/liminal/keymaps/default/rules.mk
 create mode 100644 keyboards/the_royal/liminal/keymaps/default_iso/config.h
 create mode 100644 keyboards/the_royal/liminal/keymaps/default_iso/keymap.c
 create mode 100644 keyboards/the_royal/liminal/keymaps/default_iso/rules.mk
 create mode 100644 keyboards/the_royal/liminal/liminal.c
 create mode 100644 keyboards/the_royal/liminal/liminal.h
 create mode 100644 keyboards/the_royal/liminal/readme.md
 create mode 100644 keyboards/the_royal/liminal/rules.mk
 create mode 100644 keyboards/the_royal/schwann/config.h
 create mode 100644 keyboards/the_royal/schwann/info.json
 create mode 100644 keyboards/the_royal/schwann/keymaps/default/keymap.c
 create mode 100644 keyboards/the_royal/schwann/keymaps/default/rules.mk
 create mode 100644 keyboards/the_royal/schwann/readme.md
 create mode 100644 keyboards/the_royal/schwann/rules.mk
 create mode 100644 keyboards/the_royal/schwann/schwann.c
 create mode 100644 keyboards/the_royal/schwann/schwann.h

diff --git a/keyboards/the_royal/liminal/config.h b/keyboards/the_royal/liminal/config.h
new file mode 100644
index 0000000000..09b8d501dc
--- /dev/null
+++ b/keyboards/the_royal/liminal/config.h
@@ -0,0 +1,38 @@
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID       0x4B4B
+#define PRODUCT_ID      0x0002
+#define DEVICE_VER      0x0001
+#define MANUFACTURER    TheRoyalSweatshirt
+#define PRODUCT         Liminal
+#define DESCRIPTION     "A 50% keyboard with focused around spectacular keycap compatibility."
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 14
+
+#define MATRIX_ROW_PINS { C6, B6, B7, C7 }
+#define MATRIX_COL_PINS { D6, C4, D3, D2, D1, D0, C2, B0, B1, B2, B3, B4, D5, C5 }
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* ws2812 RGB LED */
+#define RGB_DI_PIN D4
+#define RGBLED_NUM 1   // Number of LEDs
+
+#define RGBLIGHT_HUE_STEP 6
+#define RGBLIGHT_SAT_STEP 4
+#define RGBLIGHT_VAL_STEP 4
diff --git a/keyboards/the_royal/liminal/info.json b/keyboards/the_royal/liminal/info.json
new file mode 100644
index 0000000000..501158e884
--- /dev/null
+++ b/keyboards/the_royal/liminal/info.json
@@ -0,0 +1,68 @@
+{
+  "keyboard_name": "liminal",
+  "url": "",
+  "maintainer": "TheRoyalSweatshirt",
+  "width": 15,
+  "height": 4,
+  "layouts": {
+    "LAYOUT_base_kit_all": {
+      "key_count": 52,
+      "layout": [
+        {"label":"k01", "x":0, "y":0, "w":1},
+        {"label":"k02", "x":1, "y":0, "w":1.5},
+        {"label":"k03", "x":2.5, "y":0, "w":1},
+        {"label":"k04", "x":3.5, "y":0, "w":1},
+        {"label":"k05", "x":4.5, "y":0, "w":1},
+        {"label":"k06", "x":5.5, "y":0, "w":1},
+        {"label":"k07", "x":6.5, "y":0, "w":1},
+        {"label":"k08", "x":7.5, "y":0, "w":1},
+        {"label":"k09", "x":8.5, "y":0, "w":1},
+        {"label":"k010", "x":9.5, "y":0, "w":1},
+        {"label":"k011", "x":10.5, "y":0, "w":1},
+        {"label":"k012", "x":11.5, "y":0, "w":1},
+        {"label":"k013", "x":12.5, "y":0, "w":1},
+        {"label":"k014", "x":13.5, "y":0, "w":1.5},
+        {"label":"k11", "x":0, "y":1, "w":1},
+        {"label":"k12", "x":1, "y":1, "w":1.75},
+        {"label":"k13", "x":2.75, "y":1, "w":1},
+        {"label":"k14", "x":3.75, "y":1, "w":1},
+        {"label":"k15", "x":4.75, "y":1, "w":1},
+        {"label":"k16", "x":5.75, "y":1, "w":1},
+        {"label":"k17", "x":6.75, "y":1, "w":1},
+        {"label":"k18", "x":7.75, "y":1, "w":1},
+        {"label":"k19", "x":8.75, "y":1, "w":1},
+        {"label":"k110", "x":9.75, "y":1, "w":1},
+        {"label":"k111", "x":10.75, "y":1, "w":1},
+        {"label":"k112", "x":11.75, "y":1, "w":1},
+        {"label":"k113", "x":12.75, "y":1, "w":1},
+        {"label":"k114", "x":13.75, "y":1, "w":1.25},
+        {"label":"k21", "x":0, "y":2, "w":1},
+        {"label":"k22", "x":1, "y":2, "w":1.25},
+        {"label":"k23", "x":2.25, "y":2, "w":1},
+        {"label":"k24", "x":3.25, "y":2, "w":1},
+        {"label":"k25", "x":4.25, "y":2, "w":1},
+        {"label":"k26", "x":5.25, "y":2, "w":1},
+        {"label":"k27", "x":6.25, "y":2, "w":1},
+        {"label":"k28", "x":7.25, "y":2, "w":1},
+        {"label":"k29", "x":8.25, "y":2, "w":1},
+        {"label":"k210", "x":9.25, "y":2, "w":1},
+        {"label":"k211", "x":10.25, "y":2, "w":1},
+        {"label":"k212", "x":11.25, "y":2, "w":1},
+        {"label":"k213", "x":12.25, "y":2, "w":1},
+        {"label":"k214", "x":13.25, "y":2, "w":1.75},
+        {"label":"k31", "x":0, "y":3, "w":1},
+        {"label":"k32", "x":1, "y":3, "w":1.5},
+        {"label":"k33", "x":2.5, "y":3, "w":1.25},
+        {"label":"k34", "x":3.75, "y":3, "w":1.5},
+        {"label":"k35", "x":5.25, "y":3, "w":2},
+        {"label":"k38", "x":7.25, "y":3, "w":2.25},
+        {"label":"k310", "x":9.5, "y":3, "w":1.5},
+        {"label":"k311", "x":11, "y":3, "w":1.25},
+        {"label":"k313", "x":12.25, "y":3, "w":1.25},
+        {"label":"k314", "x":13.5, "y":3, "w":1.5}
+      ]
+    }
+  }
+}
+
+
diff --git a/keyboards/the_royal/liminal/keymaps/default/config.h b/keyboards/the_royal/liminal/keymaps/default/config.h
new file mode 100644
index 0000000000..1cfc46c816
--- /dev/null
+++ b/keyboards/the_royal/liminal/keymaps/default/config.h
@@ -0,0 +1,6 @@
+#pragma once
+
+
+#define PERMISSIVE_HOLD
+
+#define TAPPING_TERM_PER_KEY
diff --git a/keyboards/the_royal/liminal/keymaps/default/keymap.c b/keyboards/the_royal/liminal/keymaps/default/keymap.c
new file mode 100644
index 0000000000..d9d9497453
--- /dev/null
+++ b/keyboards/the_royal/liminal/keymaps/default/keymap.c
@@ -0,0 +1,161 @@
+#include QMK_KEYBOARD_H
+
+enum layer_names {
+  _QWERTY,
+  _LOWER,
+  _RAISE,
+  _OTHER
+};
+
+
+//Tap Dance Declarations
+enum {
+  TD_RST,
+  TD_DBQT
+};
+
+void dance_rst_reset (qk_tap_dance_state_t *state, void *user_data) {
+  if (state->count >= 2) {
+    reset_keyboard();
+    reset_tap_dance(state);
+  }
+}
+
+//All tap dance functions would go here. Only showing this one.
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [TD_RST] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, NULL, dance_rst_reset),
+ [TD_DBQT] = ACTION_TAP_DANCE_DOUBLE (KC_QUOTE, KC_DQT)
+};
+
+enum custom_keycodes {
+  M_PAR = SAFE_RANGE,
+  M_BKT
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+  switch (keycode) {
+    case M_PAR:
+      if (record->event.pressed) {
+        SEND_STRING("()" SS_TAP(X_LEFT));
+      }
+      break;
+    case M_BKT:
+      if (record->event.pressed) {
+        SEND_STRING("[]" SS_TAP(X_LEFT));
+      }
+      break;
+  }
+  return true;
+
+};
+
+#define OTHER MO(_OTHER)
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  /* Default layer
+   * ┌─────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬──────┐
+   * │ Esc │Tab │ Q  │ W  │ E  │ R  │ T  │ Y  │ U  │ I  │ O  │ P  │ -  │ BsPc │
+   * ├─────┼────┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴──────┤
+   * │PgUp │Caps │ A  │ S  │ D  │ F  │ G  │ H  │ J  │ K  │ L  │ ;  │  Enter   │
+   * ├─────┼─────┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬────────┤
+   * │PgDn │LShift │ Z  │ X  │ C  │ V  │ B  │ N  │ M  │ ,  │ .  │ /  │ Other  │
+   * ├─────┼────┬──┴─┬──┴─┬──┴────┴────┴────┴────┴────┴───┬┴────┴┬───┴─┬──────┤
+   * │ END │Del │Gui │Alt │      Right KC = 7u/2.25u      │Raise │Menu │ Lower│
+   * └─────┴────┴────┴────┴───────────────────────────────┴──────┴─────┴──────┘
+   */
+  [_QWERTY] = LAYOUT_base_kit_all(
+    KC_ESC,  KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_MINUS, KC_BSPC,
+    KC_PGUP, KC_LCTL, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOTE, KC_ENT,
+    KC_PGDN, KC_LSFT, KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,  OTHER,
+    KC_END,  KC_DEL,  KC_LGUI, KC_LALT,              LOWER,           KC_SPACE,               KC_CAPS, RAISE,   KC_RGUI,  LOWER
+  ),
+
+  /* LOWER layer
+   * ┌─────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬──────┐
+   * │  `  │    │ 1  │ 2  │ 3  │ 4  │ 5  │ 6  │ 7  │ 8  │ 9  │ 0  │ _  │      │
+   * ├─────┼────┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴──────┤
+   * │  ~  │     │ !  │ @  │ #  │ $  │ %  │ ^  │ &  │ *  │(..)│[..]│ ' and "  │
+   * ├─────┼─────┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬────────┤
+   * │     │       │    │    │    │    │    │    │    │    │    │    │        │
+   * ├─────┼────┬──┴─┬──┴─┬──┴────┴────┴────┴────┴────┴───┬┴────┴┬───┴─┬──────┤
+   * │     │    │    │    │                               │      │     │      │
+   * └─────┴────┴────┴────┴───────────────────────────────┴──────┴─────┴──────┘
+   */
+  [_LOWER] = LAYOUT_base_kit_all(
+    KC_GRAVE,  _______,  KC_1,      KC_2,      KC_3,      KC_4,      KC_5,      KC_6,      KC_7,      KC_8,      KC_9,     KC_0,       KC_UNDS,    _______,
+    KC_TILD,   _______,  KC_EXLM,   KC_AT,     KC_HASH,   KC_DLR,    KC_PERC,   KC_CIRC,   KC_AMPR,   KC_ASTR,   M_PAR,    M_BKT,      _______,    TD(TD_DBQT),
+    _______,   _______,  _______,   _______,   _______,   _______,   _______,   _______,   _______,   _______,   _______,  _______,    _______,    _______,
+    _______,   _______,  _______,   _______,                    _______,               _______,                  _______,  _______,    _______,    _______
+  ),
+
+  /* RAISE layer
+   * ┌─────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬──────┐
+   * │  \  │    │    │    │    │    │    │    │    │    │    │    │ =  │      │
+   * ├─────┼────┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴──────┤
+   * │  |  │CAPS │    │    │    │    │    │    │    │    │    │    │    +     │
+   * ├─────┼─────┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬────────┤
+   * │     │       │    │    │    │    │    │    │    │    │ [  │ ]  │        │
+   * ├─────┼────┬──┴─┬──┴─┬──┴────┴────┴────┴────┴────┴───┬┴────┴┬───┴─┬──────┤
+   * │     │    │    │    │                               │      │     │      │
+   * └─────┴────┴────┴────┴───────────────────────────────┴──────┴─────┴──────┘
+   */
+  [_RAISE] = LAYOUT_base_kit_all(
+    KC_BSLS,  _______,  _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,   KC_EQUAL,   _______,
+    KC_PIPE, KC_CAPS,   _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,   _______,    KC_PLUS,
+    _______,  _______,  _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    KC_LBRC,   KC_RBRC,    _______,
+    _______,  _______,  _______,    _______,                      _______,                _______,                      _______,    _______,   _______,    _______
+  ),
+
+  /* OTHER layer
+   * ┌─────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬──────┐
+   * │HOME │    │    │    │    │    │    │    │    │    │    │ UP │    │      │
+   * ├─────┼────┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴──────┤
+   * │END  │     │    │    │    │    │    │    │    │    │LEFT│RGHT│          │
+   * ├─────┼─────┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬────────┤
+   * │     │       │    │    │    │    │    │    │    │    │DOWN│    │        │
+   * ├─────┼────┬──┴─┬──┴─┬──┴────┴────┴────┴────┴────┴───┬┴────┴┬───┴─┬──────┤
+   * │RESET│    │    │    │                               │      │     │      │
+   * └─────┴────┴────┴────┴───────────────────────────────┴──────┴─────┴──────┘
+   */
+  [_OTHER] = LAYOUT_base_kit_all(
+    _______,    _______,  _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    KC_UP,     _______,   _______,
+    _______,    _______,  _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    KC_LEFT,    KC_RIGHT,  _______,   _______,
+    _______,    _______,  _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,   KC_DOWN,    _______,   _______,
+    TD(TD_RST), _______,  _______,    _______,                      _______,               _______,                       _______,   _______,    _______,   _______
+  )
+};
+
+uint16_t get_tapping_term(uint16_t keycode) {
+  switch (keycode) {
+    case LT(_LOWER, KC_SPACE):
+      return 160;
+    case TD(TD_DBQT):
+      return 230;
+    default:
+#ifndef TAPPING_TERM
+      return 200;
+#else 
+      return TAPPING_TERM;
+#endif
+  }
+}
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+  switch (get_highest_layer(state)) {
+    case _LOWER:
+      rgblight_setrgb (RGB_CORAL);
+      break;
+    case _RAISE:
+      rgblight_setrgb (RGB_RED);
+      break;
+    case _OTHER:
+      rgblight_setrgb (RGB_BLUE);
+      break;
+    default: //  for any other layers, or the default layer
+      rgblight_setrgb (RGB_GREEN);
+      break;
+  }
+  return state;
+}
diff --git a/keyboards/the_royal/liminal/keymaps/default/rules.mk b/keyboards/the_royal/liminal/keymaps/default/rules.mk
new file mode 100644
index 0000000000..e5ddcae8d9
--- /dev/null
+++ b/keyboards/the_royal/liminal/keymaps/default/rules.mk
@@ -0,0 +1 @@
+TAP_DANCE_ENABLE = yes
diff --git a/keyboards/the_royal/liminal/keymaps/default_iso/config.h b/keyboards/the_royal/liminal/keymaps/default_iso/config.h
new file mode 100644
index 0000000000..1cfc46c816
--- /dev/null
+++ b/keyboards/the_royal/liminal/keymaps/default_iso/config.h
@@ -0,0 +1,6 @@
+#pragma once
+
+
+#define PERMISSIVE_HOLD
+
+#define TAPPING_TERM_PER_KEY
diff --git a/keyboards/the_royal/liminal/keymaps/default_iso/keymap.c b/keyboards/the_royal/liminal/keymaps/default_iso/keymap.c
new file mode 100644
index 0000000000..3d8debee3d
--- /dev/null
+++ b/keyboards/the_royal/liminal/keymaps/default_iso/keymap.c
@@ -0,0 +1,158 @@
+#include QMK_KEYBOARD_H
+
+enum layer_names {
+  _QWERTY,
+  _LOWER,
+  _RAISE,
+  _OTHER
+};
+
+
+//Tap Dance Declarations
+enum {
+  TD_RST,
+  TD_DBQT
+};
+
+void dance_rst_reset (qk_tap_dance_state_t *state, void *user_data) {
+  if (state->count >= 2) {
+    reset_keyboard();
+    reset_tap_dance(state);
+  }
+}
+
+//All tap dance functions would go here. Only showing this one.
+qk_tap_dance_action_t tap_dance_actions[] = {
+  [TD_RST] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, NULL, dance_rst_reset),
+  [TD_DBQT] = ACTION_TAP_DANCE_DOUBLE (KC_QUOTE, KC_DQT)
+};
+
+enum custom_keycodes {
+  M_PAR = SAFE_RANGE,
+  M_BKT
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+  switch (keycode) {
+    case M_PAR:
+      if (record->event.pressed) {
+        SEND_STRING("()" SS_TAP(X_LEFT));
+      }
+      break;
+    case M_BKT:
+      if (record->event.pressed) {
+        SEND_STRING("[]" SS_TAP(X_LEFT));
+      }
+      break;
+  }
+  return true;
+
+};
+
+#define OTHER MO(_OTHER)
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  /* Default layer
+   * ┌─────┬────┬─────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬──────┐
+   * │ Esc │Tab │  Q  │ W  │ E  │ R  │ T  │ Y  │ U  │ I  │ O  │ P  │ -  │ BkSp │
+   * ├─────┼────┴─┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┐     │
+   * │PgUp │LCtrl │ A  │ S  │ D  │ F  │ G  │ H  │ J  │ K  │ L  │ ;  │ '  │     │
+   * ├─────┼────┬─┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─────┤
+   * │PgDn │Shft│ \ │ Z  │ X  │ C  │ V  │ B  │ N  │ M  │ ,  │ .  │ /  │  Other │
+   * ├─────┼────┼───┴┬───┴─┬──┴────┴────┴────┴────┴────┴───┬┴────┴┬───┴─┬──────┤
+   * │ END │Del │Gui │ Alt │      Right KC = 7u/2.25u      │Raise │Menu │ Lower│
+   * └─────┴────┴────┴─────┴───────────────────────────────┴──────┴─────┴──────┘
+   */
+  [_QWERTY] = LAYOUT_base_kit_all(
+    KC_ESC,  KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_MINUS, KC_BSPC,
+    KC_PGUP, KC_LCTL, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOTE, KC_ENT,
+    KC_PGDN, KC_LSFT, KC_NUBS, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,  OTHER,
+    KC_END,  KC_DEL,  KC_LGUI, KC_LALT,              LOWER,            KC_SPACE,              KC_CAPS, RAISE,   KC_MENU,  LOWER
+  ),
+
+  /* LOWER layer
+   * ┌─────┬────┬─────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬──────┐
+   * │  `  │    │ 1   │ 2  │ 3  │ 4  │ 5  │ 6  │ 7  │ 8  │ 9  │ 0  │ _  │ ENTR │
+   * ├─────┼────┴─┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┐     │
+   * │  ~  │      │ !  │ "  │ £  │ $  │ %  │ ^  │ &  │ *  │(..)│ :  │ @  │     │
+   * ├─────┼────┬─┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─────┤
+   * │     │    │ \ │ Z  │ X  │ C  │ V  │ B  │ N  │ M  │ ,  │ .  │    │        │
+   * ├─────┼────┼───┴┬───┴─┬──┴────┴────┴────┴────┴────┴───┬┴────┴┬───┴─┬──────┤
+   * │     │    │    │     │                               │      │     │      │
+   * └─────┴────┴────┴─────┴───────────────────────────────┴──────┴─────┴──────┘
+   */
+  [_LOWER] = LAYOUT_base_kit_all(
+    KC_GRAVE,  _______,   KC_1,      KC_2,           KC_3,         KC_4,          KC_5,        KC_6,        KC_7,       KC_8,       KC_9,      KC_0,        KC_UNDS,     KC_ENT,
+    KC_TILD,   _______,   KC_EXLM,   LSFT(KC_2),     LSFT(KC_3),   LSFT(KC_4),    KC_PERC,     KC_CIRC,     KC_AMPR,    KC_ASTR,    M_PAR,     KC_COLON,    KC_AT,       _______,
+    _______,   _______,   _______,   _______,        _______,       _______,      _______,     _______,     _______,    _______,    _______,   _______,     _______,     _______,
+    _______,   _______,   _______,   _______,                              _______,                  _______,                       _______,   _______,     _______,     _______
+  ),
+
+  /* RAISE layer
+   * ┌─────┬────┬─────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬──────┐
+   * │     │    │     │    │    │    │    │    │    │    │    │    │ =  │  +   │
+   * ├─────┼────┴─┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┐     │
+   * │     │ CAPS │    │    │    │    │    │    │    │    │    │    │    │     │
+   * ├─────┼────┬─┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─────┤
+   * │     │    │   │    │    │    │    │    │    │    │    │ [  │ ]  │        │
+   * ├─────┼────┼───┴┬───┴─┬──┴────┴────┴────┴────┴────┴───┬┴────┴┬───┴─┬──────┤
+   * │     │    │    │     │                               │      │     │      │
+   * └─────┴────┴────┴─────┴───────────────────────────────┴──────┴─────┴──────┘
+   */
+  [_RAISE] = LAYOUT_base_kit_all(
+    _______,   _______,   _______,    _______,       _______,       _______,      _______,     _______,     _______,    _______,    _______,    _______,     KC_EQUAL,     KC_PLUS,
+    _______,   KC_CAPS,   _______,   _______,        _______,       _______,      _______,     _______,     _______,    _______,    _______,    _______,     _______,      _______,
+    _______,   _______,   _______,   _______,        _______,       _______,      _______,     _______,     _______,    _______,    _______,    KC_LBRC,     KC_RBRC,      _______,
+    _______,   _______,   _______,   _______,                              _______,                  _______,                       _______,    _______,     _______,      _______
+  ),
+
+  /* OTHER layer
+   * ┌─────┬────┬─────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬──────┐
+   * │HOME │    │     │    │    │    │    │    │    │    │    │    │ UP │      │
+   * ├─────┼────┴─┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┐     │
+   * │END  │      │    │    │    │    │    │    │    │    │    │LEFT│RGHT│     │
+   * ├─────┼────┬─┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─────┤
+   * │     │    │   │    │    │    │    │    │    │    │    │    │DOWN│        │
+   * ├─────┼────┼───┴┬───┴─┬──┴────┴────┴────┴────┴────┴───┬┴────┴┬───┴─┬──────┤
+   * │RESET│    │    │     │                               │      │     │      │
+   * └─────┴────┴────┴─────┴───────────────────────────────┴──────┴─────┴──────┘
+   */
+  [_OTHER] = LAYOUT_base_kit_all(
+    KC_HOME,      _______,   _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,       KC_UP,         _______,
+    KC_END,       _______,   _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,   _______,     KC_LEFT,       KC_RIGHT,      _______,
+    _______,      _______,   _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,    _______,       KC_DOWN,       _______,
+    TD(TD_RST),   _______,   _______,    _______,                      _______,                _______,                      _______,    _______,       _______,       _______
+  )
+
+};
+
+uint16_t get_tapping_term(uint16_t keycode) {
+  switch (keycode) {
+    case LT(_LOWER, KC_SPACE):
+      return 160;
+    case TD(TD_DBQT):
+      return 230;
+    default:
+      return 200;
+  }
+}
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+  switch (get_highest_layer(state)) {
+    case _LOWER:
+      rgblight_setrgb (RGB_PURPLE);
+      break;
+    case _RAISE:
+      rgblight_setrgb (RGB_CYAN);
+      break;
+    case _OTHER:
+      rgblight_setrgb (RGB_ORANGE);
+      break;
+    default: //  for any other layers, or the default layer
+      rgblight_setrgb (RGB_CORAL);
+      break;
+  }
+  return state;
+}
diff --git a/keyboards/the_royal/liminal/keymaps/default_iso/rules.mk b/keyboards/the_royal/liminal/keymaps/default_iso/rules.mk
new file mode 100644
index 0000000000..e5ddcae8d9
--- /dev/null
+++ b/keyboards/the_royal/liminal/keymaps/default_iso/rules.mk
@@ -0,0 +1 @@
+TAP_DANCE_ENABLE = yes
diff --git a/keyboards/the_royal/liminal/liminal.c b/keyboards/the_royal/liminal/liminal.c
new file mode 100644
index 0000000000..6e1e935d44
--- /dev/null
+++ b/keyboards/the_royal/liminal/liminal.c
@@ -0,0 +1 @@
+#include "liminal.h"
\ No newline at end of file
diff --git a/keyboards/the_royal/liminal/liminal.h b/keyboards/the_royal/liminal/liminal.h
new file mode 100644
index 0000000000..ba53b17011
--- /dev/null
+++ b/keyboards/the_royal/liminal/liminal.h
@@ -0,0 +1,19 @@
+#pragma once
+
+#include "quantum.h"
+
+#define XXX KC_NO
+
+#define LAYOUT_base_kit_all( \
+  k00,  k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, \
+  k10,  k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \
+  k20,  k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, \
+  k30,     k31,   k32,    k33,      k35, k37,    k39, k3A,   k3C,   k3D  \
+) \
+{ \
+  { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D }, \
+  { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D }, \
+  { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D }, \
+  { k30, k31, k32, k33, XXX, k35, XXX, k37, XXX, k39, k3A, XXX, k3C, k3D }  \
+}
+   
diff --git a/keyboards/the_royal/liminal/readme.md b/keyboards/the_royal/liminal/readme.md
new file mode 100644
index 0000000000..c272cabdc9
--- /dev/null
+++ b/keyboards/the_royal/liminal/readme.md
@@ -0,0 +1,14 @@
+# Liminal
+![liminal_ec](https://i.imgur.com/9Xe7uEal.jpg)
+
+A 50% keyboard with superb keycap compatibility.
+
+* Keyboard Maintainer: [TheRoyalSweatshirt](https://github.com/TheRoyalSweatshirt) a.k.a [The_Royal](https://reddit.com/u/The_Royal)
+* Hardware Supported: rev 0.2 Liminal PCB
+* Hardware Availability: Through GB, Proxy, or Direct Message
+
+Make example for this keyboard (after setting up your build environment):
+
+    make the_royal/liminal:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/the_royal/liminal/rules.mk b/keyboards/the_royal/liminal/rules.mk
new file mode 100644
index 0000000000..4d21028090
--- /dev/null
+++ b/keyboards/the_royal/liminal/rules.mk
@@ -0,0 +1,32 @@
+# MCU name
+MCU = atmega32u2
+
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# - change yes to no to disable
+
+BOOTMAGIC_ENABLE = lite     # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no        # Mouse keys
+EXTRAKEY_ENABLE = yes       # Audio control and System control
+CONSOLE_ENABLE = no         # Console for debug
+COMMAND_ENABLE = no         # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no            # USB Nkey Rollover
+BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
+MIDI_ENABLE = no            # MIDI support
+BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no           # Audio output on port C6
+FAUXCLICKY_ENABLE = no      # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no         # Enable support for HD44780 based LCDs
diff --git a/keyboards/the_royal/schwann/config.h b/keyboards/the_royal/schwann/config.h
new file mode 100644
index 0000000000..5945319426
--- /dev/null
+++ b/keyboards/the_royal/schwann/config.h
@@ -0,0 +1,39 @@
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID       0xFEED
+#define PRODUCT_ID      0x3521
+#define DEVICE_VER      0x0001
+#define MANUFACTURER    TheRoyalSweatshirt
+#define PRODUCT         The Schwann PCB
+#define DESCRIPTION     "A simple, HHKB-Styled, Ortholinear PCB Designed for use with the Neuron Keyboard by Worldspawn and Walletburner."
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 12
+
+#define MATRIX_ROW_PINS { F0, F1, F6, C7 }
+#define MATRIX_COL_PINS { F4, F5, D5, D3, D2, C6, B6, B5, B4, D7, D6, D1 }
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* ws2812 RGB LED */
+#define RGB_DI_PIN B3
+#define RGBLED_NUM 8    // Number of LEDs
+
+#define RGBLIGHT_ANIMATIONS
+#define RGBLIGHT_HUE_STEP 6
+#define RGBLIGHT_SAT_STEP 4
+#define RGBLIGHT_VAL_STEP 8
diff --git a/keyboards/the_royal/schwann/info.json b/keyboards/the_royal/schwann/info.json
new file mode 100644
index 0000000000..56db56e91d
--- /dev/null
+++ b/keyboards/the_royal/schwann/info.json
@@ -0,0 +1,156 @@
+{
+  "keyboard_name": "Schwann's PCB",
+  "url": "https://github.com/TheRoyalSweatshirt/The_Royal_Projects/tree/schwann/PCBs/Schwann_PCB",
+  "maintainer": "TheRoyalSweatshirt",
+  "width": 12,
+  "height": 4,
+  "layouts": {
+   "LAYOUT_mit": {
+    "key_count": 45,
+      "layout": [
+        {"label":"TAB", "x":0, "y":0},
+        {"label":"Q", "x":1, "y":0}, 
+        {"label":"W", "x":2, "y":0}, 
+        {"label":"E", "x":3, "y":0}, 
+        {"label":"R", "x":4, "y":0}, 
+        {"label":"T", "x":5, "y":0}, 
+        {"label":"Y", "x":6, "y":0}, 
+        {"label":"U", "x":7, "y":0}, 
+        {"label":"I", "x":8, "y":0}, 
+        {"label":"O", "x":9, "y":0}, 
+        {"label":"P", "x":10, "y":0},
+        {"label":"BSPC", "x":11, "y":0},
+        {"label":"LCtl", "x":0, "y":1},
+        {"label":"A", "x":1, "y":1},
+        {"label":"S", "x":2, "y":1},
+        {"label":"D", "x":3, "y":1},
+        {"label":"F", "x":4, "y":1},
+        {"label":"G", "x":5, "y":1},
+        {"label":"H", "x":6, "y":1},
+        {"label":"J", "x":7, "y":1},
+        {"label":"K", "x":8, "y":1},
+        {"label":"L", "x":9, "y":1},
+        {"label":"SCLN", "x":10, "y":1},
+        {"label":"QUOT", "x":11, "y":1},
+        {"label":"LSFT", "x":0, "y":2},
+        {"label":"Z", "x":1, "y":2},
+        {"label":"X", "x":2, "y":2},
+        {"label":"C", "x":3, "y":2},
+        {"label":"V", "x":4, "y":2},
+        {"label":"B", "x":5, "y":2},
+        {"label":"N", "x":6, "y":2},
+        {"label":"M", "x":7, "y":2},
+        {"label":"COMM", "x":8, "y":2},
+        {"label":"DOT", "x":9, "y":2},
+        {"label":"SLSH", "x":10, "y":2},
+        {"label":"ENTER", "x":11, "y":2},
+        {"label":"DEL", "x":1, "y":3},
+        {"label":"LGUI", "x":2, "y":3},
+        {"label":"LALT", "x":3, "y":3},
+        {"label":"LOWER", "x":4, "y":3},
+        {"label":" ", "x":5, "y":3, "w":2},
+        {"label":"RAISE", "x":7, "y":3},
+        {"label":"RALT", "x":8, "y":3},
+        {"label":"MENU", "x":9, "y":3},
+        {"label":"RCTL", "x":10, "y":3}
+      ]
+    },
+
+    "LAYOUT_full_ortho": {
+      "key_count": 46,
+        "layout": [
+        {"label":"TAB", "x":0, "y":0},
+        {"label":"Q", "x":1, "y":0}, 
+        {"label":"W", "x":2, "y":0}, 
+        {"label":"E", "x":3, "y":0}, 
+        {"label":"R", "x":4, "y":0}, 
+        {"label":"T", "x":5, "y":0}, 
+        {"label":"Y", "x":6, "y":0}, 
+        {"label":"U", "x":7, "y":0}, 
+        {"label":"I", "x":8, "y":0}, 
+        {"label":"O", "x":9, "y":0}, 
+        {"label":"P", "x":10, "y":0},
+        {"label":"BSPC", "x":11, "y":0},
+        {"label":"LCtl", "x":0, "y":1},
+        {"label":"A", "x":1, "y":1},
+        {"label":"S", "x":2, "y":1},
+        {"label":"D", "x":3, "y":1},
+        {"label":"F", "x":4, "y":1},
+        {"label":"G", "x":5, "y":1},
+        {"label":"H", "x":6, "y":1},
+        {"label":"J", "x":7, "y":1},
+        {"label":"K", "x":8, "y":1},
+        {"label":"L", "x":9, "y":1},
+        {"label":"SCLN", "x":10, "y":1},
+        {"label":"QUOT", "x":11, "y":1},
+        {"label":"LSFT", "x":0, "y":2},
+        {"label":"Z", "x":1, "y":2},
+        {"label":"X", "x":2, "y":2},
+        {"label":"C", "x":3, "y":2},
+        {"label":"V", "x":4, "y":2},
+        {"label":"B", "x":5, "y":2},
+        {"label":"N", "x":6, "y":2},
+        {"label":"M", "x":7, "y":2},
+        {"label":"COMM", "x":8, "y":2},
+        {"label":"DOT", "x":9, "y":2},
+        {"label":"SLSH", "x":10, "y":2},
+        {"label":"ENTER", "x":11, "y":2},
+        {"label":"DEL", "x":1, "y":3},
+        {"label":"LGUI", "x":2, "y":3},
+        {"label":"LALT", "x":3, "y":3},
+        {"label":"LOWER", "x":4, "y":3},
+        {"label":" ", "x":5, "y":3},
+        {"label":" ", "x":6, "y":3},
+        {"label":"RAISE", "x":7, "y":3},
+        {"label":"RALT", "x":8, "y":3},
+        {"label":"MENU", "x":9, "y":3},
+        {"label":"RCTL", "x":10, "y":3}
+      ]
+    },
+
+    "LAYOUT_big_boy": {
+      "key_count": 39,
+        "layout": [
+        {"label":"TAB", "x":0, "y":0},
+        {"label":"Q", "x":1, "y":0}, 
+        {"label":"W", "x":2, "y":0}, 
+        {"label":"E", "x":3, "y":0}, 
+        {"label":"R", "x":4, "y":0}, 
+        {"label":"T", "x":5, "y":0}, 
+        {"label":"Y", "x":6, "y":0}, 
+        {"label":"U", "x":7, "y":0}, 
+        {"label":"I", "x":8, "y":0}, 
+        {"label":"O", "x":9, "y":0}, 
+        {"label":"P", "x":10, "y":0},
+        {"label":"BSPC", "x":11, "y":0},
+        {"label":"LCtl", "x":0, "y":1},
+        {"label":"A", "x":1, "y":1},
+        {"label":"S", "x":2, "y":1},
+        {"label":"D", "x":3, "y":1},
+        {"label":"F", "x":4, "y":1},
+        {"label":"G", "x":5, "y":1},
+        {"label":"H", "x":6, "y":1},
+        {"label":"J", "x":7, "y":1},
+        {"label":"K", "x":8, "y":1},
+        {"label":"L", "x":9, "y":1},
+        {"label":"SCLN", "x":10, "y":1},
+        {"label":"QUOT", "x":11, "y":1},
+        {"label":"LSFT", "x":0, "y":2},
+        {"label":"Z", "x":1, "y":2},
+        {"label":"X", "x":2, "y":2},
+        {"label":"C", "x":3, "y":2},
+        {"label":"V", "x":4, "y":2},
+        {"label":"B", "x":5, "y":2},
+        {"label":"N", "x":6, "y":2},
+        {"label":"M", "x":7, "y":2},
+        {"label":"COMM", "x":8, "y":2},
+        {"label":"DOT", "x":9, "y":2},
+        {"label":"SLSH", "x":10, "y":2},
+        {"label":"ENTER", "x":11, "y":2},
+        {"label":"LOWER", "x":1, "y":3, "w":1.5},
+        {"label":" ", "x":2.5, "y":3, "w":7},
+        {"label":"RAISE", "x":9.5, "y":3, "w":1.5}
+      ]
+    }
+  }
+}
diff --git a/keyboards/the_royal/schwann/keymaps/default/keymap.c b/keyboards/the_royal/schwann/keymaps/default/keymap.c
new file mode 100644
index 0000000000..0422f2d685
--- /dev/null
+++ b/keyboards/the_royal/schwann/keymaps/default/keymap.c
@@ -0,0 +1,136 @@
+#include QMK_KEYBOARD_H
+
+enum layer_names {
+  _QWERTY,
+  _LOWER,
+  _RAISE,
+  _OTHER
+};
+
+enum schwann_keycodes {
+  QWERTY = SAFE_RANGE,
+  LOWER,
+  RAISE
+};
+
+//Tap Dance Declarations
+enum {
+  TD_RST
+};
+
+void dance_rst_reset (qk_tap_dance_state_t *state, void *user_data) {
+  if (state->count >= 2) {
+    reset_keyboard();
+    reset_tap_dance(state);
+  }
+}
+
+//All tap dance functions would go here. Only showing this one.
+qk_tap_dance_action_t tap_dance_actions[] = {
+  [TD_RST] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, NULL, dance_rst_reset)
+};
+
+
+#define XXXXX KC_TRNS
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  /* Default Layer
+   * ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
+   * │Tab │ Q  │ W  │ E  │ R  │ T  │ Y  │ U  │ I  │ O  │ P  │BkSp│
+   * ├────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤
+   * │LCtl│ A  │ S  │ D  │ F  │ G  │ H  │ J  │ K  │ L  │ ;  │ '  │
+   * ├────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤
+   * │LSft│ Z  │ X  │ C  │ V  │ B  │ N  │ M  │ ,  │ .  │ /  │Entr│
+   * └────┼────┼────┼────┼────┼────┴────┼────┼────┼────┼────┼────┘
+   *      │Del │Gui │Alt │Lwr │         │Rse │Alt │Menu│Ctrl│
+   *      └────┴────┴────┴────┴─────────┴────┴────┴────┴────┘
+   */
+
+  [_QWERTY] = LAYOUT_mit(
+    KC_TAB,   KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,     KC_O,     KC_P,    KC_BSPC,
+    KC_LCTRL, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,     KC_L,     KC_SCLN, KC_QUOT,
+    KC_LSFT,  KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM,  KC_DOT,   KC_SLSH, KC_ENT,
+              KC_DEL,  KC_LGUI, KC_LALT, LOWER,     KC_SPACE,       RAISE,   KC_RALT,  KC_MENU,  KC_RCTL
+  ),
+
+  /* Lower Layer
+   * ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
+   * │Esc │ 1  │ 2  │ 3  │ 4  │ 5  │ 6  │ 7  │ 8  │ 9  │ 0  │    │
+   * ├────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤
+   * │ ~  │ !  │ @  │ #  │ $  │ %  │ ^  │ &  │ *  │ (  │ )  │ "  │
+   * ├────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤
+   * │    │    │    │    │    │    │    │    │ `  │ [  │ ]  │ .  │
+   * └────┼────┼────┼────┼────┼────┴────┼────┼────┼────┼────┼────┘
+   *      │    │    │    │    │         │    │    │    │    │
+   *      └────┴────┴────┴────┴─────────┴────┴────┴────┴────┘
+   */
+  [_LOWER] = LAYOUT_mit(
+    KC_ESC,     KC_1,      KC_2,      KC_3,      KC_4,      KC_5,      KC_6,      KC_7,     KC_8,     KC_9,     KC_0,     _______,
+    KC_TILD,    KC_EXLM,   KC_AT,     KC_HASH,   KC_DLR,    KC_PERC,   KC_CIRC,   KC_AMPR,  KC_ASTR,  KC_LPRN,  KC_RPRN,  KC_DQT,
+    _______,    _______,   _______,   _______,   _______,   _______,   _______,   _______,  KC_GRAVE, KC_LBRC,  KC_RBRC,  KC_DOT,
+                _______,   _______,   _______,   _______,         _______,        _______,  _______,  _______,  _______
+  ),
+
+  /* Raise Layer
+   * ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
+   * │    │    │    │    │    │    │    │    │    │    │ -  │    │
+   * ├────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤
+   * │CAPS│    │    │    │    │    │    │    │    │    │ _  │ \  │
+   * ├────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤
+   * │PrSc│    │    │    │    │    │    │    │    │ UP │    │ =  │
+   * └────┼────┼────┼────┼────┼────┴────┼────┼────┼────┼────┼────┘
+   *      │    │    │    │    │         │    │Left│Down│Rght│
+   *      └────┴────┴────┴────┴─────────┴────┴────┴────┴────┘
+   */
+  [_RAISE] = LAYOUT_mit(
+    _______,    _______,   _______,    _______,   _______,   _______,   _______,   _______,  _______,  _______,  KC_MINS,  _______,
+    KC_CAPS,    _______,   _______,    _______,   _______,   _______,   _______,   _______,  _______,  _______,  KC_UNDS,  KC_BSLS,
+    KC_PSCR,    _______,   _______,    _______,   _______,   _______,   _______,   _______,  _______,   KC_UP,   _______,  KC_EQUAL,
+                 _______,   _______,    _______,   _______,         _______,       _______,  KC_LEFT,  KC_DOWN,  KC_RIGHT
+),
+
+  /* Other Layer
+   * ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
+   * │RSET│    │    │    │    │    │    │    │    │SAT+│Hue+│Brt+│
+   * ├────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤
+   * │    │    │    │    │    │    │    │    │    │SAT-│Hue-│Brt-│
+   * ├────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤
+   * │    │    │    │    │    │    │    │    │    │    │    │RGB!│
+   * └────┼────┼────┼────┼────┼────┴────┼────┼────┼────┼────┼────┘
+   *      │    │    │    │    │         │    │    │    │    │
+   *      └────┴────┴────┴────┴─────────┴────┴────┴────┴────┘
+   */
+  [_OTHER] = LAYOUT_mit(
+    TD(TD_RST), _______,   _______,    _______,   _______,   _______,   _______,   _______,  _______,  RGB_SAI,  RGB_HUI,  RGB_VAI,
+    _______,    _______,   _______,    _______,   _______,   _______,   _______,   _______,  _______,  RGB_SAD,  RGB_HUD,  RGB_VAD,
+    _______,    _______,   _______,    _______,   _______,   _______,   _______,   _______,  _______,  _______,  _______,  RGB_MOD,
+                _______,   _______,    _______,   _______,         _______,        _______,  _______,  _______,  _______
+  )
+
+};
+
+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, _OTHER);
+      } else {
+        layer_off(_LOWER);
+        update_tri_layer(_LOWER, _RAISE, _OTHER);
+      }
+      return false;
+      break;
+    case RAISE:
+      if (record->event.pressed) {
+        layer_on(_RAISE);
+        update_tri_layer(_LOWER, _RAISE, _OTHER);
+      } else {
+        layer_off(_RAISE);
+        update_tri_layer(_LOWER, _RAISE, _OTHER);
+      }
+      return false;
+      break;
+  }
+  return true;
+};
diff --git a/keyboards/the_royal/schwann/keymaps/default/rules.mk b/keyboards/the_royal/schwann/keymaps/default/rules.mk
new file mode 100644
index 0000000000..e5ddcae8d9
--- /dev/null
+++ b/keyboards/the_royal/schwann/keymaps/default/rules.mk
@@ -0,0 +1 @@
+TAP_DANCE_ENABLE = yes
diff --git a/keyboards/the_royal/schwann/readme.md b/keyboards/the_royal/schwann/readme.md
new file mode 100644
index 0000000000..bb0c27a9ac
--- /dev/null
+++ b/keyboards/the_royal/schwann/readme.md
@@ -0,0 +1,15 @@
+# Schwann PCB
+
+![schwann_render](https://i.imgur.com/04uaN8xl.jpg)
+
+A simple, HHKB ortho PCB, designed for use with the Neuron Keyboard by Wallet Burner
+
+* Keyboard Maintainer: [TheRoyalSweatshirt](https://github.com/TheRoyalSweatshirt) a.k.a [The_Royal](https://reddit.com/u/The_Royal)
+* Hardware Supported: Rev0.2 and Rev0.5 Schwann PCB
+* Hardware Availability: Private Message, Group buy, or self-procurement via the open sourced [Schwann Documentation](https://github.com/TheRoyalSweatshirt/The_Royal_Projects/tree/schwann/PCBs/Schwann_PCB).
+
+Make example for this keyboard (after setting up your build environment):
+
+    make the_royal/schwann:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/the_royal/schwann/rules.mk b/keyboards/the_royal/schwann/rules.mk
new file mode 100644
index 0000000000..9317699f51
--- /dev/null
+++ b/keyboards/the_royal/schwann/rules.mk
@@ -0,0 +1,32 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
+
+BOOTLOADER = atmel-dfu
+
+# Build Options
+#   change yes to no to disable
+#
+BOOTMAGIC_ENABLE = lite     # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no        # Mouse keys
+EXTRAKEY_ENABLE = yes       # Audio control and System control
+CONSOLE_ENABLE = no         # Console for debug
+COMMAND_ENABLE = no         # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no            # USB Nkey Rollover
+RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
+MIDI_ENABLE = no            # MIDI support
+UNICODE_ENABLE = no         # Unicode
+BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no           # Audio output on port C6
+
diff --git a/keyboards/the_royal/schwann/schwann.c b/keyboards/the_royal/schwann/schwann.c
new file mode 100644
index 0000000000..1ef8c93974
--- /dev/null
+++ b/keyboards/the_royal/schwann/schwann.c
@@ -0,0 +1 @@
+#include "schwann.h"
diff --git a/keyboards/the_royal/schwann/schwann.h b/keyboards/the_royal/schwann/schwann.h
new file mode 100644
index 0000000000..933e903ec2
--- /dev/null
+++ b/keyboards/the_royal/schwann/schwann.h
@@ -0,0 +1,44 @@
+#pragma once
+
+#include "quantum.h"
+
+#define XXX KC_NO
+
+#define LAYOUT_mit( \
+  k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \
+  k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \
+  k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \
+       k31, k32, k33, k34,    k36,   k37, k38, k39, k3A       \
+) \
+{ \
+  {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B}, \
+  {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B}, \
+  {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B}, \
+  {XXX, k31, k32, k33, k34, XXX, k36, k37, k38, k39, k3A, XXX}  \
+}
+
+#define LAYOUT_full_ortho( \
+  k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \
+  k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \
+  k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \
+       k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A       \
+) \
+{ \
+  {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B}, \
+  {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B}, \
+  {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B}, \
+  {XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, XXX}  \
+}
+
+#define LAYOUT_big_boy( \
+  k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \
+  k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \
+  k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \
+         k31,                 k36,                 k3A        \
+) \
+{ \
+  {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B}, \
+  {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B}, \
+  {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B}, \
+  {XXX, k31, XXX, XXX, XXX, XXX, k36, XXX, XXX, XXX, k3A, XXX}  \
+}