Skip to content

Commit

Permalink
[Keyboard] Add Hillside 52 (qmk#17374)
Browse files Browse the repository at this point in the history
* 52 Keymap.json: Set for Hillside 52

- Change script rows

* 52 Keymap.c: mirror .json

CAPSWORD, QK_BOOT, readme cleanup, EE_RST

* 52 Keymap.json: Initial files copy from 56

* 52 Keymap.json nav/edit lay, thumb shift, syms

- Del in backspace spot on sym layer
- Thumb shift OSM instead of extra space
- Nav/edit on num/fn: arrows cut copy paste undo redo, page up/down
- Fn keys bottom row to allow nav edit keys
- App and AltGr on lower row, on their layer
- Braces on index, so more common -= on middle ring.
- Adjust has Ctrl/GUI swap
- EE_RST, CAPSWORD, QK_BOOT, SPLIT_DETECT

* 52 Family: readme image and folder link

* 52 Board: initial copy from 56

* 52 Keymap via

* 52 Board: remove keys, cant columns, better ids

- .json: vid: MM, pid: H52

* 52 Keymap.c: initial.c copy from 48

* QK_BOOT EE_CLR, not ANY(), as config.qmk supports

- CAPSWRD instead of ANY, though config.qmk still converts to ANY()

* Cleanup readme

* 52 Keymap: Remove redundant key, cleanup script

* 52 Keymap: Fix template

* 52 Readme: Link lower res image better for readme

Co-authored-by: Drashna Jaelre <[email protected]>

* 52 Keymap: Move pretty-print script to GitHub wiki

* 52 Keymap: Link to 1024 res image thumbnails

* 52 Keymap: fix whitespace before image link

* Family: Fix image link to 1024 thumb

Co-authored-by: Drashna Jaelre <[email protected]>

* 52: Keymap: Caps word on a layer home row

* 52: Keymap: Arrows on right. Symmetric layer keys.

- Nav:
  - Arrows on right so up/down more intuitive. Page up/down on ends
  - Cut on home row, as more common

- Sym:
  - Layer mods on activate hand, extras symbols on left
  - Common digits on lower row

- Base:
  - Layer keys symmetric, on most extended, not resting, thumb
  - Mute on util key for easy use

- Swap layers 3 and 4 to match swapped thumbs

Co-authored-by: mmccoyd <[email protected]>
Co-authored-by: Drashna Jaelre <[email protected]>
  • Loading branch information
3 people authored Aug 13, 2022
1 parent 648f3eb commit 0c0d019
Show file tree
Hide file tree
Showing 17 changed files with 679 additions and 5 deletions.
21 changes: 21 additions & 0 deletions keyboards/handwired/hillside/52/52.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// Copyright 2022 Michael McCoyd (@mmccoyd)
// SPDX-License-Identifier: GPL-2.0-or-later

#include "52.h"

// Keymatrix spots to ignore, as one signals handedness and others have no key
const matrix_row_t matrix_mask[] = {
//c:543210 column id's
0b111111,
0b111111,
0b111111,
0b000111,
0b111110,

//c:543210
0b111111,
0b111111,
0b111111,
0b000111,
0b111110
};
39 changes: 39 additions & 0 deletions keyboards/handwired/hillside/52/52.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
// Copyright 2021 Michael McCoyd (@mmccoyd)
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

#include "quantum.h"

/* This is a mapping so keymap files can be more readable to humans.
*
* The first section contains all of the arguments representing the physical
* layout of the board and position of the keys.
*
* The second converts those identifiers into a two-dimensional array which
* represents the switch matrix.
*
* The identifiers could be anything, but for human sanity have the folowing form
* <Left or Right><Physical or thumb row><Circuit column counting from outer pinky>
*/

// clang-format off
#define LAYOUT( \
L00, L01, L02, L03, L04, L05, R05, R04, R03, R02, R01, R00, \
L10, L11, L12, L13, L14, L15, R15, R14, R13, R12, R11, R10, \
L20, L21, L22, L23, L24, L25, LT5, RT5, R25, R24, R23, R22, R21, R20, \
L30, L31, L32, LT1, LT2, LT3, LT4, RT4, RT3, RT2, RT1, R32, R31, R30 \
) \
{ \
{ L00, L01, L02, L03, L04, L05 }, \
{ L10, L11, L12, L13, L14, L15 }, \
{ L20, L21, L22, L23, L24, L25 }, \
{ L30, L31, L32, KC_NO, KC_NO, KC_NO }, \
{ KC_NO, LT1, LT2, LT3, LT4, LT5 }, \
{ R00, R01, R02, R03, R04, R05 }, \
{ R10, R11, R12, R13, R14, R15 }, \
{ R20, R21, R22, R23, R24, R25 }, \
{ R30, R31, R32, KC_NO, KC_NO, KC_NO }, \
{ KC_NO, RT1, RT2, RT3, RT4, RT5 } \
}
// clang-format on
39 changes: 39 additions & 0 deletions keyboards/handwired/hillside/52/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
// Copyright 2022 Michael McCoyd (@mmccoyd)
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

