summary refs log tree commit diff
diff options
context:
space:
mode:
authorfauxpark <fauxpark@gmail.com>2019-10-06 05:09:35 +1100
committerDrashna Jaelre <drashna@live.com>2019-10-05 11:09:35 -0700
commite8b65d01709c2ebdf50c0aa95963d200fa4fa4c6 (patch)
tree1f8c889788cd3958d0583d8a8b9192e3425ba115
parent19b60c273ab63c250db748e5eead6baba88cd0d8 (diff)
Cleanup rules.mk for 32U4 keyboards, A-F (#6804)
* Cleanup rules.mk for 32U4 keyboards, A-F

* Put back stuff in VIA keymaps
-rw-r--r--keyboards/abstract/ellipse/keymaps/default/rules.mk0
-rw-r--r--keyboards/abstract/ellipse/rev1/rules.mk51
-rw-r--r--keyboards/acr60/rules.mk50
-rw-r--r--keyboards/adkb96/rules.mk58
-rw-r--r--keyboards/aeboards/aegis/keymaps/via/rules.mk4
-rw-r--r--keyboards/aeboards/aegis/rules.mk53
-rw-r--r--keyboards/aeboards/ext65/keymaps/via/rules.mk4
-rw-r--r--keyboards/aeboards/ext65/rules.mk53
-rw-r--r--keyboards/ai03/lunar/rules.mk51
-rw-r--r--keyboards/ai03/orbit/rules.mk63
-rw-r--r--keyboards/ai03/quasar/rules.mk51
-rw-r--r--keyboards/ai03/soyuz/rules.mk51
-rw-r--r--keyboards/akb/eb46/rules.mk51
-rw-r--r--keyboards/akb/raine/rules.mk51
-rw-r--r--keyboards/al1/rules.mk54
-rw-r--r--keyboards/alf/dc60/rules.mk54
-rw-r--r--keyboards/alf/x11/rules.mk51
-rw-r--r--keyboards/alf/x2/rules.mk50
-rw-r--r--keyboards/alpha/keymaps/vderm/alpha_vderm.hex1422
-rwxr-xr-xkeyboards/alpha/rules.mk46
-rwxr-xr-xkeyboards/alu84/rules.mk50
-rwxr-xr-xkeyboards/amj40/rules.mk54
-rw-r--r--keyboards/amj60/rules.mk54
-rw-r--r--keyboards/amj96/rules.mk54
-rw-r--r--keyboards/amjkeyboard/amj66/rules.mk41
-rw-r--r--keyboards/amjpad/rules.mk54
-rw-r--r--keyboards/angel17/rules.mk15
-rw-r--r--keyboards/angel64/rules.mk51
-rw-r--r--keyboards/at101_blackheart/rules.mk49
-rw-r--r--keyboards/atomic/rules.mk52
-rw-r--r--keyboards/atreus/astar/rules.mk50
-rw-r--r--keyboards/atreus/teensy2/rules.mk50
-rw-r--r--keyboards/atreus62/rules.mk47
-rw-r--r--keyboards/baguette/rules.mk51
-rw-r--r--keyboards/bantam44/rules.mk54
-rwxr-xr-xkeyboards/bigswitch/rules.mk49
-rw-r--r--keyboards/blockey/rules.mk54
-rw-r--r--keyboards/bm16a/rules.mk51
-rwxr-xr-xkeyboards/bm16s/rules.mk50
-rw-r--r--keyboards/boardwalk/rules.mk50
-rw-r--r--keyboards/bpiphany/sixshooter/rules.mk49
-rw-r--r--keyboards/bthlabs/geekpad/rules.mk51
-rw-r--r--keyboards/business_card/alpha/rules.mk51
-rw-r--r--keyboards/business_card/beta/rules.mk51
-rw-r--r--keyboards/business_card/rules.mk51
-rw-r--r--keyboards/butterstick/keymaps/default/rules.mk0
-rw-r--r--keyboards/butterstick/rules.mk20
-rwxr-xr-xkeyboards/c39/rules.mk53
-rw-r--r--keyboards/catch22/rules.mk50
-rw-r--r--keyboards/chimera_ergo/rules.mk74
-rw-r--r--keyboards/chimera_ls/rules.mk73
-rw-r--r--keyboards/chimera_ortho/rules.mk64
-rw-r--r--keyboards/choco60/rules.mk51
-rw-r--r--keyboards/christmas_tree/keymaps/default/rules.mk0
-rw-r--r--keyboards/christmas_tree/rules.mk52
-rwxr-xr-xkeyboards/ckeys/handwire_101/rules.mk52
-rw-r--r--keyboards/ckeys/nakey/rules.mk54
-rw-r--r--keyboards/ckeys/obelus/rules.mk54
-rw-r--r--keyboards/claw44/rules.mk60
-rw-r--r--keyboards/clueboard/17/rules.mk54
-rw-r--r--keyboards/clueboard/66/rev1/rules.mk19
-rw-r--r--keyboards/clueboard/66/rev2/rules.mk18
-rw-r--r--keyboards/clueboard/66/rev3/rules.mk19
-rw-r--r--keyboards/clueboard/66_hotswap/prototype/rules.mk21
-rw-r--r--keyboards/clueboard/card/rules.mk16
-rw-r--r--keyboards/cocoa40/keymaps/default/rules.mk1
-rw-r--r--keyboards/cocoa40/rules.mk51
-rw-r--r--keyboards/comet46/rules.mk57
-rwxr-xr-xkeyboards/contra/rules.mk48
-rw-r--r--keyboards/converter/adb_usb/rules.mk59
-rw-r--r--keyboards/converter/hp_46010a/rules.mk47
-rw-r--r--keyboards/converter/ibm_5291/rules.mk47
-rw-r--r--keyboards/converter/ibm_terminal/rules.mk51
-rw-r--r--keyboards/converter/m0110_usb/rules.mk58
-rw-r--r--keyboards/converter/numeric_keypad_IIe/rules.mk47
-rw-r--r--keyboards/converter/palm_usb/rules.mk17
-rw-r--r--keyboards/converter/sun_usb/rules.mk17
-rw-r--r--keyboards/converter/usb_usb/rules.mk57
-rw-r--r--keyboards/converter/xt_usb/rules.mk48
-rwxr-xr-xkeyboards/copenhagen_click/click_pad_v1/rules.mk14
-rw-r--r--keyboards/coseyfannitutti/discipad/rules.mk7
-rw-r--r--keyboards/coseyfannitutti/mullet/rules.mk51
-rw-r--r--keyboards/coseyfannitutti/mulletpad/rules.mk51
-rw-r--r--keyboards/cospad/rules.mk51
-rwxr-xr-xkeyboards/crawlpad/rules.mk48
-rw-r--r--keyboards/crkbd/rules.mk60
-rw-r--r--keyboards/cu24/rules.mk54
-rw-r--r--keyboards/cu75/rules.mk51
-rw-r--r--keyboards/daisy/rules.mk53
-rw-r--r--keyboards/dc01/arrow/rules.mk59
-rw-r--r--keyboards/dc01/left/rules.mk59
-rw-r--r--keyboards/dc01/numpad/rules.mk59
-rw-r--r--keyboards/dc01/right/rules.mk59
-rw-r--r--keyboards/deltasplit75/rules.mk56
-rwxr-xr-xkeyboards/dichotomy/rules.mk66
-rw-r--r--keyboards/diverge3/rules.mk54
-rw-r--r--keyboards/divergetm2/keymaps/default/rules.mk0
-rw-r--r--keyboards/divergetm2/rules.mk57
-rw-r--r--keyboards/dk60/rules.mk16
-rw-r--r--keyboards/do60/rules.mk57
-rw-r--r--keyboards/doro67/multi/rules.mk6
-rw-r--r--keyboards/doro67/regular/rules.mk5
-rw-r--r--keyboards/doro67/rgb/rules.mk56
-rw-r--r--keyboards/dozen0/rules.mk51
-rw-r--r--keyboards/dp60/keymaps/via/rules.mk3
-rw-r--r--keyboards/dp60/rules.mk20
-rw-r--r--keyboards/duck/eagle_viper/v2/rules.mk54
-rw-r--r--keyboards/duck/jetfire/rules.mk54
-rw-r--r--keyboards/duck/lightsaver/rules.mk54
-rw-r--r--keyboards/duck/octagon/v1/rules.mk54
-rw-r--r--keyboards/duck/octagon/v2/rules.mk54
-rw-r--r--keyboards/dumbpad/rules.mk51
-rw-r--r--keyboards/dz60/keymaps/LEdiodes/rules.mk45
-rw-r--r--keyboards/dz60/rules.mk45
-rw-r--r--keyboards/eco/rules.mk47
-rw-r--r--keyboards/emptystring/NQG/rules.mk53
-rw-r--r--keyboards/ep/40/rules.mk51
-rw-r--r--keyboards/ep/96/rules.mk51
-rw-r--r--keyboards/ep/comsn/hs68/rules.mk51
-rw-r--r--keyboards/ep/comsn/mollydooker/rules.mk51
-rw-r--r--keyboards/ep/comsn/tf_longeboye/rules.mk51
-rw-r--r--keyboards/ergo42/rules.mk51
-rw-r--r--keyboards/ergodash/rules.mk23
-rw-r--r--keyboards/ergodone/rules.mk80
-rw-r--r--keyboards/ergodox_ez/rules.mk72
-rw-r--r--keyboards/ergoinu/rules.mk50
-rw-r--r--keyboards/ergotaco/keymaps/default/rules.mk6
-rw-r--r--keyboards/ergotaco/rules.mk20
-rw-r--r--keyboards/ergotravel/keymaps/default/rules.mk0
-rw-r--r--keyboards/ergotravel/rules.mk47
-rwxr-xr-xkeyboards/espectro/rules.mk51
-rw-r--r--keyboards/evil80/rules.mk52
-rw-r--r--keyboards/exclusive/e65/rules.mk7
-rw-r--r--keyboards/exclusive/e6_rgb/rules.mk54
-rw-r--r--keyboards/exclusive/e6v2/le/rules.mk54
-rw-r--r--keyboards/exclusive/e6v2/oe/rules.mk54
-rw-r--r--keyboards/exclusive/e7v1/rules.mk42
-rw-r--r--keyboards/fc660c/rules.mk53
-rw-r--r--keyboards/fc980c/rules.mk54
-rw-r--r--keyboards/felix/rules.mk40
-rw-r--r--keyboards/fleuron/rules.mk54
-rw-r--r--keyboards/fortitude60/rules.mk54
-rw-r--r--keyboards/four_banger/rules.mk50
-rw-r--r--keyboards/foxlab/leaf60/hotswap/rules.mk51
-rw-r--r--keyboards/foxlab/leaf60/universal/rules.mk51
-rwxr-xr-xkeyboards/fractal/rules.mk46
-rw-r--r--keyboards/freyr/rules.mk15
147 files changed, 1019 insertions, 6911 deletions
diff --git a/keyboards/abstract/ellipse/keymaps/default/rules.mk b/keyboards/abstract/ellipse/keymaps/default/rules.mk
deleted file mode 100644
index e69de29bb2..0000000000
--- a/keyboards/abstract/ellipse/keymaps/default/rules.mk
+++ /dev/null
diff --git a/keyboards/abstract/ellipse/rev1/rules.mk b/keyboards/abstract/ellipse/rev1/rules.mk
index 880d40e49b..6c7f5fea32 100644
--- a/keyboards/abstract/ellipse/rev1/rules.mk
+++ b/keyboards/abstract/ellipse/rev1/rules.mk
@@ -1,63 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/acr60/rules.mk b/keyboards/acr60/rules.mk
index 9c4082da29..1e6d4bb7cd 100644
--- a/keyboards/acr60/rules.mk
+++ b/keyboards/acr60/rules.mk
@@ -1,45 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   comment out to disable the options.
@@ -53,4 +23,4 @@ SLEEP_LED_ENABLE = no  # Breathing sleep LED during USB suspend
 NKRO_ENABLE = yes		# USB 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
 AUDIO_ENABLE = no
-RGBLIGHT_ENABLE = yes
\ No newline at end of file
+RGBLIGHT_ENABLE = yes
diff --git a/keyboards/adkb96/rules.mk b/keyboards/adkb96/rules.mk
index 707fafd7ca..cb4ce2dd7b 100644
--- a/keyboards/adkb96/rules.mk
+++ b/keyboards/adkb96/rules.mk
@@ -1,58 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
- # Bootloader selection 
- #   Teensy       halfkay 
- #   Pro Micro    caterina 
- #   Atmel DFU    atmel-dfu 
- #   LUFA DFU     lufa-dfu 
- #   QMK DFU      qmk-dfu 
- #   atmega32a    bootloadHID 
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-# 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
diff --git a/keyboards/aeboards/aegis/keymaps/via/rules.mk b/keyboards/aeboards/aegis/keymaps/via/rules.mk
index f072c67198..70258b9ead 100644
--- a/keyboards/aeboards/aegis/keymaps/via/rules.mk
+++ b/keyboards/aeboards/aegis/keymaps/via/rules.mk
@@ -1,6 +1,6 @@
 # project specific files
 SRC =	keyboards/wilba_tech/wt_main.c
-		
+
 # MCU name
 MCU = atmega32u4
 
@@ -65,4 +65,4 @@ AUDIO_ENABLE = no           # Audio output on port C6
 FAUXCLICKY_ENABLE = no      # Use buzzer to emulate clicky switches
 
 RAW_ENABLE = yes
-DYNAMIC_KEYMAP_ENABLE = yes
\ No newline at end of file
+DYNAMIC_KEYMAP_ENABLE = yes
diff --git a/keyboards/aeboards/aegis/rules.mk b/keyboards/aeboards/aegis/rules.mk
index f1c632289c..602da86786 100644
--- a/keyboards/aeboards/aegis/rules.mk
+++ b/keyboards/aeboards/aegis/rules.mk
@@ -1,50 +1,16 @@
-# project specific files
-SRC =	keyboards/wilba_tech/wt_main.c
-		
 # MCU name
 MCU = atmega32u4
 
-# 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
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
 # Build Options
 #   change yes to no to disable
 #
@@ -63,3 +29,6 @@ UNICODE_ENABLE = no         # Unicode
 BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
 AUDIO_ENABLE = no           # Audio output on port C6
 FAUXCLICKY_ENABLE = no      # Use buzzer to emulate clicky switches
+
+# project specific files
+SRC = keyboards/wilba_tech/wt_main.c
diff --git a/keyboards/aeboards/ext65/keymaps/via/rules.mk b/keyboards/aeboards/ext65/keymaps/via/rules.mk
index f072c67198..70258b9ead 100644
--- a/keyboards/aeboards/ext65/keymaps/via/rules.mk
+++ b/keyboards/aeboards/ext65/keymaps/via/rules.mk
@@ -1,6 +1,6 @@
 # project specific files
 SRC =	keyboards/wilba_tech/wt_main.c
-		
+
 # MCU name
 MCU = atmega32u4
 
@@ -65,4 +65,4 @@ AUDIO_ENABLE = no           # Audio output on port C6
 FAUXCLICKY_ENABLE = no      # Use buzzer to emulate clicky switches
 
 RAW_ENABLE = yes
-DYNAMIC_KEYMAP_ENABLE = yes
\ No newline at end of file
+DYNAMIC_KEYMAP_ENABLE = yes
diff --git a/keyboards/aeboards/ext65/rules.mk b/keyboards/aeboards/ext65/rules.mk
index f1c632289c..bac979ad0c 100644
--- a/keyboards/aeboards/ext65/rules.mk
+++ b/keyboards/aeboards/ext65/rules.mk
@@ -1,50 +1,16 @@
-# project specific files
-SRC =	keyboards/wilba_tech/wt_main.c
-		
 # MCU name
 MCU = atmega32u4
 
-# 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
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
 # Build Options
 #   change yes to no to disable
 #
@@ -63,3 +29,6 @@ UNICODE_ENABLE = no         # Unicode
 BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
 AUDIO_ENABLE = no           # Audio output on port C6
 FAUXCLICKY_ENABLE = no      # Use buzzer to emulate clicky switches
+
+# project specific files
+SRC += keyboards/wilba_tech/wt_main.c
diff --git a/keyboards/ai03/lunar/rules.mk b/keyboards/ai03/lunar/rules.mk
index 6bb6d9ae9a..dd3d71baa9 100644
--- a/keyboards/ai03/lunar/rules.mk
+++ b/keyboards/ai03/lunar/rules.mk
@@ -1,63 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/ai03/orbit/rules.mk b/keyboards/ai03/orbit/rules.mk
index e225ad037c..758a73cd2a 100644
--- a/keyboards/ai03/orbit/rules.mk
+++ b/keyboards/ai03/orbit/rules.mk
@@ -1,69 +1,16 @@
-SRC += split_util.c \
-	   split_flags.c \
-	   serial.c \
-	   transport.c \
-	   matrix.c
-
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
@@ -88,4 +35,8 @@ USE_I2C = no                # I2C for split communication
 CUSTOM_MATRIX = yes			# For providing custom matrix.c (in this case, override regular matrix.c with split matrix.c)
 # SPLIT_KEYBOARD = yes		# Split keyboard flag disabled as manual edits had to be done to the split common files
 
-
+SRC += split_util.c \
+	   split_flags.c \
+	   serial.c \
+	   transport.c \
+	   matrix.c
diff --git a/keyboards/ai03/quasar/rules.mk b/keyboards/ai03/quasar/rules.mk
index afbd1de147..6b67847791 100644
--- a/keyboards/ai03/quasar/rules.mk
+++ b/keyboards/ai03/quasar/rules.mk
@@ -1,63 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/ai03/soyuz/rules.mk b/keyboards/ai03/soyuz/rules.mk
index 5df789e581..f092cb35be 100644
--- a/keyboards/ai03/soyuz/rules.mk
+++ b/keyboards/ai03/soyuz/rules.mk
@@ -1,63 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/akb/eb46/rules.mk b/keyboards/akb/eb46/rules.mk
index 195c9e5023..5360459cf7 100644
--- a/keyboards/akb/eb46/rules.mk
+++ b/keyboards/akb/eb46/rules.mk
@@ -1,63 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/akb/raine/rules.mk b/keyboards/akb/raine/rules.mk
index 195c9e5023..5360459cf7 100644
--- a/keyboards/akb/raine/rules.mk
+++ b/keyboards/akb/raine/rules.mk
@@ -1,63 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/al1/rules.mk b/keyboards/al1/rules.mk
index 6ae59c1496..175adfd5d7 100644
--- a/keyboards/al1/rules.mk
+++ b/keyboards/al1/rules.mk
@@ -1,51 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   change yes to no to disable
diff --git a/keyboards/alf/dc60/rules.mk b/keyboards/alf/dc60/rules.mk
index 0e8f52e2b6..8df6c4c7c5 100644
--- a/keyboards/alf/dc60/rules.mk
+++ b/keyboards/alf/dc60/rules.mk
@@ -1,51 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   change yes to no to disable
diff --git a/keyboards/alf/x11/rules.mk b/keyboards/alf/x11/rules.mk
index d19b7c1baa..3439ac47f3 100644
--- a/keyboards/alf/x11/rules.mk
+++ b/keyboards/alf/x11/rules.mk
@@ -1,63 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/alf/x2/rules.mk b/keyboards/alf/x2/rules.mk
index 9c4082da29..1e6d4bb7cd 100644
--- a/keyboards/alf/x2/rules.mk
+++ b/keyboards/alf/x2/rules.mk
@@ -1,45 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   comment out to disable the options.
@@ -53,4 +23,4 @@ SLEEP_LED_ENABLE = no  # Breathing sleep LED during USB suspend
 NKRO_ENABLE = yes		# USB 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
 AUDIO_ENABLE = no
-RGBLIGHT_ENABLE = yes
\ No newline at end of file
+RGBLIGHT_ENABLE = yes
diff --git a/keyboards/alpha/keymaps/vderm/alpha_vderm.hex b/keyboards/alpha/keymaps/vderm/alpha_vderm.hex
deleted file mode 100644
index 7515ad0305..0000000000
--- a/keyboards/alpha/keymaps/vderm/alpha_vderm.hex
+++ /dev/null
@@ -1,1422 +0,0 @@
-:100000000C949F020C94E6020C94E6020C94E60217

-:100010000C94E6020C94E6020C94E6020C94E602C0

-:100020000C94E6020C94E6020C94E0250C94B226A3

-:100030000C940D1D0C94E6020C94E6020C94E6025E

-:100040000C94E6020C94E6020C94E6020C94E60290

-:100050000C94E6020C94751D0C94E6020C94E602D6

-:100060000C94E6020C94E6020C94E6020C94E60270

-:100070000C94E6020C94E6020C94E6020C94E60260

-:100080000C94E6020C94E6020C94E6020C94E60250

-:100090000C94E6020C94E6020C94E6020C94E60240

-:1000A0000C94E6020C94E6020C94E602AE03B00354

-:1000B000BB03B203B403B603B803BA03BD03BF0363

-:1000C000C103CC03C303C503C703C903CB03CE03DA

-:1000D000181318134A134A138813A6130C150C157A

-:1000E000E8130C158B148B14FC140C150C1505154A

-:1000F00098149814981498149814981498149814A0

-:10010000981498149814981498149814981498148F

-:10011000A914B714BE14C514CF149D159D15AF15A1

-:10012000AF15A615AF15AF15AF159D159D15AB15E0

-:10013000AF15AF15AB151F2746273E2846273E288B

-:100140009227B5273E280C281B2807634236B79B09

-:10015000D8A71A39685618AEBAAB558C1D3CB7CC27

-:100160005763BD6DEDFD753EF6177231BF0000009F

-:10017000803F05A84CCDB2D44EB93836A9020C50F8

-:10018000B9918688083CA6AAAA2ABE000000803F32

-:1001900014001A000800150017001C0018000C00BD

-:1001A0001200130004001600070009000A000B00EB

-:1001B0000D000E000F0028001D611B64064119424E

-:1001C00000002C62000005781174107129007F0076

-:1001D000AA00A900AE004A004E004B004D000000EE

-:1001E0002B000000000000000000500051005200F1

-:1001F0004F002A00E000E2000100035100002C62E1

-:100200000000E700E600E4001E001F0020002100BF

-:1002100022002300240025002600270035000000CE

-:100220002D002E0031002F003000330034002A0052

-:10023000E000E2000351010000002C6200003600E3

-:10024000370038003A003B003C003D003E003F00D4

-:10025000400041004200430044004500000000000F

-:10026000000000000000000000004C00E000E20080

-:100270000100010000002C620000E700E600E4003D

-:1002800000047F3F1F643214643214783C1E1E1435

-:100290000A056801F000B40078005A000000000070

-:1002A0000001010101010101010102020202020239

-:1002B000020202030303030303030304040404040C

-:1002C00004050505050506060606060707070708CF

-:1002D0000808080909090A0A0A0A0B0B0B0C0C0C7E

-:1002E0000D0D0D0E0E0F0F0F101011111112121314

-:1002F000131414151516161717181819191A1A1B8E

-:100300001C1C1D1D1E1F1F202021222223242525E9

-:1003100026272728292A2B2B2C2D2E2F2F30313220

-:1003200033343536363738393A3B3C3D3E3F404131

-:10033000424344464748494A4B4C4D4F5051525313

-:10034000555657585A5B5C5E5F60626364666769C6

-:100350006A6C6D6E707173747678797B7C7E808147

-:10036000838486888A8B8D8F91929496989A9B9D90

-:100370009FA1A3A5A7A9ABADAFB1B3B5B7B9BBBD9D

-:10038000BFC1C4C6C8CACCCFD1D3D6D8DADCDFE16E

-:10039000E4E6E8EBEDF0F2F5F7FAFCFF04033000D9

-:1003A00000000C0361006C00700068006100000038

-:1003B0000C035000790072006F004C000000040331

-:1003C000090409026D00040100A0FA0904000001FB

-:1003D00003010100092111010001224000070581EC

-:1003E0000308000A090401000103010200092111A8

-:1003F000010001224D000705820308000A090402DA

-:10040000000103000000092111010001223600074C

-:1004100005830308000A0904030001030000000922

-:100420002111010001223900070584032000011277

-:1004300001100100000008EDFE60600100010203F0

-:100440000105010906A101050719E029E7150025A5

-:1004500001950875018102050819012905950575A1

-:100460000191029501750391010507190029F715FE

-:1004700000250195F875018102C005010980A101DF

-:1004800085021601002603001A81002A83007510D8

-:1004900095018100C0050C0901A101850316010029

-:1004A000269C021A01002A9C02751095018100C049

-:1004B00005010902A1010901A10005091901290588

-:1004C00015002501950575018102950175038101CE

-:1004D0000501093009311581257F950275088106CE

-:1004E00009381581257F950175088106050C0A38A4

-:1004F000021581257F950175088106C0C005010997

-:1005000006A101050719E029E715002501950875E1

-:1005100001810295017508810105081901290595D8

-:1005200005750191029501750391010507190029CF

-:10053000FF150026FF00950675088100C0001124F4

-:100540001FBECFEFDAE0DEBFCDBF04B603FE27C08B

-:100550008091620290916302A0916402B091650261

-:100560008730904BA740B04BD1F4109262021092AA

-:100570006302109264021092650214BE84B7877FF2

-:1005800084BF0FB6F894A89580916000886180932D

-:100590006000109260000FBEE0E0F8E3099511E002

-:1005A000A0E0B1E0E0E8F8E502C005900D92A234C9

-:1005B000B107D9F722E0A2E4B1E001C01D92A23652

-:1005C000B207E1F70E940B230C943E2C0C94000020

-:1005D0000895089581E0089581E008950C94EC0257

-:1005E0000C9461080C94630808950C94F4020C9424

-:1005F000F50208950E9489150E94F9022FEF84E305

-:100600009CE0215080409040E1F700C0000087E767

-:1006100097E790930108809300080C949B1DFF922C

-:100620000F931F93CF93DF938C01FC01C081D18185

-:1006300080919101811113C08281882349F0CE01FC

-:100640000E94E61AF82E682FCE010E948F1A04C06D

-:10065000CE010E94BA1AF82EBE018F2D04C0CE0121

-:100660000E94E61ABE010E94B305EC01B8010E9487

-:10067000EE02882309F46CC2B801CE010E94120870

-:10068000882309F465C2C93CFCE5DF0741F4F801A1

-:100690008281882309F45CC20E94290A59C2CA3C9B

-:1006A0008CE5D80708F013C1C13C9CE5D90761F47B

-:1006B000F8018281882309F44BC20E94B71B827221

-:1006C000F1F00E94490C44C2C23CECE5DE07D0F0D8

-:1006D000F8018281C53CFCE5DF0709F4CDC008F0D4

-:1006E000DDC0C33CECE5DE0709F4CCC008F0D0C0A7

-:1006F000882309F42DC20E94B71B827211F30E9455

-:100700003F0C26C2C531FCE5DF0708F07EC0C230D1

-:100710008CE5D80708F452C0F8018281882309F4D7

-:1007200059C00E94141C811102C00E94F31B0E9438

-:10073000311C90E09093540280935302FE01E350E9

-:10074000FC45E231F10530F4EA5AFF4F8091530243

-:100750000C94E32B80915302816027C0826025C0F6

-:10076000846023C0806121C080621FC080641DC07E

-:1007700080681BC08460886018C08E7F16C08D7F23

-:1007800014C08B7F12C08F7E10C08F7D0EC08F7BF8

-:100790000CC08F770AC08B7F877F07C087FB22271B

-:1007A00020F991E0922790FB87F980935302809182

-:1007B00053020E94351C0E948915CAC1C1159CE5CF

-:1007C000D90781F0C130DC45A9F081E08093470171

-:1007D00080934801C801DF91CF911F910F91FF9045

-:1007E0000C94EA02F8018281882309F4B1C10E94C5

-:1007F000FA02AEC1F8018281882309F4A9C180916F

-:100800000B02816080930B02A3C1C531FCE5DF07B9

-:1008100039F50E94B71B982FF801828120910D01B4

-:1008200030910E01882379F09A7A81E009F480E012

-:1008300080934201911102C069E201C065E3C901E0

-:100840000E94971C0AC080914201811102C069E296

-:1008500001C065E3C9010E94A21C0E94841B78C1EB

-:10086000C03CDC4509F0B1CFF8018281882309F44E

-:100870006FC10E94DA0C6CC1882309F469C10E941F

-:10088000880B66C1882309F463C10E94510B60C1C3

-:10089000882309F45DC10E94690B5AC1C73C9CE5DD

-:1008A000D90731F4882309F453C10E94BD0B50C10C

-:1008B000C83CDC4530F4882309F44AC10E94A30BEC

-:1008C00047C1882309F444C10E94D80B41C1C13DEE

-:1008D000FCE5DF0749F4F8018281882309F438C177

-:1008E00088E10E943C0C34C1C23D8CE5D80708F079

-:1008F00087C0F8018281CD3CFCE5DF07A1F48823A5

-:1009000009F426C10E941B0A663071058105910514

-:1009100040F00E941B0A683071058105910508F4BA

-:10092000EECE86E0DECFCE3C9CE5D90730F5CB3C61

-:10093000ECE5DE0729F4882309F40AC181E0D1CF70

-:10094000CC3CDC4530F4882309F402C10E943E0A05

-:10095000FFC0882309F4FCC00E941B0A62307105A5

-:100960008105910540F00E941B0A653071058105E3

-:10097000910508F4C4CE82E0B4CFCF3C9CE5D90702

-:10098000A1F4882309F4E4C00E941B0A6F307105AA

-:100990008105910540F00E941B0A643171058105B3

-:1009A000910508F4ACCE8FE09CCFC03DDC45A0F4AF

-:1009B000882309F4CDC00E941B0A693071058105A6

-:1009C000910540F00E941B0A6E307105810591056A

-:1009D00008F495CE89E085CF882309F4B9C00E9438

-:1009E0001B0A653171058105910540F00E941B0AC3

-:1009F000673171058105910508F481CE85E171CFDC

-:100A0000C53DFCE5DF0739F5F8018281882361F0F7

-:100A1000109248010E943F1D90934601809345012A

-:100A200080E20E94D51294C08091480181110FC0CC

-:100A300080914501909146010E944B1D883C910593

-:100A400030F487E20E94731187E20E946F1280E205

-:100A50000E94DC127DC0C63D8CE5D80708F043C07B

-:100A6000F8018281C33DFCE5DF0729F4882309F4FE

-:100A70006FC083E236CFC43DDC45A0F4882309F47F

-:100A800067C00E941B0A693171058105910540F01C

-:100A90000E941B0A623271058105910508F42FCE70

-:100AA00089E11FCF882351F0109247010E943F1D1A

-:100AB000909344018093430182E0B3CF809147013A

-:100AC00081110FC080914301909144010E944B1D00

-:100AD000883C910530F486E20E94731186E20E9400

-:100AE0006F1282E0B5CFC93DECE5DE0731F4F801C5

-:100AF0008281882369F180E009C0CA3DFCE5DF07F7

-:100B000041F4F8018281882319F182E00E94A72331

-:100B10001FC0C63DDC4509F058CEF8018281811125

-:100B200077CF80914801811192CF809145019091BA

-:100B300046010E944B1D883C910508F088CF80E259

-:100B40000E94DC1288E20E94731188E20E946F12F8

-:100B500080E0DF91CF911F910F91FF90089580E089

-:100B600090E0089508952EE1829FC0011124FC01B8

-:100B70002AE0729FE00DF11D1124E60FF11DEE0F2A

-:100B8000FF1FE057FE4F859194910895880F991F9C

-:100B9000FC01E058FD4F859194910895CF93DF9328

-:100BA0000E94B3050E947207EC018115904508F080

-:100BB00041C0C11580E4D80708F01CC1C83ED1056A

-:100BC00010F5C03ED10508F089C1C83AD10578F4C6

-:100BD000C53AD10508F09EC0C130D10509F47EC1E7

-:100BE00008F435C1C430D10508F078C130C1CD3B1F

-:100BF000D10508F49AC0C03CD10508F428C1CE0143

-:100C0000805C9109E9C0C11590E2D90758F4C1157B

-:100C100021E0D20708F062C1C03FD10508F417C136

-:100C2000D0655CC1C11580E3D80708F0D9C0CE01FA

-:100C30009F70D2C0C11595E5D90708F044C0C11511

-:100C400024E5D20708F0EDC0C11582E5D80710F5FC

-:100C5000C11591E5D90708F0D0C0CE0174E0969592

-:100C600087957A95E1F7282F23703C2F337081E028

-:100C700090E002C0880F991F3A95E2F79C68922B8A

-:100C8000CF70C695C69520E2C29FE0011124C82B03

-:100C9000D92B24C19E01237033278C2F86958695EE

-:100CA000C115D34508F0AEC0C1E0D0E002C0CC0F02

-:100CB000DD1F2A95E2F720E2829FC0011124C82B94

-:100CC000D92BDC680BC1C11529E5D20780F4C11509

-:100CD00088E5D80708F0AAC0C11596E5D90708F03D

-:100CE000B6C0CF71DD27DC2FCC27D062F7C0CE0194

-:100CF000C1152AE5D20708F49EC09056811590428E

-:100D000008F0A5C08D2F8F710E94EE07DD27D062FD

-:100D10008F719BC0C53AD10509F49CC0C63AD10574

-:100D200009F09BC0C2E8D0E4D9C0C83AD10509F4A3

-:100D300097C0C93AD10509F496C0CA3AD10509F459

-:100D400095C0CB3AD10509F494C0CC3AD10509F449

-:100D500093C0CB3BD10509F492C0CC3BD10509F43B

-:100D600091C0CD3AD10509F490C0C03BD10509F43A

-:100D70008FC0CE3AD10509F48EC0CF3AD10509F41F

-:100D80008DC0C13BD10509F48CC0C23BD10509F42B

-:100D90008BC0C33BD10509F48AC0C43BD10509F41B

-:100DA00089C0C53BD10509F488C0C63BD10509F40B

-:100DB00087C0C73BD10509F486C0C83BD10509F4FB

-:100DC00085C0C93BD10509F484C0CA3BD10509F4EB

-:100DD00083C0C0E0D4E482C00E94C605EC017EC09E

-:100DE000CE019927D3FF03C0EC01D86C77C0EC018A

-:100DF000D06C74C0DF70D06A71C0DC2FCC27C16F9B

-:100E0000D06A6CC0C1E0D0E002C0CC0FDD1F2A95D3

-:100E1000E2F720E2829FC0011124C82BD92BDA68A7

-:100E20005DC0DC2FCC27C46FD06A58C0DC2FCC2724

-:100E3000C06FD06A53C024E0969587952A95E1F754

-:100E40008F70CF70C06ED0E0D06AD82B47C0C0E0A2

-:100E5000D0E044C0C1E8D0E441C0C3E8D0E43EC023

-:100E6000C2EED4E43BC0C9EED4E438C0CAEED4E448

-:100E700035C0C5EBD4E432C0C6EBD4E42FC0C3EB1D

-:100E8000D4E42CC0C4EBD4E429C0C7EBD4E426C01E

-:100E9000CCECD4E423C0CDECD4E420C0C3E8D5E44A

-:100EA0001DC0CAE8D5E41AC0C2E9D5E417C0C4E938

-:100EB000D5E414C0C1E2D6E411C0C3E2D6E40EC04A

-:100EC000C4E2D6E40BC0C5E2D6E408C0C6E2D6E46C

-:100ED00005C0C7E2D6E402C0CAE2D6E4CE01DF9183

-:100EE000CF9108958238910549F1B0F4813391058D

-:100EF00009F459C048F48932910509F44FC08A3287

-:100F0000910509F455C008958533910509F441C050

-:100F10008933910599F00895833E910531F138F4B4

-:100F2000803E910591F0823E9105A9F00895863E9C

-:100F3000910501F1873E910539F108952091530201

-:100F400020FD3BC021FD39C008958091530280FFF0

-:100F500034C089E341C08091530282FF30C0809148

-:100F6000530284FD2EC083EE37C08091530282FD70

-:100F700026C0F5CF8091530283FF25C08091530294

-:100F800084FD1FC087EE28C08091530283FD1BC0E3

-:100F9000F5CF8091530285FD18C019C0809153028E

-:100FA00085FD15C012C08091530286FD12C013C08A

-:100FB0008091530286FD0FC00CC080EE0DC082EE02

-:100FC0000BC080E009C086EE07C089E205C085E35A

-:100FD00003C08AE201C081E390E00895909153023A

-:100FE00092FF0DC0282F2871283019F4877F846064

-:100FF00006C0282F2471243011F48B7F886093FF62

-:101000000DC0282F2871283119F4877E846106C00D

-:10101000282F2471243111F48B7E886194FD877E02

-:10102000089508950F931F93CF93FB0122812111FF

-:1010300002C0C1E041C08C01C0915601C11125C060

-:1010400086319C45B1F70E94110881E080935601DA

-:101050000E943F1D909355018093540110924901C5

-:1010600010924B0110924A0110924D0110924C01C6

-:1010700010924F0110924E011092510110925001A6

-:10108000109253011092520117C080915401909117

-:1010900055010E944B1D8C32914058F690914901A8

-:1010A000E92FF0E0EE0FFF1FE65BFE4F1183008398

-:1010B0009F5F90934901C0E08C2FCF911F910F91BA

-:1010C00008950C94E8020C94E902CF93DF93AAE20E

-:1010D000B1E04DE251E061E070E08D91E82FE295E2

-:1010E000EF70F0E021A18F70EB0102C0CC0FDD1F8B

-:1010F0008A95E2F7CE019C2F9095922391A392A11D

-:10110000892B82A34A175B0741F7A0E2B1E04AE2CC

-:1011100051E061E070E08D91E82FE295EF70F0E032

-:1011200021A18F70EB0102C0CC0FDD1F8A95E2F781

-:10113000CE019C2F9095922391A392A1892B82A3FB

-:101140004A175B0741F710925E0110925D01109201

-:101150005801109257011092600110925F01109295

-:101160005A0110925901109262011092610110927D

-:101170005C0110925B01DF91CF910C94F0022F92F1

-:101180003F924F925F926F927F928F929F92AF9217

-:10119000BF92CF92DF92EF92FF920F931F93CF9364

-:1011A000DF932AE2E22E21E0F22EC7E5D1E03DE511

-:1011B000832E31E0932E01E010E066246394BE019B

-:1011C000A880B98019821882D7018D917D01E82FFE

-:1011D000E295EF70F0E021A18F70A80102C0440FEA

-:1011E000551F8A95E2F7CA01242B21A322A1742E50

-:1011F0007094272122A350EA5A95F1F790E2292E04

-:1012000091E0392E20E030E0D1015D901D01452DA7

-:1012100042954F7050E0DA0190964C90C880D9808A

-:10122000552D5F70D80102C0AA0FBB1F5A95E2F777

-:10123000AD01442141F4A801022E02C0440F551F04

-:101240000A94E2F702C040E050E04C295D2959833E

-:1012500048832F5F3F4F2A303105B1F691A17922A3

-:1012600071A292A1892B82A32296FB018081918198

-:10127000A816B90641F0609263010E943F1D909349

-:101280006501809364018C169D0609F098CF8091CA

-:101290006301882311F180916401909165010E949E

-:1012A0004B1D0697D0F08091570190915801909373

-:1012B0005E0180935D018091590190915A01909354

-:1012C000600180935F0180915B0190915C0190933C

-:1012D000620180936101109263010E94F20281E039

-:1012E000DF91CF911F910F91FF90EF90DF90CF9002

-:1012F000BF90AF909F908F907F906F905F904F9036

-:101300003F902F900895E82FF0E0EE0FFF1FE35A73

-:10131000FE4F8081918108950895EF92FF920F937F

-:101320001F93CF93DF93E901662309F44BC0242F69

-:1013300030E0EFEFF0E0E61BF109B901E69F900124

-:10134000E79F300DF69F300D1124232F8B01031BD7

-:1013500011095CE3E52EF12CB7010E94BB2BFB01C8

-:10136000BC01069FC001079F900D169F900D112490

-:10137000B7010E94BB2BE230F105B1F040F4309789

-:1013800079F0319711F5832F242F461B21C0E430CB

-:10139000F105A1F068F03597C1F4842F861B18C0C1

-:1013A000832F262F230F14C0862F830FE42F03C013

-:1013B000E42FE61B842F432F2E2F0AC0842F462FA5

-:1013C000430F06C0842F242F03C080E020E040E0BC

-:1013D000E42FF0E0E456FD4F4491E22FF0E0E456B4

-:1013E000FD4F9491E82FF0E0E456FD4FE4914983DE

-:1013F0009883EA83DF91CF911F910F91FF90EF9037

-:10140000089588E090E00C94FE2BAB01BC0188E0CD

-:1014100090E00C941C2CE9E3F2E083E080831092CE

-:101420003A028FEF8283838314826081718182818B

-:1014300093810C94050A6091390260FF06C066959D

-:101440006F7370E080E090E0089560E070E0CB01A1

-:10145000089580913D0290E001968430910514F04A

-:1014600083E090E080933D026091390270913A02EE

-:1014700080913B0290913C020C94050A80913D02C0

-:1014800090E0019797FF02C080E090E084309105E2

-:1014900014F083E090E080933D02609139027091F6

-:1014A0003A0280913B0290913C020C94050A809193

-:1014B000390280FF06C065E070E08EE392E00C9494

-:1014C0001910EEE3F2E0118210821282339682E06C

-:1014D000ED34F807C1F7EFCF9091390290FF0CC0BF

-:1014E000EEE3F2E0818360834283339692E0ED3451

-:1014F000F907C1F70C94570A0895CF93DF9300D0F2

-:101500001F92CDB7DEB72091390220FF0AC09E019D

-:101510002F5F3F4F0E948D094B8169818A810E9414

-:101520006C0A0F900F900F90DF91CF9108955F920A

-:101530006F927F928F929F92AF92BF92CF92DF92E3

-:10154000EF92FF920F931F93CF93DF9300D01F92E0

-:10155000CDB7DEB78C01E62EF42E522E80913902E3

-:1015600080FF89C0982F9E77923061F49E012F5F93

-:101570003F4FC8010E948D094B8169818A810E9479

-:101580006C0A59C0E82FE695EF739EE39E0F9F7398

-:10159000943018F4F0903C024EC09AE39E0F9F7373

-:1015A000993068F4881F8827881F90913A02292F64

-:1015B000220F022F082B97FB112710F93CC087E25E

-:1015C0008E0F8F738A30B8F5F0E07997E0FD02C096

-:1015D00021E001C02FEFEE7FEE56FD4F85919491F3

-:1015E00065E070E00E94BB2B26034001279F900C12

-:1015F0001124580188E9A81A8EEFB80A8EE3C82E84

-:1016000082E0D82E98E6692E77247394C501B30141

-:101610000E94BB2B96014F2D6E2D0E948D09A80CA8

-:10162000B91C83E0C80ED11C8DE4C81682E0D80630

-:1016300069F70E94570A8091390200FB87F980936D

-:101640003902902F969580913A028078892B10FB71

-:1016500087F980933A02E0923B02F0923C025520D7

-:1016600051F06091390270913A0280913B02909161

-:101670003C020E94050A0F900F900F90DF91CF91CE

-:101680001F910F91FF90EF90DF90CF90BF90AF90A0

-:101690009F908F907F906F905F90089521E00C94C1

-:1016A000970AE9E3F2E02081221F2227221F3091CE

-:1016B0003A02432F440F842F822B37FB992790F94E

-:1016C000089668E671E00E94CF2B438162810C94FA

-:1016D0004E0B20913902221F2227221F30913A02FD

-:1016E000432F440F842F822B37FB992790F98830A2

-:1016F00091051CF4805A9E4F05C0089768E671E07A

-:101700000E94CF2B40913C0260913B020C944E0B07

-:1017100060913B02862F90E0883F910514F4685F4A

-:1017200001C06FEF80913902881F8827881F909130

-:101730003A02292F220F97FB992790F940913C02FA

-:10174000822B0C944E0B60913B02862F90E0089701

-:1017500014F0685001C060E080913902881F88272A

-:10176000881F90913A02292F220F97FB992790F911

-:1017700040913C02822B0C944E0B40913C02842FF2

-:1017800090E0883F910514F4485F01C04FEF8091CD

-:101790003902881F8827881F90913A02292F220F2B

-:1017A00097FB992790F960913B02822B0C944E0B8A

-:1017B00040913C02842F90E0089714F0485001C0FB

-:1017C00040E080913902881F8827881F90913A0253

-:1017D000292F220F97FB992790F960913B02822BCA

-:1017E0000C944E0B20E00C94970ACF939091390201

-:1017F00090FF40C09178811102C0926007C085328D

-:1018000010F0986403C08F73880F982B909339025F

-:10181000662351F06091390270913A0280913B0247

-:1018200090913C020E94050AC09139026C2F669586

-:101830006F7370E04BE050E082E091E00E94E92B92

-:10184000892B19F01092830103C081E080938301FA

-:10185000CC1FCC27CC1F90913A02892F880F97FB81

-:10186000992790F940913C0260913B028C2BCF91DB

-:101870000C94F20BCF91089561E00C94F50B8091DC

-:10188000390286958F738F5F853208F081E00C9462

-:101890003C0C8091390286958F73815009F484E263

-:1018A0000C943C0CE9E3F2E08081816080838695B2

-:1018B0008F730C943C0C60E00C94F50B80910B0240

-:1018C000816080930B020E94141C811104C00E944D

-:1018D000F31B0E940B0A0E94010A60933902709365

-:1018E0003A0280933B0290933C026E7761F40E942F

-:1018F0000B0A0E94010A6093390270933A028093A6

-:101900003B0290933C0281E08093830180913902F5

-:1019100080FF04C086958F730C945B0C08959091A2

-:10192000390290FF10C0253070F430E0F901EE0F5D

-:10193000FF1F2E0F3F1FF901E25CFD4F8183608383

-:1019400042830C94570A08951F93CF93DF9300D0DE

-:101950001F92CDB7DEB73091390230FF0CC0122F85

-:101960009E012F5F3F4F0E948D09212F4B8169817E

-:101970008A810E948F0C0F900F900F90DF91CF9172

-:101980001F910895E9E3F2E080818E7F808360817A

-:101990007181828193810E94050A109283012FEF49

-:1019A00080E792E0215080409040E1F700C00000C5

-:1019B0000C94570A8091390280FD0C94C20C0C944F

-:1019C000520CCF93C82F80918101909182010E9487

-:1019D0004B1DEC2FF0E0E257FD4FE491F0E08E1745

-:1019E0009F0708F443C00E943F1D9093820180939B

-:1019F00081016091800170E080E090E00E94BC294C

-:101A000020E030E04FE753E40E94DF282BED3FE079

-:101A100049E450E40E94E52A0E94522B0E94592971

-:101A20002BE43AE34EE25FE30E94722820EF3BEFA3

-:101A300048ED52E40E94E52A0E948B29462F8091AE

-:101A40003902881F8827881F90913A02292F220F78

-:101A500097FB992790F960913B02822B0E947D0AA7

-:101A60008091800190E0019680938001CF9108954C

-:101A7000CF93C82F80917E0190917F010E944B1DD2

-:101A8000EC2FF0E0E557FD4FE491F0E08E179F0753

-:101A9000E8F00E943F1D90937F0180937E0140916A

-:101AA0003C0260913B0280917C0190917D010E94FB

-:101AB0007D0A80917C0190917D01019668E671E03C

-:101AC0000E94BB2B90937D0180937C01CF91089560

-:101AD000CF92DF92FF920F931F93CF93DF93F82E55

-:101AE00080917A0190917B010E944B1DEF2DE6952C

-:101AF000F0E0E857FD4FE491F0E08E179F07C0F14A

-:101B00000E943F1D90937B0180937A010EE312E0C7

-:101B1000C0E0D0E088E6C82EDD24D394809178011F

-:101B2000909179018C0F9D1FB6010E94BB2B9801EB

-:101B300040913C0260913B020E948D09C85BDF4FDF

-:101B40000D5F1F4FC83681E0D80741F70E94570A42

-:101B50008091780190917901F0FE05C00196BE0157

-:101B60000E94BB2B01C0019790937901809378016B

-:101B7000DF91CF911F910F91FF90DF90CF9008954B

-:101B8000CF92DF92EF92FF920F931F93CF93DF9349

-:101B9000C82F80FF02C01FEF01C011E080917601C5

-:101BA000909177010E944B1DC695EC2FF0E0EB570A

-:101BB000FD4FE491F0E08E179F0708F45BC00E9490

-:101BC0003F1D90937701809376012EE3E22E22E071

-:101BD000F22EC0E0D0E0F70111821082128294E070

-:101BE000C92ED12C00E080917501800F87FD8B5F9D

-:101BF000082E000C990BC817D907E9F480913C0214

-:101C00008C9DA0018D9D500D11245595479555959E

-:101C1000479580913902881F8827881F90913A0242

-:101C2000592F550F97FB992790F9970160913B0227

-:101C3000852B0E948D09010FF1E0CF1AD10899F68A

-:101C4000219683E0E80EF11CC530D10521F60E94F3

-:101C5000570A80917501113031F4811102C084E07E

-:101C600007C0815005C090E00196BE010E94CF2BB5

-:101C700080937501DF91CF911F910F91FF90EF90AD

-:101C8000DF90CF9008950F931F93CF93DF93C82FCA

-:101C900080917301909174010E944B1DEC2FF0E034

-:101CA000EE57FD4FE491F0E08E179F0708F456C001

-:101CB0000E943F1D9093740180937301CEE3D2E0A4

-:101CC000FE01118210821282339682E0ED34F80711

-:101CD000C1F700E010E080917201082E000C990B12

-:101CE00008171907ECF080910101082E000C990BE0

-:101CF00080179107ACF080913902881F8827881FD0

-:101D000090913A02592F550F97FB992790F99E0110

-:101D100040913C0260913B02852B0E948D0903C0DB

-:101D2000198218821A820F5F1F4F23960530110502

-:101D300091F60E94570A8091000190917201980FCC

-:101D40009093720120910101280F20930101121636

-:101D500014F494301CF0819580930001DF91CF91B1

-:101D60001F910F910895EF92FF920F931F93CF93BE

-:101D7000DF9380917001909171010E944B1D883E0C

-:101D80009340D0F10E943F1D9093710180937001A8

-:101D9000C0916E01D0916F012196C170DD27D09363

-:101DA0006F01C0936E018EE3E82E82E0F82E10E002

-:101DB00008E7812F8695FE01E80FF11DCF018170A4

-:101DC0009927970140913C0260913B02FC010E9FD4

-:101DD000C0010F9F900D11240E948D091F5FF3E039

-:101DE000EF0EF11C153029F7DF91CF911F910F9164

-:101DF000FF90EF900C94570ADF91CF911F910F91B4

-:101E0000FF90EF900895CF93DF9300D01F92CDB74E

-:101E1000DEB780916C0190916D010E944B1DE0E84E

-:101E2000F2E02591349182179307C0F180916B0104

-:101E300081110CC09E012F5F3F4F4FEF6FEF80E08D

-:101E400090E00E948D098A8180936B010E943F1D62

-:101E500090936D0180936C0180916A01813051F003

-:101E600028F0823061F440916B010AC080916B01CF

-:101E700040E007C060916B0140E080E003C040E0BB

-:101E800080E060E00E946C0A80916A0190E0019617

-:101E900063E070E00E94CF2B80936A010F900F9057

-:101EA0000F90DF91CF910895CF93DF9380916801D8

-:101EB000909169010E944B1D843F914008F444C0F9

-:101EC0000E943F1D9093690180936801C0E0D0E0BB

-:101ED00020916601309167018091390290913A0218

-:101EE000C230D1051CF4232B79F002C0232B61F4FE

-:101EF000881F8827881F392F330F97FB992790F960

-:101F00002C2F40913C020AC0881F8827881F392F38

-:101F1000330F97FB992790F92C2F40E060913B02FB

-:101F2000832B0E94A40C2196C530D10589F60E940E

-:101F3000570A8091660190916701019681709927F7

-:101F40009093670180936601DF91CF91089580910E

-:101F500083018823D9F190913902892F86958F7357

-:101F60002EE3280F2F73243018F482500C94E10CC8

-:101F70002AE3280F2F73233018F486500C94380D61

-:101F800027E3280F2F73263018F489500C94680D1E

-:101F900021E3280F2F73263018F48F500C94C00DB6

-:101FA0002BE2280F2F73233018F485510C94430E25

-:101FB000892F8E77803311F40C94B30E863411F48C

-:101FC0000C94030F883411F40C94540F089521B32A

-:101FD000342F3095232331B3432B3FB7F894FC01C2

-:101FE000680F791FE617F70789F0819198E041BBE8

-:101FF000000000C087FF21BB880F000000C000C0A8

-:1020000000C021BB00C09A9591F7ECCF3FBF089567

-:1020100020B3242B20BB9B01220F331F620F731FA1

-:102020000E94E70F87EC90E00197F1F700C00000F5

-:10203000089540E10C9408109093890180938801E1

-:102040000895E0918801F0918901309721F0019085

-:10205000F081E02D099480E00895E0918801F091ED

-:102060008901309721F00280F381E02D09940895D1

-:10207000E0918801F0918901309721F00480F58189

-:10208000E02D099408952091860130918701281749

-:10209000390771F09093870180938601E091880160

-:1020A000F0918901309721F00680F781E02D0994A5

-:1020B000089520918401309185012817390771F026

-:1020C0009093850180938401E0918801F0918901CA

-:1020D000309721F00084F185E02D0994089508954A

-:1020E0000C946F1081E008950E94361D85B78068BA

-:1020F00085BF85B7806885BF0E9465080E94F81D6E

-:102100000C945E0C5F926F927F928F929F92AF922F

-:10211000BF92CF92DF92EF92FF920F931F93CF93D4

-:10212000DF93CDB7DEB72A970FB6F894DEBF0FBEA8

-:10213000CDBF0E94BF080E947210811111C08FEFA5

-:1021400089838A831B820E943F1D8160782F9D8333

-:102150008C8349815A816B818D810E943F1156C0C9

-:102160009BE8692E91E0792E00E010E088248394AA

-:10217000912C502E802F0E9483096C01F301A190B5

-:10218000B1903F01A826B926A114B10431F40F5F24

-:102190001F4F0330110569F7D2CF80910B0281FDEB

-:1021A0000E948C0980E090E07401082E02C0EE0CC1

-:1021B000FF1C0A94E2F795012E213F21232B09F100

-:1021C0008E835F82CE20DF2081E0CD2809F480E07D

-:1021D00088870E943F1D8160782F9A8789874E816A

-:1021E0005F8168858A850E943F11000F111FF801E9

-:1021F000E557FE4F80819181E826F926F182E08241

-:1022000005C001968A30910579F6C1CF0E949B20C6

-:102210000E94211090918A018917D9F00E94211003

-:1022200080938A012A960FB6F894DEBF0FBECDBF09

-:10223000DF91CF911F910F91FF90EF90DF90CF90A2

-:10224000BF90AF909F908F907F906F905F900C9415

-:10225000F7022A960FB6F894DEBF0FBECDBFDF910E

-:10226000CF911F910F91FF90EF90DF90CF90BF9093

-:10227000AF909F908F907F906F905F900895CF93D5

-:10228000DF93CDB7DEB72B970FB6F894DEBF0FBE46

-:10229000CDBF4F83588769877A878B87DE01119678

-:1022A00086E0FD0111928A95E9F785E0FE013796F7

-:1022B00001900D928A95E1F749815A816B817C8169

-:1022C0008D819E810E9456182B960FB6F894DEBF22

-:1022D0000FBECDBFDF91CF910895FC018081918128

-:1022E0000E94251B0895882309F4F8C08238C1F4A0

-:1022F0000E94211081FDF2C069E380910D0190914F

-:102300000E010E94971C0E94841B2FEF81EE94E027

-:10231000215080409040E1F700C0000069E319C0FF

-:102320008338F9F40E94211080FDD8C063E58091C4

-:102330000D0190910E010E94971C0E94841B2FEFAB

-:1023400081EE94E0215080409040E1F700C0000011

-:1023500063E580910D0190910E010E94A21C0C94E6

-:10236000841B8438C1F40E94211082FDB7C067E449

-:1023700080910D0190910E010E94971C0E94841B78

-:102380002FEF81EE94E0215080409040E1F700C0B3

-:10239000000067E4DECF9CEF980F913A40F4682F7D

-:1023A00080910D0190910E010E94971CD8CF90E270

-:1023B000980F983050F4877091E001C0990F8A957A

-:1023C000EAF7892F0E94BA1BCACF9BE5980F93307A

-:1023D00070F4853A29F0863A31F083E890E005C040

-:1023E00081E890E002C082E890E00C94431098E508

-:1023F000980F953108F06EC0883A61F1893A69F119

-:102400008A3A71F18B3A79F18C3A81F18B3B89F1FF

-:102410008C3B91F18D3A99F1803BA1F18E3AA9F173

-:102420008F3AB1F1813BB9F1823BC1F1833BC9F1F4

-:10243000843BD1F1853BD9F1863BE1F1873BE9F162

-:10244000883BF1F1893BF9F18A3B09F43FC080E018

-:1024500090E03EC082EE90E03BC089EE90E038C054

-:102460008AEE90E035C085EB90E032C086EB90E0DC

-:102470002FC083EB90E02CC084EB90E029C087EB69

-:1024800090E026C08CEC90E023C08DEC90E020C062

-:1024900083E891E01DC08AE891E01AC082E991E0EA

-:1024A00017C084E991E014C081E292E011C083E298

-:1024B00092E00EC084E292E00BC085E292E008C098

-:1024C00086E292E005C087E292E002C08AE292E0F2

-:1024D0000C945910803F10F00C94A31F089588238A

-:1024E00009F462C0823879F40E94211081FF5CC037

-:1024F00069E380910D0190910E010E94971C0E944A

-:10250000841B69E310C08338B1F40E94211080FF5E

-:102510004BC063E580910D0190910E010E94971CC4

-:102520000E94841B63E580910D0190910E010E9431

-:10253000A21C0C94841B843879F40E94211082FF21

-:1025400033C067E480910D0190910E010E94971CA9

-:102550000E94841B67E4E7CF9CEF980F913A10F438

-:10256000682FE1CF90E2980F983050F4877091E097

-:1025700001C0990F8A95EAF7892F0E94C01BD9CF15

-:102580009BE5980F933020F480E090E00C9443108A

-:1025900098E5980F953120F480E090E00C94591064

-:1025A000803F10F00C940B200895882321F00E94A6

-:1025B000BA1B0C94841B0895882321F00E94C01B31

-:1025C0000C94841B08958F929F92AF92BF92DF92DA

-:1025D000EF92FF920F931F93CF93DF937C01D62F3F

-:1025E000C72FFC01058102950F70128111110E9405

-:1025F000D71B0E947D1B882379F0112369F080E2AC

-:102600008D0F883048F082E00E94661B0E947D1B7F

-:1026100091E0D82ED92601C0D12CBC2EB2948FE0E7

-:10262000B8228B2D90E0FC01E859FF4F0C94E32B6E

-:102630008C2F807FCF70882311F0C295C07F11232B

-:1026400099F0CC2309F4C3C180E28D0F883010F0DB

-:10265000D11104C08C2F0E94BA1B03C08C2F0E9482

-:10266000CA1B0E94841BB3C18D2F0E946F12CC2302

-:1026700009F4D2C180E28D0F883010F0D11104C06E

-:102680008C2F0E94C01B03C08C2F0E94D01B0E9465

-:10269000841BC2C18C2F807FCF70803211F0C29515

-:1026A000C07FDD2319F0D130C9F022C0112371F0B1

-:1026B000002341F0013031F40E94F01B8C2B0E946A

-:1026C000EA1BAAC10E94F01B8C2B3AC1002319F00F

-:1026D000013009F4A1C10E94ED1B18C0112321F0A3

-:1026E000063008F099C10EC0053008F095C10EC043

-:1026F000112351F0002331F0F701858180FF67C17C

-:102700008F7085838C2F1CC1011172C18C2F1EC14B

-:102710008C2F86958695837019F0813061F07CC18D

-:10272000112321F08D2F9C2F937002C080E090E048

-:102730000E9443107EC1112321F08D2F9C2F937096

-:1027400002C080E090E00E94591073C11123F9F09B

-:10275000D53F51F0D63F71F0D43FA9F480914D029E

-:1027600090914E0281600BC080914D0290914E027B

-:10277000826005C080914D0290914E0284609093DA

-:102780004E0280934D028D2F0E94A31F1EC0D53F85

-:1027900051F0D63F71F0D43FA9F480914D02909151

-:1027A0004E028E7F0BC080914D0290914E028D7F24

-:1027B00005C080914D0290914E028B7F90934E0206

-:1027C00080934D028D2F0E940B200E94902031C1DA

-:1027D0008C2F837009F04CC0111127C12D2F229529

-:1027E00026952770220F220F6D2F6F70862F90E095

-:1027F000A0E0B0E04C015D01022E04C0880C991CE1

-:10280000AA1CBB1C0A94D2F7D4FF12C08FE090E040

-:10281000A0E0B0E004C0880F991FAA1FBB1F2A9533

-:10282000D2F7BC01CD01609570958095909503C05D

-:1028300060E070E0CB01C695C695C370C23051F020

-:1028400080F4682979298A299B29C13071F00E9476

-:10285000A519EBC0682979298A299B290E94B719F3

-:10286000E4C00E94A519C501B4010E949319DDC0FE

-:10287000112319F08C2F817001C08695882309F4EB

-:10288000D4C02D2F229526952770220F220F6D2F51

-:102890006F70862F90E0A0E0B0E04C015D01022E49

-:1028A00004C0880C991CAA1CBB1C0A94D2F7D4FF44

-:1028B00012C08FE090E0A0E0B0E004C0880F991F44

-:1028C000AA1FBB1F2A95D2F7BC01CD016095709558

-:1028D0008095909503C060E070E0CB01C695C695E9

-:1028E000C370C23051F080F4682979298A299B2964

-:1028F000C13071F00E946A1A98C0682979298A2922

-:102900009B290E947C1A91C00E946A1AC501B401D9

-:102910000E94581A8AC08D2F90E0FC01E05EF109F8

-:10292000E531F10508F04FC0E858FF4F0C94E32B58

-:10293000DF708C2F8F71112331F00E94F1198D2FD0

-:102940000E94D51269C00E94121A8D2F0E94DC12BB

-:1029500063C0112341F0053008F05EC08C2F8F71E9

-:102960000E94371A59C0063008F056C0F7CF11231D

-:1029700039F08C2F8F710E94F1194EC01123C9F3C9

-:102980008C2F8F710E94121A47C0112329F08C2FAF

-:102990008F710E94DC1940C00E94D7193DC01123DD

-:1029A00049F0CF718C2F0E94F11963E08C2F0E94A7

-:1029B0005D1B32C081E00E94661B023068F182E03C

-:1029C0000E94661B29C0112331F0002391F28D2F44

-:1029D0000E94731121C0002399F2D93349F4FFEF0B

-:1029E00027EE83E0F15020408040E1F700C0000076

-:1029F0008D2F0E946F1210C04C2F4F706D2FC7018A

-:102A00000E94AF050E94041914C04C2F4F706D2F07

-:102A1000C7010E94B2050DC098E0B91631F0B91691

-:102A200040F086EF8B0D823020F40E9421100E942E

-:102A3000F702DD20E1F00E94591B80FD18C0F7016C

-:102A400012820E94531B0E94F119C7010E94431574

-:102A50000E94531BDF91CF911F910F91FF90EF9038

-:102A6000DF90BF90AF909F908F900C94121ADF91DF

-:102A7000CF911F910F91FF90EF90DF90BF90AF909B

-:102A80009F908F9008950F931F93CF93DF93EC0146

-:102A9000988189812B813C81232B31F08F3F31F448

-:102AA00081E09F3F19F403C081E001C080E080FD18

-:102AB00013C0CE010E940F03882371F068817981D1

-:102AC0008A810E94301B8C010E948E1A0E948119FB

-:102AD000B801CE010E94E312DF91CF911F910F91B7

-:102AE00008950E94D71B0E94E71B80910D019091D1

-:102AF0000E010E94AD1C0E94841B0E9432210E9484

-:102B0000902080E090E00E94431080E090E00C94E0

-:102B100059100E94C71B0C9471150E94251BE92FA8

-:102B2000E295EF704E2F50E0FA013297EE30F1054A

-:102B3000B0F4E357FF4F0C94E32B803F91F018F46F

-:102B4000803E68F40EC0843F51F40BC0803E48F0D4

-:102B5000813F29F406C093FB882780F9089580E01F

-:102B6000089581E00895CF93DF9300D000D01F92A5

-:102B7000CDB7DEB70F900F900F900F900F90DF91B1

-:102B8000CF910895CF93DF9300D000D000D0CDB780

-:102B9000DEB726960FB6F894DEBF0FBECDBFDF912D

-:102BA000CF9108951F93CF93DF93C091920116E0C8

-:102BB00080919301C81799F0D0E01C9FF0011D9FF0

-:102BC000F00D1124EC56FE4F4081518162817381DA

-:102BD000848195810E94C2152196C770E9CFDF914B

-:102BE000CF911F9108954091C4015091C50160910A

-:102BF000C6017091C7018091C8019091C9010C94E0

-:102C0000C215CF938091C90182958F7009F05FC082

-:102C10008091C601882309F45AC080919201B09135

-:102C200093017091C401A091C5014091C7015091D9

-:102C3000C80191E07F3F09F090E0692FC6E08B1753

-:102C400009F445C04115510521F0AF3F21F020E0C6

-:102C500003C021E001C0262F90E020FD35C0C89FB1

-:102C6000F001C99FF00D1124EC56FE4F21812A136B

-:102C70002BC02081271328C02281211125C0238148

-:102C800034812417350710F421503109241B350BEA

-:102C9000283C3105C8F42091C9012F702061209390

-:102CA000C90126E0289FF001299FF00D1124E75665

-:102CB000FE4F80818F708061808384EC91E00E9460

-:102CC0004315CF910C94D21501968770B8CFCF9150

-:102CD0000895AF92BF92CF92DF92EF92FF920F933F

-:102CE0001F93CF93DF93CDB7DEB761970FB6F894FC

-:102CF000DEBF0FBECDBF8C0185E0F801DE011D9661

-:102D000001900D928A95E1F7D8014C9111965C9152

-:102D100011971296EC903091C4016091C501809199

-:102D2000C7019091C801009731F06F3F31F421E065

-:102D30003F3F19F403C021E001C020E0B22FB17081

-:102D4000BB2E20FD60C1F801C380D480A090C601D5

-:102D5000AA2009F4EEC02091C901C816D90628F0AE

-:102D6000D601A81BB90BCD0104C0809590958C0DA0

-:102D70009D1DFF24F394883C910580F0F12C207F69

-:102D800009F09CC07C2DD98AC88A6E2D89890E9441

-:102D9000B31584EC91E00E9443152DC1822F807FF2

-:102DA00009F054C0561314C0431312C0FE2CE11096

-:102DB0000FC02F7020612093C9010E94F31584EC8D

-:102DC00091E00E9443158091C901F80185835CC19F

-:102DD000CD2831F05F3F31F481E04F3F19F403C05B

-:102DE00081E001C080E080FD03C081E08E2502C04B

-:102DF00080E090E0F82FF170FF2E80FF1CC08091E2

-:102E000092012091930136E0821709F41AC190E0F3

-:102E1000389FF001399FF00D1124EC56FE4F61816F

-:102E2000561306C06081461303C06281E61203C0D8

-:102E300001968770E9CFFE2CEE2009F425C1809120

-:102E4000C90181608093C901F12C1EC1561309C0CC

-:102E5000431307C0E11005C08091C901F8018583C3

-:102E6000A4C04D875E878D859E850E948D15882321

-:102E700079F1EE2069F12091C901822F82958F703E

-:102E800090E0029774F08091C4019091C5019887F9

-:102E90008F831986DB86CA862C87CE0107960E940F

-:102EA000431586E0F801A4ECB1E001900D928A95FB

-:102EB000E1F70E9401160E94F3150DC0561771F03C

-:102EC0004D875E878D859E850E948D1581111AC064

-:102ED000C8010E944315FF24F394D6C04313F0CFDA

-:102EE000E110EECF8091C901F8018583C8010E94ED

-:102EF000431586E0E4ECF1E0DF011D928A95E9F7E5

-:102F0000FA2CC2C0EE2021F32091C901822F8295B4

-:102F10008F7090E002972CF28091C4019091C501CE

-:102F20009A8389831B82DD82CC822E83CE01019617

-:102F3000B6CFC816D90628F0F601E81BF90BCF0169

-:102F400004C0809590958C0D9D1D883C910548F09E

-:102F5000F12C7C2DD98AC88A6E2D89890E94B315DF

-:102F60004AC0FE2CEE2009F4B3CF561333C04313EE

-:102F700031C02091C90120FD24C0822F82958F701D

-:102F8000482F50E041155105E1F0D80115962C93DA

-:102F900015974F30510549F08F5F982F9295907F8C

-:102FA000822F8F70892B15968C93C8010E94431530

-:102FB00086E0F801A4ECB1E001900D928A95E1F76A

-:102FC0003DC086E0F801A4ECB1E001900D928A9535

-:102FD000E1F75AC04D875E878D859E850E948D15CD

-:102FE00081115FCF8091C90181608093C901C801BF

-:102FF0000E94431549C0E4ECF1E086E0DF011D9238

-:103000008A95E9F71BC0EE2009F462CF4D875E87F1

-:103010008D859E850E948D15F82E882309F458CF42

-:1030200086E0F801A4ECB1E001900D928A95E1F7F9

-:1030300084EC91E00E946D110E9401160E94F3152C

-:1030400023C04D875E878D859E850E94251B292F75

-:1030500022952F70223028F49F7039F0811105C01D

-:103060000BC0243028F49F7049F4805E883020F033

-:10307000C8010E944315BF2CFB2C06C0D801159631

-:103080009C91907F91F7F8CF8F2D61960FB6F894B1

-:10309000DEBF0FBECDBFDF91CF911F910F91FF908B

-:1030A000EF90DF90CF90BF90AF9008951F93CF9394

-:1030B000DF93CDB7DEB72C970FB6F894DEBF0FBE07

-:1030C000CDBF4F83588769877A878B879C87CE01CE

-:1030D00007960E9469168823D1F09F8188852A85EA

-:1030E0003B85232B31F08F3F31F481E09F3F19F472

-:1030F00003C081E001C080E080FD47C04F8158855A

-:1031000069857A858B859C850E94C2153EC086E0C4

-:10311000FE013796DE01119601900D928A95E1F736

-:10312000FF81E8856A857B856115710531F0EF3F88

-:1031300031F481E0FF3F19F403C081E001C080E079

-:1031400080FD23C02091930130E0C9010196877072

-:1031500099274091920150E084179507F1F1F98386

-:10316000EA837D836C8396E0929FD001939FB00D9C

-:103170001124AC56BE4FFE01319601900D929A95E6

-:10318000E1F7809393010E94D21516E0809192019D

-:1031900090919301891771F1189FC00111248C56E9

-:1031A0009E4F0E946916882329F1E09192011E9F8B

-:1031B000F0011124EC56FE4F4081518162817381F0

-:1031C000848195810E94C2158091920190E00196C0

-:1031D0008770992780939201D9CF0E948915109208

-:1031E000930110929201E4ECF1E086E0DF011D9280

-:1031F0008A95E9F72C960FB6F894DEBF0FBECDBFC7

-:10320000DF91CF911F910895EF92FF920F931F933B

-:10321000CF93DF938C01892B09F46CC0F12CEE2441

-:10322000E394E8012196F8018491843740F48430D6

-:1032300008F051C0813081F0823019F15BC08537D0

-:1032400009F444C0A8F19CE7980F903708F052C0E9

-:103250008F770E946F1241C00E5F1F4FFE01849155

-:1032600090E2980F983050F48770FE2D01C0FF0F48

-:103270008A95EAF78F2F0E94DA1B14C00E947311FF

-:103280002DC00E5F1F4FFE01849190E2980F983081

-:1032900060F48770FE2D01C0FF0F8A95EAF78F2F2B

-:1032A0000E94E01B0E94841B19C00E946F1216C06E

-:1032B0000E5F1F4FFE01C491CC2381F08FE99FE088

-:1032C0000197F1F700C00000C150F6CF0E5F1F4F0D

-:1032D000FE01F49003C00E9473118E018F2D88238C

-:1032E00009F49FCFEFE9FFE03197F1F700C000004C

-:1032F0008150F5CFDF91CF911F910F91FF90EF900B

-:103300000895089508950C9482190E94831960937A

-:10331000E2017093E3018093E4019093E5010C9442

-:1033200071150C9485190F931F930091E201109170

-:10333000E3012091E4013091E501602B712B822B98

-:10334000932B1F910F910C9485190F931F9300914C

-:10335000E2011091E3012091E4013091E501602345

-:103360007123822393231F910F910C9485190F933E

-:103370001F930091E2011091E3012091E40130914B

-:10338000E50160277127822793271F910F910C94E5

-:1033900085190C9482190E94C9196093DE017093FB

-:1033A000DF018093E0019093E1010C94711560E0DE

-:1033B00070E0CB010C94CB190F931F9341E050E0C8

-:1033C00060E070E08A019B0104C0000F111F221F02

-:1033D000331F8A95D2F7C901B8011F910F910C9440

-:1033E000CB190F931F9341E050E060E070E004C000

-:1033F000440F551F661F771F8A95D2F78091DE0113

-:103400009091DF01A091E001B091E1018A019B015F

-:10341000082B192B2A2B3B2BC901B8011F910F91A7

-:103420000C94CB190F931F9341E050E060E070E0E3

-:1034300004C0440F551F661F771F8A95D2F7409529

-:103440005095609570958091DE019091DF01A0917B

-:10345000E001B091E1018A019B01082319232A238D

-:103460003B23C901B8011F910F910C94CB190F9305

-:103470001F9341E050E060E070E004C0440F551F2E

-:10348000661F771F8A95D2F78091DE019091DF0148

-:10349000A091E001B091E1018A019B010827192761

-:1034A0002A273B27C901B8011F910F910C94CB1912

-:1034B0000F931F930091DE011091DF012091E00135

-:1034C0003091E101602B712B822B932B1F910F9177

-:1034D0000C94CB190F931F930091DE011091DF0123

-:1034E0002091E0013091E101602371238223932335

-:1034F0001F910F910C94CB190F931F930091DE0134

-:103500001091DF012091E0013091E10160277127E6

-:10351000822793271F910F910C94CB1908952AE0CD

-:10352000929F800D1124E82FE695E695E695877029

-:1035300051E001C0550F8A95EAF785E0E89FF00158

-:103540001124E653FE4F20E030E070E04081CB01D3

-:10355000022E02C0969587950A94E2F781708195B4

-:1035600084278523842781932F5F3F4F25303105A2

-:1035700069F708952AE0929F800D1124682F6695BF

-:1035800066956695982F977085E0689FB001112425

-:1035900040E050E080E0FB01E40FF51FE653FE4FF2

-:1035A000208130E0092E02C0369527950A94E2F773

-:1035B00021703327042E01C0220F0A94EAF7822BD0

-:1035C0004F5F5F4F4530510531F70895CF92DF923D

-:1035D000EF92FF920F931F93CF93DF938C01C090D4

-:1035E000DE01D090DF01E090E001F090E1018091F8

-:1035F000E2019091E301A091E401B091E501C82AB4

-:10360000D92AEA2AFB2ACFE1D0E0D701C6010C2E45

-:1036100004C0B695A795979587950A94D2F780FD33

-:1036200004C0219790F780E007C0B8018C2F0E945A

-:10363000CE050197B1F38C2FDF91CF911F910F91A0

-:10364000FF90EF90DF90CF900895CF93DF93EC0140

-:103650000E94E61ABE010E94CE05DF91CF91089527

-:103660001F93CF93DF93EB0190919101992321F068

-:10367000CB010E94251B13C0882349F0CB010E9477

-:10368000E61A182F682FCE010E948F1A04C0CB01B2

-:103690000E94BA1A182FBE01812F0E94CE05DF9119

-:1036A000CF911F9108958091E60185958595859527

-:1036B00008958091E6018770089598E0899F9001B0

-:1036C0001124262B2093E6010C94F1192091E60198

-:1036D000809582238093E601982F977069F430E0FB

-:1036E000482F082E000C550B2417350729F0859517

-:1036F000859585950C94121A08959091E60197701E

-:1037000081E009F480E00895E0910D01F0910E014F

-:1037100080910A028083E0910D01F0910E01908169

-:1037200080910902892B8083E0910D01F0910E01B7

-:10373000908180910802892B80838091E701882302

-:1037400081F0E0910D01F0910E019081892B808331

-:1037500080910D0190910E010E943A1C81111092EE

-:10376000E70180910D0190910E010C942D10809134

-:103770000A02089590910A02892B80930A02089503

-:10378000809590910A02892380930A0208951092ED

-:103790000A02089590910902892B809309020895E5

-:1037A00080959091090289238093090208951092CF

-:1037B0000902089590910802892B809308020895C8

-:1037C00080959091080289238093080208951092B1

-:1037D000080208958093E70108951092E701089583

-:1037E0008091E70108956DEE7EEF80E090E00E9409

-:1037F000282C60E082E090E00E940A2C60E083E0E8

-:1038000090E00E940A2C60E084E090E00E940A2C84

-:1038100060E085E090E00E940A2C40E050E0BA01B0

-:1038200088E090E00C941C2C80E090E00E94042C36

-:1038300021E08D3E9E4F09F020E0822F089582E026

-:1038400090E00C94F62B682F82E090E00C940A2C08

-:1038500083E090E00C94F62B682F83E090E00C94CA

-:103860000A2C84E090E00C94F62B682F84E090E022

-:103870000C940A2CFC0131969C01205E3F4F80E0A5

-:10388000919191118F5FE217F307D1F708959C0191

-:10389000FC0132969FEF80E04191461789F09F3FEF

-:1038A00019F4411101C0982F8F5F8E31A9F79F3F06

-:1038B00039F0F901E90FF11D97FDFA95628308953A

-:1038C00008959C01225E3F4FFC014281461301C0D6

-:1038D0001282019682179307B9F70895262F26952D

-:1038E000269526952F3169F0FC01E20FF11D6770D6

-:1038F00021E030E001C0220F6A95EAF78181282B90

-:1039000021830895262F2695269526952F3171F02F

-:10391000FC01E20FF11D677021E030E001C0220FD1

-:103920006A95EAF7209581812823218308952091C3

-:103930001F01222329F02091530227FD0C946E1CB5

-:103940000C94471C20911F01222329F0209153023F

-:1039500027FD0C94821C0C94611CFC01319680960E

-:103960001192E817F907E1F7089508950C94B51C32

-:103970000C94B51CCF930E94B81C0E94BF080E94F3

-:10398000B61CC0E08C2F0E948309892B29F4CF5FDD

-:10399000C330C1F780E001C081E0CF9108950C945D

-:1039A000B51C0C94CF1C0E94D11C8091590284300C

-:1039B00049F110920C0220E488E190E00FB6F894EF

-:1039C000A895809360000FBE2093600080E00E9465

-:1039D000F7020E94D11C83B7817F846083BF83B7C5

-:1039E000816083BF7894889583B78E7F83BF0FB63D

-:1039F000F894A8958091600088618093600010928F

-:103A000060000FBE08950C94B51C0E9489150E9499

-:103A100021100E94F7020C94031D1F920F920FB603

-:103A20000F9211248F939F93AF93BF9380910C02B9

-:103A3000811113C080914F0290915002A0915102C8

-:103A4000B09152024196A11DB11D80934F029093F7

-:103A50005002A0935102B0935202BF91AF919F9137

-:103A60008F910F900FBE0F901F90189582E084BD2C

-:103A700093E095BD9AEF97BD80936E0008952FB7A0

-:103A8000F89480914F0290915002A0915102B09110

-:103A900052022FBF0895CF92DF92EF92FF920F93C1

-:103AA0001F932FB7F89440914F02509150026091AC

-:103AB0005102709152022FBF6A017B01EE24FF2454

-:103AC0008C0120E030E0C016D106E206F30610F4C7

-:103AD000415051099A01281B390BC9011F910F91BF

-:103AE000FF90EF90DF90CF90089578941F920F92FF

-:103AF0000FB60F9211248F939F93AF93BF93809132

-:103B00004F0290915002A0915102B0915202019641

-:103B1000A11DB11D80934F0290935002A0935102BA

-:103B2000B0935202BF91AF919F918F910F900FBEB2

-:103B30000F901F90189587E797E79093010880935F

-:103B400000089AE088E10FB6F894A8958093600089

-:103B50000FBE90936000FFCFAF92BF92CF92DF92E3

-:103B6000EF92FF920F931F93CF93C0E0CC24C394A6

-:103B7000D12CE82EF12C8C2F0E9483095C0100E0EF

-:103B800010E0C601002E02C0880F991F0A94E2F7C8

-:103B90008A219B21892B31F40F5F1F4F0A301105B9

-:103BA00081F70AC0602F7C2F80E00E94B305E816E1

-:103BB000F90691F781E004C0CF5FC330E1F680E001

-:103BC000CF911F910F91FF90EF90DF90CF90BF901A

-:103BD000AF900895CF93C82F8CE20E94AC1D88232C

-:103BE00021F08C2FCF910C94AC1D80E0CF910895E3

-:103BF000CF930E94141C811102C00E94F31BC5E6E2

-:103C0000C15049F00E94BF088FE39CE90197F1F78A

-:103C100000C00000F5CF89E20E94EA1D81110FC1AA

-:103C20008AE20E94EA1D81110E94F31B85E00E9436

-:103C3000EA1D81110E949B1D0E941F1C80930B0294

-:103C400087E00E94EA1D8823A9F18BE10E94EA1D0A

-:103C5000882351F080910B0281FB222720F991E00B

-:103C6000922790FB81F90EC08EE00E94EA1D882306

-:103C700061F080910B0282FB222720F991E09227CC

-:103C800090FB82F980930B0215C080E10E94EA1D2F

-:103C900090910B02882341F093FB222720F981E0C9

-:103CA000822780FB93F904C0892F809580FB90F9CF

-:103CB00090930B0280910B020E94231C0E94311CE6

-:103CC00090E0909354028093530280EE0E94EA1D8C

-:103CD000882341F080915302982F909590FB80F9B2

-:103CE0008093530289E30E94EA1D882359F0809152

-:103CF000530281FB222720F991E0922790FB81F962

-:103D00008093530282EE0E94EA1D882359F080912D

-:103D1000530282FB222720F991E0922790FB82F93F

-:103D20008093530286EE0E94EA1D882359F0809109

-:103D3000530283FB222720F991E0922790FB83F91D

-:103D40008093530283EE0E94EA1D882359F08091EC

-:103D5000530284FB222720F991E0922790FB84F9FB

-:103D60008093530285E30E94EA1D882359F08091D5

-:103D7000530285FB222720F991E0922790FB85F9D9

-:103D80008093530281E30E94EA1D882359F08091B9

-:103D9000530286FB222720F991E0922790FB86F9B7

-:103DA0008093530281E10E94EA1D882359F080919B

-:103DB000530287FB222720F991E0922790FB87F995

-:103DC00080935302809153020E94351C87E20E9427

-:103DD000EA1DC82F8EE10E94EA1D8111C2608FE1A9

-:103DE0000E94EA1D8111C46080E20E94EA1D8111D7

-:103DF000C86081E20E94EA1D8111C06182E20E94D6

-:103E0000EA1D8111C06283E20E94EA1D8111C06433

-:103E100084E20E94EA1D882311F0C06802C0CC230E

-:103E200029F08C2F0E942C1C6C2F03C00E94281C90

-:103E3000682F70E080E090E0CF910C949119CF91C1

-:103E4000089580910F0280FF0BC06091120185E000

-:103E5000689FB001112475956795759567952BC07E

-:103E600081FF09C06091120185E0689FB0011124B3

-:103E70007595679520C082FF07C06091120185E0AB

-:103E8000689FB001112417C0909110029923D1F0BE

-:103E900060911101961788F72091120185E0289F03

-:103EA00090011124929FA001939F500D112470E066

-:103EB000CA010E94CF2B6038710540F4611571056D

-:103EC00019F406C065E070E0862F08958FE7089525

-:103ED00081E0089580910F0280FF08C06091100179

-:103EE00070E0759567957595679521C081FF06C04F

-:103EF0006091100170E07595679519C082FF04C04C

-:103F00006091100170E010C090911002992399F017

-:103F100060910F019617A0F780911001899FC00151

-:103F2000112470E00E94CF2B6038710540F46115B8

-:103F3000710519F406C061E070E0862F08958FE7DF

-:103F4000089581E00895803F21F40E94211F81950A

-:103F500004C0813F29F40E94211F80931302089519

-:103F6000823F21F40E94211F819504C0833F29F4E0

-:103F70000E94211F809312020895893F19F40E9424

-:103F80006A1F05C08A3F31F40E946A1F81958093A1

-:103F9000140208958B3F21F40E946A1F819504C08A

-:103FA0008C3F29F40E946A1F809315020895843F74

-:103FB00021F480911102816017C0853F21F4809126

-:103FC0001102826011C0863F21F480911102846049

-:103FD0000BC0873F21F480911102886005C0883FA3

-:103FE00031F48091110280618093110208958D3F18

-:103FF00021F480910F0281600BC08E3F21F48091EB

-:104000000F02826005C08F3F29F480910F02846007

-:1040100080930F020895803F39F48091130287FF47

-:104020006CC01092130269C0813F29F48091130281

-:104030001816BCF362C090911202823F29F497FFD8

-:104040005CC01092120259C0833F19F41916CCF3C8

-:1040500054C0893F41F48091140218160CF04DC0F1

-:10406000109214024AC08A3F29F48091140287FFFB

-:1040700044C0F6CF8B3F39F48091150287FF3DC0D5

-:10408000109215023AC08C3F29F48091150218163F

-:10409000BCF333C0843F21F4809111028E7F17C09E

-:1040A000853F21F4809111028D7F11C0863F21F45C

-:1040B000809111028B7F0BC0873F21F48091110208

-:1040C000877F05C0883F31F4809111028F7E8093F5

-:1040D000110213C08D3F21F480910F028E7F0BC01F

-:1040E0008E3F21F480910F028D7F05C08F3F29F410

-:1040F00080910F028B7F80930F02809112028111B9

-:104100000EC08091130281110AC0809114028111A6

-:1041100006C080911502811102C01092100208950C

-:1041200081E192E00E9438100E943F1D90930E02A0

-:1041300080930D0208951F93CF93DF9380910D021A

-:1041400090910E020E944B1DAC0190911002992398

-:1041500021F02091130130E006C0209114018AE083

-:10416000289F900111244217530708F477C08091CB

-:104170001202C0911302D091140210911502811104

-:1041800007C0C11167C0D11165C0111163C066C0FD

-:104190009F3F19F09F5F90931002181624F40E941D

-:1041A000211F809312028091120287FF05C00E9496

-:1041B000211F8195809312021C1624F40E94211F56

-:1041C000809313028091130287FF05C00E94211F74

-:1041D000819580931302309112023323C1F0209114

-:1041E00013022223A1F045EB3403C0011124892FCF

-:1041F000911101C081E08093120235EB2303C001CD

-:104200001124892F911101C081E0809313021D16A2

-:1042100024F40E946A1F809314028091140287FF85

-:1042200005C00E946A1F819580931402111624F420

-:104230000E946A1F809315028091150287FF05C0B6

-:104240000E946A1F819580931502DF91CF911F9183

-:104250000C9490209F3F09F09DCFAECFDF91CF917E

-:104260001F910895E1E1F2E085E0DF011D928A955A

-:10427000E9F71092100210920F0208958091360211

-:1042800008950F931F93CF93DF9300D01F92CDB764

-:10429000DEB78C010E94B723823011F0843019F50B

-:1042A00083E089831B830A838093E9008FEF9091D9

-:1042B000E800815095FD06C095ED9A95F1F7000054

-:1042C0008111F5CF8091E80085FF0DC040E050E0FE

-:1042D00063E070E0CE0101960E94D4238091E80053

-:1042E0008E778093E8000F900F900F90DF91CF9121

-:1042F0001F910F910895CF93DF9300D01F92CDB7F8

-:10430000DEB720915902243031F522E0298380580C

-:1043100091099B838A8383E08093E9008FEF9091DA

-:10432000E800815095FD06C095ED9A95F1F70000E3

-:104330008111F5CF8091E80085FF0DC040E050E08D

-:1043400063E070E0CE0101960E94D4238091E800E2

-:104350008E778093E8000F900F900F90DF91CF91B0

-:104360000895CF93DF93EC010E94B723823011F0C0

-:104370008430F9F482E08093E9008FEF9091E800B7

-:10438000815095FD06C095ED9A95F1F700008111D9

-:10439000F5CF8091E80085FF0CC040E050E065E07B

-:1043A00070E0CE010E94D4238091E8008E77809344

-:1043B000E800DF91CF910895CF93DF93EC010E9445

-:1043C000B723823019F0843009F047C080911F0173

-:1043D0008823E1F08091530287FF18C084E0809326

-:1043E000E9008FEF9091E800815095FD06C095E1BE

-:1043F0009A95F1F700008111F5CF8091E80085FFD3

-:104400002CC040E050E060E270E017C081E0809393

-:10441000E9008FEF9091E800815095FD06C095ED81

-:104420009A95F1F700008111F5CF8091E80085FFA2

-:1044300014C040E050E068E070E0CE010E94D42358

-:104440008091E8008E778093E80080E2FE01A6E18B

-:10445000B2E001900D928A95E1F7DF91CF91089536

-:1044600080915802811109C00E9465250E94C225D1

-:104470008091E20084608093E200089510925802D7

-:104480000895089508950C94051D42E061EC81E0C3

-:104490000E94DE2442E061EC82E00E94DE2442E0E1

-:1044A00061EC83E00E94DE2442E261EC84E00C9443

-:1044B000DE2480915B02833009F455C030F48130F2

-:1044C00071F0823009F48EC008958A3009F47AC000

-:1044D0008B3009F460C0893009F09CC020C0809105

-:1044E0005A02813A09F096C08091E800877F809354

-:1044F000E80080915E0290915F02892B21F460E2D6

-:1045000086E192E003C060E080E090E070E00E940D

-:104510001F248091E8008B778093E80008958091B4

-:104520005A02813209F076C080915E0290915F025A

-:10453000009719F0039709F06DC08091E800877F1C

-:104540008093E8008091E80082FD05C080915902C7

-:104550008111F8CF5FC08091F10080933602809185

-:10456000E8008B7753C080915A02813A09F052C01B

-:1045700080915E0290915F02892B09F04BC080917F

-:10458000E800877F8093E8008091E80080FFFCCFFF

-:1045900080911F0136C080915A028132D9F58091F5

-:1045A0005E0290915F02892BA9F58091E800877FD8

-:1045B0008093E8000E94132580915C0280931F0184

-:1045C0000C94891580915A02813221F58091E8007E

-:1045D000877F8093E8000E94132580915D0280937D

-:1045E0003702089580915A02813AA1F48091E8003F

-:1045F000877F8093E8008091E80080FFFCCF809166

-:1046000037028093F1008091E8008E778093E80074

-:104610000C941325089584B7877F84BF0FB6F89450

-:10462000A89580916000886180936000109260007E

-:104630000FBE80E880936100109261000E947010AC

-:104640000E9465250E94C2258091E20084608093CB

-:10465000E20078940E9457280E94741085E191E04E

-:104660000E941C1080915902853069F40E94D31C6D

-:10467000809157028823B1F30E94BA1C882391F3DA

-:104680000E94BE23EFCF0E9482100E94A70FEACFA4

-:104690000C944A23292F332723303105C9F060F4C5

-:1046A0002130310581F02230310509F047C08DE617

-:1046B00090E022EC33E046C02132310511F1223284

-:1046C000310561F13BC082E190E02FE234E03AC075

-:1046D00099278130910561F040F08230910559F0C1

-:1046E000039761F5ECE9F3E008C0EEEBF3E005C0F9

-:1046F000E0EBF3E002C0E2EAF3E0849190E09F0196

-:1047000021C064307105D0F4660F771FFB01E75CB0

-:10471000FE4F2081318189E090E014C06430710542

-:1047200068F4FB01EE0FFF1FEF5CFE4F208131812B

-:10473000FB01E35DFE4F808190E004C080E090E0EB

-:1047400020E030E0FA013183208308950895CF936B

-:10475000C82F0E94A623C0933802CF91089580915C

-:104760005902843011F081E0089582E0089580912B

-:104770003802811102C00C94AF23089580E189BDF5

-:1047800082E189BD09B400FEFDCF8091D8008F7D04

-:104790008093D8008091E00082608093E000809157

-:1047A000E00081FDFCCF0895CF92DF92EF92FF925F

-:1047B0000F931F93CF93DF93EC018B017A010E943B

-:1047C0003225811133C0E114F10439F0F701808101

-:1047D0009181081B190BC80FD91FC12CD12C0115B1

-:1047E000110519F18091E80085FD16C08091E8005F

-:1047F0008E778093E800E114F10449F0F70180819D

-:104800009181C80ED91ED182C08285E00FC00E945E

-:104810003225882321F30AC089918093F100015049

-:104820001109FFEFCF1ADF0ADACF80E0DF91CF91D5

-:104830001F910F91FF90EF90DF90CF9008952091FE

-:104840006002309161022617370748F06115710543

-:1048500039F42091E8002E772093E80001C0B901D7

-:10486000FC0120E06115710579F1809159028823DE

-:10487000F1F18530F1F18091E80083FD3CC0809139

-:10488000E80082FD2EC08091E80080FFEBCF2091F0

-:10489000F3008091F20090E0922B6115710551F0C8

-:1048A0008830910538F421912093F100615071090D

-:1048B0000196F3CF21E0089709F020E08091E8000D

-:1048C0008E778093E800CECF2111CFCF0AC08091A0

-:1048D0005902882361F0853061F08091E80083FD02

-:1048E0000AC08091E80082FFF2CF80E0089582E064

-:1048F000089583E0089581E0089520916002309149

-:1049000061022617370748F06115710539F42091C7

-:10491000E8002E772093E80001C0B901FC0120E0F7

-:104920006115710591F180915902882309F440C005

-:10493000853009F43FC08091E80083FD3DC080913F

-:10494000E80082FD2FC08091E80080FFE9CF209130

-:10495000F3008091F20090E0922B6115710559F0FF

-:104960008830910540F424912093F10031966150F4

-:1049700071090196F2CF21E0089709F020E08091BB

-:10498000E8008E778093E800CBCF2111CCCF0AC00E

-:1049900080915902882361F0853061F08091E800B0

-:1049A00083FD0AC08091E80082FFF2CF80E0089585

-:1049B00082E0089583E0089581E00895982F97306C

-:1049C00068F59093E900981739F07091EC00209108

-:1049D000ED005091F00003C0242F762F50E021FD10

-:1049E00002C09F5FECCF3091EB003E7F3093EB0035

-:1049F0003091ED003D7F3093ED003091EB00316060

-:104A00003093EB007093EC002093ED005093F00096

-:104A10002091EE0027FDE5CF80E008958F70809310

-:104A2000E90081E0089580915A0287FF11C08091CA

-:104A3000E80082FD05C0809159028111F8CF11C0B4

-:104A40008091E8008B770BC080915902882349F050

-:104A50008091E80080FFF8CF8091E8008E77809306

-:104A6000E80008952091E4003091E50095E640913A

-:104A7000EC00842F817040FF23C08091E80080FD0E

-:104A80001DC080915902882399F0853099F080915A

-:104A9000EB0085FD11C04091E4005091E500241722

-:104AA000350729F3915011F09A01E1CF84E0089580

-:104AB00082E0089583E0089581E0089580E00895FC

-:104AC0004091E80042FFDDCF08950E94D3250E9467

-:104AD000DB25E0EEF0E0808181608083E8EDF0E0AE

-:104AE00080818F77808319BCA7EDB0E08C918E7F99

-:104AF0008C9380818F7E80831092580208950F934B

-:104B00001F93CF93DF930E94D3250E94DB25C8ED2E

-:104B1000D0E088818F7788838881806888838881C6

-:104B20008F7D888319BC1092590210925502109201

-:104B300057021092560200EE10E0F80180818B7F40

-:104B4000808388818160888342E060E080E00E9409

-:104B5000DE24E1EEF0E080818E7F8083E2EEF0E003

-:104B6000808181608083808188608083F80180817A

-:104B70008E7F8083888180618883DF91CF911F91B0

-:104B80000F910895E8EDF0E080818F7E8083E7ED5E

-:104B9000F0E080818160808384E082BF81E0809347

-:104BA00058020C947F25E8EDF0E080818E7F8083B1

-:104BB0001092E20008951092DA001092E100089538

-:104BC0001F920F920FB60F9211242F933F934F9382

-:104BD0005F936F937F938F939F93AF93BF93EF9365

-:104BE000FF938091E10082FF0BC08091E20082FF81

-:104BF00007C08091E1008B7F8093E1000E945628DE

-:104C00008091DA0080FF1FC08091D80080FF1BC018

-:104C10008091DA008E7F8093DA008091D90080FF46

-:104C20000DC080E189BD82E189BD09B400FEFDCFE0

-:104C300081E0809359020E94302205C019BC109275

-:104C400059020E943E228091E10080FF19C08091AC

-:104C5000E20080FF15C08091E2008E7F8093E20029

-:104C60008091E20080618093E2008091D8008062B0

-:104C70008093D80019BC85E0809359020E9442229B

-:104C80008091E10084FF30C08091E20084FF2CC05D

-:104C900080E189BD82E189BD09B400FEFDCF80912C

-:104CA000D8008F7D8093D8008091E1008F7E809323

-:104CB000E1008091E2008F7E8093E2008091E2002B

-:104CC00081608093E20080915502882311F084E096

-:104CD00007C08091E30087FD02C081E001C083E04E

-:104CE000809359020E9443228091E10083FF29C0F2

-:104CF0008091E20083FF25C08091E100877F80934F

-:104D0000E10082E080935902109255028091E10007

-:104D10008E7F8093E1008091E2008E7F8093E2009D

-:104D20008091E20080618093E20042E060E080E0F8

-:104D30000E94DE248091F00088608093F0000E9441

-:104D40004122FF91EF91BF91AF919F918F917F9100

-:104D50006F915F914F913F912F910F900FBE0F90E8

-:104D60001F9018951F920F920FB60F9211242F9338

-:104D70003F934F935F936F937F938F939F93AF93E3

-:104D8000BF93CF93DF93EF93FF93C091E900CF7070

-:104D90008091EC00D82FD17080FDD0E81092E9000E

-:104DA0008091F000877F8093F00078940E94F6262F

-:104DB0001092E9008091F00088608093F000CD2B84

-:104DC000CF70C093E900FF91EF91DF91CF91BF9138

-:104DD000AF919F918F917F916F915F914F913F9193

-:104DE0002F910F900FBE0F901F9018951F93CF9388

-:104DF000DF93CDB7DEB7AA970FB6F894DEBF0FBE2C

-:104E0000CDBFEAE5F2E08091F100819322E0E23645

-:104E1000F207C9F70E9459228091E80083FF2EC152

-:104E200080915A0290915B02492F50E04A3051051F

-:104E300008F024C1FA01E556FF4F0C94E32B8038AB

-:104E400021F0823809F01AC108C080915602909171

-:104E50005702992389F082600FC080915E028F70A3

-:104E6000873008F00BC18093E9008091EB0085FB4F

-:104E7000882780F91092E9009091E800977F90933D

-:104E8000E8008093F1001092F100D1C0282F2D7F0F

-:104E900009F0F4C0882319F0823061F0EFC08091EE

-:104EA0005C02813009F0EAC0933009F080E0809321

-:104EB00057022EC080915C0281112AC080915E024F

-:104EC0008F702FEF280F263008F0D8C08093E900AC

-:104ED0002091EB0020FF1CC0933021F48091EB0067

-:104EE000806214C09091EB0090619093EB0021E000

-:104EF00030E0A90102C0440F551F8A95E2F74093A4

-:104F0000EA001092EA008091EB0088608093EB0049

-:104F10001092E9008091E800877F8093E8000E946A

-:104F20001325ACC08111AAC010915C021F7780913B

-:104F3000E3008078812B8093E3008091E800877FF5

-:104F40008093E8000E9413258091E80080FFFCCF49

-:104F50008091E30080688093E300111102C082E039

-:104F600001C083E08093590289C08058823008F0E4

-:104F700085C080915C0290915D028C3D53E0950765

-:104F800079F583E08A838AE289834FB7F894DE015A

-:104F9000139620E03EE051E2E32FF0E050935700FB

-:104FA000E49120FF03C0E295EF703F5FEF708E2F1A

-:104FB00090E0EA3010F0C79601C0C0968D939D93A3

-:104FC0002F5F243149F74FBF8091E800877F80939E

-:104FD000E8006AE270E0CE0101960E941F2416C02C

-:104FE00060915E0270915F02AE014F5F5F4F0E9461

-:104FF0004823BC01892B09F441C09091E800977FB8

-:105000009093E80089819A810E947D248091E80034

-:105010008B778093E80032C0803881F58091E8007A

-:10502000877F8093E800809155028093F100809102

-:10503000E8008E7772CF811121C080915C0290913F

-:105040005D0299270297D4F48091E800877F8093CE

-:10505000E80080915C02809355020E9413258091A4

-:105060005502811106C08091E30087FD02C081E0F6

-:1050700001C084E0809359020E9445228091E8009B

-:1050800083FF0AC08091E800877F8093E8008091C9

-:10509000EB0080628093EB00AA960FB6F894DEBF17

-:1050A0000FBECDBFDF91CF911F9108950895CF938B

-:1050B000809159028823A1F0C091E900CF709091AE

-:1050C000EC00892F817090FD80E8C82B1092E900D8

-:1050D0008091E80083FD0E94F626CF70C093E9001E

-:1050E000CF9108955058BB27AA270E948A280C9474

-:1050F000352A0E94272A38F00E942E2A20F039F4FF

-:105100009F3F19F426F40C94FD290EF4E095E7FB7B

-:105110000C94F729E92F0E94462A58F3BA17620720

-:1051200073078407950720F079F4A6F50C94682A94

-:105130000EF4E0950B2EBA2FA02D0B01B9019001B2

-:105140000C01CA01A0011124FF27591B99F0593FF6

-:1051500050F4503E68F11A16F040A22F232F342F3E

-:105160004427585FF3CF469537952795A795F0408C

-:105170005395C9F77EF41F16BA0B620B730B840BA1

-:10518000BAF09150A1F0FF0FBB1F661F771F881F59

-:10519000C2F70EC0BA0F621F731F841F48F48795B1

-:1051A00077956795B795F7959E3F08F0B0CF9395A3

-:1051B000880F08F09927EE0F9795879508950E941C

-:1051C000F3280C94352A0E942E2A58F00E94272A90

-:1051D00040F029F45F3F29F00C94F72951110C9409

-:1051E000692A0C94FD290E94462A68F39923B1F399

-:1051F000552391F3951B550BBB27AA2762177307FD

-:10520000840738F09F5F5F4F220F331F441FAA1F90

-:10521000A9F335D00E2E3AF0E0E832D0915050404C

-:10522000E695001CCAF72BD0FE2F29D0660F771FFA

-:10523000881FBB1F261737074807AB07B0E809F0E0

-:10524000BB0B802DBF01FF2793585F4F3AF09E3F65

-:10525000510578F00C94F7290C94692A5F3FE4F328

-:10526000983ED4F3869577956795B795F7959F5FA8

-:10527000C9F7880F911D9695879597F90895E1E0F4

-:10528000660F771F881FBB1F621773078407BA0753

-:1052900020F0621B730B840BBA0BEE1F88F7E095AE

-:1052A000089529F416F00C94F7290C94682A0C94AC

-:1052B000FD290E944E2AA8F39638A0F707F80F920E

-:1052C000E8942BE33AEA48EB5FE70E94FB2A0F924F

-:1052D0000F920F924DB75EB70F920E94B12AEAE487

-:1052E000F1E00E94002A4F915F91EF91FF91E595C7

-:1052F000EE1FFF1F49F0FE57E0684427EE0F441FE2

-:10530000FA95E1F74195550B0E947B2A0F9007FE15

-:105310000C946F2A08950E944E2A88F09F5798F0A7

-:10532000B92F9927B751B0F0E1F0660F771F881FAA

-:10533000991F1AF0BA95C9F714C0B13091F00E94C4

-:10534000682AB1E008950C94682A672F782F88277F

-:10535000B85F39F0B93FCCF3869577956795B395EB

-:10536000D9F73EF490958095709561957F4F8F4F5A

-:105370009F4F0895E89409C097FB3EF4909580955F

-:10538000709561957F4F8F4F9F4F9923A9F0F92F0B

-:1053900096E9BB279395F695879577956795B79589

-:1053A000F111F8CFFAF4BB0F11F460FF1BC06F5F6F

-:1053B0007F4F8F4F9F4F16C0882311F096E911C081

-:1053C000772321F09EE8872F762F05C0662371F0A2

-:1053D00096E8862F70E060E02AF09A95660F771FB6

-:1053E000881FDAF7880F9695879597F9089597F9AA

-:1053F0009F6780E870E060E008959FEF80EC08957B

-:10540000DF93CF931F930F93FF92EF92DF927B0175

-:105410008C01689406C0DA2EEF010E94F82AFE0182

-:10542000E894A5912591359145915591A6F3EF0109

-:105430000E948A28FE019701A801DA9469F7DF909B

-:10544000EF90FF900F911F91CF91DF91089500246D

-:105450000A941616170618060906089500240A94D9

-:1054600012161306140605060895092E0394000C5F

-:1054700011F4882352F0BB0F40F4BF2B11F460FFEE

-:1054800004C06F5F7F4F8F4F9F4F089557FD905817

-:10549000440F551F59F05F3F71F04795880F97FBF8

-:1054A000991F61F09F3F79F08795089512161306B2

-:1054B0001406551FF2CF4695F1DF08C016161706E1

-:1054C0001806991FF1CF8695710561050894089516

-:1054D000E894BB2766277727CB0197F908959B01AE

-:1054E000AC0160E070E080E89FE30C94DF280C944E

-:1054F000F7290C945A2B0E944E2AD8F39923C9F30A

-:10550000940F511DA3F39150504094F059F088230B

-:1055100032F0660F771F881F91505040C1F79E3FB1

-:1055200051052CF7880F911D9695879597F9089549

-:105530005F3FACF0983E9CF0BB27869577956795CA

-:10554000B79508F4B1609395C1F7BB0F58F711F404

-:1055500060FFE8CF6F5F7F4F8F4F9F4FE3CF0C947B

-:10556000692AFA01DC01AA0FBB1F9B01AC01BF57DE

-:1055700028F4222733274427507820C0B75190F4CD

-:10558000AB2F0024469537952795011CA395D2F3A0

-:10559000002071F0220F331F441FB395DAF30ED0B1

-:1055A0000C94722861307105A0E88A07B94630F47E

-:1055B0009B01AC016627772788279078309621F0E9

-:1055C000208331834283538308950E94F82A0C94E8

-:1055D000352A0E94272A38F00E942E2A20F095238F

-:1055E00011F00C94F7290C94FD2911240C94692ACC

-:1055F0000E94462A70F3959FC1F3950F50E0551F06

-:10560000629FF001729FBB27F00DB11D639FAA2717

-:10561000F00DB11DAA1F649F6627B00DA11D661F66

-:10562000829F2227B00DA11D621F739FB00DA11D87

-:10563000621F839FA00D611D221F749F3327A00D41

-:10564000611D231F849F600D211D822F762F6A2FDD

-:1056500011249F5750409AF0F1F088234AF0EE0F42

-:10566000FF1FBB1F661F771F881F91505040A9F76F

-:105670009E3F510580F00C94F7290C94692A5F3FF6

-:10568000E4F3983ED4F3869577956795B795F795AB

-:10569000E7959F5FC1F7FE2B880F911D9695879523

-:1056A00097F908959F930E946A2B0F9007FCEE5F75

-:1056B0000C94932B9F3F31F0915020F48795779570

-:1056C0006795B795880F911D9695879597F90895D9

-:1056D0000C94FD290E944E2AD8F3E894E0E0BB2701

-:1056E0009F57F0F02AED3FE049EC06C0EE0FBB0FEC

-:1056F000661F771F881F28F0B23A62077307840776

-:1057000028F0B25A620B730B840BE3959A9572F7EB

-:10571000803830F49A95BB0F661F771F881FD2F729

-:1057200090480C945C2BEF93E0FF07C0A2EA2AEDAF

-:105730003FE049EC5FEB0E948A280E94352A0F90D7

-:10574000039401FC9058E2E7F1E00C94A72B9F939F

-:105750008F937F936F93FF93EF939B01AC010E9414

-:10576000E52AEF91FF910E94002A2F913F914F91DE

-:105770005F910C94E52AAA1BBB1B51E107C0AA1F2D

-:10578000BB1FA617B70710F0A61BB70B881F991FE2

-:105790005A95A9F780959095BC01CD01089597FB86

-:1057A000072E16F4009407D077FD09D00E94BB2B7A

-:1057B00007FC05D03EF4909581959F4F0895709514

-:1057C00061957F4F0895EE0FFF1F0590F491E02D36

-:1057D0000994FC014150504030F001900616D1F779

-:1057E0003197CF010895882799270895F999FECF19

-:1057F00092BD81BDF89A992780B50895A6E1B0E0E1

-:1058000044E050E00C94302CA8E1B0E042E050E0DD

-:105810000C94302C262FF999FECF92BD81BDF89AB9

-:10582000019700B4021639F01FBA20BD0FB6F894E4

-:10583000FA9AF99A0FBE08950396272F0E940B2C0F

-:105840000E940A2C252F0E940B2C242F0C940B2C29

-:105850000196272F0E940B2C0C940A2CDC01CB0103

-:10586000FC01F999FECF06C0F2BDE1BDF89A319670

-:1058700000B40D9241505040B8F70895F894FFCF0E

-:10588000010201191A1B1C1D1E1F202122E80128DC

-:1058900008140A321E3E21DC21B1217B2141210165

-:1058A00097C66636323331F7F6F5943435404D36C7

-:1058B00039FD04B0047A044104D403ED0306041F47

-:0258C0000400E2

-:00000001FF

diff --git a/keyboards/alpha/rules.mk b/keyboards/alpha/rules.mk
index 61ea958d7e..13a720d8c1 100755
--- a/keyboards/alpha/rules.mk
+++ b/keyboards/alpha/rules.mk
@@ -1,46 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-
 # Build Options
 #   comment out to disable the options.
 #
diff --git a/keyboards/alu84/rules.mk b/keyboards/alu84/rules.mk
index 14d3e70898..680b13dc07 100755
--- a/keyboards/alu84/rules.mk
+++ b/keyboards/alu84/rules.mk
@@ -1,45 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   comment out to disable the options.
@@ -53,4 +23,4 @@ SLEEP_LED_ENABLE ?= yes  # Breathing sleep LED during USB suspend
 NKRO_ENABLE ?= yes		# USB 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
 AUDIO_ENABLE ?= no
-RGBLIGHT_ENABLE ?= yes
\ No newline at end of file
+RGBLIGHT_ENABLE ?= yes
diff --git a/keyboards/amj40/rules.mk b/keyboards/amj40/rules.mk
index b9f70de0f1..423e66aeef 100755
--- a/keyboards/amj40/rules.mk
+++ b/keyboards/amj40/rules.mk
@@ -1,51 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   comment out to disable the options.
diff --git a/keyboards/amj60/rules.mk b/keyboards/amj60/rules.mk
index 0e9f17d260..bccdd66811 100644
--- a/keyboards/amj60/rules.mk
+++ b/keyboards/amj60/rules.mk
@@ -1,51 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   comment out to disable the options.
diff --git a/keyboards/amj96/rules.mk b/keyboards/amj96/rules.mk
index a90f0e75a8..52f610d7d5 100644
--- a/keyboards/amj96/rules.mk
+++ b/keyboards/amj96/rules.mk
@@ -1,51 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   change yes to no to disable
diff --git a/keyboards/amjkeyboard/amj66/rules.mk b/keyboards/amjkeyboard/amj66/rules.mk
index 80734a9904..4102c0eb28 100644
--- a/keyboards/amjkeyboard/amj66/rules.mk
+++ b/keyboards/amjkeyboard/amj66/rules.mk
@@ -1,53 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/amjpad/rules.mk b/keyboards/amjpad/rules.mk
index 853bbf956f..fe28924852 100644
--- a/keyboards/amjpad/rules.mk
+++ b/keyboards/amjpad/rules.mk
@@ -1,51 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   comment out to disable the options.
diff --git a/keyboards/angel17/rules.mk b/keyboards/angel17/rules.mk
index dd54bd525f..ca2563a6e2 100644
--- a/keyboards/angel17/rules.mk
+++ b/keyboards/angel17/rules.mk
@@ -1,27 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/angel64/rules.mk b/keyboards/angel64/rules.mk
index 06169e8df9..4242ac2eee 100644
--- a/keyboards/angel64/rules.mk
+++ b/keyboards/angel64/rules.mk
@@ -1,63 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/at101_blackheart/rules.mk b/keyboards/at101_blackheart/rules.mk
index fadff6f23b..d8cfbd289f 100644
--- a/keyboards/at101_blackheart/rules.mk
+++ b/keyboards/at101_blackheart/rules.mk
@@ -1,49 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = halfkay
 
-# Boot Section Size in *bytes*
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   comment out to disable the options.
 #
@@ -56,4 +23,4 @@ SLEEP_LED_ENABLE = no  # Breathing sleep LED during USB suspend
 NKRO_ENABLE = yes		# USB 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
 AUDIO_ENABLE = no
-RGBLIGHT_ENABLE = no
\ No newline at end of file
+RGBLIGHT_ENABLE = no
diff --git a/keyboards/atomic/rules.mk b/keyboards/atomic/rules.mk
index 2f9e2e7132..8ccbcb11b4 100644
--- a/keyboards/atomic/rules.mk
+++ b/keyboards/atomic/rules.mk
@@ -1,49 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   change to "no" to disable the options, or define them in the Makefile in 
diff --git a/keyboards/atreus/astar/rules.mk b/keyboards/atreus/astar/rules.mk
index dc6f196237..e6fef51727 100644
--- a/keyboards/atreus/astar/rules.mk
+++ b/keyboards/atreus/astar/rules.mk
@@ -1,58 +1,12 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
-
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
diff --git a/keyboards/atreus/teensy2/rules.mk b/keyboards/atreus/teensy2/rules.mk
index 3fb7c7e5a7..ae398e2588 100644
--- a/keyboards/atreus/teensy2/rules.mk
+++ b/keyboards/atreus/teensy2/rules.mk
@@ -1,58 +1,12 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = halfkay
-
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
diff --git a/keyboards/atreus62/rules.mk b/keyboards/atreus62/rules.mk
index c9edfce0af..323976c2c2 100644
--- a/keyboards/atreus62/rules.mk
+++ b/keyboards/atreus62/rules.mk
@@ -1,47 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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)
-
-# Bootloader
-#     This definition is optional, and if your keyboard supports multiple bootloaders of
-#     different sizes, comment this out, and the correct address will be loaded 
-#     automatically (+60). See bootloader.mk for all options.
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
 # 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
