aboutsummaryrefslogtreecommitdiffstats
path: root/keyboards/handwired
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/handwired')
-rw-r--r--keyboards/handwired/108key_trackpoint/rules.mk1
-rw-r--r--keyboards/handwired/412_64/keymaps/default/keymap.c11
-rw-r--r--keyboards/handwired/6macro/6macro.c16
-rw-r--r--keyboards/handwired/6macro/6macro.h35
-rw-r--r--keyboards/handwired/6macro/config.h70
-rw-r--r--keyboards/handwired/6macro/info.json13
-rw-r--r--keyboards/handwired/6macro/keymaps/default/config.h18
-rw-r--r--keyboards/handwired/6macro/keymaps/default/keymap.c56
-rw-r--r--keyboards/handwired/6macro/keymaps/default/readme.md15
-rw-r--r--keyboards/handwired/6macro/keymaps/osu/config.h18
-rw-r--r--keyboards/handwired/6macro/keymaps/osu/keymap.c56
-rw-r--r--keyboards/handwired/6macro/keymaps/osu/readme.md15
-rw-r--r--keyboards/handwired/6macro/readme.md15
-rw-r--r--keyboards/handwired/6macro/rules.mk81
-rw-r--r--keyboards/handwired/arrow_pad/rules.mk5
-rw-r--r--keyboards/handwired/atreus50/rules.mk3
-rw-r--r--keyboards/handwired/dactyl/keymaps/default/keymap.c18
-rw-r--r--keyboards/handwired/dactyl_manuform/rules.mk1
-rw-r--r--keyboards/handwired/dactyl_promicro/rules.mk1
-rw-r--r--keyboards/handwired/daishi/config.h3
-rw-r--r--keyboards/handwired/downbubble/rules.mk1
-rw-r--r--keyboards/handwired/frenchdev/keymaps/default/keymap.c4
-rw-r--r--keyboards/handwired/gamenum/keymaps/default/keymap.c5
-rw-r--r--keyboards/handwired/hacked_motospeed/rules.mk3
-rw-r--r--keyboards/handwired/jn68m/rules.mk1
-rw-r--r--keyboards/handwired/kbod/keymaps/default/keymap.c5
-rw-r--r--keyboards/handwired/kbod/rules.mk1
-rw-r--r--keyboards/handwired/lovelive9/rules.mk1
-rw-r--r--keyboards/handwired/mechboards_micropad/rules.mk1
-rw-r--r--keyboards/handwired/minorca/rules.mk3
-rw-r--r--keyboards/handwired/not_so_minidox/rules.mk1
-rw-r--r--keyboards/handwired/numbrero/readme.md2
-rw-r--r--keyboards/handwired/pilcrow/rules.mk1
-rw-r--r--keyboards/handwired/promethium/rules.mk7
-rw-r--r--keyboards/handwired/qc60/rules.mk1
-rwxr-xr-xkeyboards/handwired/reddot/rules.mk3
-rw-r--r--keyboards/handwired/retro_refit/rules.mk3
-rw-r--r--keyboards/handwired/terminus_mini/rules.mk1
-rw-r--r--keyboards/handwired/traveller/keymaps/default/keymap.c60
-rw-r--r--keyboards/handwired/traveller/rules.mk5
-rw-r--r--keyboards/handwired/woodpad/rules.mk1
-rw-r--r--keyboards/handwired/wulkan/README.md14
-rw-r--r--keyboards/handwired/wulkan/config.h23
-rw-r--r--keyboards/handwired/wulkan/info.json13
-rw-r--r--keyboards/handwired/wulkan/keymaps/default/keymap.c111
-rw-r--r--keyboards/handwired/wulkan/keymaps/default/rules.mk1
-rw-r--r--keyboards/handwired/wulkan/rules.mk22
-rw-r--r--keyboards/handwired/wulkan/wulkan.c6
-rw-r--r--keyboards/handwired/wulkan/wulkan.h21
49 files changed, 653 insertions, 119 deletions
diff --git a/keyboards/handwired/108key_trackpoint/rules.mk b/keyboards/handwired/108key_trackpoint/rules.mk
index 84ec52eee..47d94671c 100644
--- a/keyboards/handwired/108key_trackpoint/rules.mk
+++ b/keyboards/handwired/108key_trackpoint/rules.mk
@@ -1,6 +1,5 @@
# MCU name
MCU = at90usb1286
-#MCU = atmega32u4
# Processor frequency.
# This will define a symbol, F_CPU, in all source code files equal to the
diff --git a/keyboards/handwired/412_64/keymaps/default/keymap.c b/keyboards/handwired/412_64/keymaps/default/keymap.c
index 405c56305..27966eb9a 100644
--- a/keyboards/handwired/412_64/keymaps/default/keymap.c
+++ b/keyboards/handwired/412_64/keymaps/default/keymap.c
@@ -71,17 +71,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
-const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
- keyevent_t event = record->event;
- (void)event;
-
- switch (id) {
-
- }
- return MACRO_NONE;
-}
-
-
void matrix_init_user(void) {
}
diff --git a/keyboards/handwired/6macro/6macro.c b/keyboards/handwired/6macro/6macro.c
new file mode 100644
index 000000000..0a62bedf1
--- /dev/null
+++ b/keyboards/handwired/6macro/6macro.c
@@ -0,0 +1,16 @@
+/* Copyright 2019 joaofbmaia
+ *
+ * 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 "6macro.h"
diff --git a/keyboards/handwired/6macro/6macro.h b/keyboards/handwired/6macro/6macro.h
new file mode 100644
index 000000000..c1d500512
--- /dev/null
+++ b/keyboards/handwired/6macro/6macro.h
@@ -0,0 +1,35 @@
+/* Copyright 2019 joaofbmaia
+ *
+ * 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"
+
+/* This a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+#define LAYOUT( \
+ k00, k01, k02, \
+ k10, k11, k12 \
+) \
+{ \
+ { k00, k01, k02 }, \
+ { k10, k11, k12 }, \
+}
diff --git a/keyboards/handwired/6macro/config.h b/keyboards/handwired/6macro/config.h
new file mode 100644
index 000000000..7919c3c71
--- /dev/null
+++ b/keyboards/handwired/6macro/config.h
@@ -0,0 +1,70 @@
+/*
+Copyright 2019 joaofbmaia
+
+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 0xFEED
+#define PRODUCT_ID 0x0037
+#define DEVICE_VER 0x0001
+#define MANUFACTURER joaofbmaia
+#define PRODUCT 6macro
+#define DESCRIPTION 6macro
+
+/* key matrix size */
+#define MATRIX_ROWS 2
+#define MATRIX_COLS 3
+
+/* pinout - DON'T CHANGE */
+#define MATRIX_ROW_PINS { B3, B4 }
+#define MATRIX_COL_PINS { B0, B1, B2 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+#define RGB_DI_PIN D2
+#define RGBLED_NUM 10
+#define RGBLIGHT_HUE_STEP 10
+#define RGBLIGHT_SAT_STEP 17
+#define RGBLIGHT_VAL_STEP 17
+#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
+
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5 \ No newline at end of file
diff --git a/keyboards/handwired/6macro/info.json b/keyboards/handwired/6macro/info.json
new file mode 100644
index 000000000..52bd03a1d
--- /dev/null
+++ b/keyboards/handwired/6macro/info.json
@@ -0,0 +1,13 @@
+{
+ "keyboard_name": "6macro",
+ "url": "",
+ "maintainer": "joaofbmaia",
+ "width": 3,
+ "height": 2,
+ "layouts": {
+ "LAYOUT": {
+ "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}]
+ }
+ }
+ }
+ \ No newline at end of file
diff --git a/keyboards/handwired/6macro/keymaps/default/config.h b/keyboards/handwired/6macro/keymaps/default/config.h
new file mode 100644
index 000000000..64ba57443
--- /dev/null
+++ b/keyboards/handwired/6macro/keymaps/default/config.h
@@ -0,0 +1,18 @@
+/* Copyright 2019 joaofbmaia
+ *
+ * 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
+
diff --git a/keyboards/handwired/6macro/keymaps/default/keymap.c b/keyboards/handwired/6macro/keymaps/default/keymap.c
new file mode 100644
index 000000000..365dbf7b0
--- /dev/null
+++ b/keyboards/handwired/6macro/keymaps/default/keymap.c
@@ -0,0 +1,56 @@
+/* Copyright 2019 joaofbmaia
+ *
+ * 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
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ /* LAYER 0
+ * ,-----------------------.
+ * | F13 | F14 | F15/FN| Hold for FN
+ * |-------+-------+-------|
+ * | F16 | F17 | F18 |
+ * `-------+-------+-------'
+ */
+ [0] = LAYOUT(
+ KC_F13, KC_F14, LT(1, KC_F15), \
+ KC_F16, KC_F17, KC_F18 \
+ ),
+
+ /* LAYER 1
+ * ,-----------------------.
+ * |RGB_TOG|RGBMOD+| |
+ * |-------+-------+-------|
+ * |RGBHUE+|RGBBRI+|Spec FN| Hold along with previous to access special funtions (RESET)
+ * `-------+-------+-------'
+ */
+ [1] = LAYOUT(
+ RGB_TOG, RGB_MOD, KC_TRNS, \
+ RGB_HUI, RGB_VAI, MO(2) \
+ ),
+
+ /* LAYER 2
+ * ,-----------------------.
+ * | RESET |RGBMOD-| |
+ * |-------+-------+-------|
+ * |RGBHUE-|RGBBRI-| |
+ * `-------+-------+-------'
+ */
+ [2] = LAYOUT(
+ RESET, RGB_RMOD, KC_NO, \
+ RGB_HUD, RGB_VAD, KC_TRNS \
+ )
+
+};
diff --git a/keyboards/handwired/6macro/keymaps/default/readme.md b/keyboards/handwired/6macro/keymaps/default/readme.md
new file mode 100644
index 000000000..dd42a8fc6
--- /dev/null
+++ b/keyboards/handwired/6macro/keymaps/default/readme.md
@@ -0,0 +1,15 @@
+Layer 0:
+
+![Layer 0](https://raw.githubusercontent.com/joaofbmaia/6macro/master/layer0_default.png)
+
+Layer 1:
+
+![Layer 1](https://raw.githubusercontent.com/joaofbmaia/6macro/master/layer1.png)
+
+Layer 2:
+
+![Layer 2](https://raw.githubusercontent.com/joaofbmaia/6macro/master/layer2.png)
+
+# Default 6macro Layout
+
+This is the default layout. Layer 0 is mappped to function keys 13-18. Top right key switches to layer above when held. Upper layers are for RGB control. \ No newline at end of file
diff --git a/keyboards/handwired/6macro/keymaps/osu/config.h b/keyboards/handwired/6macro/keymaps/osu/config.h
new file mode 100644
index 000000000..64ba57443
--- /dev/null
+++ b/keyboards/handwired/6macro/keymaps/osu/config.h
@@ -0,0 +1,18 @@
+/* Copyright 2019 joaofbmaia
+ *
+ * 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
+
diff --git a/keyboards/handwired/6macro/keymaps/osu/keymap.c b/keyboards/handwired/6macro/keymaps/osu/keymap.c
new file mode 100644
index 000000000..ffed7d909
--- /dev/null
+++ b/keyboards/handwired/6macro/keymaps/osu/keymap.c
@@ -0,0 +1,56 @@
+/* Copyright 2019 joaofbmaia
+ *
+ * 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
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ /* LAYER 0
+ * ,-----------------------.
+ * | ESC | ~ | SPC/FN| Hold for FN
+ * |-------+-------+-------|
+ * | C | Z | X |
+ * `-------+-------+-------'
+ */
+ [0] = LAYOUT(
+ KC_ESC, KC_GRAVE, LT(1, KC_SPC), \
+ KC_C, KC_Z, KC_X \
+ ),
+
+ /* LAYER 1
+ * ,-----------------------.
+ * |RGB_TOG|RGBMOD+| |
+ * |-------+-------+-------|
+ * |RGBHUE+|RGBBRI+|Spec FN| Hold along with previous to access special funtions (RESET)
+ * `-------+-------+-------'
+ */
+ [1] = LAYOUT(
+ RGB_TOG, RGB_MOD, KC_TRNS, \
+ RGB_HUI, RGB_VAI, MO(2) \
+ ),
+
+ /* LAYER 2
+ * ,-----------------------.
+ * | RESET |RGBMOD-| |
+ * |-------+-------+-------|
+ * |RGBHUE-|RGBBRI-| |
+ * `-------+-------+-------'
+ */
+ [2] = LAYOUT(
+ RESET, RGB_RMOD, KC_NO, \
+ RGB_HUD, RGB_VAD, KC_TRNS \
+ )
+
+};
diff --git a/keyboards/handwired/6macro/keymaps/osu/readme.md b/keyboards/handwired/6macro/keymaps/osu/readme.md
new file mode 100644
index 000000000..0de5d6bf2
--- /dev/null
+++ b/keyboards/handwired/6macro/keymaps/osu/readme.md
@@ -0,0 +1,15 @@
+Layer 0:
+
+![Layer 0](https://raw.githubusercontent.com/joaofbmaia/6macro/master/layer0_osu.png)
+
+Layer 1:
+
+![Layer 1](https://raw.githubusercontent.com/joaofbmaia/6macro/master/layer1.png)
+
+Layer 2:
+
+![Layer 2](https://raw.githubusercontent.com/joaofbmaia/6macro/master/layer2.png)
+
+# OSU 6macro Layout
+
+This layout is for the game OSU. Layer 0 is mappped as shown above. Top right key switches to layer above when held. Upper layers are for RGB control. \ No newline at end of file
diff --git a/keyboards/handwired/6macro/readme.md b/keyboards/handwired/6macro/readme.md
new file mode 100644
index 000000000..3fbd917c8
--- /dev/null
+++ b/keyboards/handwired/6macro/readme.md
@@ -0,0 +1,15 @@
+# 6macro
+
+![6macro photo](https://raw.githubusercontent.com/joaofbmaia/6macro/master/photo.jpg)
+![6macro photo with RGB](https://raw.githubusercontent.com/joaofbmaia/6macro/master/photo_rgb.jpg)
+
+This is a 6-key keyboard intended for macros or as a dedicated controller for games with few bindings.
+
+Keyboard Maintainer: [joaofbmaia](https://github.com/joaofbmaia)
+Hardware: https://github.com/joaofbmaia/6macro
+
+Make example for this keyboard (after setting up your build environment):
+
+ make handwired/6macro: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).
diff --git a/keyboards/handwired/6macro/rules.mk b/keyboards/handwired/6macro/rules.mk
new file mode 100644
index 000000000..fc886fb9a
--- /dev/null
+++ b/keyboards/handwired/6macro/rules.mk
@@ -0,0 +1,81 @@
+# MCU name
+MCU = atmega32u2
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# atmega32a bootloadHID
+BOOTLOADER = atmel-dfu
+
+
+# If you don't know the bootloader type, then you can specify the
+# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+# OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+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
+#RGB_MATRIX_ENABLE = WS2812 # Enable per-key coordinate based RGB effects. Do not enable with RGBlight (+8500)
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+UNICODE_ENABLE = yes # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
diff --git a/keyboards/handwired/arrow_pad/rules.mk b/keyboards/handwired/arrow_pad/rules.mk
index a03f0836b..7e68eb599 100644
--- a/keyboards/handwired/arrow_pad/rules.mk
+++ b/keyboards/handwired/arrow_pad/rules.mk
@@ -1,7 +1,4 @@
-
-
# MCU name
-#MCU = at90usb1287
MCU = atmega32u4
# Processor frequency.
@@ -67,4 +64,4 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-AUDIO_ENABLE = no # Audio output on port C6 \ No newline at end of file
+AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/handwired/atreus50/rules.mk b/keyboards/handwired/atreus50/rules.mk
index 21c4704e0..1db2bfa92 100644
--- a/keyboards/handwired/atreus50/rules.mk
+++ b/keyboards/handwired/atreus50/rules.mk
@@ -1,7 +1,4 @@
-
-
# MCU name
-#MCU = at90usb1287
MCU = atmega32u4
# Processor frequency.
diff --git a/keyboards/handwired/dactyl/keymaps/default/keymap.c b/keyboards/handwired/dactyl/keymaps/default/keymap.c
index db666f43f..07d958449 100644
--- a/keyboards/handwired/dactyl/keymaps/default/keymap.c
+++ b/keyboards/handwired/dactyl/keymaps/default/keymap.c
@@ -137,24 +137,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
};
-const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
-{
- // MACRODOWN only works in this function
- switch(id) {
- case 0:
- if (record->event.pressed) {
- SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
- }
- break;
- case 1:
- if (record->event.pressed) { // For resetting EEPROM
- eeconfig_init();
- }
- break;
- }
- return MACRO_NONE;
-};
-
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case VRSN:
diff --git a/keyboards/handwired/dactyl_manuform/rules.mk b/keyboards/handwired/dactyl_manuform/rules.mk
index a93de3685..37806fa16 100644
--- a/keyboards/handwired/dactyl_manuform/rules.mk
+++ b/keyboards/handwired/dactyl_manuform/rules.mk
@@ -1,5 +1,4 @@
# MCU name
-#MCU = at90usb1287
MCU = atmega32u4
# Processor frequency.
diff --git a/keyboards/handwired/dactyl_promicro/rules.mk b/keyboards/handwired/dactyl_promicro/rules.mk
index a93de3685..37806fa16 100644
--- a/keyboards/handwired/dactyl_promicro/rules.mk
+++ b/keyboards/handwired/dactyl_promicro/rules.mk
@@ -1,5 +1,4 @@
# MCU name
-#MCU = at90usb1287
MCU = atmega32u4
# Processor frequency.
diff --git a/keyboards/handwired/daishi/config.h b/keyboards/handwired/daishi/config.h
index 15ff6a6a6..b4665bece 100644
--- a/keyboards/handwired/daishi/config.h
+++ b/keyboards/handwired/daishi/config.h
@@ -52,10 +52,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEBOUNCE 5
/* Set up rotary encoder */
-#define NUMBER_OF_ENCODERS 1
#define ENCODERS_PAD_A { F1 }
#define ENCODERS_PAD_B { F0 }
#define ENCODER_RESOLUTION 2
/* Set delay for tap_code on rotary encoder */
-#define TAP_CODE_DELAY 10 \ No newline at end of file
+#define TAP_CODE_DELAY 10
diff --git a/keyboards/handwired/downbubble/rules.mk b/keyboards/handwired/downbubble/rules.mk
index 87d0d4a1e..c751d9d4a 100644
--- a/keyboards/handwired/downbubble/rules.mk
+++ b/keyboards/handwired/downbubble/rules.mk
@@ -1,6 +1,5 @@
# MCU name
MCU = at90usb1286
-#MCU = atmega32u4
# Processor frequency.
# This will define a symbol, F_CPU, in all source code files equal to the
diff --git a/keyboards/handwired/frenchdev/keymaps/default/keymap.c b/keyboards/handwired/frenchdev/keymaps/default/keymap.c
index 7b82f36e3..b0713b730 100644
--- a/keyboards/handwired/frenchdev/keymaps/default/keymap.c
+++ b/keyboards/handwired/frenchdev/keymaps/default/keymap.c
@@ -12,8 +12,8 @@
#define PEDAL_DELAY 250
#define KEY_DELAY 130
-enum macros {
- M_LP = SAFE_RANGE, // left pedal
+enum custom_keycodes {
+ M_LP = SAFE_RANGE, // left pedal
M_RP, // right pedal
M_SF, // shift
M_SFS, // shift and space
diff --git a/keyboards/handwired/gamenum/keymaps/default/keymap.c b/keyboards/handwired/gamenum/keymaps/default/keymap.c
index 7d667cd39..237b0fb92 100644
--- a/keyboards/handwired/gamenum/keymaps/default/keymap.c
+++ b/keyboards/handwired/gamenum/keymaps/default/keymap.c
@@ -29,11 +29,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
)
};
-const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
- return MACRO_NONE;
-};
-
-
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch(keycode) {
case TO(HDN):
diff --git a/keyboards/handwired/hacked_motospeed/rules.mk b/keyboards/handwired/hacked_motospeed/rules.mk
index 1dc955718..17d71ada4 100644
--- a/keyboards/handwired/hacked_motospeed/rules.mk
+++ b/keyboards/handwired/hacked_motospeed/rules.mk
@@ -1,6 +1,5 @@
# MCU name
MCU = at90usb1286
-#MCU = atmega32u4
# Processor frequency.
# This will define a symbol, F_CPU, in all source code files equal to the
@@ -78,4 +77,4 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400) \ No newline at end of file
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
diff --git a/keyboards/handwired/jn68m/rules.mk b/keyboards/handwired/jn68m/rules.mk
index 42d85ada1..fa95254d8 100644
--- a/keyboards/handwired/jn68m/rules.mk
+++ b/keyboards/handwired/jn68m/rules.mk
@@ -1,5 +1,4 @@
# MCU name
-#MCU = at90usb1286
MCU = atmega32u4
# Processor frequency.
diff --git a/keyboards/handwired/kbod/keymaps/default/keymap.c b/keyboards/handwired/kbod/keymaps/default/keymap.c
index 49083820a..3119784e2 100644
--- a/keyboards/handwired/kbod/keymaps/default/keymap.c
+++ b/keyboards/handwired/kbod/keymaps/default/keymap.c
@@ -75,11 +75,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
}
-const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
-{
- return MACRO_NONE;
-};
-
void led_set_user(uint8_t usb_led) {
if (usb_led & _BV(USB_LED_CAPS_LOCK)) {
PORTB |= _BV(PB0);
diff --git a/keyboards/handwired/kbod/rules.mk b/keyboards/handwired/kbod/rules.mk
index b97cacd5c..55ab9f350 100644
--- a/keyboards/handwired/kbod/rules.mk
+++ b/keyboards/handwired/kbod/rules.mk
@@ -1,5 +1,4 @@
# MCU name
-#MCU = at90usb1287
MCU = atmega32u4
# Processor frequency.
diff --git a/keyboards/handwired/lovelive9/rules.mk b/keyboards/handwired/lovelive9/rules.mk
index 99a531a63..8ec4ed3d6 100644
--- a/keyboards/handwired/lovelive9/rules.mk
+++ b/keyboards/handwired/lovelive9/rules.mk
@@ -1,5 +1,4 @@
# MCU name
-#MCU = at90usb1287
MCU = atmega32u4
# Processor frequency.
diff --git a/keyboards/handwired/mechboards_micropad/rules.mk b/keyboards/handwired/mechboards_micropad/rules.mk
index 8ac2297e4..033ccaf84 100644
--- a/keyboards/handwired/mechboards_micropad/rules.mk
+++ b/keyboards/handwired/mechboards_micropad/rules.mk
@@ -1,5 +1,4 @@
# MCU name
-#MCU = at90usb1286
MCU = atmega32u4
# Processor frequency.
diff --git a/keyboards/handwired/minorca/rules.mk b/keyboards/handwired/minorca/rules.mk
index 3e408e2b9..3e8d82856 100644
--- a/keyboards/handwired/minorca/rules.mk
+++ b/keyboards/handwired/minorca/rules.mk
@@ -1,5 +1,4 @@
# MCU name
-#MCU = at90usb1287
MCU = atmega32u4
# Processor frequency.
@@ -64,4 +63,4 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend \ No newline at end of file
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/handwired/not_so_minidox/rules.mk b/keyboards/handwired/not_so_minidox/rules.mk
index 833dd4b79..d87356519 100644
--- a/keyboards/handwired/not_so_minidox/rules.mk
+++ b/keyboards/handwired/not_so_minidox/rules.mk
@@ -4,7 +4,6 @@ SRC += matrix.c \
serial.c
# MCU name
-#MCU = at90usb1287
MCU = atmega32u4
# Processor frequency.
diff --git a/keyboards/handwired/numbrero/readme.md b/keyboards/handwired/numbrero/readme.md
index 42f005dbe..931c60127 100644
--- a/keyboards/handwired/numbrero/readme.md
+++ b/keyboards/handwired/numbrero/readme.md
@@ -8,6 +8,6 @@ Hardware Availability: The Board Podcast Slack
Make example for this keyboard (after setting up your build environment):
- make handwired/numbrero/numbrero:default
+ make handwired/numbrero: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).
diff --git a/keyboards/handwired/pilcrow/rules.mk b/keyboards/handwired/pilcrow/rules.mk
index 67badc820..762ae481e 100644
--- a/keyboards/handwired/pilcrow/rules.mk
+++ b/keyboards/handwired/pilcrow/rules.mk
@@ -1,5 +1,4 @@
# MCU name
-#MCU = at90usb1287
MCU = atmega32u4
# Processor frequency.
diff --git a/keyboards/handwired/promethium/rules.mk b/keyboards/handwired/promethium/rules.mk
index 21328b7f8..172264300 100644
--- a/keyboards/handwired/promethium/rules.mk
+++ b/keyboards/handwired/promethium/rules.mk
@@ -1,5 +1,4 @@
# MCU name
-#MCU = at90usb1287
MCU = atmega32u4
# Processor frequency.
@@ -47,7 +46,7 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
+# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
@@ -62,7 +61,7 @@ AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
UNICODEMAP_ENABLE = yes
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
PS2_MOUSE_ENABLE = yes
PS2_USE_INT = yes
API_SYSEX_ENABLE = no
@@ -76,3 +75,5 @@ SRC += ws2812.c
SRC += rgbsps.c
SRC += analog.c
SRC += matrix.c
+
+LINK_TIME_OPTIMIZATION_ENABLE = yes
diff --git a/keyboards/handwired/qc60/rules.mk b/keyboards/handwired/qc60/rules.mk
index e61b18b00..b487dd96e 100644
--- a/keyboards/handwired/qc60/rules.mk
+++ b/keyboards/handwired/qc60/rules.mk
@@ -1,5 +1,4 @@
# MCU name
-#MCU = at90usb1287
MCU = atmega32u4
# Processor frequency.
diff --git a/keyboards/handwired/reddot/rules.mk b/keyboards/handwired/reddot/rules.mk
index 00ca06dd4..8afe6fc63 100755
--- a/keyboards/handwired/reddot/rules.mk
+++ b/keyboards/handwired/reddot/rules.mk
@@ -1,5 +1,4 @@
-
-#MCU = at90usb1287
+# MCU name
MCU = atmega32u4
# Processor frequency.
diff --git a/keyboards/handwired/retro_refit/rules.mk b/keyboards/handwired/retro_refit/rules.mk
index 98aa19e6b..2884ef2cb 100644
--- a/keyboards/handwired/retro_refit/rules.mk
+++ b/keyboards/handwired/retro_refit/rules.mk
@@ -1,7 +1,4 @@
-
-
# MCU name
-#MCU = at90usb1287
MCU = atmega32u4
# Processor frequency.
diff --git a/keyboards/handwired/terminus_mini/rules.mk b/keyboards/handwired/terminus_mini/rules.mk
index 9ecba25d8..1093901c0 100644
--- a/keyboards/handwired/terminus_mini/rules.mk
+++ b/keyboards/handwired/terminus_mini/rules.mk
@@ -1,5 +1,4 @@
# MCU name
-#MCU = at90usb1287
MCU = atmega32u4
# Processor frequency.
diff --git a/keyboards/handwired/traveller/keymaps/default/keymap.c b/keyboards/handwired/traveller/keymaps/default/keymap.c
index 44f65f4b8..4802b0534 100644
--- a/keyboards/handwired/traveller/keymaps/default/keymap.c
+++ b/keyboards/handwired/traveller/keymaps/default/keymap.c
@@ -15,13 +15,13 @@
#define RGBLED_TOGGLE 10
#define _HIOUT 15
#define _LWOUT 16
-// Macros
-#define MDL 4
-#define MDR 5
-#define MUR 6
-#define MUL 3
-
+enum custom_keycodes {
+ M_MUL = SAFE_RANGE,
+ M_MDL,
+ M_MDR,
+ M_MUR
+};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
@@ -102,9 +102,9 @@ Right hand nav keys work pretty well chorded with the Right hand Hi Key
*/
[_NAV] = KEYMAP(
- TG(_NAV), KC_NO, KC_NO, KC_UP, KC_NO, RGUI(KC_RIGHT), KC_WH_U, M(MUL), KC_MS_U, M(MUR), KC_NO, KC_ACL2,
+ TG(_NAV), KC_NO, KC_NO, KC_UP, KC_NO, RGUI(KC_RIGHT), KC_WH_U, M_MUL, KC_MS_U, M_MUR, KC_NO, KC_ACL2,
KC_TRNS, RGUI(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_E), KC_BTN3, KC_MS_L, KC_MS_U, KC_MS_R, KC_NO, KC_ACL1,
- KC_TRNS, LCTL(KC_A), LGUI(KC_X),RGUI(KC_C), RGUI(KC_V),KC_NO, KC_ENTER, KC_WH_D, M(MDL), KC_MS_D, M(MDR), KC_UP, KC_ACL0,
+ KC_TRNS, LCTL(KC_A), LGUI(KC_X),RGUI(KC_C), RGUI(KC_V),KC_NO, KC_ENTER, KC_WH_D, M_MDL, KC_MS_D, M_MDR, KC_UP, KC_ACL0,
KC_TRNS, RGUI(KC_Z), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN2, KC_BTN1, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT
),
@@ -152,23 +152,10 @@ Right hand nav keys work pretty well chorded with the Right hand Hi Key
};
-const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
-{
- // MACRODOWN only works in this function
- switch(id) {
- case 0:
- if (record->event.pressed) {
- register_code(KC_RSFT);
- #ifdef BACKLIGHT_ENABLE
- backlight_step();
- #endif
- } else {
- unregister_code(KC_RSFT);
- }
- break;
-
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
// from algernon's ErgoDox EZ layout,
- case MUL:
+ case M_MUL:
if (record->event.pressed) {
mousekey_on(KC_MS_UP);
mousekey_on(KC_MS_LEFT);
@@ -177,9 +164,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
mousekey_off(KC_MS_LEFT);
}
mousekey_send();
- break;
+ return false;
- case MUR:
+ case M_MUR:
if (record->event.pressed) {
mousekey_on(KC_MS_UP);
mousekey_on(KC_MS_RIGHT);
@@ -188,9 +175,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
mousekey_off(KC_MS_RIGHT);
}
mousekey_send();
- break;
+ return false;
- case MDL:
+ case M_MDL:
if (record->event.pressed) {
mousekey_on(KC_MS_DOWN);
mousekey_on(KC_MS_LEFT);
@@ -199,9 +186,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
mousekey_off(KC_MS_LEFT);
}
mousekey_send();
- break;
+ return false;
- case MDR:
+ case M_MDR:
if (record->event.pressed) {
mousekey_on(KC_MS_DOWN);
mousekey_on(KC_MS_RIGHT);
@@ -210,11 +197,11 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
mousekey_off(KC_MS_RIGHT);
}
mousekey_send();
- break;
-
-
+ return false;
+ default:
+ return true;
}
- return MACRO_NONE;
+ return true;
};
void LayerLEDSet(uint8_t layr) {
@@ -262,11 +249,6 @@ void matrix_scan_user(void) {
}
}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
void led_set_user(uint8_t usb_led) {
}
diff --git a/keyboards/handwired/traveller/rules.mk b/keyboards/handwired/traveller/rules.mk
index 8568def35..03673fdd1 100644
--- a/keyboards/handwired/traveller/rules.mk
+++ b/keyboards/handwired/traveller/rules.mk
@@ -1,5 +1,4 @@
-
-#MCU = at90usb1287
+# MCU name
MCU = atmega32u4
# Processor frequency.
@@ -58,8 +57,6 @@ endif
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-# MCU name
-
# Boot Section Size in *bytes*
# Teensy halfKay 512
# Teensy++ halfKay 1024
diff --git a/keyboards/handwired/woodpad/rules.mk b/keyboards/handwired/woodpad/rules.mk
index f8c488307..4bdc561a6 100644
--- a/keyboards/handwired/woodpad/rules.mk
+++ b/keyboards/handwired/woodpad/rules.mk
@@ -1,5 +1,4 @@
# MCU name
-#MCU = at90usb1286
MCU = atmega32u4
# Processor frequency.
diff --git a/keyboards/handwired/wulkan/README.md b/keyboards/handwired/wulkan/README.md
new file mode 100644
index 000000000..c6ea77389
--- /dev/null
+++ b/keyboards/handwired/wulkan/README.md
@@ -0,0 +1,14 @@
+# wulkan
+
+Handwired 40% keyboard build with Proton C.
+
+Keyboard Maintainer: [Napoleon Wulkan](https://github.com/wulkan)
+Hardware Supported: Proton C
+Hardware Availability: [OLKB.com](https://olkb.com)
+
+
+Make example for this keyboard (after setting up your build environment):
+
+ make handwired/wulkan:default:dfu-util
+
+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).
diff --git a/keyboards/handwired/wulkan/config.h b/keyboards/handwired/wulkan/config.h
new file mode 100644
index 000000000..4a9cbada7
--- /dev/null
+++ b/keyboards/handwired/wulkan/config.h
@@ -0,0 +1,23 @@
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x6060
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Wulkan
+#define PRODUCT Handwired48Keys
+#define DESCRIPTION A compact ortholinear handwired keyboard
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 12
+
+#define MATRIX_ROW_PINS { B8, A0, A1, A2 }
+#define MATRIX_COL_PINS { B13, B14, B15, B9, B7, B6, B5, B4, B3, B2, B1, B0 }
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+#define FORCE_NKRO
diff --git a/keyboards/handwired/wulkan/info.json b/keyboards/handwired/wulkan/info.json
new file mode 100644
index 000000000..db292af3d
--- /dev/null
+++ b/keyboards/handwired/wulkan/info.json
@@ -0,0 +1,13 @@
+{
+ "keyboard_name": "wulkan",
+ "url": "",
+ "maintainer": "Napoleon Wulkan",
+ "width": 12,
+ "height": 4,
+ "layouts": {
+ "LAYOUT_ortho_4x12": {
+ "key_count": 48,
+ "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}]
+ }
+ }
+ }
diff --git a/keyboards/handwired/wulkan/keymaps/default/keymap.c b/keyboards/handwired/wulkan/keymaps/default/keymap.c
new file mode 100644
index 000000000..5134fb000
--- /dev/null
+++ b/keyboards/handwired/wulkan/keymaps/default/keymap.c
@@ -0,0 +1,111 @@
+#include QMK_KEYBOARD_H
+
+enum layers {
+ _QWERTY,
+ _LOWER,
+ _RAISE,
+ _ADJUST,
+};
+
+enum unicode_names {
+ SE_AA_HIGH,
+ SE_AE_HIGH,
+ SE_OE_HIGH,
+ SE_AA_LOW,
+ SE_AE_LOW,
+ SE_OE_LOW,
+};
+
+const uint32_t PROGMEM unicode_map[] = {
+ [SE_AA_HIGH] = 0x00C5,
+ [SE_AE_HIGH] = 0x00C4,
+ [SE_OE_HIGH] = 0x00D6,
+ [SE_AA_LOW] = 0x00E5,
+ [SE_AE_LOW] = 0x00E4,
+ [SE_OE_LOW] = 0x00F6,
+};
+
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Shift |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | Ctrl | Alt | GUI |Lower |Enter |Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT_ortho_4x12(
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ _______, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_ENT, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = LAYOUT_ortho_4x12(
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = LAYOUT_ortho_4x12(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * | | Reset| | | | | | | | | Å | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | | | | Ö | Ä | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = LAYOUT_ortho_4x12(
+ _______, RESET, _______, _______, KC_WH_U, _______, _______, KC_MS_U, _______, _______, XP(SE_AA_LOW, SE_AA_HIGH), KC_DEL,
+ _______, _______, _______, _______, KC_WH_D, _______, KC_MS_L, KC_MS_D, KC_MS_R, XP(SE_OE_LOW, SE_OE_HIGH), XP(SE_AE_LOW, SE_AE_HIGH), _______,
+ _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, KC_BTN1, _______, KC_BTN2, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+)
+};
+
+uint32_t layer_state_set_user(uint32_t state) {
+ return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
+}
+
+void eeconfig_init_user(void) {
+ set_unicode_input_mode(UC_LNX);
+}
diff --git a/keyboards/handwired/wulkan/keymaps/default/rules.mk b/keyboards/handwired/wulkan/keymaps/default/rules.mk
new file mode 100644
index 000000000..502b2def7
--- /dev/null
+++ b/keyboards/handwired/wulkan/keymaps/default/rules.mk
@@ -0,0 +1 @@
+UNICODEMAP_ENABLE = yes
diff --git a/keyboards/handwired/wulkan/rules.mk b/keyboards/handwired/wulkan/rules.mk
new file mode 100644
index 000000000..3f881b7f1
--- /dev/null
+++ b/keyboards/handwired/wulkan/rules.mk
@@ -0,0 +1,22 @@
+MCU = STM32F303
+
+# Build Options
+# comment out to disable the options.
+#
+BACKLIGHT_ENABLE = no
+BOOTMAGIC_ENABLE = yes # 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
+NKRO_ENABLE = yes # USB Nkey Rollover
+AUDIO_ENABLE = no
+RGBLIGHT_ENABLE = no
+LAYOUTS = ortho_4x12
+MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+NO_SUSPEND_POWER_DOWN = yes
+UNICODEMAP_ENABLE = no
diff --git a/keyboards/handwired/wulkan/wulkan.c b/keyboards/handwired/wulkan/wulkan.c
new file mode 100644
index 000000000..5409fa5b5
--- /dev/null
+++ b/keyboards/handwired/wulkan/wulkan.c
@@ -0,0 +1,6 @@
+#include "wulkan.h"
+
+void matrix_init_kb(void) {
+ matrix_init_user();
+}
+
diff --git a/keyboards/handwired/wulkan/wulkan.h b/keyboards/handwired/wulkan/wulkan.h
new file mode 100644
index 000000000..cb4882ac9
--- /dev/null
+++ b/keyboards/handwired/wulkan/wulkan.h
@@ -0,0 +1,21 @@
+#pragma once
+
+#include "quantum.h"
+
+#define ___ KC_NO
+
+#define LAYOUT_ortho_4x12( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B \
+) \
+{ \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B } \
+}
+
+
+#define LAYOUT LAYOUT_ortho_4x12