aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThat-Canadian <Poole.Chris.11@gmail.com>2018-04-20 08:51:34 -0700
committerDrashna Jaelre <drashna@live.com>2018-04-20 08:51:34 -0700
commit1de6458921963d40d812e696528d21fed744a732 (patch)
treeee1beeef2387a88ac44990ce5b45a75fb3be4c07
parent3bb647910a09146309cef59eedd78be72697c88f (diff)
downloadqmk_firmware-1de6458921963d40d812e696528d21fed744a732.tar.gz
qmk_firmware-1de6458921963d40d812e696528d21fed744a732.zip
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
-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 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#ifndef CONFIG_H
19#define CONFIG_H
20
21#include "config_common.h"
22
23/* USB Device descriptor parameter */
24#define VENDOR_ID 0x1337
25#define PRODUCT_ID 0x6007
26#define MANUFACTURER Maple Computing
27#define PRODUCT Launch Pad
28#define DESCRIPTION An all-in-on macropad
29
30/* key matrix size */
31#define MATRIX_ROWS 4
32#define MATRIX_COLS 2
33
34/* COL2ROW or ROW2COL */
35#define DIODE_DIRECTION COL2ROW
36
37/* define if matrix has ghost */
38//#define MATRIX_HAS_GHOST
39
40/* Set 0 if debouncing isn't needed */
41#define DEBOUNCING_DELAY 5
42
43/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
44#define LOCKING_SUPPORT_ENABLE
45/* Locking resynchronize hack */
46#define LOCKING_RESYNC_ENABLE
47
48/* key combination for command */
49#define IS_COMMAND() ( \
50 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
51)
52
53/*
54 * Feature disable options
55 * These options are also useful to firmware size reduction.
56 */
57
58/* disable debug print */
59//#define NO_DEBUG
60
61/* disable print */
62//#define NO_PRINT
63
64/* disable action features */
65//#define NO_ACTION_LAYER
66//#define NO_ACTION_TAPPING
67//#define NO_ACTION_ONESHOT
68//#define NO_ACTION_MACRO
69//#define NO_ACTION_FUNCTION
70
71#ifdef SUBPROJECT_rev1
72 #include "rev1/config.h"
73#endif
74
75#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 @@
1// Below layout is based upon /u/That-Canadian's planck layout
2#include "launchpad.h"
3#include "action_layer.h"
4#include "eeconfig.h"
5
6extern keymap_config_t keymap_config;
7
8// Each layer gets a name for readability, which is then used in the keymap matrix below.
9// The underscores don't mean anything - you can have a layer called STUFF or any other name.
10// Layer names don't all need to be of the same length, obviously, and you can also skip them
11// entirely and just use numbers.
12#define _QWERTY 0
13
14#define _FUNC 15
15
16// Fillers to make layering more clear
17#define _______ KC_TRNS
18#define XXXXXXX KC_NO
19
20// Defines for task manager and such
21#define CALTDEL LCTL(LALT(KC_DEL))
22#define TSKMGR LCTL(LSFT(KC_ESC))
23
24const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
25
26/* Qwerty
27 * ,-------------.
28 * | 1 | 2 |
29 * |------+------|
30 * | 3 | 4 |
31 * |------+------|
32 * | 5 | 6 |
33 * |------+------|
34 * | FUNC | 8 |
35 * `-------------'
36 */
37[_QWERTY] = LAYOUT( \
38 KC_1, KC_2, \
39 KC_3, KC_4, \
40 KC_5, KC_6, \
41 MO(_FUNC), KC_8 \
42),
43
44/* Function
45 * ,-------------.
46 * | Q |CALDEL|
47 * |------+------|
48 * | A |TSKMGR|
49 * |------+------|
50 * | Z | X |
51 * |------+------|
52 * | | C |
53 * `-------------'
54 */
55[_FUNC] = LAYOUT( \
56 KC_Q, CALTDEL, \
57 KC_A, TSKMGR, \
58 KC_Z, KC_X, \
59 _______, KC_C \
60)
61
62};
63
64void matrix_init_user(void) {
65
66}
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 @@
1
2
3# Build Options
4# change to "no" to disable the options, or define them in the Makefile in
5# the appropriate keymap folder that will get included automatically
6#
7BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
8MOUSEKEY_ENABLE = no # Mouse keys(+4700)
9EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
10CONSOLE_ENABLE = no # Console for debug(+400)
11COMMAND_ENABLE = no # Commands for debug and configuration
12NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
13BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
14MIDI_ENABLE = no # MIDI controls
15AUDIO_ENABLE = no # Audio output on port C6
16UNICODE_ENABLE = no # Unicode
17BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
18RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
19
20# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
21SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
22
23ifndef QUANTUM_DIR
24 include ../../../../Makefile
25endif
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 @@
1#ifndef LAUNCHPAD_H
2#define LAUNCHPAD_H
3
4#ifdef KEYBOARD_launchpad_rev1
5 #include "rev1.h"
6#endif
7
8#include "quantum.h"
9
10
11#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 @@
1Launch Pad
2===
3
4![Launch Pad](https://i.imgur.com/WVTe0Ku.png)
5
6-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
7
8A budget-minded, 4-8 key macro-pad with built in legs, plate & case.
9
10Supports MX & Alps switches. 2x 1u or 1x 2u supported for each row.
11
12Supports 2u PCB-Mount stabilizers.
13
14Runs off of 1x Pro Micro & 8x diodes (1n4148).
15
16Optional "Reset" switch can be used on the PCB.
17
18A 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.
19
20-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
21
22Make example for this keyboard (after setting up your build environment):
23
24 make launchpad/rev1:default
25
26See [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.
27
28-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
29
30Due 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.
31
32-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- \ 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 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#ifndef REV1_CONFIG_H
19#define REV1_CONFIG_H
20
21#include "../config.h"
22
23#define DEVICE_VER 0x0001
24
25/* Let's Macro V2 pin-out */
26#define MATRIX_ROW_PINS { C6, B1, B3, D7 }
27#define MATRIX_COL_PINS { D2, F7 }
28#define UNUSED_PINS
29
30#define DIODE_DIRECTION COL2ROW
31
32#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 @@
1#include "launchpad.h"
2
3void matrix_init_kb(void) {
4
5 // JTAG disable for PORT F. write JTD bit twice within four cycles.
6 MCUCR |= (1<<JTD);
7 MCUCR |= (1<<JTD);
8
9 // Undo init of RX LED, we use that port currently
10 //DDRB &= ~(1<<0);
11
12 matrix_init_user();
13
14}; \ 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 @@
1#ifndef REV1_H
2#define REV1_H
3
4#include "../launchpad.h"
5
6//void promicro_bootloader_jmp(bool program);
7#include "quantum.h"
8
9//void promicro_bootloader_jmp(bool program);
10
11#define LAYOUT( \
12 K00, K01, \
13 K10, K11, \
14 K20, K21, \
15 K30, K31 \
16 ) \
17 { \
18 { K00, K01 }, \
19 { K10, K11 }, \
20 { K20, K21 }, \
21 { K30, K31 } \
22 }
23
24#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 @@
1BACKLIGHT_ENABLE = no
2RGBLIGHT_ENABLE = no
3AUDIO_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 @@
1# MCU name
2#MCU = at90usb1287
3MCU = atmega32u4
4
5# Processor frequency.
6# This will define a symbol, F_CPU, in all source code files equal to the
7# processor frequency in Hz. You can then use this symbol in your source code to
8# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
9# automatically to create a 32-bit value in your source code.
10#
11# This will be an integer division of F_USB below, as it is sourced by
12# F_USB after it has run through any CPU prescalers. Note that this value
13# does not *change* the processor frequency - it should merely be updated to
14# reflect the processor speed set externally so that the code can use accurate
15# software delays.
16F_CPU = 16000000
17
18#
19# LUFA specific
20#
21# Target architecture (see library "Board Types" documentation).
22ARCH = 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.
35F_USB = $(F_CPU)
36
37# Bootloader
38# This definition is optional, and if your keyboard supports multiple bootloaders of
39# different sizes, comment this out, and the correct address will be loaded
40# automatically (+60). See bootloader.mk for all options.
41BOOTLOADER = caterina
42
43# Interrupt driven control endpoint task(+60)
44OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
45
46# Build Options
47# change to "no" to disable the options, or define them in the Makefile in
48# the appropriate keymap folder that will get included automatically
49#
50BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
51MOUSEKEY_ENABLE = no # Mouse keys(+4700)
52EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
53CONSOLE_ENABLE = no # Console for debug(+400)
54COMMAND_ENABLE = yes # Commands for debug and configuration
55NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
56BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
57MIDI_ENABLE = no # MIDI controls
58AUDIO_ENABLE = no # Audio output on port C6
59UNICODE_ENABLE = no # Unicode
60BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
61RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
62API_SYSEX_ENABLE = no
63
64# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
65SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
66
67DEFAULT_FOLDER = launchpad/rev1 \ No newline at end of file