Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

YaMseK: yet another modular split ergonomic keyboard #17902

Closed
wants to merge 19 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions keyboards/handwired/yamsek/atmega32u4/atmega32u4.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */

#include <gpio.h>

/** Pololu A-Star 32U4 Micro
micro
┌───USB───┐
Column 0 PB5 ─┤9 A0├─ PF7 (future: joystick?)
" 1 PB4 ─┤8 A1├─ PF6 (future: joystick?)
" 2 PE6 ─┤7 10├─ PB6 Row 0
" 3 PD7 ─┤6 11├─ PB7 Row 1
" 4 PC6 ─┤5 12├─ PD6 Row 2
" 5 PD4 ─┤4 ├─ Reset
I2C SCL PD0 ─┤3 ├─ 3V3
I2C SDA PD1 ─┤2 ├─ 5V
RGB LED PD3 ─┤1 OOO ├─ Gnd
Row 3 PD2 ─┤0 ICSP ├─ Vin
└─────────┘

Rows 0-2 are on the top-shell/half
Row 3 is the thumb-cluster
*/

const pin_t row_pins_MCU[MATRIX_ROWS / 2] = {B6, B7, D6, D2};
const pin_t col_pins_MCU[MATRIX_COLS] = {B5, B4, E6, D7, C6, D4};
5 changes: 5 additions & 0 deletions keyboards/handwired/yamsek/atmega32u4/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
// Copyright 2022 Johannes Schneider (@JohSchneider)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once

JohSchneider marked this conversation as resolved.
Show resolved Hide resolved
#define DYNAMIC_KEYMAP_LAYER_COUNT 6
10 changes: 10 additions & 0 deletions keyboards/handwired/yamsek/atmega32u4/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"processor": "atmega32u4",
"bootloader": "caterina",
"ws2812": {
"pin": "B6"
},
"rgblight": {
"led_count": 3
}
}
1 change: 1 addition & 0 deletions keyboards/handwired/yamsek/atmega32u4/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# This file intentionally left blank
77 changes: 77 additions & 0 deletions keyboards/handwired/yamsek/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
{
"manufacturer": "Johannes Schneider",
"keyboard_name": "YaMseK",
"maintainer": "Johannes Schneider",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"url": "https://hackaday.io/project/21164-yamsek",
"usb": {
"device_version": "1.0.0",
"pid": "0x6060",
"vid": "0xFEED"
},
"matrix_size": {
"cols": 6,
"rows": 8
},
"layouts": {
JohSchneider marked this conversation as resolved.
Show resolved Hide resolved
"LAYOUT": {
"layout": [
{"matrix":[4,0], "label":"Esc", "x":0, "y":0.75},
{"matrix":[4,1], "label":"Q", "x":1, "y":0.375},
{"matrix":[4,2], "label":"W", "x":2, "y":0.125},
{"matrix":[4,3], "label":"E", "x":3, "y":0},
{"matrix":[4,4], "label":"R", "x":4, "y":0.125},
{"matrix":[4,5], "label":"T", "x":5, "y":0.25},
{"matrix":[0,0], "label":"Y", "x":13, "y":0.25},
{"matrix":[0,1], "label":"U", "x":14, "y":0.125},
{"matrix":[0,2], "label":"I", "x":15, "y":0},
{"matrix":[0,3], "label":"O", "x":16, "y":0.125},
{"matrix":[0,4], "label":"P", "x":17, "y":0.375},
{"matrix":[0,5], "label":"-", "x":18, "y":0.75},
{"matrix":[5,0], "label":"Tab", "x":0, "y":1.75},
{"matrix":[5,1], "label":"A", "x":1, "y":1.375},
{"matrix":[5,2], "label":"S", "x":2, "y":1.125},
{"matrix":[5,3], "label":"D", "x":3, "y":1},
{"matrix":[5,4], "label":"F", "x":4, "y":1.125},
{"matrix":[5,5], "label":"G", "x":5, "y":1.25},
{"matrix":[1,0], "label":"H", "x":13, "y":1.25},
{"matrix":[1,1], "label":"J", "x":14, "y":1.125},
{"matrix":[1,2], "label":"K", "x":15, "y":1},
{"matrix":[1,3], "label":"L", "x":16, "y":1.125},
{"matrix":[1,4], "label":":", "x":17, "y":1.375},
{"matrix":[1,5], "label":"'", "x":18, "y":1.75},
{"matrix":[6,0], "label":"LShift", "x":0, "y":2.75},
{"matrix":[6,1], "label":"Z", "x":1, "y":2.375},
{"matrix":[6,2], "label":"X", "x":2, "y":2.125},
{"matrix":[6,3], "label":"C", "x":3, "y":2},
{"matrix":[6,4], "label":"V", "x":4, "y":2.125},
{"matrix":[6,5], "label":"B", "x":5, "y":2.25},
{"matrix":[2,0], "label":"N", "x":13, "y":2.25},
{"matrix":[2,1], "label":"M", "x":14, "y":2.125},
{"matrix":[2,2], "label":"<", "x":15, "y":2},
{"matrix":[2,3], "label":">", "x":16, "y":2.125},
{"matrix":[2,4], "label":"?", "x":17, "y":2.375},
{"matrix":[2,5], "label":"=", "x":18, "y":2.75},
{"matrix":[7,0], "label":"TG(Game)", "x":5.5, "y":5},
{"matrix":[7,1], "label":"Mo(NPad)", "x":4.5, "y":4.6},
{"matrix":[7,2], "label":"Backs", "x":4.5, "y":4},
{"matrix":[7,3], "label":"Alt", "x":5.7, "y":3.5},
{"matrix":[7,4], "label":"Ctrl", "x":6.75, "y":3.75},
{"matrix":[7,5], "label":"Shift", "x":7.75, "y":4.2},
{"matrix":[3,0], "label":"Shift", "x":10, "y":4.2},
{"matrix":[3,1], "label":"Enter", "x":11, "y":3.75},
{"matrix":[3,2], "label":"Spac", "x":11.95, "y":3.5},
{"matrix":[3,3], "label":"Del", "x":13.2, "y":4},
{"matrix":[3,4], "label":"Mo(Arr)", "x":12.2, "y":5},
{"matrix":[3,5], "label":"Mo(Fun)", "x":13.2, "y":4.6},
]
}
}
}
101 changes: 101 additions & 0 deletions keyboards/handwired/yamsek/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
/* Copyright 2022 Johannes Schneider (@JohSchneider) */
/* SPDX-License-Identifier: GPL-2.0-or-later */

