[Keyboard] Move Hillside out of handwired (#18751)

Co-authored-by: mmccoyd <mmccoyd@cs.berkley.edu>
This commit is contained in:
mmccoyd
2022-11-20 00:50:09 -08:00
committed by GitHub
parent 66e4add972
commit 543a863766
58 changed files with 180 additions and 311 deletions

View File

@@ -0,0 +1,21 @@
// Copyright 2022 Michael McCoyd (@mmccoyd)
// SPDX-License-Identifier: GPL-2.0-or-later
#include "0_1.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
};

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1,34 @@
{
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"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
}
}

View File

@@ -0,0 +1,8 @@
SPLIT_KEYBOARD = yes # Use shared split_common code
LTO_ENABLE = yes # Use link time optimization for smaller firmware
# If you add a haptic board,
# enable it and set its driver here or in your keymap folder
# The Pimoroni board's driver is DRV2605L
# HAPTIC_ENABLE = yes # Enable haptic driver
# HAPTIC_DRIVER = DRV2605L