diff --git a/keyboards/baguette/rules.mk b/keyboards/baguette/rules.mk
index de88b9798b..351322b859 100644
--- a/keyboards/baguette/rules.mk
+++ b/keyboards/baguette/rules.mk
@@ -1,63 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/bantam44/rules.mk b/keyboards/bantam44/rules.mk
index cebe7f4640..a15b451f31 100644
--- a/keyboards/bantam44/rules.mk
+++ b/keyboards/bantam44/rules.mk
@@ -1,51 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-OPT_DEFS += -DBOOTLOADER_SIZE=512
-
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
+BOOTLOADER = halfkay
 
 # Build Options
 #   comment out to disable the options.
diff --git a/keyboards/bigswitch/rules.mk b/keyboards/bigswitch/rules.mk
index e4e72f09a2..14cc0c85b3 100755
--- a/keyboards/bigswitch/rules.mk
+++ b/keyboards/bigswitch/rules.mk
@@ -1,49 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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)
-
-# Bootloader
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   comment out to disable the options.
 #
diff --git a/keyboards/blockey/rules.mk b/keyboards/blockey/rules.mk
index cea24f8327..83bc96c11f 100644
--- a/keyboards/blockey/rules.mk
+++ b/keyboards/blockey/rules.mk
@@ -1,51 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = caterina
 
 # Build Options
 #   change yes to no to disable