#include QMK_KEYBOARD_H

enum layers {
BASE, // default layer
NPAD, // numberpad (blender)
ARRO, // arrows and symbols
FUNC, // F[1-10] and number key rows
MOUS, // mouse
GAME,
LEDS,
};

#define KC_ALDL RALT_T(KC_DEL)

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/**
LEFT ╔═══════════╦══════════╦═══════════╗ ╔═══════════╦═══════════╦═══════════╗ RIGHT
╔═══════════╣ E ║ R ║ T ║ Top Row ║ Y ║ U ║ I ╠═══════════╗
╔═══════════╦═══════════╣ W ╠═══════════╬══════════╬═══════════╣ ╠═══════════╬═══════════╬═══════════╣ O ╠═══════════╦═══════════╗
║ ║ Q ╠═══════════╣ D ║ F ║ G ║ Mid Row ║ H ║ J ║ K ╠═══════════╣ P ║ [ ║
╠═══════════╬═══════════╣ S ╠═══════════╬══════════╬═══════════╣ ╠═══════════╬═══════════╬═══════════╣ L ╠═══════════╬═══════════╣
║ ║ A ╠═══════════╣ C ║ V ║ B ║ Bot Row ║ N ║ M ║ , ╠═══════════╣ ; ║ ' ║
╠═══════════╬═══════════╣ X ╠═══════════╩══════════╩═══════════╝ ╚═══════════╩═══════════╩═══════════╣ . ╠═══════════╬═══════════╣
║ ║ Z ╠═══════════╝ ╚═══════════╣ / ║ ║
╚═══════════╩═══════════╝ ╚═══════════╩═══════════╝
╔═════════╗ ╔═════════╗
╔═════════╗ ║4 ╠═════════╗ ╔═════════╣3 ║ ╔═════════╗
║3 ║ ╚═════════╣5 ╠═════════╗ ╔═════════╣2 ╠═════════╝ ║4 ║ Thumb Cluster key-order
╠═════════╬═════════╗ ╚═════════╣6 ║ ║1 ╠═════════╝ ╔═════════╬═════════╣
║2 ║1 ║ ╚═════════╝ ╚═════════╝ ║6 ║5 ║
╚═════════╩═════════╝ ╚═════════╩═════════╝

0 1 2 3 4 5 0 1 2 3 4 5
+-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+
| Layer 4 | Q | W | E | R | T |4 Top Row 0| Y | U | I | O | P | [ |
+-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+
| Layer 3 | A | S | D | F | G |5 Mid Row 1| H | J | K | L | ; | ' |
+-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+
| Layer 2 | Z | X | C | V | B |6 Bot Row 2| N | M | , | . | / | |
+-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+

+-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+
+ Layer 1 | Backsp | Delete | L Shift | L Ctrl | L Alt |7 Thumb Clstr 3+ Layer 1 | Backsp | Delete | Space | Enter | Tab |
+-----------+-----------+-----------+-----------+-----------+-----------+ +-----------+-----------+-----------+-----------+-----------+-----------+
| | | | | | | | | |
| | | | | | | | | |
*/
[BASE] = LAYOUT( // Base
JohSchneider marked this conversation as resolved.
Show resolved Hide resolved
//left //right
KC_ESC ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T, KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_MINUS,
KC_TAB ,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_EQUAL,
TG(GAME) ,MO(NPAD) ,KC_BSPC ,KC_LALT ,KC_LCTL ,KC_LSFT, KC_RSFT ,KC_ENT ,KC_SPC ,KC_ALDL ,MO(ARRO) ,MO(FUNC)
),
[NPAD] = LAYOUT(// numpad (blender)
//left //right
KC_TRNS ,KC_KP_PLUS ,KC_KP_7 ,KC_KP_8 ,KC_KP_9 ,KC_KP_SLASH, KC_TRNS ,KC_TRNS ,KC_MPRV ,KC_MPLY ,KC_MNXT ,KC_TRNS,
KC_TRNS ,KC_KP_MINUS,KC_KP_4 ,KC_KP_5 ,KC_KP_6 ,KC_KP_ASTERISK, KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS,
KC_TRNS ,KC_KP_0 ,KC_KP_1 ,KC_KP_2 ,KC_KP_3 ,KC_KP_COMMA, KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS,
QK_LOCK ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
),
[FUNC] = LAYOUT(// function and numbers
//left //right
KC_TRNS ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5, KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_TRNS,
KC_TRNS ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5, KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_TRNS,
KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS,
KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
),// | | | | |
[ARRO] = LAYOUT(// arrow and symbols | | |
//left //right
KC_TRNS ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_PIPE, KC_MPRV ,KC_MPLY ,KC_MNXT ,KC_TRNS ,KC_TRNS ,KC_TRNS,
KC_TRNS ,KC_HASH ,KC_DLR ,KC_LBRC ,KC_RBRC ,KC_GRV, KC_TRNS ,KC_LEFT ,KC_UP ,KC_RIGHT ,KC_TRNS ,KC_TRNS,
KC_TRNS ,KC_PERC ,KC_CIRC ,KC_LPRN ,KC_RPRN ,KC_TILD, KC_TRNS ,KC_TRNS ,KC_DOWN ,KC_TRNS ,KC_BSLS ,KC_TRNS,
KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
),// | | | | |
[MOUS] = LAYOUT(// Mouse | | | |
//left //right
KC_TRNS ,KC_WH_U ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS,
KC_TRNS ,KC_WH_D ,KC_MS_L ,KC_MS_UP ,KC_MS_R ,KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS,
KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_MS_DOWN ,KC_TRNS ,KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS,
QK_LOCK ,KC_LGUI ,KC_TRNS ,KC_MS_BTN1 ,KC_MS_BTN2 ,KC_BTN3, KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
),
[LEDS] = LAYOUT( /* RGBLIGHT */
//left //right
KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS,
KC_TRNS ,RGB_TOG ,RGB_MOD ,RGB_HUI ,RGB_HUD ,KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS,
KC_TRNS ,RGB_SAI ,RGB_SAD ,RGB_VAI ,RGB_VAD ,KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS,
KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS, KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
),
[GAME] = LAYOUT(// | | | |
// gaming, with shifted WASD block
//left //right
KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS, KC_MPRV ,KC_MPLY ,KC_MNXT ,KC_TRNS ,KC_TRNS ,KC_TRNS,
KC_TRNS ,KC_TRNS ,KC_A ,KC_W ,KC_D ,KC_TRNS, KC_TRNS ,KC_LEFT ,KC_UP ,KC_RIGHT ,KC_TRNS ,KC_TRNS,
KC_TRNS ,KC_TRNS ,KC_Q ,KC_S ,KC_E ,KC_TRNS, KC_TRNS ,KC_TRNS ,KC_DOWN ,KC_TRNS ,KC_TRNS ,KC_TRNS,
KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS, KC_Q ,KC_E ,KC_SPC ,KC_TAB ,KC_TRNS ,KC_TRNS
) // | | | | |
};
Loading