From fcf87370a835942681592891dcab6b3a0809bb1f Mon Sep 17 00:00:00 2001
From: fauxpark <fauxpark@gmail.com>
Date: Thu, 22 Aug 2019 10:41:29 +1000
Subject: [PATCH] [Keyboard] Update NovelPad (#6559)

* Update NovelPad

* Lowercase readme

* Update keyboards/novelpad/keymaps/default/keymap.c

Co-Authored-By: Joel Challis <git@zvecr.com>

* Remove default F_CPU, F_USB, ARCH, and OPT_DEFS - covered in mcu_selection.mk
---
 keyboards/novelpad/config.h                 | 218 ++++++++++++++++++--
 keyboards/novelpad/info.json                |  27 ++-
 keyboards/novelpad/keymaps/default/keymap.c | 137 ++++--------
 keyboards/novelpad/novelpad.c               |   1 +
 keyboards/novelpad/novelpad.h               |  26 ++-
 keyboards/novelpad/{README.md => readme.md} |   2 +-
 keyboards/novelpad/rules.mk                 |  45 +---
 7 files changed, 292 insertions(+), 164 deletions(-)
 rename keyboards/novelpad/{README.md => readme.md} (68%)

diff --git a/keyboards/novelpad/config.h b/keyboards/novelpad/config.h
index c9b6b91a59..a2d24d7f82 100755
--- a/keyboards/novelpad/config.h
+++ b/keyboards/novelpad/config.h
@@ -14,8 +14,8 @@ 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
+
+#pragma once
 
 #include "config_common.h"
 
@@ -31,35 +31,219 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #define MATRIX_ROWS 5
 #define MATRIX_COLS 4
 
-/* key matrix pins */
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
 #define MATRIX_ROW_PINS { C2, C4, C5, C6, C7 }
 #define MATRIX_COL_PINS { D7, D6, D5, D4 }
 #define UNUSED_PINS
 
-/* COL2ROW or ROW2COL */
+/* COL2ROW, ROW2COL*/
 #define DIODE_DIRECTION COL2ROW
 
-/* Set 0 if debouncing isn't needed */
+#define BACKLIGHT_PIN B7
+//#define BACKLIGHT_BREATHING
+#define BACKLIGHT_LEVELS 10
+
+/*
+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
+ */
+#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
+
+#define RGB_DI_PIN D3
+#ifdef RGB_DI_PIN
+     #define RGBLED_NUM 4
+//   #define RGBLIGHT_HUE_STEP 8
+//   #define RGBLIGHT_SAT_STEP 8
+//   #define RGBLIGHT_VAL_STEP 8
+//   #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+//   #define RGBLIGHT_SLEEP  /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+// /*== all animations enable ==*/
+     #define RGBLIGHT_ANIMATIONS
+// /*== or choose animations ==*/
+//   #define RGBLIGHT_EFFECT_BREATHING
+//   #define RGBLIGHT_EFFECT_RAINBOW_MOOD
+//   #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+//   #define RGBLIGHT_EFFECT_SNAKE
+//   #define RGBLIGHT_EFFECT_KNIGHT
+//   #define RGBLIGHT_EFFECT_CHRISTMAS
+//   #define RGBLIGHT_EFFECT_STATIC_GRADIENT
+//   #define RGBLIGHT_EFFECT_RGB_TEST
+//   #define RGBLIGHT_EFFECT_ALTERNATING
+// /*== customize breathing effect ==*/
+//   /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
+//   #define RGBLIGHT_BREATHE_TABLE_SIZE 256      // 256(default) or 128 or 64
+//   /*==== use exp() and sin() ====*/
+//   #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85  // 1 to 2.7
+//   #define RGBLIGHT_EFFECT_BREATHE_MAX    255   // 0 to 255
+#endif
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
 #define DEBOUNCE 5
 
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
 /* 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() ( \
-    false \
-)
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+// #define GRAVE_ESC_CTRL_OVERRIDE
 
-#define BACKLIGHT_LEVELS 10
-#define BACKLIGHT_PIN B7
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
 
-#ifdef RGBLIGHT_ENABLE
-#define RGB_DI_PIN D3
-#define RGBLIGHT_ANIMATIONS
-#define RGBLED_NUM 4
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+/* defined by default; to change, uncomment and set to the combination you want */
+// #define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS  true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS  true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP           H
+//#define MAGIC_KEY_HELP_ALT       SLASH
+//#define MAGIC_KEY_DEBUG          D
+//#define MAGIC_KEY_DEBUG_MATRIX   X
+//#define MAGIC_KEY_DEBUG_KBD      K
+//#define MAGIC_KEY_DEBUG_MOUSE    M
+//#define MAGIC_KEY_VERSION        V
+//#define MAGIC_KEY_STATUS         S
+//#define MAGIC_KEY_CONSOLE        C
+//#define MAGIC_KEY_LAYER0         0
+//#define MAGIC_KEY_LAYER0_ALT     GRAVE
+//#define MAGIC_KEY_LAYER1         1
+//#define MAGIC_KEY_LAYER2         2
+//#define MAGIC_KEY_LAYER3         3
+//#define MAGIC_KEY_LAYER4         4
+//#define MAGIC_KEY_LAYER5         5
+//#define MAGIC_KEY_LAYER6         6
+//#define MAGIC_KEY_LAYER7         7
+//#define MAGIC_KEY_LAYER8         8
+//#define MAGIC_KEY_LAYER9         9
+//#define MAGIC_KEY_BOOTLOADER     B
+//#define MAGIC_KEY_BOOTLOADER_ALT ESC
+//#define MAGIC_KEY_LOCK           CAPS
+//#define MAGIC_KEY_EEPROM         E
+//#define MAGIC_KEY_EEPROM_CLEAR   BSPACE
+//#define MAGIC_KEY_NKRO           N
+//#define MAGIC_KEY_SLEEP_LED      Z
+
+/*
+ * 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
+
+/*
+ * MIDI options
+ */
+
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
+
+/* enable basic MIDI features:
+   - MIDI notes can be sent when in Music mode is on
+*/
+//#define MIDI_BASIC
+
+/* 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 1
+
+/*
+ * HD44780 LCD Display Configuration
+ */
+/*
+#define LCD_LINES           2     //< number of visible lines of the display
+#define LCD_DISP_LENGTH    16     //< visibles characters per line of the display
+
+#define LCD_IO_MODE      1            //< 0: memory mapped mode, 1: IO port mode
+
+#if LCD_IO_MODE
+#define LCD_PORT         PORTB        //< port for the LCD lines
+#define LCD_DATA0_PORT   LCD_PORT     //< port for 4bit data bit 0
+#define LCD_DATA1_PORT   LCD_PORT     //< port for 4bit data bit 1
+#define LCD_DATA2_PORT   LCD_PORT     //< port for 4bit data bit 2
+#define LCD_DATA3_PORT   LCD_PORT     //< port for 4bit data bit 3
+#define LCD_DATA0_PIN    4            //< pin for 4bit data bit 0
+#define LCD_DATA1_PIN    5            //< pin for 4bit data bit 1
+#define LCD_DATA2_PIN    6            //< pin for 4bit data bit 2
+#define LCD_DATA3_PIN    7            //< pin for 4bit data bit 3
+#define LCD_RS_PORT      LCD_PORT     //< port for RS line
+#define LCD_RS_PIN       3            //< pin  for RS line
+#define LCD_RW_PORT      LCD_PORT     //< port for RW line
+#define LCD_RW_PIN       2            //< pin  for RW line
+#define LCD_E_PORT       LCD_PORT     //< port for Enable line
+#define LCD_E_PIN        1            //< pin  for Enable line
 #endif
+*/
 
-#endif
+/* Bootmagic Lite key configuration */
+// #define BOOTMAGIC_LITE_ROW 0
+// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/novelpad/info.json b/keyboards/novelpad/info.json
index 7523bf5dda..4bd648754b 100644
--- a/keyboards/novelpad/info.json
+++ b/keyboards/novelpad/info.json
@@ -6,7 +6,32 @@
     "height": 5,
     "layouts": {
         "LAYOUT_ortho_5x4": {
-            "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}]
+            "layout": [
+                {"x":0, "y":0},
+                {"x":1, "y":0},
+                {"x":2, "y":0},
+                {"x":3, "y":0},
+
+                {"x":0, "y":1},
+                {"x":1, "y":1},
+                {"x":2, "y":1},
+                {"x":3, "y":1},
+
+                {"x":0, "y":2},
+                {"x":1, "y":2},
+                {"x":2, "y":2},
+                {"x":3, "y":2},
+
+                {"x":0, "y":3},
+                {"x":1, "y":3},
+                {"x":2, "y":3},
+                {"x":3, "y":3},
+
+                {"x":0, "y":4},
+                {"x":1, "y":4},
+                {"x":2, "y":4},
+                {"x":3, "y":4}
+            ]
         }
     }
 }
