From f2e1609801a2588a459673347ffab50662660c20 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 18 Jun 2017 12:33:14 -0400 Subject: remove hardware files, move arrow pad --- keyboards/arrow_pad/Makefile | 3 - keyboards/arrow_pad/arrow_pad.c | 1 - keyboards/arrow_pad/arrow_pad.h | 13 - keyboards/arrow_pad/config.h | 160 - keyboards/arrow_pad/keymaps/default/keymap.c | 163 - keyboards/arrow_pad/keymaps/pad_21/Makefile | 17 - keyboards/arrow_pad/keymaps/pad_21/config.h | 158 - keyboards/arrow_pad/keymaps/pad_21/keymap.c | 160 - keyboards/arrow_pad/keymaps/pad_24/Makefile | 17 - keyboards/arrow_pad/keymaps/pad_24/config.h | 160 - keyboards/arrow_pad/keymaps/pad_24/keymap.c | 163 - keyboards/arrow_pad/readme.md | 133 - keyboards/arrow_pad/rules.mk | 70 - keyboards/handwired/arrow_pad/Makefile | 3 + keyboards/handwired/arrow_pad/arrow_pad.c | 1 + keyboards/handwired/arrow_pad/arrow_pad.h | 13 + keyboards/handwired/arrow_pad/config.h | 160 + .../handwired/arrow_pad/keymaps/default/keymap.c | 163 + .../handwired/arrow_pad/keymaps/pad_21/Makefile | 17 + .../handwired/arrow_pad/keymaps/pad_21/config.h | 158 + .../handwired/arrow_pad/keymaps/pad_21/keymap.c | 160 + .../handwired/arrow_pad/keymaps/pad_24/Makefile | 17 + .../handwired/arrow_pad/keymaps/pad_24/config.h | 160 + .../handwired/arrow_pad/keymaps/pad_24/keymap.c | 163 + keyboards/handwired/arrow_pad/readme.md | 133 + keyboards/handwired/arrow_pad/rules.mk | 70 + keyboards/lets_split/imgs/left.stl | Bin 106984 -> 0 bytes .../lets_split/imgs/lets split rev2 case.iges | 17931 ------------------- keyboards/lets_split/imgs/letssplitv2.svg | 4077 ----- keyboards/lets_split/imgs/plate.stl | Bin 102484 -> 0 bytes keyboards/lets_split/imgs/right.stl | Bin 135384 -> 0 bytes keyboards/lets_split/readme.md | 1 + 32 files changed, 1219 insertions(+), 23226 deletions(-) delete mode 100644 keyboards/arrow_pad/Makefile delete mode 100644 keyboards/arrow_pad/arrow_pad.c delete mode 100644 keyboards/arrow_pad/arrow_pad.h delete mode 100644 keyboards/arrow_pad/config.h delete mode 100644 keyboards/arrow_pad/keymaps/default/keymap.c delete mode 100644 keyboards/arrow_pad/keymaps/pad_21/Makefile delete mode 100644 keyboards/arrow_pad/keymaps/pad_21/config.h delete mode 100644 keyboards/arrow_pad/keymaps/pad_21/keymap.c delete mode 100644 keyboards/arrow_pad/keymaps/pad_24/Makefile delete mode 100644 keyboards/arrow_pad/keymaps/pad_24/config.h delete mode 100644 keyboards/arrow_pad/keymaps/pad_24/keymap.c delete mode 100644 keyboards/arrow_pad/readme.md delete mode 100644 keyboards/arrow_pad/rules.mk create mode 100644 keyboards/handwired/arrow_pad/Makefile create mode 100644 keyboards/handwired/arrow_pad/arrow_pad.c create mode 100644 keyboards/handwired/arrow_pad/arrow_pad.h create mode 100644 keyboards/handwired/arrow_pad/config.h create mode 100644 keyboards/handwired/arrow_pad/keymaps/default/keymap.c create mode 100644 keyboards/handwired/arrow_pad/keymaps/pad_21/Makefile create mode 100644 keyboards/handwired/arrow_pad/keymaps/pad_21/config.h create mode 100644 keyboards/handwired/arrow_pad/keymaps/pad_21/keymap.c create mode 100644 keyboards/handwired/arrow_pad/keymaps/pad_24/Makefile create mode 100644 keyboards/handwired/arrow_pad/keymaps/pad_24/config.h create mode 100644 keyboards/handwired/arrow_pad/keymaps/pad_24/keymap.c create mode 100644 keyboards/handwired/arrow_pad/readme.md create mode 100644 keyboards/handwired/arrow_pad/rules.mk delete mode 100644 keyboards/lets_split/imgs/left.stl delete mode 100644 keyboards/lets_split/imgs/lets split rev2 case.iges delete mode 100644 keyboards/lets_split/imgs/letssplitv2.svg delete mode 100644 keyboards/lets_split/imgs/plate.stl delete mode 100644 keyboards/lets_split/imgs/right.stl diff --git a/keyboards/arrow_pad/Makefile b/keyboards/arrow_pad/Makefile deleted file mode 100644 index 4e2a6f00fd..0000000000 --- a/keyboards/arrow_pad/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -ifndef MAKEFILE_INCLUDED - include ../../Makefile -endif \ No newline at end of file diff --git a/keyboards/arrow_pad/arrow_pad.c b/keyboards/arrow_pad/arrow_pad.c deleted file mode 100644 index 381934aa88..0000000000 --- a/keyboards/arrow_pad/arrow_pad.c +++ /dev/null @@ -1 +0,0 @@ -#include "arrow_pad.h" \ No newline at end of file diff --git a/keyboards/arrow_pad/arrow_pad.h b/keyboards/arrow_pad/arrow_pad.h deleted file mode 100644 index 62882b9b54..0000000000 --- a/keyboards/arrow_pad/arrow_pad.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef ARROW_PAD_H -#define ARROW_PAD_H - -#include "quantum.h" -#include "matrix.h" -#include "keymap.h" -#ifdef BACKLIGHT_ENABLE - #include "backlight.h" -#endif -#include -#include - -#endif diff --git a/keyboards/arrow_pad/config.h b/keyboards/arrow_pad/config.h deleted file mode 100644 index 3d8d8709a5..0000000000 --- a/keyboards/arrow_pad/config.h +++ /dev/null @@ -1,160 +0,0 @@ -/* -Copyright 2012 Jun Wako - -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 . -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x4096 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Nobody -#define PRODUCT GoldPad -#define DESCRIPTION A custom keyboard - -/* key matrix size */ -#define MATRIX_ROWS 6 -#define MATRIX_COLS 4 - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * -*/ -#define MATRIX_ROW_PINS { F0, F1, F4, F5, F6, F7 } -#define MATRIX_COL_PINS { B0, B1, B2, B3 } -#define UNUSED_PINS - -#define BACKLIGHT_PIN B7 - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION ROW2COL - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCING_DELAY 5 - -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - -/* number of backlight levels */ -#define BACKLIGHT_LEVELS 3 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -//#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -//#define LOCKING_RESYNC_ENABLE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -#define FORCE_NKRO - -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* key combination for magic key command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ -) - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboards/arrow_pad/keymaps/default/keymap.c b/keyboards/arrow_pad/keymaps/default/keymap.c deleted file mode 100644 index 5647f75afe..0000000000 --- a/keyboards/arrow_pad/keymaps/default/keymap.c +++ /dev/null @@ -1,163 +0,0 @@ -// This is the canonical layout file for the Quantum project. If you want to add another keyboard, -// this is the style you want to emulate. - -#include "arrow_pad.h" -#include "led.h" - -// This is the 21-key keypad to 2x11 element matrix mapping -#define KEYMAP( \ - KM_ESC, KM_TAB, KM_BSL, KM_ARR, \ - KM_NUM, KM_FSL, KM_AST, KM_MIN, \ - KM___7, KM___8, KM___9, KM_EQU, \ - KM___4, KM___5, KM___6, KM_PLS, \ - KM___1, KM___2, KM___3, ___ENT, \ - KM___0, _____0, KM_DOT, KM_ENT \ -) { \ - { KM_ESC, KM_TAB, KM_BSL, KM_ARR }, \ - { KM_NUM, KM_FSL, KM_AST, KM_MIN }, \ - { KM___7, KM___8, KM___9, KM_EQU }, \ - { KM___4, KM___5, KM___6, KM_PLS }, \ - { KM___1, KM___2, KM___3, KC_NO }, \ - { KM___0, KC_NO, KM_DOT, KM_ENT } \ -} - -#define LAYER_BASE 0 -#define LAYER_EDIT 1 -#define LAYER_FUNCTION 2 - -#define MACRO_COPY_CUT 0 -#define MACRO_SHIFT_CONTROL 1 -#define MACRO_CONTROL_ALT 2 - -#define M_COPY KC_FN5 -#define M_SHFCT KC_FN6 -#define M_CTALT KC_FN7 - -#define SC_UNDO LCTL(KC_Z) -#define SC_REDO LCTL(KC_Y) -#define SC_CUT LCTL(KC_X) -#define SC_COPY LCTL(KC_C) -#define SC_PSTE LCTL(KC_V) -#define SC_SELA LCTL(KC_A) -#define SC_SAVE LCTL(KC_S) -#define SC_OPEN LCTL(KC_O) -#define SC_ACLS LALT(KC_F4) -#define SC_CCLS LCTL(KC_F4) - -#define _______ KC_TRNS -#define XXXXXXX KC_NO - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -[LAYER_BASE] = KEYMAP( \ - KC_ESC, KC_TAB, KC_BSLS, KC_FN0, \ - KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ - KC_P7, KC_P8, KC_P9, KC_PEQL, \ - KC_P4, KC_P5, KC_P6, KC_PPLS, \ - KC_P1, KC_P2, KC_P3, XXXXXXX, \ - KC_P0, KC_PCMM, KC_PDOT, KC_PENT ), - -[LAYER_EDIT] = KEYMAP( \ - KC_ESC, KC_TAB, KC_SPC, _______, \ - KC_FN1, SC_PSTE, SC_REDO, SC_UNDO, \ - KC_HOME, KC_UP, KC_PGUP, KC_LALT, \ - KC_LEFT, M_COPY, KC_RGHT, KC_LCTL, \ - KC_END, KC_DOWN, KC_PGDN, XXXXXXX, \ - KC_BSPC, KC_PENT, KC_DEL, M_SHFCT), - -[LAYER_FUNCTION] = KEYMAP( \ - KC_FN2, KC_FN3, KC_FN4, _______, \ - KC_FN1, _______, _______, _______, \ - _______, _______, _______, _______, \ - _______, _______, _______, _______, \ - _______, _______, _______, XXXXXXX, \ - RESET, _______, _______, _______ ), - -}; - - -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_MOMENTARY(LAYER_FUNCTION), - [1] = ACTION_LAYER_TOGGLE(LAYER_EDIT), - [2] = ACTION_BACKLIGHT_TOGGLE(), - [3] = ACTION_BACKLIGHT_INCREASE(), - [4] = ACTION_BACKLIGHT_DECREASE(), - [5] = ACTION_MACRO_TAP(MACRO_COPY_CUT), - [6] = ACTION_MACRO_TAP(MACRO_SHIFT_CONTROL), - [7] = ACTION_MACRO_TAP(MACRO_CONTROL_ALT), - -}; - - -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) -{ -} - - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch (id) { - - case MACRO_COPY_CUT: - if (record->event.pressed) { - register_code(KC_LCTL); - if (record->tap.count == 1) { - register_code(KC_C); - unregister_code(KC_C); - } - else if (record->tap.count == 2) { - register_code(KC_X); - unregister_code(KC_X); - } - unregister_code(KC_LCTL); - } - break; - - case MACRO_SHIFT_CONTROL: - if (record->event.pressed) { - if (record->tap.count <= 2) register_mods(MOD_BIT(KC_LSFT)); - if (record->tap.count == 2) register_mods(MOD_BIT(KC_LCTL)); - if (record->tap.count == 3) register_code(KC_PENT);; - } - else { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL)); - unregister_code(KC_PENT); - } - break; - - case MACRO_CONTROL_ALT: - if (record->event.pressed) { - if (record->tap.count < 2) register_mods(MOD_BIT(KC_LCTL)); - if (record->tap.count >= 2) register_mods(MOD_BIT(KC_LALT)); - } - else { - unregister_mods(MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT)); - } - break; - } - - return MACRO_NONE; -} - -void led_set_user(uint8_t usb_led) -{ - if (usb_led & (1< - -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 . -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x4097 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Nobody -#define PRODUCT Arrow Pad 21 -#define DESCRIPTION 21-Key QMK Assistant - -/* key matrix size */ -#define MATRIX_ROWS 2 -#define MATRIX_COLS 11 - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * -*/ -#define MATRIX_ROW_PINS { D3, D5 } -#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, B6, B5, B4, D7, D4 } -#define UNUSED_PINS - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION ROW2COL - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCING_DELAY 5 - -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - -/* number of backlight levels */ -#define BACKLIGHT_LEVELS 3 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -//#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -//#define LOCKING_RESYNC_ENABLE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -#define FORCE_NKRO - -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* key combination for magic key command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ -) - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboards/arrow_pad/keymaps/pad_21/keymap.c b/keyboards/arrow_pad/keymaps/pad_21/keymap.c deleted file mode 100644 index 28917a5d9e..0000000000 --- a/keyboards/arrow_pad/keymaps/pad_21/keymap.c +++ /dev/null @@ -1,160 +0,0 @@ -// This is the canonical layout file for the Quantum project. If you want to add another keyboard, -// this is the style you want to emulate. - -#include "arrow_pad.h" -#include "led.h" - -// This is the 21-key keypad to 2x11 element matrix mapping -#define KEYMAP( \ - KM_ESC, KM_TAB, KM_BSL, KM_ARR, \ - KM_NUM, KM_FSL, KM_AST, KM_MIN, \ - KM___7, KM___8, KM___9, ___PLS, \ - KM___4, KM___5, KM___6, KM_PLS, \ - KM___1, KM___2, KM___3, ___ENT, \ - KM___0, _____0, KM_DOT, KM_ENT \ -) { \ - { KM_ESC, KM_TAB, KM_BSL, KM_ARR, KM___7, KM___8, KM___9, KM_PLS, KM___1, KM___2, KM___3, }, \ - { KM_NUM, KM_FSL, KM_AST, KM_MIN, KM___4, KM___5, KM___6, KM_ENT, KC_NO, KM___0, KM_DOT, }, \ -} - - -#define LAYER_BASE 0 -#define LAYER_EDIT 1 -#define LAYER_FUNCTION 2 - -#define MACRO_COPY_CUT 0 -#define MACRO_SHIFT_CONTROL 1 -#define MACRO_CONTROL_ALT 2 - -#define M_COPY KC_FN5 -#define M_SHFCT KC_FN6 -#define M_CTALT KC_FN7 - -#define SC_UNDO LCTL(KC_Z) -#define SC_REDO LCTL(KC_Y) -#define SC_CUT LCTL(KC_X) -#define SC_COPY LCTL(KC_C) -#define SC_PSTE LCTL(KC_V) -#define SC_SELA LCTL(KC_A) -#define SC_SAVE LCTL(KC_S) -#define SC_OPEN LCTL(KC_O) -#define SC_ACLS LALT(KC_F4) -#define SC_CCLS LCTL(KC_F4) - -#define _______ KC_TRNS -#define XXXXXXX KC_NO - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -[LAYER_BASE] = KEYMAP( \ - KC_ESC, KC_TAB, KC_BSLS, KC_FN0, \ - KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ - KC_P7, KC_P8, KC_P9, XXXXXXX, \ - KC_P4, KC_P5, KC_P6, KC_PPLS, \ - KC_P1, KC_P2, KC_P3, XXXXXXX, \ - KC_P0, XXXXXXX, KC_PDOT, KC_PENT ), - -[LAYER_EDIT] = KEYMAP( \ - KC_ESC, KC_TAB, KC_SPC, _______, \ - KC_FN1, SC_PSTE, SC_REDO, SC_UNDO, \ - KC_HOME, KC_UP, KC_PGUP, XXXXXXX, \ - KC_LEFT, M_COPY, KC_RGHT, M_CTALT, \ - KC_END, KC_DOWN, KC_PGDN, XXXXXXX, \ - KC_BSPC, XXXXXXX, KC_DEL, M_SHFCT), - -[LAYER_FUNCTION] = KEYMAP( \ - KC_FN2, KC_FN3, KC_FN4, _______, \ - KC_FN1, _______, _______, _______, \ - _______, _______, _______, XXXXXXX, \ - _______, _______, _______, _______, \ - _______, _______, _______, XXXXXXX, \ - RESET, XXXXXXX, _______, _______ ), - -}; - - -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_MOMENTARY(LAYER_FUNCTION), - [1] = ACTION_LAYER_TOGGLE(LAYER_EDIT), - [2] = ACTION_BACKLIGHT_TOGGLE(), - [3] = ACTION_BACKLIGHT_INCREASE(), - [4] = ACTION_BACKLIGHT_DECREASE(), - [5] = ACTION_MACRO_TAP(MACRO_COPY_CUT), - [6] = ACTION_MACRO_TAP(MACRO_SHIFT_CONTROL), - [7] = ACTION_MACRO_TAP(MACRO_CONTROL_ALT), - -}; - - -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) -{ -} - - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch (id) { - - case MACRO_COPY_CUT: - if (record->event.pressed) { - register_code(KC_LCTL); - if (record->tap.count == 1) { - register_code(KC_C); - unregister_code(KC_C); - } - else if (record->tap.count == 2) { - register_code(KC_X); - unregister_code(KC_X); - } - unregister_code(KC_LCTL); - } - break; - - case MACRO_SHIFT_CONTROL: - if (record->event.pressed) { - if (record->tap.count <= 2) register_mods(MOD_BIT(KC_LSFT)); - if (record->tap.count == 2) register_mods(MOD_BIT(KC_LCTL)); - if (record->tap.count == 3) register_code(KC_PENT);; - } - else { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL)); - unregister_code(KC_PENT); - } - break; - - case MACRO_CONTROL_ALT: - if (record->event.pressed) { - if (record->tap.count < 2) register_mods(MOD_BIT(KC_LCTL)); - if (record->tap.count >= 2) register_mods(MOD_BIT(KC_LALT)); - } - else { - unregister_mods(MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT)); - } - break; - } - - return MACRO_NONE; -} - -void led_set_user(uint8_t usb_led) -{ - if (usb_led & (1< - -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 . -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x4096 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Nobody -#define PRODUCT Arrow Pad 24 -#define DESCRIPTION 24-Key QMK Assistant - -/* key matrix size */ -#define MATRIX_ROWS 6 -#define MATRIX_COLS 4 - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * -*/ -#define MATRIX_ROW_PINS { F0, F1, F4, F5, F6, F7 } -#define MATRIX_COL_PINS { B0, B1, B2, B3 } -#define UNUSED_PINS - -#define BACKLIGHT_PIN B7 - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION ROW2COL - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCING_DELAY 5 - -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - -/* number of backlight levels */ -#define BACKLIGHT_LEVELS 3 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -//#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -//#define LOCKING_RESYNC_ENABLE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -#define FORCE_NKRO - -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* key combination for magic key command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ -) - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboards/arrow_pad/keymaps/pad_24/keymap.c b/keyboards/arrow_pad/keymaps/pad_24/keymap.c deleted file mode 100644 index 5647f75afe..0000000000 --- a/keyboards/arrow_pad/keymaps/pad_24/keymap.c +++ /dev/null @@ -1,163 +0,0 @@ -// This is the canonical layout file for the Quantum project. If you want to add another keyboard, -// this is the style you want to emulate. - -#include "arrow_pad.h" -#include "led.h" - -// This is the 21-key keypad to 2x11 element matrix mapping -#define KEYMAP( \ - KM_ESC, KM_TAB, KM_BSL, KM_ARR, \ - KM_NUM, KM_FSL, KM_AST, KM_MIN, \ - KM___7, KM___8, KM___9, KM_EQU, \ - KM___4, KM___5, KM___6, KM_PLS, \ - KM___1, KM___2, KM___3, ___ENT, \ - KM___0, _____0, KM_DOT, KM_ENT \ -) { \ - { KM_ESC, KM_TAB, KM_BSL, KM_ARR }, \ - { KM_NUM, KM_FSL, KM_AST, KM_MIN }, \ - { KM___7, KM___8, KM___9, KM_EQU }, \ - { KM___4, KM___5, KM___6, KM_PLS }, \ - { KM___1, KM___2, KM___3, KC_NO }, \ - { KM___0, KC_NO, KM_DOT, KM_ENT } \ -} - -#define LAYER_BASE 0 -#define LAYER_EDIT 1 -#define LAYER_FUNCTION 2 - -#define MACRO_COPY_CUT 0 -#define MACRO_SHIFT_CONTROL 1 -#define MACRO_CONTROL_ALT 2 - -#define M_COPY KC_FN5 -#define M_SHFCT KC_FN6 -#define M_CTALT KC_FN7 - -#define SC_UNDO LCTL(KC_Z) -#define SC_REDO LCTL(KC_Y) -#define SC_CUT LCTL(KC_X) -#define SC_COPY LCTL(KC_C) -#define SC_PSTE LCTL(KC_V) -#define SC_SELA LCTL(KC_A) -#define SC_SAVE LCTL(KC_S) -#define SC_OPEN LCTL(KC_O) -#define SC_ACLS LALT(KC_F4) -#define SC_CCLS LCTL(KC_F4) - -#define _______ KC_TRNS -#define XXXXXXX KC_NO - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -[LAYER_BASE] = KEYMAP( \ - KC_ESC, KC_TAB, KC_BSLS, KC_FN0, \ - KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ - KC_P7, KC_P8, KC_P9, KC_PEQL, \ - KC_P4, KC_P5, KC_P6, KC_PPLS, \ - KC_P1, KC_P2, KC_P3, XXXXXXX, \ - KC_P0, KC_PCMM, KC_PDOT, KC_PENT ), - -[LAYER_EDIT] = KEYMAP( \ - KC_ESC, KC_TAB, KC_SPC, _______, \ - KC_FN1, SC_PSTE, SC_REDO, SC_UNDO, \ - KC_HOME, KC_UP, KC_PGUP, KC_LALT, \ - KC_LEFT, M_COPY, KC_RGHT, KC_LCTL, \ - KC_END, KC_DOWN, KC_PGDN, XXXXXXX, \ - KC_BSPC, KC_PENT, KC_DEL, M_SHFCT), - -[LAYER_FUNCTION] = KEYMAP( \ - KC_FN2, KC_FN3, KC_FN4, _______, \ - KC_FN1, _______, _______, _______, \ - _______, _______, _______, _______, \ - _______, _______, _______, _______, \ - _______, _______, _______, XXXXXXX, \ - RESET, _______, _______, _______ ), - -}; - - -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_MOMENTARY(LAYER_FUNCTION), - [1] = ACTION_LAYER_TOGGLE(LAYER_EDIT), - [2] = ACTION_BACKLIGHT_TOGGLE(), - [3] = ACTION_BACKLIGHT_INCREASE(), - [4] = ACTION_BACKLIGHT_DECREASE(), - [5] = ACTION_MACRO_TAP(MACRO_COPY_CUT), - [6] = ACTION_MACRO_TAP(MACRO_SHIFT_CONTROL), - [7] = ACTION_MACRO_TAP(MACRO_CONTROL_ALT), - -}; - - -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) -{ -} - - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch (id) { - - case MACRO_COPY_CUT: - if (record->event.pressed) { - register_code(KC_LCTL); - if (record->tap.count == 1) { - register_code(KC_C); - unregister_code(KC_C); - } - else if (record->tap.count == 2) { - register_code(KC_X); - unregister_code(KC_X); - } - unregister_code(KC_LCTL); - } - break; - - case MACRO_SHIFT_CONTROL: - if (record->event.pressed) { - if (record->tap.count <= 2) register_mods(MOD_BIT(KC_LSFT)); - if (record->tap.count == 2) register_mods(MOD_BIT(KC_LCTL)); - if (record->tap.count == 3) register_code(KC_PENT);; - } - else { - unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL)); - unregister_code(KC_PENT); - } - break; - - case MACRO_CONTROL_ALT: - if (record->event.pressed) { - if (record->tap.count < 2) register_mods(MOD_BIT(KC_LCTL)); - if (record->tap.count >= 2) register_mods(MOD_BIT(KC_LALT)); - } - else { - unregister_mods(MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT)); - } - break; - } - - return MACRO_NONE; -} - -void led_set_user(uint8_t usb_led) -{ - if (usb_led & (1< pin - (Silkscreen Name if different) - - - -Note: -U2 pin 2 is the Num Lock LED and is active low. - -U2 pin 1 -Clear (Num Lock) - 1 -Enter - 2 -Esc (ESC) - 2 - - -U2 pin 3 -- - 1 - -U2 pin 4 -7 - 2 -8 - 2 -9 - 2 - -U2 pin 5 -* - 2 -Delete (BACK SPACE) - 2 - -U2 pin 6 -1 - 2 -0 - 2 -. - 2 -, - 2 - -U2 pin 7 -4 - 2 -5 - 2 -6 - 2 - -U2 pin 8 -Tab - 2 -= (/) - 2 - -U2 pin 13 -Delete (BACK SPACE) - 1 -9 - 1 -6 - 1 -3 - 1 -. - 1 - -U2 pin 14 -Tab - 1 -8 - 1 -5 - 1 -2 - 1 -0 - 1 - -U2 pin 15 -Esc (ESC) - 1 -= (/) - 1 -/ (*) - 1 -7 - 1 -4 - 1 -1 - 1 -+ - 1 - -U2 pin 16 -Enter - 1 -* (<--) - 1 -, - 1 - -U2 pin 17 -Fn (#NAME?) - 1 -- - 2 -Clear (Num Lock) - 2 - -U2 pin 18 -Fn (#NAME?) - 2 -* (<--) - 2 -+ - 2 -3 - 2 -2 - 2 -``` - -More info can be found on [GeekHack](https://geekhack.org/index.php?topic=73632.msg1802497#msg1802497) - -The second ArrowPad was a conversion from a 21-key Genovation keypad. It used a 2 row x 11 column matrix. - -``` -#define KEYMAP( \ - KM_ESC, KM_TAB, KM_BSL, KM_ARR, \ - KM_NUM, KM_FSL, KM_AST, KM_MIN, \ - KM___7, KM___8, KM___9, ___PLS, \ - KM___4, KM___5, KM___6, KM_PLS, \ - KM___1, KM___2, KM___3, ___ENT, \ - KM___0, _____0, KM_DOT, KM_ENT \ -) { \ - { KM_ESC, KM_TAB, KM_BSL, KM_ARR, KM___7, KM___8, KM___9, KM_PLS, KM___1, KM___2, KM___3, }, \ - { KM_NUM, KM_FSL, KM_AST, KM_MIN, KM___4, KM___5, KM___6, KM_ENT, KC_NO, KM___0, KM_DOT, }, \ -} -``` - - -## Quantum MK Firmware - -For the full Quantum feature list, see [the parent readme.md](/readme.md). - -## Building - -Download or clone the whole firmware and navigate to the keyboards/arrow_pad folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. - -Depending on which keymap you would like to use, you will have to compile slightly differently. - -### Default -To build with the default keymap, simply run `make default`. - -### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` in the keymaps folder, and see keymap document (you can find in top readme.md) and existent keymap files. - -To build the firmware binary hex file with a keymap just do `make` with a keymap like this: - -``` -$ make [default|pad_21|pad_24|] -``` - -Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/arrow_pad/rules.mk b/keyboards/arrow_pad/rules.mk deleted file mode 100644 index 3dca9b6ea7..0000000000 --- a/keyboards/arrow_pad/rules.mk +++ /dev/null @@ -1,70 +0,0 @@ - - -# MCU name -#MCU = at90usb1287 -MCU = atmega32u4 - -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - - -# -# LUFA specific -# -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - - -# Boot Section Size in *bytes* -# Teensy halfKay 512 -# Teensy++ halfKay 1024 -# Atmel DFU loader 4096 -# LUFA bootloader 4096 -# USBaspLoader 2048 -OPT_DEFS += -DBOOTLOADER_SIZE=512 - - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) -EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) -CONSOLE_ENABLE ?= yes # Console for debug(+400) -COMMAND_ENABLE ?= yes # Commands for debug and configuration -KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend -# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE ?= yes # USB Nkey Rollover -BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality -MIDI_ENABLE ?= no # MIDI controls -UNICODE_ENABLE ?= no # Unicode -BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID -AUDIO_ENABLE ?= no # Audio output on port C6 \ No newline at end of file diff --git a/keyboards/handwired/arrow_pad/Makefile b/keyboards/handwired/arrow_pad/Makefile new file mode 100644 index 0000000000..4e2a6f00fd --- /dev/null +++ b/keyboards/handwired/arrow_pad/Makefile @@ -0,0 +1,3 @@ +ifndef MAKEFILE_INCLUDED + include ../../Makefile +endif \ No newline at end of file diff --git a/keyboards/handwired/arrow_pad/arrow_pad.c b/keyboards/handwired/arrow_pad/arrow_pad.c new file mode 100644 index 0000000000..381934aa88 --- /dev/null +++ b/keyboards/handwired/arrow_pad/arrow_pad.c @@ -0,0 +1 @@ +#include "arrow_pad.h" \ No newline at end of file diff --git a/keyboards/handwired/arrow_pad/arrow_pad.h b/keyboards/handwired/arrow_pad/arrow_pad.h new file mode 100644 index 0000000000..62882b9b54 --- /dev/null +++ b/keyboards/handwired/arrow_pad/arrow_pad.h @@ -0,0 +1,13 @@ +#ifndef ARROW_PAD_H +#define ARROW_PAD_H + +#include "quantum.h" +#include "matrix.h" +#include "keymap.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif +#include +#include + +#endif diff --git a/keyboards/handwired/arrow_pad/config.h b/keyboards/handwired/arrow_pad/config.h new file mode 100644 index 0000000000..3d8d8709a5 --- /dev/null +++ b/keyboards/handwired/arrow_pad/config.h @@ -0,0 +1,160 @@ +/* +Copyright 2012 Jun Wako + +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 . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x4096 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Nobody +#define PRODUCT GoldPad +#define DESCRIPTION A custom keyboard + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 4 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { F0, F1, F4, F5, F6, F7 } +#define MATRIX_COL_PINS { B0, B1, B2, B3 } +#define UNUSED_PINS + +#define BACKLIGHT_PIN B7 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +//#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +//#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/handwired/arrow_pad/keymaps/default/keymap.c b/keyboards/handwired/arrow_pad/keymaps/default/keymap.c new file mode 100644 index 0000000000..5647f75afe --- /dev/null +++ b/keyboards/handwired/arrow_pad/keymaps/default/keymap.c @@ -0,0 +1,163 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "arrow_pad.h" +#include "led.h" + +// This is the 21-key keypad to 2x11 element matrix mapping +#define KEYMAP( \ + KM_ESC, KM_TAB, KM_BSL, KM_ARR, \ + KM_NUM, KM_FSL, KM_AST, KM_MIN, \ + KM___7, KM___8, KM___9, KM_EQU, \ + KM___4, KM___5, KM___6, KM_PLS, \ + KM___1, KM___2, KM___3, ___ENT, \ + KM___0, _____0, KM_DOT, KM_ENT \ +) { \ + { KM_ESC, KM_TAB, KM_BSL, KM_ARR }, \ + { KM_NUM, KM_FSL, KM_AST, KM_MIN }, \ + { KM___7, KM___8, KM___9, KM_EQU }, \ + { KM___4, KM___5, KM___6, KM_PLS }, \ + { KM___1, KM___2, KM___3, KC_NO }, \ + { KM___0, KC_NO, KM_DOT, KM_ENT } \ +} + +#define LAYER_BASE 0 +#define LAYER_EDIT 1 +#define LAYER_FUNCTION 2 + +#define MACRO_COPY_CUT 0 +#define MACRO_SHIFT_CONTROL 1 +#define MACRO_CONTROL_ALT 2 + +#define M_COPY KC_FN5 +#define M_SHFCT KC_FN6 +#define M_CTALT KC_FN7 + +#define SC_UNDO LCTL(KC_Z) +#define SC_REDO LCTL(KC_Y) +#define SC_CUT LCTL(KC_X) +#define SC_COPY LCTL(KC_C) +#define SC_PSTE LCTL(KC_V) +#define SC_SELA LCTL(KC_A) +#define SC_SAVE LCTL(KC_S) +#define SC_OPEN LCTL(KC_O) +#define SC_ACLS LALT(KC_F4) +#define SC_CCLS LCTL(KC_F4) + +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[LAYER_BASE] = KEYMAP( \ + KC_ESC, KC_TAB, KC_BSLS, KC_FN0, \ + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ + KC_P7, KC_P8, KC_P9, KC_PEQL, \ + KC_P4, KC_P5, KC_P6, KC_PPLS, \ + KC_P1, KC_P2, KC_P3, XXXXXXX, \ + KC_P0, KC_PCMM, KC_PDOT, KC_PENT ), + +[LAYER_EDIT] = KEYMAP( \ + KC_ESC, KC_TAB, KC_SPC, _______, \ + KC_FN1, SC_PSTE, SC_REDO, SC_UNDO, \ + KC_HOME, KC_UP, KC_PGUP, KC_LALT, \ + KC_LEFT, M_COPY, KC_RGHT, KC_LCTL, \ + KC_END, KC_DOWN, KC_PGDN, XXXXXXX, \ + KC_BSPC, KC_PENT, KC_DEL, M_SHFCT), + +[LAYER_FUNCTION] = KEYMAP( \ + KC_FN2, KC_FN3, KC_FN4, _______, \ + KC_FN1, _______, _______, _______, \ + _______, _______, _______, _______, \ + _______, _______, _______, _______, \ + _______, _______, _______, XXXXXXX, \ + RESET, _______, _______, _______ ), + +}; + + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(LAYER_FUNCTION), + [1] = ACTION_LAYER_TOGGLE(LAYER_EDIT), + [2] = ACTION_BACKLIGHT_TOGGLE(), + [3] = ACTION_BACKLIGHT_INCREASE(), + [4] = ACTION_BACKLIGHT_DECREASE(), + [5] = ACTION_MACRO_TAP(MACRO_COPY_CUT), + [6] = ACTION_MACRO_TAP(MACRO_SHIFT_CONTROL), + [7] = ACTION_MACRO_TAP(MACRO_CONTROL_ALT), + +}; + + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) +{ +} + + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch (id) { + + case MACRO_COPY_CUT: + if (record->event.pressed) { + register_code(KC_LCTL); + if (record->tap.count == 1) { + register_code(KC_C); + unregister_code(KC_C); + } + else if (record->tap.count == 2) { + register_code(KC_X); + unregister_code(KC_X); + } + unregister_code(KC_LCTL); + } + break; + + case MACRO_SHIFT_CONTROL: + if (record->event.pressed) { + if (record->tap.count <= 2) register_mods(MOD_BIT(KC_LSFT)); + if (record->tap.count == 2) register_mods(MOD_BIT(KC_LCTL)); + if (record->tap.count == 3) register_code(KC_PENT);; + } + else { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL)); + unregister_code(KC_PENT); + } + break; + + case MACRO_CONTROL_ALT: + if (record->event.pressed) { + if (record->tap.count < 2) register_mods(MOD_BIT(KC_LCTL)); + if (record->tap.count >= 2) register_mods(MOD_BIT(KC_LALT)); + } + else { + unregister_mods(MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT)); + } + break; + } + + return MACRO_NONE; +} + +void led_set_user(uint8_t usb_led) +{ + if (usb_led & (1< + +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 . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x4097 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Nobody +#define PRODUCT Arrow Pad 21 +#define DESCRIPTION 21-Key QMK Assistant + +/* key matrix size */ +#define MATRIX_ROWS 2 +#define MATRIX_COLS 11 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { D3, D5 } +#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, B6, B5, B4, D7, D4 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +//#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +//#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/handwired/arrow_pad/keymaps/pad_21/keymap.c b/keyboards/handwired/arrow_pad/keymaps/pad_21/keymap.c new file mode 100644 index 0000000000..28917a5d9e --- /dev/null +++ b/keyboards/handwired/arrow_pad/keymaps/pad_21/keymap.c @@ -0,0 +1,160 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "arrow_pad.h" +#include "led.h" + +// This is the 21-key keypad to 2x11 element matrix mapping +#define KEYMAP( \ + KM_ESC, KM_TAB, KM_BSL, KM_ARR, \ + KM_NUM, KM_FSL, KM_AST, KM_MIN, \ + KM___7, KM___8, KM___9, ___PLS, \ + KM___4, KM___5, KM___6, KM_PLS, \ + KM___1, KM___2, KM___3, ___ENT, \ + KM___0, _____0, KM_DOT, KM_ENT \ +) { \ + { KM_ESC, KM_TAB, KM_BSL, KM_ARR, KM___7, KM___8, KM___9, KM_PLS, KM___1, KM___2, KM___3, }, \ + { KM_NUM, KM_FSL, KM_AST, KM_MIN, KM___4, KM___5, KM___6, KM_ENT, KC_NO, KM___0, KM_DOT, }, \ +} + + +#define LAYER_BASE 0 +#define LAYER_EDIT 1 +#define LAYER_FUNCTION 2 + +#define MACRO_COPY_CUT