diff --git a/keyboards/bm16a/rules.mk b/keyboards/bm16a/rules.mk
index 013dac3c90..50f0ff1211 100644
--- a/keyboards/bm16a/rules.mk
+++ b/keyboards/bm16a/rules.mk
@@ -1,63 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/bm16s/rules.mk b/keyboards/bm16s/rules.mk
index f4f1dfd639..23573664db 100755
--- a/keyboards/bm16s/rules.mk
+++ b/keyboards/bm16s/rules.mk
@@ -1,60 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
 # Build Options
 #   comment out to disable the options.
 #
@@ -69,4 +25,4 @@ BACKLIGHT_ENABLE = no   # Enable keyboard backlight functionality
 AUDIO_ENABLE     = no
 RGBLIGHT_ENABLE  = yes
 
-LAYOUTS = ortho_4x4
\ No newline at end of file
+LAYOUTS = ortho_4x4
diff --git a/keyboards/boardwalk/rules.mk b/keyboards/boardwalk/rules.mk
index 0a02497bc3..215dfe34ee 100644
--- a/keyboards/boardwalk/rules.mk
+++ b/keyboards/boardwalk/rules.mk
@@ -1,48 +1,14 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
 # QMK Build Options
diff --git a/keyboards/bpiphany/sixshooter/rules.mk b/keyboards/bpiphany/sixshooter/rules.mk
index 5bf8d21650..ad76051eb2 100644
--- a/keyboards/bpiphany/sixshooter/rules.mk
+++ b/keyboards/bpiphany/sixshooter/rules.mk
@@ -1,49 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-# Bootloader
-#     This definition is optional, and if your keyboard supports multiple bootloaders of
-#     different sizes, comment this out, and the correct address will be loaded
-#     automatically (+60). See bootloader.mk for all options.
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = halfkay
 
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/bthlabs/geekpad/rules.mk b/keyboards/bthlabs/geekpad/rules.mk
index f51259b291..e05730c69e 100644
--- a/keyboards/bthlabs/geekpad/rules.mk
+++ b/keyboards/bthlabs/geekpad/rules.mk
@@ -1,63 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/business_card/alpha/rules.mk b/keyboards/business_card/alpha/rules.mk
index 8bb38a5142..e03f942e9d 100644
--- a/keyboards/business_card/alpha/rules.mk
+++ b/keyboards/business_card/alpha/rules.mk
@@ -1,63 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/business_card/beta/rules.mk b/keyboards/business_card/beta/rules.mk
index 8bb38a5142..e03f942e9d 100644
--- a/keyboards/business_card/beta/rules.mk
+++ b/keyboards/business_card/beta/rules.mk
@@ -1,63 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/business_card/rules.mk b/keyboards/business_card/rules.mk
index d0b8a2367a..7e37685de6 100644
--- a/keyboards/business_card/rules.mk
+++ b/keyboards/business_card/rules.mk
@@ -1,63 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/butterstick/keymaps/default/rules.mk b/keyboards/butterstick/keymaps/default/rules.mk
deleted file mode 100644
index e69de29bb2..0000000000
--- a/keyboards/butterstick/keymaps/default/rules.mk
+++ /dev/null
diff --git a/keyboards/butterstick/rules.mk b/keyboards/butterstick/rules.mk
index 68b117bf59..764e7d6aa2 100644
--- a/keyboards/butterstick/rules.mk
+++ b/keyboards/butterstick/rules.mk
@@ -1,15 +1,16 @@
 # MCU name
 MCU = atmega32u4
