diff --git a/Fred_bootloader/Fred_bootloader.atsuo b/Fred_bootloader/Fred_bootloader.atsuo
index 39cc6c1d7df5106435dba4a53aea01817e58cbe8..f1338bb3e33f7d314fea66243f8bcdd6a1e1252a 100644
Binary files a/Fred_bootloader/Fred_bootloader.atsuo and b/Fred_bootloader/Fred_bootloader.atsuo differ
diff --git a/Fred_bootloader/Fred_bootloader.cproj b/Fred_bootloader/Fred_bootloader.cproj
index 464b4b72721955c98e08aa0de167a7cb436f6f16..fb8f8758afe47910dbccb82b9033e391d4f51db8 100644
--- a/Fred_bootloader/Fred_bootloader.cproj
+++ b/Fred_bootloader/Fred_bootloader.cproj
@@ -28,83 +28,83 @@
     <eraseonlaunchrule>0</eraseonlaunchrule>
     <AsfFrameworkConfig>
       <framework-data>
-  <options>
-    <option id="common.boards" value="Add" config="" content-id="Atmel.ASF" />
-    <option id="common.services.basic.clock" value="Add" config="" content-id="Atmel.ASF" />
-    <option id="common.services.ioport" value="Add" config="" content-id="Atmel.ASF" />
-    <option id="common.services.basic.serial" value="Add" config="" content-id="Atmel.ASF" />
-    <option id="common.utils.interrupt" value="Add" config="" content-id="Atmel.ASF" />
-    <option id="xmega.drivers.nvm" value="Add" config="" content-id="Atmel.ASF" />
-    <option id="xmega.drivers.tc" value="Add" config="" content-id="Atmel.ASF" />
-    <option id="xmega.drivers.usart" value="Add" config="" content-id="Atmel.ASF" />
-    <option id="xmega.drivers.wdt" value="Add" config="" content-id="Atmel.ASF" />
-    <option id="xmega.drivers.pmic" value="Add" config="" content-id="Atmel.ASF" />
-  </options>
-  <configurations />
-  <files>
-    <file path="src/main.c" framework="" version="" source="common/applications/user_application/main.c" changed="False" content-id="Atmel.ASF" />
-    <file path="src/config/conf_board.h" framework="" version="" source="common/applications/user_application/user_board/config/conf_board.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/common/boards/board.h" framework="" version="" source="common/boards/board.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/common/boards/user_board/init.c" framework="" version="" source="common/boards/user_board/init.c" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/common/boards/user_board/user_board.h" framework="" version="" source="common/boards/user_board/user_board.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/common/utils/interrupt.h" framework="" version="" source="common/utils/interrupt.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/common/utils/interrupt/interrupt_avr8.h" framework="" version="" source="common/utils/interrupt/interrupt_avr8.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/common/utils/make/Makefile.avr.in" framework="" version="" source="common/utils/make/Makefile.avr.in" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/common/utils/parts.h" framework="" version="" source="common/utils/parts.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/xmega/utils/assembler.h" framework="" version="" source="xmega/utils/assembler.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/xmega/utils/assembler/gas.h" framework="" version="" source="xmega/utils/assembler/gas.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/xmega/utils/bit_handling/clz_ctz.h" framework="" version="" source="xmega/utils/bit_handling/clz_ctz.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/xmega/utils/compiler.h" framework="" version="" source="xmega/utils/compiler.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/xmega/utils/preprocessor/mrepeat.h" framework="" version="" source="xmega/utils/preprocessor/mrepeat.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/xmega/utils/preprocessor/preprocessor.h" framework="" version="" source="xmega/utils/preprocessor/preprocessor.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/xmega/utils/preprocessor/stringz.h" framework="" version="" source="xmega/utils/preprocessor/stringz.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/xmega/utils/preprocessor/tpaste.h" framework="" version="" source="xmega/utils/preprocessor/tpaste.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/xmega/utils/progmem.h" framework="" version="" source="xmega/utils/progmem.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/xmega/utils/status_codes.h" framework="" version="" source="xmega/utils/status_codes.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/xmega/drivers/cpu/ccp.s" framework="" version="3.19.0" source="xmega\drivers\cpu\ccp.s" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/xmega/drivers/cpu/xmega_reset_cause.h" framework="" version="3.19.0" source="xmega\drivers\cpu\xmega_reset_cause.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/xmega/drivers/cpu/ccp.h" framework="" version="3.19.0" source="xmega\drivers\cpu\ccp.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/xmega/drivers/nvm/nvm.c" framework="" version="3.19.0" source="xmega\drivers\nvm\nvm.c" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/xmega/drivers/nvm/nvm_asm.s" framework="" version="3.19.0" source="xmega\drivers\nvm\nvm_asm.s" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/xmega/drivers/nvm/nvm.h" framework="" version="3.19.0" source="xmega\drivers\nvm\nvm.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/xmega/drivers/pmic/pmic.h" framework="" version="3.19.0" source="xmega\drivers\pmic\pmic.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/xmega/drivers/wdt/wdt.c" framework="" version="3.19.0" source="xmega\drivers\wdt\wdt.c" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/xmega/drivers/wdt/wdt.h" framework="" version="3.19.0" source="xmega\drivers\wdt\wdt.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/common/services/clock/xmega/sysclk.c" framework="" version="3.19.0" source="common\services\clock\xmega\sysclk.c" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/common/services/clock/pll.h" framework="" version="3.19.0" source="common\services\clock\pll.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/common/services/clock/genclk.h" framework="" version="3.19.0" source="common\services\clock\genclk.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/common/services/clock/osc.h" framework="" version="3.19.0" source="common\services\clock\osc.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/common/services/clock/xmega/pll.h" framework="" version="3.19.0" source="common\services\clock\xmega\pll.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/common/services/clock/xmega/sysclk.h" framework="" version="3.19.0" source="common\services\clock\xmega\sysclk.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/common/services/clock/xmega/osc.h" framework="" version="3.19.0" source="common\services\clock\xmega\osc.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/common/services/clock/sysclk.h" framework="" version="3.19.0" source="common\services\clock\sysclk.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/Config/conf_clock.h" framework="" version="3.19.0" source="common\services\clock\xmega\module_config_usb\conf_clock.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/common/services/ioport/xmega/ioport_compat.c" framework="" version="3.19.0" source="common\services\ioport\xmega\ioport_compat.c" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/common/services/ioport/xmega/ioport_compat.h" framework="" version="3.19.0" source="common\services\ioport\xmega\ioport_compat.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/common/services/ioport/xmega/ioport.h" framework="" version="3.19.0" source="common\services\ioport\xmega\ioport.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/common/services/ioport/ioport.h" framework="" version="3.19.0" source="common\services\ioport\ioport.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/common/services/serial/usart_serial.c" framework="" version="3.19.0" source="common\services\serial\usart_serial.c" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/common/services/serial/xmega_usart/usart_serial.h" framework="" version="3.19.0" source="common\services\serial\xmega_usart\usart_serial.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/common/services/serial/serial.h" framework="" version="3.19.0" source="common\services\serial\serial.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/Config/conf_usart_serial.h" framework="" version="3.19.0" source="common\services\serial\xmega_usart\module_config\conf_usart_serial.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/xmega/drivers/usart/usart.c" framework="" version="3.19.0" source="xmega\drivers\usart\usart.c" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/xmega/drivers/usart/usart.h" framework="" version="3.19.0" source="xmega\drivers\usart\usart.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/xmega/drivers/sleep/sleep.h" framework="" version="3.19.0" source="xmega\drivers\sleep\sleep.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/xmega/drivers/tc/tc.c" framework="" version="3.19.0" source="xmega\drivers\tc\tc.c" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/xmega/drivers/tc/tc.h" framework="" version="3.19.0" source="xmega\drivers\tc\tc.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/common/services/sleepmgr/xmega/sleepmgr.c" framework="" version="3.19.0" source="common\services\sleepmgr\xmega\sleepmgr.c" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/common/services/sleepmgr/sleepmgr.h" framework="" version="3.19.0" source="common\services\sleepmgr\sleepmgr.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/common/services/sleepmgr/xmega/sleepmgr.h" framework="" version="3.19.0" source="common\services\sleepmgr\xmega\sleepmgr.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/Config/conf_sleepmgr.h" framework="" version="3.19.0" source="common\services\sleepmgr\xmega\module_config\conf_sleepmgr.h" changed="False" content-id="Atmel.ASF" />
-  </files>
-  <documentation help="http://asf.atmel.com/docs/3.19.0/common.applications.user_application.user_board.xmegaau/html/index.html" />
-  <offline-documentation help="" />
-  <dependencies>
-    <content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.6.0" />
-  </dependencies>
-  <project id="common.applications.user_application.user_board.xmegaau" value="Add" config="" content-id="Atmel.ASF" />
-  <board id="board.user_board.xmegaau" value="Add" config="" content-id="Atmel.ASF" />
-</framework-data>
+        <options>
+          <option id="common.boards" value="Add" config="" content-id="Atmel.ASF" />
+          <option id="common.services.basic.clock" value="Add" config="" content-id="Atmel.ASF" />
+          <option id="common.services.ioport" value="Add" config="" content-id="Atmel.ASF" />
+          <option id="common.services.basic.serial" value="Add" config="" content-id="Atmel.ASF" />
+          <option id="common.utils.interrupt" value="Add" config="" content-id="Atmel.ASF" />
+          <option id="xmega.drivers.nvm" value="Add" config="" content-id="Atmel.ASF" />
+          <option id="xmega.drivers.tc" value="Add" config="" content-id="Atmel.ASF" />
+          <option id="xmega.drivers.usart" value="Add" config="" content-id="Atmel.ASF" />
+          <option id="xmega.drivers.wdt" value="Add" config="" content-id="Atmel.ASF" />
+          <option id="xmega.drivers.pmic" value="Add" config="" content-id="Atmel.ASF" />
+        </options>
+        <configurations />
+        <files>
+          <file path="src/main.c" framework="" version="" source="common/applications/user_application/main.c" changed="False" content-id="Atmel.ASF" />
+          <file path="src/config/conf_board.h" framework="" version="" source="common/applications/user_application/user_board/config/conf_board.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/common/boards/board.h" framework="" version="" source="common/boards/board.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/common/boards/user_board/init.c" framework="" version="" source="common/boards/user_board/init.c" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/common/boards/user_board/user_board.h" framework="" version="" source="common/boards/user_board/user_board.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/common/utils/interrupt.h" framework="" version="" source="common/utils/interrupt.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/common/utils/interrupt/interrupt_avr8.h" framework="" version="" source="common/utils/interrupt/interrupt_avr8.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/common/utils/make/Makefile.avr.in" framework="" version="" source="common/utils/make/Makefile.avr.in" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/common/utils/parts.h" framework="" version="" source="common/utils/parts.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/xmega/utils/assembler.h" framework="" version="" source="xmega/utils/assembler.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/xmega/utils/assembler/gas.h" framework="" version="" source="xmega/utils/assembler/gas.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/xmega/utils/bit_handling/clz_ctz.h" framework="" version="" source="xmega/utils/bit_handling/clz_ctz.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/xmega/utils/compiler.h" framework="" version="" source="xmega/utils/compiler.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/xmega/utils/preprocessor/mrepeat.h" framework="" version="" source="xmega/utils/preprocessor/mrepeat.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/xmega/utils/preprocessor/preprocessor.h" framework="" version="" source="xmega/utils/preprocessor/preprocessor.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/xmega/utils/preprocessor/stringz.h" framework="" version="" source="xmega/utils/preprocessor/stringz.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/xmega/utils/preprocessor/tpaste.h" framework="" version="" source="xmega/utils/preprocessor/tpaste.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/xmega/utils/progmem.h" framework="" version="" source="xmega/utils/progmem.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/xmega/utils/status_codes.h" framework="" version="" source="xmega/utils/status_codes.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/xmega/drivers/cpu/ccp.s" framework="" version="3.19.0" source="xmega\drivers\cpu\ccp.s" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/xmega/drivers/cpu/xmega_reset_cause.h" framework="" version="3.19.0" source="xmega\drivers\cpu\xmega_reset_cause.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/xmega/drivers/cpu/ccp.h" framework="" version="3.19.0" source="xmega\drivers\cpu\ccp.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/xmega/drivers/nvm/nvm.c" framework="" version="3.19.0" source="xmega\drivers\nvm\nvm.c" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/xmega/drivers/nvm/nvm_asm.s" framework="" version="3.19.0" source="xmega\drivers\nvm\nvm_asm.s" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/xmega/drivers/nvm/nvm.h" framework="" version="3.19.0" source="xmega\drivers\nvm\nvm.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/xmega/drivers/pmic/pmic.h" framework="" version="3.19.0" source="xmega\drivers\pmic\pmic.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/xmega/drivers/wdt/wdt.c" framework="" version="3.19.0" source="xmega\drivers\wdt\wdt.c" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/xmega/drivers/wdt/wdt.h" framework="" version="3.19.0" source="xmega\drivers\wdt\wdt.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/common/services/clock/xmega/sysclk.c" framework="" version="3.19.0" source="common\services\clock\xmega\sysclk.c" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/common/services/clock/pll.h" framework="" version="3.19.0" source="common\services\clock\pll.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/common/services/clock/genclk.h" framework="" version="3.19.0" source="common\services\clock\genclk.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/common/services/clock/osc.h" framework="" version="3.19.0" source="common\services\clock\osc.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/common/services/clock/xmega/pll.h" framework="" version="3.19.0" source="common\services\clock\xmega\pll.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/common/services/clock/xmega/sysclk.h" framework="" version="3.19.0" source="common\services\clock\xmega\sysclk.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/common/services/clock/xmega/osc.h" framework="" version="3.19.0" source="common\services\clock\xmega\osc.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/common/services/clock/sysclk.h" framework="" version="3.19.0" source="common\services\clock\sysclk.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/Config/conf_clock.h" framework="" version="3.19.0" source="common\services\clock\xmega\module_config_usb\conf_clock.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/common/services/ioport/xmega/ioport_compat.c" framework="" version="3.19.0" source="common\services\ioport\xmega\ioport_compat.c" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/common/services/ioport/xmega/ioport_compat.h" framework="" version="3.19.0" source="common\services\ioport\xmega\ioport_compat.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/common/services/ioport/xmega/ioport.h" framework="" version="3.19.0" source="common\services\ioport\xmega\ioport.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/common/services/ioport/ioport.h" framework="" version="3.19.0" source="common\services\ioport\ioport.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/common/services/serial/usart_serial.c" framework="" version="3.19.0" source="common\services\serial\usart_serial.c" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/common/services/serial/xmega_usart/usart_serial.h" framework="" version="3.19.0" source="common\services\serial\xmega_usart\usart_serial.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/common/services/serial/serial.h" framework="" version="3.19.0" source="common\services\serial\serial.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/Config/conf_usart_serial.h" framework="" version="3.19.0" source="common\services\serial\xmega_usart\module_config\conf_usart_serial.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/xmega/drivers/usart/usart.c" framework="" version="3.19.0" source="xmega\drivers\usart\usart.c" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/xmega/drivers/usart/usart.h" framework="" version="3.19.0" source="xmega\drivers\usart\usart.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/xmega/drivers/sleep/sleep.h" framework="" version="3.19.0" source="xmega\drivers\sleep\sleep.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/xmega/drivers/tc/tc.c" framework="" version="3.19.0" source="xmega\drivers\tc\tc.c" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/xmega/drivers/tc/tc.h" framework="" version="3.19.0" source="xmega\drivers\tc\tc.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/common/services/sleepmgr/xmega/sleepmgr.c" framework="" version="3.19.0" source="common\services\sleepmgr\xmega\sleepmgr.c" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/common/services/sleepmgr/sleepmgr.h" framework="" version="3.19.0" source="common\services\sleepmgr\sleepmgr.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/ASF/common/services/sleepmgr/xmega/sleepmgr.h" framework="" version="3.19.0" source="common\services\sleepmgr\xmega\sleepmgr.h" changed="False" content-id="Atmel.ASF" />
+          <file path="src/Config/conf_sleepmgr.h" framework="" version="3.19.0" source="common\services\sleepmgr\xmega\module_config\conf_sleepmgr.h" changed="False" content-id="Atmel.ASF" />
+        </files>
+        <documentation help="http://asf.atmel.com/docs/3.19.0/common.applications.user_application.user_board.xmegaau/html/index.html" />
+        <offline-documentation help="" />
+        <dependencies>
+          <content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.6.0" />
+        </dependencies>
+        <project id="common.applications.user_application.user_board.xmegaau" value="Add" config="" content-id="Atmel.ASF" />
+        <board id="board.user_board.xmegaau" value="Add" config="" content-id="Atmel.ASF" />
+      </framework-data>
     </AsfFrameworkConfig>
     <avrtool>com.atmel.avrdbg.tool.atmelice</avrtool>
     <com_atmel_avrdbg_tool_jtagice3plus>
