From ffe57097eb6f3e6205059455eabe4d326e6b4e21 Mon Sep 17 00:00:00 2001 From: VPavliashvili Date: Sat, 23 May 2026 08:40:28 +0400 Subject: [PATCH] Add ergo-v-1 keyboard (#25908) --- keyboards/handwired/ergo_v_1/keyboard.json | 122 ++++++++++++++++++ .../ergo_v_1/keymaps/default/keymap.c | 74 +++++++++++ keyboards/handwired/ergo_v_1/readme.md | 29 +++++ 3 files changed, 225 insertions(+) create mode 100644 keyboards/handwired/ergo_v_1/keyboard.json create mode 100644 keyboards/handwired/ergo_v_1/keymaps/default/keymap.c create mode 100644 keyboards/handwired/ergo_v_1/readme.md diff --git a/keyboards/handwired/ergo_v_1/keyboard.json b/keyboards/handwired/ergo_v_1/keyboard.json new file mode 100644 index 00000000000..b26e34f8bb0 --- /dev/null +++ b/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}, + ] + } + } +} diff --git a/keyboards/handwired/ergo_v_1/keymaps/default/keymap.c b/keyboards/handwired/ergo_v_1/keymaps/default/keymap.c new file mode 100644 index 00000000000..c69fa20367c --- /dev/null +++ b/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,_______,_______, +// ├───────┼───────┼───────┼───────┼───────┼───────┤ ├───────┼───────┼───────┼───────┼───────┼───────┤ + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, +// └───────┼───────┼───────┼───────┼───────┴───────┘ └───────┴───────┼───────┼───────┼───────┼───────┘ + _______,_______,_______, _______,_______,_______, +// └───────┴───────┴───────┘ └───────┴───────┴───────┘ +// ┌───────┬───────┐ ┌───────┬───────┐ + _______,_______, _______,_______, +// ┌────────┬───────┼───────┼───────┤ ├───────┼───────┼───────┬───────┐ + _______, _______,_______,_______, _______,_______,_______,_______, +// | ├───────┤ ├───────┤ | + _______, _______ +// └────────────────────────┴───────┘ └───────┴───────────────────────┘ + ) +}; diff --git a/keyboards/handwired/ergo_v_1/readme.md b/keyboards/handwired/ergo_v_1/readme.md new file mode 100644 index 00000000000..371ebeae4fe --- /dev/null +++ b/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