summaryrefslogtreecommitdiff
path: root/keyboards/kingly_keys/soap
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/kingly_keys/soap')
-rw-r--r--keyboards/kingly_keys/soap/README.md16
-rw-r--r--keyboards/kingly_keys/soap/config.h54
-rw-r--r--keyboards/kingly_keys/soap/info.json13
-rw-r--r--keyboards/kingly_keys/soap/keymaps/default/keymap.c62
-rw-r--r--keyboards/kingly_keys/soap/rules.mk32
-rw-r--r--keyboards/kingly_keys/soap/soap.c1
-rw-r--r--keyboards/kingly_keys/soap/soap.h32
7 files changed, 210 insertions, 0 deletions
diff --git a/keyboards/kingly_keys/soap/README.md b/keyboards/kingly_keys/soap/README.md
new file mode 100644
index 0000000000..0e32244d2f
--- /dev/null
+++ b/keyboards/kingly_keys/soap/README.md
@@ -0,0 +1,16 @@
+SOAP
+===
+
+![SOAP](https://i.imgur.com/6h6O4QP.png)
+
+A Sanitary, "SOAP" Themed, Macro Pad by [Garret G.](https://github.com/TheRoyalSweatshirt) a.k.a. [/u/The_Royal](https://www.reddit.com/user/The_Royal)
+
+Keyboard Maintainer: [Garret G.](https://github.com/TheRoyalSweatshirt) a.k.a. [/u/The_Royal](https://www.reddit.com/user/The_Royal/) of Reddit.
+Hardware Supported: SOAP rev1.0, rev2.0 PCB
+Hardware Availability: [Kingly-Keys.xyz](https://kingly-keys.xyz/) - (Through GB)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make kingly_keys/soap: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/kingly_keys/soap/config.h b/keyboards/kingly_keys/soap/config.h
new file mode 100644
index 0000000000..2ffbaacc70
--- /dev/null
+++ b/keyboards/kingly_keys/soap/config.h
@@ -0,0 +1,54 @@
+/* Copyright 2019 Garret G. (TheRoyalSweatshirt)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.#pragma once
+ */
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x0003
+#define DEVICE_VER 0x0004
+#define MANUFACTURER Kingly-Keys
+#define PRODUCT SOAP
+#define DESCRIPTION A Sanitary "Soap" Themed Macropad with Rotary Encoder
+
+ /* key matrix size */
+#define MATRIX_ROWS 2
+#define MATRIX_COLS 4
+
+#define ENCODERS_PAD_A { D6 }
+#define ENCODERS_PAD_B { D7 }
+
+ /* key matrix pins */
+#define MATRIX_ROW_PINS { C7, C6 }
+#define MATRIX_COL_PINS { F4, F1, F0, D5 }
+#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 --- DIN Pin Routed to VIA on main PCB marked "RGB" */
+#define RGB_DI_PIN B6
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 3
diff --git a/keyboards/kingly_keys/soap/info.json b/keyboards/kingly_keys/soap/info.json
new file mode 100644
index 0000000000..257391eea2
--- /dev/null
+++ b/keyboards/kingly_keys/soap/info.json
@@ -0,0 +1,13 @@
+{
+ "keyboard_name": "soap",
+ "url": "https://github.com/TheRoyalSweatshirt/SOAP",
+ "maintainer": "[TheRoyalSweatshirt](https://github.com/TheRoyalSweatshirt)",
+ "width": 4,
+ "height": 2,
+ "layouts": {
+ "LAYOUT": {
+ "key_count": 8,
+ "layout": [{"label":"K00", "x":0, "y":0}, {"label":"K01", "x":1, "y":0}, {"label":"K02", "x":2, "y":0}, {"label":"K03", "x":4, "y":0}, {"label":"K10", "x":0, "y":1}, {"label":"K11", "x":1, "y":1}, {"label":"K12", "x":2, "y":1}, {"label":"K13", "x":4, "y":1}]
+ }
+ }
+}
diff --git a/keyboards/kingly_keys/soap/keymaps/default/keymap.c b/keyboards/kingly_keys/soap/keymaps/default/keymap.c
new file mode 100644
index 0000000000..03966e42be
--- /dev/null
+++ b/keyboards/kingly_keys/soap/keymaps/default/keymap.c
@@ -0,0 +1,62 @@
+/* Copyright 2019 Garret G. (TheRoyalSweatshirt)
+ *
+ * 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
+
+#define BASE 0
+#define FN 1
+#define RGB RGB_MOD
+#define XXX KC_NO
+#define KC_TR KC_TRANSPARENT
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ /* BASE
+ * ,----------------------------------------.
+ * | DEL | UP | ENTER | | RGB |
+ * |-------+-------+-------+-------+--------|
+ * | LEFT | DOWN | RIGHT | | FN |
+ * `----------------------------------------'
+ */
+ [BASE] = LAYOUT(
+ KC_DEL, KC_UP, KC_ENT, RGB,
+ KC_LEFT, KC_DOWN, KC_RIGHT, MO(1)
+ ),
+
+ /* FN
+ * ,----------------------------------------.
+ * | HU+ | Br+ | Sat+ | | |
+ * |-------+-------+-------+-------+--------|
+ * | HU- | Br- | Sat- | | |
+ * `----------------------------------------'
+ */
+ [FN] = LAYOUT(
+ RGB_HUI, RGB_VAI, RGB_SAI, KC_TR,
+ RGB_HUD, RGB_VAD, RGB_SAD, KC_TR
+ )
+};
+
+ /* Rotary Encoder Settings: */
+ /* - Current Value = Horizontal Scrolling */
+
+void encoder_update_user(uint8_t index, bool clockwise) {
+ if (index == 0) {
+ if (clockwise) {
+ tap_code(KC_WH_L);
+ } else {
+ tap_code(KC_WH_R);
+ }
+ }
+}
diff --git a/keyboards/kingly_keys/soap/rules.mk b/keyboards/kingly_keys/soap/rules.mk
new file mode 100644
index 0000000000..7e98ab6eb4
--- /dev/null
+++ b/keyboards/kingly_keys/soap/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 = yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = no # Commands for debug and configuration
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+NKRO_ENABLE = yes # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
+MIDI_ENABLE = no # MIDI controls
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+ENCODER_ENABLE = yes
+RGBLIGHT_ENABLE = yes
+LAYOUTS_HAS_RGB = yes
diff --git a/keyboards/kingly_keys/soap/soap.c b/keyboards/kingly_keys/soap/soap.c
new file mode 100644
index 0000000000..a467c54b74
--- /dev/null
+++ b/keyboards/kingly_keys/soap/soap.c
@@ -0,0 +1 @@
+#include "soap.h"
diff --git a/keyboards/kingly_keys/soap/soap.h b/keyboards/kingly_keys/soap/soap.h
new file mode 100644
index 0000000000..8d5eba3ad2
--- /dev/null
+++ b/keyboards/kingly_keys/soap/soap.h
@@ -0,0 +1,32 @@
+/* Copyright 2019 Garret G. (TheRoyalSweatshirt)
+ *
+ * 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/>.
+ *
+ * Note: Matrix is a little wacky with the rotary encoder click mapping being
+ * on the opposite side of the board. Remember to pay attention to
+ * the 13th column where the lone key mapped for rotary encoder click (K132).
+*/
+
+#pragma once
+
+#include "quantum.h"
+
+
+#define LAYOUT( \
+ K00, K01, K02, K03, \
+ K10, K11, K12, K13 \
+) { \
+ { K00, K01, K02, K03 }, \
+ { K10, K11, K12, K13 } \
+}