diff options
author | imchipwood <charles.p.wood@intel.com> | 2021-03-04 20:25:19 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-04 20:25:19 -0800 |
commit | d7aa245c3343542381ae0e9eb1b77eadca74da57 (patch) | |
tree | 30bd44fcc70dc7e2c49ab23adeac81b903cc7121 /keyboards/dumbpad | |
parent | 2cb0b41ce7e9e9bc743451d7412a3114ec1d01b2 (diff) |
dumbpad refactor - adding support for various PCB revisions (#9259)
* Placeholder commit - Refactored to support different PCB revisions
Individual revision folders still need:
- info.json
- readme.md
all v0x folders support up to two LEDs for layer indication
all v1x folders support up to two LEDs for layer indication
plus one extra LED for numlock indication
v0x - supports single-encoder v0.x PCB revisions
v0x_right - supports reversible, single-encoder v0.x PCB revisions
v0x_dualencoder - supports dual-encoder v0.x PCB revisions
v1x - supports single-encoder v1.x PCB revisiions
v1x_right - supports reversible, single-encoder v1.x PCB revisions
* Added info.json and readme.md files for all dumbpad revisions
* More refactoring, adding shared config.h and rules.mk
Removed config.h from default keymap folders - defining TAPPING_TOGGLE in config.h
* Minor formatting fix
* MATRIX_COL_PINS for v1x_right was not reversed - changed to match v0x_right
* adding support for v1x dual encoder PCB
* adding alt-f2 tapdance routine for personal keymaps
* adding dumbpad build using teensy 2.0 instead of Pro Micro
* matched v1x dumbpad encoder and led pins to latest PCB revisions
* updated readme, removed v1x_teensy until someone requests it
* changed device name to match tmk udev rules, removed unnecessary ifdef
* removed user keymaps and folders
* missed hotdox keymap - removing
* fixing info.json keyboard_names for all versions
* Changed biton32 to get_highest_layer in keyboards/dumbpad/v0x/v0x.c
* keyboards/dumbpad/v0x/v0x.c - remove matrix_scan_kb, process_record_kb
* /dumbpad/v0x/keymaps/default/keymap.c - remove empty functions
* /dumbpad/v0x/keymaps/default/keymap.c - changed biton32 to get_highest_layer
* keyboards/dumbpad/v0x_dualencoder/keymaps/default/keymap.c - remove empty functions
* keyboards/dumbpad/v0x_right/readme.md - smaller board layout image
* keyboards/dumbpad/v1x_dualencoder/readme.md - smaller board image
* keyboards/dumbpad/v1x/readme.md - smaller board image
* keyboards/dumbpad/v1x_right/readme.md - smaller board image
* Update keyboards/dumbpad/rules.mk
* Apply suggestions from code review
Batch applying suggestions from review
* fixed removal of led_set_kb
* Implementing requested changes from old pull request 9259
* removing unused rules
* removed rules.mk from dumbpad base folder
* adding templates for each layout
* testing default keymap json
* Testing applying default keymap for dumbpad
* Layout correction: v1.x are 17 position pcb's
* Update keyboards/dumbpad/v0x/rules.mk
* Update keyboards/dumbpad/v0x/rules.mk
* Update keyboards/dumbpad/v0x_dualencoder/keymaps/default/keymap.c
* Update keyboards/dumbpad/v0x_dualencoder/rules.mk
* Update keyboards/dumbpad/v0x_dualencoder/rules.mk
* Update keyboards/dumbpad/v1x_dualencoder/rules.mk
* Update keyboards/dumbpad/v1x_dualencoder/templates/keymap.c
* Update keyboards/dumbpad/v1x_right/rules.mk
* Update keyboards/dumbpad/v1x_right/rules.mk
* Update keyboards/dumbpad/rules.mk
* Update keyboards/dumbpad/v0x_dualencoder/templates/keymap.c
* Update keyboards/dumbpad/v0x_right/rules.mk
* Update keyboards/dumbpad/v1x/rules.mk
* Update keyboards/dumbpad/v1x/rules.mk
* Update keyboards/dumbpad/v1x_dualencoder/keymaps/default/keymap.c
* Update keyboards/dumbpad/v1x_dualencoder/rules.mk
* Update keyboards/dumbpad/v0x_right/rules.mk
* Removing binary files
Diffstat (limited to 'keyboards/dumbpad')
57 files changed, 2110 insertions, 669 deletions
diff --git a/keyboards/dumbpad/config.h b/keyboards/dumbpad/config.h index d1fa9aa4b3..5a1a1c92b8 100644 --- a/keyboards/dumbpad/config.h +++ b/keyboards/dumbpad/config.h @@ -1,5 +1,5 @@ /* -Copyright 2019 imchipwood +Copyright 2020 imchipwood 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 @@ -14,218 +14,21 @@ 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 <http://www.gnu.org/licenses/>. */ - #pragma once #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xDEAF +#define VENDOR_ID 0xFEED #define PRODUCT_ID 0x0913 -#define DEVICE_VER 0x0001 #define MANUFACTURER imchipwood #define PRODUCT dumbpad - -/* - * 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_ROWS 4 -#define MATRIX_COLS 5 -#define MATRIX_ROW_PINS { F4, F5, F6, F7 } -#define MATRIX_COL_PINS { C6, D7, E6, B4, B5 } -#define UNUSED_PINS - -/* COL2ROW, ROW2COL*/ +/* Column/Row IO definitions */ #define DIODE_DIRECTION COL2ROW -/* Rotary encoder */ -#define ENCODERS_PAD_A { D0 } -#define ENCODERS_PAD_B { D4 } - -/* LED layer indicators */ -#define LAYER_INDICATOR_LED_0 B3 -#define LAYER_INDICATOR_LED_1 B1 - -/* Bootmagic - hold down rotary encoder pushbutton while plugging in to enter bootloader */ -#define BOOTMAGIC_LITE_ROW 3 -#define BOOTMAGIC_LITE_COLUMN 0 - - /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - -/* number of backlight levels */ - -/* 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 - -/* - * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. - */ -//#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 - -// #define BACKLIGHT_PIN B7 -// #define BACKLIGHT_BREATHING -// #define BACKLIGHT_LEVELS 3 - -// #define RGB_DI_PIN E2 -// #ifdef RGB_DI_PIN -// #define RGBLED_NUM 16 -// #define RGBLIGHT_HUE_STEP 8 -// #define RGBLIGHT_SAT_STEP 8 -// #define RGBLIGHT_VAL_STEP 8 -// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ -// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -// /*== all animations enable ==*/ -// #define RGBLIGHT_ANIMATIONS -// /*== or choose animations ==*/ -// #define RGBLIGHT_EFFECT_BREATHING -// #define RGBLIGHT_EFFECT_RAINBOW_MOOD -// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL -// #define RGBLIGHT_EFFECT_SNAKE -// #define RGBLIGHT_EFFECT_KNIGHT -// #define RGBLIGHT_EFFECT_CHRISTMAS -// #define RGBLIGHT_EFFECT_STATIC_GRADIENT -// #define RGBLIGHT_EFFECT_RGB_TEST -// #define RGBLIGHT_EFFECT_ALTERNATING -// /*== customize breathing effect ==*/ -// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ -// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 -// /*==== use exp() and sin() ====*/ -// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 -// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 -// #endif - -/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. - * This is userful for the Windows task manager shortcut (ctrl+shift+esc). - */ -// #define GRAVE_ESC_CTRL_OVERRIDE - -/* - * 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 */ -/* defined by default; to change, uncomment and set to the combination you want */ -// #define IS_COMMAND() (get_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_HELP H -//#define MAGIC_KEY_HELP_ALT 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 0 -//#define MAGIC_KEY_LAYER0_ALT GRAVE -//#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 B -//#define MAGIC_KEY_BOOTLOADER_ALT ESC -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_EEPROM_CLEAR BSPACE -//#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 - -/* - * MIDI options - */ - -/* enable basic MIDI features: - - MIDI notes can be sent when in Music mode is on -*/ -//#define MIDI_BASIC - -/* enable advanced MIDI features: - - MIDI notes can be added to the keymap - - Octave shift and transpose - - Virtual sustain, portamento, and modulation wheel - - etc. -*/ -//#define MIDI_ADVANCED - -/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ -//#define MIDI_TONE_KEYCODE_OCTAVES 1 - -/* Bootmagic Lite key configuration */ -// #define BOOTMAGIC_LITE_ROW 0 -// #define BOOTMAGIC_LITE_COLUMN 0 +/* Reduce tapdance required taps from 5 to 2 */ +#define TAPPING_TOGGLE 2 diff --git a/keyboards/dumbpad/dumbpad.c b/keyboards/dumbpad/dumbpad.c deleted file mode 100644 index d9b649c715..0000000000 --- a/keyboards/dumbpad/dumbpad.c +++ /dev/null @@ -1,83 +0,0 @@ -/* Copyright 2019 Chip - * - * 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 <http://www.gnu.org/licenses/>. - */ -#include "dumbpad.h" - -void keyboard_pre_init_kb(void) { - // Set the layer LED IO as outputs - setPinOutput(LAYER_INDICATOR_LED_0); - setPinOutput(LAYER_INDICATOR_LED_1); - - keyboard_pre_init_user(); -} - -void shutdown_user() { - // Shutdown the layer LEDs - writePinLow(LAYER_INDICATOR_LED_0); - writePinLow(LAYER_INDICATOR_LED_1); -} - -layer_state_t layer_state_set_kb(layer_state_t state) { - // Layer LEDs act as binary indication of current layer - uint8_t layer = biton32(state); - writePin(LAYER_INDICATOR_LED_0, layer & 0b1); - writePin(LAYER_INDICATOR_LED_1, (layer >> 1) & 0b1); - return layer_state_set_user(state); -} - -// Optional override functions below. -// You can leave any or all of these undefined. -// These are only required if you want to perform custom actions. - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - for (int i = 0; i < 2; i++) { - writePin(LAYER_INDICATOR_LED_0, true); - writePin(LAYER_INDICATOR_LED_1, false); - wait_ms(100); - writePin(LAYER_INDICATOR_LED_0, true); - writePin(LAYER_INDICATOR_LED_1, true); - wait_ms(100); - writePin(LAYER_INDICATOR_LED_0, false); - writePin(LAYER_INDICATOR_LED_1, true); - wait_ms(100); - writePin(LAYER_INDICATOR_LED_0, false); - writePin(LAYER_INDICATOR_LED_1, false); - wait_ms(100); - } - - matrix_init_user(); -} - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - - matrix_scan_user(); -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware - - return process_record_user(keycode, record); -} - -void led_set_kb(uint8_t usb_led) { - // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here - - led_set_user(usb_led); -} diff --git a/keyboards/dumbpad/info.json b/keyboards/dumbpad/info.json deleted file mode 100644 index 8b6a8116e3..0000000000 --- a/keyboards/dumbpad/info.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "keyboard_name": "dumbpad", - "url": "", - "maintainer": "qmk", - "width": 5, - "height": 4, - "layouts": { - "LAYOUT": { - "layout": [ - {"label":"7", "x":1, "y":0}, - {"label":"8", "x":2, "y":0}, - {"label":"9", "x":3, "y":0}, - {"label":"BSPC", "x":4, "y":0}, - {"label":"4", "x":1, "y":1}, - {"label":"5", "x":2, "y":1}, - {"label":"6", "x":3, "y":1}, - {"label":"ESC", "x":4, "y":1}, - {"label":"1", "x":1, "y":2}, - {"label":"2", "x":2, "y":2}, - {"label":"3", "x":3, "y":2}, - {"label":"TAB", "x":4, "y":2}, - {"label":"LMOUSE", "x":0, "y":3}, - {"label":"TT(2)", "x":1, "y":3}, - {"label":"0", "x":2, "y":3}, - {"label":".", "x":3, "y":3}, - {"label":"ENT", "x":4, "y":3} - ] - } - } -}
\ No newline at end of file diff --git a/keyboards/dumbpad/keymaps/default/config.h b/keyboards/dumbpad/keymaps/default/config.h deleted file mode 100644 index 8380885593..0000000000 --- a/keyboards/dumbpad/keymaps/default/config.h +++ /dev/null @@ -1,2 +0,0 @@ -#pragma once -#define TAPPING_TOGGLE 2 diff --git a/keyboards/dumbpad/keymaps/default/keymap.c b/keyboards/dumbpad/keymaps/default/keymap.c deleted file mode 100644 index c0d4a7c077..0000000000 --- a/keyboards/dumbpad/keymaps/default/keymap.c +++ /dev/null @@ -1,121 +0,0 @@ -/* Copyright 2019 imchipwood - * - * 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 <http://www.gnu.org/licenses/>. - */ -#include QMK_KEYBOARD_H - -#define _BASE 0 -#define _SUB 1 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - BASE LAYER - /-----------------------------------------------------` - | | 7 | 8 | 9 | Bkspc | - | |---------|---------|---------|---------| - | | 4 | 5 | 6 | Esc | - | |---------|---------|---------|---------| - | | 1 | 2 | 3 | Tab | - |-------------|---------|---------|---------|---------| - | Left mouse | TT(SUB) | 0 | . | Enter | - \-----------------------------------------------------' - */ - [_BASE] = LAYOUT( - KC_7, KC_8, KC_9, KC_BSPC, - KC_4, KC_5, KC_6, KC_ESC, - KC_1, KC_2, KC_3, KC_TAB, - KC_BTN1, TT(_SUB), KC_0, KC_DOT, KC_ENTER - ), - /* - SUB LAYER - /-----------------------------------------------------` - | | | | | Reset | - | |---------|---------|---------|---------| - | | | | | + | - | |---------|---------|---------|---------| - | | | | | - | - |-------------|---------|---------|---------|---------| - | LOCK | | | | = | - \-----------------------------------------------------' - */ - [_SUB] = LAYOUT( - _______, _______, _______, RESET, - _______, _______, _______, KC_KP_PLUS, - _______, _______, _______, KC_KP_MINUS, - KC_LOCK, _______, _______, _______, KC_EQL - ), -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - // If console is enabled, it will print the matrix position and status of each key pressed -/* -#ifdef CONSOLE_ENABLE - uprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed); -#endif -*/ - return true; -} - -void keyboard_post_init_user(void) { - // Customise these values to desired behaviour - //debug_enable = true; - //debug_matrix = true; - //debug_keyboard = true; - //debug_mouse = true; -} - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -void led_set_user(uint8_t usb_led) { - -} - -void encoder_update_user(uint8_t index, bool clockwise) { - /* Custom encoder control - handles CW/CCW turning of encoder - * Default behavior: - * main layer: - * CW: move mouse right - * CCW: move mouse left - * other layers: - * CW: = (equals/plus - increase slider in Adobe products) - * CCW: - (minus/underscore - decrease slider in adobe products) - */ - if (index == 0) { - switch (biton32(layer_state)) { - case _BASE: - // main layer - move mouse right (CW) and left (CCW) - if (clockwise) { - tap_code(KC_MS_R); - } else { - tap_code(KC_MS_L); - } - break; - - default: - // other layers - =/+ (quals/plus) (CW) and -/_ (minus/underscore) (CCW) - if (clockwise) { - tap_code(KC_EQL); - } else { - tap_code(KC_MINS); - } - break; - } - } -} diff --git a/keyboards/dumbpad/keymaps/imchipwood/config.h b/keyboards/dumbpad/keymaps/imchipwood/config.h deleted file mode 100644 index 8380885593..0000000000 --- a/keyboards/dumbpad/keymaps/imchipwood/config.h +++ /dev/null @@ -1,2 +0,0 @@ -#pragma once -#define TAPPING_TOGGLE 2 diff --git a/keyboards/dumbpad/keymaps/imchipwood/keymap.c b/keyboards/dumbpad/keymaps/imchipwood/keymap.c deleted file mode 100644 index 73a8e824ca..0000000000 --- a/keyboards/dumbpad/keymaps/imchipwood/keymap.c +++ /dev/null @@ -1,163 +0,0 @@ -/* Copyright 2019 imchipwood - * - * 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 <http://www.gnu.org/licenses/>. - */ -#include QMK_KEYBOARD_H - -#define _BASE 0 |