diff --git a/keyboards/novelpad/keymaps/default/keymap.c b/keyboards/novelpad/keymaps/default/keymap.c
index 76e0937e6d..cbac67eaaa 100755
--- a/keyboards/novelpad/keymaps/default/keymap.c
+++ b/keyboards/novelpad/keymaps/default/keymap.c
@@ -14,111 +14,60 @@ 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 QMK_KEYBOARD_H
 
 enum custom_keycodes {
-  BL = SAFE_RANGE,
-  WK_RED,
-  WK_GREEN,
-  WK_BLUE
+    WK_RED = SAFE_RANGE,
+    WK_GREEN,
+    WK_BLUE
 };
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    [0] = LAYOUT(
+        KC_NLCK, KC_PSLS, KC_PAST, KC_ESC,
+        KC_P7,   KC_P8,   KC_P9,   KC_PMNS,
+        KC_P4,   KC_P5,   KC_P6,   KC_PPLS,
+        KC_P1,   KC_P2,   KC_P3,   KC_TAB,
+        MO(1),   KC_P0,   KC_PDOT, KC_ENT
+    ),
 
-  [0] = LAYOUT(
-    KC_NLCK, KC_PSLS, KC_PAST, KC_ESC,
-    KC_P7,   KC_P8,   KC_P9,   KC_PMNS,
-    KC_P4,   KC_P5,   KC_P6,   KC_PPLS,
-    KC_P1,   KC_P2,   KC_P3,   KC_TAB,
-    MO(1),   KC_P0,   KC_PDOT, KC_ENT
-  ),
-
-  [1] = LAYOUT(
-    _______, BL,      RGB_MODE_SWIRL, RESET,
-    RGB_TOG, RGB_MOD, RGB_MODE_PLAIN, RGB_MODE_SNAKE,
-    RGB_HUI, RGB_SAI, RGB_VAI,        RGB_MODE_KNIGHT,
-    RGB_HUD, RGB_SAD, RGB_VAD,        RGB_MODE_XMAS,
-    _______, WK_RED,  WK_GREEN,       WK_BLUE
-  ),
-
+    [1] = LAYOUT(
+        _______, BL_STEP, RGB_M_SW, RESET,
+        RGB_TOG, RGB_MOD, RGB_M_P,  RGB_M_SN,
+        RGB_HUI, RGB_SAI, RGB_VAI,  RGB_M_K,
+        RGB_HUD, RGB_SAD, RGB_VAD,  RGB_M_X,
+        _______, WK_RED,  WK_GREEN, WK_BLUE
+    )
 };
 
