summaryrefslogtreecommitdiff
path: root/keyboards/handwired/dactyl_manuform
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/handwired/dactyl_manuform')
-rw-r--r--keyboards/handwired/dactyl_manuform/4x5/info.json59
-rw-r--r--keyboards/handwired/dactyl_manuform/4x5/keymaps/default/config.h5
-rw-r--r--keyboards/handwired/dactyl_manuform/4x5/keymaps/default/rules.mk3
-rw-r--r--keyboards/handwired/dactyl_manuform/4x5/keymaps/dvorak/config.h5
-rw-r--r--keyboards/handwired/dactyl_manuform/4x5/keymaps/dvorak/rules.mk3
-rw-r--r--keyboards/handwired/dactyl_manuform/4x5/rules.mk3
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6/4x6.c14
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6/4x6.h36
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6/config.h40
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6/info.json65
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6/keymaps/default/config.h31
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6/keymaps/default/keymap.c87
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6/rules.mk20
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/5x6.h6
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/info.json77
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/config.h9
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/keymap.c80
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/rules.mk7
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/rules.mk3
-rw-r--r--keyboards/handwired/dactyl_manuform/5x7/5x7.c23
-rw-r--r--keyboards/handwired/dactyl_manuform/5x7/5x7.h45
-rw-r--r--keyboards/handwired/dactyl_manuform/5x7/config.h33
-rw-r--r--keyboards/handwired/dactyl_manuform/5x7/info.json87
-rw-r--r--keyboards/handwired/dactyl_manuform/5x7/keymaps/default/config.h27
-rw-r--r--keyboards/handwired/dactyl_manuform/5x7/keymaps/default/keymap.c85
-rw-r--r--keyboards/handwired/dactyl_manuform/5x7/rules.mk20
-rw-r--r--keyboards/handwired/dactyl_manuform/6x6/info.json89
-rw-r--r--keyboards/handwired/dactyl_manuform/6x6/rules.mk3
-rw-r--r--keyboards/handwired/dactyl_manuform/config.h7
-rw-r--r--keyboards/handwired/dactyl_manuform/dactyl_manuform.h14
-rw-r--r--keyboards/handwired/dactyl_manuform/readme.md36
-rw-r--r--keyboards/handwired/dactyl_manuform/rules.mk2
32 files changed, 971 insertions, 53 deletions
diff --git a/keyboards/handwired/dactyl_manuform/4x5/info.json b/keyboards/handwired/dactyl_manuform/4x5/info.json
new file mode 100644
index 0000000000..4ee52e1644
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/4x5/info.json
@@ -0,0 +1,59 @@
+{
+ "keyboard_name": "Dactyl Manuform 4x5",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 15,
+ "height": 7,
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"label":"L00", "x":0, "y":0},
+ {"label":"L01", "x":1, "y":0},
+ {"label":"L02", "x":2, "y":0},
+ {"label":"L03", "x":3, "y":0},
+ {"label":"L04", "x":4, "y":0},
+ {"label":"R00", "x":10, "y":0},
+ {"label":"R01", "x":11, "y":0},
+ {"label":"R02", "x":12, "y":0},
+ {"label":"R03", "x":13, "y":0},
+ {"label":"R04", "x":14, "y":0},
+ {"label":"L10", "x":0, "y":1},
+ {"label":"L11", "x":1, "y":1},
+ {"label":"L12", "x":2, "y":1},
+ {"label":"L13", "x":3, "y":1},
+ {"label":"L14", "x":4, "y":1},
+ {"label":"R10", "x":10, "y":1},
+ {"label":"R11", "x":11, "y":1},
+ {"label":"R12", "x":12, "y":1},
+ {"label":"R13", "x":13, "y":1},
+ {"label":"R14", "x":14, "y":1},
+ {"label":"L20", "x":0, "y":2},
+ {"label":"L21", "x":1, "y":2},
+ {"label":"L22", "x":2, "y":2},
+ {"label":"L23", "x":3, "y":2},
+ {"label":"L24", "x":4, "y":2},
+ {"label":"R20", "x":10, "y":2},
+ {"label":"R21", "x":11, "y":2},
+ {"label":"R22", "x":12, "y":2},
+ {"label":"R23", "x":13, "y":2},
+ {"label":"R24", "x":14, "y":2},
+ {"label":"L31", "x":1, "y":3},
+ {"label":"L32", "x":2, "y":3},
+ {"label":"R32", "x":12, "y":3},
+ {"label":"R33", "x":13, "y":3},
+ {"label":"L33", "x":3, "y":4},
+ {"label":"L34", "x":4, "y":4},
+ {"label":"R30", "x":10, "y":4},
+ {"label":"R31", "x":11, "y":4},
+ {"label":"L44", "x":5, "y":5},
+ {"label":"L43", "x":6, "y":5},
+ {"label":"R41", "x":8, "y":5},
+ {"label":"R40", "x":9, "y":5},
+ {"label":"L42", "x":5, "y":6},
+ {"label":"L41", "x":6, "y":6},
+ {"label":"R43", "x":8, "y":6},
+ {"label":"R42", "x":9, "y":6}
+ ]
+ }
+ }
+}
diff --git a/keyboards/handwired/dactyl_manuform/4x5/keymaps/default/config.h b/keyboards/handwired/dactyl_manuform/4x5/keymaps/default/config.h
index 216917ed71..682c7a868b 100644
--- a/keyboards/handwired/dactyl_manuform/4x5/keymaps/default/config.h
+++ b/keyboards/handwired/dactyl_manuform/4x5/keymaps/default/config.h
@@ -18,8 +18,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
+#pragma once
#include "../../config.h"
@@ -33,5 +32,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_LEFT
// #define MASTER_RIGHT
#define EE_HANDS
-
-#endif
diff --git a/keyboards/handwired/dactyl_manuform/4x5/keymaps/default/rules.mk b/keyboards/handwired/dactyl_manuform/4x5/keymaps/default/rules.mk
index 457a3d01d4..e69de29bb2 100644
--- a/keyboards/handwired/dactyl_manuform/4x5/keymaps/default/rules.mk
+++ b/keyboards/handwired/dactyl_manuform/4x5/keymaps/default/rules.mk
@@ -1,3 +0,0 @@
-ifndef QUANTUM_DIR
- include ../../../../Makefile
-endif
diff --git a/keyboards/handwired/dactyl_manuform/4x5/keymaps/dvorak/config.h b/keyboards/handwired/dactyl_manuform/4x5/keymaps/dvorak/config.h
index 216917ed71..682c7a868b 100644
--- a/keyboards/handwired/dactyl_manuform/4x5/keymaps/dvorak/config.h
+++ b/keyboards/handwired/dactyl_manuform/4x5/keymaps/dvorak/config.h
@@ -18,8 +18,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
+#pragma once
#include "../../config.h"
@@ -33,5 +32,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_LEFT
// #define MASTER_RIGHT
#define EE_HANDS
-
-#endif
diff --git a/keyboards/handwired/dactyl_manuform/4x5/keymaps/dvorak/rules.mk b/keyboards/handwired/dactyl_manuform/4x5/keymaps/dvorak/rules.mk
index 457a3d01d4..e69de29bb2 100644
--- a/keyboards/handwired/dactyl_manuform/4x5/keymaps/dvorak/rules.mk
+++ b/keyboards/handwired/dactyl_manuform/4x5/keymaps/dvorak/rules.mk
@@ -1,3 +0,0 @@
-ifndef QUANTUM_DIR
- include ../../../../Makefile
-endif
diff --git a/keyboards/handwired/dactyl_manuform/4x5/rules.mk b/keyboards/handwired/dactyl_manuform/4x5/rules.mk
index 14b6e1e4e3..7508070515 100644
--- a/keyboards/handwired/dactyl_manuform/4x5/rules.mk
+++ b/keyboards/handwired/dactyl_manuform/4x5/rules.mk
@@ -14,8 +14,7 @@ MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+RGBLIGHT_ENABLE = no # 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
-
diff --git a/keyboards/handwired/dactyl_manuform/4x6/4x6.c b/keyboards/handwired/dactyl_manuform/4x6/4x6.c
new file mode 100644
index 0000000000..1d305c8541
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/4x6/4x6.c
@@ -0,0 +1,14 @@
+#include "4x6.h"
+
+
+#ifdef SSD1306OLED
+void led_set_kb(uint8_t usb_led) {
+ // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
+ led_set_user(usb_led);
+}
+#endif
+
+void matrix_init_kb(void) {
+ matrix_init_user();
+};
+
diff --git a/keyboards/handwired/dactyl_manuform/4x6/4x6.h b/keyboards/handwired/dactyl_manuform/4x6/4x6.h
new file mode 100644
index 0000000000..25741be57b
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/4x6/4x6.h
@@ -0,0 +1,36 @@
+#pragma once
+
+#include "dactyl_manuform.h"
+#include "quantum.h"
+
+#ifdef USE_I2C
+#include <stddef.h>
+#ifdef __AVR__
+ #include <avr/io.h>
+ #include <avr/interrupt.h>
+#endif
+#endif
+
+#define LAYOUT(\
+ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
+ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
+ L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
+ L32, L33, R32, R33, \
+ L34, L35, R30, R31, \
+ L44, L45, R40, R41, \
+ L42, L43, R42, R43 \
+ ) \
+ { \
+ { L00, L01, L02, L03, L04, L05 }, \
+ { L10, L11, L12, L13, L14, L15 }, \
+ { L20, L21, L22, L23, L24, L25 }, \
+ { KC_NO, KC_NO, L32, L33, L34, L35 }, \
+ { KC_NO, KC_NO, L42, L43, L44, L45 }, \
+\
+ { R00, R01, R02, R03, R04, R05 }, \
+ { R10, R11, R12, R13, R14, R15 }, \
+ { R20, R21, R22, R23, R24, R25 }, \
+ { R30, R31, R32, R33, KC_NO, KC_NO }, \
+ { R40, R41, R42, R43, KC_NO, KC_NO } \
+\
+ }
diff --git a/keyboards/handwired/dactyl_manuform/4x6/config.h b/keyboards/handwired/dactyl_manuform/4x6/config.h
new file mode 100644
index 0000000000..d4a1922876
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/4x6/config.h
@@ -0,0 +1,40 @@
+/*
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+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 0x3060
+#define DEVICE_VER 0x0001
+#define MANUFACTURER tshort
+#define DESCRIPTION A split keyboard for the cheap makers
+
+/* key matrix size */
+// Rows are doubled-up
+#define MATRIX_ROWS 10
+#define MATRIX_COLS 6
+
+// row-driven
+#define MATRIX_ROW_PINS { F7, B1, B3, B2, B6 }
+#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5 }
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
diff --git a/keyboards/handwired/dactyl_manuform/4x6/info.json b/keyboards/handwired/dactyl_manuform/4x6/info.json
new file mode 100644
index 0000000000..ba358a703f
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/4x6/info.json
@@ -0,0 +1,65 @@
+{
+ "keyboard_name": "Dactyl Manuform 4x6",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 17,
+ "height": 7,
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"label":"L00", "x":0, "y":0},
+ {"label":"L01", "x":1, "y":0},
+ {"label":"L02", "x":2, "y":0},
+ {"label":"L03", "x":3, "y":0},
+ {"label":"L04", "x":4, "y":0},
+ {"label":"L05", "x":5, "y":0},
+ {"label":"R00", "x":11, "y":0},
+ {"label":"R01", "x":12, "y":0},
+ {"label":"R02", "x":13, "y":0},
+ {"label":"R03", "x":14, "y":0},
+ {"label":"R04", "x":15, "y":0},
+ {"label":"R05", "x":16, "y":0},
+ {"label":"L10", "x":0, "y":1},
+ {"label":"L11", "x":1, "y":1},
+ {"label":"L12", "x":2, "y":1},
+ {"label":"L13", "x":3, "y":1},
+ {"label":"L14", "x":4, "y":1},
+ {"label":"L15", "x":5, "y":1},
+ {"label":"R10", "x":11, "y":1},
+ {"label":"R11", "x":12, "y":1},
+ {"label":"R12", "x":13, "y":1},
+ {"label":"R13", "x":14, "y":1},
+ {"label":"R14", "x":15, "y":1},
+ {"label":"R15", "x":16, "y":1},
+ {"label":"L20", "x":0, "y":2},
+ {"label":"L21", "x":1, "y":2},
+ {"label":"L22", "x":2, "y":2},
+ {"label":"L23", "x":3, "y":2},
+ {"label":"L24", "x":4, "y":2},
+ {"label":"L25", "x":5, "y":2},
+ {"label":"R20", "x":11, "y":2},
+ {"label":"R21", "x":12, "y":2},
+ {"label":"R22", "x":13, "y":2},
+ {"label":"R23", "x":14, "y":2},
+ {"label":"R24", "x":15, "y":2},
+ {"label":"R25", "x":16, "y":2},
+ {"label":"L32", "x":2, "y":3},
+ {"label":"L33", "x":3, "y":3},
+ {"label":"R32", "x":13, "y":3},
+ {"label":"R33", "x":14, "y":3},
+ {"label":"L34", "x":4, "y":4},
+ {"label":"L35", "x":5, "y":4},
+ {"label":"R30", "x":11, "y":4},
+ {"label":"R31", "x":12, "y":4},
+ {"label":"L44", "x":6, "y":5},
+ {"label":"L45", "x":7, "y":5},
+ {"label":"R40", "x":9, "y":5},
+ {"label":"R41", "x":10, "y":5},
+ {"label":"L42", "x":6, "y":6},
+ {"label":"L43", "x":7, "y":6},
+ {"label":"R42", "x":9, "y":6},
+ {"label":"R43", "x":10, "y":6}
+ ]
+ }
+ }
+}
diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/default/config.h b/keyboards/handwired/dactyl_manuform/4x6/keymaps/default/config.h
new file mode 100644
index 0000000000..1fc2c617f6
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/4x6/keymaps/default/config.h
@@ -0,0 +1,31 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+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
+
+/* Use I2C or Serial, not both */
+#define USE_SERIAL
+// #define USE_I2C
+
+/* Select hand configuration */
+
+// #define MASTER_LEFT
+// #define MASTER_RIGHT
+#define EE_HANDS
diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform/4x6/keymaps/default/keymap.c
new file mode 100644
index 0000000000..ad23beef5c
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/4x6/keymaps/default/keymap.c
@@ -0,0 +1,87 @@
+#include QMK_KEYBOARD_H
+
+extern keymap_config_t keymap_config;
+
+#define _BASE 0
+#define _RAISE 1
+#define _LOWER 2
+
+// Fillers to make layering more clear
+
+#define ____ KC_TRNS
+
+#define SFT_ESC SFT_T(KC_ESC)
+#define CTL_BSPC CTL_T(KC_BSPC)
+#define ALT_SPC ALT_T(KC_SPC)
+#define SFT_ENT SFT_T(KC_ENT)
+
+#define KC_ML KC_MS_LEFT
+#define KC_MR KC_MS_RIGHT
+#define KC_MU KC_MS_UP
+#define KC_MD KC_MS_DOWN
+#define KC_MB1 KC_MS_BTN1
+#define KC_MB2 KC_MS_BTN1
+
+#define RAISE MO(_RAISE)
+#define LOWER MO(_LOWER)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Base (qwerty)
+ * +-----------------------------------------+ +-----------------------------------------+
+ * | ESC | q | w | e | r | t | | y | u | i | o | p | |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | TAB | a | s | d | f | g | | h | j | k | l | ; | |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | SHFT | z | x | c | v | b | | n | m | , | . | / | |
+ * +------+------+------+------+-------------+ +-------------+------+------+------+------+
+ * | [ | ] | | | |
+ * +-------------+-------------+ +-------------+-------------+
+ * | | | | | |
+ * |------+------| |------+------|
+ * | | | | | |
+ * +-------------+ +-------------+
+ * +-------------+ +-------------+
+ * | | | | | |
+ * |------+------| |------+------|
+ * | | | | | |
+ * +-------------+ +-------------+
+ */
+
+[_BASE] = LAYOUT( \
+ KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, \
+ KC_TAB, 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_BSLASH, \
+ KC_LBRC,KC_RBRC, KC_PLUS,KC_EQL, \
+ RAISE, KC_SPC, KC_ENT, LOWER, \
+ KC_TAB, KC_HOME, KC_END, KC_DEL, \
+ KC_BSPC,KC_GRV, KC_LGUI,KC_LALT \
+),
+
+[_LOWER] = LAYOUT(
+ _______,_______,_______,_______,_______,KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, RESET, KC_PLUS, \
+ _______,KC_HOME,KC_PGUP,KC_PGDN,KC_END ,KC_LPRN, KC_RPRN, KC_P4, KC_P5, KC_P6, KC_MINS,KC_PIPE, \
+ _______,_______,_______,_______,_______,_______, _______, KC_P1, KC_P2, KC_P3, KC_EQL, KC_UNDS, \
+ _______,KC_PSCR, _______, KC_P0, \
+ _______,_______, _______,_______, \
+ _______,_______, _______,_______, \
+ _______,_______, _______,_______ \
+),
+
+[_RAISE] = LAYOUT(
+ _______,RESET, _______,_______,_______,KC_LBRC, KC_RBRC,_______,KC_NLCK,KC_INS, KC_SLCK,KC_MUTE, \
+ _______,KC_LEFT,KC_UP ,KC_DOWN,KC_RGHT,KC_LPRN, KC_RPRN,KC_MPRV,KC_MPLY,KC_MNXT,_______,KC_VOLU, \
+ _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,KC_VOLD, \
+ _______,_______, KC_EQL, _______, \
+ _______,_______, _______,_______, \
+ _______,_______, _______,_______, \
+ _______,_______, _______,_______ \
+)
+};
+
+
+void persistent_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
diff --git a/keyboards/handwired/dactyl_manuform/4x6/rules.mk b/keyboards/handwired/dactyl_manuform/4x6/rules.mk
new file mode 100644
index 0000000000..7508070515
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/4x6/rules.mk
@@ -0,0 +1,20 @@
+
+# Build Options
+# 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)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # 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
diff --git a/keyboards/handwired/dactyl_manuform/5x6/5x6.h b/keyboards/handwired/dactyl_manuform/5x6/5x6.h
index cb225a2cf2..72045cc291 100644
--- a/keyboards/handwired/dactyl_manuform/5x6/5x6.h
+++ b/keyboards/handwired/dactyl_manuform/5x6/5x6.h
@@ -1,11 +1,8 @@
#pragma once
#include "dactyl_manuform.h"
-
-//void promicro_bootloader_jmp(bool program);
#include "quantum.h"
-
#ifdef USE_I2C
#include <stddef.h>
#ifdef __AVR__
@@ -14,9 +11,6 @@
#endif
#endif
-//void promicro_bootloader_jmp(bool program);
-
-
#define LAYOUT_5x6(\
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
diff --git a/keyboards/handwired/dactyl_manuform/5x6/info.json b/keyboards/handwired/dactyl_manuform/5x6/info.json
new file mode 100644
index 0000000000..d7aa3acee3
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/5x6/info.json
@@ -0,0 +1,77 @@
+{
+ "keyboard_name": "Dactyl Manuform 5x6",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 17,
+ "height": 8,
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"label":"L00", "x":0, "y":0},
+ {"label":"L01", "x":1, "y":0},
+ {"label":"L02", "x":2, "y":0},
+ {"label":"L03", "x":3, "y":0},
+ {"label":"L04", "x":4, "y":0},
+ {"label":"L05", "x":5, "y":0},
+ {"label":"R00", "x":11, "y":0},
+ {"label":"R01", "x":12, "y":0},
+ {"label":"R02", "x":13, "y":0},
+ {"label":"R03", "x":14, "y":0},
+ {"label":"R04", "x":15, "y":0},
+ {"label":"R05", "x":16, "y":0},
+ {"label":"L10", "x":0, "y":1},
+ {"label":"L11", "x":1, "y":1},
+ {"label":"L12", "x":2, "y":1},
+ {"label":"L13", "x":3, "y":1},
+ {"label":"L14", "x":4, "y":1},
+ {"label":"L15", "x":5, "y":1},
+ {"label":"R10", "x":11, "y":1},
+ {"label":"R11", "x":12, "y":1},
+ {"label":"R12", "x":13, "y":1},
+ {"label":"R13", "x":14, "y":1},
+ {"label":"R14", "x":15, "y":1},
+ {"label":"R15", "x":16, "y":1},
+ {"label":"L20", "x":0, "y":2},
+ {"label":"L21", "x":1, "y":2},
+ {"label":"L22", "x":2, "y":2},
+ {"label":"L23", "x":3, "y":2},
+ {"label":"L24", "x":4, "y":2},
+ {"label":"L25", "x":5, "y":2},
+ {"label":"R20", "x":11, "y":2},
+ {"label":"R21", "x":12, "y":2},
+ {"label":"R22", "x":13, "y":2},
+ {"label":"R23", "x":14, "y":2},
+ {"label":"R24", "x":15, "y":2},
+ {"label":"R25", "x":16, "y":2},
+ {"label":"L30", "x":0, "y":3},
+ {"label":"L31", "x":1, "y":3},
+ {"label":"L32", "x":2, "y":3},
+ {"label":"L33", "x":3, "y":3},
+ {"label":"L34", "x":4, "y":3},
+ {"label":"L35", "x":5, "y":3},
+ {"label":"R30", "x":11, "y":3},
+ {"label":"R31", "x":12, "y":3},
+ {"label":"R32", "x":13, "y":3},
+ {"label":"R33", "x":14, "y":3},
+ {"label":"R34", "x":15, "y":3},
+ {"label":"R35", "x":16, "y":3},
+ {"label":"L42", "x":2, "y":4},
+ {"label":"L43", "x":3, "y":4},
+ {"label":"R42", "x":13, "y":4},
+ {"label":"R43", "x":14, "y":4},
+ {"label":"L44", "x":4, "y":5},
+ {"label":"L45", "x":5, "y":5},
+ {"label":"R40", "x":11, "y":5},
+ {"label":"R41", "x":12, "y":5},
+ {"label":"L54", "x":6, "y":6},
+ {"label":"L55", "x":7, "y":6},
+ {"label":"R50", "x":9, "y":6},
+ {"label":"R51", "x":10, "y":6},
+ {"label":"L52", "x":6, "y":7},
+ {"label":"L53", "x":7, "y":7},
+ {"label":"R52", "x":9, "y":7},
+ {"label":"R53", "x":10, "y":7}
+ ]
+ }
+ }
+}
diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/config.h b/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/config.h
new file mode 100644
index 0000000000..10b9693267
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/config.h
@@ -0,0 +1,9 @@
+#pragma once
+
+#include "333fred_config.h"
+
+#define USE_SERIAL
+#define EE_HANDS
+
+#undef TAPPING_TERM
+#define TAPPING_TERM 200
diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/keymap.c b/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/keymap.c
new file mode 100644
index 0000000000..c37009f24d
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/keymap.c
@@ -0,0 +1,80 @@
+#include QMK_KEYBOARD_H
+#include "333fred.h"
+
+enum custom_macros {
+ DLEFT,
+ DRIGHT,
+ PSCREEN_APP
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [BASE] = LAYOUT_5x6(
+ 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
+ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ OSM(MOD_LSFT), CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, OSM(MOD_RSFT),
+ KC_F4, KC_F5, TG(CODEFLOW), KC_EQL,
+ KC_LALT, KC_BSPC, KC_SPC, OSL(VIM),
+ KC_TAB, TD(TD_SYM_VIM), KC_ENT, KC_RGUI,
+ KC_LCTL, KC_DEL, KC_UP, KC_DOWN
+ ),
+
+ [CODEFLOW] = LAYOUT_5x6(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ KC_F7, KC_F8, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______
+ ),
+
+ [SYMB] = LAYOUT_5x6(
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ _______, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE, _______, KC_7, KC_8, KC_9, _______, KC_F12,
+ _______, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_GRV, _______, KC_4, KC_5, KC_6, _______, _______,
+ _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, _______, KC_1, KC_2, KC_3, _______, _______,
+ KC_F7, KC_F8, KC_0, KC_ENT,
+ _______, _______, KC_MPLY, KC_MNXT,
+ _______, _______, KC_MPRV, _______,
+ _______, _______, KC_VOLU, KC_VOLD
+ ),
+
+ [VIM] = LAYOUT_5x6(
+ _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______,
+ _______, _______, _______, _______, KC_LSFT, _______, _______, _______, _______, _______, _______, _______,
+ _______, M(DLEFT), M(DRIGHT), KC_LCTL, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______
+ ),
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ switch(id) {
+ case DLEFT:
+ if (record->event.pressed) { // Windows move desktop left
+ return MACRO(D(LCTL), D(LGUI), T(LEFT), U(LGUI), U(LCTL), END);
+ }
+ break;
+ case DRIGHT:
+ if (record->event.pressed) { // Windows move desktop right
+ return MACRO(D(LCTL), D(LGUI), T(RIGHT), U(LGUI), U(LCTL), END);
+ }
+ break;
+ case PSCREEN_APP: if (record->event.pressed) {
+ return MACRO(D(LALT), T(PSCR), U(LALT), END);
+ }
+ break;
+ }
+ return MACRO_NONE;
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ tap_dance_process_record(keycode);
+ return true;
+}
diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/rules.mk b/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/rules.mk
new file mode 100644
index 0000000000..79ef33e7c3
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/rules.mk
@@ -0,0 +1,7 @@
+
+NKRO_ENABLE = yes
+KEY_LOCK_ENABLE = yes
+TAP_DANCE_ENABLE = yes
+CONSOLE_ENABLE = no
+PERMISSIVE_HOLD = yes
+EXTRAFLAGS += -flto
diff --git a/keyboards/handwired/dactyl_manuform/5x6/rules.mk b/keyboards/handwired/dactyl_manuform/5x6/rules.mk
index 14b6e1e4e3..7508070515 100644
--- a/keyboards/handwired/dactyl_manuform/5x6/rules.mk
+++ b/keyboards/handwired/dactyl_manuform/5x6/rules.mk
@@ -14,8 +14,7 @@ MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+RGBLIGHT_ENABLE = no # 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
-
diff --git a/keyboards/handwired/dactyl_manuform/5x7/5x7.c b/keyboards/handwired/dactyl_manuform/5x7/5x7.c
new file mode 100644
index 0000000000..135014d655
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/5x7/5x7.c
@@ -0,0 +1,23 @@
+#include "5x7.h"
+
+
+#ifdef SSD1306OLED
+void led_set_kb(uint8_t usb_led) {
+ // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
+ led_set_user(usb_led);
+}
+#endif
+
+void matrix_init_kb(void) {
+
+ // // green led on
+ // DDRD |= (1<<5);
+ // PORTD &= ~(1<<5);
+
+ // // orange led on
+ // DDRB |= (1<<0);
+ // PORTB &= ~(1<<0);
+
+ matrix_init_user();
+};
+
diff --git a/keyboards/handwired/dactyl_manuform/5x7/5x7.h b/keyboards/handwired/dactyl_manuform/5x7/5x7.h
new file mode 100644
index 0000000000..95fd5bb102
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/5x7/5x7.h
@@ -0,0 +1,45 @@
+#pragma once
+
+#include "dactyl_manuform.h"
+#include "quantum.h"
+
+#ifdef USE_I2C
+#include <stddef.h>
+#ifdef __AVR__
+ #include <avR/io.h>
+ #include <avR/inteRRupt.h>
+#endif
+#endif
+
+#define LAYOUT_5x7( \
+ L11, L12, L13, L14, L15, L16, L17, \
+ L21, L22, L23, L24, L25, L26, L27, \
+ L31, L32, L33, L34, L35, L36, L37, \
+ L41, L42, L43, L44, L45, L46, \
+ L51, L52, L53, L54, \
+ L55, L56, \
+ L65, L66, \
+ L63, L64, \
+ R11, R12, R13, R14, R15, R16, R17, \
+ R21, R22, R23, R24, R25, R26, R27, \
+ R31, R32, R33, R34, R35, R36, R37, \
+ R42, R43, R44, R45, R46, R47, \
+ R54, R55, R56, R57, \
+ R52, R53, \
+ R62, R63, \
+ R64, R65 \
+ ) \
+ { \
+ { L11, L12, L13, L14, L15, L16, L17 }, \
+ { L21, L22, L23, L24, L25, L26, L27 }, \
+ { L31, L32, L33, L34, L35, L36, L37 }, \
+ { L41, L42, L43, L44, L45, L46, KC_NO }, \
+ { L51, L52, L53, L54, L55, L56, KC_NO }, \
+ { KC_NO, KC_NO, L63, L64, L65, L66, KC_NO }, \
+ { R11, R12, R13, R14, R15, R16, R17 }, \
+ { R21, R22, R23, R24, R25, R26, R27 }, \
+ { R31, R32, R33, R34, R35, R36, R37 }, \
+ { KC_NO, R42, R43, R44, R45, R46, R47 }, \
+ { KC_NO, R52, R53, R54, R55, R56, R57 }, \
+ { KC_NO, R62, R63, R64, R65, KC_NO, KC_NO } \
+ }
diff --git a/keyboards/handwired/dactyl_manuform/5x7/config.h b/keyboards/handwired/dactyl_manuform/5x7/config.h
new file mode 100644
index 0000000000..bef48f17ea
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/5x7/config.h
@@ -0,0 +1,33 @@
+/*
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+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"
+
+
+#define PRODUCT Dactyl-Manuform (Ergodox)
+
+/* key matrix size */
+// Rows are doubled-up
+#define MATRIX_ROWS 12
+#define MATRIX_COLS 7
+
+// wiring of each half
+#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4, B5 }
+#define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2, B6 }
diff --git a/keyboards/handwired/dactyl_manuform/5x7/info.json b/keyboards/handwired/dactyl_manuform/5x7/info.json
new file mode 100644
index 0000000000..b4b2c7b797
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/5x7/info.json
@@ -0,0 +1,87 @@
+{
+ "keyboard_name": "Dactyl Manuform 5x7",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 17,
+ "height": 16,
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"label":"L11", "x":0, "y":0},
+ {"label":"L12", "x":1, "y":0},
+ {"label":"L13", "x":2, "y":0},
+ {"label":"L14", "x":3, "y":0},
+ {"label":"L15", "x":4, "y":0},
+ {"label":"L16", "x":5, "y":0},
+ {"label":"L17", "x":6, "y":0},
+ {"label":"L21", "x":0, "y":1},
+ {"label":"L22", "x":1, "y":1},
+ {"label":"L23", "x":2, "y":1},
+ {"label":"L24", "x":3, "y":1},
+ {"label":"L25", "x":4, "y":1},
+ {"label":"L26", "x":5, "y":1},
+ {"label":"L27", "x":6, "y":1},
+ {"label":"L31", "x":0, "y":2},
+ {"label":"L32", "x":1, "y":2},
+ {"label":"L33", "x":2, "y":2},
+ {"label":"L34", "x":3, "y":2},
+ {"label":"L35", "x":4, "y":2},
+ {"label":"L36", "x":5, "y":2},
+ {"label":"L37", "x":6, "y":2},
+ {"label":"L41", "x":0, "y":3},
+ {"label":"L42", "x":1, "y":3},
+ {"label":"L43", "x":2, "y":3},
+ {"label":"L44", "x":3, "y":3},
+ {"label":"L45", "x":4, "y":3},
+ {"label":"L46", "x":5, "y":3},
+ {"label":"L51", "x":0, "y":4},
+ {"label":"L52", "x":1, "y":4},
+ {"label":"L53", "x":2, "y":4},
+ {"label":"L54", "x":3, "y":4},
+ {"label":"L55", "x":4, "y":5},
+ {"label":"L56", "x":5, "y":5},
+ {"label":"L65", "x":6, "y":6},
+ {"label":"L66", "x":7, "y":6},
+ {"label":"L63", "x":6, "y":7},
+ {"label":"L64", "x":7, "y":7},
+ {"label":"R11", "x":10, "y":0},
+ {"label":"R12", "x":11, "y":0},
+ {"label":"R13", "x":12, "y":0},
+ {"label":"R14", "x":13, "y":0},
+ {"label":"R15", "x":14, "y":0},
+ {"label":"R16", "x":15, "y":0},
+ {"label":"R17", "x":16, "y":0},
+ {"label":"R21", "x":10, "y":1},
+ {"label":"R22", "x":11, "y":1},
+ {"label":"R23", "x":12, "y":1},
+ {"label":"R24", "x":13, "y":1},
+ {"label":"R25", "x":14, "y":1},
+ {"label":"R26", "x":15, "y":1},
+ {"label":"R27", "x":16, "y":1},
+ {"label":"R31", "x":10, "y":2},
+ {"label":"R32", "x":11, "y":2},
+ {"label":"R33", "x":12, "y":2},
+ {"label":"R34", "x":13, "y":2},
+ {"label":"R35", "x":14, "y":2},
+ {"label":"R36", "x":15, "y":2},
+ {"label":"R37", "x":16, "y":2},
+ {"label":"R42", "x":11, "y":3},
+ {"label":"R43", "x":12, "y":3},
+ {"label":"R44", "x":13, "y":3},
+ {"label":"R45", "x":14, "y":3},
+ {"label":"R46", "x":15, "y":3},
+ {"label":"R47", "x":16, "y":3},
+ {"label":"R54", "x":13, "y":4},
+ {"label":"R55", "x":14, "y":4},
+ {"label":"R56", "x":15, "y":4},
+ {"label":"R57", "x":16, "y":4},
+ {"label":"R52", "x":11, "y":5},
+ {"label":"R53", "x":12, "y":5},
+ {"label":"R62", "x":9, "y":6},
+ {"label":"R63", "x":10, "y":6},
+ {"label":"R64", "x":9, "y":7},
+ {"label":"R65", "x":10, "y":7}
+ ]
+ }
+ }
+}
diff --git a/keyboards/handwired/dactyl_manuform/5x7/keymaps/default/config.h b/keyboards/handwired/dactyl_manuform/5x7/keymaps/default/config.h
new file mode 100644
index 0000000000..29ab59ad66
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/5x7/keymaps/default/config.h
@@ -0,0 +1,27 @@
+/*
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+
+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
+
+
+#define USE_SERIAL
+
+#define MASTER_LEFT
+// #define MASTER_RIGHT
+//#define EE_HANDS
+// Rows are doubled-up
diff --git a/keyboards/handwired/dactyl_manuform/5x7/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform/5x7/keymaps/default/keymap.c
new file mode 100644
index 0000000000..8b83b538fe
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/5x7/keymaps/default/keymap.c
@@ -0,0 +1,85 @@
+#include QMK_KEYBOARD_H
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _FN 1
+#define _NUMPAD 2
+
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+// Some basic macros
+#define TASK LCTL(LSFT(KC_ESC))
+#define TAB_R LCTL(KC_TAB)
+#define TAB_L LCTL(LSFT(KC_TAB))
+#define TAB_RO LCTL(LSFT(KC_T))
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[_QWERTY] = LAYOUT_5x7(
+ // left hand
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, TAB_RO,
+ OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, KC_B,
+ KC_CAPS, KC_LGUI, TAB_L, TAB_R,
+ TT(_FN), KC_SPC,
+ KC_END, KC_HOME,
+ KC_PSCR, TASK,
+ // right hand
+ KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV,
+ KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
+ TG(_NUMPAD), KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, OSM(MOD_RSFT),
+ KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
+ KC_BSPC, KC_ENT,
+ KC_PGUP, KC_PGDN,
+ KC_LCTL, KC_LALT),
+
+[_FN] = LAYOUT_5x7(
+ // left hand
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
+ _______, _______, _______, KC_UP, _______, _______, _______,
+ _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, RESET,
+ _______, _______, _______, _______, _______, _______,
+ KC_MSTP, KC_MPLY, KC_MPRV, KC_MNXT,
+ _______, _______,
+ _______, _______,
+ _______, _______,
+ // right hand
+ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ KC_DEL, _______,
+ _______, _______,
+ _______, _______),
+
+[_NUMPAD] = LAYOUT_5x7(
+ // left hand
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______,
+ _______, _______,
+ _______, _______,
+ // right hand
+ _______, _______, KC_NLCK, _______, KC_PMNS, KC_PPLS, _______,
+ _______, _______, KC_P7, KC_P8, KC_P9, _______, _______,
+ _______, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______,
+ _______, KC_P1, KC_P2, KC_P3, KC_PSLS, _______,
+ KC_P0, KC_PDOT, _______, _______,
+ _______, KC_PENT,
+ _______, _______,
+ _______, _______),
+
+};
diff --git a/keyboards/handwired/dactyl_manuform/5x7/rules.mk b/keyboards/handwired/dactyl_manuform/5x7/rules.mk
new file mode 100644
index 0000000000..7508070515
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/5x7/rules.mk
@@ -0,0 +1,20 @@
+
+# Build Options
+# 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)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # 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
diff --git a/keyboards/handwired/dactyl_manuform/6x6/info.json b/keyboards/handwired/dactyl_manuform/6x6/info.json
new file mode 100644
index 0000000000..2ae91d4694
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/6x6/info.json
@@ -0,0 +1,89 @@
+{
+ "keyboard_name": "Dactyl Manuform 6x6",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 17,
+ "height": 9,
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"label":"L00", "x":0, "y":0},
+ {"label":"L01", "x":1, "y":0},
+ {"label":"L02", "x":2, "y":0},
+ {"label":"L03", "x":3, "y":0},
+ {"label":"L04", "x":4, "y":0},
+ {"label":"L05", "x":5, "y":0},
+ {"label":"R00", "x":11, "y":0},
+ {"label":"R01", "x":12, "y":0},
+ {"label":"R02", "x":13, "y":0},
+ {"label":"R03", "x":14, "y":0},
+ {"label":"R04", "x":15, "y":0},
+ {"label":"R05", "x":16, "y":0},
+ {"label":"L10", "x":0, "y":1},
+ {"label":"L11", "x":1, "y":1},
+ {"label":"L12", "x":2, "y":1},
+ {"label":"L13", "x":3, "y":1},
+ {"label":"L14", "x":4, "y":1},
+ {"label":"L15", "x":5, "y":1},
+ {"label":"R10", "x":11, "y":1},
+ {"label":"R11", "x":12, "y":1},
+ {"label":"R12", "x":13, "y":1},
+ {"label":"R13", "x":14, "y":1},
+ {"label":"R14", "x":15, "y":1},
+ {"label":"R15", "x":16, "y":1},
+ {"label":"L20", "x":0, "y":2},
+ {"label":"L21", "x":1, "y":2},
+ {"label":"L22", "x":2, "y":2},
+ {"label":"L23", "x":3, "y":2},
+ {"label":"L24", "x":4, "y":2},
+ {"label":"L25", "x":5, "y":2},
+ {"label":"R20", "x":11, "y":2},
+ {"label":"R21", "x":12, "y":2},
+ {"label":"R22", "x":13, "y":2},
+ {"label":"R23", "x":14, "y":2},
+ {"label":"R24", "x":15, "y":2},
+ {"label":"R25", "x":16, "y":2},
+ {"label":"L30", "x":0, "y":3},
+ {"label":"L31", "x":1, "y":3},
+ {"label":"L32", "x":2, "y":3},
+ {"label":"L33", "x":3, "y":3},
+ {"label":"L34", "x":4, "y":3},
+ {"label":"L35", "x":5, "y":3},
+ {"label":"R30", "x":11, "y":3},
+ {"label":"R31", "x":12, "y":3},
+ {"label":"R32", "x":13, "y":3},
+ {"label":"R33", "x":14, "y":3},
+ {"label":"R34", "x":15, "y":3},
+ {"label":"R35", "x":16, "y":3},
+ {"label":"L40", "x":0, "y":4},
+ {"label":"L41", "x":1, "y":4},
+ {"label":"L42", "x":2, "y":4},
+ {"label":"L43", "x":3, "y":4},
+ {"label":"L44", "x":4, "y":4},
+ {"label":"L45", "x":5, "y":4},
+ {"label":"R40", "x":11, "y":4},
+ {"label":"R41", "x":12, "y":4},
+ {"label":"R42", "x":13, "y":4},
+ {"label":"R43", "x":14, "y":4},
+ {"label":"R44", "x":15, "y":4},
+ {"label":"R45", "x":16, "y":4},
+ {"label":"L52", "x":2, "y":5},
+ {"label":"L53", "x":3, "y":5},
+ {"label":"R52", "x":13, "y":5},
+ {"label":"R53", "x":14, "y":5},
+ {"label":"L54", "x":4, "y":6},
+ {"label":"L55", "x":5, "y":6},
+ {"label":"R50", "x":11, "y":6},
+ {"label":"R51", "x":12, "y":6},
+ {"label":"L64", "x":6, "y":7},
+ {"label":"L65", "x":7, "y":7},
+ {"label":"R60", "x":9, "y":7},
+ {"label":"R61", "x":10, "y":7},
+ {"label":"L62", "x":6, "y":8},
+ {"label":"L63", "x":7, "y":8},
+ {"label":"R62", "x":9, "y":8},
+ {"label":"R63", "x":10, "y":8}
+ ]
+ }
+ }
+}
diff --git a/keyboards/handwired/dactyl_manuform/6x6/rules.mk b/keyboards/handwired/dactyl_manuform/6x6/rules.mk
index 14b6e1e4e3..7508070515 100644
--- a/keyboards/handwired/dactyl_manuform/6x6/rules.mk
+++ b/keyboards/handwired/dactyl_manuform/6x6/rules.mk
@@ -14,8 +14,7 @@ MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+RGBLIGHT_ENABLE = no # 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
-
diff --git a/keyboards/handwired/dactyl_manuform/config.h b/keyboards/handwired/dactyl_manuform/config.h
index 19cd356d89..0e6f3f98ed 100644
--- a/keyboards/handwired/dactyl_manuform/config.h
+++ b/keyboards/handwired/dactyl_manuform/config.h
@@ -38,6 +38,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
@@ -53,7 +56,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* ws2812 RGB LED */
#define RGB_DI_PIN D3
-#define RGBLIGHT_TIMER
+
#define RGBLED_NUM 12 // Number of LEDs
@@ -74,5 +77,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
-
-
diff --git a/keyboards/handwired/dactyl_manuform/dactyl_manuform.h b/keyboards/handwired/dactyl_manuform/dactyl_manuform.h
index 3222e6a617..eea0757d59 100644
--- a/keyboards/handwired/dactyl_manuform/dactyl_manuform.h
+++ b/keyboards/handwired/dactyl_manuform/dactyl_manuform.h
@@ -1,13 +1,15 @@
#pragma once
-
-
-#ifdef KEYBOARD_handwired_dactyl_manuform_6x6
- #include "6x6.h"
+#ifdef KEYBOARD_handwired_dactyl_manuform_4x5
+ #include "4x5.h"
+#elif KEYBOARD_handwired_dactyl_manuform_4x6
+ #include "4x6.h"
#elif KEYBOARD_handwired_dactyl_manuform_5x6
#include "5x6.h"
-#elif KEYBOARD_handwired_dactyl_manuform_4x5
- #include "4x5.h"
+#elif KEYBOARD_handwired_dactyl_manuform_5x7
+ #include "5x7.h"
+#elif KEYBOARD_handwired_dactyl_manuform_6x6
+ #include "6x6.h"
#endif
//void promicro_bootloader_jmp(bool program);
diff --git a/keyboards/handwired/dactyl_manuform/readme.md b/keyboards/handwired/dactyl_manuform/readme.md
index 3f72bd6b21..0d08c67a08 100644
--- a/keyboards/handwired/dactyl_manuform/readme.md
+++ b/keyboards/handwired/dactyl_manuform/readme.md
@@ -1,11 +1,11 @@
-Dactyl Manuform (4x5, 5x6, 6x6)
+Dactyl Manuform (4x5, 5x6, 5x7, 6x6)
======
the [Dactyl-Manuform](https://github.com/tshort/dactyl-keyboard) is a split curved keyboard based on the design of [adereth dactyl](https://github.com/adereth/dactyl-keyboard) and thumb cluster design of the [manuform](https://geekhack.org/index.php?topic=46015.0) keyboard, the hardware is similar to the let's split keyboard. all information needed for making one is in the first link.
![Imgur](https://i.imgur.com/7y0Vbyd.jpg)
## First Time Setup
------------------
+
Download or clone the `qmk_firmware` repo and navigate to its top level directory. Once your build environment is setup, you'll be able to generate the default .hex using:
Depending on your Layout chose one of the follwing commands:
@@ -29,7 +29,7 @@ For more information on customizing keymaps, take a look at the primary document
## Keymaps
------------------
+
### [Keymaps 4x5](/keyboards/handwired/dactyl_manuform/4x5/keymaps/)
#### Default
@@ -44,13 +44,16 @@ Just a copy of the Impstyle keymap. Feel free to adjust it.
#### Impstyle
A simple QWERTY keymap with 3 Layers. Both sides are connected via serial and the Left ist the master.
+### [Keymaps 5x7 aka almost Ergodox](/keyboards/handwired/dactyl_manuform/5x7/keymaps/)
+#### Default
+Keymap of Loligagger from geekhack.
+
### [Keymaps 6x6](/keyboards/handwired/dactyl_manuform/6x6/keymaps/)
#### Default
Simple QWERTY layout with 3 Layers.
-##Required Hardware
------------------
+## Required Hardware
Apart from diodes and key switches for the keyboard matrix in each half, you
will need:
@@ -62,12 +65,10 @@ Alternatively, you can use any sort of cable and socket that has at least 3
wires. If you want to use I2C to communicate between halves, you will need a
cable with at least 4 wires and 2x 4.7kΩ pull-up resistors
-##Optional Hardware
------------------
+## Optional Hardware
A speaker can be hooked-up to either side to the `5` (`C6`) pin and `GND`, and turned on via `AUDIO_ENABLE`.
-##Wiring
-------
+## Wiring
The 3 wires of the TRS/TRRS cable need to connect GND, VCC, and digital pin 3 (i.e.
PD0 on the ATmega32u4) between the two Pro Micros.
@@ -89,19 +90,17 @@ unnecessary in simple use cases.
You can change your configuration between serial and i2c by modifying your `config.h` file.
-##Notes on Software Configuration
--------------------------------
+## Notes on Software Configuration
the keymaps in here are for the 4x5 layout of the keyboard only.
-##Flashing
--------
+## Flashing
To flash your firmware take a look at: [Flashing Instructions and Bootloader Information](https://docs.qmk.fm/#/flashing)
-##Choosing which board to plug the USB cable into (choosing Master)
---------
+## Choosing which board to plug the USB cable into (choosing Master)
+
Because the two boards are identical, the firmware has logic to differentiate the left and right board.
It uses two strategies to figure things out: looking at the EEPROM (memory on the chip) or looking if the current board has the usb cable.
@@ -111,15 +110,18 @@ The EEPROM approach requires additional setup (flashing the eeprom) but allows y
The USB cable approach is easier to setup and if you just want the usb cable on the left board, you do not need to do anything extra.
### Setting the left hand as master
+
If you always plug the usb cable into the left board, nothing extra is needed as this is the default. Comment out `EE_HANDS` and comment out `I2C_MASTER_RIGHT` or `MASTER_RIGHT` if for some reason it was set.
### Setting the right hand as master
+
If you always plug the usb cable into the right board, add an extra flag to your `config.h`
```
#define MASTER_RIGHT
```
### Setting EE_hands to use either hands as master
+
If you define `EE_HANDS` in your `config.h`, you will need to set the
EEPROM for the left and right halves.
@@ -129,13 +131,13 @@ file will run on both hands instead of having to flash left and right handed
versions of the firmware to each half. To flash the EEPROM file for the left
half run:
```
-avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:eeprom-lefthand.eep
+avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:"./quantum/split_common/eeprom-lefthand.eep"
// or the equivalent in dfu-programmer
```
and similarly for right half
```
-avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:eeprom-righhand.eep
+avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:"./quantum/split_common/eeprom-righthand.eep"
// or the equivalent in dfu-programmer
```
diff --git a/keyboards/handwired/dactyl_manuform/rules.mk b/keyboards/handwired/dactyl_manuform/rules.mk
index adb058c8af..a93de36858 100644
--- a/keyboards/handwired/dactyl_manuform/rules.mk
+++ b/keyboards/handwired/dactyl_manuform/rules.mk
@@ -58,7 +58,7 @@ MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+RGBLIGHT_ENABLE = no # 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