#include "config_common.h"

/* key matrix size */
// Rows are doubled-up
#define MATRIX_ROWS 10
#define MATRIX_COLS 6

/* Split */
#define SPLIT_HAND_MATRIX_GRID B5, F6
#define MATRIX_MASKED

/* Encoder */
#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F4 }
#define ENCODERS_PAD_A_RIGHT { F4 }
#define ENCODERS_PAD_B_RIGHT { F5 }

#define RGBLIGHT_SLEEP

/* Haptic hardware */
// The Pimoroni is the likely hardware, for which these settings work
#define FB_ERM_LRA 1
#define FB_BRAKEFACTOR 3 /* 1x:0, 2x:1, 3x:2, 4x:3, 6:4, 8:5, 16:6, Disable:7 */
#define FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */
/* Please refer to your datasheet for optimal setting for your specific motor.*/
#define RATED_VOLTAGE 2
#define V_PEAK 2.8
#define V_RMS 2.0
#define F_LRA 205 /* resonance freq */

/* Haptic waveforms */
// Two mild waveforms
#define DRV_GREETING alert_750ms
#define DRV_MODE_DEFAULT sharp_tick3_60
111 changes: 111 additions & 0 deletions keyboards/handwired/hillside/52/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
{
"manufacturer": "mmccoyd",
"maintainer": "mmccoyd",

"keyboard_name": "Hillside 52",
"url": "http://github.com/mmccoyd/hillside/",

"tags": ["split", "column stagger", "choc v1", "choc spaced" ],

"processor": "atmega32u4",

"matrix_pins": {
"rows": ["C6", "D7", "E6", "B4", "B5"],
"cols": ["F6", "F7", "B1", "B3", "B2", "B6"]
},
"diode_direction": "COL2ROW",

"usb": {
"vid": "0x4D4D",
"pid": "0x4852",
"device_version": "0.0.1"
},

"features": {
"encoder": true,
"extrakey": true,
"rgblight": true
},
"split": {
"soft_serial_pin": "D2"
},

"rgblight": {
"led_count": 5,
"pin": "D3",
"split": true,
"hue_steps": 8,
"saturation_steps": 8,
"brightness_steps": 8
},

"layouts": {
"LAYOUT": {
"layout": [

{"label": "`~", "x": 0.8, "y": 1.13},
{"label": "Q", "x": 1.8, "y": 0.93},
{"label": "W", "x": 2.9, "y": 0.31},
{"label": "E", "x": 4, "y": 0},
{"label": "R", "x": 5, "y": 0.28},
{"label": "T", "x": 6, "y": 0.42},

{"label": "Y", "x": 10.5, "y": 0.42},
{"label": "U", "x": 11.5, "y": 0.28},
{"label": "I", "x": 12.5, "y": 0},
{"label": "O", "x": 13.6, "y": 0.31},
{"label": "P", "x": 14.7, "y": 0.93},
{"label": "Backspace", "x": 15.7, "y": 1.13},


{"label": "Tab", "x": 0.9, "y": 2.13},
{"label": "A", "x": 1.9, "y": 1.93},
{"label": "S", "x": 2.95, "y": 1.31},
{"label": "D", "x": 4, "y": 1},
{"label": "F", "x": 5, "y": 1.28},
{"label": "G", "x": 6, "y": 1.42},

{"label": "H", "x": 10.5, "y": 1.42},
{"label": "J", "x": 11.5, "y": 1.28},
{"label": "K", "x": 12.5, "y": 1},
{"label": "L", "x": 13.55, "y": 1.31},
{"label": ";", "x": 14.6, "y": 1.93},
{"label": "Enter", "x": 15.6, "y": 2.13},


{"label": "Shift", "x": 1, "y": 3.13},
{"label": "Z", "x": 2, "y": 2.93},
{"label": "X", "x": 3, "y": 2.31},
{"label": "C", "x": 4, "y": 2},
{"label": "V", "x": 5, "y": 2.28},
{"label": "B", "x": 6, "y": 2.42},
{"label": "'", "x": 7, "y": 2.88},

{"label": "/", "x": 9.5, "y": 2.88},
{"label": "N", "x": 10.5, "y": 2.42},
{"label": "M", "x": 11.5, "y": 2.28},
{"label": ",", "x": 12.5, "y": 2},
{"label": ".", "x": 13.5, "y": 2.31},
{"label": "Up", "x": 14.5, "y": 2.93},
{"label": "Shift", "x": 15.5, "y": 3.13},


{"label": "Mute", "x": 1.1, "y": 4.13},
{"label": "Esc", "x": 2.1, "y": 3.93},
{"label": "Ctrl", "x": 3.1, "y": 3.73},
{"label": "Gui", "x": 4.5, "y": 3.28},
{"label": "Alt", "x": 5.5, "y": 3.42},
{"label": "Shift", "x": 6.5, "y": 3.88},
{"label": "Nav", "x": 7.5, "y": 4.44},

{"label": "Sym", "x": 9, "y": 4.44},
{"label": "Space", "x": 10, "y": 3.88},
{"label": "Alt", "x": 11, "y": 3.42},
{"label": "Gui", "x": 12, "y": 3.28},
{"label": "Left", "x": 13.4, "y": 3.73},
{"label": "Down", "x": 14.4, "y": 3.93},
{"label": "Right", "x": 15.4, "y": 4.13}
]
}
}
}
9 changes: 9 additions & 0 deletions keyboards/handwired/hillside/52/keymaps/default/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// Copyright 2022 Michael McCoyd (@mmccoyd)
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

