From d9ab3ed5b886e9f9dab5865ac1c00cef65e4f49d Mon Sep 17 00:00:00 2001
From: JX <572673807@qq.com>
Date: Sun, 8 Aug 2021 23:46:56 +0800
Subject: [PATCH] add hotdox76 v2 kb (prelim)
---
keyboards/yandrstudio/boy40ble/readme.md | 6 +-
keyboards/yandrstudio/hotdox76_V2/config.h | 125 ++++++++++++
.../yandrstudio/hotdox76_V2/hotdox76_V2.c | 108 ++++++++++
.../yandrstudio/hotdox76_V2/hotdox76_V2.h | 53 +++++
.../yandrstudio/hotdox76_V2/info-via.json | 189 ++++++++++++++++++
.../hotdox76_V2/keymaps/default/config.h | 40 ++++
.../hotdox76_V2/keymaps/default/keymap.c | 169 ++++++++++++++++
.../hotdox76_V2/keymaps/default/rules.mk | 4 +
.../hotdox76_V2/keymaps/via/config.h | 40 ++++
.../hotdox76_V2/keymaps/via/keymap.c | 169 ++++++++++++++++
.../hotdox76_V2/keymaps/via/rules.mk | 5 +
.../yandrstudio/hotdox76_V2/leftkb/config.h | 18 ++
.../yandrstudio/hotdox76_V2/leftkb/rules.mk | 0
keyboards/yandrstudio/hotdox76_V2/readme.md | 24 +++
.../yandrstudio/hotdox76_V2/rightkb/config.h | 18 ++
.../yandrstudio/hotdox76_V2/rightkb/rules.mk | 0
keyboards/yandrstudio/hotdox76_V2/rules.mk | 27 +++
.../utils/RGB/getRgbMtrixPosition.js | 95 ++++++++-
.../zhou75/keymaps/default/keymap.c | 6 +-
19 files changed, 1088 insertions(+), 8 deletions(-)
create mode 100644 keyboards/yandrstudio/hotdox76_V2/config.h
create mode 100644 keyboards/yandrstudio/hotdox76_V2/hotdox76_V2.c
create mode 100644 keyboards/yandrstudio/hotdox76_V2/hotdox76_V2.h
create mode 100644 keyboards/yandrstudio/hotdox76_V2/info-via.json
create mode 100644 keyboards/yandrstudio/hotdox76_V2/keymaps/default/config.h
create mode 100644 keyboards/yandrstudio/hotdox76_V2/keymaps/default/keymap.c
create mode 100644 keyboards/yandrstudio/hotdox76_V2/keymaps/default/rules.mk
create mode 100644 keyboards/yandrstudio/hotdox76_V2/keymaps/via/config.h
create mode 100644 keyboards/yandrstudio/hotdox76_V2/keymaps/via/keymap.c
create mode 100644 keyboards/yandrstudio/hotdox76_V2/keymaps/via/rules.mk
create mode 100644 keyboards/yandrstudio/hotdox76_V2/leftkb/config.h
create mode 100644 keyboards/yandrstudio/hotdox76_V2/leftkb/rules.mk
create mode 100644 keyboards/yandrstudio/hotdox76_V2/readme.md
create mode 100644 keyboards/yandrstudio/hotdox76_V2/rightkb/config.h
create mode 100644 keyboards/yandrstudio/hotdox76_V2/rightkb/rules.mk
create mode 100644 keyboards/yandrstudio/hotdox76_V2/rules.mk
diff --git a/keyboards/yandrstudio/boy40ble/readme.md b/keyboards/yandrstudio/boy40ble/readme.md
index 1cf6a10ac73e..cb05ddc1f7de 100644
--- a/keyboards/yandrstudio/boy40ble/readme.md
+++ b/keyboards/yandrstudio/boy40ble/readme.md
@@ -1,11 +1,11 @@
-m60ble
+boy40ble
===
-A 61 keys keyboard with rgb (keys and underground) and bluetooth 5.x.
+A 40% keyboard with rgb (underground) and bluetooth 5.x.
This keyboard use 8mhz HSE and STM32F401 as MCU.
Keyboard Maintainer: https://github.com/jiaxin96
-Hardware Supported: yp980ble
+Hardware Supported: boy40ble
Hardware Availability: https://github.com/Oh-My-Mechanical-Keyboard
Make example for this keyboard (after setting up your build environment):
diff --git a/keyboards/yandrstudio/hotdox76_V2/config.h b/keyboards/yandrstudio/hotdox76_V2/config.h
new file mode 100644
index 000000000000..db494ff73c64
--- /dev/null
+++ b/keyboards/yandrstudio/hotdox76_V2/config.h
@@ -0,0 +1,125 @@
+/* Copyright 2021 JasonRen(biu)
+ *
+ * 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 .
+ */
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xAA96
+#define PRODUCT_ID 0xAAA9
+#define DEVICE_VER 0x0002
+#define MANUFACTURER JasonRen biu
+#define PRODUCT hotdox76_V2
+
+/* key matrix size */
+#define MATRIX_ROWS 6*2
+#define MATRIX_COLS 7
+
+/* key matrix pins */
+#define MATRIX_ROW_PINS { D6, D7, B4, B5, B6, C6 }
+#define MATRIX_COL_PINS { F7, F6, F5, F4, F1, F0, E6 }
+#define MATRIX_ROW_PINS_RIGHT { D6, D7, B4, B5, B6, C6 }
+#define MATRIX_COL_PINS_RIGHT { F7, F6, F5, F4, F1, F0, E6 }
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+
+
+// enable the nkro when using the VIA.
+#define FORCE_NKRO
+
+// fix VIA RGB_light
+#define VIA_HAS_BROKEN_KEYCODES
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
+
+
+#define USB_POLLING_INTERVAL_MS 1
+#define QMK_KEYS_PER_SCAN 4
+
+#define TAP_CODE_DELAY 15
+
+
+/* RGN Matrix */
+#ifdef RGB_MATRIX_ENABLE
+
+# define RGB_MATRIX_SPLIT {38, 38}
+# define SPLIT_TRANSPORT_MIRROR
+
+# define RGB_DI_PIN D3
+# define RGBLED_NUM (38*2)
+# define DRIVER_LED_TOTAL RGBLED_NUM
+
+# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150
+# define RGBLIGHT_VAL_STEP 15
+# define RGB_DISABLE_WHEN_USB_SUSPENDED true
+# define RGB_MATRIX_CENTER { 32, 96 }
+
+# define RGB_MATRIX_KEYPRESSES
+
+# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
+# define RGBLIGHT_ANIMATIONS
+
+// # define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB
+#endif
+
+
+#ifdef RGBLIGHT_ENABLE
+
+# define RGBLIGHT_SPLIT
+# define RGBLED_SPLIT {38, 38}
+
+# define RGB_DI_PIN D3
+# define RGBLED_NUM (38*2)
+# define DRIVER_LED_TOTAL RGBLED_NUM
+# define RGBLIGHT_LIMIT_VAL 150
+# define RGBLIGHT_SLEEP
+
+// # define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB
+
+#endif
+
+#ifdef SPLIT_KEYBOARD
+
+# define MASTER_LEFT
+
+# define SOFT_SERIAL_PIN D2
+
+# define SPLIT_MODS_ENABLE
+
+# define SPLIT_USB_DETECT
+
+#endif
+
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable action features */
+#define NO_ACTION_LAYER
+#define NO_ACTION_TAPPING
+#define NO_ACTION_ONESHOT
+
+/* disable these deprecated features by default */
+#define NO_ACTION_MACRO
+#define NO_ACTION_FUNCTION
diff --git a/keyboards/yandrstudio/hotdox76_V2/hotdox76_V2.c b/keyboards/yandrstudio/hotdox76_V2/hotdox76_V2.c
new file mode 100644
index 000000000000..e6e4f2cdb94c
--- /dev/null
+++ b/keyboards/yandrstudio/hotdox76_V2/hotdox76_V2.c
@@ -0,0 +1,108 @@
+#include QMK_KEYBOARD_H
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = {
+ {
+ { NO_LED, 34, 33, 32, 35, 37, 36 },
+ { 27, 28, 29, 30, 31, NO_LED, NO_LED },
+ { 26, 25, 24, 23, 22, 21, 20 },
+ { 14, 15, 16, 17, 18, 19, NO_LED },
+ { 13, 12, 11, 10, 9, 8, 7 },
+ { 0, 1, 2, 3, 4, 5, 6 },
+ /*right*/
+ { NO_LED, 72, 71, 70, 73, 75, 74 },
+ { 65, 66, 67, 68, 69, NO_LED, NO_LED },
+ { 64, 63, 62, 61, 60, 59, 58 },
+ { 52, 53, 54, 55, 56, 57, NO_LED },
+ { 51, 50, 49, 48, 47, 46, 45 },
+ { 38, 39, 40, 41, 42, 43, 44 }
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {17,0}, {34,0}, {52,0}, {69,0}, {86,0}, {103,0}, \
+ {103,13}, {86,13}, {69,13}, {52,13}, {34,13}, {17,13}, {0,13}, \
+ {0,26}, {17,26}, {34,26}, {52,26}, {69,26}, {86,26}, \
+ {103,38}, {86,38}, {69,38}, {52,38}, {34,38}, {17,38}, {0,38}, \
+ {0,51}, {17,51}, {34,51}, {52,51}, {69,51}, \
+ {86,64}, {69,64}, {52,64}, {34,64}, {17,64}, {0,64}, \
+ \
+ {224,0}, {207,0}, {190,0}, {172,0}, {155,0}, {138,0}, {121,0}, \
+ {121,13}, {138,13}, {155,13}, {172,13}, {190,13}, {207,13}, {224,13}, \
+ {224,26}, {207,26}, {190,26}, {172,26}, {155,26}, {138,26}, \
+ {121,38}, {138,38}, {155,38}, {172,38}, {190,38}, {207,38}, {224,38}, \
+ {224,51}, {207,51}, {190,51}, {172,51}, {155,51}, \
+ {138,64}, {155,64}, {172,64}, {190,64}, {207,64}, {224,64}\
+
+ },
+ {
+ // LED Index to Flag
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,\
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
+ }
+};
+
+
+#endif
+
+#ifdef OLED_DRIVER_ENABLE
+char wpm_str[10]; // limit WPM string length.
+
+oled_rotation_t oled_init_user(oled_rotation_t rotation) {
+ // oled_scroll_set_area(0,2);
+ // oled_scroll_set_speed(4);
+ // oled_scroll_right();
+# ifdef I_AM_LEFT
+ return OLED_ROTATION_0;
+# else
+ return OLED_ROTATION_180;
+# endif
+}
+
+void render_logo(void) {
+
+}
+
+void oled_task_user(void) {
+
+# ifdef I_AM_LEFT
+
+
+ switch (biton32(layer_state)) {
+ case 0:
+ oled_write_ln("Layer: Base", false);
+ break;
+ case 1:
+ oled_write_ln("Layer: Function", false);
+ break;
+ case 2:
+ oled_write_ln("Layer: System", false);
+ break;
+ case 3:
+ oled_write_ln("Layer: User", false);
+ break;
+ default:
+ oled_write_ln("Layer: Undefine", false);
+ }
+ oled_write_P((get_mods() & MOD_MASK_SHIFT) ? "SF>* " : "SF>x ", false);
+ oled_write_P((get_mods() & MOD_MASK_CTRL) ? "CT>* " : "CT>x ", false);
+ oled_write_P((get_mods() & MOD_MASK_ALT) ? "AL>* " : "AL>x ", false);
+ oled_write_ln((get_mods() & MOD_MASK_GUI) ? "GU>*" : "GU>x", false);
+
+# else
+
+
+
+# endif
+}
+#endif
+
+
+bool is_keyboard_left(void) {
+
+#ifdef I_AM_LEFT
+ return true;
+#else
+ return false;
+#endif
+
+}
diff --git a/keyboards/yandrstudio/hotdox76_V2/hotdox76_V2.h b/keyboards/yandrstudio/hotdox76_V2/hotdox76_V2.h
new file mode 100644
index 000000000000..c0cdec85fa89
--- /dev/null
+++ b/keyboards/yandrstudio/hotdox76_V2/hotdox76_V2.h
@@ -0,0 +1,53 @@
+/* Copyright 2021 JasonRen(biu)
+ *
+ * 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 .
+ */
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT( \
+ L500, L501, L502, L503, L504, L505, L506, \
+ L400, L401, L402, L403, L404, L405, L406, \
+ L300, L301, L302, L303, L304, L305, \
+ L200, L201, L202, L203, L204, L205, L206, \
+ L100, L101, L102, L103, L104, \
+ L005, L006, \
+ L004, \
+ L003, L002, L001, \
+ \
+ R116, R115, R114, R113, R112, R111, R110, \
+ R106, R105, R104, R103, R102, R101, R100, \
+ R905, R904, R903, R902, R901, R900, \
+ R806, R805, R804, R803, R802, R801, R800, \
+ R705, R704, R703, R701, R700, \
+ R606, R605, \
+ R604, \
+ R601, R602, R603 \
+) { \
+ { KC_NO, L001, L002, L003, L004, L005, L006 }, \
+ { L100, L101, L102, L103, L104, KC_NO, KC_NO }, \
+ { L200, L201, L202, L203, L204, L205, L206 }, \
+ { L300, L301, L302, L303, L304, L305, KC_NO }, \
+ { L400, L401, L402, L403, L404, L405, L406 }, \
+ { L500, L501, L502, L503, L504, L505, L506 }, \
+ \
+ { KC_NO, R601, R602, R603, R604, R605, R606 }, \
+ { R700, R701, R703, R704, R705, KC_NO, KC_NO }, \
+ { R800, R801, R802, R803, R804, R805, R806 }, \
+ { R900, R901, R902, R903, R904, R905, KC_NO }, \
+ { R100, R101, R102, R103, R104, R105, R106 }, \
+ { R110, R111, R112, R113, R114, R115, R116 } \
+}
+
diff --git a/keyboards/yandrstudio/hotdox76_V2/info-via.json b/keyboards/yandrstudio/hotdox76_V2/info-via.json
new file mode 100644
index 000000000000..5172a4954847
--- /dev/null
+++ b/keyboards/yandrstudio/hotdox76_V2/info-via.json
@@ -0,0 +1,189 @@
+{
+ "name": "hotdox76-V2_Y&R",
+ "vendorId": "0xAA96",
+ "productId": "0xAAA9",
+ "lighting": {
+ "extends": "none",
+ "keycodes": "qmk"
+ },
+ "matrix": {
+ "rows": 12,
+ "cols": 7
+ },
+ "layouts": {
+ "keymap": [
+ [
+ "0,0",
+ {
+ "x": 1
+ },
+ "0,2",
+ "0,3",
+ "0,4",
+ "0,5",
+ {
+ "x": 0.5
+ },
+ "0,7",
+ "0,8",
+ "0,9",
+ "0,10",
+ {
+ "x": 0.5
+ },
+ "0,11",
+ "0,12",
+ "0,13",
+ "0,14",
+ {
+ "x": 0.25
+ },
+ "0,15",
+ "0,16",
+ "0,17"
+ ],
+ [
+ {
+ "y": 0.5
+ },
+ "1,0",
+ "1,1",
+ "1,2",
+ "1,3",
+ "1,4",
+ "1,5",
+ "1,6",
+ "1,7",
+ "1,8",
+ "1,9",
+ "1,10",
+ "1,11",
+ "1,12",
+ "1,13",
+ "1,14",
+ {
+ "x": 0.25
+ },
+ "1,15",
+ "1,16",
+ "1,17"
+ ],
+ [
+ {
+ "w": 1.5
+ },
+ "2,0",
+ "2,1",
+ "2,2",
+ "2,3",
+ "2,4",
+ "2,5",
+ "2,6",
+ "2,7",
+ "2,8",
+ "2,9",
+ "2,10",
+ "2,11",
+ "2,12",
+ {
+ "w": 1.5
+ },
+ "2,14",
+ {
+ "x": 0.25
+ },
+ "2,15",
+ "2,16",
+ "2,17"
+ ],
+ [
+ {
+ "w": 1.75
+ },
+ "3,0",
+ "3,1",
+ "3,2",
+ "3,3",
+ "3,4",
+ "3,5",
+ "3,6",
+ "3,7",
+ "3,8",
+ "3,9",
+ "3,10",
+ "3,11",
+ "3,12",
+ {
+ "w": 1.25
+ },
+ "3,14"
+ ],
+ [
+ {
+ "w": 1.25
+ },
+ "4,0",
+ "4,1",
+ "4,2",
+ "4,3",
+ "4,4",
+ "4,5",
+ "4,6",
+ "4,7",
+ "4,8",
+ "4,9",
+ "4,10",
+ "4,11",
+ {
+ "w": 1.75
+ },
+ "4,12",
+ "4,14",
+ {
+ "x": 1.25
+ },
+ "4,16"
+ ],
+ [
+ {
+ "w": 1.25
+ },
+ "5,0",
+ {
+ "w": 1.25
+ },
+ "5,1",
+ {
+ "w": 1.25
+ },
+ "5,2",
+ {
+ "w": 6.25
+ },
+ "5,6",
+ {
+ "w": 1.25
+ },
+ "5,10",
+ {
+ "w": 1.25
+ },
+ "5,11",
+ {
+ "w": 1.25
+ },
+ "5,12",
+ {
+ "w": 1.25
+ },
+ "5,14",
+ {
+ "x": 0.25
+ },
+ "5,15",
+ "5,16",
+ "5,17"
+ ]
+ ]
+ }
+}
diff --git a/keyboards/yandrstudio/hotdox76_V2/keymaps/default/config.h b/keyboards/yandrstudio/hotdox76_V2/keymaps/default/config.h
new file mode 100644
index 000000000000..a0aedf8b8574
--- /dev/null
+++ b/keyboards/yandrstudio/hotdox76_V2/keymaps/default/config.h
@@ -0,0 +1,40 @@
+/* Copyright 2021 JasonRen(biu)
+ *
+ * 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 .
+ */
+#pragma once
+
+/* RGN Matrix */
+#ifdef RGB_MATRIX_ENABLE
+
+#define DISABLE_RGB_MATRIX_ALPHAS_MODS
+#define DISABLE_RGB_MATRIX_BAND_SAT
+#define DISABLE_RGB_MATRIX_BAND_VAL
+#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
+#define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL
+#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
+#define DISABLE_RGB_MATRIX_SOLID_REACTIVE
+#define DISABLE_RGB_MATRIX_HUE_BREATHING
+#define DISABLE_RGB_MATRIX_DIGITAL_RAIN
+#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
+#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
+#define DISABLE_RGB_MATRIX_SPLASH
+#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
+#define DISABLE_RGB_MATRIX_SOLID_SPLASH
+#define DISABLE_RGB_MATRIX_DUAL_BEACON
+#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
+#define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
+#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
+
+#endif
diff --git a/keyboards/yandrstudio/hotdox76_V2/keymaps/default/keymap.c b/keyboards/yandrstudio/hotdox76_V2/keymaps/default/keymap.c
new file mode 100644
index 000000000000..46fa7c2c5d2f
--- /dev/null
+++ b/keyboards/yandrstudio/hotdox76_V2/keymaps/default/keymap.c
@@ -0,0 +1,169 @@
+#include QMK_KEYBOARD_H
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / Cmd |
+ * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
+ * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | App | LGui | | Alt |Ctrl/Esc|
+ * ,------|------|------| |------+--------+------.
+ * | | | Home | | PgUp | | |
+ * | Space|Backsp|------| |------| Tab |Enter |
+ * | |ace | End | | PgDn | | |
+ * `--------------------' `----------------------'
+ */
+ LAYOUT(
+ // left hand
+ KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
+ KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1),
+ KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G,
+ KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
+ LT(1,KC_GRV), KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
+ ALT_T(KC_APP), KC_LGUI,
+ KC_HOME,
+ KC_SPC,KC_BSPC,KC_END,
+ // right hand
+ KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
+ KC_H, KC_J, KC_K, KC_L, LT(2, KC_SCLN), GUI_T(KC_QUOT),
+ MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
+ KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, TT(1),
+ KC_LALT, CTL_T(KC_ESC),
+ KC_PGUP,
+ KC_PGDN,KC_TAB, KC_ENT
+ ),
+/* Keymap 1: Symbol Layer
+ *
+ * ,---------------------------------------------------. ,--------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
+ * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
+ * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
+ * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
+ * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | . | 0 | = | |
+ * `-----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * |Animat| | |Toggle| |
+ * ,------|------|------| |------+------+------.
+ * |Bright|Bright| | | |Hue- |Hue+ |
+ * |ness- |ness+ |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+ LAYOUT(
+ // left hand
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
+ KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS,
+ KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV,
+ KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ RGB_MOD,KC_TRNS,
+ KC_TRNS,
+ RGB_VAD,RGB_VAI,KC_TRNS,
+ // right hand
+ KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
+ KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
+ KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
+ KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
+ RGB_TOG, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, RGB_HUD, RGB_HUI
+ ),
+/* Keymap 2: Media and mouse keys
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | MsUp | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | Prev | Next | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | |Brwser|
+ * | | |------| |------| |Back |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+ LAYOUT(
+ // left hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ // right hand
+ 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_MPLY,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
+ KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_WBAK
+ ),
+/* Keymap 3: Empty
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | |------| |------| | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+ LAYOUT(
+ // left hand
+ 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, KC_TRNS,
+ // right hand
+ 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, KC_TRNS
+ )
+};
diff --git a/keyboards/yandrstudio/hotdox76_V2/keymaps/default/rules.mk b/keyboards/yandrstudio/hotdox76_V2/keymaps/default/rules.mk
new file mode 100644
index 000000000000..dc9bca95c85a
--- /dev/null
+++ b/keyboards/yandrstudio/hotdox76_V2/keymaps/default/rules.mk
@@ -0,0 +1,4 @@
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
+# RGBLIGHT_ENABLE = yes
+# RGBLIGHT_DRIVER = WS2812
diff --git a/keyboards/yandrstudio/hotdox76_V2/keymaps/via/config.h b/keyboards/yandrstudio/hotdox76_V2/keymaps/via/config.h
new file mode 100644
index 000000000000..a0aedf8b8574
--- /dev/null
+++ b/keyboards/yandrstudio/hotdox76_V2/keymaps/via/config.h
@@ -0,0 +1,40 @@
+/* Copyright 2021 JasonRen(biu)
+ *
+ * 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 .
+ */
+#pragma once
+
+/* RGN Matrix */
+#ifdef RGB_MATRIX_ENABLE
+
+#define DISABLE_RGB_MATRIX_ALPHAS_MODS
+#define DISABLE_RGB_MATRIX_BAND_SAT
+#define DISABLE_RGB_MATRIX_BAND_VAL
+#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
+#define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL
+#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
+#define DISABLE_RGB_MATRIX_SOLID_REACTIVE
+#define DISABLE_RGB_MATRIX_HUE_BREATHING
+#define DISABLE_RGB_MATRIX_DIGITAL_RAIN
+#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
+#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
+#define DISABLE_RGB_MATRIX_SPLASH
+#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
+#define DISABLE_RGB_MATRIX_SOLID_SPLASH
+#define DISABLE_RGB_MATRIX_DUAL_BEACON
+#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
+#define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
+#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
+
+#endif
diff --git a/keyboards/yandrstudio/hotdox76_V2/keymaps/via/keymap.c b/keyboards/yandrstudio/hotdox76_V2/keymaps/via/keymap.c
new file mode 100644
index 000000000000..46fa7c2c5d2f
--- /dev/null
+++ b/keyboards/yandrstudio/hotdox76_V2/keymaps/via/keymap.c
@@ -0,0 +1,169 @@
+#include QMK_KEYBOARD_H
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / Cmd |
+ * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
+ * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | App | LGui | | Alt |Ctrl/Esc|
+ * ,------|------|------| |------+--------+------.
+ * | | | Home | | PgUp | | |
+ * | Space|Backsp|------| |------| Tab |Enter |
+ * | |ace | End | | PgDn | | |
+ * `--------------------' `----------------------'
+ */
+ LAYOUT(
+ // left hand
+ KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
+ KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1),
+ KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G,
+ KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
+ LT(1,KC_GRV), KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
+ ALT_T(KC_APP), KC_LGUI,
+ KC_HOME,
+ KC_SPC,KC_BSPC,KC_END,
+ // right hand
+ KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
+ KC_H, KC_J, KC_K, KC_L, LT(2, KC_SCLN), GUI_T(KC_QUOT),
+ MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
+ KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, TT(1),
+ KC_LALT, CTL_T(KC_ESC),
+ KC_PGUP,
+ KC_PGDN,KC_TAB, KC_ENT
+ ),
+/* Keymap 1: Symbol Layer
+ *
+ * ,---------------------------------------------------. ,--------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
+ * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
+ * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
+ * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
+ * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | . | 0 | = | |
+ * `-----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * |Animat| | |Toggle| |
+ * ,------|------|------| |------+------+------.
+ * |Bright|Bright| | | |Hue- |Hue+ |
+ * |ness- |ness+ |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+ LAYOUT(
+ // left hand
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
+ KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS,
+ KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV,
+ KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ RGB_MOD,KC_TRNS,
+ KC_TRNS,
+ RGB_VAD,RGB_VAI,KC_TRNS,
+ // right hand
+ KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
+ KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
+ KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
+ KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
+ RGB_TOG, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, RGB_HUD, RGB_HUI
+ ),
+/* Keymap 2: Media and mouse keys
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | MsUp | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | Prev | Next | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | |Brwser|
+ * | | |------| |------| |Back |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+ LAYOUT(
+ // left hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ // right hand
+ 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_MPLY,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
+ KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_WBAK
+ ),
+/* Keymap 3: Empty
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | |------| |------| | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+ LAYOUT(
+ // left hand
+ 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, KC_TRNS,
+ // right hand
+ 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, KC_TRNS
+ )
+};
diff --git a/keyboards/yandrstudio/hotdox76_V2/keymaps/via/rules.mk b/keyboards/yandrstudio/hotdox76_V2/keymaps/via/rules.mk
new file mode 100644
index 000000000000..3379c3570270
--- /dev/null
+++ b/keyboards/yandrstudio/hotdox76_V2/keymaps/via/rules.mk
@@ -0,0 +1,5 @@
+VIA_ENABLE = yes
+# RGBLIGHT_ENABLE = yes
+# RGBLIGHT_DRIVER = WS2812
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
diff --git a/keyboards/yandrstudio/hotdox76_V2/leftkb/config.h b/keyboards/yandrstudio/hotdox76_V2/leftkb/config.h
new file mode 100644
index 000000000000..9b689aae6cb9
--- /dev/null
+++ b/keyboards/yandrstudio/hotdox76_V2/leftkb/config.h
@@ -0,0 +1,18 @@
+/* Copyright 2021 JasonRen(biu)
+ *
+ * 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 .
+ */
+#pragma once
+
+#define I_AM_LEFT
diff --git a/keyboards/yandrstudio/hotdox76_V2/leftkb/rules.mk b/keyboards/yandrstudio/hotdox76_V2/leftkb/rules.mk
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/keyboards/yandrstudio/hotdox76_V2/readme.md b/keyboards/yandrstudio/hotdox76_V2/readme.md
new file mode 100644
index 000000000000..39e7525e880a
--- /dev/null
+++ b/keyboards/yandrstudio/hotdox76_V2/readme.md
@@ -0,0 +1,24 @@
+hotdox76 version 2.0
+===
+
+A split keyboard with rgb (keys) and oleds.
+This keyboard uses 32u4 with 16mhz HSE as MCU.
+
+Keyboard Maintainer: https://github.com/jiaxin96
+
+Hardware Supported: hotdox76_V2
+
+Hardware Availability: https://github.com/Oh-My-Mechanical-Keyboard
+
+Make example for this keyboard (after setting up your build environment):
+
+for left part:
+
+ make yandrstudio/hotdox76_V2/leftkb:default
+
+for right part:
+
+ make yandrstudio/hotdox76_V2/rightkb:default
+
+
+See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
diff --git a/keyboards/yandrstudio/hotdox76_V2/rightkb/config.h b/keyboards/yandrstudio/hotdox76_V2/rightkb/config.h
new file mode 100644
index 000000000000..06b1be659737
--- /dev/null
+++ b/keyboards/yandrstudio/hotdox76_V2/rightkb/config.h
@@ -0,0 +1,18 @@
+/* Copyright 2021 JasonRen(biu)
+ *
+ * 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 .
+ */
+#pragma once
+
+#define I_AM_RIGHT
diff --git a/keyboards/yandrstudio/hotdox76_V2/rightkb/rules.mk b/keyboards/yandrstudio/hotdox76_V2/rightkb/rules.mk
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/keyboards/yandrstudio/hotdox76_V2/rules.mk b/keyboards/yandrstudio/hotdox76_V2/rules.mk
new file mode 100644
index 000000000000..e52102301c67
--- /dev/null
+++ b/keyboards/yandrstudio/hotdox76_V2/rules.mk
@@ -0,0 +1,27 @@
+# MCU name
+MCU = atmega32u4
+
+F_CPU = 16000000
+
+ARCH = AVR8
+
+F_USB = $(F_CPU)
+
+
+# Boot Section Size in *bytes*
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+# Build Options
+# comment out to disable the options.
+#
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = no # 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
+NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+# WPM_ENABLE = yes
+OLED_DRIVER_ENABLE = yes # Enable Support for SSD1306 or SH1106 OLED Displays; Communicating over I2C
+SPLIT_KEYBOARD = yes
+
+
diff --git a/keyboards/yandrstudio/utils/RGB/getRgbMtrixPosition.js b/keyboards/yandrstudio/utils/RGB/getRgbMtrixPosition.js
index 0dac61c9a02d..2e9be4992259 100755
--- a/keyboards/yandrstudio/utils/RGB/getRgbMtrixPosition.js
+++ b/keyboards/yandrstudio/utils/RGB/getRgbMtrixPosition.js
@@ -42,7 +42,7 @@ cal_z_rgb = function gen_rgb_matrix_2(rownum, colnum) {
return gen_rgb_matrix_text
}
-cal_u_rgb = function gen_rgb_matrix_2(rownum, colnum) {
+cal_u_rgb = function gen_rgb_matrix_2(rownum, colnum, reverse) {
function get_x(col, colnum){
var x = 224 / (colnum - 1) * col;
return Math.round(x);
@@ -55,7 +55,11 @@ cal_u_rgb = function gen_rgb_matrix_2(rownum, colnum) {
for (var i = 0; i < rownum; i++) {
var row_rgb_text = new String();
var yy = get_y(i, rownum).toString();
- if (i % 2 == 0) {
+ var cnd = 0;
+ if (reverse) {
+ cnd = 1;
+ }
+ if (i % 2 == cnd) {
for (var j = 0; j < colnum; j++) {
var xx = get_x(j, colnum).toString();
row_rgb_text += '{' + xx + ',' + yy + '}'
@@ -82,6 +86,93 @@ cal_u_rgb = function gen_rgb_matrix_2(rownum, colnum) {
}
+cal_u_rgb_sb_l = function gen_rgb_matrix_2(rownum, colnum, reverse) {
+ function get_x(col, colnum){
+ var x = 224 / (colnum - 1) * col;
+ return Math.round(x);
+ }
+ function get_y(row, rownum) {
+ var y = 64 / (rownum - 1) * row;
+ return Math.round(y);
+ }
+ var gen_rgb_matrix_text = new String();
+ for (var i = 0; i < rownum; i++) {
+ var row_rgb_text = new String();
+ var yy = get_y(i, rownum).toString();
+ var cnd = 0;
+ if (reverse) {
+ cnd = 1;
+ }
+ if (i % 2 == cnd) {
+ for (var j = 0; j < colnum/2; j++) {
+ var xx = get_x(j, colnum).toString();
+ row_rgb_text += '{' + xx + ',' + yy + '}'
+ if (i != rownum -1 | j != colnum - 1) {
+ row_rgb_text += ', ';
+ }
+ }
+ } else {
+ for (var j = colnum/2-1; j >= 0; j--) {
+ var xx = get_x(j, colnum).toString();
+ row_rgb_text += '{' + xx + ',' + yy + '}'
+ if (i != rownum -1 | j != 0) {
+ row_rgb_text += ', ';
+ }
+ }
+ }
+
+ if (i != rownum - 1) {
+ row_rgb_text += '\n';
+ }
+ gen_rgb_matrix_text += row_rgb_text
+ }
+ return gen_rgb_matrix_text
+}
+
+cal_u_rgb_sb_r = function gen_rgb_matrix_2(rownum, colnum, reverse) {
+ function get_x(col, colnum){
+ var x = 224 / (colnum - 1) * col;
+ return Math.round(x);
+ }
+ function get_y(row, rownum) {
+ var y = 64 / (rownum - 1) * row;
+ return Math.round(y);
+ }
+ var gen_rgb_matrix_text = new String();
+ for (var i = 0; i < rownum; i++) {
+ var row_rgb_text = new String();
+ var yy = get_y(i, rownum).toString();
+ var cnd = 0;
+ if (reverse) {
+ cnd = 1;
+ }
+ if (i % 2 == cnd) {
+ for (var j = colnum/2; j < colnum; j++) {
+ var xx = get_x(j, colnum).toString();
+ row_rgb_text += '{' + xx + ',' + yy + '}'
+ if (i != rownum -1 | j != colnum - 1) {
+ row_rgb_text += ', ';
+ }
+ }
+ } else {
+ for (var j = colnum-1; j >= colnum/2; j--) {
+ var xx = get_x(j, colnum).toString();
+ row_rgb_text += '{' + xx + ',' + yy + '}'
+ if (i != rownum -1 | j != 0) {
+ row_rgb_text += ', ';
+ }
+ }
+ }
+
+ if (i != rownum - 1) {
+ row_rgb_text += '\n';
+ }
+ gen_rgb_matrix_text += row_rgb_text
+ }
+ return gen_rgb_matrix_text
+}
+
+
cal_a_row_rgb = function gen_rgb_matrix_2(row, rownum, colnum, reverse) {
function get_x(col, colnum){
diff --git a/keyboards/yandrstudio/zhou75/keymaps/default/keymap.c b/keyboards/yandrstudio/zhou75/keymaps/default/keymap.c
index f946b0be2e30..78111746f48d 100644
--- a/keyboards/yandrstudio/zhou75/keymaps/default/keymap.c
+++ b/keyboards/yandrstudio/zhou75/keymaps/default/keymap.c
@@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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_INS,
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_PGUP,
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_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_PGUP, KC_PGDN,KC_SPC, KC_VOLU, KC_VOLD, KC_RALT, M(1), KC_LEFT, KC_DOWN, KC_RGHT),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_PGUP, KC_PGDN,KC_SPC, KC_VOLU, KC_VOLD, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
LAYOUT(
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,
@@ -68,14 +68,14 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
switch (index)
{
- case 0:
+ case 1:
if (clockwise) {
tap_code16(KC_PGUP);
} else {
tap_code16(KC_PGDN);
}
break;
- case 1:
+ case 0:
if (clockwise) {
tap_code16(KC_VOLU);
} else {