From 1a8fff7512b074da2fe9c516adcd481a38ebc812 Mon Sep 17 00:00:00 2001
From: NCKiser <37519411+NCKiser@users.noreply.github.com>
Date: Sun, 14 Apr 2024 20:38:28 -0500
Subject: [PATCH] Add BigBAE (#709)

* Add BigBAE

Still need photo

* Add photo to readme
---
 keyboards/kiserdesigns/bigbae/info.json       |  52 +++++++
 .../bigbae/keymaps/default/keymap.c           |  32 +++++
 .../bigbae/keymaps/default/rules.mk           |   1 +
 .../kiserdesigns/bigbae/keymaps/vial/config.h |  28 ++++
 .../kiserdesigns/bigbae/keymaps/vial/keymap.c |  32 +++++
 .../kiserdesigns/bigbae/keymaps/vial/rules.mk |   3 +
 .../bigbae/keymaps/vial/vial.json             | 136 ++++++++++++++++++
 keyboards/kiserdesigns/bigbae/readme.md       |  23 +++
 keyboards/kiserdesigns/bigbae/rules.mk        |   2 +
 9 files changed, 309 insertions(+)
 create mode 100644 keyboards/kiserdesigns/bigbae/info.json
 create mode 100644 keyboards/kiserdesigns/bigbae/keymaps/default/keymap.c
 create mode 100644 keyboards/kiserdesigns/bigbae/keymaps/default/rules.mk
 create mode 100644 keyboards/kiserdesigns/bigbae/keymaps/vial/config.h
 create mode 100644 keyboards/kiserdesigns/bigbae/keymaps/vial/keymap.c
 create mode 100644 keyboards/kiserdesigns/bigbae/keymaps/vial/rules.mk
 create mode 100644 keyboards/kiserdesigns/bigbae/keymaps/vial/vial.json
 create mode 100644 keyboards/kiserdesigns/bigbae/readme.md
 create mode 100644 keyboards/kiserdesigns/bigbae/rules.mk

diff --git a/keyboards/kiserdesigns/bigbae/info.json b/keyboards/kiserdesigns/bigbae/info.json
new file mode 100644
index 0000000000..94dac67105
--- /dev/null
+++ b/keyboards/kiserdesigns/bigbae/info.json
@@ -0,0 +1,52 @@
+{
+    "manufacturer": "Kiser Designs",
+    "keyboard_name": "BigBAE",
+    "maintiner": "qmk",
+    "bootloader": "stm32-dfu",
+    "features": {
+        "bootmagic": true,
+        "command": false,
+        "console": false,
+        "extrakey": true,
+        "mousekey": true,
+        "nkro": true
+    },
+    "encoder": {
+        "enabled": true,
+        "rotary": [
+            {"pin_a": "B10", "pin_b": "B2"}
+        ]
+    },
+    "matrix_pins": {
+        "direct": [
+            [ "A5",  "B0",  "B4" ],
+            [ "B11", "B3",  "B5" ],
+            [ "A4",  "B9",  "B8" ]
+        ]
+    },
+    "processor": "STM32F072",
+    "usb": {
+        "device_version": "0.0.1",
+        "pid": "0xBBAE",
+        "vid": "0x4B44"
+    },
+    "layouts": {
+        "LAYOUT": {
+            "layout": [
+                { "matrix": [1, 0], "x": 1.5, "y": 0 },
+                { "matrix": [1, 1], "x": 2.5, "y": 0 },
+                { "matrix": [1, 2], "x": 3.5, "y": 0 },
+
+                { "matrix": [0, 2], "w": 1.5, "x": 3, "y": 1 },
+
+
+                { "matrix": [0, 0], "w": 1.75, "x": 0, "y": 2 },
+                { "h": 2, "matrix": [0, 1], "w": 1.25, "x": 1.75, "y": 1 },
+                { "matrix": [2, 1], "w": 1.5, "x": 3, "y": 2 },
+
+                { "matrix": [2, 0], "w": 2.25, "x": 0, "y": 3 },
+                { "matrix": [2, 2], "w": 2.25, "x": 2.25, "y": 3 }
+            ]
+        }
+    }
+}
\ No newline at end of file
diff --git a/keyboards/kiserdesigns/bigbae/keymaps/default/keymap.c b/keyboards/kiserdesigns/bigbae/keymaps/default/keymap.c
new file mode 100644
index 0000000000..62526cb0f9
--- /dev/null
+++ b/keyboards/kiserdesigns/bigbae/keymaps/default/keymap.c
@@ -0,0 +1,32 @@
+ /* 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
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[0] = LAYOUT(
+  KC_MUTE, KC_ESC,  KC_BSPC,
+                    KC_LALT,
+  KC_CAPS, KC_TAB,  KC_LCTL,
+  KC_LSFT,          KC_ENT
+)
+
+};
+
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+    [0] =   { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }
+};
+#endif
diff --git a/keyboards/kiserdesigns/bigbae/keymaps/default/rules.mk b/keyboards/kiserdesigns/bigbae/keymaps/default/rules.mk
new file mode 100644
index 0000000000..a40474b4d5
--- /dev/null
+++ b/keyboards/kiserdesigns/bigbae/keymaps/default/rules.mk
@@ -0,0 +1 @@
+ENCODER_MAP_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/kiserdesigns/bigbae/keymaps/vial/config.h b/keyboards/kiserdesigns/bigbae/keymaps/vial/config.h
new file mode 100644
index 0000000000..a8fe4d9dd9
--- /dev/null
+++ b/keyboards/kiserdesigns/bigbae/keymaps/vial/config.h
@@ -0,0 +1,28 @@
+ /* 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
+
+#define VIAL_KEYBOARD_UID {0x79, 0x6D, 0x85, 0xA6, 0x17, 0xBF, 0x94, 0x9B}
+
+#define DYNAMIC_KEYMAP_LAYER_COUNT 16
+
+#define VIAL_TAP_DANCE_ENTRIES 16
+
+#define VIAL_COMBO_ENTRIES 16
+
+#define DYNAMIC_KEYMAP_MACRO_COUNT 64
+
+#define VIAL_UNLOCK_COMBO_ROWS { 0, 2 }
+#define VIAL_UNLOCK_COMBO_COLS { 1, 0 }
\ No newline at end of file
diff --git a/keyboards/kiserdesigns/bigbae/keymaps/vial/keymap.c b/keyboards/kiserdesigns/bigbae/keymaps/vial/keymap.c
new file mode 100644
index 0000000000..62526cb0f9
--- /dev/null
+++ b/keyboards/kiserdesigns/bigbae/keymaps/vial/keymap.c
@@ -0,0 +1,32 @@
+ /* 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
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[0] = LAYOUT(
+  KC_MUTE, KC_ESC,  KC_BSPC,
+                    KC_LALT,
+  KC_CAPS, KC_TAB,  KC_LCTL,
+  KC_LSFT,          KC_ENT
+)
+
+};
+
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+    [0] =   { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }
+};
+#endif
diff --git a/keyboards/kiserdesigns/bigbae/keymaps/vial/rules.mk b/keyboards/kiserdesigns/bigbae/keymaps/vial/rules.mk
new file mode 100644
index 0000000000..c6bf6798de
--- /dev/null
+++ b/keyboards/kiserdesigns/bigbae/keymaps/vial/rules.mk
@@ -0,0 +1,3 @@
+VIA_ENABLE = yes
+VIAL_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/kiserdesigns/bigbae/keymaps/vial/vial.json b/keyboards/kiserdesigns/bigbae/keymaps/vial/vial.json
new file mode 100644
index 0000000000..3d5d68a4e0
--- /dev/null
+++ b/keyboards/kiserdesigns/bigbae/keymaps/vial/vial.json
@@ -0,0 +1,136 @@
+{
+  "matrix": {
+    "rows": 3,
+    "cols": 3
+  },
+    "layouts": {
+      "labels": [
+        "Add Encoder",
+        ["Top Half", "2u Backspace", "Split Backspace", "Remove (BigANSI)"],
+        ["Bottom Half", "BAE", "ISO" ,"ANSI"]
+      ],
+      "keymap":   [
+        [
+          {
+            "x": 0.25,
+            "d": true
+          },
+          "0,0\n\n\n0,0\n\n\n\n\n\ne",
+          {
+            "x": 0.25
+          },
+          "1,0\n\n\n1,0",
+          {
+            "w": 2
+          },
+          "1,2\n\n\n1,0",
+          {
+            "x": 0.25
+          },
+          "1,0\n\n\n1,1",
+          "1,1\n\n\n1,1",
+          "1,2\n\n\n1,1",
+          {
+            "x": 0.25,
+            "d": true
+          },
+          "1,0\n\n\n1,2"
+        ],
+        [
+          {
+            "x": 0.25,
+            "d": true
+          },
+          "0,1\n\n\n0,0\n\n\n\n\n\ne",
+          {
+            "x": 0.5,
+            "w": 1.25,
+            "h": 2,
+            "w2": 1.5,
+            "h2": 1,
+            "x2": -0.25
+          },
+          "0,1\n\n\n1,0",
+          {
+            "w": 1.5
+          },
+          "0,2\n\n\n1,0",
+          {
+            "x": 0.5,
+            "w": 1.25,
+            "h": 2,
+            "w2": 1.5,
+            "h2": 1,
+            "x2": -0.25
+          },
+          "0,1\n\n\n1,1",
+          {
+            "w": 1.5
+          },
+          "0,2\n\n\n1,1"
+        ],
+        [
+          {
+            "w": 1.75
+          },
+          "0,0",
+          {
+            "x": 1.25,
+            "w": 1.5,
+            "h": 2,
+            "w2": 2.25,
+            "h2": 1,
+            "x2": -0.75,
+            "y2": 1
+          },
+          "2,2\n\n\n2,0",
+          {
+            "x": 3.75,
+            "w": 1.25
+          },
+          "0,1\n\n\n1,2"
+        ],
+        [
+          {
+            "w": 2.25
+          },
+          "2,0"
+        ],
+        [
+          {
+            "y": -0.75,
+            "x": 5
+          },
+          "0,0\n\n\n0,1\n\n\n\n\n\ne"
+        ],
+        [
+          {
+            "x": 1,
+            "w": 1.25,
+            "h": 2,
+            "w2": 1.5,
+            "h2": 1,
+            "x2": -0.25
+          },
+          "2,2\n\n\n2,1",
+          {
+            "x": 1,
+            "w": 1.5
+          },
+          "2,1\n\n\n2,2",
+          {
+            "x": 0.25
+          },
+          "0,1\n\n\n0,1\n\n\n\n\n\ne"
+        ],
+        [
+          "2,1\n\n\n2,1",
+          {
+            "x": 1.5,
+            "w": 2.25
+          },
+          "2,2\n\n\n2,2"
+        ]
+    ]
+    }
+  }
\ No newline at end of file
diff --git a/keyboards/kiserdesigns/bigbae/readme.md b/keyboards/kiserdesigns/bigbae/readme.md
new file mode 100644
index 0000000000..59d1433c4d
--- /dev/null
+++ b/keyboards/kiserdesigns/bigbae/readme.md
@@ -0,0 +1,23 @@
+# BigBAE
+
+![BigBAE](https://i.imgur.com/RhkLArW.jpeg)
+
+*A scaled-up Big Enter key macropad supporting ANSI, ISO, and BAE Enter*
+* Keyboard Maintainer: [NCKiser](https://github.com/NCKiser)
+* Hardware Supported: BigBAE and BigANSI, stm32f072
+* Hardware Availability: kiserdesigns.com
+
+Make example for this keyboard (after setting up your build environment):
+
+    make kiserdesigns/bigbae:default
+
+Flashing example for this keyboard:
+
+    make kiserdesigns/bigbae: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 Caps Lock key on the left side) and plug in the keyboard
+* **Physical reset button**: On the back of the PCB, Hold the BOOT1 button while plugging in, or tap RST1 while holding BOOT1
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/kiserdesigns/bigbae/rules.mk b/keyboards/kiserdesigns/bigbae/rules.mk
new file mode 100644
index 0000000000..c36cb32280
--- /dev/null
+++ b/keyboards/kiserdesigns/bigbae/rules.mk
@@ -0,0 +1,2 @@
+# Wildcard to allow APM32 MCU
+DFU_SUFFIX_ARGS = -p FFFF -v FFFF
\ No newline at end of file