-F_CPU = 16000000
-ARCH = AVR8
-F_USB = $(F_CPU)
-
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT -DONLYQWERTY -DDEBUG_MATRIX
-SRC += sten.c
-EXTRAFLAGS += -flto
-
 
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
+
 MOUSEKEY_ENABLE 	= yes		# Mouse keys(+4700)
 EXTRAKEY_ENABLE 	= yes       # Audio control and System control(+450)
 CONSOLE_ENABLE 		= yes       # Console for debug(+400)
@@ -17,3 +18,6 @@ COMMAND_ENABLE 		= no		# Commands for debug and configuration
 NKRO_ENABLE 		= yes       # USB Nkey Rollover
 STENO_ENABLE		= yes 		# Needed for chording
 
+OPT_DEFS += -DONLYQWERTY -DDEBUG_MATRIX
+SRC += sten.c
+EXTRAFLAGS += -flto
diff --git a/keyboards/c39/rules.mk b/keyboards/c39/rules.mk
index 8fcb089817..c7a902045a 100755
--- a/keyboards/c39/rules.mk
+++ b/keyboards/c39/rules.mk
@@ -1,50 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = caterina
 
 # Build Options
 #   change yes to no to disable
diff --git a/keyboards/catch22/rules.mk b/keyboards/catch22/rules.mk
index 2b76e465cf..227117b766 100644
--- a/keyboards/catch22/rules.mk
+++ b/keyboards/catch22/rules.mk
@@ -1,49 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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)
-
-# Bootloader
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-#OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   comment out to disable the options.
 #
