Browse Source

Add ergo-v-1 keyboard (#25908)

VPavliashvili 2 months ago
parent
commit
ffe57097eb

+ 122 - 0
keyboards/handwired/ergo_v_1/keyboard.json

@@ -0,0 +1,122 @@
+{
+    "keyboard_name": "Ergo-V-1",
+    "manufacturer": "wizardkeyboards",
+    "url": "https://wizardkeyboards.com/",
+    "maintainer": "qmk",
+    "usb": {
+        "vid": "0xFEED",
+        "pid": "0x97C4",
+        "device_version": "0.0.1"
+    },
+    "features": {
+        "bootmagic": true,
+        "extrakey": true,
+        "mousekey": true
+    },
+    "qmk": {
+        "locking": {
+            "enabled": true,
+            "resync": true
+        }
+    },
+    "matrix_pins": {
+        "cols": ["D4", "C6", "D7", "E6", "B4", "B5"],
+        "rows": ["F6", "F7", "B1", "B3", "B2", "B6"]
+    },
+    "diode_direction": "COL2ROW",
+    "split": {
+        "enabled": true,
+        "serial": {
+            "pin": "D0"
+        }
+    },
+    "development_board": "promicro",
+    "layouts": {
+        "LAYOUT": {
+            "layout": [
+                {"matrix": [0, 0], "x": 0, "y": 0},
+                {"matrix": [0, 1], "x": 1, "y": 0},
+                {"matrix": [0, 2], "x": 2, "y": 0},
+                {"matrix": [0, 3], "x": 3, "y": 0},
+                {"matrix": [0, 4], "x": 4, "y": 0},
+                {"matrix": [0, 5], "x": 5, "y": 0},
+
+                {"matrix": [6, 0], "x": 11, "y": 0},
+                {"matrix": [6, 1], "x": 12, "y": 0},
+                {"matrix": [6, 2], "x": 13, "y": 0},
+                {"matrix": [6, 3], "x": 14, "y": 0},
+                {"matrix": [6, 4], "x": 15, "y": 0},
+                {"matrix": [6, 5], "x": 16, "y": 0},
+
+                {"matrix": [1, 0], "x": 0, "y": 1},
+                {"matrix": [1, 1], "x": 1, "y": 1},
+                {"matrix": [1, 2], "x": 2, "y": 1},
+                {"matrix": [1, 3], "x": 3, "y": 1},
+                {"matrix": [1, 4], "x": 4, "y": 1},
+                {"matrix": [1, 5], "x": 5, "y": 1},
+
+                {"matrix": [7, 0], "x": 11, "y": 1},
+                {"matrix": [7, 1], "x": 12, "y": 1},
+                {"matrix": [7, 2], "x": 13, "y": 1},
+                {"matrix": [7, 3], "x": 14, "y": 1},
+                {"matrix": [7, 4], "x": 15, "y": 1},
+                {"matrix": [7, 5], "x": 16, "y": 1},
+
+                {"matrix": [2, 0], "x": 0, "y": 2},
+                {"matrix": [2, 1], "x": 1, "y": 2},
+                {"matrix": [2, 2], "x": 2, "y": 2},
+                {"matrix": [2, 3], "x": 3, "y": 2},
+                {"matrix": [2, 4], "x": 4, "y": 2},
+                {"matrix": [2, 5], "x": 5, "y": 2},
+
+                {"matrix": [8, 0], "x": 11, "y": 2},
+                {"matrix": [8, 1], "x": 12, "y": 2},
+                {"matrix": [8, 2], "x": 13, "y": 2},
+                {"matrix": [8, 3], "x": 14, "y": 2},
+                {"matrix": [8, 4], "x": 15, "y": 2},
+                {"matrix": [8, 5], "x": 16, "y": 2},
+
+                {"matrix": [3, 0], "x": 0, "y": 3},
+                {"matrix": [3, 1], "x": 1, "y": 3},
+                {"matrix": [3, 2], "x": 2, "y": 3},
+                {"matrix": [3, 3], "x": 3, "y": 3},
+                {"matrix": [3, 4], "x": 4, "y": 3},
+                {"matrix": [3, 5], "x": 5, "y": 3},
+
+                {"matrix": [9, 0], "x": 11, "y": 3},
+                {"matrix": [9, 1], "x": 12, "y": 3},
+                {"matrix": [9, 2], "x": 13, "y": 3},
+                {"matrix": [9, 3], "x": 14, "y": 3},
+                {"matrix": [9, 4], "x": 15, "y": 3},
+                {"matrix": [9, 5], "x": 16, "y": 3},
+
+                {"matrix": [4, 1], "x": 1, "y": 4},
+                {"matrix": [4, 2], "x": 2, "y": 4},
+                {"matrix": [4, 3], "x": 3, "y": 4},
+
+                {"matrix": [10, 2], "x": 13, "y": 4},
+                {"matrix": [10, 3], "x": 14, "y": 4},
+                {"matrix": [10, 4], "x": 15, "y": 4},
+
+                {"matrix": [4, 5], "x": 4, "y": 5},
+                {"matrix": [5, 5], "x": 5, "y": 5},
+
+                {"matrix": [11, 0], "x": 11, "y": 5},
+                {"matrix": [10, 0], "x": 12, "y": 5},
+
+                {"matrix": [4, 4], "x": 4, "y": 4},
+                {"matrix": [5, 4], "x": 6, "y": 7},
+                {"matrix": [5, 3], "x": 6, "y": 6},
+                {"matrix": [5, 1], "x": 7, "y": 6},
+
+                {"matrix": [11, 4], "x": 9, "y": 6}
+                {"matrix": [11, 2], "x": 10, "y": 6},
+                {"matrix": [11, 1], "x": 10, "y": 7},
+                {"matrix": [10, 1], "x": 12, "y": 4},
+
+                {"matrix": [5, 2], "x": 7, "y": 7},
+                {"matrix": [11, 3], "x": 9, "y": 7},
+            ]
+        }
+    }
+}

+ 74 - 0
keyboards/handwired/ergo_v_1/keymaps/default/keymap.c

@@ -0,0 +1,74 @@
+// Copyright 2025 https://github.com/wizarddata
+// Copyright 2025 https://github.com/VPavliashvili
+// SPDX-License-Identifier: GPL-2.0+
+
+#include QMK_KEYBOARD_H
+
+enum layers {
+    _MN, // main
+    _FN, // fn
+    _MS, // mouse movements
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  [_MN] = LAYOUT(
+//  ┌───────┬───────┬───────┬───────┬───────┬───────┐                                         ┌───────┬───────┬───────┬───────┬───────┬───────┐
+     KC_GRV ,KC_1   ,KC_2   ,KC_3   ,KC_4   ,KC_5   ,                                          KC_6   ,KC_7   ,KC_8   ,KC_9   ,KC_0   ,KC_BSLS,
+//  ├───────┼───────┼───────┼───────┼───────┼───────┤                                         ├───────┼───────┼───────┼───────┼───────┼───────┤
+     KC_TAB ,KC_Q   ,KC_W   ,KC_E   ,KC_R   ,KC_T   ,                                          KC_Y   ,KC_U   ,KC_I   ,KC_O   ,KC_P   ,KC_ENT ,
+//  ├───────┼───────┼───────┼───────┼───────┼───────┤                                         ├───────┼───────┼───────┼───────┼───────┼───────┤
+     KC_ESC ,KC_A   ,KC_S   ,KC_D   ,KC_F   ,KC_G   ,                                          KC_H   ,KC_J   ,KC_K   ,KC_L   ,KC_SCLN,KC_QUOT,
+//  ├───────┼───────┼───────┼───────┼───────┼───────┤                                         ├───────┼───────┼───────┼───────┼───────┼───────┤
+     KC_LSFT,KC_Z   ,KC_X   ,KC_C   ,KC_V   ,KC_B   ,                                          KC_N   ,KC_M   ,KC_COMM,KC_DOT ,KC_SLSH,KC_RSFT,
+//  └───────┼───────┼───────┼───────┼───────┴───────┘                                         └───────┴───────┼───────┼───────┼───────┼───────┘
+             XXXXXXX,KC_PGDN,KC_PGUP,                                                                          KC_HOME,KC_END ,XXXXXXX,
+//          └───────┴───────┴───────┘                                                                         └───────┴───────┴───────┘
+//                                                   ┌───────┬───────┐       ┌───────┬───────┐
+                                                      KC_PSCR,KC_EQL ,        KC_MINS,KC_INS ,
+//                                  ┌────────┬───────┼───────┼───────┤       ├───────┼───────┼───────┬───────┐
+                                     KC_LGUI, KC_SPC ,KC_LCTL,KC_DEL ,        KC_SCRL,MO(_FN),KC_BSPC,KC_RGUI,
+//                                  |                        ├───────┤       ├───────┤                       |
+                                                              KC_LALT,        MO(_MS)
+//                                  └────────────────────────┴───────┘       └───────┴───────────────────────┘
+  ),
+  [_FN] = LAYOUT(
+//  ┌───────┬───────┬───────┬───────┬───────┬───────┐                                         ┌───────┬───────┬───────┬───────┬───────┬───────┐
+     XXXXXXX,KC_F1  ,KC_F2  ,KC_F3  ,KC_F4  ,KC_F5  ,                                          KC_F6  ,KC_F7  ,KC_F8  ,KC_F9  ,KC_F10 ,KC_F11 ,
+//  ├───────┼───────┼───────┼───────┼───────┼───────┤                                         ├───────┼───────┼───────┼───────┼───────┼───────┤
+     _______,_______,KC_VOLD,KC_MUTE,KC_VOLU,_______,                                          KC_F12 ,KC_MPRV,KC_MPLY,KC_MNXT,_______,_______,
+//  ├───────┼───────┼───────┼───────┼───────┼───────┤                                         ├───────┼───────┼───────┼───────┼───────┼───────┤
+     _______,_______,_______,_______,_______,_______,                                          KC_LEFT,KC_DOWN,KC_UP  ,KC_RGHT,_______,_______,
+//  ├───────┼───────┼───────┼───────┼───────┼───────┤                                         ├───────┼───────┼───────┼───────┼───────┼───────┤
+     _______,_______,_______,_______,_______,_______,                                          _______,_______,_______,_______,_______,_______,
+//  └───────┼───────┼───────┼───────┼───────┴───────┘                                         └───────┴───────┼───────┼───────┼───────┼───────┘
+             _______,_______,_______,                                                                          _______,_______,_______,
+//          └───────┴───────┴───────┘                                                                         └───────┴───────┴───────┘
+//                                                   ┌───────┬───────┐       ┌───────┬───────┐
+                                                      _______,_______,        _______,_______,
+//                                  ┌────────┬───────┼───────┼───────┤       ├───────┼───────┼───────┬───────┐
+                                     _______, _______,_______,_______,        _______,_______,_______,_______,
+//                                  |                        ├───────┤       ├───────┤                       |
+                                                              _______,        _______
+//                                  └────────────────────────┴───────┘       └───────┴───────────────────────┘
+  ),
+  [_MS] = LAYOUT(
+//  ┌───────┬───────┬───────┬───────┬───────┬───────┐                                         ┌───────┬───────┬───────┬───────┬───────┬───────┐
+     XXXXXXX,_______,_______,_______,_______,_______,                                          _______,_______,_______,_______,_______,_______,
+//  ├───────┼───────┼───────┼───────┼───────┼───────┤                                         ├───────┼───────┼───────┼───────┼───────┼───────┤
+     _______,_______,MS_WHLU,_______,_______,_______,                                          _______,_______,_______,_______,_______,_______,
+//  ├───────┼───────┼───────┼───────┼───────┼───────┤                                         ├───────┼───────┼───────┼───────┼───────┼───────┤
+     _______,_______,MS_WHLD,_______,MS_BTN1,MS_BTN2,                                          MS_LEFT,MS_DOWN,MS_UP  ,MS_RGHT,_______,_______,
+//  ├───────┼───────┼───────┼───────┼───────┼───────┤                                         ├───────┼───────┼───────┼───────┼───────┼───────┤
+     _______,_______,_______,_______,_______,_______,                                          _______,_______,_______,_______,_______,_______,
+//  └───────┼───────┼───────┼───────┼───────┴───────┘                                         └───────┴───────┼───────┼───────┼───────┼───────┘
+             _______,_______,_______,                                                                          _______,_______,_______,
+//          └───────┴───────┴───────┘                                                                         └───────┴───────┴───────┘
+//                                                   ┌───────┬───────┐       ┌───────┬───────┐
+                                                      _______,_______,        _______,_______,
+//                                  ┌────────┬───────┼───────┼───────┤       ├───────┼───────┼───────┬───────┐
+                                     _______, _______,_______,_______,        _______,_______,_______,_______,
+//                                  |                        ├───────┤       ├───────┤                       |
+                                                              _______,        _______
+//                                  └────────────────────────┴───────┘       └───────┴───────────────────────┘
+  )
+};

+ 29 - 0
keyboards/handwired/ergo_v_1/readme.md

@@ -0,0 +1,29 @@
+# Ergo-V-1
+
+Fork of [Ergo-S-1](https://github.com/wizarddata/Ergo-S-1) from WizardKeyboards
+
+Ergo-S-1 on its part is heavily inspired from Kinesis Advantage
+
+![Ergo-V-1](https://i.imgur.com/eE1l5IV.jpeg)
+
+This keyboard is practically identical to the orignal one with some differences
+* Modified thumb cluster with one extra key
+* Improved switch cutouts, compatible with kailh style switches
+* unlike Ergo-S-1 this is a wired keyboard based on qmk
+
+Make example for this keyboard (after setting up your build environment):
+
+    make handwired/ergo_v_1:default
+
+Flashing example for this keyboard:
+
+    make handwired/ergo_v_1: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 2 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available