diff options
| author | Joel Challis <git@zvecr.com> | 2019-07-20 21:35:30 +0100 |
|---|---|---|
| committer | Drashna Jaelre <drashna@live.com> | 2019-07-20 13:35:30 -0700 |
| commit | 0da743d80ba9c8dc913f46f91e16354883ac27ac (patch) | |
| tree | cd0dddf90b9e7967050cff71b4ef024b66411b00 | |
| parent | 7afae46ea6075a5410d230fb8c35eaacd1872ba2 (diff) | |
| download | qmk_firmware-0da743d80ba9c8dc913f46f91e16354883ac27ac.tar.gz qmk_firmware-0da743d80ba9c8dc913f46f91e16354883ac27ac.zip | |
[Keyboard] Refactor handwired/splittest to support multiple boards (#6373)
* Refactor splittest to support multiple dev boards
* Refactor splittest to support multiple dev boards - revert change to number of RGB led
* Refactor splittest to support multiple dev boards - update docs
* Refactor splittest to support multiple dev boards - correct docs
* Refactor splittest to support multiple dev boards - update teensy master logic
| -rw-r--r-- | keyboards/handwired/splittest/config.h | 7 | ||||
| -rw-r--r-- | keyboards/handwired/splittest/promicro/config.h | 28 | ||||
| -rw-r--r-- | keyboards/handwired/splittest/promicro/readme.md | 11 | ||||
| -rw-r--r-- | keyboards/handwired/splittest/promicro/rules.mk | 58 | ||||
| -rw-r--r-- | keyboards/handwired/splittest/readme.md | 14 | ||||
| -rw-r--r-- | keyboards/handwired/splittest/rules.mk | 46 | ||||
| -rw-r--r-- | keyboards/handwired/splittest/teensy_2/config.h | 31 | ||||
| -rw-r--r-- | keyboards/handwired/splittest/teensy_2/readme.md | 11 | ||||
| -rw-r--r-- | keyboards/handwired/splittest/teensy_2/rules.mk | 58 | ||||
| -rw-r--r-- | keyboards/handwired/splittest/teensy_2/teensy_2.c | 14 |
10 files changed, 217 insertions, 61 deletions
diff --git a/keyboards/handwired/splittest/config.h b/keyboards/handwired/splittest/config.h index a502d1238..56574f752 100644 --- a/keyboards/handwired/splittest/config.h +++ b/keyboards/handwired/splittest/config.h | |||
| @@ -33,12 +33,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 33 | #define MATRIX_ROWS 2 | 33 | #define MATRIX_ROWS 2 |
| 34 | #define MATRIX_COLS 1 | 34 | #define MATRIX_COLS 1 |
| 35 | 35 | ||
| 36 | // wiring of each half | ||
| 37 | #define MATRIX_ROW_PINS { B3 } | ||
| 38 | #define MATRIX_COL_PINS { B6 } | ||
| 39 | #define SPLIT_HAND_PIN F6 | ||
| 40 | #define SOFT_SERIAL_PIN D1 | ||
| 41 | |||
| 42 | /* define if matrix has ghost */ | 36 | /* define if matrix has ghost */ |
| 43 | //#define MATRIX_HAS_GHOST | 37 | //#define MATRIX_HAS_GHOST |
| 44 | 38 | ||
| @@ -51,7 +45,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 51 | #define LOCKING_RESYNC_ENABLE | 45 | #define LOCKING_RESYNC_ENABLE |
| 52 | 46 | ||
| 53 | /* ws2812 RGB LED */ | 47 | /* ws2812 RGB LED */ |
| 54 | #define RGB_DI_PIN D3 | ||
| 55 | #define RGBLIGHT_ANIMATIONS | 48 | #define RGBLIGHT_ANIMATIONS |
| 56 | #define RGBLED_NUM 12 | 49 | #define RGBLED_NUM 12 |
| 57 | #define RGBLED_SPLIT { 6, 6 } | 50 | #define RGBLED_SPLIT { 6, 6 } |
diff --git a/keyboards/handwired/splittest/promicro/config.h b/keyboards/handwired/splittest/promicro/config.h new file mode 100644 index 000000000..c2a9c6002 --- /dev/null +++ b/keyboards/handwired/splittest/promicro/config.h | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | /* Copyright 2019 | ||
| 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 | #pragma once | ||
| 18 | |||
| 19 | #include "config_common.h" | ||
| 20 | |||
| 21 | // wiring of each half | ||
| 22 | #define MATRIX_ROW_PINS { B3 } | ||
| 23 | #define MATRIX_COL_PINS { B6 } | ||
| 24 | #define SPLIT_HAND_PIN F6 | ||
| 25 | #define SOFT_SERIAL_PIN D1 | ||
| 26 | |||
| 27 | /* ws2812 RGB LED */ | ||
| 28 | #define RGB_DI_PIN D3 | ||
diff --git a/keyboards/handwired/splittest/promicro/readme.md b/keyboards/handwired/splittest/promicro/readme.md new file mode 100644 index 000000000..64a6f4c24 --- /dev/null +++ b/keyboards/handwired/splittest/promicro/readme.md | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | # Pro Micro splittest | ||
| 2 | |||
| 3 | To trigger keypress, short together pins *B3* and *B6* (marked on the PCB as *14* and *10*). | ||
| 4 | |||
| 5 | ## Wiring | ||
| 6 | - Add switches to both Pro Micros across B3 and B6 pins | ||
| 7 | - Add pull-up resistor to left side between VCC and F6 | ||
| 8 | - Add pull-down resistors to right side between GND and F6 | ||
| 9 | - Connect the following pins on both sides together: D0, D1, GND, VCC | ||
| 10 | - Add I2C 4.7kOhm resistors between D0 and VCC, and D1 and VCC | ||
| 11 | - Wire Di of RGB strip for each half to D3 | ||
diff --git a/keyboards/handwired/splittest/promicro/rules.mk b/keyboards/handwired/splittest/promicro/rules.mk new file mode 100644 index 000000000..dc6f19623 --- /dev/null +++ b/keyboards/handwired/splittest/promicro/rules.mk | |||
| @@ -0,0 +1,58 @@ | |||
| 1 | # MCU name | ||
| 2 | MCU = atmega32u4 | ||
| 3 | |||
| 4 | # Processor frequency. | ||
| 5 | # This will define a symbol, F_CPU, in all source code files equal to the | ||
| 6 | # processor frequency in Hz. You can then use this symbol in your source code to | ||
| 7 | # calculate timings. Do NOT tack on a 'UL' at the end, this will be done | ||
| 8 | # automatically to create a 32-bit value in your source code. | ||
| 9 | # | ||
| 10 | # This will be an integer division of F_USB below, as it is sourced by | ||
| 11 | # F_USB after it has run through any CPU prescalers. Note that this value | ||
| 12 | # does not *change* the processor frequency - it should merely be updated to | ||
| 13 | # reflect the processor speed set externally so that the code can use accurate | ||
| 14 | # software delays. | ||
| 15 | F_CPU = 16000000 | ||
| 16 | |||
| 17 | |||
| 18 | # | ||
| 19 | # LUFA specific | ||
| 20 | # | ||
| 21 | # Target architecture (see library "Board Types" documentation). | ||
| 22 | ARCH = AVR8 | ||
| 23 | |||
| 24 | # Input clock frequency. | ||
| 25 | # This will define a symbol, F_USB, in all source code files equal to the | ||
| 26 | # input clock frequency (before any prescaling is performed) in Hz. This value may | ||
| 27 | # differ from F_CPU if prescaling is used on the latter, and is required as the | ||
| 28 | # raw input clock is fed directly to the PLL sections of the AVR for high speed | ||
| 29 | # clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' | ||
| 30 | # at the end, this will be done automatically to create a 32-bit value in your | ||
| 31 | # source code. | ||
| 32 | # | ||
| 33 | # If no clock division is performed on the input clock inside the AVR (via the | ||
| 34 | # CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. | ||
| 35 | F_USB = $(F_CPU) | ||
| 36 | |||
| 37 | # Interrupt driven control endpoint task(+60) | ||
| 38 | OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT | ||
| 39 | |||
| 40 | |||
| 41 | # Bootloader selection | ||
| 42 | # Teensy halfkay | ||
| 43 | # Pro Micro caterina | ||
| 44 | # Atmel DFU atmel-dfu | ||
| 45 | # LUFA DFU lufa-dfu | ||
| 46 | # QMK DFU qmk-dfu | ||
| 47 | # atmega32a bootloadHID | ||
| 48 | BOOTLOADER = caterina | ||
| 49 | |||
| 50 | |||
| 51 | # If you don't know the bootloader type, then you can specify the | ||
| 52 | # Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line | ||
| 53 | # Teensy halfKay 512 | ||
| 54 | # Teensy++ halfKay 1024 | ||
| 55 | # Atmel DFU loader 4096 | ||
| 56 | # LUFA bootloader 4096 | ||
| 57 | # USBaspLoader 2048 | ||
| 58 | # OPT_DEFS += -DBOOTLOADER_SIZE=4096 | ||
diff --git a/keyboards/handwired/splittest/readme.md b/keyboards/handwired/splittest/readme.md index 3dbff32ed..33dbc6e80 100644 --- a/keyboards/handwired/splittest/readme.md +++ b/keyboards/handwired/splittest/readme.md | |||
| @@ -4,7 +4,10 @@ Split Tester | |||
| 4 | A two-switch tester built using two Pro Micros, mainly intended to test RGB on split keyboards. Seen here: https://www.instagram.com/p/BvCPNzynwrV/ | 4 | A two-switch tester built using two Pro Micros, mainly intended to test RGB on split keyboards. Seen here: https://www.instagram.com/p/BvCPNzynwrV/ |
| 5 | 5 | ||
| 6 | Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) | 6 | Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) |
| 7 | Hardware Supported: Pro Micro | 7 | Hardware Supported: Pro Micro, Teensy 2.0 |
| 8 | Hardware Availability: | ||
| 9 | |||
| 10 | **See each individual board for pin infomation** | ||
| 8 | 11 | ||
| 9 | Make example for this keyboard (after setting up your build environment): | 12 | Make example for this keyboard (after setting up your build environment): |
| 10 | 13 | ||
| @@ -15,12 +18,3 @@ Example of flashing this keyboard: | |||
| 15 | make handwired/splittest:default:avrdude | 18 | make handwired/splittest:default:avrdude |
| 16 | 19 | ||
| 17 | See 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). | 20 | See 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). |
| 18 | |||
| 19 | Wiring | ||
| 20 | ------ | ||
| 21 | - Add switches to both Pro Micros across B3 and B6 pins | ||
| 22 | - Add pull-up resistor to left side between VCC and F6 | ||
| 23 | - Add pull-down resistors to right side between GND and F6 | ||
| 24 | - Connect the following pins on both sides together: D0, D1, GND, VCC | ||
| 25 | - Add I2C 4.7kOhm resistors between D0 and VCC, and D1 and VCC | ||
| 26 | - Wire Di of RGB strip for each half to D2 | ||
diff --git a/keyboards/handwired/splittest/rules.mk b/keyboards/handwired/splittest/rules.mk index 9512c0f64..2aa484db0 100644 --- a/keyboards/handwired/splittest/rules.mk +++ b/keyboards/handwired/splittest/rules.mk | |||
| @@ -1,47 +1,3 @@ | |||
| 1 | # MCU name | ||
| 2 | MCU = atmega32u4 | ||
| 3 | |||
| 4 | # Processor frequency. | ||
| 5 | # This will define a symbol, F_CPU, in all source code files equal to the | ||
| 6 | # processor frequency in Hz. You can then use this symbol in your source code to | ||
| 7 | # calculate timings. Do NOT tack on a 'UL' at the end, this will be done | ||
| 8 | # automatically to create a 32-bit value in your source code. | ||
| 9 | # | ||
| 10 | # This will be an integer division of F_USB below, as it is sourced by | ||
| 11 | # F_USB after it has run through any CPU prescalers. Note that this value | ||
| 12 | # does not *change* the processor frequency - it should merely be updated to | ||
| 13 | # reflect the processor speed set externally so that the code can use accurate | ||
| 14 | # software delays. | ||
| 15 | F_CPU = 16000000 | ||
| 16 | |||
| 17 | # | ||
| 18 | # LUFA specific | ||
| 19 | # | ||
| 20 | # Target architecture (see library "Board Types" documentation). | ||
| 21 | ARCH = AVR8 | ||
| 22 | |||
| 23 | # Input clock frequency. | ||
| 24 | # This will define a symbol, F_USB, in all source code files equal to the | ||
| 25 | # input clock frequency (before any prescaling is performed) in Hz. This value may | ||
| 26 | # differ from F_CPU if prescaling is used on the latter, and is required as the | ||
| 27 | # raw input clock is fed directly to the PLL sections of the AVR for high speed | ||
| 28 | # clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' | ||
| 29 | # at the end, this will be done automatically to create a 32-bit value in your | ||
| 30 | # source code. | ||
| 31 | # | ||
| 32 | # If no clock division is performed on the input clock inside the AVR (via the | ||
| 33 | # CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. | ||
| 34 | F_USB = $(F_CPU) | ||
| 35 | |||
| 36 | # Bootloader | ||
| 37 | # This definition is optional, and if your keyboard supports multiple bootloaders of | ||
| 38 | # different sizes, comment this out, and the correct address will be loaded | ||
| 39 | # automatically (+60). See bootloader.mk for all options. | ||
| 40 | BOOTLOADER = caterina | ||
| 41 | |||
| 42 | # Interrupt driven control endpoint task(+60) | ||
| 43 | OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT | ||
| 44 | |||
| 45 | # Build Options | 1 | # Build Options |
| 46 | # change to "no" to disable the options, or define them in the Makefile in | 2 | # change to "no" to disable the options, or define them in the Makefile in |
| 47 | # the appropriate keymap folder that will get included automatically | 3 | # the appropriate keymap folder that will get included automatically |
| @@ -63,3 +19,5 @@ RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. | |||
| 63 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | 19 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend |
| 64 | 20 | ||
| 65 | SPLIT_KEYBOARD = yes | 21 | SPLIT_KEYBOARD = yes |
| 22 | |||
| 23 | DEFAULT_FOLDER = handwired/splittest/promicro | ||
diff --git a/keyboards/handwired/splittest/teensy_2/config.h b/keyboards/handwired/splittest/teensy_2/config.h new file mode 100644 index 000000000..3d0b0346e --- /dev/null +++ b/keyboards/handwired/splittest/teensy_2/config.h | |||
| @@ -0,0 +1,31 @@ | |||
| 1 | /* Copyright 2019 | ||
| 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 | #pragma once | ||
| 18 | |||
| 19 | #include "config_common.h" | ||
| 20 | |||
| 21 | // wiring of each half | ||
| 22 | #define MATRIX_ROW_PINS { F5 } | ||
| 23 | #define MATRIX_COL_PINS { F7 } | ||
| 24 | #define SPLIT_HAND_PIN F0 | ||
| 25 | #define SOFT_SERIAL_PIN D1 | ||
| 26 | |||
| 27 | /* ws2812 RGB LED */ | ||
| 28 | #define RGB_DI_PIN D3 | ||
| 29 | |||
| 30 | // required for teensy slave otherwise it "locks up" during startup | ||
| 31 | #define NO_USB_STARTUP_CHECK | ||
diff --git a/keyboards/handwired/splittest/teensy_2/readme.md b/keyboards/handwired/splittest/teensy_2/readme.md new file mode 100644 index 000000000..ed5f845d2 --- /dev/null +++ b/keyboards/handwired/splittest/teensy_2/readme.md | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | # Teensy 2.0 splittest | ||
| 2 | |||
| 3 | To trigger keypress, short together pins *F5* and *F7* | ||
| 4 | |||
| 5 | ## Wiring | ||
| 6 | - Add switches to both Teensy 2s across F5 and F7 pins | ||
| 7 | - Add pull-up resistor to left side between VCC and F0 | ||
| 8 | - Add pull-down resistors to right side between GND and F0 | ||
| 9 | - Connect the following pins on both sides together: D0, D1, GND, VCC | ||
| 10 | - Add I2C 4.7kOhm resistors between D0 and VCC, and D1 and VCC | ||
| 11 | - Wire Di of RGB strip for each half to D3 | ||
diff --git a/keyboards/handwired/splittest/teensy_2/rules.mk b/keyboards/handwired/splittest/teensy_2/rules.mk new file mode 100644 index 000000000..3fb7c7e5a --- /dev/null +++ b/keyboards/handwired/splittest/teensy_2/rules.mk | |||
| @@ -0,0 +1,58 @@ | |||
| 1 | # MCU name | ||
| 2 | MCU = atmega32u4 | ||
| 3 | |||
| 4 | # Processor frequency. | ||
| 5 | # This will define a symbol, F_CPU, in all source code files equal to the | ||
| 6 | # processor frequency in Hz. You can then use this symbol in your source code to | ||
| 7 | # calculate timings. Do NOT tack on a 'UL' at the end, this will be done | ||
| 8 | # automatically to create a 32-bit value in your source code. | ||
| 9 | # | ||
| 10 | # This will be an integer division of F_USB below, as it is sourced by | ||
| 11 | # F_USB after it has run through any CPU prescalers. Note that this value | ||
| 12 | # does not *change* the processor frequency - it should merely be updated to | ||
| 13 | # reflect the processor speed set externally so that the code can use accurate | ||
| 14 | # software delays. | ||
| 15 | F_CPU = 16000000 | ||
| 16 | |||
| 17 | |||
| 18 | # | ||
| 19 | # LUFA specific | ||
| 20 | # | ||
| 21 | # Target architecture (see library "Board Types" documentation). | ||
| 22 | ARCH = AVR8 | ||
| 23 | |||
| 24 | # Input clock frequency. | ||
| 25 | # This will define a symbol, F_USB, in all source code files equal to the | ||
| 26 | # input clock frequency (before any prescaling is performed) in Hz. This value may | ||
| 27 | # differ from F_CPU if prescaling is used on the latter, and is required as the | ||
| 28 | # raw input clock is fed directly to the PLL sections of the AVR for high speed | ||
| 29 | # clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' | ||
| 30 | # at the end, this will be done automatically to create a 32-bit value in your | ||
| 31 | # source code. | ||
| 32 | # | ||
| 33 | # If no clock division is performed on the input clock inside the AVR (via the | ||
| 34 | # CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. | ||
| 35 | F_USB = $(F_CPU) | ||
| 36 | |||
| 37 | # Interrupt driven control endpoint task(+60) | ||
| 38 | OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT | ||
| 39 | |||
| 40 | |||
| 41 | # Bootloader selection | ||
| 42 | # Teensy halfkay | ||
| 43 | # Pro Micro caterina | ||
| 44 | # Atmel DFU atmel-dfu | ||
| 45 | # LUFA DFU lufa-dfu | ||
| 46 | # QMK DFU qmk-dfu | ||
| 47 | # atmega32a bootloadHID | ||
| 48 | BOOTLOADER = halfkay | ||
| 49 | |||
| 50 | |||
| 51 | # If you don't know the bootloader type, then you can specify the | ||
| 52 | # Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line | ||
| 53 | # Teensy halfKay 512 | ||
| 54 | # Teensy++ halfKay 1024 | ||
| 55 | # Atmel DFU loader 4096 | ||
| 56 | # LUFA bootloader 4096 | ||
| 57 | # USBaspLoader 2048 | ||
| 58 | # OPT_DEFS += -DBOOTLOADER_SIZE=4096 | ||
diff --git a/keyboards/handwired/splittest/teensy_2/teensy_2.c b/keyboards/handwired/splittest/teensy_2/teensy_2.c new file mode 100644 index 000000000..bcc2a437b --- /dev/null +++ b/keyboards/handwired/splittest/teensy_2/teensy_2.c | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | #include QMK_KEYBOARD_H | ||
| 2 | |||
| 3 | bool is_keyboard_master(void) { | ||
| 4 | // TODO: replace this override once USB host detection is implemented | ||
| 5 | // SPLIT_HAND_PIN Combined with MASTER_LEFT or MASTER_RIGHT, gives a crude | ||
| 6 | // way to force teensy to run as slave/master | ||
| 7 | setPinInput(SPLIT_HAND_PIN); | ||
| 8 | |||
| 9 | #if defined(MASTER_RIGHT) | ||
| 10 | return !readPin(SPLIT_HAND_PIN); | ||
| 11 | #else | ||
| 12 | return readPin(SPLIT_HAND_PIN); | ||
| 13 | #endif | ||
| 14 | } | ||
