diff options
27 files changed, 171 insertions, 45 deletions
| diff --git a/build_keyboard.mk b/build_keyboard.mk index 2c86fe55ef..df025714db 100644 --- a/build_keyboard.mk +++ b/build_keyboard.mk @@ -94,6 +94,23 @@ endif  OPT_DEFS += -DKEYBOARD_$(KEYBOARD_FILESAFE) + +ifneq ("$(wildcard $(KEYBOARD_PATH_1)/$(KEYBOARD_FOLDER_1).h)","") +    QMK_KEYBOARD_H = $(KEYBOARD_FOLDER_1).h +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_2)/$(KEYBOARD_FOLDER_2).h)","") +    QMK_KEYBOARD_H = $(KEYBOARD_FOLDER_2).h +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_3)/$(KEYBOARD_FOLDER_3).h)","") +    QMK_KEYBOARD_H = $(KEYBOARD_FOLDER_3).h +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_4)/$(KEYBOARD_FOLDER_4).h)","") +    QMK_KEYBOARD_H = $(KEYBOARD_FOLDER_4).h +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_5)/$(KEYBOARD_FOLDER_5).h)","") +    QMK_KEYBOARD_H = $(KEYBOARD_FOLDER_5).h +endif +  # We can assume a ChibiOS target When MCU_FAMILY is defined , since it's not used for LUFA  ifdef MCU_FAMILY      PLATFORM=CHIBIOS @@ -233,10 +250,12 @@ ifeq ($(strip $(VISUALIZER_ENABLE)), yes)      include $(VISUALIZER_PATH)/visualizer.mk  endif +ALL_CONFIGS := $(PROJECT_CONFIG) $(CONFIG_H) +  OUTPUTS := $(KEYMAP_OUTPUT) $(KEYBOARD_OUTPUT)  $(KEYMAP_OUTPUT)_SRC := $(SRC)  $(KEYMAP_OUTPUT)_DEFS := $(OPT_DEFS) $(GFXDEFS) \ --DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYBOARD_H=\"$(KEYBOARD_FOLDER_1).h\" -DQMK_KEYBOARD_CONFIG_H=\"$(KEYBOARD_PATH_1)/config.h\" \ +-DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYBOARD_H=\"$(QMK_KEYBOARD_H)\" -DQMK_KEYBOARD_CONFIG_H=\"$(KEYBOARD_PATH_1)/config.h\" \  -DQMK_KEYMAP=\"$(KEYMAP)\" -DQMK_KEYMAP_H=\"$(KEYMAP).h\" -DQMK_KEYMAP_CONFIG_H=\"$(KEYMAP_PATH)/config.h\" \  -DQMK_SUBPROJECT -DQMK_SUBPROJECT_H -DQMK_SUBPROJECT_CONFIG_H  $(KEYMAP_OUTPUT)_INC :=  $(VPATH) $(EXTRAINCDIRS) diff --git a/keyboards/planck/config.h b/keyboards/planck/config.h index bc7ec031ec..452a99d746 100644 --- a/keyboards/planck/config.h +++ b/keyboards/planck/config.h @@ -24,7 +24,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #define VENDOR_ID       0xFEED  #define PRODUCT_ID      0x6060  #define MANUFACTURER    OLKB -#define PRODUCT         The Planck Keyboard +#define PRODUCT         Planck  #define DESCRIPTION     A compact ortholinear keyboard  /* key matrix size */ @@ -36,6 +36,11 @@ 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 +#define QMK_ESC_OUTPUT F1 +#define QMK_ESC_INPUT D5 +#define QMK_LED     E6 +#define QMK_SPEAKER C6 +  #define AUDIO_VOICES  #define C6_AUDIO diff --git a/keyboards/planck/keymaps/default/keymap.c b/keyboards/planck/keymaps/default/keymap.c index 48b02de38e..87789e1d93 100644 --- a/keyboards/planck/keymaps/default/keymap.c +++ b/keyboards/planck/keymaps/default/keymap.c @@ -224,8 +224,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {          #ifdef BACKLIGHT_ENABLE            backlight_step();          #endif +        PORTE &= ~(1<<6);        } else {          unregister_code(KC_RSFT); +        PORTE |= (1<<6);        }        return false;        break; diff --git a/keyboards/planck/planck.h b/keyboards/planck/planck.h index 7638b8cc92..6bc6a03209 100644 --- a/keyboards/planck/planck.h +++ b/keyboards/planck/planck.h @@ -32,11 +32,4 @@  #define KEYMAP LAYOUT_planck_grid  #define LAYOUT_ortho_4x12 LAYOUT_planck_grid -#ifdef KEYBOARD_planck_rev3 -    #include "rev3.h" -#endif -#ifdef KEYBOARD_planck_rev4 -    #include "rev4.h" -#endif -  #endif diff --git a/keyboards/planck/rev3/rev3.c b/keyboards/planck/rev3/rev3.c deleted file mode 100644 index 9ccd1d8803..0000000000 --- a/keyboards/planck/rev3/rev3.c +++ /dev/null @@ -1 +0,0 @@ -#include "rev3.h"
\ No newline at end of file diff --git a/keyboards/planck/rev3/rev3.h b/keyboards/planck/rev3/rev3.h deleted file mode 100644 index 50a09741d5..0000000000 --- a/keyboards/planck/rev3/rev3.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef REV3_H -#define REV3_H - -#include "planck.h" - -#endif
\ No newline at end of file diff --git a/keyboards/planck/rev4/rev4.c b/keyboards/planck/rev4/rev4.c deleted file mode 100644 index 98a75d2ed1..0000000000 --- a/keyboards/planck/rev4/rev4.c +++ /dev/null @@ -1 +0,0 @@ -#include "rev4.h"
\ No newline at end of file diff --git a/keyboards/planck/rev4/rev4.h b/keyboards/planck/rev4/rev4.h deleted file mode 100644 index 74ec05460a..0000000000 --- a/keyboards/planck/rev4/rev4.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef REV4_H -#define REV4_H - -#include "planck.h" - -#endif
\ No newline at end of file diff --git a/keyboards/planck/rev5/config.h b/keyboards/planck/rev5/config.h new file mode 100644 index 0000000000..696eda73bc --- /dev/null +++ b/keyboards/planck/rev5/config.h @@ -0,0 +1,8 @@ +#ifndef REV5_CONFIG_H +#define REV5_CONFIG_H + +#include "config_common.h" + +#define DEVICE_VER 0x0005 + +#endif
\ No newline at end of file diff --git a/keyboards/planck/rev5/info.json b/keyboards/planck/rev5/info.json new file mode 100644 index 0000000000..3d984961ae --- /dev/null +++ b/keyboards/planck/rev5/info.json @@ -0,0 +1,3 @@ +{ +  "identifier": "FEED:6060:0005" +}
\ No newline at end of file diff --git a/keyboards/planck/rev5/rules.mk b/keyboards/planck/rev5/rules.mk new file mode 100644 index 0000000000..3b22e0a01b --- /dev/null +++ b/keyboards/planck/rev5/rules.mk @@ -0,0 +1 @@ +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 27753cfda8..df575cd6be 100644 --- a/keyboards/planck/rules.mk +++ b/keyboards/planck/rules.mk @@ -69,4 +69,4 @@ SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend  LAYOUTS = ortho_4x12 planck_mit planck_grid -DEFAULT_FOLDER = planck/rev4 +DEFAULT_FOLDER = planck/rev5 diff --git a/keyboards/preonic/config.h b/keyboards/preonic/config.h index 74db9202d3..172fd645c2 100644 --- a/keyboards/preonic/config.h +++ b/keyboards/preonic/config.h @@ -23,9 +23,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  /* USB Device descriptor parameter */  #define VENDOR_ID       0xFEED  #define PRODUCT_ID      0x6061 -#define DEVICE_VER      0x0001  #define MANUFACTURER    OLKB -#define PRODUCT         The Preonic Keyboard +#define PRODUCT         Preonic  #define DESCRIPTION     A compact ortholinear keyboard  /* key matrix size */ @@ -37,6 +36,11 @@ 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 +#define QMK_ESC_OUTPUT F1 +#define QMK_ESC_INPUT B5 +#define QMK_LED     E6 +#define QMK_SPEAKER C6 +  #define AUDIO_VOICES  #define C6_AUDIO diff --git a/keyboards/preonic/keymaps/default/keymap.c b/keyboards/preonic/keymaps/default/keymap.c index 01f40542ca..c9d04958a0 100644 --- a/keyboards/preonic/keymaps/default/keymap.c +++ b/keyboards/preonic/keymaps/default/keymap.c @@ -117,7 +117,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {    {KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},    {KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL},    {KC_DEL,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, -  {_______, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______}, +  {_______, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______},    {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}  }, @@ -138,7 +138,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {    {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC},    {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_DEL},    {KC_DEL,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS}, -  {_______, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_NUHS, KC_NUBS, _______, _______, _______}, +  {_______, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______},    {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}  }, @@ -157,7 +157,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {   */  [_ADJUST] = {    {KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12}, -  {_______, RESET,   _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, +  {_______, RESET,   DEBUG,   _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL},    {_______, _______, MU_MOD,  AU_ON,   AU_OFF,  AG_NORM, AG_SWAP, QWERTY,  COLEMAK, DVORAK,  _______, _______},    {_______, MUV_DE,  MUV_IN,  MU_ON,   MU_OFF,  MI_ON,   MI_OFF,  _______, _______, _______, _______, _______},    {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} @@ -212,8 +212,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {              #ifdef BACKLIGHT_ENABLE                backlight_step();              #endif +            PORTE &= ~(1<<6);            } else {              unregister_code(KC_RSFT); +            PORTE |= (1<<6);            }            return false;            break; diff --git a/keyboards/preonic/rev1/config.h b/keyboards/preonic/rev1/config.h new file mode 100644 index 0000000000..56dfedd457 --- /dev/null +++ b/keyboards/preonic/rev1/config.h @@ -0,0 +1,25 @@ +/* +Copyright 2017 Jack Humbert <jack.humb@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_common.h" + +#define DEVICE_VER      0x0001 + +#endif
\ No newline at end of file diff --git a/keyboards/preonic/rev1/info.json b/keyboards/preonic/rev1/info.json new file mode 100644 index 0000000000..43a7b495ce --- /dev/null +++ b/keyboards/preonic/rev1/info.json @@ -0,0 +1,3 @@ +{ +  "identifier": "FEED:6061:0001" +}
\ No newline at end of file diff --git a/keyboards/preonic/rev1/rules.mk b/keyboards/preonic/rev1/rules.mk new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/keyboards/preonic/rev1/rules.mk diff --git a/keyboards/preonic/rev2/config.h b/keyboards/preonic/rev2/config.h new file mode 100644 index 0000000000..20f11066be --- /dev/null +++ b/keyboards/preonic/rev2/config.h @@ -0,0 +1,25 @@ +/* +Copyright 2017 Jack Humbert <jack.humb@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 REV2_CONFIG_H +#define REV2_CONFIG_H + +#include "config_common.h" + +#define DEVICE_VER      0x0002 + +#endif
\ No newline at end of file diff --git a/keyboards/preonic/rev2/info.json b/keyboards/preonic/rev2/info.json new file mode 100644 index 0000000000..c8b9b16a7e --- /dev/null +++ b/keyboards/preonic/rev2/info.json @@ -0,0 +1,3 @@ +{ +  "identifier": "FEED:6061:0002" +}
\ No newline at end of file diff --git a/keyboards/preonic/rev2/rules.mk b/keyboards/preonic/rev2/rules.mk new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/keyboards/preonic/rev2/rules.mk diff --git a/keyboards/preonic/rules.mk b/keyboards/preonic/rules.mk index 51104e68ba..acef4d9713 100644 --- a/keyboards/preonic/rules.mk +++ b/keyboards/preonic/rules.mk @@ -55,7 +55,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096  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) +CONSOLE_ENABLE = yes         # Console for debug(+400)  COMMAND_ENABLE = no        # 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 = yes      # Enable keyboard backlight functionality @@ -69,4 +69,6 @@ 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 -LAYOUTS = ortho_5x12
\ No newline at end of file +LAYOUTS = ortho_5x12 + +DEFAULT_FOLDER = preonic/rev2
\ No newline at end of file diff --git a/lib/lufa/.gitignore b/lib/lufa/.gitignore index 9f9d39491d..1cd1dccf80 100644 --- a/lib/lufa/.gitignore +++ b/lib/lufa/.gitignore @@ -13,3 +13,4 @@ Documentation/  LUFA/StudioIntegration/ProjectGenerator/*  LUFA/StudioIntegration/DocBook/*  !LUFA/StudioIntegration/Docbook/mshelp/* +Keyboard.h
\ No newline at end of file diff --git a/lib/lufa/Bootloaders/DFU/BootloaderDFU.c b/lib/lufa/Bootloaders/DFU/BootloaderDFU.c index 928cf6fe3b..a2307219ec 100644 --- a/lib/lufa/Bootloaders/DFU/BootloaderDFU.c +++ b/lib/lufa/Bootloaders/DFU/BootloaderDFU.c @@ -196,7 +196,7 @@ int main(void)  	while (RunBootloader || WaitForExit) {  	  USB_USBTask();  	  #if (BOARD == BOARD_QMK) -	  	bool pressed = (PIN(QMK_ESC_ROW) & NUM(QMK_ESC_ROW)); +	  	bool pressed = (PIN(QMK_ESC_INPUT) & NUM(QMK_ESC_INPUT));  		if ((DFU_State == dfuIDLE) && (keypress > 5000) && pressed) {  			break;  		} @@ -231,12 +231,12 @@ static void SetupHardware(void)  	MCUCR = (1 << IVSEL);  	#if (BOARD == BOARD_QMK) -		// column setup -		DDR(QMK_ESC_COL) |= NUM(QMK_ESC_COL); -		PORT(QMK_ESC_COL) |= NUM(QMK_ESC_COL); +		// output setup +		DDR(QMK_ESC_OUTPUT) |= NUM(QMK_ESC_OUTPUT); +		PORT(QMK_ESC_OUTPUT) |= NUM(QMK_ESC_OUTPUT); -		// row setup -		DDR(QMK_ESC_ROW) |= NUM(QMK_ESC_ROW); +		// input setup +		DDR(QMK_ESC_INPUT) |= NUM(QMK_ESC_INPUT);  	#endif  	/* Initialize the USB and other board hardware drivers */ @@ -265,7 +265,7 @@ static void ResetHardware(void)  	MCUCR = 0;  	#if (BOARD == BOARD_QMK) -		DDR(QMK_ESC_COL) = PORT(QMK_ESC_COL) = DDR(QMK_ESC_ROW) = PORT(QMK_ESC_ROW) = 0; +		DDR(QMK_ESC_OUTPUT) = PORT(QMK_ESC_OUTPUT) = DDR(QMK_ESC_INPUT) = PORT(QMK_ESC_INPUT) = 0;  	#endif  } diff --git a/lib/lufa/Bootloaders/DFU/Descriptors.c b/lib/lufa/Bootloaders/DFU/Descriptors.c index 6b7b6d4900..46120781b1 100644 --- a/lib/lufa/Bootloaders/DFU/Descriptors.c +++ b/lib/lufa/Bootloaders/DFU/Descriptors.c @@ -36,6 +36,14 @@   */  #include "Descriptors.h" +#include "Keyboard.h" + +#ifndef MANUFACTURER +    #define MANUFACTURER QMK +#endif +#ifndef PRODUCT +    #define PRODUCT Keyboard +#endif  /** Device descriptor structure. This descriptor, located in SRAM memory, describes the overall   *  device characteristics, including the supported USB version, control endpoint size and the @@ -125,13 +133,13 @@ const USB_Descriptor_String_t LanguageString = USB_STRING_DESCRIPTOR_ARRAY(LANGU   *  form, and is read out upon request by the host when the appropriate string ID is requested, listed in the Device   *  Descriptor.   */ -const USB_Descriptor_String_t ManufacturerString = USB_STRING_DESCRIPTOR(L"QMK"); +const USB_Descriptor_String_t ManufacturerString = USB_STRING_DESCRIPTOR(LSTR(MANUFACTURER));  /** Product descriptor string. This is a Unicode string containing the product's details in human readable form,   *  and is read out upon request by the host when the appropriate string ID is requested, listed in the Device   *  Descriptor.   */ -const USB_Descriptor_String_t ProductString = USB_STRING_DESCRIPTOR(L"KB"); +const USB_Descriptor_String_t ProductString = USB_STRING_DESCRIPTOR(LSTR(PRODUCT));  /** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors"   *  documentation) by the application code so that the address and size of a requested descriptor can be given diff --git a/lib/lufa/Bootloaders/DFU/Descriptors.h b/lib/lufa/Bootloaders/DFU/Descriptors.h index 5487f88f35..7137d0f118 100644 --- a/lib/lufa/Bootloaders/DFU/Descriptors.h +++ b/lib/lufa/Bootloaders/DFU/Descriptors.h @@ -189,6 +189,12 @@  		                                    const uint16_t wIndex,  		                                    const void** const DescriptorAddress)  		                                    ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3); - +		// convert to L string +		#define LSTR(s) XLSTR(s) +		#define XLSTR(s) L ## #s +		// convert to string +		#define STR(s) XSTR(s) +		#define XSTR(s) #s +		                                      #endif diff --git a/lib/lufa/LUFA/Drivers/Board/AVR8/QMK/LEDs.h b/lib/lufa/LUFA/Drivers/Board/AVR8/QMK/LEDs.h index 9fc696be97..be66b9ed20 100644 --- a/lib/lufa/LUFA/Drivers/Board/AVR8/QMK/LEDs.h +++ b/lib/lufa/LUFA/Drivers/Board/AVR8/QMK/LEDs.h @@ -103,10 +103,20 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.          #define A6 0x06          #define A7 0x07 -        #define QMK_ESC_COL F1 -        #define QMK_ESC_ROW D5 -        #define QMK_LED     E6 -        #define QMK_SPEAKER C6 +        #include "Keyboard.h" + +        #ifndef QMK_ESC_INPUT +            #define QMK_ESC_INPUT F1 +        #endif +        #ifndef QMK_ESC_OUTPUT +            #define QMK_ESC_OUTPUT D5 +        #endif +        #ifndef QMK_LED +            #define QMK_LED     E6 +        #endif +        #ifndef QMK_SPEAKER +            #define QMK_SPEAKER C6 +        #endif          #define DDR(pin) _SFR_IO8(((pin) >> 4) + 1)          #define PORT(pin) _SFR_IO8(((pin) >> 4) + 2) diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk index 80e8b2be64..94e9a7bdbb 100644 --- a/tmk_core/avr.mk +++ b/tmk_core/avr.mk @@ -244,3 +244,23 @@ extcoff: $(BUILD_DIR)/$(TARGET).elf  	@$(SECHO) $(MSG_EXTENDED_COFF) $(BUILD_DIR)/$(TARGET).cof  	$(COFFCONVERT) -O coff-ext-avr $< $(BUILD_DIR)/$(TARGET).cof +bootloader:  +	make -C lib/lufa/Bootloaders/DFU/ clean +	echo "#ifndef QMK_KEYBOARD\n#define QMK_KEYBOARD\n" > lib/lufa/Bootloaders/DFU/Keyboard.h +	echo `grep "MANUFACTURER" $(ALL_CONFIGS) -h | tail -1` >> lib/lufa/Bootloaders/DFU/Keyboard.h +	echo `grep "PRODUCT" $(ALL_CONFIGS) -h | tail -1` Bootloader >> lib/lufa/Bootloaders/DFU/Keyboard.h +	echo `grep "QMK_ESC_OUTPUT" $(ALL_CONFIGS) -h | tail -1` >> lib/lufa/Bootloaders/DFU/Keyboard.h +	echo `grep "QMK_ESC_INPUT" $(ALL_CONFIGS) -h | tail -1` >> lib/lufa/Bootloaders/DFU/Keyboard.h +	echo `grep "QMK_LED" $(ALL_CONFIGS) -h | tail -1` >> lib/lufa/Bootloaders/DFU/Keyboard.h +	echo `grep "QMK_SPEAKER" $(ALL_CONFIGS) -h | tail -1` >> lib/lufa/Bootloaders/DFU/Keyboard.h +	echo "\n#endif" >> lib/lufa/Bootloaders/DFU/Keyboard.h +	make -C lib/lufa/Bootloaders/DFU/ +	echo "BootloaderDFU.hex copied to $(TARGET)_bootloader.hex" +	cp lib/lufa/Bootloaders/DFU/BootloaderDFU.hex $(TARGET)_bootloader.hex + +production: $(BUILD_DIR)/$(TARGET).hex bootloader +	@cat $(BUILD_DIR)/$(TARGET).hex | awk '/^:00000001FF/ == 0' > $(TARGET)_production.hex +	@cat $(TARGET)_bootloader.hex >> $(TARGET)_production.hex +	echo "File sizes:" +	$(SIZE) $(TARGET).hex $(TARGET)_bootloader.hex $(TARGET)_production.hex + | 
