~ruther/qmk_firmware

9cc97302abcc41106bb1a6fc6eb626c1736b8ce7 — moyi4681 3 years ago 4c0ecd4
[Keyboard] add odin keyboard (#15150)

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
A keyboards/kbdfans/odin/rgb/config.h => keyboards/kbdfans/odin/rgb/config.h +90 -0
@@ 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

A keyboards/kbdfans/odin/rgb/info.json => keyboards/kbdfans/odin/rgb/info.json +10 -0
@@ 0,0 1,10 @@
{
    "keyboard_name": "ODIN_RGB", 
    "url": "", 
    "maintainer": "moyi4681", 
    "layouts": {
        "LAYOUT_all": {
            "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"x":16.5, "y":0}, {"x":17.5, "y":0}, {"x":18.5, "y":0}, {"x":19.5, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Backspace", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Num Lock", "x":16.5, "y":1.5}, {"label":"/", "x":17.5, "y":1.5}, {"label":"*", "x":18.5, "y":1.5}, {"label":"-", "x":19.5, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"7", "x":16.5, "y":2.5}, {"label":"8", "x":17.5, "y":2.5}, {"label":"9", "x":18.5, "y":2.5}, {"label":"+", "x":19.5, "y":2.5, "h":2}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"4", "x":16.5, "y":3.5}, {"label":"5", "x":17.5, "y":3.5}, {"label":"6", "x":18.5, "y":3.5}, {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"1", "x":16.5, "y":4.5}, {"label":"2", "x":17.5, "y":4.5}, {"label":"3", "x":18.5, "y":4.5}, {"label":"Enter", "x":19.5, "y":4.5, "h":2}, {"label":"\u2191", "x":15.25, "y":4.75}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":7}, {"label":"Alt", "x":10.75, "y":5.5, "w":1.5}, {"label":"Win", "x":12.25, "y":5.5, "w":1.5}, {"label":"0", "x":17.5, "y":5.5}, {"label":".", "x":18.5, "y":5.5}, {"label":"\u2190", "x":14.25, "y":5.75}, {"label":"\u2193", "x":15.25, "y":5.75}, {"label":"\u2192", "x":16.25, "y":5.75}]
        }
    }
}
\ No newline at end of file

A keyboards/kbdfans/odin/rgb/keymaps/default/keymap.c => keyboards/kbdfans/odin/rgb/keymaps/default/keymap.c +36 -0
@@ 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),
};

A keyboards/kbdfans/odin/rgb/keymaps/via/config.h => keyboards/kbdfans/odin/rgb/keymaps/via/config.h +17 -0
@@ 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

A keyboards/kbdfans/odin/rgb/keymaps/via/keymap.c => keyboards/kbdfans/odin/rgb/keymaps/via/keymap.c +36 -0
@@ 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),
};

A keyboards/kbdfans/odin/rgb/keymaps/via/rules.mk => keyboards/kbdfans/odin/rgb/keymaps/via/rules.mk +1 -0
@@ 0,0 1,1 @@
VIA_ENABLE = yes

A keyboards/kbdfans/odin/rgb/readme.md => keyboards/kbdfans/odin/rgb/readme.md +21 -0
@@ 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).

A keyboards/kbdfans/odin/rgb/rgb.c => keyboards/kbdfans/odin/rgb/rgb.c +59 -0
@@ 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

A keyboards/kbdfans/odin/rgb/rgb.h => keyboards/kbdfans/odin/rgb/rgb.h +35 -0
@@ 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}  \
}

A keyboards/kbdfans/odin/rgb/rules.mk => keyboards/kbdfans/odin/rgb/rules.mk +26 -0
@@ 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

A keyboards/kbdfans/odin/soldered/config.h => keyboards/kbdfans/odin/soldered/config.h +57 -0
@@ 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

A keyboards/kbdfans/odin/soldered/info.json => keyboards/kbdfans/odin/soldered/info.json +10 -0
@@ 0,0 1,10 @@
{
    "keyboard_name": "ODIN_SOLDERED", 
    "url": "", 
    "maintainer": "moyi4681", 
    "layouts": {
        "LAYOUT_all": {
            "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"x":16.5, "y":0}, {"x":17.5, "y":0}, {"x":18.5, "y":0}, {"x":19.5, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"x":13, "y":1.5}, {"label":"Backspace", "x":14, "y":1.5}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Num Lock", "x":16.5, "y":1.5}, {"label":"/", "x":17.5, "y":1.5}, {"label":"*", "x":18.5, "y":1.5}, {"label":"-", "x":19.5, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"7", "x":16.5, "y":2.5}, {"label":"8", "x":17.5, "y":2.5}, {"label":"9", "x":18.5, "y":2.5}, {"label":"+", "x":19.5, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"4", "x":16.5, "y":3.5}, {"label":"5", "x":17.5, "y":3.5}, {"label":"6", "x":18.5, "y":3.5}, {"x":19.5, "y":3.5}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, {"x":14, "y":4.5}, {"label":"1", "x":16.5, "y":4.5}, {"label":"2", "x":17.5, "y":4.5}, {"label":"3", "x":18.5, "y":4.5}, {"label":"Enter", "x":19.5, "y":4.5}, {"label":"\u2191", "x":15.25, "y":4.75}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"x":10, "y":5.5}, {"x":11, "y":5.5}, {"x":12, "y":5.5}, {"x":13, "y":5.5}, {"label":"0", "x":17.5, "y":5.5}, {"label":".", "x":18.5, "y":5.5}, {"x":19.5, "y":5.5}, {"label":"\u2190", "x":14.25, "y":5.75}, {"label":"\u2193", "x":15.25, "y":5.75}, {"label":"\u2192", "x":16.25, "y":5.75}]
        }
    }
}
\ No newline at end of file

A keyboards/kbdfans/odin/soldered/keymaps/default/keymap.c => keyboards/kbdfans/odin/soldered/keymaps/default/keymap.c +36 -0
@@ 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),
};
\ No newline at end of file

A keyboards/kbdfans/odin/soldered/keymaps/via/config.h => keyboards/kbdfans/odin/soldered/keymaps/via/config.h +17 -0
@@ 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
\ No newline at end of file

A keyboards/kbdfans/odin/soldered/keymaps/via/keymap.c => keyboards/kbdfans/odin/soldered/keymaps/via/keymap.c +36 -0
@@ 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),
};
\ No newline at end of file

A keyboards/kbdfans/odin/soldered/keymaps/via/rules.mk => keyboards/kbdfans/odin/soldered/keymaps/via/rules.mk +1 -0
@@ 0,0 1,1 @@
VIA_ENABLE = yes
\ No newline at end of file

A keyboards/kbdfans/odin/soldered/readme.md => keyboards/kbdfans/odin/soldered/readme.md +21 -0
@@ 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).

A keyboards/kbdfans/odin/soldered/rules.mk => keyboards/kbdfans/odin/soldered/rules.mk +24 -0
@@ 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

A keyboards/kbdfans/odin/soldered/soldered.c => keyboards/kbdfans/odin/soldered/soldered.c +16 -0
@@ 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"
\ No newline at end of file

A keyboards/kbdfans/odin/soldered/soldered.h => keyboards/kbdfans/odin/soldered/soldered.h +35 -0
@@ 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  }  \
}