aboutsummaryrefslogtreecommitdiffstats
path: root/keyboards
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards')
-rw-r--r--keyboards/planck/keymaps/brandon/config.h105
-rw-r--r--keyboards/planck/keymaps/circuit/config.h102
-rw-r--r--keyboards/planck/keymaps/default/keymap.c6
-rw-r--r--keyboards/planck/keymaps/khord/config.h2
-rw-r--r--keyboards/planck/keymaps/pvc/config.h41
-rw-r--r--keyboards/planck/keymaps/vifon/config.h99
-rw-r--r--keyboards/planck/keymaps/zach/config.h74
-rw-r--r--keyboards/planck/light/config.h28
-rw-r--r--keyboards/planck/light/info.json7
-rw-r--r--keyboards/planck/light/light.c39
-rw-r--r--keyboards/planck/light/light.h23
-rw-r--r--keyboards/planck/light/rules.mk9
-rw-r--r--keyboards/planck/planck.c1
-rw-r--r--keyboards/planck/rev3/rules.mk11
-rw-r--r--keyboards/planck/rev4/rules.mk10
-rw-r--r--keyboards/planck/rev5/rules.mk8
-rw-r--r--keyboards/planck/rules.mk9
17 files changed, 239 insertions, 335 deletions
diff --git a/keyboards/planck/keymaps/brandon/config.h b/keyboards/planck/keymaps/brandon/config.h
index 5442ebf75..29a07dc63 100644
--- a/keyboards/planck/keymaps/brandon/config.h
+++ b/keyboards/planck/keymaps/brandon/config.h
@@ -1,68 +1,30 @@
-/*
-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
-
-#define TAPPING_TERM 200
-
-#include "config_common.h"
-
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0xFEED
-#define PRODUCT_ID 0x6060
-#define MANUFACTURER Ortholinear Keyboards
-#define PRODUCT The Planck Keyboard
-#define DESCRIPTION A compact ortholinear keyboard
-
-/* key matrix size */
-#define MATRIX_ROWS 4
-#define MATRIX_COLS 12
-
-/* Planck PCB default pin-out */
-#define MATRIX_ROW_PINS { D0, D5, B5, B6 }
-#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }
-#define UNUSED_PINS
-
-#define AUDIO_VOICES
-
-#define BACKLIGHT_PIN B7
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
-/* COL2ROW or ROW2COL */
-#define DIODE_DIRECTION COL2ROW
+#include "../../config.h"
-/* define if matrix has ghost */
-//#define MATRIX_HAS_GHOST
+/*
+ * MIDI options
+ */
-/* number of backlight levels */
-#define BACKLIGHT_LEVELS 3
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
-/* Set 0 if debouncing isn't needed */
-#define DEBOUNCING_DELAY 5
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+#define MIDI_BASIC
-/* 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
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
-/* key combination for command */
-#define IS_COMMAND() ( \
- keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
-)
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 2
#define MOUSEKEY_INTERVAL 20
#define MOUSEKEY_DELAY 0
@@ -70,29 +32,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MOUSEKEY_MAX_SPEED 7
#define MOUSEKEY_WHEEL_DELAY 0
-/*
- * 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_rev3
- #include "rev3/config.h"
-#endif
-#ifdef SUBPROJECT_rev4
- #include "rev4/config.h"
-#endif
-
#endif
diff --git a/keyboards/planck/keymaps/circuit/config.h b/keyboards/planck/keymaps/circuit/config.h
index 22244f4a7..4c6158199 100644
--- a/keyboards/planck/keymaps/circuit/config.h
+++ b/keyboards/planck/keymaps/circuit/config.h
@@ -1,91 +1,29 @@
-/*
-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"
-
-/* Tap-dance interval definition */
-#define TAPPING_TERM 200
-
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0xFEED
-#define PRODUCT_ID 0x6060
-#define MANUFACTURER Ortholinear Keyboards
-#define PRODUCT The Planck Keyboard
-#define DESCRIPTION A compact ortholinear keyboard
-
-/* key matrix size */
-#define MATRIX_ROWS 4
-#define MATRIX_COLS 12
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
-/* Planck PCB default pin-out */
-#define MATRIX_ROW_PINS { D0, D5, B5, B6 }
-#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }
-#define UNUSED_PINS
-
-#define BACKLIGHT_PIN B7
-
-/* COL2ROW or ROW2COL */
-#define DIODE_DIRECTION COL2ROW
-
-/* define if matrix has ghost */
-//#define MATRIX_HAS_GHOST
-
-/* number of backlight levels */
-#define BACKLIGHT_LEVELS 3
-
-/* 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)) \
-)
+#include "../../config.h"
/*
- * Feature disable options
- * These options are also useful to firmware size reduction.
+ * MIDI options
*/
-/* disable debug print */
-//#define NO_DEBUG
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
-/* disable print */
-//#define NO_PRINT
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+#define MIDI_BASIC
-/* disable action features */
-//#define NO_ACTION_LAYER
-//#define NO_ACTION_TAPPING
-//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
-#ifdef SUBPROJECT_rev3
- #include "rev3/config.h"
-#endif
-#ifdef SUBPROJECT_rev4
- #include "rev4/config.h"
-#endif
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 2
-#endif
+#endif \ No newline at end of file
diff --git a/keyboards/planck/keymaps/default/keymap.c b/keyboards/planck/keymaps/default/keymap.c
index 87789e1d9..04fc33640 100644
--- a/keyboards/planck/keymaps/default/keymap.c
+++ b/keyboards/planck/keymaps/default/keymap.c
@@ -163,9 +163,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-----------------------------------------------------------------------------------'
*/
[_ADJUST] = {
- {_______, RESET, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL },
+ {_______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL },
{_______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______},
- {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______},
+ {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______},
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
}
@@ -261,4 +261,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
break;
}
return true;
-} \ No newline at end of file
+}
diff --git a/keyboards/planck/keymaps/khord/config.h b/keyboards/planck/keymaps/khord/config.h
index 5482aba52..43c8001cf 100644
--- a/keyboards/planck/keymaps/khord/config.h
+++ b/keyboards/planck/keymaps/khord/config.h
@@ -1,7 +1,7 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
-#include "../../config.h"
+#include "config_common.h"
#ifdef AUDIO_ENABLE
#define STARTUP_SONG SONG(SONIC_RING)
diff --git a/keyboards/planck/keymaps/pvc/config.h b/keyboards/planck/keymaps/pvc/config.h
index 17f351756..539423735 100644
--- a/keyboards/planck/keymaps/pvc/config.h
+++ b/keyboards/planck/keymaps/pvc/config.h
@@ -29,31 +29,28 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }
#define UNUSED_PINS
-/* COL2ROW or ROW2COL */
-#define DIODE_DIRECTION COL2ROW
-
-/* define if matrix has ghost */
-//#define MATRIX_HAS_GHOST
-
-/* number of backlight levels */
-#define BACKLIGHT_LEVELS 3
-
-/* Set 0 if debouncing isn't needed */
-#define DEBOUNCING_DELAY 5
+/*
+ * MIDI options
+ */
-/* 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
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
-/* key combination for command */
-#define IS_COMMAND() ( \
- keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
-)
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+#define MIDI_BASIC
-#define BACKLIGHT_PIN B7
-#define BACKLIGHT_BREATHING
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 2
/*
* Feature disable options
* These options are also useful to firmware size reduction.
@@ -72,6 +69,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Only print user print statements */
#define USER_PRINT
+#define BACKLIGHT_BREATHING
/* disable action features */
//#define NO_ACTION_LAYER
@@ -79,5 +77,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
-
#endif
diff --git a/keyboards/planck/keymaps/vifon/config.h b/keyboards/planck/keymaps/vifon/config.h
index a08b37cbe..4cb4a1235 100644
--- a/keyboards/planck/keymaps/vifon/config.h
+++ b/keyboards/planck/keymaps/vifon/config.h
@@ -1,82 +1,30 @@
-/*
-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 0xFEED
-#define PRODUCT_ID 0x6060
-#define MANUFACTURER Ortholinear Keyboards
-#define PRODUCT The Planck Keyboard
-#define DESCRIPTION A compact ortholinear keyboard
-
-/* key matrix size */
-#define MATRIX_ROWS 4
-#define MATRIX_COLS 12
-
-/* Planck PCB default pin-out */
-#define MATRIX_ROW_PINS { D0, D5, B5, B6 }
-#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }
-#define UNUSED_PINS
-
-#define BACKLIGHT_PIN B7
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
-/* COL2ROW or ROW2COL */
-#define DIODE_DIRECTION COL2ROW
-
-/* define if matrix has ghost */
-//#define MATRIX_HAS_GHOST
-
-/* number of backlight levels */
-#define BACKLIGHT_LEVELS 3
-
-/* 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)) \
-)
+#include "../../config.h"
/*
- * Feature disable options
- * These options are also useful to firmware size reduction.
+ * MIDI options
*/
-/* disable debug print */
-//#define NO_DEBUG
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
-/* disable print */
-//#define NO_PRINT
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+#define MIDI_BASIC
-/* disable action features */
-//#define NO_ACTION_LAYER
-//#define NO_ACTION_TAPPING
-//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 2
/* prevent the modifiers from being stuck, sacrificing some memory */
#define PREVENT_STUCK_MODIFIERS
@@ -86,11 +34,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#define DYNAMIC_MACRO_SIZE 256
-#ifdef SUBPROJECT_rev3
- #include "rev3/config.h"
-#endif
-#ifdef SUBPROJECT_rev4
- #include "rev4/config.h"
-#endif
-
#endif
diff --git a/keyboards/planck/keymaps/zach/config.h b/keyboards/planck/keymaps/zach/config.h
index d309c9493..19a3856a3 100644
--- a/keyboards/planck/keymaps/zach/config.h
+++ b/keyboards/planck/keymaps/zach/config.h
@@ -1,55 +1,30 @@
-/*
-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 0xFEED
-#define PRODUCT_ID 0x6060
-#define MANUFACTURER Ortholinear Keyboards
-#define PRODUCT The Planck Keyboard
-#define DESCRIPTION A compact ortholinear keyboard
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
-/* key matrix size */
-#define MATRIX_ROWS 4
-#define MATRIX_COLS 12
+#include "../../config.h"
-/* Planck PCB default pin-out */
-#define MATRIX_ROW_PINS { D0, D5, B5, B6 }
-#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }
-#define UNUSED_PINS
-
-#define BACKLIGHT_PIN B7
+/*
+ * MIDI options
+ */
-/* COL2ROW or ROW2COL */
-#define DIODE_DIRECTION COL2ROW
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
-/* define if matrix has ghost */
-//#define MATRIX_HAS_GHOST
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+#define MIDI_BASIC
-//#define BACKLIGHT_BREATHING // LED breathing
-/* number of backlight levels */
-#define BACKLIGHT_LEVELS 5
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
-/* Set 0 if debouncing isn't needed */
-#define DEBOUNCING_DELAY 5
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 2
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
//#define LOCKING_SUPPORT_ENABLE
@@ -84,11 +59,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define DYNAMIC_MACRO_ENABLE // Enable if you need to use the macro functionality
//#define SPACE_CADET // Parenthesis on L/R shift
-#ifdef SUBPROJECT_rev3
- #include "rev3/config.h"
-#endif
-#ifdef SUBPROJECT_rev4
- #include "rev4/config.h"
-#endif
-
#endif
diff --git a/keyboards/planck/light/config.h b/keyboards/planck/light/config.h
new file mode 100644
index 000000000..71c924904
--- /dev/null
+++ b/keyboards/planck/light/config.h
@@ -0,0 +1,28 @@
+#ifndef LIGHT_CONFIG_H
+#define LIGHT_CONFIG_H
+
+#include "config_common.h"
+
+#undef PRODUCT
+#define PRODUCT Planck Light
+#undef PRODUCT_ID
+#define PRODUCT_ID 0x6065
+#define DEVICE_VER 0x0001
+
+#undef MATRIX_ROW_PINS
+#undef MATRIX_COL_PINS
+
+#define MATRIX_ROW_PINS { B0, E7, F0, F1 }
+#define MATRIX_COL_PINS { E6, E3, E4, D3, D4, D5, C0, A7, A6, E1, E0, D7 }
+
+#define C6_AUDIO
+#define B5_AUDIO
+
+#undef BACKLIGHT_PIN
+
+#define BACKLIGHT_PIN A5
+
+#define NO_USB_STARTUP_CHECK
+
+
+#endif \ No newline at end of file
diff --git a/keyboards/planck/light/info.json b/keyboards/planck/light/info.json
new file mode 100644
index 000000000..f620bc413
--- /dev/null
+++ b/keyboards/planck/light/info.json
@@ -0,0 +1,7 @@
+{
+ "keyboard_name": "Planck Light",
+ "keyboard_folder": "planck/light",
+ "identifier": "FEED:6065:0001",
+ "processor": "at90usb1286",
+ "bootloader": "qmk-dfu",
+} \ No newline at end of file
diff --git a/keyboards/planck/light/light.c b/keyboards/planck/light/light.c
new file mode 100644
index 000000000..96261616c
--- /dev/null
+++ b/keyboards/planck/light/light.c
@@ -0,0 +1,39 @@
+/* Copyright 2017 Jason Williams
+ * Copyright 2017 Jack Humbert
+ *
+ * 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/>.
+ */
+
+#include "light.h"
+
+void matrix_init_kb(void) {
+
+ // Turn status LED on
+ DDRD |= (1<<6);
+ PORTD |= (1<<6);
+
+ matrix_init_user();
+}
+
+bool process_record_kb(uint16_t keycode, keyrecord_t *record)
+{
+ return process_record_user(keycode, record);
+}
+
+uint16_t backlight_task_counter = 0;
+
+void matrix_scan_kb(void)
+{
+ matrix_scan_user();
+} \ No newline at end of file
diff --git a/keyboards/planck/light/light.h b/keyboards/planck/light/light.h
new file mode 100644
index 000000000..111f19865
--- /dev/null
+++ b/keyboards/planck/light/light.h
@@ -0,0 +1,23 @@
+/* Copyright 2017 Jason Williams
+ * Copyright 2017 Jack Humbert
+ *
+ * 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 LIGHT_H
+#define LIGHT_H
+
+#include "planck.h"
+
+#endif \ No newline at end of file
diff --git a/keyboards/planck/light/rules.mk b/keyboards/planck/light/rules.mk
new file mode 100644
index 000000000..02c39c43a
--- /dev/null
+++ b/keyboards/planck/light/rules.mk
@@ -0,0 +1,9 @@
+MIDI_ENABLE = yes
+AUDIO_ENABLE = yes # Audio output on port C6
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+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 = yes # Enable keyboard backlight functionality
+
+OPT_DEFS += -DBOOTLOADER_SIZE=8192
+
+MCU = at90usb1286 \ No newline at end of file
diff --git a/keyboards/planck/planck.c b/keyboards/planck/planck.c
index 3980b02f5..1d2f91bc5 100644
--- a/keyboards/planck/planck.c
+++ b/keyboards/planck/planck.c
@@ -10,6 +10,7 @@ const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
};
#endif
+__attribute__ ((weak))
void matrix_init_kb(void) {
// Turn status LED on
DDRE |= (1<<6);
diff --git a/keyboards/planck/rev3/rules.mk b/keyboards/planck/rev3/rules.mk
index 114857100..9ecde5958 100644
--- a/keyboards/planck/rev3/rules.mk
+++ b/keyboards/planck/rev3/rules.mk
@@ -1 +1,10 @@
-AUDIO_ENABLE = no # Audio output on port C6 \ No newline at end of file
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/planck/rev4/rules.mk b/keyboards/planck/rev4/rules.mk
index 3b22e0a01..0001fb50f 100644
--- a/keyboards/planck/rev4/rules.mk
+++ b/keyboards/planck/rev4/rules.mk
@@ -1 +1,9 @@
-AUDIO_ENABLE = yes # Audio output on port C6 \ No newline at end of file
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+AUDIO_ENABLE = yes # Audio output on port C6
diff --git a/keyboards/planck/rev5/rules.mk b/keyboards/planck/rev5/rules.mk
index 3b22e0a01..29eae4b49 100644
--- a/keyboards/planck/rev5/rules.mk
+++ b/keyboards/planck/rev5/rules.mk
@@ -1 +1,9 @@
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
AUDIO_ENABLE = yes # Audio output on port C6 \ No newline at end of file
diff --git a/keyboards/planck/rules.mk b/keyboards/planck/rules.mk
index df575cd6b..1fed5fa58 100644
--- a/keyboards/planck/rules.mk
+++ b/keyboards/planck/rules.mk
@@ -37,15 +37,6 @@ F_USB = $(F_CPU)
# Interrupt driven control endpoint task(+60)
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-# Boot Section Size in *bytes*
-# Teensy halfKay 512
-# Teensy++ halfKay 1024
-# Atmel DFU loader 4096
-# LUFA bootloader 4096
-# USBaspLoader 2048
-OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
# 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