-void matrix_init_user(void) {
-
-  rgblight_setrgb(0,255,0);
-}
-
-void matrix_scan_user(void) {
+void keyboard_post_init_user(void) {
+    rgblight_setrgb(0, 255, 0);
 }
 
 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-  switch (keycode) {
-  case BL:
-    if (record->event.pressed) {
-#ifdef BACKLIGHT_ENABLE
-      backlight_step();
-#endif
+    switch (keycode) {
+        case WK_RED:
+            if (record->event.pressed) {
+                rgblight_show_solid_color(0xFF, 0x00, 0x00);
+            } else {
+                rgblight_show_solid_color(0xFF, 0xFF, 0xFF);
+            }
+            return false;
+        case WK_GREEN:
+            if (record->event.pressed) {
+                rgblight_show_solid_color(0x00, 0xFF, 0x00);
+            } else {
+                rgblight_show_solid_color(0xFF, 0xFF, 0xFF);
+            }
+            return false;
+        case WK_BLUE:
+            if (record->event.pressed) {
+                rgblight_show_solid_color(0x00, 0x00, 0xFF);
+            } else {
+                rgblight_show_solid_color(0xFF, 0xFF, 0xFF);
+            }
+            return false;
     }
-    return false;
-    break;
-  case WK_RED:
-      if (record->event.pressed) {
-        rgblight_show_solid_color(0xFF, 0, 0);
-      } else {
-        rgblight_show_solid_color(0xFF, 0xFF, 0xFF);
-      }
-      return false;
-      break;
-    case WK_GREEN:
-      if (record->event.pressed) {
-        rgblight_show_solid_color(0, 0xFF, 0);
-      } else {
-        rgblight_show_solid_color(0xFF, 0xFF, 0xFF);
-      }
-      return false;
-      break;
-    case WK_BLUE:
-      if (record->event.pressed) {
-        rgblight_show_solid_color(0, 0, 0xFF);
-      } else {
-        rgblight_show_solid_color(0xFF, 0xFF, 0xFF);
-      }
-      return false;
-      break;
-  }
-  return true;
-}
-
-void led_set_user(uint8_t usb_led) {
-
-  if (usb_led & (1 << USB_LED_NUM_LOCK)) {
-
-  } else {
-
-  }
-
-  if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
-
-  } else {
-
-  }
-
-  if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
-
-  } else {
-
-  }
-
-  if (usb_led & (1 << USB_LED_COMPOSE)) {
-
-  } else {
-
-  }
-
-  if (usb_led & (1 << USB_LED_KANA)) {
-
-  } else {
-
-  }
-
+    return true;
 }
