aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQMK Bot <hello@qmk.fm>2021-05-22 05:29:17 +0000
committerQMK Bot <hello@qmk.fm>2021-05-22 05:29:17 +0000
commitca570947b025af5f93ab3a8a257ac8bff75d1692 (patch)
tree5f2ada56860a088e2e8af40eb4096a7953042f89
parent31130b9031af1e4f712e443aee69d24baacc04f1 (diff)
parent8feb767994ec8576afea22305661b55d0e805a8f (diff)
downloadqmk_firmware-ca570947b025af5f93ab3a8a257ac8bff75d1692.tar.gz
qmk_firmware-ca570947b025af5f93ab3a8a257ac8bff75d1692.zip
Merge remote-tracking branch 'origin/master' into develop
-rw-r--r--keyboards/keebio/wtf60/config.h67
-rw-r--r--keyboards/keebio/wtf60/info.json15
-rw-r--r--keyboards/keebio/wtf60/keymaps/60_ansi/keymap.c34
-rw-r--r--keyboards/keebio/wtf60/keymaps/default/keymap.c34
-rw-r--r--keyboards/keebio/wtf60/keymaps/via/keymap.c48
-rw-r--r--keyboards/keebio/wtf60/keymaps/via/rules.mk2
-rw-r--r--keyboards/keebio/wtf60/readme.md17
-rw-r--r--keyboards/keebio/wtf60/rules.mk25
-rw-r--r--keyboards/keebio/wtf60/wtf60.c1
-rw-r--r--keyboards/keebio/wtf60/wtf60.h49
-rw-r--r--keyboards/mechwild/murphpad/config.h94
-rw-r--r--keyboards/mechwild/murphpad/info.json20
-rw-r--r--keyboards/mechwild/murphpad/keymaps/default/keymap.c140
-rw-r--r--keyboards/mechwild/murphpad/keymaps/via/keymap.c138
-rw-r--r--keyboards/mechwild/murphpad/keymaps/via/rules.mk2
-rw-r--r--keyboards/mechwild/murphpad/lib/murphpadfont.c244
-rw-r--r--keyboards/mechwild/murphpad/murphpad.c17
-rw-r--r--keyboards/mechwild/murphpad/murphpad.h48
-rw-r--r--keyboards/mechwild/murphpad/readme.md19
-rw-r--r--keyboards/mechwild/murphpad/rules.mk24
20 files changed, 1038 insertions, 0 deletions
diff --git a/keyboards/keebio/wtf60/config.h b/keyboards/keebio/wtf60/config.h
new file mode 100644
index 000000000..d801a929e
--- /dev/null
+++ b/keyboards/keebio/wtf60/config.h
@@ -0,0 +1,67 @@
1/* Copyright 2021 Danny Nguyen <danny@keeb.io>
2
3This program is free software: you can redistribute it and/or modify
4it under the terms of the GNU General Public License as published by
5the Free Software Foundation, either version 2 of the License, or
6(at your option) any later version.
7
8This program is distributed in the hope that it will be useful,
9but WITHOUT ANY WARRANTY; without even the implied warranty of
10MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11GNU General Public License for more details.
12
13You should have received a copy of the GNU General Public License
14along with this program. If not, see <http://www.gnu.org/licenses/>.
15*/
16
17#pragma once
18
19#include "config_common.h"
20
21/* USB Device descriptor parameter */
22#define VENDOR_ID 0xCB10
23#define PRODUCT_ID 0x1337
24#define DEVICE_VER 0x0001
25#define MANUFACTURER Keebio
26#define PRODUCT WTF60
27
28/* key matrix size */
29#define MATRIX_ROWS 5
30#define MATRIX_COLS 14
31
32/*
33 * Keyboard Matrix Assignments
34 *
35 * Change this to how you wired your keyboard
36 * COLS: AVR pins used for columns, left to right
37 * ROWS: AVR pins used for rows, top to bottom
38 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
39 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
40 *
41*/
42#define MATRIX_ROW_PINS { F0, F1, F4, F5, F6 }
43#define MATRIX_COL_PINS { B4, B5, B6, C7, F7, B1, B2, B3, D2, D3, D5, D4, D6, D7 }
44#define AUDIO_PIN C6
45
46/* COL2ROW, ROW2COL*/
47#define DIODE_DIRECTION COL2ROW
48
49#define RGB_DI_PIN E6
50#ifdef RGB_DI_PIN
51 #define RGBLED_NUM 16
52 #define RGBLIGHT_HUE_STEP 8
53 #define RGBLIGHT_SAT_STEP 8
54 #define RGBLIGHT_VAL_STEP 8
55 #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
56 #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
57/*== all animations enable ==*/
58 #define RGBLIGHT_ANIMATIONS
59#endif
60
61/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
62#define DEBOUNCE 5
63
64/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
65#define LOCKING_SUPPORT_ENABLE
66/* Locking resynchronize hack */
67#define LOCKING_RESYNC_ENABLE
diff --git a/keyboards/keebio/wtf60/info.json b/keyboards/keebio/wtf60/info.json
new file mode 100644
index 000000000..cdb30ea7a
--- /dev/null
+++ b/keyboards/keebio/wtf60/info.json
@@ -0,0 +1,15 @@
1{
2 "keyboard_name": "WTF60",
3 "url": "https://keeb.io",
4 "maintainer": "Keebio",
5 "width": 15,
6 "height": 5,
7 "layouts": {
8 "LAYOUT_full_wtf": {
9 "layout": [{"label":"Bksp", "x":0, "y":0}, {"label":"Del", "x":1, "y":0}, {"label":"+", "x":2, "y":0}, {"label":"_", "x":3, "y":0}, {"label":")", "x":4, "y":0}, {"label":"(", "x":5, "y":0}, {"label":"*", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"^", "x":8, "y":0}, {"label":"%", "x":9, "y":0}, {"label":"$", "x":10, "y":0}, {"label":"#", "x":11, "y":0}, {"label":"@", "x":12, "y":0}, {"label":"!", "x":13, "y":0}, {"label":"Esc", "x":14, "y":0}, {"label":"|", "x":0, "y":1, "w":1.5}, {"label":"}", "x":1.5, "y":1}, {"label":"{", "x":2.5, "y":1}, {"label":"P", "x":3.5, "y":1}, {"label":"O", "x":4.5, "y":1}, {"label":"I", "x":5.5, "y":1}, {"label":"U", "x":6.5, "y":1}, {"label":"Y", "x":7.5, "y":1}, {"label":"T", "x":8.5, "y":1}, {"label":"R", "x":9.5, "y":1}, {"label":"E", "x":10.5, "y":1}, {"label":"W", "x":11.5, "y":1}, {"label":"Q", "x":12.5, "y":1}, {"label":"Tab", "x":13.5, "y":1, "w":1.5}, {"label":"Enter", "x":0, "y":2, "w":1.25}, {"label":"~", "x":1.25, "y":2}, {"label":"\"", "x":2.25, "y":2}, {"label":":", "x":3.25, "y":2}, {"label":"L", "x":4.25, "y":2}, {"label":"K", "x":5.25, "y":2}, {"label":"J", "x":6.25, "y":2}, {"label":"H", "x":7.25, "y":2}, {"label":"G", "x":8.25, "y":2}, {"label":"F", "x":9.25, "y":2}, {"label":"D", "x":10.25, "y":2}, {"label":"S", "x":11.25, "y":2}, {"label":"A", "x":12.25, "y":2}, {"label":"Caps Lock", "x":13.25, "y":2, "w":1.75}, {"label":"Fn", "x":0, "y":3}, {"label":"Shift", "x":1, "y":3, "w":1.75}, {"label":"?", "x":2.75, "y":3}, {"label":">", "x":3.75, "y":3}, {"label":"<", "x":4.75, "y":3}, {"label":"M", "x":5.75, "y":3}, {"label":"N", "x":6.75, "y":3}, {"label":"B", "x":7.75, "y":3}, {"label":"V", "x":8.75, "y":3}, {"label":"C", "x":9.75, "y":3}, {"label":"X", "x":10.75, "y":3}, {"label":"Z", "x":11.75, "y":3}, {"label":"|", "x":12.75, "y":3}, {"label":"Shift", "x":13.75, "y":3, "w":1.25}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Menu", "x":1.25, "y":4, "w":1.25}, {"label":"Win", "x":2.5, "y":4, "w":1.25}, {"label":"Alt", "x":3.75, "y":4, "w":1.25}, {"x":5, "y":4, "w":6.25}, {"label":"Alt", "x":11.25, "y":4, "w":1.25}, {"label":"Win", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
10 },
11 "LAYOUT_60_ansi": {
12 "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
13 }
14 }
15}
diff --git a/keyboards/keebio/wtf60/keymaps/60_ansi/keymap.c b/keyboards/keebio/wtf60/keymaps/60_ansi/keymap.c
new file mode 100644
index 000000000..372c54f3c
--- /dev/null
+++ b/keyboards/keebio/wtf60/keymaps/60_ansi/keymap.c
@@ -0,0 +1,34 @@
1/* Copyright 2021 Danny Nguyen <danny@keeb.io>
2
3This program is free software: you can redistribute it and/or modify
4it under the terms of the GNU General Public License as published by
5the Free Software Foundation, either version 2 of the License, or
6(at your option) any later version.
7
8This program is distributed in the hope that it will be useful,
9but WITHOUT ANY WARRANTY; without even the implied warranty of
10MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11GNU General Public License for more details.
12
13You should have received a copy of the GNU General Public License
14along with this program. If not, see <http://www.gnu.org/licenses/>.
15*/
16
17#include QMK_KEYBOARD_H
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT_60_ansi(
21 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
24 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL
26 ),
27 [1] = LAYOUT_60_ansi(
28 KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
32 _______, _______, _______, _______, _______, _______, _______, _______
33 ),
34};
diff --git a/keyboards/keebio/wtf60/keymaps/default/keymap.c b/keyboards/keebio/wtf60/keymaps/default/keymap.c
new file mode 100644
index 000000000..ffaad13c7
--- /dev/null
+++ b/keyboards/keebio/wtf60/keymaps/default/keymap.c
@@ -0,0 +1,34 @@
1/* Copyright 2021 Danny Nguyen <danny@keeb.io>
2
3This program is free software: you can redistribute it and/or modify
4it under the terms of the GNU General Public License as published by
5the Free Software Foundation, either version 2 of the License, or
6(at your option) any later version.
7
8This program is distributed in the hope that it will be useful,
9but WITHOUT ANY WARRANTY; without even the implied warranty of
10MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11GNU General Public License for more details.
12
13You should have received a copy of the GNU General Public License
14along with this program. If not, see <http://www.gnu.org/licenses/>.
15*/
16
17#include QMK_KEYBOARD_H
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT_full_wtf(
21 KC_BSPC, KC_DEL, KC_EQL, KC_MINS, KC_0, KC_9, KC_8, KC_7, KC_6, KC_5, KC_4, KC_3, KC_2, KC_1, KC_GESC,
22 KC_BSLS, KC_RBRC, KC_LBRC, KC_P, KC_O, KC_I, KC_U, KC_Y, KC_T, KC_R, KC_E, KC_W, KC_Q, KC_TAB,
23 KC_ENT, KC_NUHS, KC_QUOT, KC_SCLN, KC_L, KC_K, KC_J, KC_H, KC_G, KC_F, KC_D, KC_S, KC_A, KC_CAPS,
24 MO(1), KC_RSFT, KC_SLSH, KC_DOT, KC_COMM, KC_M, KC_N, KC_B, KC_V, KC_C, KC_X, KC_Z, KC_NUBS, KC_LSFT,
25 KC_RCTL, KC_RGUI, MO(1), KC_RALT, KC_SPC, KC_LALT, KC_LGUI, KC_LCTL
26 ),
27 [1] = LAYOUT_full_wtf(
28 KC_DEL, KC_DEL, KC_F12, KC_F11, KC_F10, KC_F9, KC_F8, KC_F7, KC_F6, KC_F5, KC_F4, KC_F3, KC_F2, KC_F1, KC_TILD,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
32 _______, _______, _______, _______, _______, _______, _______, _______
33 ),
34};
diff --git a/keyboards/keebio/wtf60/keymaps/via/keymap.c b/keyboards/keebio/wtf60/keymaps/via/keymap.c
new file mode 100644
index 000000000..0c2b5ed35
--- /dev/null
+++ b/keyboards/keebio/wtf60/keymaps/via/keymap.c
@@ -0,0 +1,48 @@
1/* Copyright 2021 Danny Nguyen <danny@keeb.io>
2
3This program is free software: you can redistribute it and/or modify
4it under the terms of the GNU General Public License as published by
5the Free Software Foundation, either version 2 of the License, or
6(at your option) any later version.
7
8This program is distributed in the hope that it will be useful,
9but WITHOUT ANY WARRANTY; without even the implied warranty of
10MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11GNU General Public License for more details.
12
13You should have received a copy of the GNU General Public License
14along with this program. If not, see <http://www.gnu.org/licenses/>.
15*/
16
17#include QMK_KEYBOARD_H
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT_full_wtf(
21 KC_BSPC, KC_DEL, KC_EQL, KC_MINS, KC_0, KC_9, KC_8, KC_7, KC_6, KC_5, KC_4, KC_3, KC_2, KC_1, KC_GESC,
22 KC_BSLS, KC_RBRC, KC_LBRC, KC_P, KC_O, KC_I, KC_U, KC_Y, KC_T, KC_R, KC_E, KC_W, KC_Q, KC_TAB,
23 KC_ENT, KC_NUHS, KC_QUOT, KC_SCLN, KC_L, KC_K, KC_J, KC_H, KC_G, KC_F, KC_D, KC_S, KC_A, KC_CAPS,
24 MO(1), KC_RSFT, KC_SLSH, KC_DOT, KC_COMM, KC_M, KC_N, KC_B, KC_V, KC_C, KC_X, KC_Z, KC_NUBS, KC_LSFT,
25 KC_RCTL, KC_RGUI, MO(1), KC_RALT, KC_SPC, KC_LALT, KC_LGUI, KC_LCTL
26 ),
27 [1] = LAYOUT_full_wtf(
28 KC_DEL, KC_DEL, KC_F12, KC_F11, KC_F10, KC_F9, KC_F8, KC_F7, KC_F6, KC_F5, KC_F4, KC_F3, KC_F2, KC_F1, KC_TILD,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
32 _______, _______, _______, _______, _______, _______, _______, _______
33 ),
34 [2] = LAYOUT_full_wtf(
35 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
39 _______, _______, _______, _______, _______, _______, _______, _______
40 ),
41 [3] = LAYOUT_full_wtf(
42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
46 _______, _______, _______, _______, _______, _______, _______, _______
47 )
48};
diff --git a/keyboards/keebio/wtf60/keymaps/via/rules.mk b/keyboards/keebio/wtf60/keymaps/via/rules.mk
new file mode 100644
index 000000000..36b7ba9cb
--- /dev/null
+++ b/keyboards/keebio/wtf60/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
1VIA_ENABLE = yes
2LTO_ENABLE = yes
diff --git a/keyboards/keebio/wtf60/readme.md b/keyboards/keebio/wtf60/readme.md
new file mode 100644
index 000000000..6773b4b24
--- /dev/null
+++ b/keyboards/keebio/wtf60/readme.md
@@ -0,0 +1,17 @@
1# WTF60
2
3A mirrored 60% keyboard to mess with your brain.
4
5* Keyboard Maintainer: [nooges/bakingpy](https://github.com/nooges)
6* Hardware Supported: WTF60 PCB w/ATmega32u4
7* Hardware Availability: [Keebio](https://keeb.io)
8
9Make example for this keyboard (after setting up your build environment):
10
11 make keebio/wtf60:default
12
13Flashing example for this keyboard:
14
15 make keebio/wtf60:default:flash
16
17See 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).
diff --git a/keyboards/keebio/wtf60/rules.mk b/keyboards/keebio/wtf60/rules.mk
new file mode 100644
index 000000000..487df752e
--- /dev/null
+++ b/keyboards/keebio/wtf60/rules.mk
@@ -0,0 +1,25 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
11MOUSEKEY_ENABLE = no # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = yes # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18NKRO_ENABLE = no # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_ENABLE = no # Audio output
23LTO_ENABLE = yes
24
25LAYOUTS = 60_ansi
diff --git a/keyboards/keebio/wtf60/wtf60.c b/keyboards/keebio/wtf60/wtf60.c
new file mode 100644
index 000000000..631af1061
--- /dev/null
+++ b/keyboards/keebio/wtf60/wtf60.c
@@ -0,0 +1 @@
#include "wtf60.h"
diff --git a/keyboards/keebio/wtf60/wtf60.h b/keyboards/keebio/wtf60/wtf60.h
new file mode 100644
index 000000000..3ec01dbab
--- /dev/null
+++ b/keyboards/keebio/wtf60/wtf60.h
@@ -0,0 +1,49 @@
1/* Copyright 2021 Danny Nguyen <danny@keeb.io>
2
3This program is free software: you can redistribute it and/or modify
4it under the terms of the GNU General Public License as published by
5the Free Software Foundation, either version 2 of the License, or
6(at your option) any later version.
7
8This program is distributed in the hope that it will be useful,
9but WITHOUT ANY WARRANTY; without even the implied warranty of
10MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11GNU General Public License for more details.
12
13You should have received a copy of the GNU General Public License
14along with this program. If not, see <http://www.gnu.org/licenses/>.
15*/
16
17#pragma once
18
19#include "quantum.h"
20
21#define LAYOUT_full_wtf( \
22 kA1, kA2, kA3, kA4, kA5, kA6, kA7, kA8, kA9, kA10, kA11, kA12, kA13, kA14, kA15, \
23 kB1, kB2, kB3, kB4, kB5, kB6, kB7, kB8, kB9, kB10, kB11, kB12, kB13, kB14, \
24 kC1, kC2, kC3, kC4, kC5, kC6, kC7, kC8, kC9, kC10, kC11, kC12, kC13, kC14, \
25 kD1, kD2, kD3, kD4, kD5, kD6, kD7, kD8, kD9, kD10, kD11, kD12, kD13, kD14, \
26 kE1, kE2, kE3, kE4, kE7, kE12, kE13, kE14 \
27) \
28{ \
29 { kA1, kA2, kA3, kA4, kA5, kA6, kA7, kA8, kA9, kA10, kA11, kA12, kA13, kA14 }, \
30 { kB1, kB2, kB3, kB4, kB5, kB6, kB7, kB8, kB9, kB10, kB11, kB12, kB13, kB14 }, \
31 { kC1, kC2, kC3, kC4, kC5, kC6, kC7, kC8, kC9, kC10, kC11, kC12, kC13, kC14 }, \
32 { kD1, kD2, kD3, kD4, kD5, kD6, kD7, kD8, kD9, kD10, kD11, kD12, kD13, kD14 }, \
33 { kE1, kE2, kE3, kE4, KC_NO, KC_NO, kE7, KC_NO, KC_NO, KC_NO, kA15, kE12, kE13, kE14 } \
34}
35
36#define LAYOUT_60_ansi( \
37 kA15, kA14, kA13, kA12, kA11, kA10, kA9, kA8, kA7, kA6, kA5, kA4, kA3, kA1, \
38 kB14, kB13, kB12, kB11, kB10, kB9, kB8, kB7, kB6, kB5, kB4, kB3, kB2, kB1, \
39 kC14, kC13, kC12, kC11, kC10, kC9, kC8, kC7, kC6, kC5, kC4, kC3, kC1, \
40 kD14, kD12, kD11, kD10, kD9, kD8, kD7, kD6, kD5, kD4, kD3, kD1, \
41 kE14, kE13, kE12, kE7, kE4, kE3, kE2, kE1 \
42) \
43{ \
44 { kA1, KC_NO, kA3, kA4, kA5, kA6, kA7, kA8, kA9, kA10, kA11, kA12, kA13, kA14 }, \
45 { kB1, kB2, kB3, kB4, kB5, kB6, kB7, kB8, kB9, kB10, kB11, kB12, kB13, kB14 }, \
46 { kC1, KC_NO, kC3, kC4, kC5, kC6, kC7, kC8, kC9, kC10, kC11, kC12, kC13, kC14 }, \
47 { kD1, KC_NO, kD3, kD4, kD5, kD6, kD7, kD8, kD9, kD10, kD11, kD12, KC_NO, kD14 }, \
48 { kE1, kE2, kE3, kE4, KC_NO, KC_NO, kE7, KC_NO, KC_NO, KC_NO, kA15, kE12, kE13, kE14 } \
49}
diff --git a/keyboards/mechwild/murphpad/config.h b/keyboards/mechwild/murphpad/config.h
new file mode 100644
index 000000000..e107ad260
--- /dev/null
+++ b/keyboards/mechwild/murphpad/config.h
@@ -0,0 +1,94 @@
1/*
2Copyright 2021 Kyle McCreery
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20#include "config_common.h"
21
22/* USB Device descriptor parameter */
23#define VENDOR_ID 0x6D77 // mw = "MechWild"
24#define PRODUCT_ID 0x1705
25#define DEVICE_VER 0x0301
26#define MANUFACTURER MechWild
27#define PRODUCT MurphPad
28
29/* Key matrix size */
30#define MATRIX_ROWS 6
31#define MATRIX_COLS 5
32
33/* Key matrix pins */
34#define MATRIX_ROW_PINS { F5, B2, B3, B1, F7, F6 }
35#define MATRIX_COL_PINS { B5, D7, C6, D4, B6 }
36#define UNUSED_PINS
37
38/* Encoder pins */
39#define ENCODERS_PAD_A { E6 }
40#define ENCODERS_PAD_B { B4 }
41
42/* Encoder resolution */
43#define ENCODER_RESOLUTION 4
44#define TAP_CODE_DELAY 10
45
46/* COL2ROW, ROW2COL */
47#define DIODE_DIRECTION COL2ROW
48
49#define OLED_FONT_H "keyboards/mechwild/murphpad/lib/murphpadfont.c"
50
51#define RGB_DI_PIN F4
52#ifdef RGB_DI_PIN
53# define RGBLED_NUM 8
54# define RGBLIGHT_HUE_STEP 8
55# define RGBLIGHT_SAT_STEP 8
56# define RGBLIGHT_VAL_STEP 8
57# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
58# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
59/*== all animations enable ==*/
60# define RGBLIGHT_ANIMATIONS
61/*== or choose animations ==*/
62//# define RGBLIGHT_EFFECT_BREATHING
63//# define RGBLIGHT_EFFECT_RAINBOW_MOOD
64//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
65//# define RGBLIGHT_EFFECT_SNAKE
66//# define RGBLIGHT_EFFECT_KNIGHT
67//# define RGBLIGHT_EFFECT_CHRISTMAS
68//# define RGBLIGHT_EFFECT_STATIC_GRADIENT
69//# define RGBLIGHT_EFFECT_RGB_TEST
70//# define RGBLIGHT_EFFECT_ALTERNATING
71/*== customize breathing effect ==*/
72/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
73//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
74/*==== use exp() and sin() ====*/
75//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
76//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
77#endif
78
79/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
80#define DEBOUNCE 5
81
82/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
83#define LOCKING_SUPPORT_ENABLE
84
85/* Locking resynchronize hack */
86#define LOCKING_RESYNC_ENABLE
87
88/* disable these deprecated features by default */
89#define NO_ACTION_MACRO
90#define NO_ACTION_FUNCTION
91
92/* Bootmagic Lite key configuration */
93#define BOOTMAGIC_LITE_ROW 0
94#define BOOTMAGIC_LITE_COLUMN 1
diff --git a/keyboards/mechwild/murphpad/info.json b/keyboards/mechwild/murphpad/info.json
new file mode 100644
index 000000000..cabb9185e
--- /dev/null
+++ b/keyboards/mechwild/murphpad/info.json
@@ -0,0 +1,20 @@
1{
2 "keyboard_name": "MechWild MurphPad",
3 "url": "mechwild.com",
4 "maintainer": "Kyle McCreery",
5 "width": 5,
6 "height": 7,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [
10 {"label": "k00", "x": 1, "y": 0}, {"label": "k01", "x": 2, "y": 0}, {"label": "k02", "x": 3, "y": 0}, {"label": "k03", "x": 4, "y": 0},
11 {"label": "k10", "x": 1, "y": 1}, {"label": "k11", "x": 2, "y": 1}, {"label": "k12", "x": 3, "y": 1}, {"label": "k13", "x": 4, "y": 1},
12 {"label": "k20", "x": 1, "y": 2}, {"label": "k21", "x": 2, "y": 2}, {"label": "k22", "x": 3, "y": 2}, {"label": "k23", "x": 4, "y": 2},
13 {"label": "k30", "x": 0, "y": 3}, {"label": "k31", "x": 1, "y": 3}, {"label": "k32", "x": 2, "y": 3}, {"label": "k33", "x": 3, "y": 3}, {"label": "k34", "x": 4, "y": 3},
14 {"label": "k40", "x": 0, "y": 4}, {"label": "k41", "x": 1, "y": 4}, {"label": "k42", "x": 2, "y": 4}, {"label": "k43", "x": 3, "y": 4}, {"label": "k44", "x": 4, "y": 4},
15 {"label": "k50", "x": 0, "y": 5}, {"label": "k51", "x": 1, "y": 5}, {"label": "k52", "x": 2, "y": 5}, {"label": "k53", "x": 3, "y": 5}, {"label": "k54", "x": 4, "y": 5},
16 {"label": "BACK00", "x": 1, "y": 6}, {"label": "BACK01", "x": 2, "y": 6}, {"label": "BACK02", "x": 3, "y": 6}
17 ]
18 }
19 }
20}
diff --git a/keyboards/mechwild/murphpad/keymaps/default/keymap.c b/keyboards/mechwild/murphpad/keymaps/default/keymap.c
new file mode 100644
index 000000000..da9b28f29
--- /dev/null
+++ b/keyboards/mechwild/murphpad/keymaps/default/keymap.c
@@ -0,0 +1,140 @@
1/* Copyright 2021 Kyle McCreery
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18// Defines names for use in layer keycodes and the keymap
19
20enum layer_names {
21 _BASE,
22 _FN1,
23 _FN2,
24 _FN3
25};
26
27
28const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
29 /* Base */
30 [_BASE] = LAYOUT(
31 KC_F1, KC_F2, KC_F3, KC_F4,
32 KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
33 KC_P7, KC_P8, KC_P9, KC_PPLS,
34 KC_MUTE, KC_P4, KC_P5, KC_P6, KC_NO,
35 MO(_FN1), KC_P1, KC_P2, KC_P3, KC_PENT,
36 KC_BSPC, KC_P0, KC_NO, KC_PDOT, KC_NO,
37
38 KC_F5, KC_F6, KC_F7
39
40 ),
41 [_FN1] = LAYOUT(
42 _______, _______, _______, _______,
43 _______, _______, _______, _______,
44 RGB_HUD, RGB_SPI, RGB_HUI, _______,
45 _______, RGB_RMOD, RGB_TOG, RGB_MOD, KC_NO,
46 _______, RGB_VAD, RGB_SPD, RGB_VAI, _______,
47 _______, RGB_SAD, KC_NO, RGB_SAI, KC_NO,
48
49 _______, _______, _______
50
51 ),
52 [_FN2] = LAYOUT(
53 _______, _______, _______, _______,
54 _______, _______, _______, _______,
55 _______, _______, _______, _______,
56 _______, _______, _______, _______, KC_NO,
57 _______, _______, _______, _______, _______,
58 _______, _______, _______, _______, KC_NO,
59
60 _______, _______, _______
61
62 ),
63 [_FN3] = LAYOUT(
64 _______, _______, _______, _______,
65 _______, _______, _______, _______,
66 _______, _______, _______, _______,
67 _______, _______, _______, _______, KC_NO,
68 _______, _______, _______, _______, _______,
69 _______, _______, _______, _______, KC_NO,
70
71 _______, _______, _______
72
73 )
74};
75
76#ifdef ENCODER_ENABLE
77void encoder_update_user(uint8_t index, bool clockwise) {
78 switch (index) {
79 case 0:
80 if (clockwise) {
81 tap_code(KC_VOLU);
82 } else {
83 tap_code(KC_VOLD);
84 }
85 break;
86 }
87
88}
89#endif
90
91#ifdef OLED_DRIVER_ENABLE
92 oled_rotation_t oled_init_user(oled_rotation_t rotation) {
93 return OLED_ROTATION_270; // flips the display 270 degrees
94 }
95
96 static void render_logo(void) { // Render MechWild "MW" Logo
97 static const char PROGMEM logo_1[] = {0x8A, 0x8B, 0x8C, 0x8D, 0x00};
98 static const char PROGMEM logo_2[] = {0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0x00};
99 static const char PROGMEM logo_3[] = {0xCA, 0xCB, 0xCC, 0xCD, 0x00};
100 static const char PROGMEM logo_4[] = {0x20, 0x8E, 0x8F, 0x90, 0x00};
101 oled_set_cursor(0,0);
102 oled_write_P(logo_1, false);
103 oled_set_cursor(0,1);
104 oled_write_P(logo_2, false);
105 oled_set_cursor(0,2);
106 oled_write_P(logo_3, false);
107 oled_set_cursor(0,3);
108 oled_write_P(logo_4, false);
109 }
110
111 void oled_task_user(void) {
112 render_logo();
113 oled_set_cursor(0,6);
114
115 oled_write_ln_P(PSTR("Layer"), false);
116
117 switch (get_highest_layer(layer_state)) {
118 case _BASE:
119 oled_write_ln_P(PSTR("Base"), false);
120 break;
121 case _FN1:
122 oled_write_ln_P(PSTR("FN 1"), false);
123 break;
124 case _FN2:
125 oled_write_ln_P(PSTR("FN 2"), false);
126 break;
127 case _FN3:
128 oled_write_ln_P(PSTR("FN 3"), false);
129 break;
130 default:
131 oled_write_ln_P(PSTR("Undef"), false);
132 }
133 oled_write_ln_P(PSTR(""), false);
134 // Host Keyboard LED Status
135 led_t led_state = host_keyboard_led_state();
136 oled_write_ln_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
137 oled_write_ln_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
138 oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
139 }
140#endif \ No newline at end of file
diff --git a/keyboards/mechwild/murphpad/keymaps/via/keymap.c b/keyboards/mechwild/murphpad/keymaps/via/keymap.c
new file mode 100644
index 000000000..630b47f8c
--- /dev/null
+++ b/keyboards/mechwild/murphpad/keymaps/via/keymap.c
@@ -0,0 +1,138 @@
1/* Copyright 2021 Kyle McCreery
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18// Defines names for use in layer keycodes and the keymap
19enum layer_names {
20 _BASE,
21 _FN1,
22 _FN2,
23 _FN3
24};
25
26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
27 /* Base */
28 [_BASE] = LAYOUT(
29 KC_F1, KC_F2, KC_F3, KC_F4,
30 KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
31 KC_P7, KC_P8, KC_P9, KC_PPLS,
32 KC_MUTE, KC_P4, KC_P5, KC_P6, KC_NO,
33 MO(_FN1), KC_P1, KC_P2, KC_P3, KC_PENT,
34 KC_BSPC, KC_P0, KC_NO, KC_PDOT, KC_NO,
35
36 _______, _______, _______
37
38 ),
39 [_FN1] = LAYOUT(
40 _______, _______, _______, _______,
41 _______, _______, _______, _______,
42 RGB_HUD, RGB_SPI, RGB_HUI, _______,
43 _______, RGB_RMOD, RGB_TOG, RGB_MOD, KC_NO,
44 _______, RGB_VAD, RGB_SPD, RGB_VAI, _______,
45 _______, RGB_SAD, KC_NO, RGB_SAI, KC_NO,
46
47 _______, _______, _______
48
49 ),
50 [_FN2] = LAYOUT(
51 _______, _______, _______, _______,
52 _______, _______, _______, _______,
53 _______, _______, _______, _______,
54 _______, _______, _______, _______, KC_NO,
55 _______, _______, _______, _______, _______,
56 _______, _______, _______, _______, KC_NO,
57
58 _______, _______, _______
59
60 ),
61 [_FN3] = LAYOUT(
62 _______, _______, _______, _______,
63 _______, _______, _______, _______,
64 _______, _______, _______, _______,
65 _______, _______, _______, _______, KC_NO,
66 _______, _______, _______, _______, _______,
67 _______, _______, _______, _______, KC_NO,
68
69 _______, _______, _______
70
71 )
72};
73
74#ifdef ENCODER_ENABLE
75void encoder_update_user(uint8_t index, bool clockwise) {
76 switch (index) {
77 case 0:
78 if (clockwise) {
79 tap_code(KC_VOLU);
80 } else {
81 tap_code(KC_VOLD);
82 }
83 break;
84 }
85
86}
87#endif
88
89#ifdef OLED_DRIVER_ENABLE
90 oled_rotation_t oled_init_user(oled_rotation_t rotation) {
91 return OLED_ROTATION_270; // flips the display 270 degrees
92 }
93
94 static void render_logo(void) { // Render MechWild "MW" Logo
95 static const char PROGMEM logo_1[] = {0x8A, 0x8B, 0x8C, 0x8D, 0x00};
96 static const char PROGMEM logo_2[] = {0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0x00};
97 static const char PROGMEM logo_3[] = {0xCA, 0xCB, 0xCC, 0xCD, 0x00};
98 static const char PROGMEM logo_4[] = {0x20, 0x8E, 0x8F, 0x90, 0x00};
99 oled_set_cursor(0,0);
100 oled_write_P(logo_1, false);
101 oled_set_cursor(0,1);
102 oled_write_P(logo_2, false);
103 oled_set_cursor(0,2);
104 oled_write_P(logo_3, false);
105 oled_set_cursor(0,3);
106 oled_write_P(logo_4, false);
107 }
108
109 void oled_task_user(void) {
110 render_logo();
111 oled_set_cursor(0,6);
112
113 oled_write_ln_P(PSTR("Layer"), false);
114
115 switch (get_highest_layer(layer_state)) {
116 case _BASE:
117 oled_write_ln_P(PSTR("Base"), false);
118 break;
119 case _FN1:
120 oled_write_ln_P(PSTR("FN 1"), false);
121 break;
122 case _FN2:
123 oled_write_ln_P(PSTR("FN 2"), false);
124 break;
125 case _FN3:
126 oled_write_ln_P(PSTR("FN 3"), false);
127 break;
128 default:
129 oled_write_ln_P(PSTR("Undef"), false);
130 }
131 oled_write_ln_P(PSTR(""), false);
132 // Host Keyboard LED Status
133 led_t led_state = host_keyboard_led_state();
134 oled_write_ln_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
135 oled_write_ln_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
136 oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
137 }
138#endif \ No newline at end of file
diff --git a/keyboards/mechwild/murphpad/keymaps/via/rules.mk b/keyboards/mechwild/murphpad/keymaps/via/rules.mk
new file mode 100644
index 000000000..36b7ba9cb
--- /dev/null
+++ b/keyboards/mechwild/murphpad/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
1VIA_ENABLE = yes
2LTO_ENABLE = yes
diff --git a/keyboards/mechwild/murphpad/lib/murphpadfont.c b/keyboards/mechwild/murphpad/lib/murphpadfont.c
new file mode 100644
index 000000000..d2a772011
--- /dev/null
+++ b/keyboards/mechwild/murphpad/lib/murphpadfont.c
@@ -0,0 +1,244 @@
1/* Copyright 2020 Kyle McCreery
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "progmem.h"
18
19const unsigned char font[] PROGMEM = {
20 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
21 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
22 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
23 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
24 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
25 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
26 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
27 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
28 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
29 0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
30 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
31 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
32 0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
33 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
34 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
35 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
36 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
37 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
38 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
39 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
40 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
41 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
42 0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
43 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
44 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
45 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
46 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
47 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
48 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
49 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
50 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
51 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
52 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
53 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
54 0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
55 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
56 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
57 0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
58 0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
59 0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
60 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
61 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
62 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
63 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
64 0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
65 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
66 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
67 0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
68 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
69 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
70 0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
71 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
72 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
73 0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
74 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
75 0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
76 0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
77 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
78 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
79 0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
80 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
81 0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
82 0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
83 0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
84 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
85 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
86 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
87 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
88 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
89 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
90 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
91 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
92 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
93 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
94 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
95 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
96 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
97 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
98 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
99 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
100 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
101 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
102 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
103 0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
104 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
105 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
106 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
107 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
108 0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
109 0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
110 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
111 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
112 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
113 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
114 0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
115 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
116 0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
117 0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
118 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
119 0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
120 0x38, 0x44, 0x44, 0x28, 0x7E, 0x00,
121 0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
122 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
123 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00,
124 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
125 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
126 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
127 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
128 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
129 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
130 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
131 0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
132 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00,
133 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00,
134 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
135 0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
136 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
137 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
138 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
139 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
140 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
141 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
142 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
143 0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
144 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
145 0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
146 0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
147 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
148 0x00, 0x00, 0x00, 0xE0, 0xFE, 0xFF,
149 0xFE, 0xF8, 0xC0, 0x00, 0x00, 0x00,
150 0x00, 0x00, 0xE0, 0xFC, 0xFF, 0xFE,
151 0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00,
152 0x00, 0x00, 0x00, 0x00, 0x01, 0x3E,
153 0xE0, 0x80, 0x70, 0x0E, 0x01, 0x00,
154 0x00, 0x00, 0x00, 0x07, 0x3C, 0xE0,
155 0x80, 0x78, 0x07, 0x00, 0x00, 0x00,
156 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
157 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
158 0x00, 0x00, 0x00, 0xE0, 0xFE, 0xFF,
159 0xFE, 0xF8, 0xC0, 0x00, 0x00, 0x00,
160 0x00, 0x00, 0xE0, 0xFC, 0xFF, 0xFE,
161 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00,
162 0x01, 0x3E, 0xE0, 0x80, 0x70, 0x0E,
163 0x01, 0x00, 0x00, 0x00, 0x00, 0x07,
164 0x3C, 0xE0, 0x80, 0x78, 0x07, 0x00,
165 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
166 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
167 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
168 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
169 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
170 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
171 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
172 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
173 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
174 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
175 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
176 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
177 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
178 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
179 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
180 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F,
181 0x07, 0x1F, 0xFF, 0xFE, 0xF0, 0xC0,
182 0xF8, 0xFF, 0xF7, 0x07, 0x07, 0x7F,
183 0xFF, 0xFF, 0xF8, 0x00, 0xC0, 0x38,
184 0x0C, 0x18, 0x60, 0x80, 0x00, 0x00,
185 0x00, 0xF0, 0x0C, 0x04, 0xF4, 0x1C,
186 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
187 0x80, 0xC0, 0xFC, 0xE6, 0xC3, 0xC1,
188 0xC1, 0xC3, 0xE6, 0xFC, 0xC0, 0x80,
189 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
190 0x00, 0x00, 0xF8, 0xFF, 0xF7, 0x07,
191 0x07, 0x1F, 0xFF, 0xFE, 0xF0, 0xC0,
192 0xF8, 0x3F, 0x8F, 0x0F, 0x3F, 0xFF,
193 0xFF, 0xFE, 0x80, 0xF0, 0x0C, 0x04,
194 0xF4, 0x1C, 0x00, 0x00, 0x00, 0x00,
195 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
196 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
197 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
198 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
199 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
200 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
201 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
202 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
203 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
204 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
205 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
206 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
207 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
208 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
209 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
210 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
211 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
212 0x00, 0x1F, 0x1F, 0x1F, 0x07, 0x00,
213 0x00, 0x00, 0x00, 0x03, 0x1F, 0x1F,
214 0x0F, 0x01, 0x03, 0x06, 0xF8, 0x00,
215 0x07, 0x7F, 0x3F, 0x0E, 0xC1, 0x38,
216 0x07, 0x0E, 0x70, 0x83, 0x1C, 0x60,
217 0x1E, 0x03, 0xC0, 0x3E, 0x01, 0x00,
218 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
219 0x3F, 0x7F, 0xFF, 0xFF, 0xF9, 0xC0,
220 0xC0, 0xF9, 0xFF, 0xFF, 0x7F, 0x3F,
221 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
222 0x00, 0x1F, 0x1F, 0x1F, 0x07, 0x06,
223 0xF8, 0x00, 0x00, 0x73, 0x3F, 0x0F,
224 0xC1, 0x38, 0x07, 0x0F, 0x70, 0x83,
225 0x07, 0x7F, 0x1F, 0x03, 0xC0, 0x3E,
226 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
227 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
228 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
229 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
230 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
231 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
232 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
233 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
234 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
235 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
236 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
237 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
238 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
239 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
240 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
241 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
242 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
243 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
244};
diff --git a/keyboards/mechwild/murphpad/murphpad.c b/keyboards/mechwild/murphpad/murphpad.c
new file mode 100644
index 000000000..a39f1bfc7
--- /dev/null
+++ b/keyboards/mechwild/murphpad/murphpad.c
@@ -0,0 +1,17 @@
1/* Copyright 2021 Kyle McCreery
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "murphpad.h"
diff --git a/keyboards/mechwild/murphpad/murphpad.h b/keyboards/mechwild/murphpad/murphpad.h
new file mode 100644
index 000000000..2735e2205
--- /dev/null
+++ b/keyboards/mechwild/murphpad/murphpad.h
@@ -0,0 +1,48 @@
1/* Copyright 2021 Kyle McCreery
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21#define ___ KC_NO
22
23/* This is a shortcut to help you visually see your layout.
24 *
25 * The first section contains all of the arguments representing the physical
26 * layout of the board and position of the keys.
27 *
28 * The second converts the arguments into a two-dimensional array which
29 * represents the switch matrix.
30 */
31#define LAYOUT( \
32 k00, k01, k02, k03, \
33 k10, k11, k12, k13, \
34 k20, k21, k22, k23, \
35 k30, k31, k32, k33, k34, \
36 k40, k41, k42, k43, k44, \
37 k50, k51, k52, k53, k54, \
38 \
39 BACK00, BACK01, BACK02 \
40\
41) { \
42 { BACK00, k00, k01, k02, k03 }, \
43 { BACK01, k10, k11, k12, k13 }, \
44 { BACK02, k20, k21, k22, k23 }, \
45 { k30, k31, k32, k33, k34 }, \
46 { k40, k41, k42, k43, k44 }, \
47 { k50, k51, k52, k53, k54 } \
48}
diff --git a/keyboards/mechwild/murphpad/readme.md b/keyboards/mechwild/murphpad/readme.md
new file mode 100644
index 000000000..6318aeae1
--- /dev/null
+++ b/keyboards/mechwild/murphpad/readme.md
@@ -0,0 +1,19 @@
1# MurphPad
2
3![murphpad](https://i.imgur.com/UmlpQ9ph.jpg)
4
5A DIY numpad kit with macro row, two additional keys, OLED, RGB Underglow, and encoder.
6
7* Keyboard Maintainer: [Kyle McCreery](https://github.com/kylemccreery)
8* Hardware Supported: MurphPad v2.0
9* Hardware Availability: [MurphPad on MechWild](https://mechwild.com/product/murphpad/)
10
11Make example for this keyboard (after setting up your build environment):
12
13 make mechwild/murphpad:default
14
15Flashing example for this keyboard:
16
17 make mechwild/murphpad:default:flash
18
19See 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).
diff --git a/keyboards/mechwild/murphpad/rules.mk b/keyboards/mechwild/murphpad/rules.mk
new file mode 100644
index 000000000..93ee10d16
--- /dev/null
+++ b/keyboards/mechwild/murphpad/rules.mk
@@ -0,0 +1,24 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = caterina
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
11MOUSEKEY_ENABLE = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18NKRO_ENABLE = no # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_ENABLE = no # Audio output
23ENCODER_ENABLE = yes # Enable encoder
24OLED_DRIVER_ENABLE = yes # Enable OLED Screen