From 1de6458921963d40d812e696528d21fed744a732 Mon Sep 17 00:00:00 2001 From: That-Canadian Date: Fri, 20 Apr 2018 08:51:34 -0700 Subject: [PATCH] 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 --- keyboards/launchpad/config.h | 75 ++++++++++++++++++++ keyboards/launchpad/keymaps/default/keymap.c | 66 +++++++++++++++++ keyboards/launchpad/keymaps/default/rules.mk | 25 +++++++ keyboards/launchpad/launchpad.c | 1 + keyboards/launchpad/launchpad.h | 11 +++ keyboards/launchpad/readme.md | 32 +++++++++ keyboards/launchpad/rev1/config.h | 32 +++++++++ keyboards/launchpad/rev1/rev1.c | 14 ++++ keyboards/launchpad/rev1/rev1.h | 24 +++++++ keyboards/launchpad/rev1/rules.mk | 3 + keyboards/launchpad/rules.mk | 67 +++++++++++++++++ 11 files changed, 350 insertions(+) create mode 100644 keyboards/launchpad/config.h create mode 100644 keyboards/launchpad/keymaps/default/keymap.c create mode 100644 keyboards/launchpad/keymaps/default/rules.mk create mode 100644 keyboards/launchpad/launchpad.c create mode 100644 keyboards/launchpad/launchpad.h create mode 100644 keyboards/launchpad/readme.md create mode 100644 keyboards/launchpad/rev1/config.h create mode 100644 keyboards/launchpad/rev1/rev1.c create mode 100644 keyboards/launchpad/rev1/rev1.h create mode 100644 keyboards/launchpad/rev1/rules.mk create mode 100644 keyboards/launchpad/rules.mk diff --git a/keyboards/launchpad/config.h b/keyboards/launchpad/config.h new file mode 100644 index 0000000000..9d1e310d3e --- /dev/null +++ b/keyboards/launchpad/config.h @@ -0,0 +1,75 @@ +/* +Copyright 2012 Jun Wako + +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 . +*/ + +#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 0000000000..67103576d9 --- /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 0000000000..260b9d8fad --- /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 0000000000..cc2812a76c --- /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 0000000000..85432de0ad --- /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 0000000000..80b5de3219 --- /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 0000000000..67a4154226 --- /dev/null +++ b/keyboards/launchpad/rev1/config.h @@ -0,0 +1,32 @@ +/* +Copyright 2012 Jun Wako + +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 . +*/ + +#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 0000000000..a7aec80e10 --- /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<