aboutsummaryrefslogtreecommitdiff
path: root/keyboards
diff options
context:
space:
mode:
authorPierre Chevalier <pierrechevalier83@gmail.com>2020-10-17 20:20:34 +0100
committerGitHub <noreply@github.com>2020-10-17 12:20:34 -0700
commit704934c427af1cc2176fa7c82773e86d89cbfa3c (patch)
tree2699b29924e8496c1ee867a645a52a310ac9a532 /keyboards
parent47ea522e79f2b7bcc2804c309f2b94e029824eb9 (diff)
downloadqmk_firmware-704934c427af1cc2176fa7c82773e86d89cbfa3c.tar.gz
qmk_firmware-704934c427af1cc2176fa7c82773e86d89cbfa3c.zip
Ferris reorganization (#10564)
* Add my own keymap * Layer 0: Workman * Layer 1: RSTHD (my own take on it) * Layer 2: Mouse * Layer 3: Navigation * Layer 4: Symbols right * Layer 5: Symbols left * Layer 6: Fn keys * Layer 7: Numbers * Layer 8: Vim and misceallaneaous accessible from any other layer * Move the current code to a 0.1 folder in preparation for upcoming changes Version 0.2 is currently being prototyped and uses an arm chip which will need its own firmware. There is also the Ferris sweep which uses a pro-micro compatible board which will need its own directory. * Move Ferris out of handwired and into the light The keyboard is now well out of the prototype phase as tens of them have been produced and acquired by various people. With 0.2 coming out, adoption is going to increase again as the board will be available for sale at some recognized vendors. Now is probably a good time to recognize its status as more than a prototype :) * Add code for the Ferris Sweep (a.k.a cradio) The Ferris Sweep is a creation of the talented @davidphilipbarr, a.k.a DPB. It has the key layout of a Ferris and uses a pro-micro connected to the switches via direct pins so that diodes are not needed and the soldering is minimal. With their blessing, I took the code for it from DPB's own repo: https://github.com/davidphilipbarr/36keys/tree/master/qmk/cradio and did some adaptations such as removing commented out code, enabling EE_HANDS and mouse keys for consistency with my existing Ferris code. * Fix indentation in rules.mk * Fix indentation in sweep's config * Remove unnecessary lines from sweep's rules.mk * Remove unnecessary lines from sweep's rules.mk * Rename 0.1 to 0_1 This avoids the dot looking like the separation between a filename and its extension. In the same commit, bring matrix.c to the 0_1 folder as this was needed for the code to compile properly (matrix.c is referred to in the readme under `0_1` and is specific to that revision of the firmware). * Update copyright statements for Sweep
Diffstat (limited to 'keyboards')
-rw-r--r--keyboards/ferris/0_1/0_1.c (renamed from keyboards/handwired/ferris/ferris.c)2
-rw-r--r--keyboards/ferris/0_1/0_1.h (renamed from keyboards/handwired/ferris/ferris.h)0
-rw-r--r--keyboards/ferris/0_1/config.h (renamed from keyboards/handwired/ferris/config.h)0
-rw-r--r--keyboards/ferris/0_1/matrix.c (renamed from keyboards/handwired/ferris/matrix.c)0
-rw-r--r--keyboards/ferris/0_1/rules.mk (renamed from keyboards/handwired/ferris/rules.mk)0
-rw-r--r--keyboards/ferris/info.json (renamed from keyboards/handwired/ferris/info.json)0
-rw-r--r--keyboards/ferris/keymaps/default/config.h (renamed from keyboards/handwired/ferris/keymaps/default/config.h)0
-rw-r--r--keyboards/ferris/keymaps/default/keymap.json (renamed from keyboards/handwired/ferris/keymaps/default/keymap.json)0
-rw-r--r--keyboards/ferris/keymaps/default/readme.md (renamed from keyboards/handwired/ferris/keymaps/default/readme.md)0
-rwxr-xr-xkeyboards/ferris/keymaps/json2crab.py (renamed from keyboards/handwired/ferris/keymaps/json2crab.py)0
-rw-r--r--keyboards/ferris/keymaps/pierrec83/config.h39
-rw-r--r--keyboards/ferris/keymaps/pierrec83/keymap.json118
-rw-r--r--keyboards/ferris/keymaps/pierrec83/readme.md43
-rw-r--r--keyboards/ferris/readme.md (renamed from keyboards/handwired/ferris/readme.md)11
-rw-r--r--keyboards/ferris/sweep/config.h74
-rw-r--r--keyboards/ferris/sweep/rules.mk24
-rw-r--r--keyboards/ferris/sweep/sweep.c16
-rw-r--r--keyboards/ferris/sweep/sweep.h47
18 files changed, 369 insertions, 5 deletions
diff --git a/keyboards/handwired/ferris/ferris.c b/keyboards/ferris/0_1/0_1.c
index 0e132fa98..dbdb0b4bd 100644
--- a/keyboards/handwired/ferris/ferris.c
+++ b/keyboards/ferris/0_1/0_1.c
@@ -14,4 +14,4 @@ GNU General Public License for more details.
14You should have received a copy of the GNU General Public License 14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>. 15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/ 16*/
17#include "ferris.h" 17#include "0_1.h"
diff --git a/keyboards/handwired/ferris/ferris.h b/keyboards/ferris/0_1/0_1.h
index 4602637ca..4602637ca 100644
--- a/keyboards/handwired/ferris/ferris.h
+++ b/keyboards/ferris/0_1/0_1.h
diff --git a/keyboards/handwired/ferris/config.h b/keyboards/ferris/0_1/config.h
index 33494d927..33494d927 100644
--- a/keyboards/handwired/ferris/config.h
+++ b/keyboards/ferris/0_1/config.h
diff --git a/keyboards/handwired/ferris/matrix.c b/keyboards/ferris/0_1/matrix.c
index e13c35d35..e13c35d35 100644
--- a/keyboards/handwired/ferris/matrix.c
+++ b/keyboards/ferris/0_1/matrix.c
diff --git a/keyboards/handwired/ferris/rules.mk b/keyboards/ferris/0_1/rules.mk
index 8645dbba0..8645dbba0 100644
--- a/keyboards/handwired/ferris/rules.mk
+++ b/keyboards/ferris/0_1/rules.mk
diff --git a/keyboards/handwired/ferris/info.json b/keyboards/ferris/info.json
index ffffb58ec..ffffb58ec 100644
--- a/keyboards/handwired/ferris/info.json
+++ b/keyboards/ferris/info.json
diff --git a/keyboards/handwired/ferris/keymaps/default/config.h b/keyboards/ferris/keymaps/default/config.h
index cf0fb7478..cf0fb7478 100644
--- a/keyboards/handwired/ferris/keymaps/default/config.h
+++ b/keyboards/ferris/keymaps/default/config.h
diff --git a/keyboards/handwired/ferris/keymaps/default/keymap.json b/keyboards/ferris/keymaps/default/keymap.json
index 7f7d614e2..7f7d614e2 100644
--- a/keyboards/handwired/ferris/keymaps/default/keymap.json
+++ b/keyboards/ferris/keymaps/default/keymap.json
diff --git a/keyboards/handwired/ferris/keymaps/default/readme.md b/keyboards/ferris/keymaps/default/readme.md
index 252f886f5..252f886f5 100644
--- a/keyboards/handwired/ferris/keymaps/default/readme.md
+++ b/keyboards/ferris/keymaps/default/readme.md
diff --git a/keyboards/handwired/ferris/keymaps/json2crab.py b/keyboards/ferris/keymaps/json2crab.py
index a32429fae..a32429fae 100755
--- a/keyboards/handwired/ferris/keymaps/json2crab.py
+++ b/keyboards/ferris/keymaps/json2crab.py
diff --git a/keyboards/ferris/keymaps/pierrec83/config.h b/keyboards/ferris/keymaps/pierrec83/config.h
new file mode 100644
index 000000000..cf0fb7478
--- /dev/null
+++ b/keyboards/ferris/keymaps/pierrec83/config.h
@@ -0,0 +1,39 @@
1/*
2Copyright 2020 Pierre Chevalier <pierrechevalier83@gmail.com>
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// Set the mouse settings to a comfortable speed/accuracy trade-off,
20// assuming a screen refresh rate of 60 Htz or higher
21// The default is 50. This makes the mouse ~3 times faster and more accurate
22#define MOUSEKEY_INTERVAL 16
23// The default is 20. Since we made the mouse about 3 times faster with the previous setting,
24// give it more time to accelerate to max speed to retain precise control over short distances.
25#define MOUSEKEY_TIME_TO_MAX 40
26// The default is 300. Let's try and make this as low as possible while keeping the cursor responsive
27#define MOUSEKEY_DELAY 100
28// It makes sense to use the same delay for the mouseweel
29#define MOUSEKEY_WHEEL_DELAY 100
30// The default is 100
31#define MOUSEKEY_WHEEL_INTERVAL 50
32// The default is 40
33#define MOUSEKEY_WHEEL_TIME_TO_MAX 100
34
35// Pick good defaults for enabling homerow modifiers
36#define TAPPING_TERM 200
37#define PERMISSIVE_HOLD
38#define IGNORE_MOD_TAP_INTERRUPT
39#define TAPPING_FORCE_HOLD
diff --git a/keyboards/ferris/keymaps/pierrec83/keymap.json b/keyboards/ferris/keymaps/pierrec83/keymap.json
new file mode 100644
index 000000000..2372e7e37
--- /dev/null
+++ b/keyboards/ferris/keymaps/pierrec83/keymap.json
@@ -0,0 +1,118 @@
1{ "version": 1,
2 "notes": "My awesome keymap",
3 "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",
4 "keyboard": "handwired/ferris",
5 "keymap": "pierrec83",
6 "layout": "LAYOUT",
7 "layers": [
8 ["KC_Q" , "KC_D" , "KC_R" , "KC_W" , "KC_B",
9 "KC_J" , "KC_F" , "KC_U" , "KC_P" , "KC_SCLN",
10
11 "LSFT_T(KC_A)" , "LT(6,KC_S)" , "LT(2,KC_H)" , "LT(4,KC_T)" , "KC_G",
12 "KC_Y" , "LT(5,KC_N)" , "LT(3,KC_E)" , "LT(7,KC_O)" , "LSFT_T(KC_I)",
13
14 "KC_Z" , "LCTL_T(KC_X)" , "LALT_T(KC_M)" , "KC_C" , "KC_V",
15 "KC_K" , "KC_L" , "LALT_T(KC_COMM)", "LCTL_T(KC_DOT)" , "KC_SLSH",
16
17 "LCA(KC_UP)" , "KC_BSPC",
18 "LT(8,KC_SPC)" , "LCA(KC_DOWN)"
19 ],
20 ["KC_Q" , "KC_C" , "KC_M" , "KC_Y" , "KC_COLN",
21 "KC_Z" , "KC_W" , "KC_COMM" , "KC_U" , "KC_J",
22
23 "LSFT_T(KC_R)" , "LT(6,KC_S)" , "LT(2,KC_T)" , "LT(4,KC_H)" , "KC_X",
24 "KC_TRNS" , "LT(5,KC_N)" , "LT(3,KC_A)" , "LT(7,KC_I)" , "LSFT_T(KC_O)",
25
26 "KC_B" , "LCTL_T(KC_F)" , "LALT_T(KC_G)" , "KC_D" , "KC_V",
27 "KC_ESC" , "KC_L" , "LALT_T(KC_DOT)" , "LCTL_T(KC_BSPC)" , "KC_K",
28
29 "LCA(KC_UP)" , "KC_E",
30 "LT(8,KC_SPC)" , "LCA(KC_DOWN)"
31 ],
32 ["KC_TRNS" , "ANY(LCTL(LSFT(KC_C)))", "KC_TRNS" , "ANY(LCTL(LSFT(KC_V)))", "KC_TRNS",
33 "KC_TRNS" , "KC_BTN1" , "KC_WH_U" , "KC_BTN2" , "KC_TRNS",
34
35 "KC_TRNS" , "KC_BTN2" , "KC_NO" , "KC_BTN1" , "KC_TRNS",
36 "KC_TRNS" , "KC_MS_L" , "KC_MS_D" , "KC_MS_U" , "KC_MS_R",
37
38 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
39 "KC_TRNS" , "KC_WH_L" , "KC_WH_D" , "KC_WH_R" , "KC_TRNS",
40
41 "ANY(LCTL(LSFT(KC_TAB)))", "KC_TRNS",
42 "KC_TRNS" , "LCTL(KC_TAB)"
43 ],
44 ["KC_TRNS" , "KC_TRNS" , "KC_PGUP" , "KC_TRNS" , "KC_TRNS",
45 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
46
47 "KC_LEFT" , "KC_UP" , "KC_DOWN" , "KC_RGHT" , "KC_TRNS",
48 "KC_TRNS" , "KC_LGUI" , "KC_NO" , "LCTL(KC_LALT)" , "LCA(KC_LSFT)",
49
50 "KC_TRNS" , "KC_HOME" , "KC_PGDN" , "KC_END" , "KC_TRNS",
51 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
52
53 "LGUI(KC_LEFT)" , "KC_TRNS",
54 "KC_TRNS" , "LGUI(KC_RGHT)"
55 ],
56 ["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
57 "KC_TRNS" , "KC_UNDS" , "KC_PIPE" , "KC_QUOT" , "KC_TRNS",
58
59 "KC_CIRC" , "KC_ASTR" , "KC_AMPR" , "KC_NO" , "KC_TRNS",
60 "KC_HASH" , "KC_TILD" , "KC_SLSH" , "KC_DQUO" , "KC_DLR",
61
62 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
63 "KC_TRNS" , "KC_MINS" , "KC_BSLS" , "KC_GRV" , "KC_TRNS",
64
65 "KC_BRID" , "KC_TRNS",
66 "KC_TRNS" , "KC_BRIU"
67 ],
68 ["KC_TRNS" , "KC_COLN" , "KC_LT" , "KC_GT" , "KC_SCLN",
69 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
70
71 "KC_LCBR" , "KC_RCBR" , "KC_LPRN" , "KC_RPRN" , "KC_AT",
72 "KC_TRNS" , "KC_NO" , "KC_EQL" , "KC_PLUS" , "KC_PERC",
73
74 "KC_TRNS" , "KC_EXLM" , "KC_LBRC" , "KC_RBRC" , "KC_TRNS",
75 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
76
77 "KC_VOLD" , "KC_TRNS",
78 "KC_TRNS" , "KC_VOLU"
79 ],
80 ["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
81 "KC_TRNS" , "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10",
82
83 "KC_TRNS" , "KC_TRNS" , "LCTL(KC_LALT)" , "KC_TRNS" , "KC_TRNS",
84 "KC_TRNS" , "KC_F4" , "KC_F5" , "KC_F6" , "KC_F11",
85
86 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
87 "KC_TRNS" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_F12",
88
89 "KC_TRNS" , "KC_TRNS",
90 "KC_TRNS" , "KC_TRNS"
91 ],
92 ["KC_PSLS" , "KC_7" , "KC_8" , "KC_9" , "KC_PPLS",
93 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
94
95 "KC_0" , "KC_1" , "KC_2" , "KC_3" , "KC_PMNS",
96 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_NO" , "KC_TRNS",
97
98 "KC_PAST" , "KC_4" , "KC_5" , "KC_6" , "KC_PEQL",
99 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
100
101 "KC_TRNS" , "KC_TRNS",
102 "KC_TRNS" , "KC_TRNS"
103 ],
104 ["KC_TRNS" , "KC_ESC" , "KC_COLN" , "KC_TRNS" , "KC_TRNS",
105 "DF(2)" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_DEL",
106
107 "KC_TRNS" , "KC_PERC" , "KC_SLSH" , "KC_ENT" , "KC_EXLM",
108 "DF(1)" , "KC_LGUI" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
109
110 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
111 "DF(0)" , "KC_TRNS" , "RALT_T(KC_COMM)", "RCTL_T(KC_DOT)" , "RESET",
112
113 "KC_TRNS" , "KC_TAB",
114 "KC_NO" , "KC_TRNS"
115 ]
116 ],
117 "author": "@pierrec83"
118}
diff --git a/keyboards/ferris/keymaps/pierrec83/readme.md b/keyboards/ferris/keymaps/pierrec83/readme.md
new file mode 100644
index 000000000..d96a3bb81
--- /dev/null
+++ b/keyboards/ferris/keymaps/pierrec83/readme.md
@@ -0,0 +1,43 @@
1@pierrec83's personal keymap for the Ferris keyboard
2====================================================
3
4This keymap shares many commonalities with the default keymap.
5See its readme for a write-up on many of the decisions, including
6how to generate the formatted json file with json2crab.py and the
7general philosophy for each layer.
8
9Because this is my own keymap, I didn't refrain from using shortcuts
10that make sense for me and may not make sense for most.
11
12Key differences from the default keymap include:
13
14Alpha layers:
15-------------
16
17Because I only learned to touch type when I switched from qwerty to workman,
18my base layer is workman and my layout doesn't contain a qwerty layer.
19
20My layer 1 hosts a variant of RSTHD that I am developing, inspired from workman's
21focus on reducing side-index-motion. It should become my end game keymap eventually,
22but I still haven't found the time to learn it to a working proficiency.
23
24Secondary thumbs:
25-----------------
26
27Instead of a placeholder 0 and 1, the secondary thumbs on my keymap
28perform the following actions:
29* Navigate to previous and next workspace the base layer
30* Navigate to previous and next tab on the mouse layer
31* Volume control on layer
32* Brightness control on layer
33
34Mouse layer:
35------------
36
37* Copy/Paste shortcuts on the left hand, on the upper row.
38
39Always available layer:
40-----------------------
41
42* Esc and column are placed differently to allow easy vim navigation with the positions of w and q in the workman base layer
43* Enable permanent switch to the RSTHD layer in addition to the mouse layer
diff --git a/keyboards/handwired/ferris/readme.md b/keyboards/ferris/readme.md
index 23aeca874..74a08a38f 100644
--- a/keyboards/handwired/ferris/readme.md
+++ b/keyboards/ferris/readme.md
@@ -6,11 +6,14 @@
6A split 34 keys column staggered keyboard named and decorated after the rustlang mascott. All PCB files and some thoughts on the design are available on the [project's github page](https://github.com/pierrechevalier83/ferris) 6A split 34 keys column staggered keyboard named and decorated after the rustlang mascott. All PCB files and some thoughts on the design are available on the [project's github page](https://github.com/pierrechevalier83/ferris)
7 7
8* Keyboard Maintainer: [Pierre Chevalier](https://github.com/pierrechevalier83) 8* Keyboard Maintainer: [Pierre Chevalier](https://github.com/pierrechevalier83)
9* Hardware Supported: Ferris PCB 9* Hardware Supported:
10* Hardware Availability: Still in prototype stage 10 * Ferris 0.1 (With atmega32u4 chip. Comes in 4 variants: base, low, high and compact)
11 * Ferris sweep (With pro-micro. Comes in a couple of PCB edge cuts shapes, but with identical pinout)
12* Hardware Availability: Pierre Chevalier has been selling keyboard kits (see the #ferris channel in the 40% discord chat). Wider availability is on the horizon.
11 13
12Make example for this keyboard (after setting up your build environment): 14Make examples for this keyboard (after setting up your build environment):
13 15
14 make handwired/ferris:default 16 make ferris/0_1:default
17 make ferris/sweep:default:avrdude-split-right
15 18
16See 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). 19See 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).
diff --git a/keyboards/ferris/sweep/config.h b/keyboards/ferris/sweep/config.h
new file mode 100644
index 000000000..ad960610d
--- /dev/null
+++ b/keyboards/ferris/sweep/config.h
@@ -0,0 +1,74 @@
1/* Copyright 2018-2020 ENDO Katsuhiro <ka2hiro@curlybracket.co.jp> David Philip Barr <@davidphilipbarr> Pierre Chevalier <pierrechevalier83@gmail.com>
2
3This program is free software: you can redistribute it and/or modify
4it under the terms of the GNU General Public License as published by
5the Free Software Foundation, either version 2 of the License, or
6(at your option) any later version.
7
8This program is distributed in the hope that it will be useful,
9but WITHOUT ANY WARRANTY; without even the implied warranty of
10MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11GNU General Public License for more details.
12
13You should have received a copy of the GNU General Public License
14along with this program. If not, see <http://www.gnu.org/licenses/>.
15*/
16
17#pragma once
18
19#include "config_common.h"
20
21/* USB Device descriptor parameter */
22#define VENDOR_ID 0xC2AB
23#define PRODUCT_ID 0x3939
24#define DEVICE_VER 0x0001
25#define MANUFACTURER DPB
26#define PRODUCT Ferris sweep
27
28/* key matrix size */
29#define MATRIX_ROWS 8
30#define MATRIX_COLS 5
31
32/*
33 * Keyboard Matrix Assignments
34 *
35 * Change this to how you wired your keyboard
36 * COLS: AVR pins used for columns, left to right
37 * ROWS: AVR pins used for rows, top to bottom
38 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
39 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
40 * NO_DIODE = switches are directly connected to AVR pins
41 *
42*/
43#define DIRECT_PINS { \
44 { E6, F7, F6, F5, F4 }, \
45 { B1, B3, B2, B6, D3 }, \
46 { D1, D0, D4, C6, D7 }, \
47 { B4, B5, NO_PIN, NO_PIN, NO_PIN } \
48}
49
50#define DIRECT_PINS_RIGHT { \
51 { F4, F5, F6, F7, E6 }, \
52 { D3,B6,B2,B3,B1 }, \
53 { D7,C6,D4,D0,D1}, \
54 { B5, B4, NO_PIN, NO_PIN, NO_PIN } \
55}
56
57
58
59#define UNUSED_PINS
60
61/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
62#define DEBOUNCE 5
63
64/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
65#define LOCKING_SUPPORT_ENABLE
66/* Locking resynchronize hack */
67#define LOCKING_RESYNC_ENABLE
68
69/* Serial settings */
70#define USE_SERIAL
71/* serial.c configuration for split keyboard */
72#define SOFT_SERIAL_PIN D2
73
74#define EE_HANDS
diff --git a/keyboards/ferris/sweep/rules.mk b/keyboards/ferris/sweep/rules.mk
new file mode 100644
index 000000000..ce4d52156
--- /dev/null
+++ b/keyboards/ferris/sweep/rules.mk
@@ -0,0 +1,24 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = caterina
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
21UNICODE_ENABLE = yes # Unicode
22BLUETOOTH_ENABLE = no # Enable Bluetooth
23AUDIO_ENABLE = no # Audio output
24SPLIT_KEYBOARD = yes # Use shared split_common code
diff --git a/keyboards/ferris/sweep/sweep.c b/keyboards/ferris/sweep/sweep.c
new file mode 100644
index 000000000..5b41bad84
--- /dev/null
+++ b/keyboards/ferris/sweep/sweep.c
@@ -0,0 +1,16 @@
1/* Copyright 2018-2020 ENDO Katsuhiro <ka2hiro@curlybracket.co.jp> David Philip Barr <@davidphilipbarr> Pierre Chevalier <pierrechevalier83@gmail.com>
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 "sweep.h"
diff --git a/keyboards/ferris/sweep/sweep.h b/keyboards/ferris/sweep/sweep.h
new file mode 100644
index 000000000..e8d66ebc6
--- /dev/null
+++ b/keyboards/ferris/sweep/sweep.h
@@ -0,0 +1,47 @@
1/* Copyright 2018-2020 ENDO Katsuhiro <ka2hiro@curlybracket.co.jp> David Philip Barr <@davidphilipbarr> Pierre Chevalier <pierrechevalier83@gmail.com>
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 "quantum.h"
18
19/* This a shortcut to help you visually see your layout.
20 *
21 * The first section contains all of the arguments representing the physical
22 * layout of the board and position of the keys.
23 *
24 * The second converts the arguments into a two-dimensional array which
25 * represents the switch matrix.
26 */
27
28// readability
29#define ___ KC_NO
30
31#define LAYOUT( \
32 L01, L02, L03, L04, L05, R01, R02, R03, R04, R05, \
33 L06, L07, L08, L09, L10, R06, R07, R08, R09, R10, \
34 L11, L12, L13, L14, L15, R11, R12, R13, R14, R15, \
35 L16, L17, R16, R17 \
36 ) \
37 { \
38 { L01, L02, L03, L04, L05 }, \
39 { L06, L07, L08, L09, L10 }, \
40 { L11, L12, L13, L14, L15 }, \
41 { L16, L17, ___, ___ , ___}, \
42 { R01, R02, R03, R04, R05 }, \
43 { R06, R07, R08, R09, R10 }, \
44 { R11, R12, R13, R14, R15 }, \
45 { R16, R17, ___, ___, ___ } \
46 }
47