@@ -57,4 +24,3 @@ NKRO_ENABLE  = no		# USB Nkey Rollover - if this doesn't work, see here: https:/
 BACKLIGHT_ENABLE  = no  # Custom backlighting code is used, so this should not be enabled
 AUDIO_ENABLE  = no # This can be enabled if a speaker is connected to the expansion port. Not compatible with RGBLIGHT below
 RGBLIGHT_ENABLE  = yes # This can be enabled if a ws2812 strip is connected to the expansion port.
-
diff --git a/keyboards/chimera_ergo/rules.mk b/keyboards/chimera_ergo/rules.mk
index 0903e5e386..0e26588e37 100644
--- a/keyboards/chimera_ergo/rules.mk
+++ b/keyboards/chimera_ergo/rules.mk
@@ -1,66 +1,16 @@
-
-OPT_DEFS += -DCHIMERA_ERGO_PROMICRO
-CHIMERA_ERGO_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \
-                         avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB)
-
-# # project specific files
-SRC = matrix.c
-
-
 # MCU name
 MCU = atmega32u4
 
-# 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)
-
-# Bootloader
-#     This definition is optional, and if your keyboard supports multiple bootloaders of
-#     different sizes, comment this out, and the correct address will be loaded 
-#     automatically (+60). See bootloader.mk for all options.
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-# 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
 #   comment out to disable the options.
 #
