aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzwnk <david@impstyle.com>2018-08-14 14:54:22 -0300
committerDrashna Jaelre <drashna@live.com>2018-08-14 10:54:22 -0700
commitfeec8ad4694814ed8953c6f72798f51f39724af5 (patch)
tree8b8f3583e3259ab6de44b70e8c7bc4ddc0d8149b
parent61b61161478ebe1a65fc4b9a9efc0f887a342767 (diff)
downloadqmk_firmware-feec8ad4694814ed8953c6f72798f51f39724af5.tar.gz
qmk_firmware-feec8ad4694814ed8953c6f72798f51f39724af5.zip
Keyboard: Add default keymap for dactyl_manuform 5x6 (#3649)
* mouse layer keys shifted * mouse layer keys shifted * manuform 5x6 added * mouse layer keys shifted * manuform 5x6 added * dactyl_manuform 5x6 keymap added * reorg. dactyl manuform folder * removed LAYOUTS = ortho_4x12 for 4x5 * Rows and Cols in config.h fixed * MASTER_LEFT * 5x6 matrix fixed * keymap updated * removed the i2c, serial, split_util and matrix files and inserted SPLIT_KEYBOARD * default keymap for dactyl_manuform 5x6 * Fixes for Dactyl Manuform * Add/update default keymap
-rw-r--r--keyboards/handwired/dactyl_manuform/4x5/4x5.c (renamed from keyboards/handwired/dactyl_manuform/4x5/dactyl_manuform.c)2
-rw-r--r--keyboards/handwired/dactyl_manuform/4x5/4x5.h (renamed from keyboards/handwired/dactyl_manuform/4x5/dactyl_manuform.h)5
-rw-r--r--keyboards/handwired/dactyl_manuform/4x5/config.h53
-rw-r--r--keyboards/handwired/dactyl_manuform/4x5/rules.mk49
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/5x6.c (renamed from keyboards/handwired/dactyl_manuform/5x6/dactyl_manuform.c)2
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/5x6.h (renamed from keyboards/handwired/dactyl_manuform/5x6/dactyl_manuform.h)5
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/config.h62
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/keymaps/default/config.h27
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/keymaps/default/keymap.c71
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/keymaps/impstyle/config.h5
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/keymaps/impstyle/keymap.c26
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/rules.mk48
-rw-r--r--keyboards/handwired/dactyl_manuform/config.h78
-rw-r--r--keyboards/handwired/dactyl_manuform/dactyl_manuform.c1
-rw-r--r--keyboards/handwired/dactyl_manuform/dactyl_manuform.h22
-rw-r--r--keyboards/handwired/dactyl_manuform/readme.md142
-rw-r--r--keyboards/handwired/dactyl_manuform/rules.mk66
17 files changed, 432 insertions, 232 deletions
diff --git a/keyboards/handwired/dactyl_manuform/4x5/dactyl_manuform.c b/keyboards/handwired/dactyl_manuform/4x5/4x5.c
index 17caecb4f..78c0fee81 100644
--- a/keyboards/handwired/dactyl_manuform/4x5/dactyl_manuform.c
+++ b/keyboards/handwired/dactyl_manuform/4x5/4x5.c
@@ -1,4 +1,4 @@
1#include "dactyl_manuform.h" 1#include "4x5.h"
2 2
3 3
4#ifdef SSD1306OLED 4#ifdef SSD1306OLED
diff --git a/keyboards/handwired/dactyl_manuform/4x5/dactyl_manuform.h b/keyboards/handwired/dactyl_manuform/4x5/4x5.h
index 7e126d301..b34d97adb 100644
--- a/keyboards/handwired/dactyl_manuform/4x5/dactyl_manuform.h
+++ b/keyboards/handwired/dactyl_manuform/4x5/4x5.h
@@ -1,5 +1,4 @@
1#ifndef REV2_H 1#pragma once
2#define REV2_H
3 2
4#include "dactyl_manuform.h" 3#include "dactyl_manuform.h"
5 4
@@ -68,4 +67,4 @@
68\ 67\
69 } 68 }
70#endif 69#endif
71#endif 70
diff --git a/keyboards/handwired/dactyl_manuform/4x5/config.h b/keyboards/handwired/dactyl_manuform/4x5/config.h
index 8917630e4..c8417a2f0 100644
--- a/keyboards/handwired/dactyl_manuform/4x5/config.h
+++ b/keyboards/handwired/dactyl_manuform/4x5/config.h
@@ -16,8 +16,7 @@ You should have received a copy of the GNU General Public License
16along with this program. If not, see <http://www.gnu.org/licenses/>. 16along with this program. If not, see <http://www.gnu.org/licenses/>.
17*/ 17*/
18 18
19#ifndef CONFIG_H 19#pragma once
20#define CONFIG_H
21 20
22#include "config_common.h" 21#include "config_common.h"
23 22
@@ -26,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define PRODUCT_ID 0x3060 25#define PRODUCT_ID 0x3060
27#define DEVICE_VER 0x0001 26#define DEVICE_VER 0x0001
28#define MANUFACTURER tshort 27#define MANUFACTURER tshort
29#define PRODUCT Dactyl-Manuform
30#define DESCRIPTION A split keyboard for the cheap makers 28#define DESCRIPTION A split keyboard for the cheap makers
31 29
32/* key matrix size */ 30/* key matrix size */
@@ -45,53 +43,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
45/* number of backlight levels */ 43/* number of backlight levels */
46// #define BACKLIGHT_LEVELS 3 44// #define BACKLIGHT_LEVELS 3
47 45
48/* mouse config */
49#define MOUSEKEY_INTERVAL 20
50#define MOUSEKEY_DELAY 0
51#define MOUSEKEY_TIME_TO_MAX 60
52#define MOUSEKEY_MAX_SPEED 7
53#define MOUSEKEY_WHEEL_DELAY 0
54 46
55/* Set 0 if debouncing isn't needed */
56#define DEBOUNCING_DELAY 5
57
58/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
59#define LOCKING_SUPPORT_ENABLE
60/* Locking resynchronize hack */
61#define LOCKING_RESYNC_ENABLE
62
63/* key combination for command */
64#define IS_COMMAND() ( \
65 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
66)
67
68/* Enables This makes it easier for fast typists to use dual-function keys */
69#define PERMISSIVE_HOLD
70
71/* ws2812 RGB LED */
72#define RGB_DI_PIN D3
73#define RGBLIGHT_TIMER
74#define RGBLED_NUM 12 // Number of LEDs
75#define ws2812_PORTREG PORTD
76#define ws2812_DDRREG DDRD
77
78/*
79 * Feature disable options
80 * These options are also useful to firmware size reduction.
81 */
82
83/* disable debug print */
84// #define NO_DEBUG
85
86/* disable print */
87// #define NO_PRINT
88
89/* disable action features */
90//#define NO_ACTION_LAYER
91//#define NO_ACTION_TAPPING
92//#define NO_ACTION_ONESHOT
93//#define NO_ACTION_MACRO
94//#define NO_ACTION_FUNCTION
95
96
97#endif
diff --git a/keyboards/handwired/dactyl_manuform/4x5/rules.mk b/keyboards/handwired/dactyl_manuform/4x5/rules.mk
index 99ac2880d..14b6e1e4e 100644
--- a/keyboards/handwired/dactyl_manuform/4x5/rules.mk
+++ b/keyboards/handwired/dactyl_manuform/4x5/rules.mk
@@ -1,47 +1,3 @@
1# MCU name
2#MCU = at90usb1287
3MCU = atmega32u4
4
5# Processor frequency.
6# This will define a symbol, F_CPU, in all source code files equal to the
7# processor frequency in Hz. You can then use this symbol in your source code to
8# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
9# automatically to create a 32-bit value in your source code.
10#
11# This will be an integer division of F_USB below, as it is sourced by
12# F_USB after it has run through any CPU prescalers. Note that this value
13# does not *change* the processor frequency - it should merely be updated to
14# reflect the processor speed set externally so that the code can use accurate
15# software delays.
16F_CPU = 16000000
17
18#
19# LUFA specific
20#
21# Target architecture (see library "Board Types" documentation).
22ARCH = AVR8
23
24# Input clock frequency.
25# This will define a symbol, F_USB, in all source code files equal to the
26# input clock frequency (before any prescaling is performed) in Hz. This value may
27# differ from F_CPU if prescaling is used on the latter, and is required as the
28# raw input clock is fed directly to the PLL sections of the AVR for high speed
29# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
30# at the end, this will be done automatically to create a 32-bit value in your
31# source code.
32#
33# If no clock division is performed on the input clock inside the AVR (via the
34# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
35F_USB = $(F_CPU)
36
37# Bootloader
38# This definition is optional, and if your keyboard supports multiple bootloaders of
39# different sizes, comment this out, and the correct address will be loaded
40# automatically (+60). See bootloader.mk for all options.
41BOOTLOADER = caterina
42
43# Interrupt driven control endpoint task(+60)
44OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
45 1
46# Build Options 2# Build Options
47# change to "no" to disable the options, or define them in the Makefile in 3# change to "no" to disable the options, or define them in the Makefile in
@@ -59,10 +15,7 @@ AUDIO_ENABLE = no # Audio output on port C6
59UNICODE_ENABLE = no # Unicode 15UNICODE_ENABLE = no # Unicode
60BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 16BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
61RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. 17RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
62SUBPROJECT_rev1 = yes 18
63USE_I2C = yes
64# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 19# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
65SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 20SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
66 21
67SPLIT_KEYBOARD = yes
68
diff --git a/keyboards/handwired/dactyl_manuform/5x6/dactyl_manuform.c b/keyboards/handwired/dactyl_manuform/5x6/5x6.c
index 17caecb4f..68fceffd9 100644
--- a/keyboards/handwired/dactyl_manuform/5x6/dactyl_manuform.c
+++ b/keyboards/handwired/dactyl_manuform/5x6/5x6.c
@@ -1,4 +1,4 @@
1#include "dactyl_manuform.h" 1#include "5x6.h"
2 2
3 3
4#ifdef SSD1306OLED 4#ifdef SSD1306OLED
diff --git a/keyboards/handwired/dactyl_manuform/5x6/dactyl_manuform.h b/keyboards/handwired/dactyl_manuform/5x6/5x6.h
index 5c1a4339b..cb225a2cf 100644
--- a/keyboards/handwired/dactyl_manuform/5x6/dactyl_manuform.h
+++ b/keyboards/handwired/dactyl_manuform/5x6/5x6.h
@@ -1,5 +1,4 @@
1#ifndef REV2_H 1#pragma once
2#define REV2_H
3 2
4#include "dactyl_manuform.h" 3#include "dactyl_manuform.h"
5 4
@@ -44,4 +43,4 @@
44 { R50, R51, R52, R53, KC_NO, KC_NO }, \ 43 { R50, R51, R52, R53, KC_NO, KC_NO }, \
45 } 44 }
46 45
47#endif 46
diff --git a/keyboards/handwired/dactyl_manuform/5x6/config.h b/keyboards/handwired/dactyl_manuform/5x6/config.h
index 97495e935..06ac02dfc 100644
--- a/keyboards/handwired/dactyl_manuform/5x6/config.h
+++ b/keyboards/handwired/dactyl_manuform/5x6/config.h
@@ -16,18 +16,12 @@ You should have received a copy of the GNU General Public License
16along with this program. If not, see <http://www.gnu.org/licenses/>. 16along with this program. If not, see <http://www.gnu.org/licenses/>.
17*/ 17*/
18 18
19#ifndef CONFIG_H 19#pragma once
20#define CONFIG_H
21 20
22#include "config_common.h" 21#include "config_common.h"
23 22
24/* USB Device descriptor parameter */ 23
25#define VENDOR_ID 0xFEED 24#define PRODUCT Dactyl-Manuform (5x6)
26#define PRODUCT_ID 0x3060
27#define DEVICE_VER 0x0001
28#define MANUFACTURER tshort
29#define PRODUCT Dactyl-Manuform
30#define DESCRIPTION A split keyboard for the cheap makers
31 25
32/* key matrix size */ 26/* key matrix size */
33// Rows are doubled-up 27// Rows are doubled-up
@@ -45,53 +39,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
45/* number of backlight levels */ 39/* number of backlight levels */
46// #define BACKLIGHT_LEVELS 3 40// #define BACKLIGHT_LEVELS 3
47 41
48/* mouse config */
49#define MOUSEKEY_INTERVAL 20
50#define MOUSEKEY_DELAY 0
51#define MOUSEKEY_TIME_TO_MAX 60
52#define MOUSEKEY_MAX_SPEED 7
53#define MOUSEKEY_WHEEL_DELAY 0
54
55/* Set 0 if debouncing isn't needed */
56#define DEBOUNCING_DELAY 5
57
58/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
59#define LOCKING_SUPPORT_ENABLE
60/* Locking resynchronize hack */
61#define LOCKING_RESYNC_ENABLE
62
63/* key combination for command */
64#define IS_COMMAND() ( \
65 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
66)
67
68/* Enables This makes it easier for fast typists to use dual-function keys */
69#define PERMISSIVE_HOLD
70
71/* ws2812 RGB LED */
72#define RGB_DI_PIN D3
73#define RGBLIGHT_TIMER
74#define RGBLED_NUM 12 // Number of LEDs
75#define ws2812_PORTREG PORTD
76#define ws2812_DDRREG DDRD
77
78/*
79 * Feature disable options
80 * These options are also useful to firmware size reduction.
81 */
82
83/* disable debug print */
84// #define NO_DEBUG
85
86/* disable print */
87// #define NO_PRINT
88
89/* disable action features */
90//#define NO_ACTION_LAYER
91//#define NO_ACTION_TAPPING
92//#define NO_ACTION_ONESHOT
93//#define NO_ACTION_MACRO
94//#define NO_ACTION_FUNCTION
95
96
97#endif
diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/default/config.h b/keyboards/handwired/dactyl_manuform/5x6/keymaps/default/config.h
new file mode 100644
index 000000000..29ab59ad6
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/5x6/keymaps/default/config.h
@@ -0,0 +1,27 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18
19#pragma once
20
21
22#define USE_SERIAL
23
24#define MASTER_LEFT
25// #define MASTER_RIGHT
26//#define EE_HANDS
27// Rows are doubled-up
diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform/5x6/keymaps/default/keymap.c
new file mode 100644
index 000000000..d0bcbd4e6
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/5x6/keymaps/default/keymap.c
@@ -0,0 +1,71 @@
1#include QMK_KEYBOARD_H
2
3
4extern keymap_config_t keymap_config;
5
6// Each layer gets a name for readability, which is then used in the keymap matrix below.
7// The underscores don't mean anything - you can have a layer called STUFF or any other name.
8// Layer names don't all need to be of the same length, obviously, and you can also skip them
9// entirely and just use numbers.
10#define _QWERTY 0
11#define _LOWER 1
12#define _RAISE 2
13
14#define SFT_ESC SFT_T(KC_ESC)
15#define CTL_BSPC CTL_T(KC_BSPC)
16#define ALT_SPC ALT_T(KC_SPC)
17#define SFT_ENT SFT_T(KC_ENT)
18
19#define KC_ML KC_MS_LEFT
20#define KC_MR KC_MS_RIGHT
21#define KC_MU KC_MS_UP
22#define KC_MD KC_MS_DOWN
23#define KC_MB1 KC_MS_BTN1
24#define KC_MB2 KC_MS_BTN1
25#define RAISE MO(_RAISE)
26#define LOWER MO(_LOWER)
27
28#define _______ KC_TRNS
29
30
31
32const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
33
34
35
36 [_QWERTY] = LAYOUT_5x6(
37 KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,KC_BSPC,
38 KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_MINS,
39 KC_LSFT, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L ,KC_SCLN,KC_QUOT,
40 KC_LCTL, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_BSLASH,
41 KC_LBRC,KC_RBRC, KC_PLUS, KC_EQL,
42 RAISE,KC_SPC, KC_ENT, LOWER,
43 KC_TAB,KC_HOME, KC_END, KC_DEL,
44 KC_BSPC, KC_GRV, KC_LGUI, KC_LALT
45 ),
46
47 [_LOWER] = LAYOUT_5x6(
48
49 KC_TILD,KC_EXLM, KC_AT ,KC_HASH,KC_DLR ,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_DEL,
50 _______,_______,_______,_______,_______,KC_LBRC, KC_RBRC, KC_P7 , KC_P8 , KC_P9 ,_______,KC_PLUS,
51 _______,KC_HOME,KC_PGUP,KC_PGDN,KC_END ,KC_LPRN, KC_RPRN, KC_P4 , KC_P5 , KC_P6 ,KC_MINS,KC_PIPE,
52 _______,_______,_______,_______,_______,_______, _______, KC_P1 , KC_P2 , KC_P3 ,KC_EQL ,KC_UNDS,
53 _______,KC_PSCR, _______, KC_P0,
54 _______,_______, _______,_______,
55 _______,_______, _______,_______,
56 _______,_______, _______,_______
57),
58
59 [_RAISE] = LAYOUT_5x6(
60 KC_F12 , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 ,KC_F10 ,KC_F11 ,
61 _______,_______,_______,_______,_______,KC_LBRC, KC_RBRC,_______,KC_NLCK,KC_INS ,KC_SLCK,KC_MUTE,
62 _______,KC_LEFT,KC_UP ,KC_DOWN,KC_RGHT,KC_LPRN, KC_RPRN,KC_MPRV,KC_MPLY,KC_MNXT,_______,KC_VOLU,
63 _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,KC_VOLD,
64 _______,_______, KC_EQL ,_______,
65 _______,_______, _______,_______,
66 _______,_______, _______,_______,
67 _______,_______, _______,_______
68 ),
69
70 };
71
diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/impstyle/config.h b/keyboards/handwired/dactyl_manuform/5x6/keymaps/impstyle/config.h
index 1a7d1e065..d046806ea 100644
--- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/impstyle/config.h
+++ b/keyboards/handwired/dactyl_manuform/5x6/keymaps/impstyle/config.h
@@ -15,6 +15,7 @@ You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>. 15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/ 16*/
17 17
18#pragma once
18 19
19#define USE_SERIAL 20#define USE_SERIAL
20 21
@@ -22,7 +23,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
22// #define MASTER_RIGHT 23// #define MASTER_RIGHT
23//#define EE_HANDS 24//#define EE_HANDS
24// Rows are doubled-up 25// Rows are doubled-up
25#define MATRIX_ROWS 12
26#define MATRIX_COLS 6
27
28#include "../../config.h"
diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/impstyle/keymap.c b/keyboards/handwired/dactyl_manuform/5x6/keymaps/impstyle/keymap.c
index 7dd9f7c86..0282ccc7f 100644
--- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/impstyle/keymap.c
+++ b/keyboards/handwired/dactyl_manuform/5x6/keymaps/impstyle/keymap.c
@@ -1,6 +1,4 @@
1#include "dactyl_manuform.h" 1#include QMK_KEYBOARD_H
2#include "action_layer.h"
3#include "eeconfig.h"
4 2
5extern keymap_config_t keymap_config; 3extern keymap_config_t keymap_config;
6 4
@@ -33,18 +31,18 @@ extern keymap_config_t keymap_config;
33const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 31const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
34 32
35 33
36 [_QWERTY] = LAYOUT_5x6( 34 [_QWERTY] = LAYOUT_5x6(
37 KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,KC_BSPC, 35 KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,KC_BSPC,
38 KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_MINS, 36 KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_MINS,
39 KC_LSFT, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L ,KC_SCLN,KC_QUOT, 37 KC_LSFT, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L ,KC_SCLN,KC_QUOT,
40 KC_LCTL, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_BSLASH, 38 KC_LCTL, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_BSLASH,
41 KC_LBRC,KC_RBRC, KC_PLUS, KC_EQL, 39 KC_LBRC,KC_RBRC, KC_PLUS, KC_EQL,
42 RAISE,KC_SPC, KC_ENT, LOWER, 40 RAISE,KC_SPC, KC_ENT, LOWER,
43 KC_TAB,KC_HOME, KC_END, KC_DEL, 41 KC_TAB,KC_HOME, KC_END, KC_DEL,
44 KC_BSPC, KC_GRV, KC_LGUI, KC_LALT 42 KC_BSPC, KC_GRV, KC_LGUI, KC_LALT
45 ), 43 ),
46 44
47 [_LOWER] = LAYOUT_5x6( 45 [_LOWER] = LAYOUT_5x6(
48 KC_TILD,KC_EXLM, KC_AT ,KC_HASH,KC_DLR ,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_DEL, 46 KC_TILD,KC_EXLM, KC_AT ,KC_HASH,KC_DLR ,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_DEL,
49 _______,_______,_______,_______,_______,KC_LBRC, KC_RBRC, KC_P7 , KC_P8 , KC_P9 ,_______,KC_PLUS, 47 _______,_______,_______,_______,_______,KC_LBRC, KC_RBRC, KC_P7 , KC_P8 , KC_P9 ,_______,KC_PLUS,
50 _______,KC_HOME,KC_PGUP,KC_PGDN,KC_END ,KC_LPRN, KC_RPRN, KC_P4 , KC_P5 , KC_P6 ,KC_MINS,KC_PIPE, 48 _______,KC_HOME,KC_PGUP,KC_PGDN,KC_END ,KC_LPRN, KC_RPRN, KC_P4 , KC_P5 , KC_P6 ,KC_MINS,KC_PIPE,
diff --git a/keyboards/handwired/dactyl_manuform/5x6/rules.mk b/keyboards/handwired/dactyl_manuform/5x6/rules.mk
index 6b1201781..14b6e1e4e 100644
--- a/keyboards/handwired/dactyl_manuform/5x6/rules.mk
+++ b/keyboards/handwired/dactyl_manuform/5x6/rules.mk
@@ -1,47 +1,3 @@
1# MCU name
2#MCU = at90usb1287
3MCU = atmega32u4
4
5# Processor frequency.
6# This will define a symbol, F_CPU, in all source code files equal to the
7# processor frequency in Hz. You can then use this symbol in your source code to
8# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
9# automatically to create a 32-bit value in your source code.
10#
11# This will be an integer division of F_USB below, as it is sourced by
12# F_USB after it has run through any CPU prescalers. Note that this value
13# does not *change* the processor frequency - it should merely be updated to
14# reflect the processor speed set externally so that the code can use accurate
15# software delays.
16F_CPU = 16000000
17
18#
19# LUFA specific
20#
21# Target architecture (see library "Board Types" documentation).
22ARCH = AVR8
23
24# Input clock frequency.
25# This will define a symbol, F_USB, in all source code files equal to the
26# input clock frequency (before any prescaling is performed) in Hz. This value may
27# differ from F_CPU if prescaling is used on the latter, and is required as the
28# raw input clock is fed directly to the PLL sections of the AVR for high speed
29# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
30# at the end, this will be done automatically to create a 32-bit value in your
31# source code.
32#
33# If no clock division is performed on the input clock inside the AVR (via the
34# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
35F_USB = $(F_CPU)
36
37# Bootloader
38# This definition is optional, and if your keyboard supports multiple bootloaders of
39# different sizes, comment this out, and the correct address will be loaded
40# automatically (+60). See bootloader.mk for all options.
41BOOTLOADER = caterina
42
43# Interrupt driven control endpoint task(+60)
44OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
45 1
46# Build Options 2# Build Options
47# change to "no" to disable the options, or define them in the Makefile in 3# change to "no" to disable the options, or define them in the Makefile in
@@ -59,9 +15,7 @@ AUDIO_ENABLE = no # Audio output on port C6
59UNICODE_ENABLE = no # Unicode 15UNICODE_ENABLE = no # Unicode
60BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 16BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
61RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. 17RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
62SUBPROJECT_rev1 = yes 18
63USE_I2C = yes
64# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 19# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
65SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 20SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
66 21
67SPLIT_KEYBOARD = yes \ No newline at end of file
diff --git a/keyboards/handwired/dactyl_manuform/config.h b/keyboards/handwired/dactyl_manuform/config.h
new file mode 100644
index 000000000..19cd356d8
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/config.h
@@ -0,0 +1,78 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com>
3Copyright 2015 Jack Humbert
4
5This program is free software: you can redistribute it and/or modify
6it under the terms of the GNU General Public License as published by
7the Free Software Foundation, either version 2 of the License, or
8(at your option) any later version.
9
10This program is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License
16along with this program. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19#pragma once
20
21#include "config_common.h"
22
23/* USB Device descriptor parameter */
24#define VENDOR_ID 0xFEED
25#define PRODUCT_ID 0x3060
26#define DEVICE_VER 0x0001
27#define MANUFACTURER tshort
28// defined in subfolder
29#define DESCRIPTION A split keyboard for the cheap makers
30
31/* mouse config */
32#define MOUSEKEY_INTERVAL 20
33#define MOUSEKEY_DELAY 0
34#define MOUSEKEY_TIME_TO_MAX 60
35#define MOUSEKEY_MAX_SPEED 7
36#define MOUSEKEY_WHEEL_DELAY 0
37
38/* Set 0 if debouncing isn't needed */
39#define DEBOUNCING_DELAY 5
40
41/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
42#define LOCKING_SUPPORT_ENABLE
43/* Locking resynchronize hack */
44#define LOCKING_RESYNC_ENABLE
45
46/* key combination for command */
47#define IS_COMMAND() ( \
48 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
49)
50
51/* Enables This makes it easier for fast typists to use dual-function keys */
52#define PERMISSIVE_HOLD
53
54/* ws2812 RGB LED */
55#define RGB_DI_PIN D3
56#define RGBLIGHT_TIMER
57#define RGBLED_NUM 12 // Number of LEDs
58
59
60/*
61 * Feature disable options
62 * These options are also useful to firmware size reduction.
63 */
64
65/* disable debug print */
66// #define NO_DEBUG
67
68/* disable print */
69// #define NO_PRINT
70
71/* disable action features */
72//#define NO_ACTION_LAYER
73//#define NO_ACTION_TAPPING
74//#define NO_ACTION_ONESHOT
75//#define NO_ACTION_MACRO
76//#define NO_ACTION_FUNCTION
77
78
diff --git a/keyboards/handwired/dactyl_manuform/dactyl_manuform.c b/keyboards/handwired/dactyl_manuform/dactyl_manuform.c
new file mode 100644
index 000000000..043bbd567
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/dactyl_manuform.c
@@ -0,0 +1 @@
#include "dactyl_manuform.h"
diff --git a/keyboards/handwired/dactyl_manuform/dactyl_manuform.h b/keyboards/handwired/dactyl_manuform/dactyl_manuform.h
new file mode 100644
index 000000000..6c23e9143
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/dactyl_manuform.h
@@ -0,0 +1,22 @@
1#pragma once
2
3
4#ifdef KEYBOARD_handwired_dactyl_manuform_5x6
5 #include "5x6.h"
6#elif KEYBOARD_handwired_dactyl_manuform_4x5
7 #include "4x5.h"
8#endif
9
10//void promicro_bootloader_jmp(bool program);
11#include "quantum.h"
12
13
14#ifdef USE_I2C
15#include <stddef.h>
16#ifdef __AVR__
17 #include <avr/io.h>
18 #include <avr/interrupt.h>
19#endif
20#endif
21
22
diff --git a/keyboards/handwired/dactyl_manuform/readme.md b/keyboards/handwired/dactyl_manuform/readme.md
new file mode 100644
index 000000000..eb76a7150
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/readme.md
@@ -0,0 +1,142 @@
1Dactyl Manuform 5x6
2======
3the [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.
4![Imgur](https://i.imgur.com/7y0Vbyd.jpg)
5
6
7## First Time Setup
8
9Download 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:
10
11```
12$ make handwired/dactyl_manuform/5x6:YOUR_KEYMAP_NAME
13```
14
15If everything worked correctly you will see a file:
16
17```
18dactyl_manuform_5x6_YOUR_KEYMAP_NAME.hex
19```
20
21For more information on customizing keymaps, take a look at the primary documentation for [Customizing Your Keymap](/docs/faq_keymap.md) in the main readme.md.
22
23## Keymaps
24Currently there are only two keymaps: Qwerty and Dvorak, feel free to make changes and contribute your keymap.
25### Impstyle
26
27
28
29Required Hardware
30-----------------
31
32Apart from diodes and key switches for the keyboard matrix in each half, you
33will need:
34
35* 2 Arduino Pro Micros. You can find these on AliExpress for ≈3.50USD each.
36* 2 TRRS sockets and 1 TRRS cable, or 2 TRS sockets and 1 TRS cable
37
38Alternatively, you can use any sort of cable and socket that has at least 3
39wires. If you want to use I2C to communicate between halves, you will need a
40cable with at least 4 wires and 2x 4.7kΩ pull-up resistors
41
42Optional Hardware
43-----------------
44A speaker can be hooked-up to either side to the `5` (`C6`) pin and `GND`, and turned on via `AUDIO_ENABLE`.
45
46Wiring
47------
48
49The 3 wires of the TRS/TRRS cable need to connect GND, VCC, and digital pin 3 (i.e.
50PD0 on the ATmega32u4) between the two Pro Micros.
51
52Next, wire your key matrix to any of the remaining 17 IO pins of the pro micro
53and modify the `matrix.c` accordingly.
54
55The wiring for serial:
56
57![serial wiring](https://i.imgur.com/C3D1GAQ.png)
58
59The wiring for i2c:
60
61![i2c wiring](https://i.imgur.com/Hbzhc6E.png)
62
63The pull-up resistors may be placed on either half. It is also possible
64to use 4 resistors and have the pull-ups in both halves, but this is
65unnecessary in simple use cases.
66
67You can change your configuration between serial and i2c by modifying your `config.h` file.
68
69Notes on Software Configuration
70-------------------------------
71
72the keymaps in here are for the 4x5 layout of the keyboard only.
73
74Flashing
75-------
76From the top level `qmk_firmware` directory run `make KEYBOARD:KEYMAP:avrdude` for automatic serial port resolution and flashing.
77Example: `make lets_split/rev2:default:avrdude`
78
79
80Choosing which board to plug the USB cable into (choosing Master)
81--------
82Because the two boards are identical, the firmware has logic to differentiate the left and right board.
83
84It 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.
85
86The EEPROM approach requires additional setup (flashing the eeprom) but allows you to swap the usb cable to either side.
87
88The 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.
89
90### Setting the left hand as master
91If 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.
92
93### Setting the right hand as master
94If you always plug the usb cable into the right board, add an extra flag to your `config.h`
95```
96 #define MASTER_RIGHT
97```
98
99### Setting EE_hands to use either hands as master
100If you define `EE_HANDS` in your `config.h`, you will need to set the
101EEPROM for the left and right halves.
102
103The EEPROM is used to store whether the
104half is left handed or right handed. This makes it so that the same firmware
105file will run on both hands instead of having to flash left and right handed
106versions of the firmware to each half. To flash the EEPROM file for the left
107half run:
108```
109avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:eeprom-lefthand.eep
110// or the equivalent in dfu-programmer
111
112```
113and similarly for right half
114```
115avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:eeprom-righhand.eep
116// or the equivalent in dfu-programmer
117```
118
119NOTE: replace `$(COM_PORT)` with the port of your device (e.g. `/dev/ttyACM0`)
120
121After you have flashed the EEPROM, you then need to set `EE_HANDS` in your config.h, rebuild the hex files and reflash.
122
123Note that you need to program both halves, but you have the option of using
124different keymaps for each half. You could program the left half with a QWERTY
125layout and the right half with a Colemak layout using bootmagic's default layout option.
126Then if you connect the left half to a computer by USB the keyboard will use QWERTY and Colemak when the
127right half is connected.
128
129
130Notes on Using Pro Micro 3.3V
131-----------------------------
132
133Do update the `F_CPU` parameter in `rules.mk` to `8000000` which reflects
134the frequency on the 3.3V board.
135
136Also, if the slave board is producing weird characters in certain columns,
137update the following line in `matrix.c` to the following:
138
139```
140// _delay_us(30); // without this wait read unstable value.
141_delay_us(300); // without this wait read unstable value.
142```
diff --git a/keyboards/handwired/dactyl_manuform/rules.mk b/keyboards/handwired/dactyl_manuform/rules.mk
new file mode 100644
index 000000000..adb058c8a
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/rules.mk
@@ -0,0 +1,66 @@
1# MCU name
2#MCU = at90usb1287
3MCU = atmega32u4
4
5# Processor frequency.
6# This will define a symbol, F_CPU, in all source code files equal to the
7# processor frequency in Hz. You can then use this symbol in your source code to
8# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
9# automatically to create a 32-bit value in your source code.
10#
11# This will be an integer division of F_USB below, as it is sourced by
12# F_USB after it has run through any CPU prescalers. Note that this value
13# does not *change* the processor frequency - it should merely be updated to
14# reflect the processor speed set externally so that the code can use accurate
15# software delays.
16F_CPU = 16000000
17
18#
19# LUFA specific
20#
21# Target architecture (see library "Board Types" documentation).
22ARCH = AVR8
23
24# Input clock frequency.
25# This will define a symbol, F_USB, in all source code files equal to the
26# input clock frequency (before any prescaling is performed) in Hz. This value may
27# differ from F_CPU if prescaling is used on the latter, and is required as the
28# raw input clock is fed directly to the PLL sections of the AVR for high speed
29# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
30# at the end, this will be done automatically to create a 32-bit value in your
31# source code.
32#
33# If no clock division is performed on the input clock inside the AVR (via the
34# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
35F_USB = $(F_CPU)
36
37# Bootloader
38# This definition is optional, and if your keyboard supports multiple bootloaders of
39# different sizes, comment this out, and the correct address will be loaded
40# automatically (+60). See bootloader.mk for all options.
41BOOTLOADER = caterina
42
43# Interrupt driven control endpoint task(+60)
44OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
45
46# Build Options
47# change to "no" to disable the options, or define them in the Makefile in
48# the appropriate keymap folder that will get included automatically
49#
50BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
51MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
52EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
53CONSOLE_ENABLE = no # Console for debug(+400)
54COMMAND_ENABLE = yes # Commands for debug and configuration
55NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
56BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
57MIDI_ENABLE = no # MIDI controls
58AUDIO_ENABLE = no # Audio output on port C6
59UNICODE_ENABLE = no # Unicode
60BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
61RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
62
63# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
64SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
65
66SPLIT_KEYBOARD = yes