aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQMK Bot <hello@qmk.fm>2021-02-09 17:11:54 +0000
committerQMK Bot <hello@qmk.fm>2021-02-09 17:11:54 +0000
commit738bd263c18de8f78cc98311b40c79a84ae3be33 (patch)
tree4b014a0573e0c9161487b31fbc1984e8a0441c2e
parent9aed856d788a65eb6e58823d743679b4c102d695 (diff)
parent7d5902752ee8088b04763bce2d950ab61be730f2 (diff)
downloadqmk_firmware-738bd263c18de8f78cc98311b40c79a84ae3be33.tar.gz
qmk_firmware-738bd263c18de8f78cc98311b40c79a84ae3be33.zip
Merge remote-tracking branch 'origin/master' into develop
-rw-r--r--keyboards/splitty/config.h66
-rw-r--r--keyboards/splitty/info.json81
-rw-r--r--keyboards/splitty/keymaps/default/keymap.c54
-rw-r--r--keyboards/splitty/keymaps/default/readme.md9
-rw-r--r--keyboards/splitty/readme.md45
-rw-r--r--keyboards/splitty/rev1/readme.md3
-rw-r--r--keyboards/splitty/rev1/rev1.c17
-rw-r--r--keyboards/splitty/rev1/rev1.h40
-rw-r--r--keyboards/splitty/rev1/rules.mk0
-rw-r--r--keyboards/splitty/rules.mk26
-rw-r--r--keyboards/splitty/splitty.c36
-rw-r--r--keyboards/splitty/splitty.h23
12 files changed, 400 insertions, 0 deletions
diff --git a/keyboards/splitty/config.h b/keyboards/splitty/config.h
new file mode 100644
index 000000000..3f0a8b9b2
--- /dev/null
+++ b/keyboards/splitty/config.h
@@ -0,0 +1,66 @@
1/*
2Copyright 2018 Nicolas Schodet
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#pragma once
19
20#include "config_common.h"
21
22/* USB Device descriptor parameter */
23#define VENDOR_ID 0x1D50
24#define PRODUCT_ID 0x6052
25#define DEVICE_VER 0x0001
26#define MANUFACTURER Nicolas Schodet
27#define PRODUCT Splitty
28
29/* key matrix size */
30#define MATRIX_ROWS 10
31#define MATRIX_COLS 7
32
33/* Keyboard Matrix Assignments */
34#define MATRIX_ROW_PINS \
35 { F0, F1, D4, D5, D6 }
36#define MATRIX_COL_PINS \
37 { B0, B1, B2, B3, B4, B5, B6 }
38#define DIODE_DIRECTION COL2ROW
39
40/* Split Keyboard specific options. */
41#define USE_I2C
42#define EE_HANDS
43#define SPLIT_USB_DETECT
44
45/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
46#define DEBOUNCE 5
47
48/*
49 * Feature disable options
50 * These options are also useful to firmware size reduction.
51 */
52
53/* disable debug print */
54//#define NO_DEBUG
55
56/* disable print */
57//#define NO_PRINT
58
59/* disable action features */
60//#define NO_ACTION_LAYER
61//#define NO_ACTION_TAPPING
62//#define NO_ACTION_ONESHOT
63
64/* disable these deprecated features by default */
65#define NO_ACTION_MACRO
66#define NO_ACTION_FUNCTION
diff --git a/keyboards/splitty/info.json b/keyboards/splitty/info.json
new file mode 100644
index 000000000..2b87f2f9f
--- /dev/null
+++ b/keyboards/splitty/info.json
@@ -0,0 +1,81 @@
1{
2 "keyboard_name": "Splitty",
3 "url": "https://git.ni.fr.eu.org/splitty.git/about/",
4 "maintainer": "schodet",
5 "width": 14,
6 "height": 5,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [
10 {"label": "L00", "x": 0, "y": 0.6667},
11 {"label": "L01", "x": 1, "y": 0.6667},
12 {"label": "L02", "x": 2, "y": 0.2667},
13 {"label": "L03", "x": 3, "y": 0},
14 {"label": "L04", "x": 4, "y": 0.2667},
15 {"label": "L05", "x": 5, "y": 0},
16 {"label": "L06", "x": 6, "y": 0},
17 {"label": "R06", "x": 10, "y": 0},
18 {"label": "R05", "x": 11, "y": 0},
19 {"label": "R04", "x": 12, "y": 0.2667},
20 {"label": "R03", "x": 13, "y": 0},
21 {"label": "R02", "x": 14, "y": 0.2667},
22 {"label": "R01", "x": 15, "y": 0.6667},
23 {"label": "R00", "x": 16, "y": 0.6667},
24
25 {"label": "L08", "x": 0, "y": 1.6667},
26 {"label": "L09", "x": 1, "y": 1.6667},
27 {"label": "L10", "x": 2, "y": 1.2667},
28 {"label": "L11", "x": 3, "y": 1},
29 {"label": "L12", "x": 4, "y": 1.2667},
30 {"label": "L13", "x": 5, "y": 1},
31 {"label": "L14", "x": 6, "y": 1, "h": 1.5},
32 {"label": "R14", "x": 10, "y": 1, "h": 1.5},
33 {"label": "R13", "x": 11, "y": 1},
34 {"label": "R12", "x": 12, "y": 1.2667},
35 {"label": "R11", "x": 13, "y": 1},
36 {"label": "R10", "x": 14, "y": 1.2667},
37 {"label": "R09", "x": 15, "y": 1.6667},
38 {"label": "R08", "x": 16, "y": 1.6667},
39
40 {"label": "L16", "x": 0, "y": 2.6667},
41 {"label": "L17", "x": 1, "y": 2.6667},
42 {"label": "L18", "x": 2, "y": 2.2667},
43 {"label": "L19", "x": 3, "y": 2},
44 {"label": "L20", "x": 4, "y": 2.2667},
45 {"label": "L21", "x": 5, "y": 2},
46 {"label": "R21", "x": 11, "y": 2},
47 {"label": "R20", "x": 12, "y": 2.2667},
48 {"label": "R19", "x": 13, "y": 2},
49 {"label": "R18", "x": 14, "y": 2.2667},
50 {"label": "R17", "x": 15, "y": 2.6667},
51 {"label": "R16", "x": 16, "y": 2.6667},
52
53 {"label": "L24", "x": 0, "y": 3.6667},
54 {"label": "L25", "x": 1, "y": 3.6667},
55 {"label": "L26", "x": 2, "y": 3.2667},
56 {"label": "L27", "x": 3, "y": 3},
57 {"label": "L28", "x": 4, "y": 3.2667},
58 {"label": "L29", "x": 5, "y": 3},
59 {"label": "L30", "x": 6, "y": 2.5, "h": 1.5},
60 {"label": "R30", "x": 10, "y": 2.5, "h": 1.5},
61 {"label": "R29", "x": 11, "y": 3},
62 {"label": "R28", "x": 12, "y": 3.2667},
63 {"label": "R27", "x": 13, "y": 3},
64 {"label": "R26", "x": 14, "y": 3.2667},
65 {"label": "R25", "x": 15, "y": 3.6667},
66 {"label": "R24", "x": 16, "y": 3.6667},
67
68 {"label": "L34", "x": 2, "y": 4.2667},
69 {"label": "L35", "x": 3, "y": 4},
70 {"label": "L36", "x": 4, "y": 4.2667},
71 {"label": "L37", "x": 5, "y": 4},
72 {"label": "L38", "x": 6, "y": 4},
73 {"label": "R38", "x": 10, "y": 4},
74 {"label": "R37", "x": 11, "y": 4},
75 {"label": "R36", "x": 12, "y": 4.2667},
76 {"label": "R35", "x": 13, "y": 4},
77 {"label": "R34", "x": 14, "y": 4.2667}
78 ]
79 }
80 }
81}
diff --git a/keyboards/splitty/keymaps/default/keymap.c b/keyboards/splitty/keymaps/default/keymap.c
new file mode 100644
index 000000000..e6075339b
--- /dev/null
+++ b/keyboards/splitty/keymaps/default/keymap.c
@@ -0,0 +1,54 @@
1/* Copyright 2018 Nicolas Schodet
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18/* Defines names for use in layer keycodes and the keymap */
19enum layer_names { _BASE, _NAV };
20
21#define NAV_SPC LT(_NAV, KC_SPC)
22#define CTL_BSP MT(MOD_LCTL, KC_BSPC)
23#define KC_GTAB LGUI(KC_TAB)
24
25// clang-format off
26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
27 [_BASE] = LAYOUT(
28 //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------.
29 KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 ,KC_GRV , KC_EQL , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,KC_MINS,
30 //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
31 KC_RBRC, KC_Q , KC_W , KC_E , KC_R , KC_T ,KC_APP , KC_DEL , KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_LBRC,
32 //|-------+-------+-------+-------+-------+-------| | | |-------+-------+-------+-------+-------+-------|
33 KC_TAB , KC_A , KC_S , KC_D , KC_F , KC_G ,/*-----| |------*/ KC_H , KC_J , KC_K , KC_L ,KC_SCLN,KC_QUOT,
34 //|-------+-------+-------+-------+-------+-------| | | |-------+-------+-------+-------+-------+-------|
35 KC_NUBS, KC_Z , KC_X , KC_C , KC_V , KC_B ,KC_GTAB, KC_ENT , KC_N , KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_BSLS,
36 //`-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------'
37 KC_LGUI,KC_LALT,KC_ESC ,CTL_BSP,KC_LSFT, KC_RSFT,NAV_SPC,KC_RCTL,KC_RALT,KC_RGUI
38 // `-------+-------+-------+-------+-------' `-------+-------+-------+-------+-------'
39 ),
40 [_NAV] = LAYOUT(
41 //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------.
42 _______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, RESET ,
43 //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
44 _______,_______, KC_7 , KC_8 , KC_9 ,_______,_______, _______,KC_DEL ,KC_PGUP, KC_UP ,KC_PGDN,_______,_______,
45 //|-------+-------+-------+-------+-------+-------| | | |-------+-------+-------+-------+-------+-------|
46 KC_CAPS,_______, KC_4 , KC_5 , KC_6 ,_______,/*-----| |------*/KC_BSPC,KC_LEFT,KC_DOWN,KC_RGHT,KC_ENT ,_______,
47 //|-------+-------+-------+-------+-------+-------| | | |-------+-------+-------+-------+-------+-------|
48 _______,_______, KC_1 , KC_2 , KC_3 ,_______,_______, _______,C(KC_W),KC_HOME,_______,KC_END ,KC_INS ,_______,
49 //`-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------'
50 KC_APP, KC_0 ,KC_DOT ,_______,_______, _______,_______,_______,_______,_______
51 // `-------+-------+-------+-------+-------' `-------+-------+-------+-------+-------'
52 ),
53};
54// clang-format on
diff --git a/keyboards/splitty/keymaps/default/readme.md b/keyboards/splitty/keymaps/default/readme.md
new file mode 100644
index 000000000..3bd33bb40
--- /dev/null
+++ b/keyboards/splitty/keymaps/default/readme.md
@@ -0,0 +1,9 @@
1# The default keymap for Splitty
2
3Simple default keymap.
4
5Hold the space key to access the navigation layer. Hold the backspace key for
6left control.
7
8There is a Ctrl-W shortcut which is usefull to erase previous word and for
9window management in vim.
diff --git a/keyboards/splitty/readme.md b/keyboards/splitty/readme.md
new file mode 100644
index 000000000..1dec34c66
--- /dev/null
+++ b/keyboards/splitty/readme.md
@@ -0,0 +1,45 @@
1# Splitty
2
3![Splitty](http://ni.fr.eu.org/~nico/qmk/splitty/splitty_for_scale.jpg)
4
5![Bottom view](http://ni.fr.eu.org/~nico/qmk/splitty/bottom_view.jpg)
6
7![Side view](http://ni.fr.eu.org/~nico/qmk/splitty/stack_view.jpg)
8
9![PCB](http://ni.fr.eu.org/~nico/qmk/splitty/splitty.png)
10
11This is a split ergonomic keyboard initially based on the Ergodox layout
12without the thumb cluster. It uses 32 keys per sides with Cherry MX
13compatibles switches, thirty 1u and two vertical 1.5u caps.
14
15The controller is integrated in order to make the keyboard as slim as possible.
16
17It connects to the computer using a micro-B USB. Both sides are connected
18together also using micro-B USB. Any connection mistake should not break
19anything and the keyboard supports hot plugging.
20
21* Keyboard Maintainer: [Nicolas Schodet](https://github.com/schodet)
22* Hardware Supported: Splitty
23* Hardware Availability: [Splitty](https://git.ni.fr.eu.org/splitty.git/about/)
24
25Make example for this keyboard (after setting up your build environment):
26
27 make splitty:default
28
29Flashing example for this keyboard:
30
31 make splitty:default:flash
32
33Handedness should be programmed in EEPROM once, you can use these commands to
34flash the firmware and the EEPROM:
35
36 make splitty:default:dfu-split-left
37 make splitty:default:dfu-split-right
38
39If you do not have a reset keycode in your keymap, press the reset button or
40short the corresponding contacts if not populated to enter bootloader.
41
42See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools)
43and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide)
44for more information. Brand new to QMK? Start with our
45[Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/splitty/rev1/readme.md b/keyboards/splitty/rev1/readme.md
new file mode 100644
index 000000000..5a32a6c99
--- /dev/null
+++ b/keyboards/splitty/rev1/readme.md
@@ -0,0 +1,3 @@
1# First revision of the Splitty keyboard
2
3This is the initial version, see parent readme.md for more details.
diff --git a/keyboards/splitty/rev1/rev1.c b/keyboards/splitty/rev1/rev1.c
new file mode 100644
index 000000000..0cf9a1d9c
--- /dev/null
+++ b/keyboards/splitty/rev1/rev1.c
@@ -0,0 +1,17 @@
1/* Copyright 2018 Nicolas Schodet
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "splitty.h"
diff --git a/keyboards/splitty/rev1/rev1.h b/keyboards/splitty/rev1/rev1.h
new file mode 100644
index 000000000..920516573
--- /dev/null
+++ b/keyboards/splitty/rev1/rev1.h
@@ -0,0 +1,40 @@
1/* Copyright 2018 Nicolas Schodet
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include QMK_KEYBOARD_H
20
21// clang-format off
22#define LAYOUT( \
23 L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \
24 L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \
25 L20, L21, L22, L23, L24, L25, R21, R22, R23, R24, R25, R26, \
26 L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, \
27 L42, L43, L44, L45, L46, R40, R41, R42, R43, R44 \
28) { \
29 { L00, L01, L02, L03, L04, L05, L06 }, \
30 { L10, L11, L12, L13, L14, L15, L16 }, \
31 { L20, L21, L22, L23, L24, L25, KC_NO }, \
32 { L30, L31, L32, L33, L34, L35, L36 }, \
33 { KC_NO, KC_NO, L42, L43, L44, L45, L46 }, \
34 { R06, R05, R04, R03, R02, R01, R00 }, \
35 { R16, R15, R14, R13, R12, R11, R10 }, \
36 { R26, R25, R24, R23, R22, R21, KC_NO }, \
37 { R36, R35, R34, R33, R32, R31, R30 }, \
38 { KC_NO, KC_NO, R44, R43, R42, R41, R40 }, \
39}
40// clang-format on
diff --git a/keyboards/splitty/rev1/rules.mk b/keyboards/splitty/rev1/rules.mk
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/keyboards/splitty/rev1/rules.mk
diff --git a/keyboards/splitty/rules.mk b/keyboards/splitty/rules.mk
new file mode 100644
index 000000000..56572fe8a
--- /dev/null
+++ b/keyboards/splitty/rules.mk
@@ -0,0 +1,26 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
11MOUSEKEY_ENABLE = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18NKRO_ENABLE = no # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_ENABLE = no # Audio output
23
24SPLIT_KEYBOARD = yes
25
26DEFAULT_FOLDER = splitty/rev1
diff --git a/keyboards/splitty/splitty.c b/keyboards/splitty/splitty.c
new file mode 100644
index 000000000..652d1f781
--- /dev/null
+++ b/keyboards/splitty/splitty.c
@@ -0,0 +1,36 @@
1/* Copyright 2018 Nicolas Schodet
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "splitty.h"
18
19#ifdef SWAP_HANDS_ENABLE
20// clang-format off
21__attribute__ ((weak))
22const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
23
24 {{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}, {5, 5}, {6, 5}},
25 {{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}, {5, 6}, {6, 6}},
26 {{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}, {5, 7}, {6, 7}},
27 {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}},
28 {{0, 9}, {1, 9}, {2, 9}, {3, 9}, {4, 9}, {5, 9}, {6, 9}},
29 {{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}, {6, 0}},
30 {{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}, {6, 1}},
31 {{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}, {5, 2}, {6, 2}},
32 {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}, {5, 3}, {6, 3}},
33 {{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4}, {6, 4}},
34};
35// clang-format on
36#endif
diff --git a/keyboards/splitty/splitty.h b/keyboards/splitty/splitty.h
new file mode 100644
index 000000000..420e1ea27
--- /dev/null
+++ b/keyboards/splitty/splitty.h
@@ -0,0 +1,23 @@
1/* Copyright 2018 Nicolas Schodet
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21#ifdef KEYBOARD_splitty_rev1
22# include "rev1.h"
23#endif