// Some boards have issues detecting handedness using the vbus voltage.
// Such as Elite-C v3, but not v3.1 on. Also apparently some ProMicro boards.
// For those boands, use usb detection instead.
// #define SPLIT_USB_DETECT
88 changes: 88 additions & 0 deletions keyboards/handwired/hillside/52/keymaps/default/keymap.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
{ "version": 1,
"notes": "",
"documentation": "\"This file is a QMK Configurator export. You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n",
"keyboard": "handwired/hillside/52",
"keymap": "default",
"layout": "LAYOUT",
"layers": [
["KC_GRV" , "KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T",
"KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P" , "KC_BSPC",

"KC_TAB" , "KC_A" , "KC_S" , "KC_D" , "KC_F" , "KC_G",
"KC_H" , "KC_J" , "KC_K" , "KC_L" , "KC_SCLN", "KC_ENT",

"KC_LSFT" , "KC_Z" , "KC_X" , "KC_C" , "KC_V" , "KC_B" , "KC_QUOT",
"KC_SLSH" , "KC_N" , "KC_M" , "KC_COMM", "KC_DOT" , "KC_UP" , "KC_RSFT",

"KC_MUTE" , "KC_ESC" , "KC_LCTL", "KC_LGUI", "KC_LALT", "OSM(MOD_LSFT)", "MO(3)",
"MO(4)" , "KC_SPC" , "KC_LALT", "KC_RGUI", "KC_LEFT", "KC_DOWN" , "KC_RGHT"

],
["KC_GRV" , "KC_QUOT" , "KC_COMM", "KC_DOT" , "KC_P" , "KC_Y",
"KC_F" , "KC_G" , "KC_C" , "KC_R" , "KC_L" , "KC_BSPC",

"KC_TAB" , "KC_A" , "KC_O" , "KC_E" , "KC_U" , "KC_I",
"KC_D" , "KC_H" , "KC_T" , "KC_N" , "KC_S" , "KC_ENT",

"KC_LSFT" , "KC_SCLN" , "KC_Q" , "KC_J" , "KC_K" , "KC_X" , "KC_SLSH",
"KC_Z" , "KC_B" , "KC_M" , "KC_W" , "KC_V" , "KC_UP" , "KC_RSFT",

"KC_MUTE" , "KC_ESC" , "KC_LCTL", "KC_LGUI", "KC_LALT", "OSM(MOD_LSFT)", "MO(3)",
"MO(4)" , "KC_SPC" , "KC_LALT", "KC_RGUI", "KC_LEFT", "KC_DOWN" , "KC_RGHT"

],
["KC_GRV" , "KC_Q" , "KC_W" , "KC_F" , "KC_P" , "KC_B",
"KC_J" , "KC_L" , "KC_U" , "KC_Y" , "KC_SCLN", "KC_BSPC",

"KC_TAB" , "KC_A" , "KC_R" , "KC_S" , "KC_T" , "KC_G",
"KC_M" , "KC_N" , "KC_E" , "KC_I" , "KC_O" , "KC_ENT",

"KC_LSFT" , "KC_Z" , "KC_TRNS", "KC_C" , "KC_D" , "KC_V" , "KC_QUOT",
"KC_SLSH" , "KC_K" , "KC_H" , "KC_COMM", "KC_DOT" , "KC_UP" , "KC_RSFT",

"KC_MUTE" , "KC_ESC" , "KC_LCTL", "KC_LGUI", "KC_LALT", "OSM(MOD_LSFT)", "MO(3)",
"MO(4)" , "KC_SPC" , "KC_LALT", "KC_RGUI", "KC_LEFT", "KC_DOWN" , "KC_RGHT"

],
["LCTL(KC_C)" , "KC_1" , "KC_2" , "KC_3" , "KC_4" , "KC_5",
"KC_6" , "KC_7" , "KC_8" , "KC_9" , "KC_0" , "KC_TRNS",

"LCTL(KC_X)" , "KC_LGUI" , "KC_LALT", "KC_LCTL", "KC_LSFT", "LCTL(KC_V)",
"KC_PGUP" , "KC_LEFT" , "KC_UP" , "KC_DOWN", "KC_RGHT", "KC_PGDN",

"KC_TRNS" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_F4" , "KC_F5" , "LCTL(KC_Z)",
"LCTL(KC_Y)" , "KC_F6" , "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10" , "KC_TRNS",

"KC_F11" , "KC_F12" , "KC_LCTL", "KC_TRNS", "KC_TRNS", "KC_TRNS" , "KC_TRNS",
"MO(5)" , "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_RCTL", "KC_HOME" , "KC_END"

],
["KC_INS" , "KC_EXLM" , "KC_AT" , "KC_HASH", "KC_DLR" , "KC_PERC",
"KC_CIRC" , "KC_AMPR" , "KC_ASTR", "KC_LPRN", "KC_RPRN", "KC_DEL",

"ANY(CAPSWRD)", "KC_BSLS" , "KC_MINS", "KC_EQL" , "KC_LBRC", "KC_RBRC",
"KC_VOLU" , "KC_RSFT" , "KC_RCTL", "KC_LALT", "KC_RGUI", "KC_TRNS",

"KC_TRNS" , "KC_PIPE" , "KC_UNDS", "KC_PLUS", "KC_LCBR", "KC_RCBR" , "KC_MPLY",
"KC_MUTE" , "KC_VOLD" , "KC_0" , "KC_1" , "KC_2" , "KC_NO" , "KC_TRNS",

"KC_NO" , "KC_NO" , "KC_LCTL", "KC_TRNS", "KC_TRNS", "KC_TRNS" , "MO(5)",
"KC_TRNS" , "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_RCTL", "KC_APP" , "OSM(MOD_RALT)"

],
["KC_NO" , "DF(0)" , "DF(1)" , "DF(2)" , "AG_SWAP", "CG_SWAP",
"KC_NO" , "KC_PSCR" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO",

"KC_NO" , "KC_NO" , "KC_BRIU", "KC_NO" , "AG_NORM", "CG_NORM",
"RGB_MOD" , "RGB_VAI" , "RGB_HUI", "RGB_SAI", "KC_NO" , "KC_NO",

"QK_BOOT" , "KC_NO" , "KC_BRID", "KC_NO" , "KC_NO" , "KC_NO" , "EE_CLR",
"RGB_TOG" , "RGB_RMOD", "RGB_VAD", "RGB_HUD", "RGB_SAD", "KC_NO" , "KC_NO",

"KC_NO" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_TRNS",
"KC_TRNS" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO" , "KC_NO"

]
],
"author": "@mmccoyd"
}
Loading

0 comments on commit 0c0d019

Please sign in to comment.