@@ -78,4 +28,12 @@ NKRO_ENABLE = yes		# USB Nkey Rollover - not yet supported in LUFA
 UNICODE_ENABLE = YES 		# Unicode
 # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
 
+
+OPT_DEFS += -DCHIMERA_ERGO_PROMICRO
+CHIMERA_ERGO_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \
+                         avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB)
+
+# # project specific files
+SRC = matrix.c
+
 USB = /dev/ttyACM0
diff --git a/keyboards/chimera_ls/rules.mk b/keyboards/chimera_ls/rules.mk
index bc3e4a865e..5060b9ebfc 100644
--- a/keyboards/chimera_ls/rules.mk
+++ b/keyboards/chimera_ls/rules.mk
@@ -1,66 +1,16 @@
-
-OPT_DEFS += -DCHIMERA_LS_PROMICRO
-CHIMERA_LS_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \
-                         avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB)
-
-# # project specific files
-SRC = matrix.c
-
-
 # MCU name
 MCU = atmega32u4
 
-# 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)
-
-# Bootloader
-#     This definition is optional, and if your keyboard supports multiple bootloaders of
-#     different sizes, comment this out, and the correct address will be loaded
-#     automatically (+60). See bootloader.mk for all options.
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-# 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
 #   comment out to disable the options.
 #
@@ -80,4 +30,11 @@ UNICODE_ENABLE = YES 		# Unicode
 
 USB = /dev/ttyACM0
 
+OPT_DEFS += -DCHIMERA_LS_PROMICRO
+CHIMERA_LS_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \
+                         avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB)
+
+# project specific files
+SRC = matrix.c
+
 LAYOUTS = ortho_4x12
diff --git a/keyboards/chimera_ortho/rules.mk b/keyboards/chimera_ortho/rules.mk
index c4ff50dd2f..549f311496 100644
--- a/keyboards/chimera_ortho/rules.mk
+++ b/keyboards/chimera_ortho/rules.mk
@@ -1,57 +1,16 @@
-
-OPT_DEFS += -DCHIMERA_ORTHO_PROMICRO
-CHIMERA_ORTHO_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \
-                         avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB)
-
-# # project specific files
-SRC = matrix.c
-
-
 # MCU name
 MCU = atmega32u4
 
-# 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)
-
-# Bootloader
-#     This definition is optional, and if your keyboard supports multiple bootloaders of
-#     different sizes, comment this out, and the correct address will be loaded 
-#     automatically (+60). See bootloader.mk for all options.
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
 # Build Options
 #   comment out to disable the options.
 #
@@ -70,3 +29,10 @@ UNICODE_ENABLE = YES 		# Unicode
 # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
 
 USB = /dev/ttyACM0
+
+OPT_DEFS += -DCHIMERA_ORTHO_PROMICRO
+CHIMERA_ORTHO_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \
+                         avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB)
+
+# project specific files
+SRC = matrix.c
diff --git a/keyboards/choco60/rules.mk b/keyboards/choco60/rules.mk
index 343469db2b..65b98b73b6 100644
--- a/keyboards/choco60/rules.mk
+++ b/keyboards/choco60/rules.mk
@@ -1,63 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/christmas_tree/keymaps/default/rules.mk b/keyboards/christmas_tree/keymaps/default/rules.mk
deleted file mode 100644
index e69de29bb2..0000000000
--- a/keyboards/christmas_tree/keymaps/default/rules.mk
+++ /dev/null
diff --git a/keyboards/christmas_tree/rules.mk b/keyboards/christmas_tree/rules.mk
index ec73e527b5..7e5269baf0 100644
--- a/keyboards/christmas_tree/rules.mk
+++ b/keyboards/christmas_tree/rules.mk
@@ -1,49 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = caterina
 
 # Build Options
 #   change to "no" to disable the options, or define them in the Makefile in 
diff --git a/keyboards/ckeys/handwire_101/rules.mk b/keyboards/ckeys/handwire_101/rules.mk
index cf904d93c3..07b0c57b44 100755
--- a/keyboards/ckeys/handwire_101/rules.mk
+++ b/keyboards/ckeys/handwire_101/rules.mk
@@ -1,52 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/ckeys/nakey/rules.mk b/keyboards/ckeys/nakey/rules.mk
index 4ba89cee4d..afd508247f 100644
--- a/keyboards/ckeys/nakey/rules.mk
+++ b/keyboards/ckeys/nakey/rules.mk
@@ -1,51 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-OPT_DEFS += -DBOOTLOADER_SIZE=512
-
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
+BOOTLOADER = halfkay
 
 # Build Options
 #   change yes to no to disable
diff --git a/keyboards/ckeys/obelus/rules.mk b/keyboards/ckeys/obelus/rules.mk
index 7b556b23c0..0c55043003 100644
--- a/keyboards/ckeys/obelus/rules.mk
+++ b/keyboards/ckeys/obelus/rules.mk
@@ -1,51 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   change yes to no to disable
diff --git a/keyboards/claw44/rules.mk b/keyboards/claw44/rules.mk
index c27f399ffd..b2c3b436e9 100644
--- a/keyboards/claw44/rules.mk
+++ b/keyboards/claw44/rules.mk
@@ -1,54 +1,16 @@
-SRC += i2c.c
-SRC += serial.c
-SRC += ssd1306.c
-
-# if firmware size over limit, try this option
-# CFLAGS += -flto
-
 # MCU name
 MCU = atmega32u4
 
-# 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)
-
-# Bootloader
-#     This definition is optional, and if your keyboard supports multiple bootloaders of
-#     different sizes, comment this out, and the correct address will be loaded
-#     automatically (+60). See bootloader.mk for all options.
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
 # 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
@@ -69,5 +31,11 @@ RGBLIGHT_ENABLE = no       # Enable WS2812 RGB underlight.
 SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
 
 CUSTOM_MATRIX = yes
+SRC += i2c.c
+SRC += serial.c
+SRC += ssd1306.c
+
+# if firmware size over limit, try this option
+# CFLAGS += -flto
 
 DEFAULT_FOLDER = claw44/rev1
diff --git a/keyboards/clueboard/17/rules.mk b/keyboards/clueboard/17/rules.mk
index 591d40f030..68274a8b23 100644
--- a/keyboards/clueboard/17/rules.mk
+++ b/keyboards/clueboard/17/rules.mk
@@ -1,51 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 BOOTMAGIC_ENABLE = no	      # Virtual DIP switch configuration(+1000)
diff --git a/keyboards/clueboard/66/rev1/rules.mk b/keyboards/clueboard/66/rev1/rules.mk
index 96d4125ac4..39fd55921f 100644
--- a/keyboards/clueboard/66/rev1/rules.mk
+++ b/keyboards/clueboard/66/rev1/rules.mk
@@ -1,10 +1,15 @@
-LAYOUTS = 66_ansi 66_iso
+# MCU name
 MCU = atmega32u4
-F_CPU = 16000000
-ARCH = AVR8
-F_USB = $(F_CPU)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   comment out to disable the options.
@@ -21,3 +26,5 @@ RGBLIGHT_ENABLE = no    # Enable keyboard underlight functionality
 MIDI_ENABLE = no 		    # MIDI controls
 UNICODE_ENABLE = no 		# Unicode
 BLUETOOTH_ENABLE = no   # Enable Bluetooth with the Adafruit EZ-Key HID
+
+LAYOUTS = 66_ansi 66_iso
diff --git a/keyboards/clueboard/66/rev2/rules.mk b/keyboards/clueboard/66/rev2/rules.mk
index 4987ac1378..ec623ec63f 100644
--- a/keyboards/clueboard/66/rev2/rules.mk
+++ b/keyboards/clueboard/66/rev2/rules.mk
@@ -1,11 +1,15 @@
-LAYOUTS = 66_ansi 66_iso
+# MCU name
 MCU = atmega32u4
-F_CPU = 16000000
-ARCH = AVR8
-F_USB = $(F_CPU)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 BACKLIGHT_ENABLE = yes
@@ -20,3 +24,5 @@ RGBLIGHT_ENABLE = yes   # Enable keyboard underlight functionality
 MIDI_ENABLE = no 		    # MIDI controls
 UNICODE_ENABLE = no 		# Unicode
 BLUETOOTH_ENABLE = no   # Enable Bluetooth with the Adafruit EZ-Key HID
+
+LAYOUTS = 66_ansi 66_iso
diff --git a/keyboards/clueboard/66/rev3/rules.mk b/keyboards/clueboard/66/rev3/rules.mk
index 8c1836351f..ca7817af18 100644
--- a/keyboards/clueboard/66/rev3/rules.mk
+++ b/keyboards/clueboard/66/rev3/rules.mk
@@ -1,10 +1,15 @@
-LAYOUTS = 66_ansi 66_iso
+# MCU name
 MCU = atmega32u4
-F_CPU = 16000000
-ARCH = AVR8
-F_USB = $(F_CPU)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   comment out to disable the options.
@@ -21,3 +26,5 @@ RGBLIGHT_ENABLE = yes   # Enable keyboard underlight functionality
 MIDI_ENABLE = no 		    # MIDI controls
 UNICODE_ENABLE = no 		# Unicode
 BLUETOOTH_ENABLE = no   # Enable Bluetooth with the Adafruit EZ-Key HID
+
+LAYOUTS = 66_ansi 66_iso
diff --git a/keyboards/clueboard/66_hotswap/prototype/rules.mk b/keyboards/clueboard/66_hotswap/prototype/rules.mk
index 887592b373..0a2a734cf5 100644
--- a/keyboards/clueboard/66_hotswap/prototype/rules.mk
+++ b/keyboards/clueboard/66_hotswap/prototype/rules.mk
@@ -1,11 +1,15 @@
-EXTRAFLAGS += -flto
-LAYOUTS = 66_ansi
+# MCU name
 MCU = atmega32u4
-F_CPU = 16000000
-ARCH = AVR8
-F_USB = $(F_CPU)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   comment out to disable the options.
@@ -22,3 +26,6 @@ RGBLIGHT_ENABLE = yes
 MIDI_ENABLE = no
 UNICODE_ENABLE = no
 BLUETOOTH_ENABLE = no
+
+EXTRAFLAGS += -flto
+LAYOUTS = 66_ansi
diff --git a/keyboards/clueboard/card/rules.mk b/keyboards/clueboard/card/rules.mk
index 46d6f91130..2162b25de1 100644
--- a/keyboards/clueboard/card/rules.mk
+++ b/keyboards/clueboard/card/rules.mk
@@ -1,9 +1,15 @@
+# MCU name
 MCU = atmega32u4
-F_CPU = 16000000
-ARCH = AVR8
-F_USB = $(F_CPU)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 
 # Build Options
diff --git a/keyboards/cocoa40/keymaps/default/rules.mk b/keyboards/cocoa40/keymaps/default/rules.mk
deleted file mode 100644
index 8b13789179..0000000000
--- a/keyboards/cocoa40/keymaps/default/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/keyboards/cocoa40/rules.mk b/keyboards/cocoa40/rules.mk
index f7e529a4b2..ad0ffbf0fe 100644
--- a/keyboards/cocoa40/rules.mk
+++ b/keyboards/cocoa40/rules.mk
@@ -1,63 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/comet46/rules.mk b/keyboards/comet46/rules.mk
index fc00e205bf..d38f16734f 100644
--- a/keyboards/comet46/rules.mk
+++ b/keyboards/comet46/rules.mk
@@ -1,50 +1,15 @@
-# # project specific files
-SRC += matrix.c \
-       i2c.c \
-       ssd1306.c 
-       
 # MCU name
 MCU = atmega32u4
 
-# 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)
-
-# Bootloader
-#     This definition is optional, and if your keyboard supports multiple bootloaders of
-#     different sizes, comment this out, and the correct address will be loaded 
-#     automatically (+60). See bootloader.mk for all options.
-# BOOTLOADER = caterina
-
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
+BOOTLOADER = caterina
 
 # Build Options
 #   comment out to disable the options.
@@ -64,3 +29,7 @@ UNICODE_ENABLE = YES 		# Unicode
 # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
 
 USB = /dev/ttyACM0
+# project specific files
+SRC += matrix.c \
+       i2c.c \
+       ssd1306.c
diff --git a/keyboards/contra/rules.mk b/keyboards/contra/rules.mk
index 3a97834cff..0aded0f29a 100755
--- a/keyboards/contra/rules.mk
+++ b/keyboards/contra/rules.mk
@@ -1,45 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
+#   ATmega328P   USBasp
+BOOTLOADER = caterina
 
 # Build Options
 #   change yes to no to disable
