[Keyboard] Big Dill Extended by MechWild (#11047)

* [Keyboard] New Keyboard - BDE

Added the Big Dill Extended by MechWild

* Corrected pinout for righty config

Corrected the copied line from the lefty config that had not been updated prior to this commit.

* Corrected the files that had been overwritten with old versions during testing.

* Update keyboards/mechwild/bde/lefty/config.h

* Made changes based on suggestions. Added GPL and split preference config.h lines into keymap level.

* Apply suggestions from code review

Readme cleanup

* Update keyboards/mechwild/bde/lefty/keymaps/fancy/config.h

* Update keyboards/mechwild/bde/lefty/keymaps/via/config.h

* Apply suggestions from code review

Corrects a stray style line in one of the readme files as well as correcting the name of the keymap layout from the inaccurate 3x14 name to just "layout"
This commit is contained in:
Kyle McCreery 2020-12-07 23:14:54 -10:00 committed by GitHub
parent 35f922df73
commit 666861dd6f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 774 additions and 0 deletions

View file

@ -0,0 +1,54 @@
/* Copyright 2020 Kyle McCreery
*
* 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/>.
*/
#pragma once
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x6D77 // mw = "MechWild"
#define PRODUCT_ID 0x1701
#define DEVICE_VER 0x0203
#define MANUFACTURER MechWild
#define PRODUCT BDE Lefty
/* key matrix size */
#define MATRIX_ROWS 3
#define MATRIX_COLS 14
/* key matrix pins */
#define MATRIX_ROW_PINS { D1, D7, D3}
#define MATRIX_COL_PINS { F7, B1, B6, B2, B3, F6, F5, F4, D0, D4, C6, E6, B5, B4}
#define UNUSED_PINS
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION ROW2COL
/* If RGBLIGHT_ENABLE is set to yes in the rules, ensure the RGBLED_NUM is accurate for how many you have attached. */
#define RGB_DI_PIN D2
#define RGBLED_NUM 16
#define RGBLIGHT_ANIMATIONS
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
/* 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

View file

@ -0,0 +1,16 @@
{
"keyboard_name": "MechWild BDE Lefty",
"url": "mechwild.com",
"maintainer": "kylemccreery",
"width": 14,
"height": 3,
"layouts": {
"LAYOUT": {
"layout": [
{"label":"7", "x":0, "y":0}, {"label":"8", "x":1, "y":0}, {"label":"9", "x":2, "y":0}, {"label":"0", "x":3, "y":0}, {"label":"Q", "x":4, "y":0}, {"label":"W", "x":5, "y":0}, {"label":"E", "x":6, "y":0}, {"label":"R", "x":7, "y":0}, {"label":"T", "x":8, "y":0}, {"label":"Y", "x":9, "y":0}, {"label":"U", "x":10, "y":0}, {"label":"I", "x":11, "y":0}, {"label":"O", "x":12, "y":0}, {"label":"P", "x":13, "y":0},
{"label":"4", "x":0, "y":1}, {"label":"5", "x":1, "y":1}, {"label":"6", "x":2, "y":1}, {"label":"Enter", "x":3, "y":1, "h":2}, {"label":"A", "x":4, "y":1}, {"label":"S", "x":5, "y":1}, {"label":"D", "x":6, "y":1}, {"label":"F", "x":7, "y":1}, {"label":"G", "x":8, "y":1}, {"label":"H", "x":9, "y":1}, {"label":"J", "x":10, "y":1}, {"label":"K", "x":11, "y":1}, {"label":"L", "x":12, "y":1}, {"label":"ESC", "x":13, "y":1},
{"label":"1", "x":0, "y":2}, {"label":"2", "x":1, "y":2}, {"label":"3", "x":2, "y":2}, {"label":"Z", "x":4, "y":2}, {"label":"X", "x":5, "y":2}, {"label":"C", "x":6, "y":2}, {"label":"V", "x":7, "y":2}, {"label":"BS", "x":8, "y":2}, {"label":"", "x":9, "y":2}, {"label":"B", "x":10, "y":2}, {"label":"N", "x":11, "y":2}, {"label":"M", "x":12, "y":2}, {"label":"ENT", "x":13, "y":2}
]
}
}
}

View file

@ -0,0 +1,23 @@
/* Copyright 2020 Kyle McCreery
*
* 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/>.
*/
/* Making it so you need to hold the modifier and other key for the time together, helps not accidentally hit activate the hold functions of bottom row*/
#define IGNORE_MOD_TAP_INTERRUPT
/* Setting tap term, helps not accidentally hit activate the hold functions of bottom row*/
#define TAPPING_TERM 250

View file

@ -0,0 +1,55 @@
/* Copyright 2020 Kyle McCreery
*
* 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 FN1_SPC LT(1, KC_SPC)
#define FN2_BSPC LT(2, KC_BSPC)
#define FN3_B LT(3, KC_B)
#define CTL_Z CTL_T(KC_Z)
#define ALT_X ALT_T(KC_X)
#define ALT_N ALGR_T(KC_N)
#define CTL_M RCTL_T(KC_M)
#define SFT_ENT RSFT_T(KC_ENT)
#define WIN_C LGUI_T(KC_C)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_7, KC_8, KC_9, KC_0, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_4, KC_5, KC_6, SFT_ENT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ESC,
KC_1, KC_2, KC_3, CTL_Z, ALT_X, WIN_C, KC_V, FN2_BSPC, FN1_SPC, FN3_B, ALT_N, CTL_M, SFT_ENT
),
[1] = LAYOUT(
KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, RESET, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
KC_F4, KC_F5, KC_F6, KC_TAB, _______, _______, _______, _______, _______, KC_COMM, KC_DOT, KC_SLSH, KC_SCLN, KC_QUOT,
KC_F1, KC_F2, KC_F3, _______, _______, KC_LGUI, _______, KC_DEL, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
[2] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LABK, KC_RABK, KC_QUES, KC_COLN, KC_DQUO,
KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_HOME, KC_PGDN, KC_PGUP, KC_END
),
[3] = LAYOUT(
RGB_M_G, RGB_M_T, _______, RGB_M_P, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, _______, _______, _______, _______, _______, _______,
RGB_M_SN, RGB_M_K, RGB_M_X, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD, _______, _______, _______, _______, _______, _______,
RGB_M_B, RGB_M_R, RGB_M_SW, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};

View file

@ -0,0 +1,22 @@
/* Copyright 2020 Kyle McCreery
*
* 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/>.
*/
#pragma once
/* Making it so you need to hold the modifier and other key for the time together, helps not accidentally hit activate the hold functions of bottom row*/
#define IGNORE_MOD_TAP_INTERRUPT
/* Setting tap term, helps not accidentally hit activate the hold functions of bottom row*/
#define TAPPING_TERM 250

View file

@ -0,0 +1,121 @@
/* Copyright 2020 Kyle McCreery
*
* 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 FN1_SPC LT(1, KC_SPC)
#define FN2_BSPC LT(2, KC_BSPC)
#define FN3_B LT(3, KC_B)
#define CTL_Z CTL_T(KC_Z)
#define ALT_X ALT_T(KC_X)
#define ALT_N ALGR_T(KC_N)
#define CTL_M RCTL_T(KC_M)
#define SFT_ENT RSFT_T(KC_ENT)
#define WIN_C LGUI_T(KC_C)
typedef struct {
bool is_press_action;
uint8_t state;
} tap;
enum {
SINGLE_TAP = 1,
SINGLE_HOLD,
DOUBLE_TAP
};
// Tap dance enums
enum {
left_enter,
};
uint8_t cur_dance(qk_tap_dance_state_t *state);
void left_enter_finished(qk_tap_dance_state_t *state, void *user_data);
void left_enter_reset(qk_tap_dance_state_t *state, void *user_data);
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_7, KC_8, KC_9, KC_0, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_4, KC_5, KC_6, TD(left_enter), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ESC,
KC_1, KC_2, KC_3, CTL_Z, ALT_X, WIN_C, KC_V, FN2_BSPC, FN1_SPC, FN3_B, ALT_N, CTL_M, SFT_ENT
),
[1] = LAYOUT(
KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, RESET, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
KC_F4, KC_F5, KC_F6, KC_TAB, _______, _______, _______, _______, _______, KC_COMM, KC_DOT, KC_SLSH, KC_SCLN, KC_QUOT,
KC_F1, KC_F2, KC_F3, _______, _______, KC_LGUI, _______, KC_DEL, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
[2] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LABK, KC_RABK, KC_QUES, KC_COLN, KC_DQUO,
KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_HOME, KC_PGDN, KC_PGUP, KC_END
),
[3] = LAYOUT(
RGB_M_G, RGB_M_T, _______, RGB_M_P, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, _______, _______, _______, _______, _______, _______,
RGB_M_SN, RGB_M_K, RGB_M_X, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD, _______, _______, _______, _______, _______, _______,
RGB_M_B, RGB_M_R, RGB_M_SW, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
uint8_t cur_dance(qk_tap_dance_state_t *state) {
if (state->count == 1) {
if (state->interrupted || !state->pressed) return SINGLE_TAP;
// Key has not been interrupted, but the key is still held. Means you want to send a 'HOLD'.
else return SINGLE_HOLD;
} else return DOUBLE_TAP;
//} else if (state->count >= 2) {
// return DOUBLE_TAP;
//}else return 8; // Magic number. At some point this method will expand to work for more presses
}
static tap left_enter_tap_state = {
.is_press_action = true,
.state = 0
};
void left_enter_finished(qk_tap_dance_state_t *state, void *user_data) {
left_enter_tap_state.state = cur_dance(state);
switch (left_enter_tap_state.state) {
//case SINGLE_TAP: register_code(KC_ENT); break;
case SINGLE_HOLD: register_code(KC_LSFT); break;
case DOUBLE_TAP: register_code(KC_ENT); break;
}
}
void left_enter_reset(qk_tap_dance_state_t *state, void *user_data) {
switch (left_enter_tap_state.state) {
//case SINGLE_TAP: unregister_code(KC_ENT); break;
case SINGLE_HOLD: unregister_code(KC_LSFT); break;
case DOUBLE_TAP: unregister_code(KC_ENT); break;
}
left_enter_tap_state.state = 0;
}
qk_tap_dance_action_t tap_dance_actions[] = {
[left_enter] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, left_enter_finished, left_enter_reset)
};

View file

@ -0,0 +1,2 @@
TAP_DANCE_ENABLE = yes

View file

@ -0,0 +1,22 @@
/* Copyright 2020 Kyle McCreery
*
* 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/>.
*/
#pragma once
/* Making it so you need to hold the modifier and other key for the time together, helps not accidentally hit activate the hold functions of bottom row*/
#define IGNORE_MOD_TAP_INTERRUPT
/* Setting tap term, helps not accidentally hit activate the hold functions of bottom row*/
#define TAPPING_TERM 250

View file

@ -0,0 +1,56 @@
/* Copyright 2020 Kyle McCreery
*
* 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 FN1_SPC LT(1, KC_SPC)
#define FN2_BSPC LT(2, KC_BSPC)
#define FN3_B LT(3, KC_B)
#define CTL_Z CTL_T(KC_Z)
#define ALT_X ALT_T(KC_X)
#define ALT_N ALGR_T(KC_N)
#define CTL_M RCTL_T(KC_M)
#define SFT_ENT RSFT_T(KC_ENT)
#define WIN_C LGUI_T(KC_C)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_7, KC_8, KC_9, KC_0, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_4, KC_5, KC_6, SFT_ENT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ESC,
KC_1, KC_2, KC_3, CTL_Z, ALT_X, WIN_C, KC_V, FN2_BSPC, FN1_SPC, FN3_B, ALT_N, CTL_M, SFT_ENT
),
[1] = LAYOUT(
KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, RESET, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
KC_F4, KC_F5, KC_F6, KC_TAB, _______, _______, _______, _______, _______, KC_COMM, KC_DOT, KC_SLSH, KC_SCLN, KC_QUOT,
KC_F1, KC_F2, KC_F3, _______, _______, KC_LGUI, _______, KC_DEL, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
[2] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LABK, KC_RABK, KC_QUES, KC_COLN, KC_DQUO,
KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_HOME, KC_PGDN, KC_PGUP, KC_END
),
[3] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};

View file

@ -0,0 +1,2 @@
VIA_ENABLE = yes

View file

@ -0,0 +1,18 @@
/* Copyright 2020 Kyle McCreery
*
* 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 "lefty.h"

View file

@ -0,0 +1,30 @@
/* Copyright 2020 Kyle McCreery
*
* 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/>.
*/
#pragma once
#include "quantum.h"
#define LAYOUT( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D , \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D , \
K20, K21, K22, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D \
) { \
{K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D}, \
{K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D}, \
{K20, K21, K22, KC_NO, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D} \
}

