]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Added 4by3 keyboard (#6547)
authorElias <eliassjogreen1@gmail.com>
Fri, 23 Aug 2019 21:18:37 +0000 (23:18 +0200)
committernoroadsleft <18669334+noroadsleft@users.noreply.github.com>
Fri, 23 Aug 2019 21:18:37 +0000 (14:18 -0700)
* Added 4by3 keyboard

* Added DEVICE_VER and DESCRIPTION

* Removed F_CPU, F_USB, ARCH, and OPT_DEFS

* Add 3 new LAYOUT macros for orientations and fixes

* Apply suggestions from code review

Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Added comments to 4by3 and changed info.json

* Update keyboards/4by3/4by3.h

Co-Authored-By: fauxpark <fauxpark@gmail.com>
13 files changed:
keyboards/4by3/4by3.c [new file with mode: 0644]
keyboards/4by3/4by3.h [new file with mode: 0644]
keyboards/4by3/config.h [new file with mode: 0644]
keyboards/4by3/info.json [new file with mode: 0644]
keyboards/4by3/keymaps/arrowpad/keymap.c [new file with mode: 0644]
keyboards/4by3/keymaps/default/keymap.c [new file with mode: 0644]
keyboards/4by3/keymaps/default/readme.md [new file with mode: 0644]
keyboards/4by3/keymaps/funcpad_horizontal/keymap.c [new file with mode: 0644]
keyboards/4by3/keymaps/funcpad_vertical/keymap.c [new file with mode: 0644]
keyboards/4by3/keymaps/numpad_horizontal/keymap.c [new file with mode: 0644]
keyboards/4by3/keymaps/numpad_vertical/keymap.c [new file with mode: 0644]
keyboards/4by3/readme.md [new file with mode: 0644]
keyboards/4by3/rules.mk [new file with mode: 0644]

diff --git a/keyboards/4by3/4by3.c b/keyboards/4by3/4by3.c
new file mode 100644 (file)
index 0000000..3ae2726
--- /dev/null
@@ -0,0 +1 @@
+#include "4by3.h"
\ No newline at end of file
diff --git a/keyboards/4by3/4by3.h b/keyboards/4by3/4by3.h
new file mode 100644 (file)
index 0000000..b416281
--- /dev/null
@@ -0,0 +1,70 @@
+#pragma once
+
+#include "quantum.h"
+
+/* LAYOUT_horizontal
+ * ┌───┐
+ * │USB│
+ * ├───┼───┬───┬───┐
+ * │K00│K01│K02│K03│
+ * ├───┼───┼───┼───┤
+ * │K10│K11│K12│K13│
+ * ├───┼───┼───┼───┤
+ * │K20│K21│K22│K23│
+ * └───┴───┴───┴───┘
+ */
+#define LAYOUT_horizontal( \
+       K00, K01, K02, K03, \
+       K10, K11, K12, K13, \
+       K20, K21, K22, K23  \
+) { \
+       { K00, K01, K02, K03 }, \
+       { K10, K11, K12, K13 }, \
+       { K20, K21, K22, K23 }  \
+}
+
+/* LAYOUT_vertical_right
+ * ┌───┬───┬───┬───┐
+ * │K00│K01│K03│USB│
+ * ├───┼───┼───┬───┘
+ * │K04│K05│K06│
+ * ├───┼───┼───┤
+ * │K07│K08│K09│
+ * ├───┼───┼───┤
+ * │K10│K11│K12│
+ * └───┴───┴───┘
+ */
+#define LAYOUT_vertical_right( \
+       K20, K10, K00, \
+    K21, K11, K01, \
+    K22, K12, K02, \
+    K23, K13, K03  \
+) { \
+       { K00, K01, K02, K03 }, \
+       { K10, K11, K12, K13 }, \
+       { K20, K21, K22, K23 }  \
+}
+
+/* LAYOUT_vertical_left
+ *     ┌───┬───┬───┐
+ *     │K00│K01│K03│
+ *     ├───┼───┼───┤
+ *     │K04│K05│K06│
+ *     ├───┼───┼───┤
+ *     │K07│K08│K09│
+ * ┌───┼───┼───┼───┤
+ * │USB│K10│K11│K12│
+ * └───┴───┴───┴───┘
+ */
+#define LAYOUT_vertical_left( \
+       K03, K13, K23, \
+    K02, K12, K22, \
+    K01, K11, K21, \
+    K00, K10, K20  \
+) { \
+       { K00, K01, K02, K03 }, \
+       { K10, K11, K12, K13 }, \
+       { K20, K21, K22, K23 }  \
+}
+
+#define LAYOUT LAYOUT_horizontal
diff --git a/keyboards/4by3/config.h b/keyboards/4by3/config.h
new file mode 100644 (file)
index 0000000..2095ee4
--- /dev/null
@@ -0,0 +1,26 @@
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID       0xEEEE
+#define PRODUCT_ID      0x2019
+#define DEVICE_VER             0x0001
+#define MANUFACTURER    Elias Sjögreen
+#define PRODUCT         4by3
+#define DESCRIPTION     A small 12 key keypad
+
+/* key matrix size */
+#define MATRIX_ROWS 3
+#define MATRIX_COLS 4
+
+/* key matrix pins */
+#define MATRIX_ROW_PINS { D1, D0, D4 }
+#define MATRIX_COL_PINS { C6, D7, E6, B4 }
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
diff --git a/keyboards/4by3/info.json b/keyboards/4by3/info.json
new file mode 100644 (file)
index 0000000..9cc07a9
--- /dev/null
@@ -0,0 +1,41 @@
+{
+    "keyboard_name": "4by3",
+    "url": "https://github.com/eliassjogreen/4by3",
+    "maintainer": "eliassjogreen",
+    "width": 4,
+    "height": 3,
+    "layouts": {
+        "LAYOUT_horizontal": {
+            "key_count": 12,
+            "width": 4,
+            "height": 3,
+            "layout": [
+                { "x": 0, "y": 0 }, { "x": 1, "y": 0 }, { "x": 2, "y": 0 }, { "x": 3, "y": 0 },
+                { "x": 0, "y": 1 }, { "x": 1, "y": 1 }, { "x": 2, "y": 1 }, { "x": 3, "y": 1 },
+                { "x": 0, "y": 2 }, { "x": 1, "y": 2 }, { "x": 2, "y": 2 }, { "x": 3, "y": 2 }
+            ]
+        },
+        "LAYOUT_vertical_right": {
+            "key_count": 12,
+            "width": 3,
+            "height": 4,
+            "layout": [
+                { "x": 0, "y": 0 }, { "x": 1, "y": 0 }, { "x": 2, "y": 0 },
+                { "x": 0, "y": 1 }, { "x": 1, "y": 1 }, { "x": 2, "y": 1 },
+                { "x": 0, "y": 2 }, { "x": 1, "y": 2 }, { "x": 2, "y": 2 },
+                { "x": 0, "y": 3 }, { "x": 1, "y": 3 }, { "x": 2, "y": 3 }
+            ]
+        },
+        "LAYOUT_vertical_left": {
+            "key_count": 12,
+            "width": 3,
+            "height": 4,
+            "layout": [
+                { "x": 0, "y": 0 }, { "x": 1, "y": 0 }, { "x": 2, "y": 0 },
+                { "x": 0, "y": 1 }, { "x": 1, "y": 1 }, { "x": 2, "y": 1 },
+                { "x": 0, "y": 2 }, { "x": 1, "y": 2 }, { "x": 2, "y": 2 },
+                { "x": 0, "y": 3 }, { "x": 1, "y": 3 }, { "x": 2, "y": 3 }
+            ]
+        }
+    }
+}
diff --git a/keyboards/4by3/keymaps/arrowpad/keymap.c b/keyboards/4by3/keymaps/arrowpad/keymap.c
new file mode 100644 (file)
index 0000000..df803a3
--- /dev/null
@@ -0,0 +1,12 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    /* Change 'LAYOUT_vertical_right' to 'LAYOUT_vertical_left'
+       to change the side where the pro micro usb port is. */
+    [0] = LAYOUT_vertical_right(
+               KC_INS  , KC_HOME , KC_PGUP ,
+        KC_DEL  , KC_END  , KC_PGDN ,
+        KC_PSCR , KC_UP   , KC_PAUS ,
+        KC_LEFT , KC_DOWN , KC_RGHT
+    )
+};
diff --git a/keyboards/4by3/keymaps/default/keymap.c b/keyboards/4by3/keymaps/default/keymap.c
new file mode 100644 (file)
index 0000000..f348dc8
--- /dev/null
@@ -0,0 +1,9 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+       [0] = LAYOUT_horizontal(
+               KC_VOLU , _______ , _______ , _______ ,
+        KC_MUTE , KC_MPRV , KC_MPLY , KC_MNXT ,
+        KC_VOLD , _______ , _______ , _______
+    )
+};
diff --git a/keyboards/4by3/keymaps/default/readme.md b/keyboards/4by3/keymaps/default/readme.md
new file mode 100644 (file)
index 0000000..281dfd5
--- /dev/null
@@ -0,0 +1,3 @@
+# The default 4by3 keymap
+
+![The default 4by3 keymap](https://i.imgur.com/E4OlQAs.png)
diff --git a/keyboards/4by3/keymaps/funcpad_horizontal/keymap.c b/keyboards/4by3/keymaps/funcpad_horizontal/keymap.c
new file mode 100644 (file)
index 0000000..287d125
--- /dev/null
@@ -0,0 +1,9 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+       [0] = LAYOUT_horizontal(
+               KC_F1   , KC_F2   , KC_F3   , KC_F4   ,
+               KC_F5   , KC_F6   , KC_F7   , KC_F8   ,
+               KC_F9   , KC_F10  , KC_F11  , KC_F12
+    )
+};
diff --git a/keyboards/4by3/keymaps/funcpad_vertical/keymap.c b/keyboards/4by3/keymaps/funcpad_vertical/keymap.c
new file mode 100644 (file)
index 0000000..c345f28
--- /dev/null
@@ -0,0 +1,12 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    /* Change 'LAYOUT_vertical_right' to 'LAYOUT_vertical_left'
+       to change the side where the pro micro usb port is. */
+       [0] = LAYOUT_vertical_right(
+               KC_F1   , KC_F2   , KC_F3   ,
+        KC_F4   , KC_F5   , KC_F6   ,
+        KC_F7   , KC_F8   , KC_F9   ,
+        KC_F10  , KC_F11  , KC_F12
+    )
+};
diff --git a/keyboards/4by3/keymaps/numpad_horizontal/keymap.c b/keyboards/4by3/keymaps/numpad_horizontal/keymap.c
new file mode 100644 (file)
index 0000000..c1195b0
--- /dev/null
@@ -0,0 +1,9 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+       [0] = LAYOUT_horizontal(
+               KC_P1   , KC_P2   , KC_P3   , KC_P4   ,
+               KC_P5   , KC_P6   , KC_P7   , KC_P8   ,
+               KC_P9   , KC_P0   , KC_BSPC , KC_ENT
+    ),
+};
diff --git a/keyboards/4by3/keymaps/numpad_vertical/keymap.c b/keyboards/4by3/keymaps/numpad_vertical/keymap.c
new file mode 100644 (file)
index 0000000..7705ea9
--- /dev/null
@@ -0,0 +1,12 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    /* Change 'LAYOUT_vertical_right' to 'LAYOUT_vertical_left'
+       to change the side where the pro micro usb port is. */
+       [0] = LAYOUT_vertical_right(
+               KC_P1   , KC_P2   , KC_P3   ,
+        KC_P4   , KC_P5   , KC_P6   ,
+        KC_P7   , KC_P8   , KC_P9   ,
+        KC_BSPC , KC_P0   , KC_ENT
+    ),
+};
diff --git a/keyboards/4by3/readme.md b/keyboards/4by3/readme.md
new file mode 100644 (file)
index 0000000..0197c4f
--- /dev/null
@@ -0,0 +1,15 @@
+# 4by3
+
+![4by3](https://i.imgur.com/Ykb7evL.jpg)
+
+A 12 key mechanical keypad.
+
+Keyboard Maintainer: [eliassjogreen](https://github.com/eliassjogreen)  
+Hardware Supported: 4by3  
+Hardware Availability: [eliassjogreen/4by3](https://github.com/eliassjogreen/4by3)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make 4by3: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/4by3/rules.mk b/keyboards/4by3/rules.mk
new file mode 100644 (file)
index 0000000..7d22998
--- /dev/null
@@ -0,0 +1,8 @@
+MCU                            = atmega32u4
+BOOTLOADER                     = caterina
+
+EXTRAKEY_ENABLE        = yes
+NKRO_ENABLE            = yes
+CONSOLE_ENABLE         = yes
+COMMAND_ENABLE         = yes
+