diff --git a/keyboards/clockworkpi_keypad/clockworkpi_keypad.c b/keyboards/clockworkpi_keypad/clockworkpi_keypad.c new file mode 100644 index 0000000000..e69de29bb2 diff --git a/keyboards/clockworkpi_keypad/clockworkpi_keypad.h b/keyboards/clockworkpi_keypad/clockworkpi_keypad.h new file mode 100644 index 0000000000..f1995938d3 --- /dev/null +++ b/keyboards/clockworkpi_keypad/clockworkpi_keypad.h @@ -0,0 +1,15 @@ + + +#define k_ KC_NO + +#define LAYOUT_keymap( \ + kMN, kSH, kSL, kST, \ + kUP, KY, \ + kLF, kRH, kX, kB, \ + kDN, kA, \ + kL1, kL2, kL3, kL4, kL5 \ +) { \ + { kUP, kLF, kDN, kRH, kY, kX, kA, kB }, \ + { kMN, kSH, kSL, kST, k_, k_, k_, k_ }, \ + { kL1, kL2, kL3, kL4, kL5, k_, k_, k_ }, \ +} diff --git a/keyboards/clockworkpi_keypad/config.h b/keyboards/clockworkpi_keypad/config.h new file mode 100644 index 0000000000..3ff55f16f0 --- /dev/null +++ b/keyboards/clockworkpi_keypad/config.h @@ -0,0 +1,38 @@ +/* +Copyright 2019 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0xD901 +#define DEVICE_VER 0x0001 +#define MANUFACTURER clockworkpi +#define PRODUCT keypad +#define DESCRIPTION + +#define MATRIX_ROWS 3 +#define MATRIX_COLS 8 + +#define TAPPING_TOGGLE 3 + +#define NO_UART 1 + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) diff --git a/keyboards/clockworkpi_keypad/keymaps/default/keymap.c b/keyboards/clockworkpi_keypad/keymaps/default/keymap.c new file mode 100644 index 0000000000..d76bc87c22 --- /dev/null +++ b/keyboards/clockworkpi_keypad/keymaps/default/keymap.c @@ -0,0 +1,20 @@ + +[0] = LAYOUT_keypad( + KC_ESC, MO(1), KC_SPC, KC_ENT, + + KC_UP KC_I, + KC_LEFT, KC_RIGHT, KC_U, KC_K, + KC_DOWN, KC_J, + + KC_HOME, KC_PGUP, MO(1), KC_PGDN, KC_END +), + +[1] = LAYOUT_keypad( + KC_BSPC, MO(1), KC_PMNS, KC_PPLS, + + KC_UP KC_O, + KC_LEFT, KC_RIGHT, KC_Y, KC_L, + KC_DOWN, KC_H + + KC_H, KC_Y, MO(1), KC_O, KC_L +) diff --git a/keyboards/clockworkpi_keypad/matrix.c b/keyboards/clockworkpi_keypad/matrix.c new file mode 100644 index 0000000000..602f0b3d61 --- /dev/null +++ b/keyboards/clockworkpi_keypad/matrix.c @@ -0,0 +1,65 @@ +// 0 DO +// 1 D1 +// 2 D2 +// 3 D3 +// 4 D4 +// 5 D5 +// 6 D6 +// 7 D7 +// 8 B0 +// 9 B1 +// 10 B2 +// 11 B3 +// 12 B4 +// 13 B5 +// 14 C0 +// 15 C1 +// 16 C2 +// 17 C3 +// 18 C4 +// 19 C5 + +// UP D3 +// LF D6 +// DN D7 +// RH B0 + +// A B1 Y +// B B2 X +// C B3 A +// D B4 B + +// MN C0 +// SH C1 +// SL C2 +// ST B5 + +// L1 C3 +// L2 C4 +// L3 C5 +// L4 C6 +// L5 D7 + +matrix[0] = ( + (readPin(D3) << 0) | + (readPin(D6) << 1) | + (readPin(D7) << 2) | + (readPin(B0) << 3) | + (readPin(B1) << 4) | + (readPin(B2) << 5) | + (readPin(B3) << 6) | + (readPin(B4) << 7) + ); +matrix[1] = ( + (readPin(C0) << 0) | + (readPin(C1) << 1) | + (readPin(C2) << 2) | + (readPin(B5) << 3) + ); +matrix[2] = ( + (readPin(C3) << 0) | + (readPin(C4) << 1) | + (readPin(C5) << 2) | + (readPin(C6) << 3) | + (readPin(D7) << 4) + ); diff --git a/keyboards/clockworkpi_keypad/rules.mk b/keyboards/clockworkpi_keypad/rules.mk new file mode 100644 index 0000000000..5068a3ad99 --- /dev/null +++ b/keyboards/clockworkpi_keypad/rules.mk @@ -0,0 +1,52 @@ +# Copyright 2019 Jack Humbert +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# MCU name +MCU = atmega328p +PROTOCOL = VUSB + +# unsupported features for now +NO_UART = yes +NO_SUSPEND_POWER_DOWN = yes + +# processor frequency +F_CPU = 16000000 + +# Bootloader +# This definition is optional, and if your keyboard supports multiple bootloaders of +# different sizes, comment this out, and the correct address will be loaded +# automatically (+60). See bootloader.mk for all options. +# BOOTLOADER = usbasp +PROGRAM_CMD = avrdude -c usbasp -p m328p -U flash:w:$(BUILD_DIR)/$(TARGET).hex + +# build options +BOOTMAGIC_ENABLE = no +MOUSEKEY_ENABLE = yes +EXTRAKEY_ENABLE = yes +CONSOLE_ENABLE = no +COMMAND_ENABLE = yes +KEY_LOCK_ENABLE = no +NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +AUDIO_ENABLE = no + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +OPT_DEFS = -DDEBUG_LEVEL=0 +OPT_DEFS += -DBOOTLOADER_SIZE=2048 + +# custom matrix setup +CUSTOM_MATRIX = yes +SRC = matrix.c