diff --git a/keyboards/converter/adb_usb/rules.mk b/keyboards/converter/adb_usb/rules.mk
index 7901898c7c..66ca765266 100644
--- a/keyboards/converter/adb_usb/rules.mk
+++ b/keyboards/converter/adb_usb/rules.mk
@@ -1,59 +1,16 @@
 # MCU name
-# atmega32u4  Teensy2.0
-# atemga32u4  TMK Converter rev.1
-# atemga32u2  TMK Converter rev.2
 MCU = atmega32u4
 
-# 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
-# F_CPU = 8000000
-
-#
-# 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
-
-# Bootloader
-#     This definition is optional, and if your keyboard supports multiple bootloaders of
-#     different sizes, comment this out, and the correct address will be loaded
-#     automatically (+60). See bootloader.mk for all options.
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-# Boot Section Size in *bytes*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096  for TMK Converter rev.1/rev.2
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-
 # Build Options
 #   comment out to disable the options.
 #
diff --git a/keyboards/converter/hp_46010a/rules.mk b/keyboards/converter/hp_46010a/rules.mk
index 797258caf7..b23aaadeca 100644
--- a/keyboards/converter/hp_46010a/rules.mk
+++ b/keyboards/converter/hp_46010a/rules.mk
@@ -1,45 +1,14 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-# Bootloader
-#     This definition is optional, and if your keyboard supports multiple bootloaders of
-#     different sizes, comment this out, and the correct address will be loaded
-#     automatically (+60). See bootloader.mk for all options.
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = halfkay
 
 # Build Options
diff --git a/keyboards/converter/ibm_5291/rules.mk b/keyboards/converter/ibm_5291/rules.mk
index 457dad1661..edb456a7d8 100644
--- a/keyboards/converter/ibm_5291/rules.mk
+++ b/keyboards/converter/ibm_5291/rules.mk
@@ -1,45 +1,14 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-# Bootloader
-#     This definition is optional, and if your keyboard supports multiple bootloaders of
-#     different sizes, comment this out, and the correct address will be loaded
-#     automatically (+60). See bootloader.mk for all options.
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = halfkay
 
 # Build Options
diff --git a/keyboards/converter/ibm_terminal/rules.mk b/keyboards/converter/ibm_terminal/rules.mk
index a48038ccde..36913ef331 100644
--- a/keyboards/converter/ibm_terminal/rules.mk
+++ b/keyboards/converter/ibm_terminal/rules.mk
@@ -1,48 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   change to "no" to disable the options, or define them in the Makefile in
diff --git a/keyboards/converter/m0110_usb/rules.mk b/keyboards/converter/m0110_usb/rules.mk
index bffee05fde..36c3dfa3fd 100644
--- a/keyboards/converter/m0110_usb/rules.mk
+++ b/keyboards/converter/m0110_usb/rules.mk
@@ -1,59 +1,19 @@
 # MCU name
-# atmega32u4  Teensy2.0
-# atemga32u4  TMK Converter rev.1
-# atemga32u2  TMK Converter rev.2
 MCU = atmega32u4
 
-# 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
+# Processor frequency
 F_CPU = 8000000
 
-#
-# 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
-
-# Bootloader
-#     This definition is optional, and if your keyboard supports multiple bootloaders of
-#     different sizes, comment this out, and the correct address will be loaded
-#     automatically (+60). See bootloader.mk for all options.
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-# Boot Section Size in *bytes*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096  for TMK Converter rev.1/rev.2
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-
 # Build Options
 #   comment out to disable the options.
 #
diff --git a/keyboards/converter/numeric_keypad_IIe/rules.mk b/keyboards/converter/numeric_keypad_IIe/rules.mk
index f61a7d4501..03c1bc8f86 100644
--- a/keyboards/converter/numeric_keypad_IIe/rules.mk
+++ b/keyboards/converter/numeric_keypad_IIe/rules.mk
@@ -1,59 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/converter/palm_usb/rules.mk b/keyboards/converter/palm_usb/rules.mk
index 7374fd955f..2cd2c47e59 100644
--- a/keyboards/converter/palm_usb/rules.mk
+++ b/keyboards/converter/palm_usb/rules.mk
@@ -1,11 +1,14 @@
-MCU = atmega32u4       # Teensy 2.0
-F_CPU = 16000000
-ARCH = AVR8
-F_USB = $(F_CPU)
-
-# Interrupt driven control endpoint task
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+# MCU name
+MCU = atmega32u4
 
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
 # Build Options
diff --git a/keyboards/converter/sun_usb/rules.mk b/keyboards/converter/sun_usb/rules.mk
index db6b5c7ee4..60beb4d9b0 100644
--- a/keyboards/converter/sun_usb/rules.mk
+++ b/keyboards/converter/sun_usb/rules.mk
@@ -1,11 +1,14 @@
-MCU = atmega32u4       # Teensy 2.0
-F_CPU = 16000000
-ARCH = AVR8
-F_USB = $(F_CPU)
-
-# Interrupt driven control endpoint task
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+# MCU name
+MCU = atmega32u4
 
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = lufa-dfu
 
 # Build Options
diff --git a/keyboards/converter/usb_usb/rules.mk b/keyboards/converter/usb_usb/rules.mk
index dfe89ee7d9..b4f37d3ad8 100644
--- a/keyboards/converter/usb_usb/rules.mk
+++ b/keyboards/converter/usb_usb/rules.mk
@@ -1,55 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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.
-
-# Since there are different hardware variations of these adapters and since these
-# have different CPU clocks, the clock speed should be set in the rules.mk file of the
-# respective hardware variantion (i.e. subproject). For example, in /pro_micro/rules.mk
-# this is set to 8000000.
-# The value here is only a fallback and is ignored if it is defined in the subproject.
-F_CPU ?= 16000000
-
-DEFAULT_FOLDER = converter/usb_usb/hasu
-
-#
-# 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)
-
-# Bootloader
-#     This definition is optional, and if your keyboard supports multiple bootloaders of
-#     different sizes, comment this out, and the correct address will be loaded
-#     automatically (+60). See bootloader.mk for all options.
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-# Interrupt driven control endpoint task
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
 # Build Options
 #   comment out to disable the options.
 #
@@ -65,3 +26,5 @@ USB_HID_ENABLE   = yes
 CUSTOM_MATRIX    = yes
 
 SRC = custom_matrix.cpp
+
+DEFAULT_FOLDER = converter/usb_usb/hasu
diff --git a/keyboards/converter/xt_usb/rules.mk b/keyboards/converter/xt_usb/rules.mk
index 1f96251830..05b70519c7 100644
--- a/keyboards/converter/xt_usb/rules.mk
+++ b/keyboards/converter/xt_usb/rules.mk
@@ -1,45 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-# Bootloader
-#     This indicates which bootloader is present on the board.
-# BOOTLOADER = caterina # Pro Micro
-BOOTLOADER = halfkay # Teensy
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
+BOOTLOADER = halfkay
 
 # Build Options
 #   comment out to disable the options.
diff --git a/keyboards/copenhagen_click/click_pad_v1/rules.mk b/keyboards/copenhagen_click/click_pad_v1/rules.mk
index 381604ac5b..dd7a086de8 100755
--- a/keyboards/copenhagen_click/click_pad_v1/rules.mk
+++ b/keyboards/copenhagen_click/click_pad_v1/rules.mk
@@ -7,20 +7,10 @@ MCU = atmega32u4
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/coseyfannitutti/discipad/rules.mk b/keyboards/coseyfannitutti/discipad/rules.mk
index 64f6188542..a9d06d608c 100644
--- a/keyboards/coseyfannitutti/discipad/rules.mk
+++ b/keyboards/coseyfannitutti/discipad/rules.mk
@@ -2,6 +2,13 @@
 MCU = atmega328p
 
 # Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = USBasp
 
 # Flash program via avrdude, but default command is not suitable.
diff --git a/keyboards/coseyfannitutti/mullet/rules.mk b/keyboards/coseyfannitutti/mullet/rules.mk
index fa02fe6fce..f390cfbe09 100644
--- a/keyboards/coseyfannitutti/mullet/rules.mk
+++ b/keyboards/coseyfannitutti/mullet/rules.mk
@@ -1,63 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/coseyfannitutti/mulletpad/rules.mk b/keyboards/coseyfannitutti/mulletpad/rules.mk
index b3a473ef4b..282a4a3650 100644
--- a/keyboards/coseyfannitutti/mulletpad/rules.mk
+++ b/keyboards/coseyfannitutti/mulletpad/rules.mk
@@ -1,63 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/cospad/rules.mk b/keyboards/cospad/rules.mk
index 61c7a5182c..075320a22f 100644
--- a/keyboards/cospad/rules.mk
+++ b/keyboards/cospad/rules.mk
@@ -1,63 +1,16 @@
-
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# 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
 #   comment out to disable the options.
 #
diff --git a/keyboards/crawlpad/rules.mk b/keyboards/crawlpad/rules.mk
index 2dda38e201..00931610a1 100755
--- a/keyboards/crawlpad/rules.mk
+++ b/keyboards/crawlpad/rules.mk
@@ -1,45 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   comment out to disable the options.
diff --git a/keyboards/crkbd/rules.mk b/keyboards/crkbd/rules.mk
index 950000a7ec..67674518d9 100644
--- a/keyboards/crkbd/rules.mk
+++ b/keyboards/crkbd/rules.mk
@@ -1,54 +1,16 @@
-QUANTUM_LIB_SRC += 	i2c.c \
-					serial.c
-SRC += ssd1306.c
-
-# if firmware size over limit, try this option
-# CFLAGS += -flto
-
 # MCU name
 MCU = atmega32u4
 
-# 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)
-
-# Bootloader
-#     This definition is optional, and if your keyboard supports multiple bootloaders of
-#     different sizes, comment this out, and the correct address will be loaded
-#     automatically (+60). See bootloader.mk for all options.
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
 # 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
@@ -70,5 +32,11 @@ RGBLIGHT_ENABLE = no       # Enable WS2812 RGB underlight.
 SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
 
 CUSTOM_MATRIX = yes
+QUANTUM_LIB_SRC += 	i2c.c \
+					serial.c
+SRC += ssd1306.c
+
+# if firmware size over limit, try this option
+# CFLAGS += -flto
 
 DEFAULT_FOLDER = crkbd/rev1
diff --git a/keyboards/cu24/rules.mk b/keyboards/cu24/rules.mk
index 01d74ac473..fdfba55b13 100644
--- a/keyboards/cu24/rules.mk
+++ b/keyboards/cu24/rules.mk
@@ -1,51 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   change yes to no to disable
diff --git a/keyboards/cu75/rules.mk b/keyboards/cu75/rules.mk
index a84343f056..697d8d18f2 100644
--- a/keyboards/cu75/rules.mk
+++ b/keyboards/cu75/rules.mk
@@ -1,41 +1,14 @@
+# MCU name
 MCU = atmega32u4
-OPT_DEFS += -DBOOTLOADER_SIZE=4096
 
-
-# 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
-
-SRC = ../lfkeyboards/TWIlib.c ../lfkeyboards/issi.c ../lfkeyboards/lighting.c
\ No newline at end of file
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
+
+SRC = ../lfkeyboards/TWIlib.c ../lfkeyboards/issi.c ../lfkeyboards/lighting.c
diff --git a/keyboards/daisy/rules.mk b/keyboards/daisy/rules.mk
index 5a7cc564c2..d2b0d7d167 100644
--- a/keyboards/daisy/rules.mk
+++ b/keyboards/daisy/rules.mk
@@ -1,50 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-OPT_DEFS += -DBOOTLOADER_SIZE=4996
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # QMK Build Options
 #   change to "no" to disable the options, or define them in the Makefile in 
diff --git a/keyboards/dc01/arrow/rules.mk b/keyboards/dc01/arrow/rules.mk
index 8426df1bd4..56a9cfc49c 100644
--- a/keyboards/dc01/arrow/rules.mk
+++ b/keyboards/dc01/arrow/rules.mk
@@ -1,54 +1,15 @@
-SRC += matrix.c \
-       i2c_slave.c
-
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   change yes to no to disable
@@ -71,3 +32,5 @@ FAUXCLICKY_ENABLE = no      # Use buzzer to emulate clicky switches
 HD44780_ENABLE = no         # Enable support for HD44780 based LCDs (+400)
 NO_USB_STARTUP_CHECK = yes  # Disable initialization only when usb is plugged in
 CUSTOM_MATRIX = yes         # Use custom matrix
+SRC += matrix.c \
+       i2c_slave.c
diff --git a/keyboards/dc01/left/rules.mk b/keyboards/dc01/left/rules.mk
index 8a0d061953..9e34a0a808 100644
--- a/keyboards/dc01/left/rules.mk
+++ b/keyboards/dc01/left/rules.mk
@@ -1,54 +1,15 @@
-SRC += matrix.c \
-       i2c_master.c
-
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   change yes to no to disable
@@ -70,3 +31,5 @@ AUDIO_ENABLE = no           # Audio output on port C6
 FAUXCLICKY_ENABLE = no      # Use buzzer to emulate clicky switches
 HD44780_ENABLE = no         # Enable support for HD44780 based LCDs (+400)
 CUSTOM_MATRIX = yes         # Use custom matrix
+SRC += matrix.c \
+       i2c_master.c
diff --git a/keyboards/dc01/numpad/rules.mk b/keyboards/dc01/numpad/rules.mk
index 420534f8ca..674ef1d026 100644
--- a/keyboards/dc01/numpad/rules.mk
+++ b/keyboards/dc01/numpad/rules.mk
@@ -1,54 +1,15 @@
-SRC += matrix.c \
-       i2c_slave.c
-
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   change yes to no to disable
@@ -71,6 +32,8 @@ FAUXCLICKY_ENABLE = no      # Use buzzer to emulate clicky switches
 HD44780_ENABLE = no 		# Enable support for HD44780 based LCDs (+400)
 NO_USB_STARTUP_CHECK = yes  # Disable initialization only when usb is plugged in
 CUSTOM_MATRIX = yes         # Use custom matrix
+SRC += matrix.c \
+       i2c_slave.c
 
 # Community layouts supported
 LAYOUTS = numpad_5x4 ortho_5x4
diff --git a/keyboards/dc01/right/rules.mk b/keyboards/dc01/right/rules.mk
index 8426df1bd4..56a9cfc49c 100644
--- a/keyboards/dc01/right/rules.mk
+++ b/keyboards/dc01/right/rules.mk
@@ -1,54 +1,15 @@
-SRC += matrix.c \
-       i2c_slave.c
-
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   change yes to no to disable
@@ -71,3 +32,5 @@ FAUXCLICKY_ENABLE = no      # Use buzzer to emulate clicky switches
 HD44780_ENABLE = no         # Enable support for HD44780 based LCDs (+400)
 NO_USB_STARTUP_CHECK = yes  # Disable initialization only when usb is plugged in
 CUSTOM_MATRIX = yes         # Use custom matrix
+SRC += matrix.c \
+       i2c_slave.c
diff --git a/keyboards/deltasplit75/rules.mk b/keyboards/deltasplit75/rules.mk
index eadea18929..a976360bf1 100644
--- a/keyboards/deltasplit75/rules.mk
+++ b/keyboards/deltasplit75/rules.mk
@@ -1,52 +1,16 @@
-SRC += matrix.c \
-	   i2c.c \
-	   split_util.c \
-	   serial.c
-
 # MCU name
 MCU = atmega32u4
 
-# 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)
-
-# Bootloader
-#     This definition is optional, and if your keyboard supports multiple bootloaders of
-#     different sizes, comment this out, and the correct address will be loaded
-#     automatically (+60). See bootloader.mk for all options.
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
 # 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
@@ -69,5 +33,9 @@ USE_I2C = yes
 SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
 
 CUSTOM_MATRIX = yes
+SRC += matrix.c \
+	   i2c.c \
+	   split_util.c \
+	   serial.c
 
 DEFAULT_FOLDER = deltasplit75/v2
diff --git a/keyboards/dichotomy/rules.mk b/keyboards/dichotomy/rules.mk
index 1cced06478..9ab4d56922 100755
--- a/keyboards/dichotomy/rules.mk
+++ b/keyboards/dichotomy/rules.mk
@@ -1,56 +1,15 @@
-
-OPT_DEFS += -DDICHOTOMY_PROMICRO
-DICHOTOMY_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \
-                         avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB)
-
-# # project specific files
-SRC = matrix.c
-
-
 # MCU name
 MCU = atmega32u4
 
-# 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)
-
-# Bootloader
- #     This definition is optional, and if your keyboard supports multiple bootloaders of
- #     different sizes, comment this out, and the correct address will be loaded
- #     automatically (+60). See bootloader.mk for all options.
- BOOTLOADER = caterina
-
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
+BOOTLOADER = caterina
 
 # Build Options
 #   comment out to disable the options.
@@ -72,5 +31,12 @@ UNICODE_ENABLE = YES 		# Unicode
 
 USB = /dev/ttyACM0
 
+OPT_DEFS += -DDICHOTOMY_PROMICRO
+DICHOTOMY_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \
+                         avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB)
+
+# # project specific files
+SRC = matrix.c
+
 #upload: build
 #	$(DICHOTOMY_UPLOAD_COMMAND)
diff --git a/keyboards/diverge3/rules.mk b/keyboards/diverge3/rules.mk
index 3888ee9370..42ab5224af 100644
--- a/keyboards/diverge3/rules.mk
+++ b/keyboards/diverge3/rules.mk
@@ -1,51 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-# 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
+#   ATmega328P   USBasp
+BOOTLOADER = caterina
 
 # Build Options
 #   change yes to no to disable
diff --git a/keyboards/divergetm2/keymaps/default/rules.mk b/keyboards/divergetm2/keymaps/default/rules.mk
deleted file mode 100644
index e69de29bb2..0000000000
--- a/keyboards/divergetm2/keymaps/default/rules.mk
+++ /dev/null
diff --git a/keyboards/divergetm2/rules.mk b/keyboards/divergetm2/rules.mk
index f330bd7902..9a461edec9 100644
--- a/keyboards/divergetm2/rules.mk
+++ b/keyboards/divergetm2/rules.mk
@@ -1,51 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-# 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
+#   ATmega328P   USBasp
+BOOTLOADER = caterina
 
 # Build Options
 #   change yes to no to disable
@@ -67,6 +31,3 @@ RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.
 SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
 
 SPLIT_KEYBOARD = yes
-
-# must specify this to enable soft-reset
-BOOTLOADER = caterina
diff --git a/keyboards/dk60/rules.mk b/keyboards/dk60/rules.mk
index c85ed9b0a6..17ee5d9618 100644
--- a/keyboards/dk60/rules.mk
+++ b/keyboards/dk60/rules.mk
@@ -1,9 +1,15 @@
+# MCU name
 MCU = atmega32u4
-F_CPU = 16000000
-ARCH = AVR8
-F_USB = $(F_CPU)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 BOOTMAGIC_ENABLE = yes	# Virtual DIP switch configuration(+1000)
 MOUSEKEY_ENABLE = no	# Mouse keys(+4700)
diff --git a/keyboards/do60/rules.mk b/keyboards/do60/rules.mk
index 7370a6262e..bd74db7f82 100644
--- a/keyboards/do60/rules.mk
+++ b/keyboards/do60/rules.mk
@@ -1,52 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 AUDIO_ENABLE = no           # Audio output on port C6
@@ -63,4 +26,4 @@ RGBLIGHT_ENABLE = yes       # Enable WS2812 RGB underlight.
 SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
 UNICODE_ENABLE = no         # Unicode
 
-LAYOUTS = 60_ansi 60_hhkb 60_ansi_split_bs_rshift
\ No newline at end of file
+LAYOUTS = 60_ansi 60_hhkb 60_ansi_split_bs_rshift
diff --git a/keyboards/doro67/multi/rules.mk b/keyboards/doro67/multi/rules.mk
index ef3def96da..d719b7043f 100644
--- a/keyboards/doro67/multi/rules.mk
+++ b/keyboards/doro67/multi/rules.mk
@@ -6,10 +6,10 @@ MCU = atmega32u4
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
 # Build Options
 #   change yes to no to disable
 #
@@ -31,4 +31,4 @@ AUDIO_ENABLE = no            # Audio output on port C6
 FAUXCLICKY_ENABLE = no       # Use buzzer to emulate clicky switches
 HD44780_ENABLE = no          # Enable support for HD44780 based LCDs (+400)
 
-LAYOUTS = 65_ansi_blocker
\ No newline at end of file
+LAYOUTS = 65_ansi_blocker
diff --git a/keyboards/doro67/regular/rules.mk b/keyboards/doro67/regular/rules.mk
index f844f8f956..d88f6fcfe6 100644
--- a/keyboards/doro67/regular/rules.mk
+++ b/keyboards/doro67/regular/rules.mk
@@ -7,7 +7,8 @@ MCU = atmega32u4
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
 # Build Options
@@ -31,4 +32,4 @@ AUDIO_ENABLE = no           # Audio output on port C6
 FAUXCLICKY_ENABLE = no      # Use buzzer to emulate clicky switches
 HD44780_ENABLE = no 		# Enable support for HD44780 based LCDs (+400)
 
-LAYOUTS = 65_ansi_blocker
\ No newline at end of file
+LAYOUTS = 65_ansi_blocker
diff --git a/keyboards/doro67/rgb/rules.mk b/keyboards/doro67/rgb/rules.mk
index df77b4311b..769edfb45d 100644
--- a/keyboards/doro67/rgb/rules.mk
+++ b/keyboards/doro67/rgb/rules.mk
@@ -1,65 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-RGB_MATRIX_ENABLE = WS2812
-
-
 # Build Options
 #   change yes to no to disable
 #
@@ -80,5 +31,6 @@ BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
 AUDIO_ENABLE = no           # Audio output on port C6
 FAUXCLICKY_ENABLE = no      # Use buzzer to emulate clicky switches
 HD44780_ENABLE = no 		# Enable support for HD44780 based LCDs (+400)
+RGB_MATRIX_ENABLE = WS2812
 
-LAYOUTS = 65_ansi_blocker
\ No newline at end of file
+LAYOUTS = 65_ansi_blocker
diff --git a/keyboards/dozen0/rules.mk b/keyboards/dozen0/rules.mk
index bc370be039..7218e1e1bf 100644
--- a/keyboards/dozen0/rules.mk
+++ b/keyboards/dozen0/rules.mk
@@ -1,63 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/dp60/keymaps/via/rules.mk b/keyboards/dp60/keymaps/via/rules.mk
index d532fc4559..27d6223bae 100644
--- a/keyboards/dp60/keymaps/via/rules.mk
+++ b/keyboards/dp60/keymaps/via/rules.mk
@@ -11,7 +11,6 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
 #   LUFA bootloader  4096
 #   USBaspLoader     2048
 BOOTLOADER = atmel-dfu
