aboutsummaryrefslogtreecommitdiffstats
path: root/keyboards/handwired/splittest/teensy_2
diff options
context:
space:
mode:
authorGravatar Joel Challis <git@zvecr.com>2019-07-20 21:35:30 +0100
committerGravatar Drashna Jaelre <drashna@live.com>2019-07-20 13:35:30 -0700
commit0da743d80ba9c8dc913f46f91e16354883ac27ac (patch)
treecd0dddf90b9e7967050cff71b4ef024b66411b00 /keyboards/handwired/splittest/teensy_2
parent7afae46ea6075a5410d230fb8c35eaacd1872ba2 (diff)
downloadqmk_firmware-0da743d80ba9c8dc913f46f91e16354883ac27ac.tar.gz
[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
Diffstat (limited to 'keyboards/handwired/splittest/teensy_2')
-rw-r--r--keyboards/handwired/splittest/teensy_2/config.h31
-rw-r--r--keyboards/handwired/splittest/teensy_2/readme.md11
-rw-r--r--keyboards/handwired/splittest/teensy_2/rules.mk58
-rw-r--r--keyboards/handwired/splittest/teensy_2/teensy_2.c14
4 files changed, 114 insertions, 0 deletions
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 @@
+/* Copyright 2019
+ *
+ * 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
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "config_common.h"
+
+// wiring of each half
+#define MATRIX_ROW_PINS { F5 }
+#define MATRIX_COL_PINS { F7 }
+#define SPLIT_HAND_PIN F0
+#define SOFT_SERIAL_PIN D1
+
+/* ws2812 RGB LED */
+#define RGB_DI_PIN D3
+
+// required for teensy slave otherwise it "locks up" during startup
+#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 @@
+# Teensy 2.0 splittest
+
+To trigger keypress, short together pins *F5* and *F7*
+
+## Wiring
+- Add switches to both Teensy 2s across F5 and F7 pins
+- Add pull-up resistor to left side between VCC and F0
+- Add pull-down resistors to right side between GND and F0
+- Connect the following pins on both sides together: D0, D1, GND, VCC
+- Add I2C 4.7kOhm resistors between D0 and VCC, and D1 and VCC
+- 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 @@
+# MCU name
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# atmega32a bootloadHID
+BOOTLOADER = halfkay
+
+
+# If you don't know the bootloader type, then you can specify the
+# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+# 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 @@
+#include QMK_KEYBOARD_H
+
+bool is_keyboard_master(void) {
+ // TODO: replace this override once USB host detection is implemented
+ // SPLIT_HAND_PIN Combined with MASTER_LEFT or MASTER_RIGHT, gives a crude
+ // way to force teensy to run as slave/master
+ setPinInput(SPLIT_HAND_PIN);
+
+#if defined(MASTER_RIGHT)
+ return !readPin(SPLIT_HAND_PIN);
+#else
+ return readPin(SPLIT_HAND_PIN);
+#endif
+}