diff options
| -rw-r--r-- | keyboards/handwired/alcor_dactyl/config.h | 33 | ||||
| -rw-r--r-- | keyboards/handwired/alcor_dactyl/info.json | 130 | ||||
| -rw-r--r-- | keyboards/handwired/alcor_dactyl/keymaps/colemak_dh/keymap.c | 100 | ||||
| -rw-r--r-- | keyboards/handwired/alcor_dactyl/keymaps/default/keymap.c | 43 | ||||
| -rw-r--r-- | keyboards/handwired/alcor_dactyl/readme.md | 28 | ||||
| -rw-r--r-- | keyboards/handwired/alcor_dactyl/rules.mk | 2 | 
6 files changed, 336 insertions, 0 deletions
| diff --git a/keyboards/handwired/alcor_dactyl/config.h b/keyboards/handwired/alcor_dactyl/config.h new file mode 100644 index 0000000000..f8ffe4d6a3 --- /dev/null +++ b/keyboards/handwired/alcor_dactyl/config.h @@ -0,0 +1,33 @@ +// Copyright 2022 Ethan (@rocketstrong) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +/* + * Feature disable options + *  These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_TX_PIN GP10 +#define SERIAL_USART_RX_PIN GP9 +#define RGB_DI_PIN GP16 +#define DRIVER_LED_TOTAL 2 +#define RGB_MATRIX_SPLIT { 1, 1 } +#define RGBLED_NUM 1 +#define EE_HANDS diff --git a/keyboards/handwired/alcor_dactyl/info.json b/keyboards/handwired/alcor_dactyl/info.json new file mode 100644 index 0000000000..7bdde8550c --- /dev/null +++ b/keyboards/handwired/alcor_dactyl/info.json @@ -0,0 +1,130 @@ +{ +    "manufacturer": "Ethan", +    "keyboard_name": "alcor_dactyl", +    "maintainer": "rocketstrong", +    "bootloader": "rp2040", +    "processor": "RP2040", +    "url": "", +    "usb": { +        "device_version": "1.0.0", +        "pid": "0x0000", +        "vid": "0xFEED" +    }, +    "features": { +        "command": false, +        "console": false, +        "extrakey": true, +        "mousekey": true, +        "nkro": true, +        "rgb_matrix": true +    }, +    "split": { +        "enabled": true +    }, +    "diode_direction": "COL2ROW", +    "matrix_pins": { +        "cols": ["GP29", "GP28", "GP27", "GP26", "GP15", "GP14", "GP13"], +        "rows": ["GP5", "GP4", "GP3", "GP2", "GP1", "GP0"] +    }, +    "rgb_matrix": { +        "driver": "WS2812", +        "layout": [ +            {"x":0, "y":0.375}, +            {"x":16.5, "y":0.38} +        ] +    }, +    "layouts": { +        "LAYOUT":{ +            "layout":[ +                {"matrix":[0,0], "x":0, "y":0.375, "w":1.5}, +                {"matrix":[0,1], "x":1.5, "y":0.38}, +                {"matrix":[0,2], "x":2.5, "y":0.125}, +                {"matrix":[0,3], "x":3.5, "y":0.25}, +                {"matrix":[0,4], "x":4.5, "y":0.25}, +                {"matrix":[0,5], "x":5.5, "y":0.25}, +                {"matrix":[0,6], "x":6.5, "y":0.25}, + +                {"matrix":[6,6], "x":10.5, "y":0.25}, +                {"matrix":[6,5], "x":11.5, "y":0.25}, +                {"matrix":[6,4], "x":12.5, "y":0.25}, +                {"matrix":[6,3], "x":13.5, "y":0.25}, +                {"matrix":[6,2], "x":14.5, "y":0.13}, +                {"matrix":[6,1], "x":15.5, "y":0.38}, +                {"matrix":[6,0], "x":16.5, "y":0.38, "w":1.5}, + +                {"matrix":[1,0], "x":0, "y":1.375, "w":1.5}, +                {"matrix":[1,1], "x":1.5, "y":1.375}, +                {"matrix":[1,2], "x":2.5, "y":1.125}, +                {"matrix":[1,3], "x":3.5, "y":1.25}, +                {"matrix":[1,4], "x":4.5, "y":1.25}, +                {"matrix":[1,5], "x":5.5, "y":1.25}, +                {"matrix":[1,6], "x":6.5, "y":1.25}, + +                {"matrix":[7,6], "x":10.5, "y":1.25}, +                {"matrix":[7,5], "x":11.5, "y":1.25}, +                {"matrix":[7,4], "x":12.5, "y":1.25}, +                {"matrix":[7,3], "x":13.5, "y":1.25}, +                {"matrix":[7,2], "x":14.5, "y":1.13}, +                {"matrix":[7,1], "x":15.5, "y":1.38}, +                {"matrix":[7,0], "x":16.5, "y":1.38, "w":1.5}, + +                {"matrix":[2,0], "x":0, "y":2.375, "w":1.5}, +                {"matrix":[2,1], "x":1.5, "y":2.375}, +                {"matrix":[2,2], "x":2.5, "y":2.125}, +                {"matrix":[2,3], "x":3.5, "y":2.25}, +                {"matrix":[2,4], "x":4.5, "y":2.25}, +                {"matrix":[2,5], "x":5.5, "y":2.25}, +                {"matrix":[2,6], "x":6.5, "y":2.25}, + +                {"matrix":[8,6], "x":10.5, "y":2.25}, +                {"matrix":[8,5], "x":11.5, "y":2.25}, +                {"matrix":[8,4], "x":12.5, "y":2.25}, +                {"matrix":[8,3], "x":13.5, "y":2.25}, +                {"matrix":[8,2], "x":14.5, "y":2.13}, +                {"matrix":[8,1], "x":15.5, "y":2.38}, +                {"matrix":[8,0], "x":16.5, "y":2.38, "w":1.5}, + +                {"matrix":[3,0], "x":0, "y":3.375, "w":1.5}, +                {"matrix":[3,1], "x":1.5, "y":3.375}, +                {"matrix":[3,2], "x":2.5, "y":3.125}, +                {"matrix":[3,3], "x":3.5, "y":3.25}, +                {"matrix":[3,4], "x":4.5, "y":3.25}, +                {"matrix":[3,5], "x":5.5, "y":3.25}, + +                {"matrix":[9,5], "x":11.5, "y":3.25}, +                {"matrix":[9,4], "x":12.5, "y":3.25}, +                {"matrix":[9,3], "x":13.5, "y":3.25}, +                {"matrix":[9,2], "x":14.5, "y":3.13}, +                {"matrix":[9,1], "x":15.5, "y":3.38}, +                {"matrix":[9,0], "x":16.5, "y":3.38, "w":1.5}, + +                {"matrix":[4,0], "x":0.5, "y":4.375}, +                {"matrix":[4,1], "x":1.5, "y":4.375}, +                {"matrix":[4,2], "x":2.5, "y":4.125}, +                {"matrix":[4,3], "x":3.5, "y":4.25}, + +                {"matrix":[10,3], "x":13.5, "y":4.25}, +                {"matrix":[10,2], "x":14.5, "y":4.13}, +                {"matrix":[10,1], "x":15.5, "y":4.38}, +                {"matrix":[10,0], "x":16.5, "y":4.38}, + +                {"matrix":[4,4], "x":5, "y":4.5, "h":2}, +                {"matrix":[4,5], "x":6.25, "y":4.5, "h":1.5}, +                {"matrix":[10,5], "x":10.75, "y":4.5, "h":1.5}, +                {"matrix":[10,4], "x":12, "y":4.5, "h":2}, + +                {"matrix":[5,4], "x":6.25, "y":6.25}, +                {"matrix":[5,5], "x":7.5, "y":6.25}, + +                {"matrix":[11,5], "x":9.5, "y":6.25}, +                {"matrix":[11,4], "x":10.75, "y":6.25}, + +                {"matrix":[5,2], "x":6.25, "y":7.25}, +                {"matrix":[5,3], "x":7.25, "y":7.25}, + +                {"matrix":[11,3], "x":9.75, "y":7.25}, +                {"matrix":[11,2], "x":10.75, "y":7.25} +            ] +        } +    } +} diff --git a/keyboards/handwired/alcor_dactyl/keymaps/colemak_dh/keymap.c b/keyboards/handwired/alcor_dactyl/keymaps/colemak_dh/keymap.c new file mode 100644 index 0000000000..8d41611402 --- /dev/null +++ b/keyboards/handwired/alcor_dactyl/keymaps/colemak_dh/keymap.c @@ -0,0 +1,100 @@ +// Copyright 2022 Ethan (@rocketstrong) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +/* + *          ┌──┐┌──┐┌──┐┌──┐┌──┐            ┌──┐┌──┐┌──┐┌──┐┌──┐ + *┌────┐┌──┐│  ││  ││  ││  ││  │            │  ││  ││  ││  ││  │┌──┐┌────┐ + *│    ││  │└──┘└──┘└──┘└──┘└──┘            └──┘└──┘└──┘└──┘└──┘│  ││    │ + *└────┘└──┘┌──┐┌──┐┌──┐┌──┐┌──┐            ┌──┐┌──┐┌──┐┌──┐┌──┐└──┘└────┘ + *┌────┐┌──┐│  ││  ││  ││  ││  │            │  ││  ││  ││  ││  │┌──┐┌────┐ + *│    ││  │└──┘└──┘└──┘└──┘└──┘            └──┘└──┘└──┘└──┘└──┘│  ││    │ + *└────┘└──┘┌──┐┌──┐┌──┐┌──┐┌──┐            ┌──┐┌──┐┌──┐┌──┐┌──┐└──┘└────┘ + *┌────┐┌──┐│  ││  ││  ││  ││  │            │  ││  ││  ││  ││  │┌──┐┌────┐ + *│    ││  │└──┘└──┘└──┘└──┘└──┘            └──┘└──┘└──┘└──┘└──┘│  ││    │ + *└────┘└──┘┌──┐┌──┐┌──┐┌──┐                    ┌──┐┌──┐┌──┐┌──┐└──┘└────┘ + *┌────┐┌──┐│  ││  ││  ││  │                    │  ││  ││  ││  │┌──┐┌────┐ + *│    ││  │└──┘└──┘└──┘└──┘                    └──┘└──┘└──┘└──┘│  ││    │ + *└────┘└──┘┌──┐┌──┐                                    ┌──┐┌──┐└──┘└────┘ + *  ┌──┐┌──┐│  ││  │  ┌──┐ ┌──┐              ┌──┐ ┌──┐  │  ││  │┌──┐┌──┐ + *  │  ││  │└──┘└──┘  │  │ │  │              │  │ │  │  └──┘└──┘│  ││  │ + *  └──┘└──┘          │  │ │  │              │  │ │  │          └──┘└──┘ + *                    │  │ └──┘              └──┘ │  │ + *                    └──┘ ┌──┐ ┌──┐    ┌──┐ ┌──┐ └──┘ + *                         │  │ │  │    │  │ │  │ + *                         └──┘ └──┘    └──┘ └──┘ + *                         ┌──┐┌──┐      ┌──┐┌──┐ + *                         │  ││  │      │  ││  │ + *                         └──┘└──┘      └──┘└──┘ + */ + +enum Colemaklayers { +  _ARSTG, +  _NUMPAD, +  _SYMBOLS +}; + +enum custom_keycodes { +    AD_DDS = SAFE_RANGE, +    AD_SCOPE +}; + +#define TT_NUM TT(_NUMPAD) +#define TT_SYM TT(_SYMBOLS) + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +    switch (keycode) { +        case AD_DDS: +            if (!record->event.pressed) { +                // when keycode AD_DDS is pressed +                SEND_STRING("../"); +            } else { +                // when keycode AD_DDS is released +            } +            break; +        case AD_SCOPE: +            if (!record->event.pressed) { +                // when keycode AD_DDS is pressed +                SEND_STRING("::"); +            } else { +                // when keycode AD_DDS is released +            } +            break; +    } +    return true; +} + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +    [_ARSTG] = LAYOUT( +        KC_GRV  , KC_1    , KC_2    , KC_3    , KC_4    , KC_5    , KC_MINS  ,      KC_EQL  , KC_6    , KC_7    , KC_8    , KC_9    , KC_0    , KC_ESC  , +        KC_TAB  , KC_Q    , KC_W    , KC_F    , KC_P    , KC_B    , KC_LBRC ,       KC_RBRC , KC_J    , KC_L    , KC_U    , KC_Y    , KC_SCLN , KC_BSLS , +        KC_ESC  , KC_A    , KC_R    , KC_S    , KC_T    , KC_G    , KC_PSCR ,       KC_PAUS , KC_M    , KC_N    , KC_E    , KC_I    , KC_O    , KC_QUOT , +        KC_LSFT , KC_Z    , KC_X    , KC_C    , KC_D    , KC_V    ,                           KC_K    , KC_H    , KC_COMM , KC_DOT  , KC_SLSH , KC_RSFT , +        KC_LCTL , KC_LGUI , KC_LALT , KC_DEL  ,                                                                   KC_LEFT , KC_UP   , KC_DOWN , KC_RIGHT, +                                                        KC_SPC  , KC_BSPC ,           KC_TAB  , KC_ENT  , +                                                          TT_NUM  , KC_LSFT ,       KC_RSFT , TT_SYM  , +                                                          KC_LCTL , KC_LALT ,       KC_RALT , KC_RCTL +    ), +    [_NUMPAD] = LAYOUT( +        KC_NO   , 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_NO   , +        KC_TRNS , KC_PGUP , KC_HOME , KC_UP   , KC_END  , KC_NO   , KC_NO   ,       KC_NO   , KC_NUM  , KC_P7   , KC_P8   , KC_P9   , KC_PMNS , KC_NO   , +        KC_TRNS , KC_PGDN , KC_LEFT , KC_DOWN , KC_RIGHT, KC_NO   , KC_TRNS ,       KC_TRNS , KC_PSLS , KC_P4   , KC_P5   , KC_P6   , KC_PPLS , KC_NO   , +        KC_TRNS , KC_NO   , KC_NO   , KC_NO   , KC_NO   , KC_NO   ,                           KC_PAST , KC_P1   , KC_P2   , KC_P3   , KC_PEQL , KC_NO   , +        KC_TRNS , KC_NO   , KC_NO   , KC_NO   ,                                                                   KC_P0   , KC_PDOT , KC_PCMM , KC_NO   , +                                                        KC_TRNS , KC_TRNS ,           KC_TRNS , KC_PENT , +                                                          KC_TRNS , KC_TRNS ,       KC_TRNS , KC_TRNS , +                                                          KC_TRNS , QK_BOOT ,       KC_TRNS , KC_TRNS +    ), +    [_SYMBOLS] = LAYOUT( +        KC_NO   , 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_NO   , +        KC_TRNS , KC_QUOT , KC_LT   , KC_GT   , KC_DQT  , KC_DOT  , KC_NO   ,       KC_NO   , KC_AMPR , AD_SCOPE, KC_LBRC , KC_RBRC , KC_PERC , KC_NO   , +        KC_TRNS , KC_EXLM , KC_MINS , KC_PLUS , KC_EQL  , KC_HASH , KC_NO   ,       KC_NO   , KC_PIPE , KC_COLN , KC_LPRN , KC_RPRN , KC_QUES , KC_NO   , +        KC_TRNS , KC_CIRC , KC_SLSH , KC_ASTR , KC_BSLS , AD_DDS  ,                           KC_TILD , KC_DLR  , KC_LCBR , KC_RCBR , KC_AT   , KC_NO   , +        KC_TRNS , KC_NO   , KC_NO   , KC_NO   ,                                                                   KC_NO   , KC_NO   , KC_NO   , KC_NO   , +                                                        KC_TRNS , KC_TRNS ,           KC_TRNS , KC_PENT , +                                                          KC_TRNS , KC_TRNS ,       KC_TRNS , KC_TRNS , +                                                          KC_TRNS , KC_TRNS ,       QK_BOOT , KC_TRNS +    ) +}; diff --git a/keyboards/handwired/alcor_dactyl/keymaps/default/keymap.c b/keyboards/handwired/alcor_dactyl/keymaps/default/keymap.c new file mode 100644 index 0000000000..55ddb29888 --- /dev/null +++ b/keyboards/handwired/alcor_dactyl/keymaps/default/keymap.c @@ -0,0 +1,43 @@ +// Copyright 2022 Ethan (@rocketstrong) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +/* + *          ┌──┐┌──┐┌──┐┌──┐┌──┐            ┌──┐┌──┐┌──┐┌──┐┌──┐ + *┌────┐┌──┐│  ││  ││  ││  ││  │            │  ││  ││  ││  ││  │┌──┐┌────┐ + *│    ││  │└──┘└──┘└──┘└──┘└──┘            └──┘└──┘└──┘└──┘└──┘│  ││    │ + *└────┘└──┘┌──┐┌──┐┌──┐┌──┐┌──┐            ┌──┐┌──┐┌──┐┌──┐┌──┐└──┘└────┘ + *┌────┐┌──┐│  ││  ││  ││  ││  │            │  ││  ││  ││  ││  │┌──┐┌────┐ + *│    ││  │└──┘└──┘└──┘└──┘└──┘            └──┘└──┘└──┘└──┘└──┘│  ││    │ + *└────┘└──┘┌──┐┌──┐┌──┐┌──┐┌──┐            ┌──┐┌──┐┌──┐┌──┐┌──┐└──┘└────┘ + *┌────┐┌──┐│  ││  ││  ││  ││  │            │  ││  ││  ││  ││  │┌──┐┌────┐ + *│    ││  │└──┘└──┘└──┘└──┘└──┘            └──┘└──┘└──┘└──┘└──┘│  ││    │ + *└────┘└──┘┌──┐┌──┐┌──┐┌──┐                    ┌──┐┌──┐┌──┐┌──┐└──┘└────┘ + *┌────┐┌──┐│  ││  ││  ││  │                    │  ││  ││  ││  │┌──┐┌────┐ + *│    ││  │└──┘└──┘└──┘└──┘                    └──┘└──┘└──┘└──┘│  ││    │ + *└────┘└──┘┌──┐┌──┐                                    ┌──┐┌──┐└──┘└────┘ + *  ┌──┐┌──┐│  ││  │  ┌──┐ ┌──┐              ┌──┐ ┌──┐  │  ││  │┌──┐┌──┐ + *  │  ││  │└──┘└──┘  │  │ │  │              │  │ │  │  └──┘└──┘│  ││  │ + *  └──┘└──┘          │  │ │  │              │  │ │  │          └──┘└──┘ + *                    │  │ └──┘              └──┘ │  │ + *                    └──┘ ┌──┐ ┌──┐    ┌──┐ ┌──┐ └──┘ + *                         │  │ │  │    │  │ │  │ + *                         └──┘ └──┘    └──┘ └──┘ + *                         ┌──┐┌──┐      ┌──┐┌──┐ + *                         │  ││  │      │  ││  │ + *                         └──┘└──┘      └──┘└──┘ + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +    [0] = LAYOUT( +        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,    KC_NO, KC_NO, +                                            KC_NO, KC_NO,    KC_NO, KC_NO +    ) +}; diff --git a/keyboards/handwired/alcor_dactyl/readme.md b/keyboards/handwired/alcor_dactyl/readme.md new file mode 100644 index 0000000000..3c18faf247 --- /dev/null +++ b/keyboards/handwired/alcor_dactyl/readme.md @@ -0,0 +1,28 @@ +# alcor_dactyl + + + +This is a handwired dactyl manufor utalising an RP2040-zero + +* Keyboard Maintainer: [Ethan](https://github.com/rocketstrong) +* Hardware Supported: Waveshare RP2040-Zero +* Hardware Availability: https://www.waveshare.com/wiki/RP2040-Zero +* 3D Print File Source: https://dactyl.mbugert.de/manuform + +Make example for this keyboard (after setting up your build environment): + +    make handwired/alcor_dactyl:default + +Flashing example for this keyboard: + +    make handwired/alcor_dactyl:default:flash + +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 diff --git a/keyboards/handwired/alcor_dactyl/rules.mk b/keyboards/handwired/alcor_dactyl/rules.mk new file mode 100644 index 0000000000..8fb51ec82d --- /dev/null +++ b/keyboards/handwired/alcor_dactyl/rules.mk @@ -0,0 +1,2 @@ +SERIAL_DRIVER = vendor +WS2812_DRIVER = vendor | 