-#OPT_DEFS += -DBOOTLOADER_SIZE=4096
 
 # Do not put the microcontroller into power saving mode
 # when we get USB suspend event. We want it to keep updating
@@ -45,4 +44,4 @@ DYNAMIC_KEYMAP_ENABLE = yes
 
 CUSTOM_MATRIX = yes
 SRC += matrix.c keyboards/wilba_tech/wt_main.c
-#keyboards/stm60/webusb.c
\ No newline at end of file
+#keyboards/stm60/webusb.c
diff --git a/keyboards/dp60/rules.mk b/keyboards/dp60/rules.mk
index 1404ab7b32..0f998746fb 100644
--- a/keyboards/dp60/rules.mk
+++ b/keyboards/dp60/rules.mk
@@ -1,17 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
-#OPT_DEFS += -DBOOTLOADER_SIZE=4096
 
 # Do not put the microcontroller into power saving mode
 # when we get USB suspend event. We want it to keep updating
@@ -42,4 +40,4 @@ RGB_MATRIX_ENABLE = yes     # Use RGB matrix
 LAYOUTS = 60_ansi 60_hhkb 60_iso 60_ansi_split_bs_rshift
 
 CUSTOM_MATRIX = yes
-SRC += matrix.c 
\ No newline at end of file
+SRC += matrix.c 
diff --git a/keyboards/duck/eagle_viper/v2/rules.mk b/keyboards/duck/eagle_viper/v2/rules.mk
index 1abd7d9413..9b3ffa8ac5 100644
--- a/keyboards/duck/eagle_viper/v2/rules.mk
+++ b/keyboards/duck/eagle_viper/v2/rules.mk
@@ -1,51 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   change yes to no to disable
diff --git a/keyboards/duck/jetfire/rules.mk b/keyboards/duck/jetfire/rules.mk
index dceddc7c7d..04d4f45695 100644
--- a/keyboards/duck/jetfire/rules.mk
+++ b/keyboards/duck/jetfire/rules.mk
@@ -1,51 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   change yes to no to disable
diff --git a/keyboards/duck/lightsaver/rules.mk b/keyboards/duck/lightsaver/rules.mk
index bc7b901b49..b6cb462ebb 100644
--- a/keyboards/duck/lightsaver/rules.mk
+++ b/keyboards/duck/lightsaver/rules.mk
@@ -1,51 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   change yes to no to disable
diff --git a/keyboards/duck/octagon/v1/rules.mk b/keyboards/duck/octagon/v1/rules.mk
index 889b93ed45..7027fb1276 100644
--- a/keyboards/duck/octagon/v1/rules.mk
+++ b/keyboards/duck/octagon/v1/rules.mk
@@ -1,51 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   change yes to no to disable
diff --git a/keyboards/duck/octagon/v2/rules.mk b/keyboards/duck/octagon/v2/rules.mk
index c403247074..cd4d2c2fec 100644
--- a/keyboards/duck/octagon/v2/rules.mk
+++ b/keyboards/duck/octagon/v2/rules.mk
@@ -1,51 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   change yes to no to disable
diff --git a/keyboards/dumbpad/rules.mk b/keyboards/dumbpad/rules.mk
index 5d585c65be..a5df407da4 100644
--- a/keyboards/dumbpad/rules.mk
+++ b/keyboards/dumbpad/rules.mk
@@ -1,63 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/dz60/keymaps/LEdiodes/rules.mk b/keyboards/dz60/keymaps/LEdiodes/rules.mk
index 08adc989df..38b067eb0f 100644
--- a/keyboards/dz60/keymaps/LEdiodes/rules.mk
+++ b/keyboards/dz60/keymaps/LEdiodes/rules.mk
@@ -1,46 +1,3 @@
-# MCU name
-MCU = atmega32u4
-
-# 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
-
-
 # Build Options
 #   comment out to disable the options.
 #
@@ -55,4 +12,4 @@ BACKLIGHT_ENABLE = yes  # Enable keyboard backlight functionality
 AUDIO_ENABLE = no
 RGBLIGHT_ENABLE = yes
 AUTO_SHIFT_ENABLE = yes # If the time depressed is greater than or equal to the AUTO_SHIFT_TIMEOUT, then a shifted version of the key is emitted. If the time is less than the AUTO_SHIFT_TIMEOUT time, then the normal state is emitted
-TAP_DANCE_ENABLE = yes
\ No newline at end of file
+TAP_DANCE_ENABLE = yes
diff --git a/keyboards/dz60/rules.mk b/keyboards/dz60/rules.mk
index 33beea728c..d2faa99897 100644
--- a/keyboards/dz60/rules.mk
+++ b/keyboards/dz60/rules.mk
@@ -1,42 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-BOOTLOADER=atmel-dfu
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   comment out to disable the options.
diff --git a/keyboards/eco/rules.mk b/keyboards/eco/rules.mk
index e2cebaf97d..4fe5ec1b92 100644
--- a/keyboards/eco/rules.mk
+++ b/keyboards/eco/rules.mk
@@ -1,47 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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)
-
-# Bootloader
-#     This definition is optional, and if your keyboard supports multiple bootloaders of
-#     different sizes, comment this out, and the correct address will be loaded 
-#     automatically (+60). See bootloader.mk for all options.
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
 # 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
diff --git a/keyboards/emptystring/NQG/rules.mk b/keyboards/emptystring/NQG/rules.mk
index 9a46bb8544..8ebed340ad 100644
--- a/keyboards/emptystring/NQG/rules.mk
+++ b/keyboards/emptystring/NQG/rules.mk
@@ -1,50 +1,15 @@
 # MCU name
-
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = caterina
 
 # Build Options
 #   change to "no" to disable the options, or define them in the Makefile in
diff --git a/keyboards/ep/40/rules.mk b/keyboards/ep/40/rules.mk
index 9ddf9717e9..7e69544cf4 100644
--- a/keyboards/ep/40/rules.mk
+++ b/keyboards/ep/40/rules.mk
@@ -1,63 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/ep/96/rules.mk b/keyboards/ep/96/rules.mk
index 9ddf9717e9..7e69544cf4 100644
--- a/keyboards/ep/96/rules.mk
+++ b/keyboards/ep/96/rules.mk
@@ -1,63 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/ep/comsn/hs68/rules.mk b/keyboards/ep/comsn/hs68/rules.mk
index b7d3b9b528..2aa5671557 100644
--- a/keyboards/ep/comsn/hs68/rules.mk
+++ b/keyboards/ep/comsn/hs68/rules.mk
@@ -1,63 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/ep/comsn/mollydooker/rules.mk b/keyboards/ep/comsn/mollydooker/rules.mk
index db4f2edc0b..4ef5023dfb 100644
--- a/keyboards/ep/comsn/mollydooker/rules.mk
+++ b/keyboards/ep/comsn/mollydooker/rules.mk
@@ -1,63 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/ep/comsn/tf_longeboye/rules.mk b/keyboards/ep/comsn/tf_longeboye/rules.mk
index 195c9e5023..5360459cf7 100644
--- a/keyboards/ep/comsn/tf_longeboye/rules.mk
+++ b/keyboards/ep/comsn/tf_longeboye/rules.mk
@@ -1,63 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/ergo42/rules.mk b/keyboards/ergo42/rules.mk
index d8544d9ba0..a02e3ca74e 100644
--- a/keyboards/ergo42/rules.mk
+++ b/keyboards/ergo42/rules.mk
@@ -1,58 +1,16 @@
-SRC += matrix.c \
-	   i2c.c \
-	   split_util.c \
-	   serial.c \
-	   ssd1306.c
-
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-
 # 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
@@ -75,6 +33,11 @@ USE_I2C = yes
 SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
 
 CUSTOM_MATRIX = yes
+SRC += matrix.c \
+	   i2c.c \
+	   split_util.c \
+	   serial.c \
+	   ssd1306.c
 
 LAYOUTS = ortho_4x14
 
diff --git a/keyboards/ergodash/rules.mk b/keyboards/ergodash/rules.mk
index 8be059d969..d57e4ce13a 100644
--- a/keyboards/ergodash/rules.mk
+++ b/keyboards/ergodash/rules.mk
@@ -1,21 +1,14 @@
 # MCU name
 MCU = atmega32u4
 
-# Processor frequency.
-F_CPU = 16000000
-
-# LUFA specific
-#
-# Target architecture (see library "Board Types" documentation).
-ARCH = AVR8
-
-# Input clock frequency.
-F_USB = $(F_CPU)
-
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-# Bootloader
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
 # Build Options
diff --git a/keyboards/ergodone/rules.mk b/keyboards/ergodone/rules.mk
index 6acfaf92e9..4c2fcf1595 100644
--- a/keyboards/ergodone/rules.mk
+++ b/keyboards/ergodone/rules.mk
@@ -1,71 +1,15 @@
-#----------------------------------------------------------------------------
-# On command line:
-#
-# make = Make software.
-#
-# make clean = Clean out built project files.
-#
-# That's pretty much all you need. To compile, always go make clean,
-# followed by make.
-#
-# For advanced users only:
-# make teensy = Download the hex file to the device, using teensy_loader_cli.
-#               (must have teensy_loader_cli installed).
-#
-#----------------------------------------------------------------------------
-
-# # project specific files
-SRC = \
-    twimaster.c \
-	  matrix.c    \
-    expander.c  \
-
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = caterina
 
 # Build Options
 #   comment out to disable the options.
@@ -92,4 +36,10 @@ SWAP_HANDS_ENABLE       = no  # Disable Onehand
 RGBLIGHT_ENABLE         = no
 MIDI_ENABLE             = no
 
+# project specific files
+SRC = \
+    twimaster.c \
+	  matrix.c    \
+    expander.c  \
+
 LAYOUTS = ergodox
diff --git a/keyboards/ergodox_ez/rules.mk b/keyboards/ergodox_ez/rules.mk
index 2882072a62..dbc35f6836 100644
--- a/keyboards/ergodox_ez/rules.mk
+++ b/keyboards/ergodox_ez/rules.mk
@@ -1,68 +1,16 @@
-#----------------------------------------------------------------------------
-# On command line:
-#
-# make = Make software.
-#
-# make clean = Clean out built project files.
-#
-# That's pretty much all you need. To compile, always go make clean,
-# followed by make.
-#
-# For advanced users only:
-# make teensy = Download the hex file to the device, using teensy_loader_cli.
-#               (must have teensy_loader_cli installed).
-#
-#----------------------------------------------------------------------------
-
-# # project specific files
-SRC += matrix.c
-QUANTUM_LIB_SRC += i2c_master.c
-
 # MCU name
 MCU = atmega32u4
 
-# 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)
-
-# Bootloader
-#     This definition is optional, and if your keyboard supports multiple bootloaders of
-#     different sizes, comment this out, and the correct address will be loaded
-#     automatically (+60). See bootloader.mk for all options.
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = halfkay
 
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
 # If you have Left LEDs (see
 # https://geekhack.org/index.php?topic=22780.msg873819#msg873819 for
 # details), include the following define:
@@ -86,4 +34,8 @@ RGBLIGHT_ENABLE = yes
 RGB_MATRIX_ENABLE = no # enable later
 DEBOUNCE_TYPE = eager_pr
 
+# project specific files
+SRC += matrix.c
+QUANTUM_LIB_SRC += i2c_master.c
+
 LAYOUTS = ergodox
diff --git a/keyboards/ergoinu/rules.mk b/keyboards/ergoinu/rules.mk
index 1797d03ccb..5c600bcd2e 100644
--- a/keyboards/ergoinu/rules.mk
+++ b/keyboards/ergoinu/rules.mk
@@ -1,49 +1,16 @@
-SRC += matrix.c serial.c split_util.c
-
 # MCU name
 MCU = atmega32u4
 
-# 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)
-
-# Bootloader
-#     This definition is optional, and if your keyboard supports multiple bootloaders of
-#     different sizes, comment this out, and the correct address will be loaded
-#     automatically (+60). See bootloader.mk for all options.
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
 # 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
@@ -66,6 +33,7 @@ USE_I2C = no               # i2c is not supported
 SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
 
 CUSTOM_MATRIX = yes
+SRC += matrix.c serial.c split_util.c
 
 DEFAULT_FOLDER = ergoinu
 
diff --git a/keyboards/ergotaco/keymaps/default/rules.mk b/keyboards/ergotaco/keymaps/default/rules.mk
index e394fbf1e6..870d047dc9 100644
--- a/keyboards/ergotaco/keymaps/default/rules.mk
+++ b/keyboards/ergotaco/keymaps/default/rules.mk
@@ -1,9 +1,3 @@
-#----------------------------------------------------------------------------
-# make ergotaco:default:dfu
-# Make sure you have dfu-programmer installed!
-#----------------------------------------------------------------------------
-# Firmware options
-
 #Debug options
 VERBOSE 		 		= yes
 DEBUG_MATRIX_SCAN_RATE  = no
diff --git a/keyboards/ergotaco/rules.mk b/keyboards/ergotaco/rules.mk
index 0af3e34740..cd8ebc58f0 100644
--- a/keyboards/ergotaco/rules.mk
+++ b/keyboards/ergotaco/rules.mk
@@ -1,15 +1,15 @@
-#----------------------------------------------------------------------------
-# make ergotaco:default:dfu
-# Make sure you have dfu-programmer installed!
-# Do not edit this file! Make a copy of keymaps/default and modify that!
-#----------------------------------------------------------------------------
-
-# Hardware info
+# MCU name
 MCU = atmega32u4
-F_CPU = 16000000
-ARCH = AVR8
+
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
-F_USB = $(F_CPU)
 
 CUSTOM_MATRIX 		= yes
 EXTRAKEY_ENABLE		= yes
diff --git a/keyboards/ergotravel/keymaps/default/rules.mk b/keyboards/ergotravel/keymaps/default/rules.mk
deleted file mode 100644
index e69de29bb2..0000000000
--- a/keyboards/ergotravel/keymaps/default/rules.mk
+++ /dev/null
diff --git a/keyboards/ergotravel/rules.mk b/keyboards/ergotravel/rules.mk
index c88a7fa14f..be7c8d990f 100644
--- a/keyboards/ergotravel/rules.mk
+++ b/keyboards/ergotravel/rules.mk
@@ -1,47 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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)
-
-# Bootloader
-#     This definition is optional, and if your keyboard supports multiple bootloaders of
-#     different sizes, comment this out, and the correct address will be loaded
-#     automatically (+60). See bootloader.mk for all options.
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
 # 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
diff --git a/keyboards/espectro/rules.mk b/keyboards/espectro/rules.mk
index 2c28fe8504..2d1c1eed09 100755
--- a/keyboards/espectro/rules.mk
+++ b/keyboards/espectro/rules.mk
@@ -1,51 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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)
-
-# Bootloader
-#     This definition is optional, and if your keyboard supports multiple bootloaders of
-#     different sizes, comment this out, and the correct address will be loaded
-#     automatically (+60). See bootloader.mk for all options.
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
-
-# Boot Section Size in *bytes*
-
-
 # Build Options
 #   comment out to disable the options.
 #
diff --git a/keyboards/evil80/rules.mk b/keyboards/evil80/rules.mk
index d86594f98f..683f892460 100644
--- a/keyboards/evil80/rules.mk
+++ b/keyboards/evil80/rules.mk
@@ -1,49 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   change to "no" to disable the options, or define them in the Makefile in 
diff --git a/keyboards/exclusive/e65/rules.mk b/keyboards/exclusive/e65/rules.mk
index 33c015cda5..0b994a279b 100644
--- a/keyboards/exclusive/e65/rules.mk
+++ b/keyboards/exclusive/e65/rules.mk
@@ -2,6 +2,13 @@
 MCU = atmega32u4
 
 # Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
 # Build Options
diff --git a/keyboards/exclusive/e6_rgb/rules.mk b/keyboards/exclusive/e6_rgb/rules.mk
index 9e4e0f58f5..4695f64760 100644
--- a/keyboards/exclusive/e6_rgb/rules.mk
+++ b/keyboards/exclusive/e6_rgb/rules.mk
@@ -1,53 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# project specific files
-#SRC =
-
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
-#OPT_DEFS += -DBOOTLOADER_SIZE=4096
 
 # Do not put the microcontroller into power saving mode
 # when we get USB suspend event. We want it to keep updating
diff --git a/keyboards/exclusive/e6v2/le/rules.mk b/keyboards/exclusive/e6v2/le/rules.mk
index ffad52dbc5..e6cad94033 100644
--- a/keyboards/exclusive/e6v2/le/rules.mk
+++ b/keyboards/exclusive/e6v2/le/rules.mk
@@ -1,51 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   change yes to no to disable
diff --git a/keyboards/exclusive/e6v2/oe/rules.mk b/keyboards/exclusive/e6v2/oe/rules.mk
index ffad52dbc5..e6cad94033 100644
--- a/keyboards/exclusive/e6v2/oe/rules.mk
+++ b/keyboards/exclusive/e6v2/oe/rules.mk
@@ -1,51 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   change yes to no to disable
diff --git a/keyboards/exclusive/e7v1/rules.mk b/keyboards/exclusive/e7v1/rules.mk
index f903df7de5..335e228bba 100644
--- a/keyboards/exclusive/e7v1/rules.mk
+++ b/keyboards/exclusive/e7v1/rules.mk
@@ -1,42 +1,14 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
 # Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
 # Build Options
diff --git a/keyboards/fc660c/rules.mk b/keyboards/fc660c/rules.mk
index c947947f80..18613a5917 100644
--- a/keyboards/fc660c/rules.mk
+++ b/keyboards/fc660c/rules.mk
@@ -1,50 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 
 # Build Options
diff --git a/keyboards/fc980c/rules.mk b/keyboards/fc980c/rules.mk
index 261bb41c8f..596b96f1f4 100644
--- a/keyboards/fc980c/rules.mk
+++ b/keyboards/fc980c/rules.mk
@@ -1,51 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   comment out to disable the options.
diff --git a/keyboards/felix/rules.mk b/keyboards/felix/rules.mk
index b33785b64a..7371e3b1a0 100644
--- a/keyboards/felix/rules.mk
+++ b/keyboards/felix/rules.mk
@@ -1,52 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/fleuron/rules.mk b/keyboards/fleuron/rules.mk
index 8e0b084c45..5695e68856 100644
--- a/keyboards/fleuron/rules.mk
+++ b/keyboards/fleuron/rules.mk
@@ -1,51 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
-#   Teensy halfKay   512
-#   Teensy++ halfKay 1024
-#   Atmel DFU loader 4096
-#   LUFA bootloader  4096
-#   USBaspLoader     2048
-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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   change yes to no to disable
diff --git a/keyboards/fortitude60/rules.mk b/keyboards/fortitude60/rules.mk
index 5ea1cc5a50..1fdbfb0163 100644
--- a/keyboards/fortitude60/rules.mk
+++ b/keyboards/fortitude60/rules.mk
@@ -1,51 +1,16 @@
-SRC += matrix.c \
-       split_util.c \
-       serial.c
-
 # MCU name
 MCU = atmega32u4
 
-# 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)
-
-# Bootloader
-#     This definition is optional, and if your keyboard supports multiple bootloaders of
-#     different sizes, comment this out, and the correct address will be loaded 
-#     automatically (+60). See bootloader.mk for all options.
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-# Interrupt driven control endpoint task(+60)
-OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
-
 # 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
@@ -67,5 +32,8 @@ USE_SERIAL = yes	# Serial support only on fortitude60
 SLEEP_LED_ENABLE = yes    # Breathing sleep LED during USB suspend
 
 CUSTOM_MATRIX = yes
+SRC += matrix.c \
+       split_util.c \
+       serial.c
 
 DEFAULT_FOLDER = fortitude60/rev1
diff --git a/keyboards/four_banger/rules.mk b/keyboards/four_banger/rules.mk
index 212e74059e..d37439a0f7 100644
--- a/keyboards/four_banger/rules.mk
+++ b/keyboards/four_banger/rules.mk
@@ -1,45 +1,15 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
+#   ATmega328P   USBasp
+BOOTLOADER = atmel-dfu
 
 # Build Options
 #   comment out to disable the options.
@@ -53,4 +23,4 @@ SLEEP_LED_ENABLE = no  # Breathing sleep LED during USB suspend
 NKRO_ENABLE = yes      # USB 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
 AUDIO_ENABLE = no
-RGBLIGHT_ENABLE = yes
\ No newline at end of file
+RGBLIGHT_ENABLE = yes
diff --git a/keyboards/foxlab/leaf60/hotswap/rules.mk b/keyboards/foxlab/leaf60/hotswap/rules.mk
index 75ee00a1a9..6c1ec4525c 100644
--- a/keyboards/foxlab/leaf60/hotswap/rules.mk
+++ b/keyboards/foxlab/leaf60/hotswap/rules.mk
@@ -1,63 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/foxlab/leaf60/universal/rules.mk b/keyboards/foxlab/leaf60/universal/rules.mk
index a865410333..1fcd0aa22d 100644
--- a/keyboards/foxlab/leaf60/universal/rules.mk
+++ b/keyboards/foxlab/leaf60/universal/rules.mk
@@ -1,63 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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
-
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/fractal/rules.mk b/keyboards/fractal/rules.mk
index 0de2a7d39f..4894f1f4d8 100755
--- a/keyboards/fractal/rules.mk
+++ b/keyboards/fractal/rules.mk
@@ -1,46 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-# 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*
+# Bootloader selection
+#   Teensy       halfkay
+#   Pro Micro    caterina
+#   Atmel DFU    atmel-dfu
+#   LUFA DFU     lufa-dfu
+#   QMK DFU      qmk-dfu
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = caterina
 
-
 # Build Options
 #   change yes to no to disable
 #
diff --git a/keyboards/freyr/rules.mk b/keyboards/freyr/rules.mk
index d017c9195f..1a00e299fa 100644
--- a/keyboards/freyr/rules.mk
+++ b/keyboards/freyr/rules.mk
@@ -1,27 +1,16 @@
 # MCU name
 MCU = atmega32u4
 
-
 # Bootloader selection
 #   Teensy       halfkay
 #   Pro Micro    caterina
 #   Atmel DFU    atmel-dfu
 #   LUFA DFU     lufa-dfu
 #   QMK DFU      qmk-dfu
-#   atmega32a    bootloadHID
+#   ATmega32A    bootloadHID
+#   ATmega328P   USBasp
 BOOTLOADER = atmel-dfu
 
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-#   Teensy halfKay      512
-#   Teensy++ halfKay    1024
-#   Atmel DFU loader    4096
-#   LUFA bootloader     4096
-#   USBaspLoader        2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096
-
-
 # Build Options
 #   change yes to no to disable
 #