[Keyboard] Support for a Southpaw Keyboard KVT (#7892)
authorHybrid65 <47335616+Hybrid65@users.noreply.github.com>
Sat, 18 Jan 2020 03:56:13 +0000 (21:56 -0600)
committerDrashna Jaelre <drashna@live.com>
Sat, 18 Jan 2020 03:56:13 +0000 (19:56 -0800)
* Support for KVT

This branch adds support for the southpaw keyboard KVT

* Updated readme.md and keymap.c

* Update readme.md

* Update keyboards/kv/revT/readme.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update keyboards/kv/revT/readme.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update keyboards/kv/revT/readme.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update keyboards/kv/revT/readme.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update keyboards/kv/revT/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update keyboards/kv/revT/rules.mk

Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update keyboards/kv/revT/readme.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update keyboards/kv/revT/readme.md

Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Updated from suggestions from pull request

* Update readme.md

* Update rules.mk

* Update rules.mk

* Update rules.mk

* Update rules.mk

* Update rules.mk

* Update revT.c

* Update readme.md

* changing T to lowercase

* Change revT to revt

* edit

* Update keyboards/kv/revt/rules.mk

Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update readme.md

Co-authored-by: fauxpark <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
keyboards/kv/revt/config.h [new file with mode: 0644]
keyboards/kv/revt/keymaps/default/keymap.c [new file with mode: 0644]
keyboards/kv/revt/keymaps/default/readme.md [new file with mode: 0644]
keyboards/kv/revt/readme.md [new file with mode: 0644]
keyboards/kv/revt/revt.c [new file with mode: 0644]
keyboards/kv/revt/revt.h [new file with mode: 0644]
keyboards/kv/revt/rules.mk [new file with mode: 0644]

diff --git a/keyboards/kv/revt/config.h b/keyboards/kv/revt/config.h
new file mode 100644 (file)
index 0000000..8aa5a1d
--- /dev/null
@@ -0,0 +1,39 @@
+/* Copyright 2020 Hybrid65
+ *
+ * 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       0x6565
+#define PRODUCT_ID      0x6520
+#define DEVICE_VER      0x0001
+#define MANUFACTURER    Hybrid
+#define PRODUCT         KVT
+#define DESCRIPTION     SouthPaw Keyboard
+
+/* key matrix size */
+#define MATRIX_ROWS 6
+#define MATRIX_COLS 21
+#define MATRIX_ROW_PINS { A6, B13, B8, A0, A1, A2 }
+#define MATRIX_COL_PINS { B7, B6, B5, B4, B3, B2, B14, B1, B15, B0, B9, B10, B11, B12, A14, A13, A4, A5, A7, A8, A15 }
+#define UNUSED_PINS { }
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/kv/revt/keymaps/default/keymap.c b/keyboards/kv/revt/keymaps/default/keymap.c
new file mode 100644 (file)
index 0000000..c1f9c6b
--- /dev/null
@@ -0,0 +1,64 @@
+/* Copyright 2020 Hybrid65
+ *
+ * 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] = {
+/* Keymap (Base Layer) Default Layer
+   *.----------------------------------------------------------------------------------------------------------------.
+   *|                           |Esc|   | F1| F2| F3| F4| | F5| F6| F7| F8| | F9|F10|F12|F12|     |Pscr| Slck | Pause|
+   *| Nlck|  / |  * |  -  |     | ~ |  1|  2|  3|  4|  5|  6|  7|  8|  9|  0| - | = |Backsp |     | Inc| Home |  PgUp|
+   *|----------------------------------------------------------------------------------------------------------------|
+   *| NP7 | NP8| NP9|     |     |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P| [ | ] |  \  |     | Del|  End |  PgDw|
+   *|---------------|  +  |------------------------------------------------------------------------------------------|
+   *| NP4 | NP5| NP6|     |     |CAPS   |  A|  S|  D|  F|  G|  H|  J|  K|  L| ; | ' |Return |                        |
+   *|---------------|-----|------------------------------------------------------------------------------------------|
+   *| NP1 | NP2| NP3|     |     |Shift   |  Z|  X|  C|  V|  B|  N|  M| , | . | / |   Shift  |          |  Up  |      |
+   *|---------------|Enter|------------------------------------------------------------------------------------------|
+   *|    0     | Del|     |     |Ctrl|Win |Alt |        Space          |Alt | Win |FN |Ctrl |     |Left| Down | Right|
+   *`----------------------------------------------------------------------------------------------------------------'
+   */
+[0] = LAYOUT_default(
+                                        KC_ESC,           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_PSCR, KC_SLCK, KC_PAUS,    \
+  KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,   KC_GRV,  KC_1,    KC_2,   KC_3,   KC_4,   KC_5,   KC_6,   KC_7,   KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC,   KC_INS,  KC_HOME, KC_PGUP,    \
+  KC_KP_7, KC_KP_8, KC_KP_9, KC_PPLS,   KC_TAB,  KC_Q,    KC_W,   KC_E,   KC_R,   KC_T,   KC_Y,   KC_U,   KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSLS,   KC_DEL,  KC_END,  KC_PGDN,    \
+  KC_KP_4, KC_KP_5, KC_KP_6,            KC_CAPS, KC_A,    KC_S,   KC_D,   KC_F,   KC_G,   KC_H,   KC_J,   KC_K,    KC_L,    KC_SCLN, KC_QUOT,          KC_ENT,                                  \
+  KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT,   KC_LSFT, KC_Z,    KC_X,   KC_C,   KC_V,   KC_B,   KC_N,   KC_M,   KC_COMM, KC_DOT,  KC_SLSH,                   KC_RSFT,            KC_UP,               \
+  KC_KP_0,          KC_PDOT,            KC_LCTL, KC_LGUI, KC_LALT,                KC_SPC,                                   KC_RALT, KC_RGUI, MO(1),   KC_RCTL,   KC_LEFT, KC_DOWN, KC_RIGHT),  \
+
+/* Keymap Fn Layer
+  *.-----------------------------------------------------------------------------------------------------------------.
+  *|                           |   |   |F13|F14|F15|F16| |F17|F18|F19|F20| |F21|F22|F23|F24|     |     |      |      |
+  *|     |    |    |     |     |   |   |   |   |   |   |   |   |   |   |   |   |   |       |     |Pl/Pa|  Next|  Vol+|
+  *|-----------------------------------------------------------------------------------------------------------------|
+  *|     |    |    |     |     |     |MB1|MBU|MB2|MWU|   |   |   |   |   |   |   |   |     |     | Stop|  Prev|  Vol-|
+  *|---------------|     |-------------------------------------------------------------------------------------------|
+  *|     |    |    |     |     |       |MBL|MBD|MBR|MWD|   |   |   |Rst|   |   |   |       |                         |
+  *|---------------|-----|-------------------------------------------------------------------------------------------|
+  *|     |    |    |     |     |        |   |   |Calc|   |   |   |Mute|   |   |   |        |           |      |      |
+  *|---------------|     |-------------------------------------------------------------------------------------------|
+  *|          |    |     |     |    |    |    |                       |    |     |   |     |     |     |      |      |
+  *'-----------------------------------------------------------------------------------------------------------------'
+  */
+[1] = LAYOUT_default(
+                                      _______,             KC_F13,  KC_F14,     KC_F15,  KC_F16,  KC_F17,  KC_F18,  KC_F19,  KC_F20,  KC_F21,  KC_F22,  KC_F23,  KC_F24,    _______, _______, _______,   \
+_______, _______, _______, _______,   _______, _______,    _______, _______,    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,   KC_MPLY, KC_MNXT, KC_VOLU,   \
+_______, _______, _______, _______,   _______, KC_MS_BTN1, KC_MS_U, KC_MS_BTN2, KC_WH_U, _______, _______, _______, _______, _______, _______, _______, _______, _______,   KC_MSTP, KC_MPRV, KC_VOLD,   \
+_______, _______, _______,            _______, KC_MS_L,    KC_MS_D, KC_MS_R,    KC_WH_D, _______, _______, _______,   RESET, _______, _______, _______,          _______,                                \
+_______, _______, _______, _______,   _______, _______,    _______, KC_CALC,    _______, _______, _______, KC_MUTE, _______, _______, _______,                   _______,            _______,            \
+_______,          _______,            _______, _______,    _______,                      _______,                                     _______, _______, _______, _______,   _______, _______, _______),  \
+
+};
diff --git a/keyboards/kv/revt/keymaps/default/readme.md b/keyboards/kv/revt/keymaps/default/readme.md
new file mode 100644 (file)
index 0000000..63fb4e7
--- /dev/null
@@ -0,0 +1 @@
+# The Default keymap for KVT
diff --git a/keyboards/kv/revt/readme.md b/keyboards/kv/revt/readme.md
new file mode 100644 (file)
index 0000000..e2f463b
--- /dev/null
@@ -0,0 +1,18 @@
+# KVT
+
+![KVT default layout](https://i.imgur.com/nPwxzdU.jpg)
+
+A open source southpaw keyboard. The Default layer is a standard 104 ANSI keyboard just the numpad is on the left.
+There is a fn layer (its not in the layout image but in the keymap file) it adds media keys, f13-f24, and mouse keys.
+
+[More info on KVT github](https://github.com/Hybrid65/KVT)
+
+* Keyboard Maintainer: [Neil Feagan](https://github.com/Hybrid65)
+* Hardware Supported: KVT, Proton C
+* Hardware Availability: [List of vendors](https://qmk.fm/proton-c)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make kv/revt: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/kv/revt/revt.c b/keyboards/kv/revt/revt.c
new file mode 100644 (file)
index 0000000..443a814
--- /dev/null
@@ -0,0 +1,25 @@
+/* Copyright 2020 Hybrid65
+ *
+ * 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 "revt.h"
+
+void matrix_init_kb(void) {
+  // Turn status LED on
+  setPinOutput(C14);
+  writePinHigh(C14);
+
+  matrix_init_user();
+}
diff --git a/keyboards/kv/revt/revt.h b/keyboards/kv/revt/revt.h
new file mode 100644 (file)
index 0000000..ed98f4a
--- /dev/null
@@ -0,0 +1,36 @@
+/* Copyright 2020 Hybrid65
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT_default( \
+                        K04,      K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H,   K0I, K0J, K0K, \
+  K10, K11, K12, K13,   K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H,   K1I, K1J, K1K, \
+  K20, K21, K22, K23,   K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H,   K2I, K2J, K2K, \
+  K30, K31, K32,        K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F,      K3H,                  \
+  K40, K41, K42, K43,   K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E,           K4H,        K4J,      \
+  K50,      K52,        K54, K55, K56,           K59,                     K5E, K5F, K5G, K5H,   K5I, K5J, K5K  \
+) \
+{ \
+  { KC_NO, KC_NO, KC_NO, KC_NO,  K04, KC_NO, K06, K07,   K08,   K09, K0A,   K0B,   K0C,   K0D,   K0E, K0F,   K0G,   K0H,     K0I,   K0J,   K0K,   }, \
+  { K10, K11,   K12, K13,        K14, K15,   K16, K17,   K18,   K19, K1A,   K1B,   K1C,   K1D,   K1E, K1F,   K1G,   K1H,     K1I,   K1J,   K1K,   }, \
+  { K20, K21,   K22, K23,        K24, K25,   K26, K27,   K28,   K29, K2A,   K2B,   K2C,   K2D,   K2E, K2F,   K2G,   K2H,     K2I,   K2J,   K2K,   }, \
+  { K30, K31,   K32, KC_NO,      K34, K35,   K36, K37,   K38,   K39, K3A,   K3B,   K3C,   K3D,   K3E, K3F,   KC_NO, K3H,     KC_NO, KC_NO, KC_NO, }, \
+  { K40, K41,   K42, K43,        K44, K45,   K46, K47,   K48,   K49, K4A,   K4B,   K4C,   K4D,   K4E, KC_NO, KC_NO, K4H,     KC_NO, K4J,   KC_NO, }, \
+  { K50, KC_NO, K52, KC_NO,      K54, K55,   K56, KC_NO, KC_NO, K59, KC_NO, KC_NO, KC_NO, KC_NO, K5E, K5F,   K5G,   K5H,     K5I,   K5J,   K5K    }, \
+}
diff --git a/keyboards/kv/revt/rules.mk b/keyboards/kv/revt/rules.mk
new file mode 100644 (file)
index 0000000..3a09683
--- /dev/null
@@ -0,0 +1,22 @@
+# MCU name
+MCU = STM32F303
+
+# Build Options
+#   change yes to no to disable
+#
+BOOTMAGIC_ENABLE = full     # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes       # Mouse keys
+EXTRAKEY_ENABLE = yes       # Audio control and System control
+CONSOLE_ENABLE = yes        # Console for debug
+COMMAND_ENABLE = yes        # 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 = yes           # USB Nkey Rollover
+BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no        # 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