diff --git a/keyboards/quarkeys/z40/config.h b/keyboards/quarkeys/z40/config.h
new file mode 100644
index 0000000000..1ca7a35849
--- /dev/null
+++ b/keyboards/quarkeys/z40/config.h
@@ -0,0 +1,74 @@
+/* 
+/ Copyright 2022 quarkeys
+/ 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 DIODE_DIRECTION COL2ROW
+
+#define MATRIX_ROW_PINS { E6, B3, C7, C6 }
+#define MATRIX_COL_PINS { F4, F5, F6, F7, B6, B5, B4, D7, D6, D0, B1, B0 }
+#define RGB_DI_PIN F1
+#ifdef RGB_MATRIX_ENABLE
+#define RGB_MATRIX_LED_COUNT 47
+#define RGB_MATRIX_KEYPRESSES                       // Reacts to Keypresses
+#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
+#define RGB_DISABLE_WHEN_USB_SUSPENDED              // Turn off effects when suspended
+#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 130           // Limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
+#define RGB_MATRIX_SAT_STEP 8
+#define RGB_MATRIX_VAL_STEP 8
+#define RGB_MATRIX_SPD_STEP 10
+
+// RGB_MATRIX effects
+#define ENABLE_RGB_MATRIX_ALPHAS_MODS 	            //Enables RGB_MATRIX_ALPHAS_MODS
+#define ENABLE_RGB_MATRIX_BREATHING 	            //Enables RGB_MATRIX_BREATHING
+#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN 	        //Enables RGB_MATRIX_CYCLE_UP_DOWN
+#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON 	//Enables RGB_MATRIX_RAINBOW_MOVING_CHEVRON
+#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN 	            //Enables RGB_MATRIX_CYCLE_OUT_IN
+#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL 	    //Enables RGB_MATRIX_CYCLE_OUT_IN_DUAL
+#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL 	        //Enables RGB_MATRIX_CYCLE_PINWHEEL
+#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL 	            //Enables RGB_MATRIX_CYCLE_SPIRAL
+#define ENABLE_RGB_MATRIX_DUAL_BEACON 	            //Enables RGB_MATRIX_DUAL_BEACON
+#define ENABLE_RGB_MATRIX_RAINBOW_BEACON 	        //Enables RGB_MATRIX_RAINBOW_BEACON
+#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS 	    //Enables RGB_MATRIX_RAINBOW_PINWHEELS
+
+// RGB_MATRIX reactive effects
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE            // Static single hue, pulses keys hit to shifted hue then fades to current hue
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE  // Hue & value pulse near multiple key hits then fades value out
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Hue & value pulse the same column and row of multiple key hits then fades value out
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multiple key hits then fades value out
+#define ENABLE_RGB_MATRIX_MULTISPLASH               // Full gradient & value pulse away from multiple key hits then fades value out
+#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH         // Hue & value pulse away from multiple key hits then fades value out
+#endif
+
+#ifdef RGBLIGHT_ENABLE
+#define RGBLED_NUM 47
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
+
+#define RGBLIGHT_EFFECT_BREATHING
+#define RGBLIGHT_EFFECT_RAINBOW_MOOD
+#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+#define RGBLIGHT_EFFECT_SNAKE
+#define RGBLIGHT_EFFECT_KNIGHT
+#define RGBLIGHT_EFFECT_CHRISTMAS
+#define RGBLIGHT_EFFECT_STATIC_GRADIENT
+#define RGBLIGHT_EFFECT_ALTERNATING
+#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
+
+#define RGBLIGHT_LAYERS
+#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
+#define RGBLIGHT_LIMIT_VAL 130
+#define RGBLIGHT_SLEEP
+#endif
\ No newline at end of file
diff --git a/keyboards/quarkeys/z40/info.json b/keyboards/quarkeys/z40/info.json
new file mode 100644
index 0000000000..57159669a4
--- /dev/null
+++ b/keyboards/quarkeys/z40/info.json
@@ -0,0 +1,69 @@
+{
+    "keyboard_name": "Z40 Ortho", 
+      "manufacturer": "Quarkeys Stuidio",
+      "url": "www.quarkeys.com", 
+      "maintainer": "TommyZ", 
+      "usb": {
+          "vid": "0x8490",
+          "pid": "0x2801",
+          "device_version": "0.0.1"
+      },
+    "processor": "atmega32u4",
+    "bootloader": "atmel-dfu",
+    "layouts": {
+        "LAYOUT": {
+            "layout": [
+              {"x":0, "y":0}, 
+              {"x":1, "y":0}, 
+              {"x":2, "y":0}, 
+              {"x":3, "y":0}, 
+              {"x":4, "y":0}, 
+              {"x":5, "y":0}, 
+              {"x":6, "y":0}, 
+              {"x":7, "y":0}, 
+              {"x":8, "y":0}, 
+              {"x":9, "y":0}, 
+              {"x":10, "y":0}, 
+              {"x":11, "y":0}, 
+              
+              {"x":0, "y":1}, 
+              {"x":1, "y":1}, 
+              {"x":2, "y":1}, 
+              {"x":3, "y":1}, 
+              {"x":4, "y":1}, 
+              {"x":5, "y":1}, 
+              {"x":6, "y":1}, 
+              {"x":7, "y":1}, 
+              {"x":8, "y":1}, 
+              {"x":9, "y":1}, 
+              {"x":10, "y":1}, 
+              {"x":11, "y":1}, 
+              
+              {"x":0, "y":2}, 
+              {"x":1, "y":2}, 
+              {"x":2, "y":2}, 
+              {"x":3, "y":2}, 
+              {"x":4, "y":2}, 
+              {"x":5, "y":2}, 
+              {"x":6, "y":2}, 
+              {"x":7, "y":2}, 
+              {"x":8, "y":2}, 
+              {"x":9, "y":2}, 
+              {"x":10, "y":2}, 
+              {"x":11, "y":2}, 
+              
+              {"x":0, "y":3}, 
+              {"x":1, "y":3}, 
+              {"x":2, "y":3},
+              {"x":3, "y":3}, 
+              {"x":4, "y":3}, 
+              {"x":5, "y":3, "w":2}, 
+              {"x":7, "y":3}, 
+              {"x":8, "y":3}, 
+              {"x":9, "y":3}, 
+              {"x":10, "y":3}, 
+              {"x":11, "y":3}
+            ]
+        }
+    }
+  }
\ No newline at end of file
diff --git a/keyboards/quarkeys/z40/keymaps/default/keymap.c b/keyboards/quarkeys/z40/keymaps/default/keymap.c
new file mode 100644
index 0000000000..e54316ec29
--- /dev/null
+++ b/keyboards/quarkeys/z40/keymaps/default/keymap.c
@@ -0,0 +1,102 @@
+/* 
+/ Copyright 2022 quarkeys
+/ 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]
+     * ,-------------------------------------------------------------------------------------.
+     * | Esc   |   Q  |   W  |   E  |   R  |   T  |   Y  |   U  |   I  |   O  |   P  |  BS   |
+     * |------------+------+------+------+------+-------------+------+------+------+------+--|
+     * | Tab   |   A  |   S  |   D  |   F  |   G  |   H  |   J  |   K  |   L  |   ;  |  "    |
+     * |------------+------+------+------+------+------|------+------+------+------+------+--|
+     * | SHIFT |   Z  |   X  |   C  |   V  |   B  |   N  |   M  |   ,  |   .  |   /  | Shift |
+     * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+--|
+     * | Ctrl  | Caps |  ALT |  OS  | Ly1  |    SPACE    | Ly2  |  M1  |  M2  |  M3  | Enter |
+     * `-------------------------------------------------------------------------------------'
+     */
+    [0] = LAYOUT(
+        KC_ESC,	    KC_Q,       KC_W,       KC_E,       KC_R,       KC_T,       KC_Y,       KC_U,		KC_I,   	KC_O,   	KC_P,    	KC_BSPC, 
+		KC_TAB,     KC_A,       KC_S,       KC_D,       KC_F,       KC_G,       KC_H,       KC_J,		KC_K,   	KC_L,   	KC_SCLN, 	KC_QUOT, 
+		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_LCTL,    KC_CAPS,    KC_LALT,    KC_LGUI,    MO(1),          KC_SPC,             MO(2),		MO(3),   	_______,   	_______,    KC_ENT
+    ),
+
+    /* [1]
+     * ,-------------------------------------------------------------------------------------.
+     * | Reset | PgUp | Home |  Up  |  End |  Del |   \  |  7   |  8   |   9  | RGBtg |  BS  |
+     * |-------+------+------+------+------+------+------+------+------+------+-------+------|
+     * |       | PgDn | Left | Down | Rght |   +  |   -  |  4   |  5   |   6  | RGBmod|      |
+     * |-------+------+------+------+------+------+------+------+------+------+-------+------|
+     * |       | Vol- | Vol+ | Play | Mute |   *  |   /  |  1   |  2   |   3  |   /   |      |
+     * |-------+------+------+------+------+------+------+------+------+------+-------+------|
+     * |       |      |      |      |      |      0      |      |      |   .  |       |  =   |
+     * `-------+------+------+------+------+-------------+------+------+------+-------+------'
+     */
+     
+    [1] = LAYOUT(
+        QK_BOOT,	KC_PGUP,	KC_HOME,	KC_UP,		KC_END,		KC_DEL,		KC_BSLS,	KC_7,		KC_8,		KC_9,		RGB_TOG,	_______, 
+		_______, 	KC_PGDN, 	KC_LEFT, 	KC_DOWN, 	KC_RGHT, 	KC_PLUS, 	KC_MINS, 	KC_4, 		KC_5, 		KC_6, 		RGB_MOD, 	_______, 
+		_______, 	KC_VOLD, 	KC_VOLU, 	_______, 	_______, 	KC_ASTR, 	KC_SLSH, 	KC_1, 		KC_2, 		KC_3, 		RGB_HUI, 	_______,
+		RGB_SAI, 	RGB_SAD, 	RGB_VAI, 	RGB_VAD, 	_______, 			KC_0, 			_______, 	_______, 	KC_DOT, 	RGB_HUD, 	KC_EQL
+	),
+
+    /* [2]
+     * ,-------------------------------------------------------------------------------------.
+     * |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |  F7  |  F8  |  F9  |  F10 |  F11  |  F12  |
+     * |------+------+------+------+------+------+------+------+------+------+----+--+-------|
+     * |      |  &   |  |   |  (   |  )   |      |      |  {   |  }   |  [   |  ]    |       |
+     * |------+------+------+------+------+------+------+------+------+------+-------+-------|
+     * |      |  !   |  @   |  #   |  ^   |      |      |  ~   |  <   |  >   |  ?    |       |
+     * |------+------+------+------+------+------+------+------+------+------+-------+-------|
+     * |      |      |      |      |      |             |      |      |      |       |       |
+     * `-------------------------------------------------------------------------------------'
+     */
+    [2] = LAYOUT(
+        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_AMPR, 	KC_PIPE, 	KC_LPRN, 	KC_RPRN, 	KC_PLUS, 	KC_MINS, 	KC_LCBR, 	KC_RCBR, 	KC_LBRC, 	KC_RBRC, 	_______, 
+		_______, 	KC_EXLM, 	KC_AT, 		KC_HASH, 	KC_CIRC, 	KC_ASTR, 	KC_SLSH, 	KC_TILD, 	KC_LABK, 	KC_RABK, 	KC_QUES, 	_______, 
+		_______, 	_______, 	_______, 	_______, 	_______, 			_______, 		_______, 	_______, 	_______, 	_______, 	_______
+	)
+}; 
+
+#ifdef RGBLIGHT_ENABLE
+const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({9, 1, HSV_RED});
+const rgblight_segment_t PROGMEM my_ar_numpad_layer[] = RGBLIGHT_LAYER_SEGMENTS({40, 2, HSV_WHITE});
+const rgblight_segment_t PROGMEM my_symbol_layer[] = RGBLIGHT_LAYER_SEGMENTS({28, 2, HSV_WHITE});
+const rgblight_segment_t PROGMEM my_other_layer[] = RGBLIGHT_LAYER_SEGMENTS({16, 2, HSV_WHITE});
+
+const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
+    my_capslock_layer,		// Caplock indicator
+    my_ar_numpad_layer,		// Arrow keys & Numpad, Operator keys, reset key, RGB control and media control
+	my_symbol_layer,		// F1-F12 keys & Symbols
+	my_other_layer			// Self-Defined
+);
+
+void keyboard_post_init_user(void) {
+    rgblight_layers = my_rgb_layers;
+}
+
+bool led_update_user(led_t led_state) {
+    rgblight_set_layer_state(0, led_state.caps_lock);
+    return true;
+}
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+    rgblight_set_layer_state(1, layer_state_cmp(state, 1));
+    rgblight_set_layer_state(2, layer_state_cmp(state, 2));
+    rgblight_set_layer_state(3, layer_state_cmp(state, 3));
+    return state;
+}
+#endif
diff --git a/keyboards/quarkeys/z40/keymaps/via/keymap.c b/keyboards/quarkeys/z40/keymaps/via/keymap.c
new file mode 100644
index 0000000000..f235747a70
--- /dev/null
+++ b/keyboards/quarkeys/z40/keymaps/via/keymap.c
@@ -0,0 +1,68 @@
+/* 
+/ Copyright 2022 quarkeys
+/ 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_ESC,	    KC_Q,       KC_W,       KC_E,       KC_R,       KC_T,       KC_Y,       KC_U,		KC_I,   	KC_O,   	KC_P,    	KC_BSPC, 
+		KC_TAB,     KC_A,       KC_S,       KC_D,       KC_F,       KC_G,       KC_H,       KC_J,		KC_K,   	KC_L,   	KC_SCLN, 	KC_QUOT, 
+		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_LCTL,    KC_CAPS,    KC_LALT,    KC_LGUI,    MO(1),          KC_SPC,             MO(2),		MO(3),   	_______,   	_______,    KC_ENT
+    ),
+
+    [1] = LAYOUT(
+        QK_BOOT,	KC_PGUP,	KC_HOME,	KC_UP,		KC_END,		KC_DEL,		KC_BSLS,	KC_7,		KC_8,		KC_9,		RGB_TOG,	_______, 
+		_______, 	KC_PGDN, 	KC_LEFT, 	KC_DOWN, 	KC_RGHT, 	KC_PLUS, 	KC_MINS, 	KC_4, 		KC_5, 		KC_6, 		RGB_MOD, 	_______, 
+		_______, 	KC_VOLD, 	KC_VOLU, 	_______, 	_______, 	KC_ASTR, 	KC_SLSH, 	KC_1, 		KC_2, 		KC_3, 		RGB_HUI, 	_______,
+		RGB_SAI, 	RGB_SAD, 	RGB_VAI, 	RGB_VAD, 	_______, 			KC_0, 			_______, 	_______, 	KC_DOT, 	RGB_HUD, 	KC_EQL
+	),
+
+    [2] = LAYOUT(
+        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_AMPR, 	KC_PIPE, 	KC_LPRN, 	KC_RPRN, 	KC_PLUS, 	KC_MINS, 	KC_LCBR, 	KC_RCBR, 	KC_LBRC, 	KC_RBRC, 	_______, 
+		_______, 	KC_EXLM, 	KC_AT, 		KC_HASH, 	KC_CIRC, 	KC_ASTR, 	KC_SLSH, 	KC_TILD, 	KC_LABK, 	KC_RABK, 	KC_QUES, 	_______, 
+		_______, 	_______, 	_______, 	_______, 	_______, 			_______, 		_______, 	_______, 	_______, 	_______, 	_______
+	)
+}; 
+
+#ifdef RGBLIGHT_ENABLE
+const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({9, 1, HSV_RED});
+const rgblight_segment_t PROGMEM my_ar_numpad_layer[] = RGBLIGHT_LAYER_SEGMENTS({40, 2, HSV_WHITE});
+const rgblight_segment_t PROGMEM my_symbol_layer[] = RGBLIGHT_LAYER_SEGMENTS({28, 2, HSV_WHITE});
+const rgblight_segment_t PROGMEM my_other_layer[] = RGBLIGHT_LAYER_SEGMENTS({16, 2, HSV_WHITE});
+
+const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
+    my_capslock_layer,		// Caplock indicator
+    my_ar_numpad_layer,		// Arrow keys & Numpad, Operator keys, reset key, RGB control and media control
+	my_symbol_layer,		// F1-F12 keys & Symbols
+	my_other_layer			// Self-Defined
+);
+
+void keyboard_post_init_user(void) {
+    rgblight_layers = my_rgb_layers;
+}
+
+bool led_update_user(led_t led_state) {
+    rgblight_set_layer_state(0, led_state.caps_lock);
+    return true;
+}
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+    rgblight_set_layer_state(1, layer_state_cmp(state, 1));
+    rgblight_set_layer_state(2, layer_state_cmp(state, 2));
+    rgblight_set_layer_state(3, layer_state_cmp(state, 3));
+    return state;
+}
+#endif
diff --git a/keyboards/quarkeys/z40/keymaps/via/rules.mk b/keyboards/quarkeys/z40/keymaps/via/rules.mk
new file mode 100644
index 0000000000..36b7ba9cbc
--- /dev/null
+++ b/keyboards/quarkeys/z40/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
diff --git a/keyboards/quarkeys/z40/readme.md b/keyboards/quarkeys/z40/readme.md
new file mode 100644
index 0000000000..d3428dd206
--- /dev/null
+++ b/keyboards/quarkeys/z40/readme.md
@@ -0,0 +1,23 @@
+# Quarkeys Z40 Low Profile Keyboard
+
+![Quarkeys Z40 Pastry](https://raw.githubusercontent.com/tommyamoszhao/keyboardimage/main/Z40/Z40_1024.png)
+
+A 40% Bottom mount low-profile & MX switch compatible keyboard.
+
+* Keyboard Maintainer: [Quarkeys Studio](www.quarkeys.com)
+* Hardware Supported: Z40-ACR, Z40-Pastry
+* Hardware Specs: Per-key RGBs, layer & Capslock indicators
+* For [RGB Matrix feature](https://docs.qmk.fm/#/feature_rgb_matrix): `RGB_MATRIX_ENABLE = yes`, `RGBLIGHT_ENABLE = no`.
+* For [RGB Light feature](https://docs.qmk.fm/#/feature_rgblight): `RGB_MATRIX_ENABLE = no`, `RGBLIGHT_ENABLE = yes`.
+
+Make example for this keyboard solder version keymap(after setting up your build environment):
+
+    make quarkeys/z40:default
+
+Flashing example for this keyboard:
+
+    make quarkeys/z40:default:flash
+
+**Bootloader:** Press the `QK_BOOT` keycode at ESC position of layer 1.
+
+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).
\ No newline at end of file
diff --git a/keyboards/quarkeys/z40/rules.mk b/keyboards/quarkeys/z40/rules.mk
new file mode 100644
index 0000000000..89107d24a8
--- /dev/null
+++ b/keyboards/quarkeys/z40/rules.mk
@@ -0,0 +1,17 @@
+# Build Options
+#   change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes    	# Enable Bootmagic Lite
+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
+NKRO_ENABLE = yes           # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
+AUDIO_ENABLE = no           # Audio output
+
+# Do not enable RGB_MATRIX_ENABLE together with RGBLIGHT_ENABLE
+RGBLIGHT_ENABLE = no	    # Enable this and unable RGB_MATRIX_ENABLE to use RGB light effect
+
+RGB_MATRIX_ENABLE = yes		# Enable this and unable RGBLIGHT_ENABLE to use RGB Matrix effect 
+RGB_MATRIX_DRIVER = WS2812	# Comment out this line when RGBLIGHTING is enabled
diff --git a/keyboards/quarkeys/z40/z40.c b/keyboards/quarkeys/z40/z40.c
new file mode 100644
index 0000000000..9bc188f04f
--- /dev/null
+++ b/keyboards/quarkeys/z40/z40.c
@@ -0,0 +1,44 @@
+/* 
+/ Copyright 2022 quarkeys
+/ 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 "z40.h"
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+    // Key Matrix to LED Index
+    /*
+        { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \
+        { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \
+        { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \
+        { k30, k31, k32, k33, k34, k35, XXX, k36, k37, k38, k39, k3A }\
+    */
+        { 46,     45,     44,     43,     42,     41,     40,     39,     38,     37,     36,     35      },
+        { 34,     33,     32,     31,     30,     29,     28,     27,     26,     25,     24,     23      },
+        { 22,     21,     20,     29,     18,     17,     16,     15,     14,     13,     12,     11      },
+        { 10,      9,      8,      7,      6,          5,          4,      3,      2,      1,      0      }
+  }, 
+  {  // Index to Physical Position
+      {225, 64}, {200, 64}, {180, 64}, {160, 64}, {140, 64},            {110, 64}, { 80, 64}, { 60, 64}, { 40, 64}, { 20, 64}, {  0, 64},
+      {225, 42}, {200, 42}, {180, 42}, {160, 42}, {140, 42}, {120, 42}, {100, 42}, { 80, 42}, { 60, 42}, { 40, 42}, { 20, 42}, {  0, 42},
+      {225, 21}, {200, 21}, {180, 21}, {160, 21}, {140, 21}, {120, 21}, {100, 21}, { 80, 21}, { 60, 21}, { 40, 21}, { 20, 21}, {  0, 21},
+      {225,  0}, {200,  0}, {180,  0}, {160,  0}, {140,  0}, {120,  0}, {100,  0}, { 80,  0}, { 60,  0}, { 40,  0}, { 20,  0}, {  0,  0}
+  }, 
+  {
+      1, 1, 1, 1, 1,    1, 1, 1, 1, 1, 1,
+      1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+      1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+      1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1
+  } 
+};
+#endif
diff --git a/keyboards/quarkeys/z40/z40.h b/keyboards/quarkeys/z40/z40.h
new file mode 100644
index 0000000000..9a599d9cd1
--- /dev/null
+++ b/keyboards/quarkeys/z40/z40.h
@@ -0,0 +1,29 @@
+/* 
+/ Copyright 2022 quarkeys
+/ 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 XXX KC_NO
+
+#define LAYOUT( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \
+    k30, k31, k32, k33, k34,    k35,   k36, k37, k38, k39, k3A \
+) { \
+    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \
+    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \
+    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \
+    { k30, k31, k32, k33, k34, k35, XXX, k36, k37, k38, k39, k3A }\
+}