Jelajahi Sumber

[Keyboard] add odin keyboard (#15150)

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
moyi4681 4 tahun lalu
induk
melakukan
9cc97302ab

+ 90 - 0
keyboards/kbdfans/odin/rgb/config.h

@@ -0,0 +1,90 @@
+/* Copyright 2021 Dztech
+ *
+ * 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 "config_common.h"
+
+#define VENDOR_ID       0x4B42
+#define PRODUCT_ID      0x0102
+#define DEVICE_VER      0x0001
+#define MANUFACTURER    KBDFANS
+#define PRODUCT         ODIN_RGB
+
+#define MATRIX_ROWS 6
+#define MATRIX_COLS 20
+
+#define MATRIX_ROW_PINS { A10, A9, A8, B14, B13, A2 }
+#define MATRIX_COL_PINS { A3, A4, A5, A6, A7, B0, B1, B2, B12, A15, B3, B4, B5, B6, B7, B8, C13, C14, C15, A0}
+#define UNUSED_PINS
+
+#define DIODE_DIRECTION COL2ROW
+
+#define DEBOUNCE 5
+#define RGBLED_NUM 110
+#define DRIVER_LED_TOTAL 110
+#define RGB_DI_PIN B15
+
+#ifdef RGB_MATRIX_ENABLE
+#define RGB_DISABLE_WHEN_USB_SUSPENDED
+#define RGB_MATRIX_KEYPRESSES 
+#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
+#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150
+#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL
+#define ENABLE_RGB_MATRIX_ALPHAS_MODS
+#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
+#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
+#define ENABLE_RGB_MATRIX_BREATHING
+#define ENABLE_RGB_MATRIX_BAND_SAT
+#define ENABLE_RGB_MATRIX_BAND_VAL
+#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
+#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
+#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
+#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
+#define ENABLE_RGB_MATRIX_CYCLE_ALL
+#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
+#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
+#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
+#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
+#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
+#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
+#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
+#define ENABLE_RGB_MATRIX_DUAL_BEACON
+#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
+#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
+#define ENABLE_RGB_MATRIX_RAINDROPS
+#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
+#define ENABLE_RGB_MATRIX_HUE_BREATHING
+#define ENABLE_RGB_MATRIX_HUE_PENDULUM
+#define ENABLE_RGB_MATRIX_HUE_WAVE
+#define ENABLE_RGB_MATRIX_FRACTAL
+#define ENABLE_RGB_MATRIX_PIXEL_RAIN
+
+#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
+#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
+
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
+#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
+#define ENABLE_RGB_MATRIX_SPLASH
+#define ENABLE_RGB_MATRIX_MULTISPLASH
+#define ENABLE_RGB_MATRIX_SOLID_SPLASH
+#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
+
+
+#endif

File diff ditekan karena terlalu besar
+ 6 - 0
keyboards/kbdfans/odin/rgb/info.json


+ 36 - 0
keyboards/kbdfans/odin/rgb/keymaps/default/keymap.c

@@ -0,0 +1,36 @@
+/* Copyright 2021 DZTECH <moyi4681@live.cn>
+ *
+ * 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_all(
+		KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_PGUP, KC_PGDN,  		
+		KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, 
+		KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_P7, KC_P8, KC_P9, KC_PPLS, 
+		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_P4, KC_P5, KC_P6, 
+		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_P1, KC_P2, KC_P3, KC_PENT, 
+		KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT,  KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
+                        ),
+	[1]   =LAYOUT_all(
+		KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_PGUP, KC_PGDN,  		
+		KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, 
+		KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_P7, KC_P8, KC_P9, KC_PPLS, 
+		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_P4, KC_P5, KC_P6, 
+		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_P1, KC_P2, KC_P3, KC_PENT, 
+		KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT,  KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT),
+};

+ 17 - 0
keyboards/kbdfans/odin/rgb/keymaps/via/config.h

@@ -0,0 +1,17 @@
+/* Copyright 2021 Dztech
+ *
+ * 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 DYNAMIC_KEYMAP_LAYER_COUNT 2

+ 36 - 0
keyboards/kbdfans/odin/rgb/keymaps/via/keymap.c

@@ -0,0 +1,36 @@
+/* Copyright 2021 DZTECH <moyi4681@live.cn>
+ *
+ * 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_all(
+		KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_PGUP, KC_PGDN,  		
+		KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, 
+		KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_P7, KC_P8, KC_P9, KC_PPLS, 
+		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_P4, KC_P5, KC_P6, 
+		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_P1, KC_P2, KC_P3, KC_PENT, 
+		KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT,  KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
+                        ),
+	[1]   =LAYOUT_all(
+		KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_PGUP, KC_PGDN,  		
+		KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, 
+		KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_P7, KC_P8, KC_P9, KC_PPLS, 
+		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_P4, KC_P5, KC_P6, 
+		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_P1, KC_P2, KC_P3, KC_PENT, 
+		KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT,  KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT),
+};

+ 1 - 0
keyboards/kbdfans/odin/rgb/keymaps/via/rules.mk

@@ -0,0 +1 @@
+VIA_ENABLE = yes

+ 21 - 0
keyboards/kbdfans/odin/rgb/readme.md

@@ -0,0 +1,21 @@
+# ODIN RGB
+
+A customizable HOTSWAP RGB keyboard.
+
+* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681)
+* Hardware Supported: KBDFANS
+* Hardware Availability: [kbdfans](https://kbdfans.myshopify.com/)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make kbdfans/odin/rgb:default
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix
+* **Physical reset button**:press and hold the button on the back of the PCB, then plugin to PC
+* **Keycode in layout**: Press the key mapped to `RESET` if it is available
+
+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).

+ 59 - 0
keyboards/kbdfans/odin/rgb/rgb.c

@@ -0,0 +1,59 @@
+/* Copyright 2021 Dztech
+ *
+ * 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 "rgb.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = {
+{
+    { 0,  NO_LED, 1,   2,      3,      4,      NO_LED,  5,      6,      7,      8,  9,  10,     11, 12,     13,     14, 15, 16, 17 },
+    { 36, 35,     34,  33,     32,     31,     30,      29,     28,     27,     26, 25, 24,     23, NO_LED, 22,     21, 20, 19, 18 },
+    { 37, 38,     39,  40,     41,     42,     43,      44,     45,     46,     47, 48, 49,     50, NO_LED, 51,     52, 53, 54, 55 },
+    { 75, 74,     73,  72,     71,     70,     69,      68,     67,     66,     65,  64, NO_LED, 63, NO_LED, NO_LED, 58, 57, 56, NO_LED },
+    { 76, NO_LED, 77,  78,     79,     80,     81,      82,     83,     84,     85,  86, NO_LED, 87, NO_LED, 88,     89, 90, 91, 92 },
+    { 105,104,    103, NO_LED, NO_LED, NO_LED, 102,     NO_LED, NO_LED, NO_LED, NO_LED, 100, NO_LED,     98, 97,     96,     95, 94, 93, NO_LED }
+}, 
+{
+    {   12*0,  0 }, {  12*2,  0 }, {  12*3,  0 }, {  12*4,  0 }, {  12*5,  0 }, { 12*7,  0 }, { 12*8,  0 }, { 12*9,  0 }, { 12*10,  0 }, { 12*11,  0 },    { 12*12,  0 }, { 12*13,  0 }, { 12*14,  0 }, { 12*15,  0 }, { 12*16,  0 }, { 12*17,  0 }, { 12*18,  0 }, { 224,  0 },
+    
+    { 224,  14 }, { 12*18,  14 },  { 12*17,  14 }, { 12*16,  14 },{ 12*15,  14 },{ 12*13,  14 },  { 12*12,  14 },  { 12*11,  14 },  { 12*10,  14 }, { 12*9,  14 },{ 12*8, 14},{ 12*7,  14},  {  12*6, 14 },  {  12*5,  14 }, {  12*4,  14 },{  12*3,  14 },{  12*2,  14 }, {12,  14},  {   12*0,  14 }, 
+      
+    {   12*0,  26.8 }, {12,  26.8}, {  12*2,  26.8 }, {  12*3,  26.8 }, {  12*4,  26.8 }, {  12*5,  26.8 }, {  12*6, 26.8 }, { 12*7,  26.8}, { 12*8, 26.8}, { 12*9,  26.8 }, { 12*10,  26.8 }, { 12*11,  26.8 },    { 12*12,  26.8 }, { 12*13,  26.8 },  { 12*15,  26.8 }, { 12*16,  26.8 }, { 12*17,  26.8 }, { 12*18,  26.8 }, { 224,  33.2 },
+
+ { 12*18,  39.6 }, { 12*17,  39.6 },{ 12*16,  39.6 }, {224,0},{0,0},{0,64},{224,64 },   { 12*13,  39.6 }, { 12*11,  39.6 }, { 12*10,  39.6 }, { 12*9,  39.6 },{ 12*8, 39.6},  { 12*7,  39.6},  {  12*6, 39.6 },  {  12*5,  39.6 },{  12*4,  39.6 },{  12*3,  39.6 },  {  12*2,  39.6 }, {12,  39.6},  {   12*0,  39.6 }, 
+    
+    {   12*0,  52 },{  12*2,  52 }, {  12*3,  52 }, {  12*4,  52 }, {  12*5,  52 }, {  12*6, 52 }, { 12*7,  52}, { 12*8, 52}, { 12*9,  52 }, { 12*10,  52 }, { 12*11,  52 },   { 12*13,  52 },  { 12*15,  52 }, { 12*16,  52 }, { 12*17,  52 }, { 12*18,  52 }, { 224,  58 },
+    
+ { 12*18,  64 },  { 12*17,  64 },  { 12*16,  64 },  { 12*15,  64 },{ 12*14,  64 }, { 12*13,  64 },  { 12*11,  64 },   {  12*6, 64 }, {  12*2,  64 }, {12,  64},    {   12*0,  64 }
+},
+{           
+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,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
+}};
+
+__attribute__ ((weak))
+void rgb_matrix_indicators_user(void) {
+    if (host_keyboard_led_state().caps_lock) {
+        rgb_matrix_set_color(75, 0xFF, 0xFF, 0xFF);
+    }
+    if (host_keyboard_led_state().num_lock) {
+        rgb_matrix_set_color(21, 0xFF, 0xFF, 0xFF);
+    }    
+}
+#endif

+ 35 - 0
keyboards/kbdfans/odin/rgb/rgb.h

@@ -0,0 +1,35 @@
+/* Copyright 2021 Dztech
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT_all( \
+    k00,      k02, k03, k04, k05,      k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G, k0H, k0I, k0J, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D,      k1F, k1G, k1H, k1I, k1J, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D,      k2F, k2G, k2H, k2I, k2J, \
+    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B,      k3D,           k3G, k3H, k3I,      \
+    k40,      k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B,      k4D,      k4F, k4G, k4H, k4I, k4J, \
+    k50, k51, k52,                k56,                     k5B,      k5D, k5E, k5F, k5G, k5H, k5I       \
+) \
+{ \
+    {k00, KC_NO, k02, k03,   k04,   k05,   KC_NO, k07,   k08,   k09,   k0A,   k0B, k0C,   k0D, k0E,   k0F,   k0G, k0H, k0I, k0J  }, \
+    {k10, k11,   k12, k13,   k14,   k15,   k16,   k17,   k18,   k19,   k1A,   k1B, k1C,   k1D, KC_NO, k1F,   k1G, k1H, k1I, k1J  }, \
+    {k20, k21,   k22, k23,   k24,   k25,   k26,   k27,   k28,   k29,   k2A,   k2B, k2C,   k2D, KC_NO, k2F,   k2G, k2H, k2I, k2J  }, \
+    {k30, k31,   k32, k33,   k34,   k35,   k36,   k37,   k38,   k39,   k3A,   k3B, KC_NO, k3D, KC_NO, KC_NO, k3G, k3H, k3I, KC_NO}, \
+    {k40, KC_NO, k42, k43,   k44,   k45,   k46,   k47,   k48,   k49,   k4A,   k4B, KC_NO, k4D, KC_NO, k4F,   k4G, k4H, k4I, k4J  }, \
+    {k50, k51,   k52, KC_NO, KC_NO, KC_NO, k56,   KC_NO, KC_NO, KC_NO, KC_NO, k5B, KC_NO, k5D, k5E,   k5F,   k5G, k5H, k5I, KC_NO}  \
+}

+ 26 - 0
keyboards/kbdfans/odin/rgb/rules.mk

@@ -0,0 +1,26 @@
+# MCU name
+MCU = STM32F072
+
+# Bootloader selection
+BOOTLOADER = stm32-dfu
+
+# 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
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = yes           # USB Nkey Rollover
+BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
+AUDIO_ENABLE = no           # Audio output
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE

+ 57 - 0
keyboards/kbdfans/odin/soldered/config.h

@@ -0,0 +1,57 @@
+/* Copyright 2021 Dztech
+ *
+ * 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 "config_common.h"
+
+#define VENDOR_ID       0x4B42
+#define PRODUCT_ID      0x0101
+#define DEVICE_VER      0x0001
+#define MANUFACTURER    KBDFANS
+#define PRODUCT         ODIN_SOLDERED
+
+
+#define MATRIX_ROWS 6
+#define MATRIX_COLS 20
+
+#define MATRIX_ROW_PINS { A10, A9, A8, B14, B13, A2 }
+#define MATRIX_COL_PINS { A3, A4, A5, A6, A7, B0, B1, B2, B12, A15, B3, B4, B5, B6, B7, B8, C13, C14, C15, A0}
+#define UNUSED_PINS
+
+#define LED_NUM_LOCK_PIN B9
+#define LED_CAPS_LOCK_PIN B10
+#define LED_PIN_ON_STATE 0
+
+#define DIODE_DIRECTION COL2ROW
+#define DEBOUNCE 15
+#define NO_ACTION_MACRO
+#define NO_ACTION_FUNCTION
+#define RGB_DI_PIN B15
+#ifdef RGB_DI_PIN
+#define RGBLED_NUM 4
+#define RGBLIGHT_ANIMATIONS
+#define RGBLIGHT_EFFECT_RGB_TEST
+#define RGBLIGHT_EFFECT_STATIC_GRADIENT
+#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+#define RGBLIGHT_EFFECT_RAINBOW_MOOD
+#define RGBLIGHT_EFFECT_CHRISTMAS
+#define RGBLIGHT_EFFECT_SNAKE
+#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_EFFECT_RAINBOW_MOOD + 8) 
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
+#define RGBLIGHT_LIMIT_VAL 180
+#define RGBLIGHT_SLEEP
+#endif
+#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2

File diff ditekan karena terlalu besar
+ 6 - 0
keyboards/kbdfans/odin/soldered/info.json


+ 36 - 0
keyboards/kbdfans/odin/soldered/keymaps/default/keymap.c

@@ -0,0 +1,36 @@
+/* Copyright 2021 DZTECH <moyi4681@live.cn>
+ *
+ * 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_all(
+		KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_PGUP, KC_PGDN, 		
+		KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL,KC_BSPC,  KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, 
+		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_HOME, KC_P7, KC_P8, KC_P9, KC_PPLS, 
+		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_P4, KC_P5, KC_P6, KC_PPLS,
+		KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,KC_END, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, 
+		KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT,KC_PENT
+                        ),
+	[1]   =LAYOUT_all(
+		KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PAUS, KC_PAUS, KC_SPC, KC_SPC, KC_SPC, 		
+		KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, 
+		KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_P7, KC_P8, KC_P9, KC_PPLS, 
+		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_P4, KC_P5, KC_P6, KC_PPLS, 
+		KC_LSFT, KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,KC_INS, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, 
+		KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI, KC_MENU, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT,KC_PENT),
+};

+ 17 - 0
keyboards/kbdfans/odin/soldered/keymaps/via/config.h

@@ -0,0 +1,17 @@
+/* Copyright 2021 Dztech
+ *
+ * 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 DYNAMIC_KEYMAP_LAYER_COUNT 2

+ 36 - 0
keyboards/kbdfans/odin/soldered/keymaps/via/keymap.c

@@ -0,0 +1,36 @@
+/* Copyright 2021 DZTECH <moyi4681@live.cn>
+ *
+ * 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_all(
+		KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_PGUP, KC_PGDN, 		
+		KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL,KC_BSPC,  KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, 
+		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_HOME, KC_P7, KC_P8, KC_P9, KC_PPLS, 
+		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_P4, KC_P5, KC_P6, KC_PPLS,
+		KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,KC_END, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, 
+		KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT,KC_PENT
+                        ),
+	[1]   =LAYOUT_all(
+		KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PAUS, KC_PAUS, KC_SPC, KC_SPC, KC_SPC, 		
+		KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, 
+		KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_P7, KC_P8, KC_P9, KC_PPLS, 
+		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_P4, KC_P5, KC_P6, KC_PPLS, 
+		KC_LSFT, KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,KC_INS, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, 
+		KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI, KC_MENU, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT,KC_PENT),
+};

+ 1 - 0
keyboards/kbdfans/odin/soldered/keymaps/via/rules.mk

@@ -0,0 +1 @@
+VIA_ENABLE = yes

+ 21 - 0
keyboards/kbdfans/odin/soldered/readme.md

@@ -0,0 +1,21 @@
+# ODIN SOLDERED
+
+A customizable soldered keyboard.
+
+* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681)
+* Hardware Supported: KBDFANS
+* Hardware Availability: [kbdfans](https://kbdfans.myshopify.com/)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make kbdfans/odin/soldered:default
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix
+* **Physical reset button**:press and hold the button on the back of the PCB, then plugin to PC
+* **Keycode in layout**: Press the key mapped to `RESET` if it is available
+
+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).

+ 24 - 0
keyboards/kbdfans/odin/soldered/rules.mk

@@ -0,0 +1,24 @@
+# MCU name
+MCU = STM32F072
+
+# Bootloader selection
+BOOTLOADER = stm32-dfu
+
+# 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
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = yes           # USB Nkey Rollover
+BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
+AUDIO_ENABLE = no           # Audio output
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE

+ 16 - 0
keyboards/kbdfans/odin/soldered/soldered.c

@@ -0,0 +1,16 @@
+/* Copyright 2020 Geekboards ltd. (geekboards.ru / geekboards.de)
+ *
+ * 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 "soldered.h"

+ 35 - 0
keyboards/kbdfans/odin/soldered/soldered.h

@@ -0,0 +1,35 @@
+ /* Copyright 2021 DZTECH
+  * 
+  * This program is free software: you can redistribute it and/or modify 
+  * it under the terms of the GNU General Public License as published by 
+  * the Free Software Foundation, either version 2 of the License, or 
+  * (at your option) any later version. 
+  * 
+  * This program is distributed in the hope that it will be useful, 
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of 
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
+  * GNU General Public License for more details. 
+  * 
+  * You should have received a copy of the GNU General Public License 
+  * along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+  */ 
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT_all( \
+    k00,      k02, k03, k04, k05,      k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G, k0H, k0I, k0J, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G, k1H, k1I, k1J, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D,      k2F, k2G, k2H, k2I, k2J, \
+    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B,      k3D,           k3G, k3H, k3I, k3J, \
+    k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B,      k4D, k4E, k4F, k4G, k4H, k4I, k4J, \
+    k50, k51, k52,                k56,                k5A, k5B, k5C, k5D, k5E, k5F, k5G, k5H, k5I, k5J  \
+) \
+{ \
+    {k00, KC_NO, k02, k03,   k04,   k05,   KC_NO, k07,   k08,   k09,   k0A, k0B, k0C,   k0D, k0E,   k0F,   k0G, k0H, k0I, k0J  }, \
+    {k10, k11,   k12, k13,   k14,   k15,   k16,   k17,   k18,   k19,   k1A, k1B, k1C,   k1D, k1E,   k1F,   k1G, k1H, k1I, k1J  }, \
+    {k20, k21,   k22, k23,   k24,   k25,   k26,   k27,   k28,   k29,   k2A, k2B, k2C,   k2D, KC_NO, k2F,   k2G, k2H, k2I, k2J  }, \
+    {k30, k31,   k32, k33,   k34,   k35,   k36,   k37,   k38,   k39,   k3A, k3B, KC_NO, k3D, KC_NO, KC_NO, k3G, k3H, k3I, k3J  }, \
+    {k40, k41,   k42, k43,   k44,   k45,   k46,   k47,   k48,   k49,   k4A, k4B, KC_NO, k4D, k4E,   k4F,   k4G, k4H, k4I, k4J  }, \
+    {k50, k51,   k52, KC_NO, KC_NO, KC_NO, k56,   KC_NO, KC_NO, KC_NO, k5A, k5B, k5C,   k5D, k5E,   k5F,   k5G, k5H, k5I, k5J  }  \
+}

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini