Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add handwired/dactyl_cc keyboard #20517

Merged
merged 28 commits into from
Jul 3, 2023
Merged
Show file tree
Hide file tree
Changes from 14 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
fcc5f0d
Added `dactyl_cc` keyboard
dunk2k Apr 20, 2023
48ca0d8
Update `readme.md`
dunk2k Apr 20, 2023
a53c272
added new line EOF
dunk2k Apr 20, 2023
c1cb81e
Update readme.md
dunk2k Apr 20, 2023
b091198
moved to data driven layout
dunk2k Apr 21, 2023
bf15fd8
Update keyboards/handwired/dactyl_cc/readme.md
dunk2k Apr 27, 2023
c39b784
Update keyboards/handwired/dactyl_cc/readme.md
dunk2k Apr 27, 2023
676c4be
Update keyboards/handwired/dactyl_cc/readme.md
dunk2k Apr 27, 2023
5c058f9
Update readme.md
dunk2k May 6, 2023
0808c0e
Update readme.md
dunk2k May 7, 2023
f24cb89
Update readme.md
dunk2k May 7, 2023
3f7b38a
Update readme.md
dunk2k May 7, 2023
b706967
Update keymap.c
dunk2k May 7, 2023
d4105ed
Update keymap.c
dunk2k May 7, 2023
e81520b
Update keyboards/handwired/dactyl_cc/readme.md
dunk2k May 9, 2023
60fd233
some `config.h` contents moved to keymap
dunk2k May 9, 2023
98ada8d
LAYOUT name reverted
dunk2k May 9, 2023
5276fd5
Update data/mappings/keyboard_aliases.hjson
dunk2k May 10, 2023
418087a
Update keyboards/handwired/dactyl_cc/readme.md
dunk2k May 10, 2023
3e408d3
Update keyboards/handwired/dactyl_cc/readme.md
dunk2k May 10, 2023
ea51d8f
Update keyboards/handwired/dactyl_cc/readme.md
dunk2k May 10, 2023
054d489
Update readme.md
dunk2k May 10, 2023
737365b
Update keyboards/handwired/dactyl_cc/info.json
dunk2k May 14, 2023
921ba75
update info.json
dunk2k May 20, 2023
8ed1786
update info.json
dunk2k May 31, 2023
e289a1b
keyboard directory tidied
dunk2k Jun 2, 2023
2b62c2d
Update keymap.c
dunk2k Jun 2, 2023
91ec242
Update readme.md
dunk2k Jun 4, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions data/mappings/keyboard_aliases.hjson
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,9 @@
"gmmk/pro/iso": {
"target": "gmmk/pro/rev1/iso"
},
"handwired/ergo_s-1":{
"target": "handwired/dactyl_cc"
}
dunk2k marked this conversation as resolved.
Show resolved Hide resolved
"handwired/ferris": {
"target": "ferris/0_1"
},
Expand Down
49 changes: 49 additions & 0 deletions keyboards/handwired/dactyl_cc/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
/*
Copyright 2023 QMK

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

/* mouse config */
#define MOUSEKEY_DELAY 0
// Lowering MOUSEKEY_INTERVAL raises the cursor speed significantly, you may want to lower MOUSEKEY_MAX_SPEED (default: 10)
#define MOUSEKEY_INTERVAL 20
#define MOUSEKEY_MAX_SPEED 7
#define MOUSEKEY_WHEEL_DELAY 0

/* layer config */
#define TAPPING_TOGGLE 1
dunk2k marked this conversation as resolved.
Show resolved Hide resolved

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE

/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

/* Enables This makes it easier for fast typists to use dual-function keys */
#define PERMISSIVE_HOLD

// Feature disable options
// These options are also useful to firmware size reduction.

/* disable print */
// #define NO_DEBUG
// #define NO_PRINT

/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
105 changes: 105 additions & 0 deletions keyboards/handwired/dactyl_cc/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
{
"usb": {
"vid": "0xFEED",
"pid": "0x3060",
"device_version": "0.0.1"
},
"features": {
"bootmagic": true,
"mousekey": true,
"extrakey": true,
"console": false,
"command": true,
"nkro": false
},
"keyboard_name": "Dactyl CC",
"manufacturer": "mjohns",
"url": "https://github.com/mjohns/dactyl-cc",
"maintainer": "qmk",
"matrix_pins": {
"cols": ["D4", "C6", "D7", "E6", "B4", "B5"],
"rows": ["F6", "F7", "B1", "B3", "B2", "B6"]
},
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
"soft_serial_pin": "D0"
},
"processor": "atmega32u4",
"bootloader": "caterina",
"development_board": "promicro",
dunk2k marked this conversation as resolved.
Show resolved Hide resolved
"layouts": {
"LAYOUT_dactylk": {
"layout": [
{"matrix": [0, 0], "label":"L00", "x":0, "y":0},
{"matrix": [0, 1], "label":"L01", "x":1, "y":0},
{"matrix": [0, 2], "label":"L02", "x":2, "y":0},
{"matrix": [0, 3], "label":"L03", "x":3, "y":0},
{"matrix": [0, 4], "label":"L04", "x":4, "y":0},
{"matrix": [0, 5], "label":"L05", "x":5, "y":0},
{"matrix": [6, 0], "label":"R00", "x":11, "y":0},
{"matrix": [6, 1], "label":"R01", "x":12, "y":0},
{"matrix": [6, 2], "label":"R02", "x":13, "y":0},
{"matrix": [6, 3], "label":"R03", "x":14, "y":0},
{"matrix": [6, 4], "label":"R04", "x":15, "y":0},
{"matrix": [6, 5], "label":"R05", "x":16, "y":0},
{"matrix": [1, 0], "label":"L10", "x":0, "y":1},
{"matrix": [1, 1], "label":"L11", "x":1, "y":1},
{"matrix": [1, 2], "label":"L12", "x":2, "y":1},
{"matrix": [1, 3], "label":"L13", "x":3, "y":1},
{"matrix": [1, 4], "label":"L14", "x":4, "y":1},
{"matrix": [1, 5], "label":"L15", "x":5, "y":1},
{"matrix": [7, 0], "label":"R10", "x":11, "y":1},
{"matrix": [7, 1], "label":"R11", "x":12, "y":1},
{"matrix": [7, 2], "label":"R12", "x":13, "y":1},
{"matrix": [7, 3], "label":"R13", "x":14, "y":1},
{"matrix": [7, 4], "label":"R14", "x":15, "y":1},
{"matrix": [7, 5], "label":"R15", "x":16, "y":1},
{"matrix": [2, 0], "label":"L20", "x":0, "y":2},
{"matrix": [2, 1], "label":"L21", "x":1, "y":2},
{"matrix": [2, 2], "label":"L22", "x":2, "y":2},
{"matrix": [2, 3], "label":"L23", "x":3, "y":2},
{"matrix": [2, 4], "label":"L24", "x":4, "y":2},
{"matrix": [2, 5], "label":"L25", "x":5, "y":2},
{"matrix": [8, 0], "label":"R20", "x":11, "y":2},
{"matrix": [8, 1], "label":"R21", "x":12, "y":2},
{"matrix": [8, 2], "label":"R22", "x":13, "y":2},
{"matrix": [8, 3], "label":"R23", "x":14, "y":2},
{"matrix": [8, 4], "label":"R24", "x":15, "y":2},
{"matrix": [8, 5], "label":"R25", "x":16, "y":2},
{"matrix": [3, 0], "label":"L30", "x":0, "y":3},
{"matrix": [3, 1], "label":"L31", "x":1, "y":3},
{"matrix": [3, 2], "label":"L32", "x":2, "y":3},
{"matrix": [3, 3], "label":"L33", "x":3, "y":3},
{"matrix": [3, 4], "label":"L34", "x":4, "y":3},
{"matrix": [3, 5], "label":"L35", "x":5, "y":3},
{"matrix": [9, 0], "label":"R30", "x":11, "y":3},
{"matrix": [9, 1], "label":"R31", "x":12, "y":3},
{"matrix": [9, 2], "label":"R32", "x":13, "y":3},
{"matrix": [9, 3], "label":"R33", "x":14, "y":3},
{"matrix": [9, 4], "label":"R34", "x":15, "y":3},
{"matrix": [9, 5], "label":"R35", "x":16, "y":3},
{"matrix": [4, 0], "label":"L40", "x":1, "y":4},
{"matrix": [4, 1], "label":"L41", "x":2, "y":4},
{"matrix": [4, 2], "label":"L42", "x":3, "y":4},
{"matrix": [4, 3], "label":"L43", "x":4, "y":4},
{"matrix": [10, 2], "label":"R42", "x":12, "y":4},
{"matrix": [10, 3], "label":"R43", "x":13, "y":4},
{"matrix": [10, 4], "label":"R44", "x":14, "y":4},
{"matrix": [10, 5], "label":"R45", "x":15, "y":4},
{"matrix": [4, 4], "label":"L44", "x":6, "y":5},
{"matrix": [4, 5], "label":"L45", "x":7, "y":5},
{"matrix": [10, 0], "label":"R40", "x":9, "y":5},
{"matrix": [10, 1], "label":"R41", "x":10, "y":5},
{"matrix": [5, 5], "label":"L55", "x":7, "y":6},
{"matrix": [11, 0], "label":"R50", "x":9, "y":6},
{"matrix": [5, 2], "label":"L52", "x":5, "y":7, "h":2},
{"matrix": [5, 3], "label":"L52", "x":6, "y":7, "h":2},
{"matrix": [5, 4], "label":"L54", "x":7, "y":7},
{"matrix": [11, 1], "label":"R51", "x":9, "y":7},
{"matrix": [11, 2], "label":"R52", "x":10, "y":7, "h":2},
{"matrix": [11, 3], "label":"R53", "x":11, "y":7, "h":2}
]
}
}
}
51 changes: 51 additions & 0 deletions keyboards/handwired/dactyl_cc/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
/*
Copyright 2023 QMK

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

enum layers {
BASE,
NAV
};

#define CTL_ESC LCTL_T(KC_ESC)
#define CTL_CAP LCTL_T(KC_CAPS)
#define ALT_BSP LALT_T(KC_BSPC)
#define LT_SCLN LT(NAV, KC_SCLN)

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_dactylk(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_HOME,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
CTL_CAP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT_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_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
TT(NAV), KC_DEL, KC_PGUP, KC_RCTL,
KC_LGUI, KC_PGDN,
KC_BSPC, CTL_ESC, KC_LALT, KC_RALT, KC_ENT, KC_SPC
),
[NAV] = LAYOUT_dactylk(
QK_BOOT, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, KC_BRIU, KC_P7, KC_P8, KC_P9, KC_NO, QK_BOOT,
_______, KC_VOLU, KC_WBAK, KC_MS_U, KC_WFWD, KC_WH_U, KC_BRID, KC_P4, KC_P5, KC_P6, KC_PMNS, _______,
_______, KC_VOLD, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, KC_PPLS, KC_P1, KC_P2, KC_P3, KC_PSLS, _______,
KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_NO, KC_PAST, KC_PCMM, KC_P0, KC_PDOT, KC_PENT, _______,
KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
_______, _______, KC_HOME, _______,
_______, KC_END,
KC_BTN1, KC_BTN2, _______, ALT_BSP, _______, _______
)
};
78 changes: 78 additions & 0 deletions keyboards/handwired/dactyl_cc/keymaps/via/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
/*
Copyright 2023 QMK

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

enum layers {
_BASE,
_NAV,
_SYS,
_BLANK
};

#define LT_1BSP LT(1, KC_BSPC)
#define LT_2SPC LT(2, KC_SPC)
#define MH_DEL MEH_T(KC_DEL)
#define HY_ENT HYPR_T(KC_ENT)
#define CA_PGDN LCA_T(KC_PGDN)
#define CAG_END LCAG_T(KC_END)
#define AG_PGUP LAG_T(KC_PGUP)
#define CG_HOME MT(MOD_LGUI | MOD_LCTL, KC_HOME)

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT_dactylk(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV,
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_CAP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT_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_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
KC_LCTL, KC_LALT, KC_RGUI, KC_RCTL,
CG_HOME, AG_PGUP,
LT_1BSP, MH_DEL, CAG_END, CA_PGDN, HY_ENT, LT_2SPC
),
[_NAV] = LAYOUT_dactylk(
_______, _______, _______, _______, _______, _______, _______, KC_NUM, KC_PEQL, KC_PSLS, KC_PAST, _______,
_______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______,
_______, QK_BOOT, _______, _______, KC_SLEP, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______,
_______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______,
_______, _______, _______, _______, _______, _______, KC_PDOT, KC_PENT,
_______, _______, _______, KC_P0,
_______, _______,
_______, _______, _______, _______, _______, MO(3)
),
[_SYS] = LAYOUT_dactylk(
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
_______, KC_VOLU, KC_WBAK, KC_MS_U, KC_WFWD, KC_WH_U, _______, KC_NO, KC_NO, KC_NO, KC_NO, _______,
_______, KC_MUTE, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_PSCR, KC_PAUS, KC_INS, KC_SCRL, _______,
_______, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, _______, KC_NO, KC_NO, KC_NO, KC_NO, _______,
_______, _______, _______, _______, _______, _______, KC_UP, KC_RGHT,
_______, _______, _______, _______,
_______, _______,
KC_BTN1, KC_BTN2, _______, _______, _______, _______

),
[_BLANK] = LAYOUT_dactylk(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
)
};
1 change: 1 addition & 0 deletions keyboards/handwired/dactyl_cc/keymaps/via/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
VIA_ENABLE = yes
49 changes: 49 additions & 0 deletions keyboards/handwired/dactyl_cc/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Dactyl-CC / Ergo S-1

![DactylCC](https://i.imgur.com/CUbPLZCh.jpeg)
*Dactyl-CC*

![ErgoS-1](https://i.imgur.com/JTLCw3N.jpg)
dunk2k marked this conversation as resolved.
Show resolved Hide resolved
*Ergo S-1*

Modelled on the *Kinesis Advantage* (KA) 1|2, though missing it's function and program row, board(s) retain the finger and thumb key placements of the KA but opt to psychically split the handed key-wells instead.

Electronically both the Dactyl-CC and Ergo S-1 are indentical, though psychically the Ergo S-1 has larger casing designed to be used as a palm rest.

* Hardware Supported: Pro micro controller or clones of

## Dactyl-CC
dunk2k marked this conversation as resolved.
Show resolved Hide resolved
* Keyboard Maintainer: [Michael Johns](https://github.com/mjohns)
* Hardware Availability: [Dactyl CC GitHub](https://github.com/mjohns/dactyl-cc)

Make example for this keyboard (after setting up your build environment):

make handwired/dactyl_cc:default

Flashing example for this keyboard:

make handwired/dactyl_cc:default:flash

## Ergo S-1
* Keyboard Maintainer: [Andrew Wells](https://github.com/wizarddata)
* Hardware Availability: [Ergo S-1 GitHub](https://github.com/wizarddata/Ergo-S-1)

*`handwired/ergo_s-1` is an alias of `handwired/dactyl_cc`*

Make example for this keyboard (after setting up your build environment):

make handwired/ergo_s-1:default

Flashing example for this keyboard:

make handwired/ergo_s-1:default:flash
dunk2k marked this conversation as resolved.
Show resolved Hide resolved

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).

## Bootloader

Enter the bootloader in 3 ways:

* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available