diff options
Diffstat (limited to 'keyboards/ferris')
-rw-r--r-- | keyboards/ferris/0_1/0_1.h | 3 | ||||
-rw-r--r-- | keyboards/ferris/0_1/rules.mk | 8 | ||||
-rw-r--r-- | keyboards/ferris/0_2/0_2.h | 3 | ||||
-rw-r--r-- | keyboards/ferris/0_2/rules.mk | 8 | ||||
-rw-r--r-- | keyboards/ferris/info.json | 2 | ||||
-rw-r--r-- | keyboards/ferris/keymaps/default/keymap.json | 2 | ||||
-rw-r--r-- | keyboards/ferris/keymaps/via/keymap.c | 43 | ||||
-rw-r--r-- | keyboards/ferris/keymaps/via/rules.mk | 2 | ||||
-rw-r--r-- | keyboards/ferris/sweep/config.h | 14 | ||||
-rw-r--r-- | keyboards/ferris/sweep/readme.md | 34 | ||||
-rw-r--r-- | keyboards/ferris/sweep/rules.mk | 6 | ||||
-rw-r--r-- | keyboards/ferris/sweep/sweep.c | 17 | ||||
-rw-r--r-- | keyboards/ferris/sweep/sweep.h | 3 |
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 |