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

[Keyboard] Add Hillside 52 #17374

Merged
merged 20 commits into from
Aug 13, 2022
Merged
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
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