View file

@ -0,0 +1,15 @@
# BIG DILL EXTENDED
![BIG DILL EXTENDED](https://i0.wp.com/mechwild.com/wp-content/uploads/2020/10/IMG_4458_web.jpg)
A 41 key keyboard.
* Keyboard Maintainer: [Kyle McCreery](https://github.com/kylemccreery)
* Hardware Supported: BDE v2.3 Lefty
* Hardware Availability: [BIG DILL EXTENDED on MechWild](https://mechwild.com/product/big-dill-extended-bde/)
Make example for this keyboard (after setting up your build environment):
make mechwild/bde/lefty:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

View file

@ -0,0 +1,23 @@
# MCU name
MCU = atmega32u4
# Bootloader selection
BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# 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 = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output

View file

@ -0,0 +1,55 @@
/* Copyright 2020 Kyle McCreery
*
* 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/>.
*/
#pragma once
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x6D77 // mw = "MechWild"
#define PRODUCT_ID 0x1702
#define DEVICE_VER 0x0203
#define MANUFACTURER MechWild
#define PRODUCT BDE Righty
#define DESCRIPTION 41-key ortholinear 30% with numpad
/* key matrix size */
#define MATRIX_ROWS 3
#define MATRIX_COLS 14
/* key matrix pins */
#define MATRIX_ROW_PINS { D1, D7, D3}
#define MATRIX_COL_PINS { B4, B5, E6, C6, D4, D0, F4, F5, F6, B6, B3, B2, B1, F7}
#define UNUSED_PINS
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION ROW2COL
/* If RGBLIGHT_ENABLE is set to yes in the rules, ensure the RGBLED_NUM is accurate for how many you have attached. */
#define RGB_DI_PIN D2
#define RGBLED_NUM 16
#define RGBLIGHT_ANIMATIONS
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
/* 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

View file

@ -0,0 +1,16 @@
{
"keyboard_name": "MechWild BDE Righty",
"url": "mechwild.com",
"maintainer": "kylemccreery",
"width": 14,
"height": 3,
"layouts": {
"LAYOUT": {
"layout": [
{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Y", "x":5, "y":0}, {"label":"U", "x":6, "y":0}, {"label":"I", "x":7, "y":0}, {"label":"O", "x":8, "y":0}, {"label":"P", "x":9, "y":0}, {"label":"0", "x":10, "y":0}, {"label":"7", "x":11, "y":0}, {"label":"8", "x":12, "y":0}, {"label":"9", "x":13, "y":0},
{"label":"A", "x":0, "y":1}, {"label":"S", "x":1, "y":1}, {"label":"D", "x":2, "y":1}, {"label":"F", "x":3, "y":1}, {"label":"G", "x":4, "y":1}, {"label":"H", "x":5, "y":1}, {"label":"J", "x":6, "y":1}, {"label":"K", "x":7, "y":1}, {"label":"L", "x":8, "y":1}, {"label":"ESC", "x":9, "y":1}, {"label":"Enter", "x":10, "y":1, "h":2}, {"label":"4", "x":11, "y":1}, {"label":"5", "x":12, "y":1}, {"label":"6", "x":13, "y":1},
{"label":"Z", "x":0, "y":2}, {"label":"X", "x":1, "y":2}, {"label":"C", "x":2, "y":2}, {"label":"V", "x":3, "y":2}, {"label":"BS", "x":4, "y":2}, {"label":"", "x":5, "y":2}, {"label":"B", "x":6, "y":2}, {"label":"N", "x":7, "y":2}, {"label":"M", "x":8, "y":2}, {"label":"ENT", "x":9, "y":2}, {"label":"1", "x":11, "y":2}, {"label":"2", "x":12, "y":2}, {"label":"3", "x":13, "y":2}
]
}
}
}

View file

@ -0,0 +1,23 @@
/* Copyright 2020 Kyle McCreery
*
* 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/>.
*/
/* Making it so you need to hold the modifier and other key for the time together, helps not accidentally hit activate the hold functions of bottom row*/
#define IGNORE_MOD_TAP_INTERRUPT
/* Setting tap term, helps not accidentally hit activate the hold functions of bottom row*/
#define TAPPING_TERM 250

View file

@ -0,0 +1,55 @@
/* Copyright 2020 Kyle McCreery
*
* 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 FN1_SPC LT(1, KC_SPC)
#define FN2_BSPC LT(2, KC_BSPC)
#define FN3_B LT(3, KC_B)
#define CTL_Z CTL_T(KC_Z)
#define ALT_X ALT_T(KC_X)
#define ALT_N ALGR_T(KC_N)
#define CTL_M RCTL_T(KC_M)
#define WIN_C LGUI_T(KC_C)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_0, KC_7, KC_8, KC_9,
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ESC, KC_ENT, KC_4, KC_5, KC_6,
CTL_Z, ALT_X, WIN_C, KC_V, FN2_BSPC, FN1_SPC, FN3_B, ALT_N, CTL_M, KC_RSFT, KC_1, KC_2, KC_3
),
[1] = LAYOUT(
_______, _______, _______, RESET, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_F10, KC_F7, KC_F8, KC_F9,
_______, _______, _______, _______, _______, KC_COMM, KC_DOT, KC_SLSH, KC_SCLN, KC_QUOT, KC_TAB, KC_F4, KC_F5, KC_F6,
_______, _______, KC_LGUI, _______, KC_DEL, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_F1, KC_F2, KC_F3
),
[2] = LAYOUT(
_______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, _______, _______, _______, _______,
_______, _______, _______, _______, _______, KC_LABK, KC_RABK, KC_QUES, KC_COLN, KC_DQUO, _______, _______, _______, _______,
_______, _______, _______, _______, _______, KC_PSCR, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_F11, KC_F12, _______
),
[3] = LAYOUT(
RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_M_G, RGB_M_T, _______,
RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_M_SN, RGB_M_K, RGB_M_X,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_B, RGB_M_R, RGB_M_SW
)
};

View file

@ -0,0 +1,23 @@
/* Copyright 2020 Kyle McCreery
*
* 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/>.
*/
/* Making it so you need to hold the modifier and other key for the time together, helps not accidentally hit activate the hold functions of bottom row*/
#define IGNORE_MOD_TAP_INTERRUPT
/* Setting tap term, helps not accidentally hit activate the hold functions of bottom row*/
#define TAPPING_TERM 250

View file

@ -0,0 +1,55 @@
/* Copyright 2020 Kyle McCreery
*
* 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 FN1_SPC LT(1, KC_SPC)
#define FN2_BSPC LT(2, KC_BSPC)
#define FN3_B LT(3, KC_B)
#define CTL_Z CTL_T(KC_Z)
#define ALT_X ALT_T(KC_X)
#define ALT_N ALGR_T(KC_N)
#define CTL_M RCTL_T(KC_M)
#define WIN_C LGUI_T(KC_C)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_0, KC_7, KC_8, KC_9,
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ESC, KC_ENT, KC_4, KC_5, KC_6,
CTL_Z, ALT_X, WIN_C, KC_V, FN2_BSPC, FN1_SPC, FN3_B, ALT_N, CTL_M, KC_RSFT, KC_1, KC_2, KC_3
),
[1] = LAYOUT(
_______, _______, _______, RESET, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_F10, KC_F7, KC_F8, KC_F9,
_______, _______, _______, _______, _______, KC_COMM, KC_DOT, KC_SLSH, KC_SCLN, KC_QUOT, KC_TAB, KC_F4, KC_F5, KC_F6,
_______, _______, KC_LGUI, _______, KC_DEL, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_F1, KC_F2, KC_F3
),
[2] = LAYOUT(
_______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, _______, _______, _______, _______,
_______, _______, _______, _______, _______, KC_LABK, KC_RABK, KC_QUES, KC_COLN, KC_DQUO, _______, _______, _______, _______,
_______, _______, _______, _______, _______, KC_PSCR, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_F11, KC_F12, _______
),
[3] = LAYOUT(
RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_M_G, RGB_M_T, _______,
RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_M_SN, RGB_M_K, RGB_M_X,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_B, RGB_M_R, RGB_M_SW
)
};

View file

@ -0,0 +1,2 @@
VIA_ENABLE = yes

View file

@ -0,0 +1,15 @@
# BIG DILL EXTENDED
![BIG DILL EXTENDED](https://i0.wp.com/mechwild.com/wp-content/uploads/2020/10/IMG_4458_web.jpg)
A 41 key keyboard.
* Keyboard Maintainer: [Kyle McCreery](https://github.com/kylemccreery)
* Hardware Supported: BDE v2.3 Righty
* Hardware Availability: [BIG DILL EXTENDED on MechWild](https://mechwild.com/product/big-dill-extended-bde/)
Make example for this keyboard (after setting up your build environment):
make mechwild/bde/righty:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

View file

@ -0,0 +1,18 @@
/* Copyright 2020 Kyle McCreery
*
* 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 "righty.h"

View file

@ -0,0 +1,30 @@
/* Copyright 2020 Kyle McCreery
*
* 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/>.
*/
#pragma once
#include "quantum.h"
#define LAYOUT( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D , \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D , \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2B, K2C, K2D \
) { \
{K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D}, \
{K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D}, \
{K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_NO, K2B, K2C, K2D} \
}

View file

@ -0,0 +1,23 @@
# MCU name
MCU = atmega32u4
# Bootloader selection
BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# 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 = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output