Skip to content

Commit 738bd26

Browse files
committed
Merge remote-tracking branch 'origin/master' into develop
2 parents 9aed856 + 7d59027 commit 738bd26

File tree

12 files changed

+400
-0
lines changed

12 files changed

+400
-0
lines changed

keyboards/splitty/config.h

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
/*
2+
Copyright 2018 Nicolas Schodet
3+
4+
This program is free software: you can redistribute it and/or modify
5+
it under the terms of the GNU General Public License as published by
6+
the Free Software Foundation, either version 2 of the License, or
7+
(at your option) any later version.
8+
9+
This program is distributed in the hope that it will be useful,
10+
but WITHOUT ANY WARRANTY; without even the implied warranty of
11+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12+
GNU General Public License for more details.
13+
14+
You should have received a copy of the GNU General Public License
15+
along 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

keyboards/splitty/info.json

+81
Original file line numberDiff line numberDiff line change
@@ -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+
}
+54
Original file line numberDiff line numberDiff line change
@@ -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 */
19+
enum 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
26+
const 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
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# The default keymap for Splitty
2+
3+
Simple default keymap.
4+
5+
Hold the space key to access the navigation layer. Hold the backspace key for
6+
left control.
7+
8+
There is a Ctrl-W shortcut which is usefull to erase previous word and for
9+
window management in vim.

keyboards/splitty/readme.md

+45
Original file line numberDiff line numberDiff line change
@@ -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+
11+
This is a split ergonomic keyboard initially based on the Ergodox layout
12+
without the thumb cluster. It uses 32 keys per sides with Cherry MX
13+
compatibles switches, thirty 1u and two vertical 1.5u caps.
14+
15+
The controller is integrated in order to make the keyboard as slim as possible.
16+
17+
It connects to the computer using a micro-B USB. Both sides are connected
18+
together also using micro-B USB. Any connection mistake should not break
19+
anything 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+
25+
Make example for this keyboard (after setting up your build environment):
26+
27+
make splitty:default
28+
29+
Flashing example for this keyboard:
30+
31+
make splitty:default:flash
32+
33+
Handedness should be programmed in EEPROM once, you can use these commands to
34+
flash the firmware and the EEPROM:
35+
36+
make splitty:default:dfu-split-left
37+
make splitty:default:dfu-split-right
38+
39+
If you do not have a reset keycode in your keymap, press the reset button or
40+
short the corresponding contacts if not populated to enter bootloader.
41+
42+
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools)
43+
and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide)
44+
for more information. Brand new to QMK? Start with our
45+
[Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

keyboards/splitty/rev1/readme.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# First revision of the Splitty keyboard
2+
3+
This is the initial version, see parent readme.md for more details.

keyboards/splitty/rev1/rev1.c

+17
Original file line numberDiff line numberDiff line change
@@ -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"

keyboards/splitty/rev1/rev1.h

+40
Original file line numberDiff line numberDiff line change
@@ -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

keyboards/splitty/rev1/rules.mk

Whitespace-only changes.

keyboards/splitty/rules.mk

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# MCU name
2+
MCU = atmega32u4
3+
4+
# Bootloader selection
5+
BOOTLOADER = atmel-dfu
6+
7+
# Build Options
8+
# change yes to no to disable
9+
#
10+
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
11+
MOUSEKEY_ENABLE = yes # Mouse keys
12+
EXTRAKEY_ENABLE = yes # Audio control and System control
13+
CONSOLE_ENABLE = no # Console for debug
14+
COMMAND_ENABLE = no # Commands for debug and configuration
15+
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16+
SLEEP_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
18+
NKRO_ENABLE = no # USB Nkey Rollover
19+
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20+
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
21+
BLUETOOTH_ENABLE = no # Enable Bluetooth
22+
AUDIO_ENABLE = no # Audio output
23+
24+
SPLIT_KEYBOARD = yes
25+
26+
DEFAULT_FOLDER = splitty/rev1

keyboards/splitty/splitty.c

+36
Original file line numberDiff line numberDiff line change
@@ -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))
22+
const 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

0 commit comments

Comments
 (0)