diff --git a/keyboards/novelpad/novelpad.c b/keyboards/novelpad/novelpad.c
index 719cb89d6a..9f6ee7dae4 100755
--- a/keyboards/novelpad/novelpad.c
+++ b/keyboards/novelpad/novelpad.c
@@ -14,4 +14,5 @@ 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 "novelpad.h"
diff --git a/keyboards/novelpad/novelpad.h b/keyboards/novelpad/novelpad.h
index f5a0b95f59..6650a67223 100755
--- a/keyboards/novelpad/novelpad.h
+++ b/keyboards/novelpad/novelpad.h
@@ -14,25 +14,23 @@ 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 KB_H
-#define KB_H
+
+#pragma once
 
 #include "quantum.h"
 
 #define LAYOUT_ortho_5x4( \
-	K00, K01, K02, K03, \
-	K10, K11, K12, K13, \
-	K20, K21, K22, K23, \
-	K30, K31, K32, K33, \
-  K40, K41, K42, K43  \
+    K00, K01, K02, K03, \
+    K10, K11, K12, K13, \
+    K20, K21, K22, K23, \
+    K30, K31, K32, K33, \
+    K40, K41, K42, K43  \
 ) { \
-	{ K00,   K01,   K02,   K03 }, \
-	{ K10,   K11,   K12,   K13 }, \
-	{ K20,   K21,   K22,   K23 }, \
-	{ K30,   K31,   K32,   K33 }, \
-  { K40,   K41,   K42,   K43 } \
+    { K00,   K01,   K02,   K03 }, \
+    { K10,   K11,   K12,   K13 }, \
+    { K20,   K21,   K22,   K23 }, \
+    { K30,   K31,   K32,   K33 }, \
+    { K40,   K41,   K42,   K43 } \
 }
 
 #define LAYOUT LAYOUT_ortho_5x4
-
-#endif
diff --git a/keyboards/novelpad/README.md b/keyboards/novelpad/readme.md
similarity index 68%
rename from keyboards/novelpad/README.md
rename to keyboards/novelpad/readme.md
index 5c73644a28..0cde8337ca 100644
--- a/keyboards/novelpad/README.md
+++ b/keyboards/novelpad/readme.md
@@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment):
 
     make novelpad:default
 
-See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/novelpad/rules.mk b/keyboards/novelpad/rules.mk
index 8d35c6c05c..e77a0d6515 100755
--- a/keyboards/novelpad/rules.mk
+++ b/keyboards/novelpad/rules.mk
@@ -1,44 +1,15 @@
 # MCU name
 MCU = atmega32u2
 
-# 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)
-
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-OPT_DEFS += -DBOOTLOADER_SIZE=4096
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   atmega32a    bootloadHID
+BOOTLOADER = atmel-dfu
 
 
 # Build Options