diff options
author | InigoGutierrez <inigogf.95@gmail.com> | 2022-06-27 16:38:28 +0200 |
---|---|---|
committer | InigoGutierrez <inigogf.95@gmail.com> | 2022-06-27 16:38:28 +0200 |
commit | 98b9909429aea0869f7a6f2f44ab386a4a3ff094 (patch) | |
tree | e1080a61bb89a75edc70818489f8044adf597c48 /keyboards/ferris | |
parent | b610965fd6d851484025166fb255078b1c809261 (diff) | |
parent | fa3dd373b4925734d9843ae6014349069ffec353 (diff) | |
download | qmk_firmware-98b9909429aea0869f7a6f2f44ab386a4a3ff094.tar.gz qmk_firmware-98b9909429aea0869f7a6f2f44ab386a4a3ff094.zip |
Merge branch 'master' into taamas
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/bling/bling.c | 9 | ||||
-rw-r--r-- | keyboards/ferris/0_2/bling/config.h | 48 | ||||
-rw-r--r-- | keyboards/ferris/0_2/config.h | 6 | ||||
-rw-r--r-- | keyboards/ferris/0_2/matrix.c | 5 | ||||
-rw-r--r-- | keyboards/ferris/0_2/rules.mk | 10 | ||||
-rw-r--r-- | keyboards/ferris/info.json | 2 | ||||
-rw-r--r-- | keyboards/ferris/keymaps/default/keymap.json | 4 | ||||
-rw-r--r-- | keyboards/ferris/keymaps/madhatter/rules.mk | 2 | ||||
-rw-r--r-- | keyboards/ferris/keymaps/via/config.h | 9 | ||||
-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 |
19 files changed, 185 insertions, 43 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/bling/bling.c b/keyboards/ferris/0_2/bling/bling.c index e275abdad0..e4d0bdbf7e 100644 --- a/keyboards/ferris/0_2/bling/bling.c +++ b/keyboards/ferris/0_2/bling/bling.c @@ -53,7 +53,14 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { led_config_t g_led_config = { // Key Matrix to LED Index { - {}, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, }, { // LED Index to Physical Position. The unit is roughly milimiters in the real world // | Left || Right | diff --git a/keyboards/ferris/0_2/bling/config.h b/keyboards/ferris/0_2/bling/config.h index bed489ca08..4b2efd378d 100644 --- a/keyboards/ferris/0_2/bling/config.h +++ b/keyboards/ferris/0_2/bling/config.h @@ -32,3 +32,51 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define DRIVER_2_LED_TOTAL 7 #define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +// RGB Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +#define ENABLE_RGB_MATRIX_ALPHAS_MODS +#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_BREATHING +#define ENABLE_RGB_MATRIX_BAND_SAT +#define ENABLE_RGB_MATRIX_BAND_VAL +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define ENABLE_RGB_MATRIX_CYCLE_ALL +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +#define ENABLE_RGB_MATRIX_DUAL_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +#define ENABLE_RGB_MATRIX_RAINDROPS +#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +#define ENABLE_RGB_MATRIX_HUE_BREATHING +#define ENABLE_RGB_MATRIX_HUE_PENDULUM +#define ENABLE_RGB_MATRIX_HUE_WAVE +#define ENABLE_RGB_MATRIX_PIXEL_RAIN +#define ENABLE_RGB_MATRIX_PIXEL_FLOW +#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +#define ENABLE_RGB_MATRIX_DIGITAL_RAIN +// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +#define ENABLE_RGB_MATRIX_SPLASH +#define ENABLE_RGB_MATRIX_MULTISPLASH +#define ENABLE_RGB_MATRIX_SOLID_SPLASH +#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH diff --git a/keyboards/ferris/0_2/config.h b/keyboards/ferris/0_2/config.h index 89eac7ed16..f51e5dd8f1 100644 --- a/keyboards/ferris/0_2/config.h +++ b/keyboards/ferris/0_2/config.h @@ -67,10 +67,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. /* i2c settings */ #define I2C_DRIVER I2CD2 -#define I2C1_SCL_BANK GPIOB -#define I2C1_SCL 10 -#define I2C1_SDA_BANK GPIOB -#define I2C1_SDA 11 +#define I2C1_SCL_PIN B10 +#define I2C1_SDA_PIN B11 #define I2C1_TIMINGR_PRESC 2U #define I2C1_TIMINGR_SCLDEL 1U #define I2C1_TIMINGR_SDADEL 0U diff --git a/keyboards/ferris/0_2/matrix.c b/keyboards/ferris/0_2/matrix.c index afa8a344cd..ff0e66d65c 100644 --- a/keyboards/ferris/0_2/matrix.c +++ b/keyboards/ferris/0_2/matrix.c @@ -59,11 +59,6 @@ extern i2c_status_t mcp23017_status; bool i2c_initialized = 0; i2c_status_t mcp23017_status = I2C_ADDR; -#define I2C2_SCL_BANK GPIOB -#define I2C2_SCL 10 -#define I2C2_SDA_BANK GPIOB -#define I2C2_SDA 11 - uint8_t init_mcp23017(void) { print("init mcp23017\n"); mcp23017_status = I2C_ADDR; diff --git a/keyboards/ferris/0_2/rules.mk b/keyboards/ferris/0_2/rules.mk index b1b9d42fbd..2d406f5c1d 100644 --- a/keyboards/ferris/0_2/rules.mk +++ b/keyboards/ferris/0_2/rules.mk @@ -4,17 +4,15 @@ MCU = STM32F072 # Bootloader selection BOOTLOADER = stm32-dfu +# Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite 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..cc156df246 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", @@ -96,7 +96,7 @@ "DF(1)" , "KC_LGUI" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_EXLM" , "KC_TRNS", - "DF(0)" , "KC_TRNS" , "RALT_T(KC_COMM)", "RCTL_T(KC_DOT)", "RESET", + "DF(0)" , "KC_TRNS" , "RALT_T(KC_COMM)", "RCTL_T(KC_DOT)", "QK_BOOT", "KC_TRNS" , "KC_TAB", "KC_NO" , "KC_TRNS" diff --git a/keyboards/ferris/keymaps/madhatter/rules.mk b/keyboards/ferris/keymaps/madhatter/rules.mk index 76c1045744..25e61e4d5b 100644 --- a/keyboards/ferris/keymaps/madhatter/rules.mk +++ b/keyboards/ferris/keymaps/madhatter/rules.mk @@ -1,2 +1,2 @@ -BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite TAP_DANCE_ENABLE = yes
\ No newline at end of file diff --git a/keyboards/ferris/keymaps/via/config.h b/keyboards/ferris/keymaps/via/config.h new file mode 100644 index 0000000000..5539c55f1d --- /dev/null +++ b/keyboards/ferris/keymaps/via/config.h @@ -0,0 +1,9 @@ +// Copyright 2020 Pierre Chevalier <pierrechevalier83@gmail.com> +// SPDX-License-Identifier: GPL-2.0+ + +#pragma once + +// Good defaults for home row modifiers +#define TAPPING_TERM 230 +#define IGNORE_MOD_TAP_INTERRUPT + diff --git a/keyboards/ferris/keymaps/via/keymap.c b/keyboards/ferris/keymaps/via/keymap.c new file mode 100644 index 0000000000..af014a9ca8 --- /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, QK_BOOT, + 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 |