summaryrefslogtreecommitdiff
path: root/keyboards/ferris
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/ferris')
-rw-r--r--keyboards/ferris/0_1/0_1.h3
-rw-r--r--keyboards/ferris/0_1/rules.mk8
-rw-r--r--keyboards/ferris/0_2/0_2.h3
-rw-r--r--keyboards/ferris/0_2/rules.mk8
-rw-r--r--keyboards/ferris/info.json2
-rw-r--r--keyboards/ferris/keymaps/default/keymap.json2
-rw-r--r--keyboards/ferris/keymaps/via/keymap.c43
-rw-r--r--keyboards/ferris/keymaps/via/rules.mk2
-rw-r--r--keyboards/ferris/sweep/config.h14
-rw-r--r--keyboards/ferris/sweep/readme.md34
-rw-r--r--keyboards/ferris/sweep/rules.mk6
-rw-r--r--keyboards/ferris/sweep/sweep.c17
-rw-r--r--keyboards/ferris/sweep/sweep.h3
13 files changed, 115 insertions, 30 deletions
diff --git a/keyboards/ferris/0_1/0_1.h b/keyboards/ferris/0_1/0_1.h
index 4602637ca6..2f58831df7 100644
--- a/keyboards/ferris/0_1/0_1.h
+++ b/keyboards/ferris/0_1/0_1.h
@@ -22,7 +22,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// clang-format off
/* left hand right hand */
-#define LAYOUT(\
+#define LAYOUT_split_3x5_2(\
K0_0, K0_1, K0_2, K0_3, K0_4, K0_5, K0_6, K0_7, K0_8, K0_9,\
K1_0, K1_1, K1_2, K1_3, K1_4, K1_5, K1_6, K1_7, K1_8, K1_9,\
K2_0, K2_1, K2_2, K2_3, K2_4, K2_5, K2_6, K2_7, K2_8, K2_9,\
@@ -41,3 +41,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
}
// clang-format on
+#define LAYOUT LAYOUT_split_3x5_2
diff --git a/keyboards/ferris/0_1/rules.mk b/keyboards/ferris/0_1/rules.mk
index 1369a41b86..4b8f1f0c9a 100644
--- a/keyboards/ferris/0_1/rules.mk
+++ b/keyboards/ferris/0_1/rules.mk
@@ -4,6 +4,7 @@ MCU = atmega32u4
# Bootloader selection
BOOTLOADER = atmel-dfu
+# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
@@ -11,10 +12,7 @@ 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
+NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
@@ -25,3 +23,5 @@ LTO_ENABLE = yes
SRC += matrix.c
QUANTUM_LIB_SRC += i2c_master.c
+
+LAYOUTS = split_3x5_2
diff --git a/keyboards/ferris/0_2/0_2.h b/keyboards/ferris/0_2/0_2.h
index 4602637ca6..2f58831df7 100644
--- a/keyboards/ferris/0_2/0_2.h
+++ b/keyboards/ferris/0_2/0_2.h
@@ -22,7 +22,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// clang-format off
/* left hand right hand */
-#define LAYOUT(\
+#define LAYOUT_split_3x5_2(\
K0_0, K0_1, K0_2, K0_3, K0_4, K0_5, K0_6, K0_7, K0_8, K0_9,\
K1_0, K1_1, K1_2, K1_3, K1_4, K1_5, K1_6, K1_7, K1_8, K1_9,\
K2_0, K2_1, K2_2, K2_3, K2_4, K2_5, K2_6, K2_7, K2_8, K2_9,\
@@ -41,3 +41,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
}
// clang-format on
+#define LAYOUT LAYOUT_split_3x5_2
diff --git a/keyboards/ferris/0_2/rules.mk b/keyboards/ferris/0_2/rules.mk
index 75ec20b4db..2d406f5c1d 100644
--- a/keyboards/ferris/0_2/rules.mk
+++ b/keyboards/ferris/0_2/rules.mk
@@ -4,6 +4,7 @@ MCU = STM32F072
# Bootloader selection
BOOTLOADER = stm32-dfu
+# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
@@ -11,10 +12,7 @@ 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
+NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
@@ -25,3 +23,5 @@ LTO_ENABLE = no
SRC += matrix.c
QUANTUM_LIB_SRC += i2c_master.c
+
+LAYOUTS = split_3x5_2
diff --git a/keyboards/ferris/info.json b/keyboards/ferris/info.json
index d167bc3f37..93470c7253 100644
--- a/keyboards/ferris/info.json
+++ b/keyboards/ferris/info.json
@@ -3,7 +3,7 @@
"url": "https://github.com/pierrechevalier83/ferris/",
"maintainer": "@pierrec83",
"layouts": {
- "LAYOUT": {
+ "LAYOUT_split_3x5_2": {
"layout": [
{"x": 0, "y": 0.93},
{"x": 1, "y": 0.31},
diff --git a/keyboards/ferris/keymaps/default/keymap.json b/keyboards/ferris/keymaps/default/keymap.json
index f651b2d8c8..b7f635b758 100644
--- a/keyboards/ferris/keymaps/default/keymap.json
+++ b/keyboards/ferris/keymaps/default/keymap.json
@@ -3,7 +3,7 @@
"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",
"keyboard": "ferris/0_1",
"keymap": "default",
- "layout": "LAYOUT",
+ "layout": "LAYOUT_split_3x5_2",
"layers": [
["KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T",
"KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P",
diff --git a/keyboards/ferris/keymaps/via/keymap.c b/keyboards/ferris/keymaps/via/keymap.c
new file mode 100644
index 0000000000..b1ccd84fee
--- /dev/null
+++ b/keyboards/ferris/keymaps/via/keymap.c
@@ -0,0 +1,43 @@
+// this is the style you want to emulate.
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+
+#include QMK_KEYBOARD_H
+
+#define KC_CTSC RCTL_T(KC_SCLN)
+#define KC_CTLA LCTL_T(KC_A)
+#define KC_LSHZ LSFT_T(KC_Z)
+#define KC_RLSH RSFT_T(KC_SLSH)
+#define KC_SPM2 LT(2, KC_SPC)
+#define KC_BSM1 LT(1, KC_BSPC)
+#define KC_GUTA GUI_T(KC_TAB)
+#define KC_CLGV CTL_T(KC_GRV)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
+ KC_CTLA, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
+ KC_LSHZ, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RLSH,
+ KC_CLGV, KC_BSM1, KC_SPM2, KC_GUTA
+ ),
+
+ [1] = LAYOUT(
+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
+ KC_GESC, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_QUOT,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_ENT,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+ [2] = LAYOUT(
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
+ KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_PIPE,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_TRNS, KC_TRNS, RESET,
+ 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
+ ),
+};
diff --git a/keyboards/ferris/keymaps/via/rules.mk b/keyboards/ferris/keymaps/via/rules.mk
new file mode 100644
index 0000000000..43061db1dd
--- /dev/null
+++ b/keyboards/ferris/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/ferris/sweep/config.h b/keyboards/ferris/sweep/config.h
index 702f31a895..4d4d7d309f 100644
--- a/keyboards/ferris/sweep/config.h
+++ b/keyboards/ferris/sweep/config.h
@@ -1,4 +1,7 @@
-/* Copyright 2018-2020 ENDO Katsuhiro <ka2hiro@curlybracket.co.jp> David Philip Barr <@davidphilipbarr> Pierre Chevalier <pierrechevalier83@gmail.com>
+/* Copyright 2018-2020
+ENDO Katsuhiro <ka2hiro@curlybracket.co.jp>
+David Philip Barr <@davidphilipbarr>
+Pierre Chevalier <pierrechevalier83@gmail.com>
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
@@ -61,11 +64,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
-#define LOCKING_SUPPORT_ENABLE
-/* Locking resynchronize hack */
-#define LOCKING_RESYNC_ENABLE
-
/* Serial settings */
#define USE_SERIAL
/* serial.c configuration for split keyboard */
@@ -74,8 +72,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define EE_HANDS
/* Top left key on left half */
-#define BOOTMAGIC_LITE_ROW 0
+#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0
/* Top right key on right half */
-#define BOOTMAGIC_LITE_ROW_RIGHT 4
+#define BOOTMAGIC_LITE_ROW_RIGHT 4
#define BOOTMAGIC_LITE_COLUMN_RIGHT 4
diff --git a/keyboards/ferris/sweep/readme.md b/keyboards/ferris/sweep/readme.md
index a8cbf8fd80..332ab2c790 100644
--- a/keyboards/ferris/sweep/readme.md
+++ b/keyboards/ferris/sweep/readme.md
@@ -8,9 +8,8 @@ A version of the Ferris keyboard that uses a daughterboard, designed by the fant
## Keyboard Info
* Keyboard Maintainer: [Pierre Chevalier](https://github.com/pierrechevalier83)
-* Hardware Supported:
- * Ferris sweep (With pro-micro. Comes in a couple of PCB edge cuts shapes, but with identical pinout)
-* Hardware Availability: @iamnotyourbroom in the 40% discord chat server may have some spares for you.
+* Hardware Supported: [Sweep](https://github.com/davidphilipbarr/Sweep) (all versions)
+* Hardware Availability: Print the PCB with gerber files from the repository
Make example for this keyboard (after setting up your build environment):
@@ -20,18 +19,43 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to
## Setting Handedness
-Keyboard uses [handedness by EEPROM](https://docs.qmk.fm/#/feature_split_keyboard?id=handedness-by-eeprom) as default. The make commands are:
+Firmware uses [handedness by EEPROM](https://docs.qmk.fm/#/feature_split_keyboard?id=handedness-by-eeprom) as default and it must be *configured once* on each side. The make commands for Pro micros are:
make ferris/sweep:default:avrdude-split-left
make ferris/sweep:default:avrdude-split-right
+For Elite-C or compatible controllers using `DFU` bootloader, add the line `BOOTLOADER = atmel-dfu` into the user keymap `rules.mk` file and use the following make commands:
+
+ make ferris/sweep:default:dfu-split-left
+ make ferris/sweep:default:dfu-split-right
+
[QMK Toolbox](http://qmk.fm/toolbox) can also be used to set EEPROM handedness. Place the controller in bootloader mode and select menu option Tools -> EEPROM -> Set Left/Right Hand
## Bootloader
Enter the bootloader in 3 ways:
-* **Bootmagic reset**: Hold down the top left key on the left half (or the top right right key on the right half) and plug in the controller on that side.
+* **Bootmagic reset**: Hold down the top left key on the left half (or the top right key on the right half) and plug in the controller on that side.
* **Physical reset button**: Briefly press the reset button soldered on the PCB.
* **Keycode in layout**: Press the key mapped to `RESET` if it is configured.
+## Swapped Pins
+
+If you printed one of the PCB variant with swapped letters `Q` and `B` / `P` and `N`, add the following code to your keymap's `config.h` to swap pins `E6` and `D7` in the firmware:
+```c
+#undef DIRECT_PINS
+#define DIRECT_PINS { \
+ { D7, F7, F6, F5, F4 }, \
+ { B1, B3, B2, B6, D3 }, \
+ { D1, D0, D4, C6, E6 }, \
+ { B4, B5, NO_PIN, NO_PIN, NO_PIN } \
+}
+#undef DIRECT_PINS_RIGHT
+#define DIRECT_PINS_RIGHT { \
+ { F4, F5, F6, F7, D7 }, \
+ { D3, B6, B2, B3, B1 }, \
+ { E6, C6, D4, D0, D1 }, \
+ { B5, B4, NO_PIN, NO_PIN, NO_PIN } \
+}
+```
+
diff --git a/keyboards/ferris/sweep/rules.mk b/keyboards/ferris/sweep/rules.mk
index 2ebda6a6aa..ffc17739f7 100644
--- a/keyboards/ferris/sweep/rules.mk
+++ b/keyboards/ferris/sweep/rules.mk
@@ -12,12 +12,10 @@ 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
+NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
UNICODE_ENABLE = yes # Unicode
AUDIO_ENABLE = no # Audio output
SPLIT_KEYBOARD = yes # Use shared split_common code
+LAYOUTS = split_3x5_2
diff --git a/keyboards/ferris/sweep/sweep.c b/keyboards/ferris/sweep/sweep.c
index 5b41bad848..98467f18ae 100644
--- a/keyboards/ferris/sweep/sweep.c
+++ b/keyboards/ferris/sweep/sweep.c
@@ -14,3 +14,20 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "sweep.h"
+
+#ifdef SWAP_HANDS_ENABLE
+__attribute__ ((weak))
+const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
+ // Left
+ {{4, 4}, {3, 4}, {2, 4}, {1, 4}, {0, 4}},
+ {{4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5}},
+ {{4, 6}, {3, 6}, {2, 6}, {1, 6}, {0, 6}},
+ {{1, 7}, {0, 7}, {2, 7}, {3, 7}, {4, 7}},
+ // Right
+ {{4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}},
+ {{4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}},
+ {{4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}},
+ {{1, 3}, {0, 3}, {2, 3}, {3, 3}, {4, 3}}
+};
+#endif
+
diff --git a/keyboards/ferris/sweep/sweep.h b/keyboards/ferris/sweep/sweep.h
index e8d66ebc67..ebfa4ede1d 100644
--- a/keyboards/ferris/sweep/sweep.h
+++ b/keyboards/ferris/sweep/sweep.h
@@ -28,7 +28,7 @@
// readability
#define ___ KC_NO
-#define LAYOUT( \
+#define LAYOUT_split_3x5_2( \
L01, L02, L03, L04, L05, R01, R02, R03, R04, R05, \
L06, L07, L08, L09, L10, R06, R07, R08, R09, R10, \
L11, L12, L13, L14, L15, R11, R12, R13, R14, R15, \
@@ -45,3 +45,4 @@
{ R16, R17, ___, ___, ___ } \
}
+#define LAYOUT LAYOUT_split_3x5_2