summary refs log tree commit diff
diff options
context:
space:
mode:
authorQMK Bot <hello@qmk.fm>2023-04-15 20:37:06 +0000
committerQMK Bot <hello@qmk.fm>2023-04-15 20:37:06 +0000
commit976d950bb5b5c1f08818d93b0600ce974b7a8ee7 (patch)
tree9432b64e9f5a8c54676e8d56836be239cfce20bb
parent3569f394852f4000f78838ca40f918075d159645 (diff)
parent75b7140cbd8148199e6c3c38a18f2ed68a1eb804 (diff)
Merge remote-tracking branch 'origin/master' into develop
-rw-r--r--keyboards/dotmod/dymium65/config.h36
-rw-r--r--keyboards/dotmod/dymium65/dymium65.c54
-rw-r--r--keyboards/dotmod/dymium65/info.json137
-rw-r--r--keyboards/dotmod/dymium65/keymaps/default/keymap.c71
-rw-r--r--keyboards/dotmod/dymium65/keymaps/default/rules.mk1
-rw-r--r--keyboards/dotmod/dymium65/keymaps/via/keymap.c71
-rw-r--r--keyboards/dotmod/dymium65/keymaps/via/rules.mk2
-rw-r--r--keyboards/dotmod/dymium65/readme.md27
-rw-r--r--keyboards/dotmod/dymium65/rules.mk1
9 files changed, 400 insertions, 0 deletions
diff --git a/keyboards/dotmod/dymium65/config.h b/keyboards/dotmod/dymium65/config.h
new file mode 100644
index 0000000000..46d442fc87
--- /dev/null
+++ b/keyboards/dotmod/dymium65/config.h
@@ -0,0 +1,36 @@
+/* Copyright 2023 Finalkey
+ * Copyright 2023 LiWenLiu <https://github.com/LiuLiuQMK>
+ *
+ * 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
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+#define FORCE_NKRO
+
+// The pin connected to the data pin of the LEDs
+#define RGB_DI_PIN D7
+// The number of LEDs connected
+#define RGB_MATRIX_LED_COUNT 66
+#define RGB_MATRIX_KEYPRESSES
+#define RGB_MATRIX_KEYRELEASES
+#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
+#define RGB_DISABLE_AFTER_TIMEOUT 0
+#define RGB_MATRIX_LED_FLUSH_LIMIT 16
+#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
diff --git a/keyboards/dotmod/dymium65/dymium65.c b/keyboards/dotmod/dymium65/dymium65.c
new file mode 100644
index 0000000000..45eaa0251c
--- /dev/null
+++ b/keyboards/dotmod/dymium65/dymium65.c
@@ -0,0 +1,54 @@
+/* Copyright 2023 Finalkey
+ * Copyright 2023 LiWenLiu <https://github.com/LiuLiuQMK>
+ *
+ * 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 "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = {
+    {
+        {0,      NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED},
+        {NO_LED, 1,      2,      3,      4,      5,      6,      7,      8,      9,      10,     11,     12,     13,     NO_LED, NO_LED},
+        {28,     27,     26,     25,     24,     23,     22,     21,     20,     19,     18,     17,     16,     15,     NO_LED, NO_LED},
+        {29,     30,     31,     32,     33,     34,     35,     36,     37,     38,     39,     40,     NO_LED, 41,     14,         42},
+        {55,     NO_LED, 54,     53,     52,     51,     50,     49,     48,     47,     46,     45,     NO_LED, 44,     43,     NO_LED},
+        {56,     57,     58,     NO_LED, NO_LED, NO_LED, 59,     NO_LED, NO_LED, 60,     61,     NO_LED, 62,     63,     64,         65}
+    }, {
+        {14,  0}, {28,  0}, {42,  0}, {56,  0}, {70,  0}, {84,  0}, {98,  0}, {112,  0}, {126,  0}, {140,  0}, {154,  0}, {168,  0}, {182,  0},{196,  0},
+        {224, 16},{196, 16},{182, 16},{168, 16},{154, 16},{140, 16},{126, 16},{112, 16}, {98, 16},  {84, 16},  {70, 16},  {56, 16},  {42, 16} ,{28, 16},  {14, 16},
+        {14, 32}, {28, 32}, {42, 32}, {56, 32}, {70, 32}, {84, 32}, {98, 32}, {112, 32}, {126, 32}, {140, 32}, {154, 32}, {168, 32},           {196, 32}, {224, 32},
+        {224, 48},          {196, 48},{168, 48},{154, 48},{140, 48},{126, 48},{112, 48}, {98, 48},  {84, 48},  {70, 48},  {56, 48},            {42, 48},  {14, 48},
+        {14, 64}, {28, 64}, {42, 64},                               {98, 64},                       {140, 64}, {154, 64}, {168, 64}, {182, 64},{196, 64}, {224, 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, 12, 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
+    }
+};
+
+bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
+    if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) {
+        return false;
+    }
+    if (host_keyboard_led_state().caps_lock) {
+        RGB_MATRIX_INDICATOR_SET_COLOR(29, 255, 255, 255);
+    }
+    return true;
+}
+#endif
diff --git a/keyboards/dotmod/dymium65/info.json b/keyboards/dotmod/dymium65/info.json
new file mode 100644
index 0000000000..31f516507f
--- /dev/null
+++ b/keyboards/dotmod/dymium65/info.json
@@ -0,0 +1,137 @@
+{
+    "keyboard_name": "DYMIUM65",
+    "manufacturer": "RDR",
+    "url": "https://github.com/LiuLiuQMK",
+    "maintainer": "LiWenLiu",
+    "usb": {
+        "vid": "0x5678",
+        "pid": "0x5058",
+        "device_version": "0.0.1"
+    },
+    "diode_direction": "ROW2COL",
+    "matrix_pins": {
+        "cols": ["E6", "B0", "B1", "B2", "B3", "B7", "D2", "D3", "D5", "D4", "D6", "C6", "B4", "B5", "B6","E2"],
+        "rows": ["F7", "F6", "F5", "F4", "F1","F0"]
+    },
+    "processor": "atmega32u4",
+    "bootloader": "atmel-dfu",
+    "features": {
+		"bootmagic": true,
+		"extrakey": true,
+		"console": false,
+		"command": false,
+		"nkro": true,
+		"mousekey": true,
+		"rgb_matrix": true
+    },
+    "build": {
+        "lto": true
+    },
+    "encoder": {
+        "enabled": true,
+        "rotary": [
+            {"pin_a": "C7", "pin_b": "D1"}
+        ]
+    },
+    "rgb_matrix": {
+        "driver": "WS2812",
+        "animations": {
+            "breathing": true,
+            "band_val": true,
+            "band_pinwheel_sat": true,
+            "band_pinwheel_val": true,
+            "cycle_all": true,
+            "cycle_left_right": true,
+            "cycle_up_down": true,
+            "rainbow_moving_chevron": true,
+            "cycle_out_in_dual": true,
+            "cycle_spiral": true,
+            "rainbow_beacon": true,
+            "rainbow_pinwheels": true,
+            "raindrops": true,
+            "pixel_flow": true,
+            "solid_reactive": true,
+            "solid_reactive_multiwide": true,
+            "solid_reactive_cross": true,
+            "solid_reactive_nexus": true,
+            "splash": true
+        }
+	},
+    "layouts": {
+        "LAYOUT": {
+            "layout": [
+                {"matrix": [0, 0 ], "x": 0, "y": 0},
+                {"matrix": [1, 1 ], "x": 1, "y": 0},
+                {"matrix": [1, 2 ], "x": 2, "y": 0},
+                {"matrix": [1, 3 ], "x": 3, "y": 0},
+                {"matrix": [1, 4 ], "x": 4, "y": 0},
+                {"matrix": [1, 5 ], "x": 5, "y": 0},
+                {"matrix": [1, 6 ], "x": 6, "y": 0},
+                {"matrix": [1, 7 ], "x": 7, "y": 0},
+                {"matrix": [1, 8 ], "x": 8, "y": 0},
+                {"matrix": [1, 9 ], "x": 9, "y": 0},
+                {"matrix": [1, 10], "x": 10, "y": 0},
+                {"matrix": [1, 11], "x": 11, "y": 0},
+                {"matrix": [1, 12], "x": 12, "y": 0},
+                {"matrix": [1, 13], "w": 2, "x": 13, "y": 0},
+                {"matrix": [4, 15], "x": 16, "y": 0},
+
+                {"matrix": [2, 0 ], "w": 1.5, "x": 0, "y": 1},
+                {"matrix": [2, 1 ], "x": 1.5, "y": 1},
+                {"matrix": [2, 2 ], "x": 2.5, "y": 1},
+                {"matrix": [2, 3 ], "x": 3.5, "y": 1},
+                {"matrix": [2, 4 ], "x": 4.5, "y": 1},
+                {"matrix": [2, 5 ], "x": 5.5, "y": 1},
+                {"matrix": [2, 6 ], "x": 6.5, "y": 1},
+                {"matrix": [2, 7 ], "x": 7.5, "y": 1},
+                {"matrix": [2, 8 ], "x": 8.5, "y": 1},
+                {"matrix": [2, 9 ], "x": 9.5, "y": 1},
+                {"matrix": [2, 10], "x": 10.5, "y": 1},
+                {"matrix": [2, 11], "x": 11.5, "y": 1},
+                {"matrix": [2, 12], "x": 12.5, "y": 1},
+                {"matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 1},
+                {"matrix": [3, 14], "x": 16, "y": 1},
+
+                {"matrix": [3, 0 ], "w": 1.75, "x": 0, "y": 2},
+                {"matrix": [3, 1 ], "x": 1.75, "y": 2},
+                {"matrix": [3, 2 ], "x": 2.75, "y": 2},
+                {"matrix": [3, 3 ], "x": 3.75, "y": 2},
+                {"matrix": [3, 4 ], "x": 4.75, "y": 2},
+                {"matrix": [3, 5 ], "x": 5.75, "y": 2},
+                {"matrix": [3, 6 ], "x": 6.75, "y": 2},
+                {"matrix": [3, 7 ], "x": 7.75, "y": 2},
+                {"matrix": [3, 8 ], "x": 8.75, "y": 2},
+                {"matrix": [3, 9 ], "x": 9.75, "y": 2},
+                {"matrix": [3, 10], "x": 10.75, "y": 2},
+                {"matrix": [3, 11], "x": 11.75, "y": 2},
+                {"matrix": [3, 13], "w": 2.25, "x": 12.75, "y": 2},
+                {"matrix": [3, 15], "x": 16, "y": 2},
+
+                {"matrix": [4, 0 ], "w": 2.25, "x": 0, "y": 3},
+                {"matrix": [4, 2 ], "x": 2.25, "y": 3},
+                {"matrix": [4, 3 ], "x": 3.25, "y": 3},
+                {"matrix": [4, 4 ], "x": 4.25, "y": 3},
+                {"matrix": [4, 5 ], "x": 5.25, "y": 3},
+                {"matrix": [4, 6 ], "x": 6.25, "y": 3},
+                {"matrix": [4, 7 ], "x": 7.25, "y": 3},
+                {"matrix": [4, 8 ], "x": 8.25, "y": 3},
+                {"matrix": [4, 9 ], "x": 9.25, "y": 3},
+                {"matrix": [4, 10], "x": 10.25, "y": 3},
+                {"matrix": [4, 11], "x": 11.25, "y": 3},
+                {"matrix": [4, 13], "w": 1.75, "x": 12.25, "y": 3},
+                {"matrix": [4, 14], "x": 15.25, "y": 3},
+
+                {"matrix": [5, 0 ], "w": 1.25, "x": 0, "y": 4},
+                {"matrix": [5, 1 ], "w": 1.25, "x": 1.25, "y": 4},
+                {"matrix": [5, 2 ], "w": 1.25, "x": 2.5, "y": 4},
+                {"matrix": [5, 6 ], "w": 6.25, "x": 3.75, "y": 4},
+                {"matrix": [5, 9 ], "x": 10, "y": 4},
+                {"matrix": [5, 10], "x": 11, "y": 4},
+                {"matrix": [5, 12], "x": 12, "y": 4},
+                {"matrix": [5, 13], "x": 14.25, "y": 4},
+                {"matrix": [5, 14], "x": 15.25, "y": 4},
+                {"matrix": [5, 15], "x": 16.25, "y": 4}
+            ]
+        }
+    }
+}
diff --git a/keyboards/dotmod/dymium65/keymaps/default/keymap.c b/keyboards/dotmod/dymium65/keymaps/default/keymap.c
new file mode 100644
index 0000000000..483746b53f
--- /dev/null
+++ b/keyboards/dotmod/dymium65/keymaps/default/keymap.c
@@ -0,0 +1,71 @@
+/* Copyright 2023 Finalkey
+ * Copyright 2023 LiWenLiu <https://github.com/LiuLiuQMK>
+ *
+ * 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
+
+// Layer names
+enum ats_layers{
+  // - Base layer:
+  _BASE,
+  // - Symbols, numbers, and functions:
+  _FN,
+  // - Alternate Function layer:
+  _LN,
+  // - Alternate Function layer:
+  _MT
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    [_BASE] = LAYOUT(
+    KC_ESC,        KC_1,        KC_2,        KC_3,  KC_4,  KC_5,  KC_6,      KC_7,  KC_8,  KC_9,         KC_0,         KC_MINUS,        KC_EQUAL,         KC_BACKSPACE,   KC_AUDIO_MUTE,
+    KC_TAB,        KC_Q,        KC_W,        KC_E,  KC_R,  KC_T,  KC_Y,      KC_U,  KC_I,  KC_O,         KC_P,         KC_LEFT_BRACKET, KC_RIGHT_BRACKET, KC_BACKSLASH,   KC_PAGE_UP,
+    KC_CAPS_LOCK,  KC_A,        KC_S,        KC_D,  KC_F,  KC_G,  KC_H,      KC_J,  KC_K,  KC_L,         KC_SEMICOLON, KC_QUOTE,                          KC_ENTER,       KC_PAGE_DOWN,
+    KC_LEFT_SHIFT,              KC_Z,        KC_X,  KC_C,  KC_V,  KC_B,      KC_N,  KC_M,  KC_COMMA,     KC_DOT,       KC_SLASH,                          KC_RIGHT_SHIFT, KC_UP,
+    KC_LEFT_CTRL,  KC_LEFT_GUI, KC_LEFT_ALT,                      KC_SPACE,                KC_RIGHT_ALT, MO(_FN),                       KC_RIGHT_CTRL,    KC_LEFT,        KC_DOWN,        KC_RIGHT
+    ),
+    [_FN] = LAYOUT(
+    KC_GRAVE,      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_BACKSPACE,   KC_TRNS,
+    RGB_TOG,       KC_Q,        KC_W,        KC_E,  KC_R,  KC_T,  KC_Y,      KC_U,  KC_I,  KC_O,         KC_P,         RGB_HUI,         RGB_HUD,          KC_BACKSLASH,   KC_TRNS,
+    KC_CAPS_LOCK,  KC_A,        KC_S,        KC_D,  KC_F,  KC_G,  KC_H,      KC_J,  KC_K,  KC_L,         RGB_SAD,      RGB_SAI,                           KC_ENTER,       KC_TRNS,
+    KC_LEFT_SHIFT,              KC_Z,        KC_X,  KC_C,  KC_V,  KC_B,      KC_N,  KC_M,  KC_COMMA,     MO(_LN),      KC_SLASH,                          KC_RIGHT_SHIFT, RGB_VAI,
+    KC_LEFT_CTRL,  KC_LEFT_GUI, KC_LEFT_ALT,                      KC_SPACE,                RGB_MOD,      _______,                       KC_RIGHT_CTRL,    RGB_SPD,        RGB_VAD,        RGB_SPI
+    ),
+    [_LN] = LAYOUT(
+    KC_ESC,        KC_1,        KC_2,        KC_3,  KC_4,  KC_5,  KC_6,      KC_7,  KC_8,  KC_9,         KC_0,         KC_MINUS,        KC_EQUAL,         KC_BACKSPACE,   KC_TRNS,
+    KC_TAB,        KC_Q,        KC_W,        KC_E,  KC_R,  KC_T,  KC_Y,      KC_U,  KC_I,  KC_O,         KC_P,         KC_LEFT_BRACKET, KC_RIGHT_BRACKET, KC_BACKSLASH,   KC_TRNS,
+    KC_CAPS_LOCK,  KC_A,        KC_S,        KC_D,  KC_F,  KC_G,  KC_H,      KC_J,  KC_K,  KC_L,         KC_SEMICOLON, KC_QUOTE,                          KC_ENTER,       KC_TRNS,
+    KC_LEFT_SHIFT,              KC_Z,        KC_X,  KC_C,  KC_V,  KC_B,      KC_N,  KC_M,  MO(_MT),      _______,      KC_SLASH,                          KC_RIGHT_SHIFT, KC_UP,
+    KC_LEFT_CTRL,  KC_LEFT_GUI, KC_LEFT_ALT,                      KC_SPACE,                KC_RIGHT_ALT, _______,                       KC_RIGHT_CTRL,    KC_LEFT,        KC_DOWN,        KC_RIGHT
+    ),
+    [_MT] = LAYOUT(
+    KC_ESC,        KC_1,        KC_2,        KC_3,  KC_4,  KC_5,  KC_6,      KC_7,  KC_8,  KC_9,         KC_0,         KC_MINUS,        KC_EQUAL,         KC_BACKSPACE,   KC_TRNS,
+    KC_TAB,        KC_Q,        KC_W,        KC_E,  KC_R,  KC_T,  KC_Y,      KC_U,  KC_I,  KC_O,         KC_P,         KC_LEFT_BRACKET, KC_RIGHT_BRACKET, KC_BACKSLASH,   KC_TRNS,
+    KC_CAPS_LOCK,  KC_A,        KC_S,        KC_D,  KC_F,  KC_G,  KC_H,      KC_J,  KC_K,  KC_L,         KC_SEMICOLON, KC_QUOTE,                          KC_ENTER,       KC_TRNS,
+    KC_LEFT_SHIFT,              KC_Z,        KC_X,  KC_C,  KC_V,  KC_B,      KC_N,  KC_M,  _______,      _______,      KC_SLASH,                          KC_RIGHT_SHIFT, KC_UP,
+    KC_LEFT_CTRL,  KC_LEFT_GUI, KC_LEFT_ALT,                      KC_SPACE,                KC_RIGHT_ALT, _______,                       KC_RIGHT_CTRL,    KC_LEFT,        KC_DOWN,        KC_RIGHT
+    )
+};
+
+
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+    [_BASE] =   { ENCODER_CCW_CW(KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP) },
+    [_FN] =     { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) },
+    [_LN] =     { ENCODER_CCW_CW(RGB_SAD, RGB_SAI) },
+    [_MT] =     { ENCODER_CCW_CW(RGB_SPD, RGB_SPI) },
+};
+#endif
diff --git a/keyboards/dotmod/dymium65/keymaps/default/rules.mk b/keyboards/dotmod/dymium65/keymaps/default/rules.mk
new file mode 100644
index 0000000000..a40474b4d5
--- /dev/null
+++ b/keyboards/dotmod/dymium65/keymaps/default/rules.mk
@@ -0,0 +1 @@
+ENCODER_MAP_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/dotmod/dymium65/keymaps/via/keymap.c b/keyboards/dotmod/dymium65/keymaps/via/keymap.c
new file mode 100644
index 0000000000..483746b53f
--- /dev/null
+++ b/keyboards/dotmod/dymium65/keymaps/via/keymap.c
@@ -0,0 +1,71 @@
+/* Copyright 2023 Finalkey
+ * Copyright 2023 LiWenLiu <https://github.com/LiuLiuQMK>
+ *
+ * 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
+
+// Layer names
+enum ats_layers{
+  // - Base layer:
+  _BASE,
+  // - Symbols, numbers, and functions:
+  _FN,
+  // - Alternate Function layer:
+  _LN,
+  // - Alternate Function layer:
+  _MT
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    [_BASE] = LAYOUT(
+    KC_ESC,        KC_1,        KC_2,        KC_3,  KC_4,  KC_5,  KC_6,      KC_7,  KC_8,  KC_9,         KC_0,         KC_MINUS,        KC_EQUAL,         KC_BACKSPACE,   KC_AUDIO_MUTE,
+    KC_TAB,        KC_Q,        KC_W,        KC_E,  KC_R,  KC_T,  KC_Y,      KC_U,  KC_I,  KC_O,         KC_P,         KC_LEFT_BRACKET, KC_RIGHT_BRACKET, KC_BACKSLASH,   KC_PAGE_UP,
+    KC_CAPS_LOCK,  KC_A,        KC_S,        KC_D,  KC_F,  KC_G,  KC_H,      KC_J,  KC_K,  KC_L,         KC_SEMICOLON, KC_QUOTE,                          KC_ENTER,       KC_PAGE_DOWN,
+    KC_LEFT_SHIFT,              KC_Z,        KC_X,  KC_C,  KC_V,  KC_B,      KC_N,  KC_M,  KC_COMMA,     KC_DOT,       KC_SLASH,                          KC_RIGHT_SHIFT, KC_UP,
+    KC_LEFT_CTRL,  KC_LEFT_GUI, KC_LEFT_ALT,                      KC_SPACE,                KC_RIGHT_ALT, MO(_FN),                       KC_RIGHT_CTRL,    KC_LEFT,        KC_DOWN,        KC_RIGHT
+    ),
+    [_FN] = LAYOUT(
+    KC_GRAVE,      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_BACKSPACE,   KC_TRNS,
+    RGB_TOG,       KC_Q,        KC_W,        KC_E,  KC_R,  KC_T,  KC_Y,      KC_U,  KC_I,  KC_O,         KC_P,         RGB_HUI,         RGB_HUD,          KC_BACKSLASH,   KC_TRNS,
+    KC_CAPS_LOCK,  KC_A,        KC_S,        KC_D,  KC_F,  KC_G,  KC_H,      KC_J,  KC_K,  KC_L,         RGB_SAD,      RGB_SAI,                           KC_ENTER,       KC_TRNS,
+    KC_LEFT_SHIFT,              KC_Z,        KC_X,  KC_C,  KC_V,  KC_B,      KC_N,  KC_M,  KC_COMMA,     MO(_LN),      KC_SLASH,                          KC_RIGHT_SHIFT, RGB_VAI,
+    KC_LEFT_CTRL,  KC_LEFT_GUI, KC_LEFT_ALT,                      KC_SPACE,                RGB_MOD,      _______,                       KC_RIGHT_CTRL,    RGB_SPD,        RGB_VAD,        RGB_SPI
+    ),
+    [_LN] = LAYOUT(
+    KC_ESC,        KC_1,        KC_2,        KC_3,  KC_4,  KC_5,  KC_6,      KC_7,  KC_8,  KC_9,         KC_0,         KC_MINUS,        KC_EQUAL,         KC_BACKSPACE,   KC_TRNS,
+    KC_TAB,        KC_Q,        KC_W,        KC_E,  KC_R,  KC_T,  KC_Y,      KC_U,  KC_I,  KC_O,         KC_P,         KC_LEFT_BRACKET, KC_RIGHT_BRACKET, KC_BACKSLASH,   KC_TRNS,
+    KC_CAPS_LOCK,  KC_A,        KC_S,        KC_D,  KC_F,  KC_G,  KC_H,      KC_J,  KC_K,  KC_L,         KC_SEMICOLON, KC_QUOTE,                          KC_ENTER,       KC_TRNS,
+    KC_LEFT_SHIFT,              KC_Z,        KC_X,  KC_C,  KC_V,  KC_B,      KC_N,  KC_M,  MO(_MT),      _______,      KC_SLASH,                          KC_RIGHT_SHIFT, KC_UP,
+    KC_LEFT_CTRL,  KC_LEFT_GUI, KC_LEFT_ALT,                      KC_SPACE,                KC_RIGHT_ALT, _______,                       KC_RIGHT_CTRL,    KC_LEFT,        KC_DOWN,        KC_RIGHT
+    ),
+    [_MT] = LAYOUT(
+    KC_ESC,        KC_1,        KC_2,        KC_3,  KC_4,  KC_5,  KC_6,      KC_7,  KC_8,  KC_9,         KC_0,         KC_MINUS,        KC_EQUAL,         KC_BACKSPACE,   KC_TRNS,
+    KC_TAB,        KC_Q,        KC_W,        KC_E,  KC_R,  KC_T,  KC_Y,      KC_U,  KC_I,  KC_O,         KC_P,         KC_LEFT_BRACKET, KC_RIGHT_BRACKET, KC_BACKSLASH,   KC_TRNS,
+    KC_CAPS_LOCK,  KC_A,        KC_S,        KC_D,  KC_F,  KC_G,  KC_H,      KC_J,  KC_K,  KC_L,         KC_SEMICOLON, KC_QUOTE,                          KC_ENTER,       KC_TRNS,
+    KC_LEFT_SHIFT,              KC_Z,        KC_X,  KC_C,  KC_V,  KC_B,      KC_N,  KC_M,  _______,      _______,      KC_SLASH,                          KC_RIGHT_SHIFT, KC_UP,
+    KC_LEFT_CTRL,  KC_LEFT_GUI, KC_LEFT_ALT,                      KC_SPACE,                KC_RIGHT_ALT, _______,                       KC_RIGHT_CTRL,    KC_LEFT,        KC_DOWN,        KC_RIGHT
+    )
+};
+
+
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+    [_BASE] =   { ENCODER_CCW_CW(KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP) },
+    [_FN] =     { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) },
+    [_LN] =     { ENCODER_CCW_CW(RGB_SAD, RGB_SAI) },
+    [_MT] =     { ENCODER_CCW_CW(RGB_SPD, RGB_SPI) },
+};
+#endif
diff --git a/keyboards/dotmod/dymium65/keymaps/via/rules.mk b/keyboards/dotmod/dymium65/keymaps/via/rules.mk
new file mode 100644
index 0000000000..4253f570f0
--- /dev/null
+++ b/keyboards/dotmod/dymium65/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/dotmod/dymium65/readme.md b/keyboards/dotmod/dymium65/readme.md
new file mode 100644
index 0000000000..4d5dff4e84
--- /dev/null
+++ b/keyboards/dotmod/dymium65/readme.md
@@ -0,0 +1,27 @@
+# dymium65
+
+A customizable 65% encoder keyboard.
+
+![dymium65](https://i.imgur.com/5qAl7hgh.png)
+
+* Keyboard Maintainer: [LiWenLiu](https://github.com/LiuLiuQMK)
+* Hardware Supported: dymium65 PCB with atmega32u4 microcontroller
+* Hardware Availability: Coming soon
+
+Make example for this keyboard (after setting up your build environment):
+
+    make dotmod/dymium65:default
+
+Flashing example for this keyboard:
+
+    make dotmod/dymium65:default:flash
+
+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).
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+* **Bootmagic reset**: Hold down the top left key and plug in the keyboard
+* **Physical reset button**: Briefly press the button on the back of the PCB
+* **Keycode in layout**: There is no key mapped to `QK_BOOT` in the pre-created keymaps, but you may assign this key in any keymaps you create.
diff --git a/keyboards/dotmod/dymium65/rules.mk b/keyboards/dotmod/dymium65/rules.mk
new file mode 100644
index 0000000000..7ff128fa69
--- /dev/null
+++ b/keyboards/dotmod/dymium65/rules.mk
@@ -0,0 +1 @@
+# This file intentionally left blank
\ No newline at end of file