@@ -210,6 +210,8 @@
         </avrgcc.assembler.general.IncludePaths>
       </AvrGcc>
     </ToolchainSettings>
+    <PreBuildEvent>call "$(MSBuildProjectDirectory)\..\..\..\Automation\SubWCRev.exe" "$(MSBuildProjectDirectory)\src" "$(MSBuildProjectDirectory)\..\..\..\Automation\version.h.in" "$(MSBuildProjectDirectory)\src\version.h"
+</PreBuildEvent>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
     <ToolchainSettings>
@@ -290,6 +292,10 @@
   <avrgcc.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcc.assembler.debugging.DebugLevel>
 </AvrGcc>
     </ToolchainSettings>
+    <PreBuildEvent>call "$(MSBuildProjectDirectory)\..\..\..\Automation\SubWCRev.exe" "$(MSBuildProjectDirectory)\src" "$(MSBuildProjectDirectory)\..\..\..\Automation\version.h.in" "$(MSBuildProjectDirectory)\src\version.h"
+</PreBuildEvent>
+    <PostBuildEvent>
+    </PostBuildEvent>
   </PropertyGroup>
   <ItemGroup>
     <Folder Include="src\" />
diff --git a/Fred_bootloader/Release/Fred_bootloader.hex b/Fred_bootloader/Release/Fred_bootloader.hex
new file mode 100644
index 0000000000000000000000000000000000000000..a4f876db64d12bc6fc2c2727a3857e29bb18715f
--- /dev/null
+++ b/Fred_bootloader/Release/Fred_bootloader.hex
@@ -0,0 +1,537 @@
+:020000022000DC
+:10000000FDC000001CC100001AC1000018C10000A2
+:1000100016C1000014C1000012C1000010C1000090
+:100020000EC100000CC100000AC1000008C10000A0
+:1000300006C1000004C1000033C200005EC200001F
+:1000400089C20000B4C20000DFC200000AC3000081
+:1000500035C3000060C300008BC30000B6C30000BE
+:10006000EEC00000ECC00000EAC00000E8C00000E4
+:10007000E6C00000E4C00000E2C00000E0C00000F4
+:10008000DEC00000DCC00000DAC00000D8C0000004
+:10009000D6C00000D4C00000D2C00000D0C0000014
+:1000A000CEC00000CCC00000CAC00000C8C0000024
+:1000B000C6C00000C4C00000C2C0000075C500007A
+:1000C000A0C50000CBC50000F6C5000021C6000099
+:1000D0004CC6000077C60000A2C60000CDC60000D6
+:1000E000F8C60000ACC00000AAC00000A8C0000014
+:1000F000A6C00000A4C00000A2C00000A0C0000074
+:100100009EC000009CC000009AC0000098C0000083
+:1001100096C0000094C0000092C0000090C0000093
+:100120008EC000008CC000008AC0000088C00000A3
+:1001300086C0000077C30000A2C30000CDC300004A
+:10014000F8C3000023C400004EC4000079C40000BE
+:10015000A4C40000CFC40000FAC4000070C00000B6
+:100160006EC000006CC000006AC0000068C00000E3
+:1001700066C0000064C0000062C0000060C00000F3
+:100180005EC000005CC000005AC0000058C0000003
+:1001900056C0000054C0000052C0000050C0000013
+:1001A0004EC000004CC000004AC0000048C0000023
+:1001B000BDC60000E8C6000013C700003EC700002F
+:1001C00069C7000094C700003AC0000038C00000B2
+:1001D00036C0000034C0000032C0000030C0000053
+:1001E0002EC000002CC000002AC0000028C0000063
+:1001F00026C0000024C0000022C0000011241FBE41
+:10020000CFEFCDBFDFE3DEBF01E00CBF10E2A0E027
+:10021000B0E2EAECF0E202E00BBF02C007900D9200
+:10022000A837B107D9F722E2A8E7B0E201C01D92D2
+:10023000AE3CB207E1F70F94F10C0D944110E0CE03
+:1002400082E391E0909307062FEF33EF41E02150D6
+:1002500030404040E1F700C00000815099F7089518
+:10026000E0EAF0E082818F7B98ED94BF82831CBE30
+:10027000E0E0F0E01994909179209827909379200C
+:10028000089565E58FE390E00F94780F2FEF87EEE8
+:1002900093E0215080409040E1F700C000000895B5
+:1002A0008FE390E00F94680F91E0853509F490E0BA
+:1002B000892F089580EA9BE00F94FA0991E020913C
+:1002C0007920821390E0892F089564E48FE390E011
+:1002D0000D94780FF12C10E080917B228130E9F0B1
+:1002E00038F0823009F43BC08330C1F7B9DFF4CF76
+:1002F000D7DF81110EC087E090E20F94800B8FE36F
+:1003000090E00F94680F682F80EA9BE00F94F20949
+:10031000A7DF81E080937B22DFCF81E290E20F9420
+:10032000800B80EA9BE00F94FA09C82F8230C9F74E
+:1003300080EA9BE00F94FA098093782061E080EADC
+:100340009BE00F94F2096091782080EA9BE00F9483
+:10035000F2090F94340BB9DFC0937B22BDCF10920A
+:10036000792080EA9BE00F94FA0990917820891314
+:10037000F8CF80EA9BE00F94FA09C82F7CDFC330E6
+:1003800009F051C080EA9BE00F94FA0980937A2229
+:1003900072DFC0E0D0E0E12C80EA9BE00F94FA0924
+:1003A000082F69DFF11012C0013021F42197FF24DA
+:1003B000F39413C08EEF800F843040F465E580EA3B
+:1003C0009BE00F94F2091F5FEE24E394FE01E658D0
+:1003D000FF4D00830F94340BF12C2196C11582E060
+:1003E000D807D4F267DF8823A1F060917A2270E009
+:1003F000762F6627770F882777FD8095982F01E065
+:1004000020E032E04AE750E20F94E80BEE2009F1D9
+:1004100027C066E680EA9BE0E5D76091792080EA14
+:100420009BE0E0D714C0C43039F444DF882379F06E
+:1004300083E080937B220DC0C53049F43BDF8823E5
+:1004400031F061E089E790E00F948D0C02C01F5FEE
+:1004500007C061E080EA9BE0C5D70F94340B3CCF26
+:10046000143128F462E080EA9BE0BCD735CF63E02A
+:1004700080EA9BE0B7D782E490E20F94800B61E0C2
+:1004800089E790E00F948D0C27CF8FE390E00F94D5
+:10049000680F9BEA980F81E0923008F480E008959D
+:1004A0001F920F920FB60F9211240BB60F922F933B
+:1004B0003F934F935F936F937F938F939F93AF93EC
+:1004C000BF93EF93FF93E091C222F091C322309744
+:1004D00009F01995FF91EF91BF91AF919F918F9185
+:1004E0007F916F915F914F913F912F910F900BBE34
+:1004F0000F900FBE0F901F9018951F920F920FB67E
+:100500000F9211240BB60F922F933F934F935F934B
+:100510006F937F938F939F93AF93BF93EF93FF93CB
+:10052000E091C022F091C122309709F01995FF9116
+:10053000EF91BF91AF919F918F917F916F915F915B
+:100540004F913F912F910F900BBE0F900FBE0F90C8
+:100550001F9018951F920F920FB60F9211240BB691
+:100560000F922F933F934F935F936F937F938F934C
+:100570009F93AF93BF93EF93FF93E091BE22F091CF
+:10058000BF22309709F01995FF91EF91BF91AF917C
+:100590009F918F917F916F915F914F913F912F919B
+:1005A0000F900BBE0F900FBE0F901F9018951F92CB
+:1005B0000F920FB60F9211240BB60F922F933F9309
+:1005C0004F935F936F937F938F939F93AF93BF935B
+:1005D000EF93FF93E091BC22F091BD22309709F098
+:1005E0001995FF91EF91BF91AF919F918F917F915D
+:1005F0006F915F914F913F912F910F900BBE0F9094
+:100600000FBE0F901F9018951F920F920FB60F926A
+:1006100011240BB60F922F933F934F935F936F93D9
+:100620007F938F939F93AF93BF93EF93FF93E0914B
+:10063000BA22F091BB22309709F01995FF91EF9102
+:10064000BF91AF919F918F917F916F915F914F91EA
+:100650003F912F910F900BBE0F900FBE0F901F90E8
+:1006600018951F920F920FB60F9211240BB60F928E
+:100670002F933F934F935F936F937F938F939F93AA
+:10068000AF93BF93EF93FF93E091B822F091B9221B
+:10069000309709F01995FF91EF91BF91AF919F911C
+:1006A0008F917F916F915F914F913F912F910F901B
+:1006B0000BBE0F900FBE0F901F9018951F920F92B8
+:1006C0000FB60F9211240BB60F922F933F934F93B7
+:1006D0005F936F937F938F939F93AF93BF93EF93AA
+:1006E000FF93E091B622F091B722309709F0199567
+:1006F000FF91EF91BF91AF919F918F917F916F91FA
+:100700005F914F913F912F910F900BBE0F900FBEB5
+:100710000F901F9018951F920F920FB60F921124F1
+:100720000BB60F922F933F934F935F936F937F93EB
+:100730008F939F93AF93BF93EF93FF93E091B42276
+:10074000F091B522309709F01995FF91EF91BF9183
+:10075000AF919F918F917F916F915F914F913F9159
+:100760002F910F900BBE0F900FBE0F901F901895FA
+:100770001F920F920FB60F9211240BB60F922F9368
+:100780003F934F935F936F937F938F939F93AF9319
+:10079000BF93EF93FF93E091B222F091B322309791
+:1007A00009F01995FF91EF91BF91AF919F918F91B2
+:1007B0007F916F915F914F913F912F910F900BBE61
+:1007C0000F900FBE0F901F9018951F920F920FB6AB
+:1007D0000F9211240BB60F922F933F934F935F9379
+:1007E0006F937F938F939F93AF93BF93EF93FF93F9
+:1007F000E091B022F091B122309709F01995FF9164
+:10080000EF91BF91AF919F918F917F916F915F9188
+:100810004F913F912F910F900BBE0F900FBE0F90F5
+:100820001F9018951F920F920FB60F9211240BB6BE
+:100830000F922F933F934F935F936F937F938F9379
+:100840009F93AF93BF93EF93FF93E091AE22F0910C
+:10085000AF22309709F01995FF91EF91BF91AF91B9
+:100860009F918F917F916F915F914F913F912F91C8
+:100870000F900BBE0F900FBE0F901F9018951F92F8
+:100880000F920FB60F9211240BB60F922F933F9336
+:100890004F935F936F937F938F939F93AF93BF9388
+:1008A000EF93FF93E091AC22F091AD22309709F0E5
+:1008B0001995FF91EF91BF91AF919F918F917F918A
+:1008C0006F915F914F913F912F910F900BBE0F90C1
+:1008D0000FBE0F901F9018951F920F920FB60F9298
+:1008E00011240BB60F922F933F934F935F936F9307
+:1008F0007F938F939F93AF93BF93EF93FF93E09179
+:10090000AA22F091AB22309709F01995FF91EF914F
+:10091000BF91AF919F918F917F916F915F914F9117
+:100920003F912F910F900BBE0F900FBE0F901F9015
+:1009300018951F920F920FB60F9211240BB60F92BB
+:100940002F933F934F935F936F937F938F939F93D7
+:10095000AF93BF93EF93FF93E091A822F091A92268
+:10096000309709F01995FF91EF91BF91AF919F9149
+:100970008F917F916F915F914F913F912F910F9048
+:100980000BBE0F900FBE0F901F9018951F920F92E5
+:100990000FB60F9211240BB60F922F933F934F93E4
+:1009A0005F936F937F938F939F93AF93BF93EF93D7
+:1009B000FF93E091A622F091A722309709F01995B4
+:1009C000FF91EF91BF91AF919F918F917F916F9127
+:1009D0005F914F913F912F910F900BBE0F900FBEE3
+:1009E0000F901F9018951F920F920FB60F9211241F
+:1009F0000BB60F922F933F934F935F936F937F9319
+:100A00008F939F93AF93BF93EF93FF93E091A422B3
+:100A1000F091A522309709F01995FF91EF91BF91C0
+:100A2000AF919F918F917F916F915F914F913F9186
+:100A30002F910F900BBE0F900FBE0F901F90189527
+:100A40001F920F920FB60F9211240BB60F922F9395
+:100A50003F934F935F936F937F938F939F93AF9346
+:100A6000BF93EF93FF93E091A222F091A3223097DE
+:100A700009F01995FF91EF91BF91AF919F918F91DF
+:100A80007F916F915F914F913F912F910F900BBE8E
+:100A90000F900FBE0F901F9018951F920F920FB6D8
+:100AA0000F9211240BB60F922F933F934F935F93A6
+:100AB0006F937F938F939F93AF93BF93EF93FF9326
+:100AC000E091A022F091A122309709F01995FF91B1
+:100AD000EF91BF91AF919F918F917F916F915F91B6
+:100AE0004F913F912F910F900BBE0F900FBE0F9023
+:100AF0001F9018951F920F920FB60F9211240BB6EC
+:100B00000F922F933F934F935F936F937F938F93A6
+:100B10009F93AF93BF93EF93FF93E0919E22F09149
+:100B20009F22309709F01995FF91EF91BF91AF91F6
+:100B30009F918F917F916F915F914F913F912F91F5
+:100B40000F900BBE0F900FBE0F901F9018951F9225
+:100B50000F920FB60F9211240BB60F922F933F9363
+:100B60004F935F936F937F938F939F93AF93BF93B5
+:100B7000EF93FF93E0919C22F0919D22309709F032
+:100B80001995FF91EF91BF91AF919F918F917F91B7
+:100B90006F915F914F913F912F910F900BBE0F90EE
+:100BA0000FBE0F901F9018951F920F920FB60F92C5
+:100BB00011240BB60F922F933F934F935F936F9334
+:100BC0007F938F939F93AF93BF93EF93FF93E091A6
+:100BD0009A22F0919B22309709F01995FF91EF919D
+:100BE000BF91AF919F918F917F916F915F914F9145
+:100BF0003F912F910F900BBE0F900FBE0F901F9043
+:100C000018951F920F920FB60F9211240BB60F92E8
+:100C10002F933F934F935F936F937F938F939F9304
+:100C2000AF93BF93EF93FF93E0919822F0919922B5
+:100C3000309709F01995FF91EF91BF91AF919F9176
+:100C40008F917F916F915F914F913F912F910F9075
+:100C50000BBE0F900FBE0F901F9018951F920F9212
+:100C60000FB60F9211240BB60F922F933F934F9311
+:100C70005F936F937F938F939F93AF93BF93EF9304
+:100C8000FF93E0919622F0919722309709F0199501
+:100C9000FF91EF91BF91AF919F918F917F916F9154
+:100CA0005F914F913F912F910F900BBE0F900FBE10
+:100CB0000F901F9018951F920F920FB60F9211244C
+:100CC0000BB60F922F933F934F935F936F937F9346
+:100CD0008F939F93AF93BF93EF93FF93E0919422F1
+:100CE000F0919522309709F01995FF91EF91BF91FE
+:100CF000AF919F918F917F916F915F914F913F91B4
+:100D00002F910F900BBE0F900FBE0F901F90189554
+:100D10001F920F920FB60F9211240BB60F922F93C2
+:100D20003F934F935F936F937F938F939F93AF9373
+:100D3000BF93EF93FF93E0919222F091932230972B
+:100D400009F01995FF91EF91BF91AF919F918F910C
+:100D50007F916F915F914F913F912F910F900BBEBB
+:100D60000F900FBE0F901F9018951F920F920FB605
+:100D70000F9211240BB60F922F933F934F935F93D3
+:100D80006F937F938F939F93AF93BF93EF93FF9353
+:100D9000E0919022F0919122309709F01995FF91FE
+:100DA000EF91BF91AF919F918F917F916F915F91E3
+:100DB0004F913F912F910F900BBE0F900FBE0F9050
+:100DC0001F9018951F920F920FB60F9211240BB619
+:100DD0000F922F933F934F935F936F937F938F93D4
+:100DE0009F93AF93BF93EF93FF93E0918E22F09187
+:100DF0008F22309709F01995FF91EF91BF91AF9134
+:100E00009F918F917F916F915F914F913F912F9122
+:100E10000F900BBE0F900FBE0F901F9018951F9252
+:100E20000F920FB60F9211240BB60F922F933F9390
+:100E30004F935F936F937F938F939F93AF93BF93E2
+:100E4000EF93FF93E0918C22F0918D22309709F07F
+:100E50001995FF91EF91BF91AF919F918F917F91E4
+:100E60006F915F914F913F912F910F900BBE0F901B
+:100E70000FBE0F901F9018951F920F920FB60F92F2
+:100E800011240BB60F922F933F934F935F936F9361
+:100E90007F938F939F93AF93BF93EF93FF93E091D3
+:100EA0008A22F0918B22309709F01995FF91EF91EA
+:100EB000BF91AF919F918F917F916F915F914F9172
+:100EC0003F912F910F900BBE0F900FBE0F901F9070
+:100ED00018951F920F920FB60F9211240BB60F9216
+:100EE0002F933F934F935F936F937F938F939F9332
+:100EF000AF93BF93EF93FF93E0918822F091892203
+:100F0000309709F01995FF91EF91BF91AF919F91A3
+:100F10008F917F916F915F914F913F912F910F90A2
+:100F20000BBE0F900FBE0F901F9018951F920F923F
+:100F30000FB60F9211240BB60F922F933F934F933E
+:100F40005F936F937F938F939F93AF93BF93EF9331
+:100F5000FF93E0918622F0918722309709F019954E
+:100F6000FF91EF91BF91AF919F918F917F916F9181
+:100F70005F914F913F912F910F900BBE0F900FBE3D
+:100F80000F901F9018951F920F920FB60F92112479
+:100F90000BB60F922F933F934F935F936F937F9373
+:100FA0008F939F93AF93BF93EF93FF93E09184222E
+:100FB000F0918522309709F01995FF91EF91BF913B
+:100FC000AF919F918F917F916F915F914F913F91E1
+:100FD0002F910F900BBE0F900FBE0F901F90189582
+:100FE0001F920F920FB60F9211240BB60F922F93F0
+:100FF0003F934F935F936F937F938F939F93AF93A1
+:10100000BF93EF93FF93E0918222F0918322309778
+:1010100009F01995FF91EF91BF91AF919F918F9139
+:101020007F916F915F914F913F912F910F900BBEE8
+:101030000F900FBE0F901F9018951F920F920FB632
+:101040000F9211240BB60F922F933F934F935F9300
+:101050006F937F938F939F93AF93BF93EF93FF9380
+:10106000E0918022F0918122309709F01995FF914B
+:10107000EF91BF91AF919F918F917F916F915F9110
+:101080004F913F912F910F900BBE0F900FBE0F907D
+:101090001F9018951F920F920FB60F9211240BB646
+:1010A0000F922F933F934F935F936F937F938F9301
+:1010B0009F93AF93BF93EF93FF93E0917E22F091C4
+:1010C0007F22309709F01995FF91EF91BF91AF9171
+:1010D0009F918F917F916F915F914F913F912F9150
+:1010E0000F900BBE0F900FBE0F901F9018951F9280
+:1010F0000F920FB60F9211240BB60F922F933F93BE
+:101100004F935F936F937F938F939F93AF93BF930F
+:10111000EF93FF93E0917C22F0917D22309709F0CC
+:101120001995FF91EF91BF91AF919F918F917F9111
+:101130006F915F914F913F912F910F900BBE0F9048
+:101140000FBE0F901F901895CF93CFB7F8948115CD
+:1011500028E0920711F461E005C0803428E092078E
+:1011600031F462E083E023D364E083E028C081159A
+:1011700029E0920711F461E005C0803429E092076C
+:1011800031F462E084E013D364E084E018C0811598
+:101190002AE0920711F461E005C080342AE092074A
+:1011A00031F462E085E003D364E085E008C0811596
+:1011B0009B4071F461E086E0FAD264E086E0F7D209
+:1011C0009FB7F8948091C9228F5F8093C9229FBFF7
+:1011D000CFBFCF910895811528E0920729F460933D
+:1011E000C2227093C3220895803428E0920729F424
+:1011F0006093B6227093B7220895811529E0920773
+:1012000029F46093AE227093AF220895803429E0D0
+:10121000920729F46093A2227093A3220895811566
+:101220002AE0920729F460939A2270939B220895F2
+:1012300080342AE0920729F460938E2270938F22E3
+:10124000089581159B4021F4609386227093872234
+:101250000895009709F4C5C0803C910511F460E140
+:1012600005C0811524E0920719F464E080E0B8C05D
+:10127000803821E0920711F462E0F8CF811521E077
+:10128000920711F461E0F2CF803823E0920711F465
+:1012900061E00BC0803923E0920711F461E012C0D5
+:1012A000811522E0920719F462E081E099C0803450
+:1012B00022E0920711F462E005C0803223E0920739
+:1012C00019F464E082E08CC0811528E0920711F4E3
+:1012D00061E07FC0811529E0920711F461E06CC0E4
+:1012E00081152AE0920711F461E079C081152BE0A5
+:1012F000920711F461E053C0803428E0920711F4A2
+:1013000062E067C0803429E0920711F462E054C0C3
+:1013100080342AE0920711F462E061C0803928E04D
+:10132000920711F464E055C0803929E0920711F466
+:1013300064E042C080392AE0920711F464E04FC0B3
+:1013400080392BE0920711F464E029C0803C28E04A
+:10135000920711F468E03DC0803C29E0920711F447
+:1013600068E02AC0803C2AE0920711F468E037C0A8
+:10137000803A28E0920711F460E12BC0803A29E01E
+:10138000920711F460E118C0803A2AE0920711F444
+:1013900060E125C0803A2BE0920719F460E186E015
+:1013A0001FC0803B28E0920711F460E212C0803B2E
+:1013B00029E0920719F460E284E012C0803B2AE041
+:1013C000920711F460E20BC0803824E0920719F410
+:1013D00060E483E005C0803A944019F460E485E05D
+:1013E000E6C10895FC01218125FFFCCF608380E0E8
+:1013F00090E00895FC01218127FFFCCF80810895B2
+:101400008F929F92AF92BF92CF92DF92EF92FF9214
+:101410000F931F93CF93DF93EC016A017B01480187
+:101420005901B901A801A3E07695679557954795AD
+:10143000AA95D1F7D901C80116E1B695A795979558
+:1014400087951A95D1F72C8122FD08C0769567956E
+:1014500057954795B695A795979587954C155D0532
+:101460006E057F0508F497C0C816D906EA06FB0684
+:1014700008F491C08C8182FD04C0CC0CDD1CEE1CF4
+:10148000FF1CC501B401A7019601F0D28FEF90E0D7
+:10149000A0E0B0E019EF281739074A075B0758F0BA
+:1014A000880F991FAA1FBB1F1D3F0CF481601F5F8F
+:1014B000173089F74BC017FF49C0D701C60103E0B9
+:1014C000880F991FAA1FBB1F0A95D1F7881A990A7E
+:1014D000AA0ABB0A812F992787FD90951E3FE4F445
+:1014E0006DEF7FEF681B790BA501940104C0220FFB
+:1014F000331F441F551F6A95D2F7CA01B90146012F
+:101500005701B694A79497948794680D791D8A1D06
+:101510009B1DA701960118C09C012D5F3F4FD7016D
+:10152000C60104C0880F991FAA1FBB1F2A95D2F7B6
+:101530009C01AD01BC01CD01969587957795679586
+:10154000680D791D8A1D9B1D91D21CC023E0210FBF
+:10155000D701C60104C0880F991FAA1FBB1F2A9577
+:10156000D2F79C01AD01BC01CD0196958795779589
+:101570006795680D791D8A1D9B1D78D22150310910
+:1015800041095109832F8F701295107F812B8F8312
+:101590002E8381E001C080E0DF91CF911F910F91F8
+:1015A000FF90EF90DF90CF90BF90AF909F908F9083
+:1015B00008950F931F93CF93DF93EC018B0149DEC6
+:1015C0008D818F738D83F80184819581892B96811C
+:1015D000992311F098E001C090E0892B8D83F801E8
+:1015E000408151816281738100E018E428EE31E08E
+:1015F000CE0106DF9C8198609C839C8190619C83D6
+:10160000DF91CF911F910F9108958091C4228F5F38
+:101610008093C4228091C5229091C6220196809326
+:10162000C5229093C62281E08093C7229091C42264
+:10163000923121F4809307061092C4228091C52232
+:101640009091C622883C910571F480917B22823072
+:1016500030F40F944502811102C00F94410161E002
+:1016600089E790E05AC108951092C5221092C622CF
+:10167000089580E098E068DD65E07BE080E098E038
+:10168000AADDE0E0F8E08181887F818384ED90E34A
+:1016900086A397A386818C7F8683868181608683DB
+:1016A0008081807F866080830895CF93DF93CDB75C
+:1016B000DEB72797CDBFDEBF809104208D83809158
+:1016C00005208E83809106208F8380910020909149
+:1016D0000120A0910220B091032089839A83AB83DB
+:1016E000BC8360E186E063D0BE016F5F7F4F80EA1C
+:1016F0009BE05FDF2796CDBFDEBFDF91CF910895DE
+:10170000CF93DF93EC016991662321F080EA9BE09F
+:1017100069DEF9CFDF91CF910895FC0180E090E080
+:10172000262F30E0D901082E02C0B595A7950A945E
+:10173000E2F7A0FF05C0DF01A80FB91F50965C9328
+:1017400001968830910571F740FF07C041FF02C044
+:10175000658301C0668361830895628308958FEF76
+:101760008093700080937100809372008093730067
+:101770008093740080937500809376009FB7F894EF
+:10178000809150008260809350009FBF80915100F3
+:1017900081FFFCCF61E080E490E0BFD09FB7F89478
+:1017A000809150008E7F809350009FBF08959FB717
+:1017B000F894E82FF0E0E059FF4F60958081862390
+:1017C00080839FBF08958091CF0187FDFCCF08954E
+:1017D0002F923F924F925F926F927F928F929F9241
+:1017E000AF92BF92CF92DF92EF92FF920F931F932F
+:1017F000CF93DF9300D000D0CDB7DEB76B017C0173
+:101800001A012B833C830D834B015C018824E894EF
+:1018100090F88B819C81892B09F469C0D4DF240165
+:10182000350100E011E020E03D81332351F06BBE33
+:10183000F2018791969189839A83019631F021E094
+:1018400004C08FEF9FEF89839A83EB81FC813097EF
+:1018500069F1C414D504E604F70481F43197EB83ED
+:10186000FC83FFEFCF1ADF0AEF0AFF0AF101819133
+:101870001F0189838B819C81892BC1F0D301C20117
+:101880000196A11DB11DC816D906EA06FB0671F422
+:10189000EB81FC813197EB83FC83FFEFCF1ADF0AEA
+:1018A000EF0AFF0AF10181911F018A8349815A8160
+:1018B000C301B2012E83F6D3F2E04F0E511C611C1E
+:1018C000711C015011092E810115110509F0ACCFD1
+:1018D000222319F078DF45E202C075DF44E2C5013A
+:1018E000B401D1D332E0930EA11CB11C92CF269645
+:1018F000CDBFDEBFDF91CF911F910F91FF90EF9091
+:10190000DF90CF90BF90AF909F908F907F906F901F
+:101910005F904F903F902F9008951BBEFC0128EDE3
+:1019200024BF60830895AB01982F96959695969560
+:10193000877061E070E001C0660F8A95EAF720E2E7
+:10194000929FC00111249A5FE8CE61E070E080E0D0
+:10195000EADF60E070E089E1E6DF60E070E088E106
+:10196000E2DF68E370E081E2DEDF68E370E080E2FE
+:10197000DADF63E070E08BE2D6DF60E070E08AE2FD
+:10198000D2DF61E070E082E1CEDF61E070E083E110
+:10199000CADF61E070E084E1C6DF61E070E085E10C
+:1019A000C2DF61E070E08EE1BEDF63E070E087E1FE
+:1019B000BADF61E070E08AE1B6DF60E070E08BE101
+:1019C000B2DF60E070E08CE1AEDF60E070E08DE1FE
+:1019D000AADF60E070E08EE1A6DF60E070E08CE2FC
+:1019E000A2CF0F931F93CF93DF93CDB7DEB7DA95D6
+:1019F000CDBFDEBFAADFB3DE00EA10E0F8018281CE
+:101A0000806498ED94BF828334DE87E0F80182839E
+:101A100082818F7782831182789447DE0F94200130
+:101A200081E0E0E0F6E087831F9286E18F931F92CA
+:101A300080E18F9382E690E29F938F938E010F5FF8
+:101A40001F4F1F930F9334D0C8015ADE0F946A01C1
+:101A50000F943001CDBFDEBF80E090E0D395CDBFC5
+:101A6000DEBFDF91CF911F910F910895A1E21A2E51
+:101A7000AA1BBB1BFD010DC0AA1FBB1FEE1FFF1F32
+:101A8000A217B307E407F50720F0A21BB30BE40B82
+:101A9000F50B661F771F881F991F1A9469F76095C9
+:101AA0007095809590959B01AC01BD01CF01089583
+:101AB0000F931F93CF93DF93CDB7DEB72E97CDBF94
+:101AC000DEBF0E891F8986E08C8309831A838FEF1E
+:101AD0009FE78D839E83AE01465E5F4F688D798D53
+:101AE000CE0101960DD0EF81F885E00FF11F108235
+:101AF0002E96CDBFDEBFDF91CF911F910F9108953C
+:101B00002F923F924F925F926F927F928F929F920D
+:101B1000AF92BF92CF92DF92EF92FF920F931F93FB
+:101B2000CF93DF93CDB7DEB72C97CDBFDEBF7C015F
+:101B30006B018A01FC0116821782838181FFB0C18B
+:101B4000CE0101964C01F7019381F60193FD859139
+:101B500093FF81916F01882309F49EC1853239F486
+:101B600093FD859193FF81916F01853221F4B70137
+:101B700090E0F7D1E8CF512C312C20E02032A0F4B6
+:101B80008B3269F030F4803259F0833269F420618D
+:101B90002CC08D3239F0803339F4216026C02260A8
+:101BA000246023C0286021C027FD27C030ED380FF6
+:101BB0003A3078F426FF06C0FAE05F9E300D11241B
+:101BC000532E13C08AE0389E300D1124332E20622C
+:101BD0000CC08E3221F426FD5FC1206406C08C3615
+:101BE00011F4206802C0883641F4F60193FD859116
+:101BF00093FF81916F018111C1CF982F9F7D9554E3
+:101C0000933028F40C5F1F4FFFE3F9830DC0833638
+:101C100031F0833771F0833509F057C021C0F801E6
+:101C2000808189830E5F1F4F44244394512C5401BB
+:101C300014C03801F2E06F0E711CF801A080B18071
+:101C400026FF03C0652D70E002C06FEF7FEFC50176
+:101C50002C877CD12C0183012C852F77222E16C056
+:101C60003801F2E06F0E711CF801A080B18026FFF0
+:101C700003C0652D70E002C06FEF7FEFC5012C87B8
+:101C80005AD12C012C852068222E830123FC19C0F7
+:101C9000832D90E048165906A0F4B70180E290E049
+:101CA00060D13A94F5CFF50127FC859127FE81910B
+:101CB0005F01B70190E055D131103A94F1E04F1A2D
+:101CC00051084114510479F7DEC0843611F0893689
+:101CD00031F5F80127FF07C060817181828193810E
+:101CE0000C5F1F4F08C060817181882777FD809548
+:101CF000982F0E5F1F4F2F76B22E97FF09C0909539
+:101D00008095709561957F4F8F4F9F4F2068B22EC1
+:101D10002AE030E0A40157D1A82EA81843C0853787
+:101D200029F42F7EB22E2AE030E025C0F22FF97F71
+:101D3000BF2E8F36C1F018F4883579F0ADC08037EA
+:101D400019F0883721F0A8C02F2F2061B22EB4FEE1
+:101D50000DC08B2D8460B82E09C024FF0AC09F2FB0
+:101D60009660B92E06C028E030E005C020E130E0E2
+:101D700002C020E132E0F801B7FE07C06081718146
+:101D8000828193810C5F1F4F06C06081718180E06A
+:101D900090E00E5F1F4FA40116D1A82EA818FB2DAE
+:101DA000FF77BF2EB6FE0BC02B2D2E7FA51450F44F
+:101DB000B4FE0AC0B2FC08C02B2D2E7E05C07A2CC2
+:101DC0002B2D03C07A2C01C0752C24FF0DC0FE0101
+:101DD000EA0DF11D8081803311F4297E09C022FFB4
+:101DE00006C07394739404C0822F867809F07394AC
+:101DF00023FD12C020FF06C05A2C731418F4530C94
+:101E00005718732C731460F4B70180E290E02C87AC
+:101E1000A8D073942C85F6CF731410F4371801C032
+:101E2000312C24FF11C0B70180E390E02C8799D0BA
+:101E30002C8522FF16C021FF03C088E590E002C078
+:101E400088E790E0B7010CC0822F867851F021FD21
+:101E500002C080E201C08BE227FD8DE2B70190E075
+:101E600080D0A51430F4B70180E390E07AD05A9482
+:101E7000F8CFAA94F401EA0DF11D8081B70190E03A
+:101E800070D0A110F6CF332009F45DCEB70180E207
+:101E900090E067D03A94F7CFF7018681978102C02E
+:101EA0008FEF9FEF2C96CDBFDEBFDF91CF911F91BB
+:101EB0000F91FF90EF90DF90CF90BF90AF909F90E9
+:101EC0008F907F906F905F904F903F902F900895EC
+:101ED00003D0808199270895E0ECF1E0378537FD44
+:101EE000FDCF348538603487FC01E050F04F089511
+:101EF000262FE0ECF1E0378537FDFDCF3485377FC5
+:101F00003487378531FF09C036E3328738ED34BF77
+:101F100031E03387378537FDFDCF33E33287808368
+:101F200091831282248325E3228728ED31E024BFA8
+:101F3000338701960895FC010590615070400110AF
+:101F4000D8F7809590958E0F9F1F0895FC016150E2
+:101F5000704001900110D8F7809590958E0F9F1FCB
+:101F600008950F931F93CF93DF93182F092FEB0141
+:101F70008B8181FD03C08FEF9FEF20C082FF10C0D7
+:101F80004E815F812C813D81421753077CF4E881AB
+:101F9000F9819F012F5F3F4F28833983108306C04B
+:101FA000E885F985812F1995892B29F72E813F81A5
+:101FB0002F5F3F4F2E833F83812F902FDF91CF9153
+:101FC0001F910F910895FA01AA27283051F120316D
+:101FD00081F1E8946F936E7F6E5F7F4F8F4F9F4FBD
+:101FE000AF4FB1E03ED0B4E03CD0670F781F891FFF
+:101FF0009A1FA11D680F791F8A1F911DA11D6A0FCD
+:10200000711D811D911DA11D20D009F468943F917F
+:102010002AE0269F11243019305D3193DEF6CF017E
+:102020000895462F4770405D4193B3E00FD0C9F744
+:10203000F6CF462F4F70405D4A3318F0495D31FDB1
+:102040004052419302D0A9F7EACFB4E0A695979504
+:10205000879577956795BA95C9F7009761057105DA
+:1020600008959B01AC010A2E069457954795379524
+:102070002795BA95C9F7620F731F841F951FA01D7E
+:062080000895F894FFCF63
+:102086009BB78BBFFB018091CA014093CA017DE9D2
+:1020960070933400E8958093CA019BBF0895209100
+:1020A600CF0127FDFCCF9BB78BBFFB018091CA01F7
+:1020B60023E22093CA010A01E89511248093CA01FC
+:0420C6009BBF08951F
+:1020CA00802500000300005374617274696E6720F2
+:1020DA006170706C69636174696F6E2E2E2E0D0AC1
+:1020EA000057616974696E6720666F72206669724B
+:1020FA006D776172652075706C6F61642E2E2E0D7E
+:10210A000A00526573657474696E672043505520DE
+:10211A002D20746F6F206D616E79206572726F72F7
+:10212A007300426F6F746C6F61646572205625325A
+:08213A00642E2532640D0A0039
+:0400000320000000D9
+:00000001FF
diff --git a/Fred_bootloader/src/bootloader.c b/Fred_bootloader/src/bootloader.c
index c9db87b108e37defa73fe0709051f64d2692a4ab..a6c6f540359bcd11700db224ce042015716cee67 100644
--- a/Fred_bootloader/src/bootloader.c
+++ b/Fred_bootloader/src/bootloader.c
@@ -18,6 +18,17 @@ uint8_t page[FLASH_PAGE_SIZE] = {0};
 uint8_t checksum = 0;
 uint8_t handshake = 0;
 
