~ruther/qmk_firmware

febbf66be148c154d9f54027a274ae8a1542712f — Samuel Fischer 3 years ago 3076d3c
[Keyboard] Add croxsplit44 handwired keyboard (#14227)

* Add files via upload

* Delete keyboards/croxsplit44 directory

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Apply suggestions from code review

* Apply suggestions from code review
A keyboards/handwired/croxsplit44/config.h => keyboards/handwired/croxsplit44/config.h +53 -0
@@ 0,0 1,53 @@
/*
Copyright 2021 Samux6146

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 VENDOR_ID       0xB62C
#define PRODUCT_ID      0x6146
#define DEVICE_VER      0x0001
#define MANUFACTURER    Samux6146
#define PRODUCT         splitcustom44

#define MATRIX_ROWS 4
#define MATRIX_COLS 12
#define MATRIX_ROW_PINS { D4, D5, D6, D7 }
#define MATRIX_COL_PINS { B6, B5, B4, D2, C0, C1, F5, F4, F3, F2, F1, F0 }

#define DIODE_DIRECTION COL2ROW

#define RGB_DI_PIN C4
#ifdef RGB_DI_PIN
    #define RGBLED_NUM 42
    #define RGBLIGHT_HUE_STEP 8
    #define RGBLIGHT_SAT_STEP 8
    #define RGBLIGHT_VAL_STEP 8
    #define RGBLIGHT_SLEEP 
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
#define RGBLIGHT_EFFECT_SNAKE
#define RGBLIGHT_EFFECT_KNIGHT
#define RGBLIGHT_EFFECT_CHRISTMAS
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
#define RGBLIGHT_EFFECT_RGB_TEST
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_TWINKLE

#endif
\ No newline at end of file

A keyboards/handwired/croxsplit44/croxsplit44.c => keyboards/handwired/croxsplit44/croxsplit44.c +17 -0
@@ 0,0 1,17 @@
/* Copyright 2021 Samux6146
 *
 * 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 "croxsplit44.h"

A keyboards/handwired/croxsplit44/croxsplit44.h => keyboards/handwired/croxsplit44/croxsplit44.h +32 -0
@@ 0,0 1,32 @@
/* Copyright 2021 Samux6146
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#pragma once

#include "quantum.h"

#define LAYOUT( \
	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \
	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \
	K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \
	            K302, K303, K304, K305, K306, K307, K308, K309  \
) \
{ \
	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011 }, \
	{ K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111 }, \
	{ K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211 }, \
	{ KC_NO, KC_NO, K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  KC_NO, KC_NO }  \
}

A keyboards/handwired/croxsplit44/info.json => keyboards/handwired/croxsplit44/info.json +55 -0
@@ 0,0 1,55 @@
{
    "keyboard_name": "croxsplit44",
    "url": "",
    "maintainer": "Samux6146",
    "layouts": {
        "LAYOUT": {
            "layout": [
                {"label":"K00 (D4,B6)", "x":0.5, "y":1.375},
                {"label":"K01 (D4,B5)", "x":1.5, "y":1.375},
                {"label":"K02 (D4,B4)", "x":2.5, "y":1.125},
                {"label":"K03 (D4,D2)", "x":3.5, "y":1},
                {"label":"K04 (D4,C0)", "x":4.5, "y":1.125},
                {"label":"K05 (D4,C1)", "x":5.5, "y":1.25},
                {"label":"K06 (D4,F5)", "x":13, "y":1.25},
                {"label":"K07 (D4,F4)", "x":14, "y":1.125},
                {"label":"K08 (D4,F3)", "x":15, "y":1},
                {"label":"K09 (D4,F2)", "x":16, "y":1.125},
                {"label":"K0A (D4,F1)", "x":17, "y":1.375},
                {"label":"K0B (D4,F0)", "x":18, "y":1.375},
                {"label":"K10 (D5,B6)", "x":0.5, "y":2.375},
                {"label":"K11 (D5,B5)", "x":1.5, "y":2.375},
                {"label":"K12 (D5,B4)", "x":2.5, "y":2.125},
                {"label":"K13 (D5,D2)", "x":3.5, "y":2},
                {"label":"K14 (D5,C0)", "x":4.5, "y":2.125},
                {"label":"K15 (D5,C1)", "x":5.5, "y":2.25},
                {"label":"K16 (D5,F5)", "x":13, "y":2.25},
                {"label":"K17 (D5,F4)", "x":14, "y":2.125},
                {"label":"K18 (D5,F3)", "x":15, "y":2},
                {"label":"K19 (D5,F2)", "x":16, "y":2.125},
                {"label":"K1A (D5,F1)", "x":17, "y":2.375},
                {"label":"K1B (D5,F0)", "x":18, "y":2.375},
                {"label":"K20 (D6,B6)", "x":0.5, "y":3.375},
                {"label":"K21 (D6,B5)", "x":1.5, "y":3.375},
                {"label":"K22 (D6,B4)", "x":2.5, "y":3.125},
                {"label":"K23 (D6,D2)", "x":3.5, "y":3},
                {"label":"K24 (D6,C0)", "x":4.5, "y":3.125},
                {"label":"K25 (D6,C1)", "x":5.5, "y":3.25},
                {"label":"K26 (D6,F5)", "x":13, "y":3.25},
                {"label":"K27 (D6,F4)", "x":14, "y":3.125},
                {"label":"K28 (D6,F3)", "x":15, "y":3},
                {"label":"K29 (D6,F2)", "x":16, "y":3.125},
                {"label":"K2A (D6,F1)", "x":17, "y":3.375},
                {"label":"K2B (D6,F0)", "x":18, "y":3.375},
                {"label":"K32 (D7,B4)", "x":2.5, "y":4.125},
                {"label":"K33 (D7,D2)", "x":3.5, "y":4},
                {"label":"K34 (D7,C0)", "x":4.5, "y":4.5},
                {"label":"K35 (D7,C1)", "x":5.5, "y":4.75},
                {"label":"K36 (D7,F5)", "x":12.75, "y":4.75},
                {"label":"K37 (D7,F4)", "x":13.8, "y":4.375},
                {"label":"K38 (D7,F3)", "x":15, "y":4},
                {"label":"K39 (D7,F2)", "x":16, "y":4.125}
            ]
        }
    }
}

A keyboards/handwired/croxsplit44/keymaps/default/keymap.c => keyboards/handwired/croxsplit44/keymaps/default/keymap.c +31 -0
@@ 0,0 1,31 @@
/* Copyright 2021 Samux6146
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
#include QMK_KEYBOARD_H

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

[0] = LAYOUT(
		KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, 
		KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, 
		KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LGUI, 
		KC_LCTL, KC_LALT, LT(1, KC_NO), KC_SPC, KC_SPC, LT(1, KC_NO), KC_TRNS, KC_TRNS),

[1] = LAYOUT(
		KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, 
		KC_TAB, RGB_MOD, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_UP, KC_RGHT, KC_ENT, 
		KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_TRNS, KC_TRNS, 
		KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS),
};
\ No newline at end of file

A keyboards/handwired/croxsplit44/keymaps/via/keymap.c => keyboards/handwired/croxsplit44/keymaps/via/keymap.c +43 -0
@@ 0,0 1,43 @@
/* Copyright 2021 Samux6146
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
#include QMK_KEYBOARD_H

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

[0] = LAYOUT(
		KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, 
		KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, 
		KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LGUI, 
		KC_LCTL, KC_LALT, LT(1, KC_NO), KC_SPC, KC_SPC, LT(1, KC_NO), KC_TRNS, KC_TRNS),

[1] = LAYOUT(
		KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, 
		KC_TAB, RGB_MOD, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_UP, KC_RGHT, KC_ENT, 
		KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_TRNS, KC_TRNS, 
		KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS),

[2] = LAYOUT(
		KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
		KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
		KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
		KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),

[3] = LAYOUT(
		KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
		KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
		KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
		KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) 
};

A keyboards/handwired/croxsplit44/keymaps/via/rules.mk => keyboards/handwired/croxsplit44/keymaps/via/rules.mk +2 -0
@@ 0,0 1,2 @@
VIA_ENABLE = yes
LTO_ENABLE = yes
\ No newline at end of file

A keyboards/handwired/croxsplit44/readme.md => keyboards/handwired/croxsplit44/readme.md +23 -0
@@ 0,0 1,23 @@
# croxsplit44

![davanti](https://user-images.githubusercontent.com/41386727/131268038-801cb316-7bb1-486d-8432-be5412ddc31b.jpg)

# A 3d printed 44 key handwired split keyboard
Thanks to ak666666 for the base case layout : https://www.thingiverse.com/thing:4146704
*
* Keyboard Maintainer: https://github.com/Samux6146
* Hardware Supported: handwired, teensy ++ 2.0

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

    make handwired/croxsplit44:default

See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

## 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 `RESET` if it is available

A keyboards/handwired/croxsplit44/rules.mk => keyboards/handwired/croxsplit44/rules.mk +21 -0
@@ 0,0 1,21 @@
# MCU name
MCU = at90usb1286

# Bootloader selection
BOOTLOADER = atmel-dfu

# Build Options
#   change yes to no to disable
#
BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes       # Mouse keys
EXTRAKEY_ENABLE = yes       # Audio control and System control
CONSOLE_ENABLE = no         # Console for debug
COMMAND_ENABLE = no         # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no            # USB Nkey Rollover
BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
AUDIO_ENABLE = no           # Audio output
\ No newline at end of file