summaryrefslogtreecommitdiffstats
path: root/keyboards/hillside/52/0_1
diff options
context:
space:
mode:
authormmccoyd <mmccoyd@users.noreply.github.com>2022-11-20 00:50:09 -0800
committerGitHub <noreply@github.com>2022-11-20 00:50:09 -0800
commit543a863766192eab626492ec4f48641743ffc797 (patch)
tree8be77287c17bfdc6bd5d78a866af2b3ee43cd492 /keyboards/hillside/52/0_1
parent66e4add9725bac525f9ca6e9e44ccbab2ded5412 (diff)
[Keyboard] Move Hillside out of handwired (#18751)
Co-authored-by: mmccoyd <mmccoyd@cs.berkley.edu>
Diffstat (limited to 'keyboards/hillside/52/0_1')
-rw-r--r--keyboards/hillside/52/0_1/0_1.c21
-rw-r--r--keyboards/hillside/52/0_1/0_1.h39
-rw-r--r--keyboards/hillside/52/0_1/config.h39
-rw-r--r--keyboards/hillside/52/0_1/info.json34
-rw-r--r--keyboards/hillside/52/0_1/rules.mk8
5 files changed, 141 insertions, 0 deletions
diff --git a/keyboards/hillside/52/0_1/0_1.c b/keyboards/hillside/52/0_1/0_1.c
new file mode 100644
index 0000000000..9a9808da8c
--- /dev/null
+++ b/keyboards/hillside/52/0_1/0_1.c
@@ -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
+};
diff --git a/keyboards/hillside/52/0_1/0_1.h b/keyboards/hillside/52/0_1/0_1.h
new file mode 100644
index 0000000000..f09d896938
--- /dev/null
+++ b/keyboards/hillside/52/0_1/0_1.h
@@ -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
diff --git a/keyboards/hillside/52/0_1/config.h b/keyboards/hillside/52/0_1/config.h
new file mode 100644
index 0000000000..23872aa37b
--- /dev/null
+++ b/keyboards/hillside/52/0_1/config.h
@@ -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
diff --git a/keyboards/hillside/52/0_1/info.json b/keyboards/hillside/52/0_1/info.json
new file mode 100644
index 0000000000..f5cf4486d5
--- /dev/null
+++ b/keyboards/hillside/52/0_1/info.json
@@ -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
+ }
+}
diff --git a/keyboards/hillside/52/0_1/rules.mk b/keyboards/hillside/52/0_1/rules.mk
new file mode 100644
index 0000000000..2501147ea8
--- /dev/null
+++ b/keyboards/hillside/52/0_1/rules.mk
@@ -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