+void welcome_led_blink()
+{
+    uint8_t i;
+    for (i=0; i<50; i++)
+    {
+      ioport_toggle_pin(MMC_LED);
+      _delay_ms(20);
+    }    
+}
+
+
 void start_firmware()
 {
 	void (*app_start)( void ) = APP_SECTION_START; // Set up function pointer to RESET vector.
@@ -42,9 +53,10 @@ void start_bootloader()
 		switch (state)
 		{
 			case INIT:
-				if (eeprom_read_upgrade() == false)
+				if (eeprom_check_magic_byte_invalid() == false)
 				{
-					usart_putchar(USART_SERIAL, eeprom_read_byte(EEPROM_ADDR_FWUPGRADE));
+					printString("Starting application...\r\n");
+                    usart_putchar(USART_SERIAL, eeprom_read_byte(EEPROM_ADDR_MAGICBYTE));
 					start_firmware();
 				}
 				state = HANDSHAKE;
@@ -52,7 +64,7 @@ void start_bootloader()
 			
 			///////////////////////////////////////
 			case HANDSHAKE:
-
+                printString("Waiting for firmware upload...\r\n");
 				do 
 				{
 					usart_serial_getchar(USART_SERIAL, &chr);
@@ -189,21 +201,21 @@ void checksum_add_byte(uint8_t byte)
 
 void eeprom_write_upgrade( void )
 {
-	eeprom_write_byte(EEPROM_ADDR_FWUPGRADE, EEPROM_FWUPGRADE_VALUE);	
+	eeprom_write_byte(EEPROM_ADDR_MAGICBYTE, EEPROM_FWUPGRADE_VALUE);	
 }
 
 void eeprom_write_ready( void )
 {
-	eeprom_write_byte(EEPROM_ADDR_FWUPGRADE, EEPROM_FWREADY_VALUE);
+	eeprom_write_byte(EEPROM_ADDR_MAGICBYTE, EEPROM_FWREADY_VALUE);
 	_delay_ms(40);
 }
 
-bool eeprom_read_upgrade( void )
+bool eeprom_check_magic_byte_invalid( void )
 {
 	//return false;
 	// return true;
-	//usart_putchar(USART_SERIAL, eeprom_read_byte((EEPROM_ADDR_FWUPGRADE)));
-	return eeprom_read_byte(EEPROM_ADDR_FWUPGRADE) != EEPROM_FWREADY_VALUE;
+	//usart_putchar(USART_SERIAL, eeprom_read_byte((EEPROM_ADDR_MAGICBYTE)));
+	return eeprom_read_byte(EEPROM_ADDR_MAGICBYTE) != EEPROM_FWREADY_VALUE;
 }
 
 bool read_compare_checksum(void)
@@ -215,12 +227,12 @@ bool read_compare_checksum(void)
 
 void eeprom_write_upgrade_started( void )
 {
-	eeprom_write_byte(EEPROM_ADDR_FWUPGRADE, EEPROM_FWUPGRADE_STARTED);
+	eeprom_write_byte(EEPROM_ADDR_MAGICBYTE, EEPROM_FWUPGRADE_STARTED);
 }
 
 bool eeprom_is_pending( void )
 {
-    uint8_t value = eeprom_read_byte(EEPROM_ADDR_FWUPGRADE);
+    uint8_t value = eeprom_read_byte(EEPROM_ADDR_MAGICBYTE);
 	return (value == EEPROM_FWUPGRADE_STARTED) || 
         (value != EEPROM_FWREADY_VALUE && value != EEPROM_FWUPGRADE_VALUE);
 }
diff --git a/Fred_bootloader/src/bootloader.h b/Fred_bootloader/src/bootloader.h
index 7216982606a7e3e63db2d93fe67e7649746f3483..7a5dffef5bacbbc37117b6df348fd146b20402ae 100644
--- a/Fred_bootloader/src/bootloader.h
+++ b/Fred_bootloader/src/bootloader.h
@@ -28,7 +28,7 @@ extern BootloaderState state;
 #define BOOTLDR_ERR_MAX 20
 
 
-#define EEPROM_ADDR_FWUPGRADE (uint8_t *) 63
+#define EEPROM_ADDR_MAGICBYTE (uint8_t *) 63
 #define EEPROM_FWUPGRADE_VALUE			(uint8_t)   0x56
 #define EEPROM_FWREADY_VALUE			(uint8_t)   0x55
 #define EEPROM_FWUPGRADE_STARTED		(uint8_t)	0x44
@@ -38,9 +38,10 @@ void start_firmware(void);
 void eeprom_write_upgrade(void);
 void eeprom_write_upgrade_started(void);
 void eeprom_write_ready(void);
-bool eeprom_read_upgrade(void);
+bool eeprom_check_magic_byte_invalid(void);
 bool eeprom_is_pending(void);
 void checksum_add_byte(uint8_t byte);
 bool read_compare_checksum(void);
+void welcome_led_blink(void);
 
 #endif /* BOOTLOADER_H_ */
\ No newline at end of file
diff --git a/Fred_bootloader/src/main.c b/Fred_bootloader/src/main.c
index 7f87e43414588d90fa440a20507863f043229fb9..e1847c164bda509f5dca7e5b3bd61c0961b6df71 100644
--- a/Fred_bootloader/src/main.c
+++ b/Fred_bootloader/src/main.c
@@ -27,9 +27,11 @@
  */
 #include <asf.h>
 #include <util/delay.h>
+#include <stdio.h>
 #include "usart_lib.h"
 #include "timer_lib.h"
 #include "bootloader.h"
+#include "version.h"
 #include <ccp.h>
 int main (void)
 {
@@ -49,10 +51,13 @@ int main (void)
 	pmic_init();
 	pmic_set_scheduling(PMIC_SCH_FIXED_PRIORITY);//PMIC_SCH_ROUND_ROBIN);
 	cpu_irq_enable();
-
 	usart_init();
-
-	printString("Bootloader\r\n");
+    
+    welcome_led_blink();
+    ioport_toggle_pin(MMC_LED);
+    char message[256];
+    sprintf(message,"Bootloader V%2d.%2d\r\n",SVN_REVISION_MAJOR,SVN_REVISION_MINOR);
+	printString(message);
 	start_bootloader();
 	//reset processor
 	//ccp_write_io((void *)&RST.CTRL, RST_SWRST_bm);
diff --git a/Fred_bootloader/src/timer_lib.c b/Fred_bootloader/src/timer_lib.c
index 0904d6eb720be809f85851998adb62b1863b8fdc..57833b98f49ffaedc6bb61e99a758edb89f47aeb 100644
--- a/Fred_bootloader/src/timer_lib.c
+++ b/Fred_bootloader/src/timer_lib.c
@@ -50,7 +50,7 @@ static void tc_overflow_callback(void)				//100 ms
 	sec_counter++;
 	idle_counter++;
 	timer_100ms_flag = true;
-	if(sec_counter == 10)
+	if(sec_counter == LED_BLINK_PERIOD)
 	{
 		ioport_toggle_pin(MMC_LED);
 		sec_counter = 0;
diff --git a/Fred_bootloader/src/timer_lib.h b/Fred_bootloader/src/timer_lib.h
index c9e63a50d6ec76b390580cf1c7d80361f9192e76..c7955d6b71d8b3b7b9d2eddbcafa799cba9a6ec6 100644
--- a/Fred_bootloader/src/timer_lib.h
+++ b/Fred_bootloader/src/timer_lib.h
@@ -29,6 +29,7 @@
 #define TIMER_LIB_H_
 
 #define INACTIVITY_BEFORE_RESET_S	20
+#define LED_BLINK_PERIOD            18
 
 extern volatile bool timer_100ms_flag;