From 9c23f16574e43ba353142fe7e02a1b271e4a57a0 Mon Sep 17 00:00:00 2001
From: Torsten Auhorn <auhorn@gmail.com>
Date: Mon, 29 Apr 2024 17:40:53 -0700
Subject: [PATCH] added config at the correct location

---
 .../{auhorn => auhorn-orig}/unicorne/config.h |   0
 .../unicorne/halconf.h                        |   0
 .../unicorne/info.json                        |   0
 .../unicorne/keymaps/default/keymap.json      |   0
 .../unicorne/keymaps/via/keymap.json          |   0
 .../unicorne/mcuconf.h                        |   0
 .../unicorne/readme.md                        |   0
 .../{auhorn => auhorn-orig}/unicorne/rules.mk |   0
 .../unicorne/unicorne.c                       |   0
 .../unicorne/unicorne.h                       |   0
 keyboards/boardsource/unicorne/config.h       |  20 ++
 keyboards/boardsource/unicorne/halconf.h      |   9 +
 keyboards/boardsource/unicorne/info.json      | 173 ++++++++++++++++
 .../unicorne/keymaps/auhorn/keymap.json       |  31 +++
 keyboards/boardsource/unicorne/mcuconf.h      |  13 ++
 keyboards/boardsource/unicorne/readme.md      |  25 +++
 keyboards/boardsource/unicorne/rules.mk       |   3 +
 keyboards/boardsource/unicorne/unicorne.c     |  37 ++++
 keyboards/boardsource/unicorne/unicorne.h     | 194 ++++++++++++++++++
 qmk.json                                      |   4 +-
 20 files changed, 508 insertions(+), 1 deletion(-)
 rename keyboards/{auhorn => auhorn-orig}/unicorne/config.h (100%)
 rename keyboards/{auhorn => auhorn-orig}/unicorne/halconf.h (100%)
 rename keyboards/{auhorn => auhorn-orig}/unicorne/info.json (100%)
 rename keyboards/{auhorn => auhorn-orig}/unicorne/keymaps/default/keymap.json (100%)
 rename keyboards/{auhorn => auhorn-orig}/unicorne/keymaps/via/keymap.json (100%)
 rename keyboards/{auhorn => auhorn-orig}/unicorne/mcuconf.h (100%)
 rename keyboards/{auhorn => auhorn-orig}/unicorne/readme.md (100%)
 rename keyboards/{auhorn => auhorn-orig}/unicorne/rules.mk (100%)
 rename keyboards/{auhorn => auhorn-orig}/unicorne/unicorne.c (100%)
 rename keyboards/{auhorn => auhorn-orig}/unicorne/unicorne.h (100%)
 create mode 100644 keyboards/boardsource/unicorne/config.h
 create mode 100644 keyboards/boardsource/unicorne/halconf.h
 create mode 100644 keyboards/boardsource/unicorne/info.json
 create mode 100644 keyboards/boardsource/unicorne/keymaps/auhorn/keymap.json
 create mode 100644 keyboards/boardsource/unicorne/mcuconf.h
 create mode 100644 keyboards/boardsource/unicorne/readme.md
 create mode 100644 keyboards/boardsource/unicorne/rules.mk
 create mode 100644 keyboards/boardsource/unicorne/unicorne.c
 create mode 100644 keyboards/boardsource/unicorne/unicorne.h

