summaryrefslogtreecommitdiff
path: root/keyboards/idank
diff options
context:
space:
mode:
authorIdan Kamara <i@idank.me>2023-08-30 07:41:44 +0300
committerGitHub <noreply@github.com>2023-08-29 21:41:44 -0700
commit9614c3adfa2fafd1038a361f4c209392cd11180b (patch)
tree77d04c16e3721bb03b4bceea0ce11dc418beaa3b /keyboards/idank
parentadef366e0c6e7203a428a610d13afa05099418ac (diff)
[keyboard] add sweeq, a ferris/sweep variant with diodes (#21597)
Diffstat (limited to 'keyboards/idank')
-rw-r--r--keyboards/idank/sweeq/config.h6
-rw-r--r--keyboards/idank/sweeq/info.json80
-rw-r--r--keyboards/idank/sweeq/keymaps/default/config.h21
-rw-r--r--keyboards/idank/sweeq/keymaps/default/keymap.json107
-rw-r--r--keyboards/idank/sweeq/keymaps/default/readme.md1
-rw-r--r--keyboards/idank/sweeq/keymaps/via/config.h7
-rw-r--r--keyboards/idank/sweeq/keymaps/via/keymap.c36
-rw-r--r--keyboards/idank/sweeq/keymaps/via/rules.mk2
-rw-r--r--keyboards/idank/sweeq/readme.md31
-rw-r--r--keyboards/idank/sweeq/rules.mk1
10 files changed, 292 insertions, 0 deletions
diff --git a/keyboards/idank/sweeq/config.h b/keyboards/idank/sweeq/config.h
new file mode 100644
index 0000000000..e926de7f5f
--- /dev/null
+++ b/keyboards/idank/sweeq/config.h
@@ -0,0 +1,6 @@
1// Copyright 2023 Idan Kamara (@idank)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#pragma once
5
6#define MASTER_RIGHT
diff --git a/keyboards/idank/sweeq/info.json b/keyboards/idank/sweeq/info.json
new file mode 100644
index 0000000000..0de9cd3aaf
--- /dev/null
+++ b/keyboards/idank/sweeq/info.json
@@ -0,0 +1,80 @@
1{
2 "url": "https://github.com/idank/keyboards/tree/main/sweeq",
3 "maintainer": "idank",
4 "keyboard_name": "Sweeq",
5 "manufacturer": "idank",
6 "development_board": "promicro",
7 "usb": {
8 "vid": "0xC3AB",
9 "pid": "0x3139",
10 "device_version": "0.0.1"
11 },
12 "features": {
13 "bootmagic": true,
14 "command": false,
15 "console": false,
16 "extrakey": true,
17 "mousekey": true,
18 "nkro": true
19 },
20 "matrix_pins": {
21 "cols": [ "F4", "F5", "F6", "F7", "B1" ],
22 "rows": [ "D4", "C6", "D7", "E6" ]
23 },
24 "diode_direction": "COL2ROW",
25 "split": {
26 "enabled": true,
27 "soft_serial_pin": "D2"
28 },
29 "community_layouts": ["split_3x5_2"],
30 "layout_aliases": {
31 "LAYOUT": "LAYOUT_split_3x5_2"
32 },
33 "layouts": {
34 "LAYOUT_split_3x5_2": {
35 "layout": [
36 {"x": 0, "y": 0.93, "matrix": [0, 0]},
37 {"x": 1, "y": 0.31, "matrix": [0, 1]},
38 {"x": 2, "y": 0, "matrix": [0, 2]},
39 {"x": 3, "y": 0.28, "matrix": [0, 3]},
40 {"x": 4, "y": 0.42, "matrix": [0, 4]},
41
42 {"x": 7, "y": 0.42, "matrix": [4, 4]},
43 {"x": 8, "y": 0.28, "matrix": [4, 3]},
44 {"x": 9, "y": 0, "matrix": [4, 2]},
45 {"x": 10, "y": 0.31, "matrix": [4, 1]},
46 {"x": 11, "y": 0.93, "matrix": [4, 0]},
47
48 {"x": 0, "y": 1.93, "matrix": [1, 0]},
49 {"x": 1, "y": 1.31, "matrix": [1, 1]},
50 {"x": 2, "y": 1, "matrix": [1, 2]},
51 {"x": 3, "y": 1.28, "matrix": [1, 3]},
52 {"x": 4, "y": 1.42, "matrix": [1, 4]},
53
54 {"x": 7, "y": 1.42, "matrix": [5, 4]},
55 {"x": 8, "y": 1.28, "matrix": [5, 3]},
56 {"x": 9, "y": 1, "matrix": [5, 2]},
57 {"x": 10, "y": 1.31, "matrix": [5, 1]},
58 {"x": 11, "y": 1.93, "matrix": [5, 0]},
59
60 {"x": 0, "y": 2.93, "matrix": [2, 0]},
61 {"x": 1, "y": 2.31, "matrix": [2, 1]},
62 {"x": 2, "y": 2, "matrix": [2, 2]},
63 {"x": 3, "y": 2.28, "matrix": [2, 3]},
64 {"x": 4, "y": 2.42, "matrix": [2, 4]},
65
66 {"x": 7, "y": 2.42, "matrix": [6, 4]},
67 {"x": 8, "y": 2.28, "matrix": [6, 3]},
68 {"x": 9, "y": 2, "matrix": [6, 2]},
69 {"x": 10, "y": 2.31, "matrix": [6, 1]},
70 {"x": 11, "y": 2.93, "matrix": [6, 0]},
71
72 {"x": 3.5, "y": 3.75, "matrix": [3, 3]},
73 {"x": 4.5, "y": 4, "matrix": [3, 4]},
74
75 {"x": 6.5, "y": 4, "matrix": [7, 4]},
76 {"x": 7.5, "y": 3.75, "matrix": [7, 3]}
77 ]
78 }
79 }
80}
diff --git a/keyboards/idank/sweeq/keymaps/default/config.h b/keyboards/idank/sweeq/keymaps/default/config.h
new file mode 100644
index 0000000000..e70efa40fa
--- /dev/null
+++ b/keyboards/idank/sweeq/keymaps/default/config.h
@@ -0,0 +1,21 @@
1// Copyright 2023 Idan Kamara (@idank)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#pragma once
5// Set the mouse settings to a comfortable speed/accuracy trade-off,
6// assuming a screen refresh rate of 60 Htz or higher
7// The default is 50. This makes the mouse ~3 times faster and more accurate
8#define MOUSEKEY_INTERVAL 16
9// The default is 20. Since we made the mouse about 3 times faster with the previous setting,
10// give it more time to accelerate to max speed to retain precise control over short distances.
11#define MOUSEKEY_TIME_TO_MAX 40
12// The default is 300. Let's try and make this as low as possible while keeping the cursor responsive
13#define MOUSEKEY_DELAY 100
14// It makes sense to use the same delay for the mouseweel
15#define MOUSEKEY_WHEEL_DELAY 100
16// The default is 100
17#define MOUSEKEY_WHEEL_INTERVAL 50
18// The default is 40
19#define MOUSEKEY_WHEEL_TIME_TO_MAX 100
20
21#define QUICK_TAP_TERM 0
diff --git a/keyboards/idank/sweeq/keymaps/default/keymap.json b/keyboards/idank/sweeq/keymaps/default/keymap.json
new file mode 100644
index 0000000000..a7845f6e23
--- /dev/null
+++ b/keyboards/idank/sweeq/keymaps/default/keymap.json
@@ -0,0 +1,107 @@
1{
2 "version": 1,
3 "notes": "sweeq default keymap",
4 "documentation": "\"This file is a QMK Configurator export. You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n",
5 "keyboard": "idank/sweeq",
6 "keymap": "default",
7 "layout": "LAYOUT_split_3x5_2",
8 "layers": [
9 ["KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T",
10 "KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P",
11
12 "LSFT_T(KC_A)", "LT(5,KC_S)" , "LT(1,KC_D)" , "LT(3,KC_F)" , "KC_G",
13 "KC_H" , "LT(4,KC_J)" , "LT(2,KC_K)" , "LT(6,KC_L)" , "LSFT_T(KC_SCLN)",
14
15 "KC_Z" , "LCTL_T(KC_X)", "LALT_T(KC_C)" , "KC_V" , "KC_B",
16 "KC_N" , "KC_M" , "LALT_T(KC_COMM)", "LCTL_T(KC_DOT)", "KC_SLSH",
17
18 "KC_P0" , "KC_BSPC",
19 "LT(7,KC_SPC)", "KC_P1"
20 ],
21 ["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
22 "KC_TRNS" , "KC_BTN1" , "KC_WH_U" , "KC_BTN2" , "KC_TRNS",
23
24 "KC_TRNS" , "KC_BTN2" , "KC_NO" , "KC_BTN1" , "KC_TRNS",
25 "KC_TRNS" , "KC_MS_L" , "KC_MS_D" , "KC_MS_U" , "KC_MS_R",
26
27 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
28 "KC_TRNS" , "KC_WH_L" , "KC_WH_D" , "KC_WH_R" , "KC_TRNS",
29
30 "KC_TRNS" , "KC_TRNS",
31 "KC_TRNS" , "KC_TRNS"
32 ],
33 ["KC_TRNS" , "KC_TRNS" , "KC_PGUP" , "KC_TRNS" , "KC_TRNS",
34 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
35
36 "KC_LEFT" , "KC_UP" , "KC_DOWN" , "KC_RGHT" , "KC_TRNS",
37 "KC_TRNS" , "KC_LGUI" , "KC_NO" , "LCTL(KC_LALT)" , "LCA(KC_LSFT)",
38
39 "KC_TRNS" , "KC_HOME" , "KC_PGDN" , "KC_END" , "KC_TRNS",
40 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
41
42 "KC_TRNS" , "KC_TRNS",
43 "KC_TRNS" , "KC_TRNS"
44 ],
45 ["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
46 "KC_TRNS" , "KC_UNDS" , "KC_PIPE" , "KC_QUOT" , "KC_TRNS",
47
48 "KC_CIRC" , "KC_ASTR" , "KC_AMPR" , "KC_NO" , "KC_TRNS",
49 "KC_HASH" , "KC_TILD" , "KC_SLSH" , "KC_DQUO" , "KC_DLR",
50
51 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
52 "KC_TRNS" , "KC_MINS" , "KC_BSLS" , "KC_GRV" , "KC_TRNS",
53
54 "RGB_RMOD" , "KC_TRNS",
55 "KC_TRNS" , "RGB_MOD"
56 ],
57 ["KC_TRNS" , "KC_COLN" , "KC_LT" , "KC_GT" , "KC_SCLN",
58 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
59
60 "KC_LCBR" , "KC_RCBR" , "KC_LPRN" , "KC_RPRN" , "KC_AT",
61 "KC_TRNS" , "KC_NO" , "KC_EQL" , "KC_PLUS" , "KC_PERC",
62
63 "KC_TRNS" , "KC_EXLM" , "KC_LBRC" , "KC_RBRC" , "KC_TRNS",
64 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
65
66 "KC_VOLD" , "KC_TRNS",
67 "KC_TRNS" , "KC_VOLU"
68 ],
69 ["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
70 "KC_TRNS" , "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10",
71
72 "KC_TRNS" , "KC_NO" , "LCTL(KC_LALT)" , "KC_TRNS" , "KC_TRNS",
73 "KC_TRNS" , "KC_F4" , "KC_F5" , "KC_F6" , "KC_F11",
74
75 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
76 "KC_TRNS" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_F12",
77
78 "KC_TRNS" , "KC_TRNS",
79 "KC_TRNS" , "KC_TRNS"
80 ],
81 ["KC_PSLS" , "KC_7" , "KC_8" , "KC_9" , "KC_PPLS",
82 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
83
84 "KC_0" , "KC_1" , "KC_2" , "KC_3" , "KC_PMNS",
85 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_NO" , "KC_TRNS",
86
87 "KC_PAST" , "KC_4" , "KC_5" , "KC_6" , "KC_PEQL",
88 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
89
90 "KC_TRNS" , "KC_TRNS",
91 "KC_TRNS" , "KC_TRNS"
92 ],
93 ["KC_TRNS" , "KC_TRNS" , "KC_COLN" , "KC_ESC" , "KC_TRNS",
94 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_DEL",
95
96 "KC_TRNS" , "KC_PERC" , "KC_SLSH" , "KC_ENT" , "KC_TRNS",
97 "DF(1)" , "KC_LGUI" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
98
99 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_EXLM" , "KC_TRNS",
100 "DF(0)" , "KC_TRNS" , "RALT_T(KC_COMM)", "RCTL_T(KC_DOT)", "QK_BOOT",
101
102 "KC_TRNS" , "KC_TAB",
103 "KC_NO" , "KC_TRNS"
104 ]
105 ],
106 "author": "idank"
107}
diff --git a/keyboards/idank/sweeq/keymaps/default/readme.md b/keyboards/idank/sweeq/keymaps/default/readme.md
new file mode 100644
index 0000000000..4d08a5502a
--- /dev/null
+++ b/keyboards/idank/sweeq/keymaps/default/readme.md
@@ -0,0 +1 @@
See the readme of the Ferris [default keymap](https://github.com/qmk/qmk_firmware/tree/master/keyboards/ferris/keymaps/default).
diff --git a/keyboards/idank/sweeq/keymaps/via/config.h b/keyboards/idank/sweeq/keymaps/via/config.h
new file mode 100644
index 0000000000..12a4fc233f
--- /dev/null
+++ b/keyboards/idank/sweeq/keymaps/via/config.h
@@ -0,0 +1,7 @@
1// Copyright 2023 Idan Kamara (@idank)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#pragma once
5
6// Good defaults for home row modifiers
7#define TAPPING_TERM 230
diff --git a/keyboards/idank/sweeq/keymaps/via/keymap.c b/keyboards/idank/sweeq/keymaps/via/keymap.c
new file mode 100644
index 0000000000..18ef09f7bb
--- /dev/null
+++ b/keyboards/idank/sweeq/keymaps/via/keymap.c
@@ -0,0 +1,36 @@
1// Copyright 2023 Idan Kamara (@idank)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include QMK_KEYBOARD_H
5
6#define KC_CTSC RCTL_T(KC_SCLN)
7#define KC_CTLA LCTL_T(KC_A)
8#define KC_LSHZ LSFT_T(KC_Z)
9#define KC_RLSH RSFT_T(KC_SLSH)
10#define KC_SPM2 LT(2, KC_SPC)
11#define KC_BSM1 LT(1, KC_BSPC)
12#define KC_GUTA GUI_T(KC_TAB)
13#define KC_CLGV CTL_T(KC_GRV)
14
15const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
16 [0] = LAYOUT(
17 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
18 KC_CTLA, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
19 KC_LSHZ, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RLSH,
20 KC_CLGV, KC_BSM1, KC_SPM2, KC_GUTA
21 ),
22
23 [1] = LAYOUT(
24 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
25 QK_GESC, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_QUOT,
26 KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_ENT,
27 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
28 ),
29
30 [2] = LAYOUT(
31 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
32 KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_PIPE,
33 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_TRNS, KC_TRNS, QK_BOOT,
34 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
35 )
36};
diff --git a/keyboards/idank/sweeq/keymaps/via/rules.mk b/keyboards/idank/sweeq/keymaps/via/rules.mk
new file mode 100644
index 0000000000..36b7ba9cbc
--- /dev/null
+++ b/keyboards/idank/sweeq/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
1VIA_ENABLE = yes
2LTO_ENABLE = yes
diff --git a/keyboards/idank/sweeq/readme.md b/keyboards/idank/sweeq/readme.md
new file mode 100644
index 0000000000..caaf5c705f
--- /dev/null
+++ b/keyboards/idank/sweeq/readme.md
@@ -0,0 +1,31 @@
1# Sweeq
2
3![sweeq](https://i.imgur.com/TGSyHHxh.png)
4
5*Sweeq is a Ferris Sweep clone that uses diodes, instead of the latter's direct pin matrix.*
6
7The primary goal is to free up the SDA/SCL pins so they can be used by auxiliary devices such as a trackball, trackpoint or an OLED screen.
8
9Other than the diode changes and the ability to use hotswap sockets, this keyboard is identical to the original Sweep.
10
11* Keyboard Maintainer: [@idank](https://github.com/idank)
12* Hardware Supported: [sweeq](https://github.com/idank/keyboards/tree/main/sweeq)
13* Hardware Availability: *[holykeebs](https://holykeebs.com)*
14
15Make example for this keyboard (after setting up your build environment):
16
17 make idank/sweeq:default
18
19Flashing example for this keyboard:
20
21 make idank/sweeq:default:flash
22
23See 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).
24
25## Bootloader
26
27Enter the bootloader in 3 ways:
28
29* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
30* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
31* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/idank/sweeq/rules.mk b/keyboards/idank/sweeq/rules.mk
new file mode 100644
index 0000000000..6e7633bfe0
--- /dev/null
+++ b/keyboards/idank/sweeq/rules.mk
@@ -0,0 +1 @@
# This file intentionally left blank