summaryrefslogtreecommitdiffstats
path: root/keyboards/launchpad
diff options
context:
space:
mode:
authorThat-Canadian <Poole.Chris.11@gmail.com>2018-04-20 17:51:34 +0200
committerDrashna Jaelre <drashna@live.com>2018-04-20 17:51:34 +0200
commit1de6458921963d40d812e696528d21fed744a732 (patch)
treeee1beeef2387a88ac44990ce5b45a75fb3be4c07 /keyboards/launchpad
parent3bb647910a09146309cef59eedd78be72697c88f (diff)
downloadqmk_firmware-1de6458921963d40d812e696528d21fed744a732.tar.gz
qmk_firmware-1de6458921963d40d812e696528d21fed744a732.tar.xz
Launchpad (#2767)
* Line ending stuff again * Added base launchpad files and a default layout * Updated KEYMAP to LAYOUT, also editing default keymap a bit and added a readme
Diffstat (limited to 'keyboards/launchpad')
-rw-r--r--keyboards/launchpad/config.h75
-rw-r--r--keyboards/launchpad/keymaps/default/keymap.c66
-rw-r--r--keyboards/launchpad/keymaps/default/rules.mk25
-rw-r--r--keyboards/launchpad/launchpad.c1
-rw-r--r--keyboards/launchpad/launchpad.h11
-rw-r--r--keyboards/launchpad/readme.md32
-rw-r--r--keyboards/launchpad/rev1/config.h32
-rw-r--r--keyboards/launchpad/rev1/rev1.c14
-rw-r--r--keyboards/launchpad/rev1/rev1.h24
-rw-r--r--keyboards/launchpad/rev1/rules.mk3
-rw-r--r--keyboards/launchpad/rules.mk67
11 files changed, 350 insertions, 0 deletions
diff --git a/keyboards/launchpad/config.h b/keyboards/launchpad/config.h
new file mode 100644
index 000000000..9d1e310d3
--- /dev/null
+++ b/keyboards/launchpad/config.h
@@ -0,0 +1,75 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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
+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/>.
+*/
+
+#ifndef CONFIG_H
+#define CONFIG_H
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x1337
+#define PRODUCT_ID 0x6007
+#define MANUFACTURER Maple Computing
+#define PRODUCT Launch Pad
+#define DESCRIPTION An all-in-on macropad
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 2
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCING_DELAY 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
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+#ifdef SUBPROJECT_rev1
+ #include "rev1/config.h"
+#endif
+
+#endif
diff --git a/keyboards/launchpad/keymaps/default/keymap.c b/keyboards/launchpad/keymaps/default/keymap.c
new file mode 100644
index 000000000..67103576d
--- /dev/null
+++ b/keyboards/launchpad/keymaps/default/keymap.c
@@ -0,0 +1,66 @@
+// Below layout is based upon /u/That-Canadian's planck layout
+#include "launchpad.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+
+#define _FUNC 15
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+// Defines for task manager and such
+#define CALTDEL LCTL(LALT(KC_DEL))
+#define TSKMGR LCTL(LSFT(KC_ESC))
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-------------.
+ * | 1 | 2 |
+ * |------+------|
+ * | 3 | 4 |
+ * |------+------|
+ * | 5 | 6 |
+ * |------+------|
+ * | FUNC | 8 |
+ * `-------------'
+ */
+[_QWERTY] = LAYOUT( \
+ KC_1, KC_2, \
+ KC_3, KC_4, \
+ KC_5, KC_6, \
+ MO(_FUNC), KC_8 \
+),
+
+/* Function
+ * ,-------------.
+ * | Q |CALDEL|
+ * |------+------|
+ * | A |TSKMGR|
+ * |------+------|
+ * | Z | X |
+ * |------+------|
+ * | | C |
+ * `-------------'
+ */
+[_FUNC] = LAYOUT( \
+ KC_Q, CALTDEL, \
+ KC_A, TSKMGR, \
+ KC_Z, KC_X, \
+ _______, KC_C \
+)
+
+};
+
+void matrix_init_user(void) {
+
+}
diff --git a/keyboards/launchpad/keymaps/default/rules.mk b/keyboards/launchpad/keymaps/default/rules.mk
new file mode 100644
index 000000000..260b9d8fa
--- /dev/null
+++ b/keyboards/launchpad/keymaps/default/rules.mk
@@ -0,0 +1,25 @@
+
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = no # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/launchpad/launchpad.c b/keyboards/launchpad/launchpad.c
new file mode 100644
index 000000000..cc2812a76
--- /dev/null
+++ b/keyboards/launchpad/launchpad.c
@@ -0,0 +1 @@
+#include "launchpad.h"
diff --git a/keyboards/launchpad/launchpad.h b/keyboards/launchpad/launchpad.h
new file mode 100644
index 000000000..85432de0a
--- /dev/null
+++ b/keyboards/launchpad/launchpad.h
@@ -0,0 +1,11 @@
+#ifndef LAUNCHPAD_H
+#define LAUNCHPAD_H
+
+#ifdef KEYBOARD_launchpad_rev1
+ #include "rev1.h"
+#endif
+
+#include "quantum.h"
+
+
+#endif
diff --git a/keyboards/launchpad/readme.md b/keyboards/launchpad/readme.md
new file mode 100644
index 000000000..80b5de321
--- /dev/null
+++ b/keyboards/launchpad/readme.md
@@ -0,0 +1,32 @@
+Launch Pad
+===
+
+![Launch Pad](https://i.imgur.com/WVTe0Ku.png)
+
+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+A budget-minded, 4-8 key macro-pad with built in legs, plate & case.
+
+Supports MX & Alps switches. 2x 1u or 1x 2u supported for each row.
+
+Supports 2u PCB-Mount stabilizers.
+
+Runs off of 1x Pro Micro & 8x diodes (1n4148).
+
+Optional "Reset" switch can be used on the PCB.
+
+A fantastic project for beginners to learn to solder, veteran's of the hobby who want to add an easy macro-pad to their collection, and everyone in between.
+
+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+Make example for this keyboard (after setting up your build environment):
+
+ make launchpad/rev1:default
+
+See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
+
+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+Due to PCB tolerance issues outside of our control, the snap-apart legs included on the PCB may need extra padding to prevent a small amount of wobbling once placed properly. We have included small, clear, and semi-permanent "glue dots" in each order (PCB Only -and- Full Kit) to help with this. You may also use plastic wrap, tape, Elmer's glue, hot glue, rubber cement, etc. We advise against using anything more "permanent" in case you wish to make changes to your Launch Pad in the future. It is also best to attach legs after all of your soldering and building is finished, to get the most accurate feel for your Launch Pad.
+
+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- \ No newline at end of file
diff --git a/keyboards/launchpad/rev1/config.h b/keyboards/launchpad/rev1/config.h
new file mode 100644
index 000000000..67a415422
--- /dev/null
+++ b/keyboards/launchpad/rev1/config.h
@@ -0,0 +1,32 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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
+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/>.
+*/
+
+#ifndef REV1_CONFIG_H
+#define REV1_CONFIG_H
+
+#include "../config.h"
+
+#define DEVICE_VER 0x0001
+
+/* Let's Macro V2 pin-out */
+#define MATRIX_ROW_PINS { C6, B1, B3, D7 }
+#define MATRIX_COL_PINS { D2, F7 }
+#define UNUSED_PINS
+
+#define DIODE_DIRECTION COL2ROW
+
+#endif
diff --git a/keyboards/launchpad/rev1/rev1.c b/keyboards/launchpad/rev1/rev1.c
new file mode 100644
index 000000000..a7aec80e1
--- /dev/null
+++ b/keyboards/launchpad/rev1/rev1.c
@@ -0,0 +1,14 @@
+#include "launchpad.h"
+
+void matrix_init_kb(void) {
+
+ // JTAG disable for PORT F. write JTD bit twice within four cycles.
+ MCUCR |= (1<<JTD);
+ MCUCR |= (1<<JTD);
+
+ // Undo init of RX LED, we use that port currently
+ //DDRB &= ~(1<<0);
+
+ matrix_init_user();
+
+}; \ No newline at end of file
diff --git a/keyboards/launchpad/rev1/rev1.h b/keyboards/launchpad/rev1/rev1.h
new file mode 100644
index 000000000..fd692cad1
--- /dev/null
+++ b/keyboards/launchpad/rev1/rev1.h
@@ -0,0 +1,24 @@
+#ifndef REV1_H
+#define REV1_H
+
+#include "../launchpad.h"
+
+//void promicro_bootloader_jmp(bool program);
+#include "quantum.h"
+
+//void promicro_bootloader_jmp(bool program);
+
+#define LAYOUT( \
+ K00, K01, \
+ K10, K11, \
+ K20, K21, \
+ K30, K31 \
+ ) \
+ { \
+ { K00, K01 }, \
+ { K10, K11 }, \
+ { K20, K21 }, \
+ { K30, K31 } \
+ }
+
+#endif \ No newline at end of file
diff --git a/keyboards/launchpad/rev1/rules.mk b/keyboards/launchpad/rev1/rules.mk
new file mode 100644
index 000000000..bafce654a
--- /dev/null
+++ b/keyboards/launchpad/rev1/rules.mk
@@ -0,0 +1,3 @@
+BACKLIGHT_ENABLE = no
+RGBLIGHT_ENABLE = no
+AUDIO_ENABLE = no \ No newline at end of file
diff --git a/keyboards/launchpad/rules.mk b/keyboards/launchpad/rules.mk
new file mode 100644
index 000000000..2f9349a9b
--- /dev/null
+++ b/keyboards/launchpad/rules.mk
@@ -0,0 +1,67 @@
+# MCU name
+#MCU = at90usb1287
+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)
+
+# Bootloader
+# This definition is optional, and if your keyboard supports multiple bootloaders of
+# different sizes, comment this out, and the correct address will be loaded
+# automatically (+60). See bootloader.mk for all options.
+BOOTLOADER = caterina
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = no # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
+API_SYSEX_ENABLE = no
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+DEFAULT_FOLDER = launchpad/rev1 \ No newline at end of file