diff --git a/keyboards/auhorn/unicorne/config.h b/keyboards/auhorn-orig/unicorne/config.h
similarity index 100%
rename from keyboards/auhorn/unicorne/config.h
rename to keyboards/auhorn-orig/unicorne/config.h
diff --git a/keyboards/auhorn/unicorne/halconf.h b/keyboards/auhorn-orig/unicorne/halconf.h
similarity index 100%
rename from keyboards/auhorn/unicorne/halconf.h
rename to keyboards/auhorn-orig/unicorne/halconf.h
diff --git a/keyboards/auhorn/unicorne/info.json b/keyboards/auhorn-orig/unicorne/info.json
similarity index 100%
rename from keyboards/auhorn/unicorne/info.json
rename to keyboards/auhorn-orig/unicorne/info.json
diff --git a/keyboards/auhorn/unicorne/keymaps/default/keymap.json b/keyboards/auhorn-orig/unicorne/keymaps/default/keymap.json
similarity index 100%
rename from keyboards/auhorn/unicorne/keymaps/default/keymap.json
rename to keyboards/auhorn-orig/unicorne/keymaps/default/keymap.json
diff --git a/keyboards/auhorn/unicorne/keymaps/via/keymap.json b/keyboards/auhorn-orig/unicorne/keymaps/via/keymap.json
similarity index 100%
rename from keyboards/auhorn/unicorne/keymaps/via/keymap.json
rename to keyboards/auhorn-orig/unicorne/keymaps/via/keymap.json
diff --git a/keyboards/auhorn/unicorne/mcuconf.h b/keyboards/auhorn-orig/unicorne/mcuconf.h
similarity index 100%
rename from keyboards/auhorn/unicorne/mcuconf.h
rename to keyboards/auhorn-orig/unicorne/mcuconf.h
diff --git a/keyboards/auhorn/unicorne/readme.md b/keyboards/auhorn-orig/unicorne/readme.md
similarity index 100%
rename from keyboards/auhorn/unicorne/readme.md
rename to keyboards/auhorn-orig/unicorne/readme.md
diff --git a/keyboards/auhorn/unicorne/rules.mk b/keyboards/auhorn-orig/unicorne/rules.mk
similarity index 100%
rename from keyboards/auhorn/unicorne/rules.mk
rename to keyboards/auhorn-orig/unicorne/rules.mk
diff --git a/keyboards/auhorn/unicorne/unicorne.c b/keyboards/auhorn-orig/unicorne/unicorne.c
similarity index 100%
rename from keyboards/auhorn/unicorne/unicorne.c
rename to keyboards/auhorn-orig/unicorne/unicorne.c
diff --git a/keyboards/auhorn/unicorne/unicorne.h b/keyboards/auhorn-orig/unicorne/unicorne.h
similarity index 100%
rename from keyboards/auhorn/unicorne/unicorne.h
rename to keyboards/auhorn-orig/unicorne/unicorne.h
diff --git a/keyboards/boardsource/unicorne/config.h b/keyboards/boardsource/unicorne/config.h
new file mode 100644
index 00000000..e79c00f1
--- /dev/null
+++ b/keyboards/boardsource/unicorne/config.h
@@ -0,0 +1,20 @@
+// Copyright 2023 jack (@waffle87)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
+
+#define I2C_DRIVER I2CD1
+#define I2C1_SDA_PIN GP22
+#define I2C1_SCL_PIN GP23
+
+#define AUDIO_PIN GP28
+#define AUDIO_PWM_DRIVER PWMD6
+#define AUDIO_INIT_DELAY
+#define AUDIO_PWM_CHANNEL RP2040_PWM_CHANNEL_A
+#define STARTUP_SONG SONG(ODE_TO_JOY)
+
+#define ANALOG_JOYSTICK_Y_AXIS_PIN GP26
+#define ANALOG_JOYSTICK_X_AXIS_PIN GP27
+#define POINTING_DEVICE_INVERT_Y
+#define POINTING_DEVICE_INVERT_X
diff --git a/keyboards/boardsource/unicorne/halconf.h b/keyboards/boardsource/unicorne/halconf.h
new file mode 100644
index 00000000..21ed454e
--- /dev/null
+++ b/keyboards/boardsource/unicorne/halconf.h
@@ -0,0 +1,9 @@
+// Copyright 2022 jack (@waffle87)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+#define HAL_USE_I2C TRUE
+#define HAL_USE_PWM TRUE
+#define HAL_USE_ADC TRUE
+
+#include_next <halconf.h>
diff --git a/keyboards/boardsource/unicorne/info.json b/keyboards/boardsource/unicorne/info.json
new file mode 100644
index 00000000..52f28b67
--- /dev/null
+++ b/keyboards/boardsource/unicorne/info.json
@@ -0,0 +1,173 @@
+{
+    "manufacturer": "Boardsource",
+    "maintainer": "waffle87",
+    "processor": "RP2040",
+    "bootloader": "rp2040",
+    "diode_direction": "COL2ROW",
+    "features": {
+        "audio": true,
+        "bootmagic": true,
+        "encoder": true,
+        "extrakey": true,
+        "mousekey": true,
+        "nkro": true,
+        "oled": true,
+        "pointing_device": false,
+        "rgb_matrix": true
+    },
+    "indicators": {
+        "caps": "GP24"
+    },
+    "split": {
+        "enabled": true,
+        "soft_serial_pin": "GP0",
+        "transport": {
+            "sync": {
+                "layer_state": true
+            }
+        }
+    },
+    "usb": {
+        "device_version": "1.0.0",
+        "pid": "0x7563",
+        "vid": "0x4273"
+    },
+    "ws2812": {
+        "driver": "vendor",
+        "pin": "GP29"
+    },
+    "matrix_pins": {
+        "cols": ["GP2", "GP3", "GP4", "GP5", "GP6", "GP7"],
+        "rows": ["GP14", "GP15", "GP16", "GP17"]
+    },
+    "encoder": {
+        "rotary": [
+            {"pin_a": "GP8", "pin_b": "GP9"}
+        ]
+    },
+    "rgb_matrix": {
+        "animations": {
+            "alphas_mods": true,
+            "band_sat": true,
+            "band_val": true,
+            "breathing": true,
+            "gradient_left_right": true,
+            "gradient_up_down": true
+        },
+        "default": {
+            "animation": "alphas_mods"
+        },
+        "max_brightness": 150,
+        "split_count": [27, 27],
+        "driver": "ws2812",
+        "layout": [
+            {"x": 85, "y": 16, "flags": 2},
+            {"x": 50, "y": 13, "flags": 2},
+            {"x": 16, "y": 20, "flags": 2},
+            {"x": 16, "y": 38, "flags": 2},
+            {"x": 50, "y": 48, "flags": 2},
+            {"x": 85, "y": 52, "flags": 2},
+            {"matrix": [3, 5], "x": 95, "y": 63, "flags": 1},
+            {"matrix": [2, 5], "x": 85, "y": 39, "flags": 4},
+            {"matrix": [1, 5], "x": 85, "y": 21, "flags": 4},
+            {"matrix": [0, 5], "x": 85, "y": 4, "flags": 4},
+            {"matrix": [0, 4], "x": 68, "y": 2, "flags": 4},
+            {"matrix": [1, 4], "x": 68, "y": 19, "flags": 4},
+            {"matrix": [2, 4], "x": 68, "y": 37, "flags": 4},
+            {"matrix": [3, 4], "x": 80, "y": 58, "flags": 1},
+            {"matrix": [3, 3], "x": 60, "y": 55, "flags": 1},
+            {"matrix": [2, 3], "x": 50, "y": 35, "flags": 4},
+            {"matrix": [1, 3], "x": 50, "y": 13, "flags": 4},
+            {"matrix": [0, 3], "x": 50, "y": 0, "flags": 4},
+            {"matrix": [0, 2], "x": 33, "y": 3, "flags": 4},
+            {"matrix": [1, 2], "x": 33, "y": 20, "flags": 4},
+            {"matrix": [2, 2], "x": 33, "y": 37, "flags": 4},
+            {"matrix": [2, 1], "x": 16, "y": 42, "flags": 4},
+            {"matrix": [1, 1], "x": 16, "y": 24, "flags": 4},
+            {"matrix": [0, 1], "x": 16, "y": 7, "flags": 4},
+            {"matrix": [0, 0], "x": 0, "y": 7, "flags": 1},
+            {"matrix": [1, 0], "x": 0, "y": 24, "flags": 1},
+            {"matrix": [2, 0], "x": 0, "y": 41, "flags": 1},
+            {"x": 139, "y": 16, "flags": 2},
+            {"x": 174, "y": 13, "flags": 2},
+            {"x": 208, "y": 20, "flags": 2},
+            {"x": 208, "y": 38, "flags": 2},
+            {"x": 174, "y": 48, "flags": 2},
+            {"x": 139, "y": 52, "flags": 2},
+            {"matrix": [7, 5], "x": 129, "y": 63, "flags": 1},
+            {"matrix": [6, 5], "x": 139, "y": 39, "flags": 4},
+            {"matrix": [5, 5], "x": 139, "y": 21, "flags": 4},
+            {"matrix": [4, 5], "x": 139, "y": 4, "flags": 4},
+            {"matrix": [4, 4], "x": 156, "y": 2, "flags": 4},
+            {"matrix": [5, 4], "x": 156, "y": 19, "flags": 4},
+            {"matrix": [6, 4], "x": 156, "y": 37, "flags": 4},
+            {"matrix": [7, 4], "x": 144, "y": 58, "flags": 1},
+            {"matrix": [7, 3], "x": 164, "y": 55, "flags": 1},
+            {"matrix": [6, 3], "x": 174, "y": 35, "flags": 4},
+            {"matrix": [5, 3], "x": 174, "y": 13, "flags": 4},
+            {"matrix": [4, 3], "x": 174, "y": 0, "flags": 4},
+            {"matrix": [4, 2], "x": 191, "y": 3, "flags": 4},
+            {"matrix": [5, 2], "x": 191, "y": 20, "flags": 4},
+            {"matrix": [6, 2], "x": 191, "y": 37, "flags": 4},
+            {"matrix": [6, 1], "x": 208, "y": 42, "flags": 4},
+            {"matrix": [5, 1], "x": 208, "y": 24, "flags": 4},
+            {"matrix": [4, 1], "x": 208, "y": 7, "flags": 4},
+            {"matrix": [4, 0], "x": 0, "y": 7, "flags": 1},
+            {"matrix": [5, 0], "x": 0, "y": 24, "flags": 1},
+            {"matrix": [6, 0], "x": 0, "y": 41, "flags": 1}
+        ],
+        "sleep": true
+    },
+    "community_layouts": ["split_3x6_3"],
+    "layout_aliases": {
+        "LAYOUT": "LAYOUT_split_3x6_3"
+    },
+    "layouts": {
+        "LAYOUT_split_3x6_3": {
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0.3},
+                {"matrix": [0, 1], "x": 1, "y": 0.3},
+                {"matrix": [0, 2], "x": 2, "y": 0.1},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0.1},
+                {"matrix": [0, 5], "x": 5, "y": 0.2},
+                {"matrix": [4, 5], "x": 9, "y": 0.2},
+                {"matrix": [4, 4], "x": 10, "y": 0.1},
+                {"matrix": [4, 3], "x": 11, "y": 0},
+                {"matrix": [4, 2], "x": 12, "y": 0.1},
+                {"matrix": [4, 1], "x": 13, "y": 0.3},
+                {"matrix": [4, 0], "x": 14, "y": 0.3},
+                {"matrix": [1, 0], "x": 0, "y": 1.3},
+                {"matrix": [1, 1], "x": 1, "y": 1.3},
+                {"matrix": [1, 2], "x": 2, "y": 1.1},
+                {"matrix": [1, 3], "x": 3, "y": 1},
+                {"matrix": [1, 4], "x": 4, "y": 1.1},
+                {"matrix": [1, 5], "x": 5, "y": 1.2},
+                {"matrix": [5, 5], "x": 9, "y": 1.2},
+                {"matrix": [5, 4], "x": 10, "y": 1.1},
+                {"matrix": [5, 3], "x": 11, "y": 1},
+                {"matrix": [5, 2], "x": 12, "y": 1.1},
+                {"matrix": [5, 1], "x": 13, "y": 1.3},
+                {"matrix": [5, 0], "x": 14, "y": 1.3},
+                {"matrix": [2, 0], "x": 0, "y": 2.3},
+                {"matrix": [2, 1], "x": 1, "y": 2.3},
+                {"matrix": [2, 2], "x": 2, "y": 2.1},
+                {"matrix": [2, 3], "x": 3, "y": 2},
+                {"matrix": [2, 4], "x": 4, "y": 2.1},
+                {"matrix": [2, 5], "x": 5, "y": 2.2},
+                {"matrix": [6, 5], "x": 9, "y": 2.2},
+                {"matrix": [6, 4], "x": 10, "y": 2.1},
+                {"matrix": [6, 3], "x": 11, "y": 2},
+                {"matrix": [6, 2], "x": 12, "y": 2.1},
+                {"matrix": [6, 1], "x": 13, "y": 2.3},
+                {"matrix": [6, 0], "x": 14, "y": 2.3},
+                {"matrix": [3, 3], "x": 4, "y": 3.7},
+                {"matrix": [3, 4], "x": 5, "y": 3.7},
+                {"matrix": [3, 5], "x": 6, "y": 3.2, "h": 1.5},
+                {"matrix": [7, 5], "x": 8, "y": 3.2, "h": 1.5},
+                {"matrix": [7, 4], "x": 9, "y": 3.7},
+                {"matrix": [7, 3], "x": 10, "y": 3.7}
+            ]
+        }
+    }
+}
diff --git a/keyboards/boardsource/unicorne/keymaps/auhorn/keymap.json b/keyboards/boardsource/unicorne/keymaps/auhorn/keymap.json
new file mode 100644
index 00000000..5a816392
--- /dev/null
+++ b/keyboards/boardsource/unicorne/keymaps/auhorn/keymap.json
@@ -0,0 +1,31 @@
+{
+    "keyboard": "auhorn/unicorne",
+    "keymap": "default",
+    "layout": "LAYOUT_split_3x6_3",
+    "layers": [
+        [
+            "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_LCTL", "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_ESC",
+                                             "KC_LGUI", "MO(1)",   "KC_SPC",        "RSFT_T(KC_ENT)",  "MO(2)",   "KC_RALT"
+        ],
+        [
+            "KC_GRV",  "KC_1",    "KC_2",    "KC_3",    "KC_4",    "KC_5",          "KC_6",    "KC_7",    "KC_8",    "KC_9",    "KC_0",     "KC_DEL",
+            "_______", "KC_EXLM", "KC_AT",   "KC_HASH", "KC_DLR",  "KC_PERC",       "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN",  "KC_PIPE",
+            "_______", "_______", "_______", "KC_UNDS", "KC_MINS", "_______",       "KC_EQL",  "KC_LEFT", "KC_UP",   "KC_DOWN", "KC_RIGHT", "_______", 
+                                             "_______", "_______", "_______",       "_______", "MO(3)",   "_______"
+        ],
+        [
+            "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_LBRC", "KC_RBRC", "KC_LCBR",  "KC_RCBR", "KC_BSLS",
+            "KC_MPLY", "KC_MNXT", "KC_MPRV", "KC_VOLU", "KC_VOLD", "_______",       "KC_PLUS", "KC_HOME", "KC_PGUP", "KC_PGDN",  "KC_END",  "_______",
+                                             "_______", "MO(3)",   "_______",       "_______", "_______", "_______"
+        ],
+        [
+            "QK_BOOT", "_______", "_______", "_______", "_______", "_______",       "RGB_VAI", "RGB_HUI", "RGB_SAI", "RGB_MOD",  "RGB_TOG", "_______",
+            "EE_CLR",  "_______", "_______", "_______", "_______", "_______",       "RGB_VAD", "RGB_HUD", "RGB_SAD", "RGB_RMOD", "CK_TOGG", "_______",
+            "_______", "_______", "_______", "_______", "_______", "_______",       "_______", "_______", "_______", "_______",  "_______", "_______",
+                                             "_______", "_______", "_______",       "_______", "_______", "_______"
+        ]
+    ]
+}
diff --git a/keyboards/boardsource/unicorne/mcuconf.h b/keyboards/boardsource/unicorne/mcuconf.h
new file mode 100644
index 00000000..60e7b581
--- /dev/null
+++ b/keyboards/boardsource/unicorne/mcuconf.h
@@ -0,0 +1,13 @@
+// Copyright 2022 jack (@waffle87)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+#include_next <mcuconf.h>
+
+#undef RP_I2C_USE_I2C1
+#define RP_I2C_USE_I2C1 TRUE
+
+#undef RP_PWM_USE_PWM6
+#define RP_PWM_USE_PWM6 TRUE
+
+#undef RP_ADC_USE_ADC1
+#define RP_ADC_USE_ADC1 TRUE
diff --git a/keyboards/boardsource/unicorne/readme.md b/keyboards/boardsource/unicorne/readme.md
new file mode 100644
index 00000000..3f4472b8
--- /dev/null
+++ b/keyboards/boardsource/unicorne/readme.md
@@ -0,0 +1,25 @@
+# Unicorne
+
+![image](https://i.imgur.com/akJJFUmh.jpeg)
+
+* Keyboard Maintainer: [waffle87](https://github.com/waffle87)
+* Hardware Supported: Unicorne PCBs w/ integrated RP2040 microcontroller
+* Hardware Availability: [boardsource.xyz](https://boardsource.xyz)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make boardsource/unicorne:default
+
+Flashing example for this keyboard:
+
+    make boardsource/unicorne: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).
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the top left key) and plug in the keyboard
+* **Physical reset button**: Briefly press the button on the back of the PCB
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/boardsource/unicorne/rules.mk b/keyboards/boardsource/unicorne/rules.mk
new file mode 100644
index 00000000..2bc9aa7a
--- /dev/null
+++ b/keyboards/boardsource/unicorne/rules.mk
@@ -0,0 +1,3 @@
+SERIAL_DRIVER = vendor
+AUDIO_DRIVER = pwm_hardware
+POINTING_DEVICE_DRIVER = analog_joystick
\ No newline at end of file
diff --git a/keyboards/boardsource/unicorne/unicorne.c b/keyboards/boardsource/unicorne/unicorne.c
new file mode 100644
index 00000000..22cd1e4a
--- /dev/null
+++ b/keyboards/boardsource/unicorne/unicorne.c
@@ -0,0 +1,37 @@
+// Copyright 2023 jack (@waffle87)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#include "unicorne.h"
+
+#ifdef OLED_ENABLE
+oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
+    if (!is_keyboard_master()) {
+        return OLED_ROTATION_180;
+    }
+    return rotation;
+}
+
+bool oled_task_kb(void) {
+    if (!oled_task_user()) {
+        return false;
+    }
+    if (is_keyboard_master()) {
+        switch (get_highest_layer(layer_state)) {
+            case 0:
+                oled_write_raw(layer_zero, sizeof(layer_zero));
+                break;
+            case 1:
+                oled_write_raw(layer_one, sizeof(layer_one));
+                break;
+            case 2:
+                oled_write_raw(layer_two, sizeof(layer_two));
+                break;
+            case 3:
+                oled_write_raw(layer_three, sizeof(layer_three));
+                break;
+        }
+    } else {
+        oled_write_raw(logo, sizeof(logo));
+    }
+    return false;
+}
+#endif
diff --git a/keyboards/boardsource/unicorne/unicorne.h b/keyboards/boardsource/unicorne/unicorne.h
new file mode 100644
index 00000000..68bbeeb1
--- /dev/null
+++ b/keyboards/boardsource/unicorne/unicorne.h
@@ -0,0 +1,194 @@
+// Copyright 2023 jack (@waffle87)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+#include "quantum.h"
+
+#ifdef OLED_ENABLE
+// clang-format off
+static const char PROGMEM logo[] = {
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0xc0,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
+    0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x01, 0xe3, 0xe7, 0xe7, 0xe3,
+    0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00,
+    0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00,
+    0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0,
+    0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0,
+    0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0,
+    0xc0, 0xc0, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x01, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
+    0x00, 0x00, 0x00, 0x7e, 0xff, 0xff, 0xff, 0xe7, 0xc1, 0x81, 0x81, 0x81, 0xc1, 0x00, 0x00, 0x7f,
+    0xff, 0xff, 0xff, 0xe3, 0xc1, 0x81, 0x81, 0xc1, 0xe3, 0xff, 0xff, 0xff, 0xff, 0x3c, 0x00, 0x00,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
+    0x03, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff,
+    0xcd, 0x8c, 0x8c, 0x8c, 0x8d, 0xcf, 0xcf, 0xcf, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x07, 0x07, 0x07,
+    0x07, 0x07, 0x07, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03,
+    0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03,
+    0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00,
+    0x00, 0x01, 0x03, 0x03, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00,
+    0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03,
+    0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03,
+    0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+static const char PROGMEM layer_zero[] = {
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 0x80,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
+    0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
+    0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0,
+    0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03,
+    0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0,
+    0xfc, 0x0e, 0x07, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00,
+    0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf0, 0x60,
+    0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07,
+    0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00,
+    0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+
+static const char PROGMEM layer_one[] = {
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 0x80,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0,
+    0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03,
+    0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00,
+    0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f,
+    0x3f, 0x70, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf0, 0x60,
+    0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07,
+    0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
+    0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
+    0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00,
+    0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+
+static const char PROGMEM layer_two[] = {
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 0x80,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0,
+    0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03,
+    0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00,
+    0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+    0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+    0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0xe0, 0x70, 0x38, 0x1f, 0x07,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf0, 0x60,
+    0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07,
+    0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+    0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+    0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00,
+    0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+
+static const char PROGMEM layer_three[] = {
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 0x80,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
+    0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
+    0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0,
+    0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03,
+    0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x07, 0x0e, 0xfc, 0xf0,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00,
+    0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf0, 0x60,
+    0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07,
+    0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00,
+    0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+// clang-format on
+#endif
diff --git a/qmk.json b/qmk.json
index 3afc389f..61fa3461 100644
--- a/qmk.json
+++ b/qmk.json
@@ -1,4 +1,6 @@
 {
     "userspace_version": "1.0",
-    "build_targets": []
+    "build_targets": [
+        ["boardsource/unicorne", "auhorn"]
+    ]
 }
\ No newline at end of file