aboutsummaryrefslogtreecommitdiffstats
path: root/keyboards/qaz
diff options
context:
space:
mode:
authortominabox1 <tom.campie@gmail.com>2020-07-27 17:10:40 -0500
committerGitHub <noreply@github.com>2020-07-27 18:10:40 -0400
commit6104609afa666750be49ccfa8df8d3ad87fb4f32 (patch)
tree3118aa07e4c42a53593769ad87c77bcc0afb358a /keyboards/qaz
parent5cbac94d08257a6149c5717d7f25efab7af9c0fa (diff)
downloadfirmware-6104609afa666750be49ccfa8df8d3ad87fb4f32.tar.gz
firmware-6104609afa666750be49ccfa8df8d3ad87fb4f32.tar.bz2
firmware-6104609afa666750be49ccfa8df8d3ad87fb4f32.zip
QAZ Keyboard (#9714)
* Initial qaz commit * Enable combos * Improved default keymaps * Fixed configurator json * Via initial * Corrected VIA json * touch * Via fixes * Fixed via matrix * Formatting * Add lighting to qaz * Add rgb animations, add rgb to l2, fix error in via json, enable rgblight by default * Update QAZ readme * Remove VIA json, prep for PR * Correct default bootloader for pro-micro * Remove accidentally added submodules * Change names of layout macros * Move combo defs to keymap folders, fix layout names in info.json * Fixes transposition of comma and dot keys on default keymaps * Update keyboards/qaz/keymaps/default/config.h Co-authored-by: Joel Challis <git@zvecr.com> * Update keyboards/qaz/keymaps/default_big_space/config.h Co-authored-by: Joel Challis <git@zvecr.com> * Update keyboards/qaz/rules.mk Co-authored-by: Joel Challis <git@zvecr.com> * Update keyboards/qaz/readme.md Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/qaz/rules.mk Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Joel Challis <git@zvecr.com> Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Diffstat (limited to 'keyboards/qaz')
-rw-r--r--keyboards/qaz/config.h49
-rw-r--r--keyboards/qaz/info.json15
-rw-r--r--keyboards/qaz/keymaps/default/config.h6
-rw-r--r--keyboards/qaz/keymaps/default/keymap.c57
-rw-r--r--keyboards/qaz/keymaps/default/readme.md1
-rw-r--r--keyboards/qaz/keymaps/default/rules.mk1
-rw-r--r--keyboards/qaz/keymaps/default_big_space/config.h6
-rw-r--r--keyboards/qaz/keymaps/default_big_space/keymap.c57
-rw-r--r--keyboards/qaz/keymaps/default_big_space/readme.md1
-rw-r--r--keyboards/qaz/keymaps/default_big_space/rules.mk1
-rw-r--r--keyboards/qaz/keymaps/via/keymap.c29
-rw-r--r--keyboards/qaz/keymaps/via/rules.mk1
-rw-r--r--keyboards/qaz/qaz.c1
-rw-r--r--keyboards/qaz/qaz.h33
-rw-r--r--keyboards/qaz/readme.md15
-rw-r--r--keyboards/qaz/rules.mk22
16 files changed, 295 insertions, 0 deletions
diff --git a/keyboards/qaz/config.h b/keyboards/qaz/config.h
new file mode 100644
index 000000000..1dbaaa0fc
--- /dev/null
+++ b/keyboards/qaz/config.h
@@ -0,0 +1,49 @@
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x7431
+#define PRODUCT_ID 0x0001
+#define DEVICE_VER 0x0001
+#define MANUFACTURER whydobearsexplod
+#define PRODUCT qaz keyboard
+
+/* key matrix size */
+#define MATRIX_ROWS 6
+#define MATRIX_COLS 7
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { F4, D4, C6, E6, D1, D0 }
+#define MATRIX_COL_PINS { B4, D3, D2, F5, B5, F6, D7 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not 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
+
+#define RGB_DI_PIN F7
+
+#ifdef RGB_DI_PIN
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 21
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
+#endif
diff --git a/keyboards/qaz/info.json b/keyboards/qaz/info.json
new file mode 100644
index 000000000..c8993d57e
--- /dev/null
+++ b/keyboards/qaz/info.json
@@ -0,0 +1,15 @@
+{
+ "keyboard_name": "qaz",
+ "url": "",
+ "maintainer": "tominabox1",
+ "width": 10.25,
+ "height": 4,
+ "layouts": {
+ "LAYOUT_split_space": {
+ "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Y", "x":5, "y":0}, {"label":"U", "x":6, "y":0}, {"label":"I", "x":7, "y":0}, {"label":"O", "x":8, "y":0}, {"label":"P", "x":9, "y":0, "w":1.25}, {"label":"A", "x":0, "y":1, "w":1.25}, {"label":"S", "x":1.25, "y":1}, {"label":"D", "x":2.25, "y":1}, {"label":"F", "x":3.25, "y":1}, {"label":"G", "x":4.25, "y":1}, {"label":"H", "x":5.25, "y":1}, {"label":"J", "x":6.25, "y":1}, {"label":"K", "x":7.25, "y":1}, {"label":"L", "x":8.25, "y":1}, {"label":"Ent", "x":9.25, "y":1}, {"label":"Z", "x":0, "y":2, "w":1.75}, {"label":"X", "x":1.75, "y":2}, {"label":"C", "x":2.75, "y":2}, {"label":"V", "x":3.75, "y":2}, {"label":"B", "x":4.75, "y":2}, {"label":"N", "x":5.75, "y":2}, {"label":"M", "x":6.75, "y":2}, {"label":".", "x":7.75, "y":2}, {"label":"Shift","x":8.75, "y":2, "w":1.5},{"label":"Super", "x":0, "y":3}, {"label":"Meta", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"label":"", "x":3, "y":3, "w":2.25}, {"label":"", "x":5.25, "y":3, "w":2}, {"label":"AltGr", "x":7.25, "y":3},{"label":"Meta", "x":8.25, "y":3},{"label":"Super", "x":9.25, "y":3}]
+ },
+ "LAYOUT": {
+ "layout": [{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Y", "x":5, "y":0}, {"label":"U", "x":6, "y":0}, {"label":"I", "x":7, "y":0}, {"label":"O", "x":8, "y":0}, {"label":"P", "x":9, "y":0, "w":1.25}, {"label":"A", "x":0, "y":1, "w":1.25}, {"label":"S", "x":1.25, "y":1}, {"label":"D", "x":2.25, "y":1}, {"label":"F", "x":3.25, "y":1}, {"label":"G", "x":4.25, "y":1}, {"label":"H", "x":5.25, "y":1}, {"label":"J", "x":6.25, "y":1}, {"label":"K", "x":7.25, "y":1}, {"label":"L", "x":8.25, "y":1}, {"label":"Ent", "x":9.25, "y":1}, {"label":"Z", "x":0, "y":2, "w":1.75}, {"label":"X", "x":1.75, "y":2}, {"label":"C", "x":2.75, "y":2}, {"label":"V", "x":3.75, "y":2}, {"label":"B", "x":4.75, "y":2}, {"label":"N", "x":5.75, "y":2}, {"label":"M", "x":6.75, "y":2}, {"label":".", "x":7.75, "y":2}, {"label":"Shift","x":8.75, "y":2, "w":1.5},{"label":"Super", "x":0, "y":3}, {"label":"Meta", "x":1, "y":3}, {"label":"", "x":2, "y":3, "w":6.25}, {"label":"Meta", "x":8.25, "y":3},{"label":"Super", "x":9.25, "y":3}]
+ }
+ }
+}
diff --git a/keyboards/qaz/keymaps/default/config.h b/keyboards/qaz/keymaps/default/config.h
new file mode 100644
index 000000000..12482ff6f
--- /dev/null
+++ b/keyboards/qaz/keymaps/default/config.h
@@ -0,0 +1,6 @@
+#pragma once
+
+#ifdef COMBO_ENABLE
+# define COMBO_COUNT 5
+# define COMBO_TERM 200
+#endif
diff --git a/keyboards/qaz/keymaps/default/keymap.c b/keyboards/qaz/keymaps/default/keymap.c
new file mode 100644
index 000000000..cf721292a
--- /dev/null
+++ b/keyboards/qaz/keymaps/default/keymap.c
@@ -0,0 +1,57 @@
+#include QMK_KEYBOARD_H
+
+enum layers{
+ _BASE,
+ _NUM_SYM,
+ _NAV
+};
+enum combo_events {
+ COMBO_BSPC,
+ COMBO_NUMBAK,
+ COMBO_TAB,
+ COMBO_ESC,
+ COMBO_DEL,
+};
+
+#define KC_NUM_SPC LT(_NUM_SYM, KC_SPC)
+#define KC_GA LGUI_T(KC_A)
+#define KC_AS LALT_T(KC_S)
+#define KC_CD LCTL_T(KC_D)
+#define KC_SF LSFT_T(KC_F)
+#define KC_SJ RSFT_T(KC_J)
+#define KC_CK RCTL_T(KC_K)
+#define KC_AL RALT_T(KC_L)
+#define KC_GSCLN RGUI_T(KC_SCLN)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BASE] = LAYOUT_split_space(
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
+ KC_GA, KC_AS, KC_CD, KC_SF, KC_G, KC_H, KC_SJ, KC_CK, KC_AL, KC_ENT,
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT,
+ KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, LT(_NUM_SYM,KC_SPACE), KC_RALT, KC_RGUI, KC_RCTL
+ ),
+
+ [_NUM_SYM] = LAYOUT_split_space(
+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
+ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS,
+ KC_LCBR, KC_LBRC, KC_LPRN, KC_UNDS, KC_RPRN, KC_RBRC, KC_RCBR, KC_SCLN, KC_QUOTE,
+ RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+};
+
+#ifdef COMBO_ENABLE
+const uint16_t PROGMEM combo_bspc[] = {KC_O, KC_P, COMBO_END};
+const uint16_t PROGMEM combo_numbak[] = {KC_0, KC_9, COMBO_END};
+const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END};
+const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END};
+const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END};
+
+combo_t key_combos[COMBO_COUNT] = {
+ [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
+ [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC),
+ [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
+ [COMBO_ESC] = COMBO(combo_esc,KC_ESC),
+ [COMBO_DEL] = COMBO(combo_del,KC_DEL),
+
+};
+#endif
diff --git a/keyboards/qaz/keymaps/default/readme.md b/keyboards/qaz/keymaps/default/readme.md
new file mode 100644
index 000000000..fb85d36e2
--- /dev/null
+++ b/keyboards/qaz/keymaps/default/readme.md
@@ -0,0 +1 @@
+# Default QAZ Layout
diff --git a/keyboards/qaz/keymaps/default/rules.mk b/keyboards/qaz/keymaps/default/rules.mk
new file mode 100644
index 000000000..ab1e43818
--- /dev/null
+++ b/keyboards/qaz/keymaps/default/rules.mk
@@ -0,0 +1 @@
+COMBO_ENABLE = yes
diff --git a/keyboards/qaz/keymaps/default_big_space/config.h b/keyboards/qaz/keymaps/default_big_space/config.h
new file mode 100644
index 000000000..12482ff6f
--- /dev/null
+++ b/keyboards/qaz/keymaps/default_big_space/config.h
@@ -0,0 +1,6 @@
+#pragma once
+
+#ifdef COMBO_ENABLE
+# define COMBO_COUNT 5
+# define COMBO_TERM 200
+#endif
diff --git a/keyboards/qaz/keymaps/default_big_space/keymap.c b/keyboards/qaz/keymaps/default_big_space/keymap.c
new file mode 100644
index 000000000..13f105add
--- /dev/null
+++ b/keyboards/qaz/keymaps/default_big_space/keymap.c
@@ -0,0 +1,57 @@
+#include QMK_KEYBOARD_H
+
+enum layers{
+ _BASE,
+ _NUM_SYM,
+ _NAV
+};
+enum combo_events {
+ COMBO_BSPC,
+ COMBO_NUMBAK,
+ COMBO_TAB,
+ COMBO_ESC,
+ COMBO_DEL,
+};
+
+#define KC_NUM_SPC LT(_NUM_SYM, KC_SPC)
+#define KC_GA LGUI_T(KC_A)
+#define KC_AS LALT_T(KC_S)
+#define KC_CD LCTL_T(KC_D)
+#define KC_SF LSFT_T(KC_F)
+#define KC_SJ RSFT_T(KC_J)
+#define KC_CK RCTL_T(KC_K)
+#define KC_AL RALT_T(KC_L)
+#define KC_GSCLN RGUI_T(KC_SCLN)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BASE] = LAYOUT(
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
+ KC_GA, KC_AS, KC_CD, KC_SF, KC_G, KC_H, KC_SJ, KC_CK, KC_AL, KC_ENT,
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT,
+ KC_LCTL, KC_LALT, LT(_NUM_SYM,KC_SPACE), KC_RGUI, KC_RCTL
+ ),
+
+ [_NUM_SYM] = LAYOUT(
+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
+ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS,
+ KC_LCBR, KC_LBRC, KC_LPRN, KC_UNDS, KC_RPRN, KC_RBRC, KC_RCBR, KC_SCLN, KC_QUOTE,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+};
+
+#ifdef COMBO_ENABLE
+const uint16_t PROGMEM combo_bspc[] = {KC_O, KC_P, COMBO_END};
+const uint16_t PROGMEM combo_numbak[] = {KC_0, KC_9, COMBO_END};
+const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END};
+const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END};
+const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END};
+
+combo_t key_combos[COMBO_COUNT] = {
+ [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
+ [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC),
+ [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
+ [COMBO_ESC] = COMBO(combo_esc,KC_ESC),
+ [COMBO_DEL] = COMBO(combo_del,KC_DEL),
+
+};
+#endif
diff --git a/keyboards/qaz/keymaps/default_big_space/readme.md b/keyboards/qaz/keymaps/default_big_space/readme.md
new file mode 100644
index 000000000..f1fc30c21
--- /dev/null
+++ b/keyboards/qaz/keymaps/default_big_space/readme.md
@@ -0,0 +1 @@
+# Default QAZ Layout full size spacebar
diff --git a/keyboards/qaz/keymaps/default_big_space/rules.mk b/keyboards/qaz/keymaps/default_big_space/rules.mk
new file mode 100644
index 000000000..ab1e43818
--- /dev/null
+++ b/keyboards/qaz/keymaps/default_big_space/rules.mk
@@ -0,0 +1 @@
+COMBO_ENABLE = yes
diff --git a/keyboards/qaz/keymaps/via/keymap.c b/keyboards/qaz/keymaps/via/keymap.c
new file mode 100644
index 000000000..92556c330
--- /dev/null
+++ b/keyboards/qaz/keymaps/via/keymap.c
@@ -0,0 +1,29 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_split_space(
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
+ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT,
+ KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, KC_SPACE, KC_RALT, KC_RGUI, KC_RCTL
+ ),
+
+ [1] = LAYOUT_split_space(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [2] = LAYOUT_split_space(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [3] = LAYOUT_split_space(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+};
diff --git a/keyboards/qaz/keymaps/via/rules.mk b/keyboards/qaz/keymaps/via/rules.mk
new file mode 100644
index 000000000..74d66eb22
--- /dev/null
+++ b/keyboards/qaz/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/qaz/qaz.c b/keyboards/qaz/qaz.c
new file mode 100644
index 000000000..a9e72fa61
--- /dev/null
+++ b/keyboards/qaz/qaz.c
@@ -0,0 +1 @@
+#include "qaz.h"
diff --git a/keyboards/qaz/qaz.h b/keyboards/qaz/qaz.h
new file mode 100644
index 000000000..aba68d3d2
--- /dev/null
+++ b/keyboards/qaz/qaz.h
@@ -0,0 +1,33 @@
+#pragma once
+
+#include "quantum.h"
+
+#define XXX KC_NO
+
+#define LAYOUT_split_space( \
+ K00, K01, K02, K03, K04, K05, K06, K40, K41, K42, \
+ K10, K11, K12, K13, K14, K15, K16, K50, K51, K52, \
+ K20, K21, K22, K23, K24, K25, K26, K43, K53, \
+ K30, K31, K32, K33, K34, K35, K36, K44 \
+) { \
+{ K00, K01, K02, K03, K04, K05, K06 }, \
+{ K10, K11, K12, K13, K14, K15, K16 }, \
+{ K20, K21, K22, K23, K24, K25, K26 }, \
+{ K30, K31, K32, K33, K34, K35, K36 }, \
+{ K40, K41, K42, K43, K44, XXX, XXX }, \
+{ K50, K51, K52, K53, XXX, XXX, XXX } \
+}
+
+#define LAYOUT( \
+ K00, K01, K02, K03, K04, K05, K06, K40, K41, K42, \
+ K10, K11, K12, K13, K14, K15, K16, K50, K51, K52, \
+ K20, K21, K22, K23, K24, K25, K26, K43, K53, \
+ K30, K31, K34, K36, K44 \
+) { \
+{ K00, K01, K02, K03, K04, K05, K06 }, \
+{ K10, K11, K12, K13, K14, K15, K16 }, \
+{ K20, K21, K22, K23, K24, K25, K26 }, \
+{ K30, K31, XXX, XXX, K34, XXX, K36 }, \
+{ K40, K41, K42, K43, K44, XXX, XXX }, \
+{ K50, K51, K52, K53, XXX, XXX, XXX } \
+}
diff --git a/keyboards/qaz/readme.md b/keyboards/qaz/readme.md
new file mode 100644
index 000000000..2f1e7fcc9
--- /dev/null
+++ b/keyboards/qaz/readme.md
@@ -0,0 +1,15 @@
+# QAZ
+
+![QAZ](https://i.imgur.com/kmxDneol.png)
+
+QAZ is a careful exercise in minimalism, leveraging advanced QMK magic like combos, tapdances and mod layers to unlock complete functionality while remaining oddly familiar.
+Throw it in your fanny pack and hop on your fixed gear and away you go. QAZ is cheap, hip, and effective with all the keyboardy features you expect, including the ability to type numbers- should you choose to add them to your layout.
+
+* Keyboard Maintainer: [TJ Campie](https://github.com/tominabox1)
+* Hardware Availability: 40s Discord Mini Group Buy
+
+Make example for this keyboard (after setting up your build environment):
+
+ qmk compile -kb qaz -km 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/qaz/rules.mk b/keyboards/qaz/rules.mk
new file mode 100644
index 000000000..760e96e1c
--- /dev/null
+++ b/keyboards/qaz/rules.mk
@@ -0,0 +1,22 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = caterina
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # 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 = yes # Enable keyboard RGB underglow
+BLUETOOTH_ENABLE = no # Enable Bluetooth
+AUDIO_ENABLE = no # Audio output