diff --git a/firmware/CMSISv1p30_LPC13xx/.cproject b/firmware/CMSISv1p30_LPC13xx/.cproject
deleted file mode 100644
index 096a09f..0000000
--- a/firmware/CMSISv1p30_LPC13xx/.cproject
+++ /dev/null
@@ -1,889 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<?xml version="1.0" encoding="UTF-8"?>
-<TargetConfig>
-<Properties property_0="" property_1="" property_2="" property_3="NXP" property_4="LPC1311" property_count="5" version="1"/>
-<infoList vendor="NXP">
-<info chip="LPC1311" match_id="0x2c42502b" name="LPC1311" stub="crt_emu_lpc11_13_nxp">
-<chip>
-<name>LPC1311</name>
-<family>LPC13xx</family>
-<vendor>NXP (formerly Philips)</vendor>
-<reset board="None" core="Real" sys="Real"/>
-<clock changeable="TRUE" freq="12MHz" is_accurate="TRUE"/>
-<memory can_program="true" id="Flash" is_ro="true" type="Flash"/>
-<memory id="RAM" type="RAM"/>
-<memory id="Periph" is_volatile="true" type="Peripheral"/>
-<memoryInstance derived_from="Flash" id="MFlash8" location="0x00000000" size="0x2000"/>
-<memoryInstance derived_from="RAM" id="RamLoc2" location="0x10000000" size="0x800"/>
-<prog_flash blocksz="0x1000" location="0" maxprgbuff="0x400" progwithcode="TRUE" size="0x2000"/>
-<peripheralInstance derived_from="LPC17_NVIC" determined="infoFile" id="NVIC" location="0xE000E000"/>
-<peripheralInstance derived_from="LPC11_13_TIMER32" determined="infoFile" id="TIMER0" location="0x40004000"/>
-<peripheralInstance derived_from="LPC1xxx_UART_MODEM" determined="infoFile" id="UART0" location="0x40008000"/>
-<peripheralInstance derived_from="LPC11_13_SSP" determined="infoFile" id="SSP" location="0x40040000"/>
-<peripheralInstance derived_from="LPC11_13_ADC" determined="infoFile" id="ADC" location="0x4001c000"/>
-<peripheralInstance derived_from="LPC11_13_I2C" determined="infoFile" id="I2C0" location="0x40000000"/>
-<peripheralInstance derived_from="CM3_DCR" determined="infoFile" id="DCR" location="0xE000EDF0"/>
-<peripheralInstance derived_from="LPC13_SYSCTL" determined="infoFile" id="SYSCTL" location="0x40048000"/>
-<peripheralInstance derived_from="LPC11_13_PMU" determined="infoFile" id="PMU" location="0x40038000"/>
-<peripheralInstance derived_from="LPC11_13_IOCON" determined="infoFile" id="IOCON" location="0x40044000"/>
-<peripheralInstance derived_from="LPC11_13_GPIO" determined="infoFile" id="GPIO0" location="0x50000000"/>
-<peripheralInstance derived_from="LPC11_13_GPIO" determined="infoFile" id="GPIO1" location="0x50010000"/>
-<peripheralInstance derived_from="LPC11_13_GPIO" determined="infoFile" id="GPIO2" location="0x50020000"/>
-<peripheralInstance derived_from="LPC11_13_GPIO" determined="infoFile" id="GPIO3" location="0x50030000"/>
-<peripheralInstance derived_from="LPC11_13_TIMER16" determined="infoFile" id="TMR160" location="0x4000c000"/>
-<peripheralInstance derived_from="LPC11_13_TIMER16" determined="infoFile" id="TMR161" location="0x40010000"/>
-<peripheralInstance derived_from="LPC11_13_WDT" determined="infoFile" id="WDT" location="0x40004000"/>
-</chip>
-<processor>
-<name gcc_name="cortex-m3">Cortex-M3</name>
-<family>Cortex-M</family>
-</processor>
-<link href="nxp_lpc11_13_peripheral.xme" show="embed" type="simple"/>
-</info>
-</infoList>
-</TargetConfig>
-
-
diff --git a/firmware/CMSISv1p30_LPC13xx/.gitignore b/firmware/CMSISv1p30_LPC13xx/.gitignore
deleted file mode 100644
index 329d484..0000000
--- a/firmware/CMSISv1p30_LPC13xx/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-Debug
diff --git a/firmware/CMSISv1p30_LPC13xx/.project b/firmware/CMSISv1p30_LPC13xx/.project
deleted file mode 100644
index 0adf94f..0000000
--- a/firmware/CMSISv1p30_LPC13xx/.project
+++ /dev/null
@@ -1,81 +0,0 @@
-
-
- CMSISv1p30_LPC13xx
-
-
-
-
-
- org.eclipse.cdt.managedbuilder.core.genmakebuilder
- clean,full,incremental,
-
-
- ?name?
-
-
-
- org.eclipse.cdt.make.core.append_environment
- true
-
-
- org.eclipse.cdt.make.core.autoBuildTarget
- all
-
-
- org.eclipse.cdt.make.core.buildArguments
-
-
-
- org.eclipse.cdt.make.core.buildCommand
- make
-
-
- org.eclipse.cdt.make.core.buildLocation
- ${workspace_loc:/CMSISv1p30_LPC13xx/Debug}
-
-
- org.eclipse.cdt.make.core.cleanBuildTarget
- clean
-
-
- org.eclipse.cdt.make.core.contents
- org.eclipse.cdt.make.core.activeConfigSettings
-
-
- org.eclipse.cdt.make.core.enableAutoBuild
- false
-
-
- org.eclipse.cdt.make.core.enableCleanBuild
- true
-
-
- org.eclipse.cdt.make.core.enableFullBuild
- true
-
-
- org.eclipse.cdt.make.core.fullBuildTarget
- all
-
-
- org.eclipse.cdt.make.core.stopOnError
- true
-
-
- org.eclipse.cdt.make.core.useDefaultBuildCmd
- true
-
-
-
-
- org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
-
-
-
-
-
- org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
- org.eclipse.cdt.managedbuilder.core.managedBuildNature
- org.eclipse.cdt.core.cnature
-
-
diff --git a/firmware/CMSISv1p30_LPC13xx/cmsis_readme.txt b/firmware/CMSISv1p30_LPC13xx/cmsis_readme.txt
deleted file mode 100644
index d345055..0000000
--- a/firmware/CMSISv1p30_LPC13xx/cmsis_readme.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-CMSIS : Cortex Microcontroller Software Interface Standard
-==========================================================
-CMSIS defines for a Cortex-M Microcontroller System:
-
- * A common way to access peripheral registers and a
- common way to define exception vectors.
- * The register names of the Core Peripherals and the
- names of the Core Exception Vectors.
- * An device independent interface for RTOS Kernels
- including a debug channel.
-
-By using CMSIS compliant software components, the user can
-easier re-use template code. CMSIS is intended to enable the
-combination of software components from multiple middleware
-vendors.
-
-This project contains appropriate files for this MCU family
-taken from CMSIS. A full copy of the CMSIS files can be found
-within your tools installation directory. More information on
-CMSIS can be found at:
-
- http://www.onarm.com/
- http://www.arm.com/
-
-
-
-
-
diff --git a/firmware/CMSISv1p30_LPC13xx/history.txt b/firmware/CMSISv1p30_LPC13xx/history.txt
deleted file mode 100644
index 3950ecf..0000000
--- a/firmware/CMSISv1p30_LPC13xx/history.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-History of updates to CMSISv1p30_LPC13xx
-========================================
-
-18 February 2010
-----------------
-system_LPC13xx.c updated to new version (dated 18 February 2010),
-changing value of SYSPLLCTRL_Val from 0x05 to 0x25
-
-23 March 2010
--------------
-Optimisation level of release build of project changed from
--O2 to -Os.
diff --git a/firmware/Makefile b/firmware/Makefile
new file mode 100644
index 0000000..a88ce8b
--- /dev/null
+++ b/firmware/Makefile
@@ -0,0 +1,19 @@
+CFLAGS = -D__REDLIB__ -DDEBUG -D__CODE_RED -D__USE_CMSIS=CMSISv1p30_LPC13xx -Iinc -O0 -g3 -Wall -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections -mcpu=cortex-m3 -mthumb
+LDFLAGS = -nostdlib -Xlinker -Map=obj/edubrm.map --gc-sections -mcpu=cortex-m3 -mthumb -T obj/debug.ld
+LIST = $(shell cd src/ ; ls *.c)
+OBJS = $(addprefix obj/,$(LIST:.c=.o))
+SRCS = $(addprefix src/,$(LIST))
+
+obj/%.o: src/%.c
+ arm-none-eabi-gcc $(CFLAGS) -c $< -o $@
+
+obj/edubrm.axf: $(OBJS)
+ arm-none-eabi-gcc $(LDFLAGS) -o obj/edubrm.axf $(OBJS)
+
+obj/edubrm.bin: obj/edubrm.axf
+ arm-none-eabi-size obj/edubrm.axf
+ arm-none-eabi-objcopy -O binary obj/edubrm.axf obj/edubrm.bin
+ checksum -v obj/edubrm.bin
+
+clean:
+ rm -f obj/*.o obj/edubrm.{axf,bin,map}
diff --git a/firmware/CMSISv1p30_LPC13xx/inc/LPC13xx.h b/firmware/inc/LPC13xx.h
similarity index 100%
rename from firmware/CMSISv1p30_LPC13xx/inc/LPC13xx.h
rename to firmware/inc/LPC13xx.h
diff --git a/firmware/usbcomp_msd_cdc/inc/cdc.h b/firmware/inc/cdc.h
similarity index 100%
rename from firmware/usbcomp_msd_cdc/inc/cdc.h
rename to firmware/inc/cdc.h
diff --git a/firmware/usbcomp_msd_cdc/inc/cdcuser.h b/firmware/inc/cdcuser.h
similarity index 100%
rename from firmware/usbcomp_msd_cdc/inc/cdcuser.h
rename to firmware/inc/cdcuser.h
diff --git a/firmware/usbcomp_msd_cdc/inc/clkconfig.h b/firmware/inc/clkconfig.h
similarity index 100%
rename from firmware/usbcomp_msd_cdc/inc/clkconfig.h
rename to firmware/inc/clkconfig.h
diff --git a/firmware/usbcomp_msd_cdc/inc/config.h b/firmware/inc/config.h
similarity index 100%
rename from firmware/usbcomp_msd_cdc/inc/config.h
rename to firmware/inc/config.h
diff --git a/firmware/CMSISv1p30_LPC13xx/inc/core_cm3.h b/firmware/inc/core_cm3.h
similarity index 100%
rename from firmware/CMSISv1p30_LPC13xx/inc/core_cm3.h
rename to firmware/inc/core_cm3.h
diff --git a/firmware/usbcomp_msd_cdc/inc/memory.h b/firmware/inc/memory.h
similarity index 100%
rename from firmware/usbcomp_msd_cdc/inc/memory.h
rename to firmware/inc/memory.h
diff --git a/firmware/usbcomp_msd_cdc/inc/msc.h b/firmware/inc/msc.h
similarity index 100%
rename from firmware/usbcomp_msd_cdc/inc/msc.h
rename to firmware/inc/msc.h
diff --git a/firmware/usbcomp_msd_cdc/inc/mscuser.h b/firmware/inc/mscuser.h
similarity index 100%
rename from firmware/usbcomp_msd_cdc/inc/mscuser.h
rename to firmware/inc/mscuser.h
diff --git a/firmware/usbcomp_msd_cdc/inc/serial.h b/firmware/inc/serial.h
similarity index 100%
rename from firmware/usbcomp_msd_cdc/inc/serial.h
rename to firmware/inc/serial.h
diff --git a/firmware/CMSISv1p30_LPC13xx/inc/system_LPC13xx.h b/firmware/inc/system_LPC13xx.h
similarity index 100%
rename from firmware/CMSISv1p30_LPC13xx/inc/system_LPC13xx.h
rename to firmware/inc/system_LPC13xx.h
diff --git a/firmware/usbcomp_msd_cdc/inc/type.h b/firmware/inc/type.h
similarity index 100%
rename from firmware/usbcomp_msd_cdc/inc/type.h
rename to firmware/inc/type.h
diff --git a/firmware/usbcomp_msd_cdc/inc/usb.h b/firmware/inc/usb.h
similarity index 100%
rename from firmware/usbcomp_msd_cdc/inc/usb.h
rename to firmware/inc/usb.h
diff --git a/firmware/usbcomp_msd_cdc/inc/usbcfg.h b/firmware/inc/usbcfg.h
similarity index 100%
rename from firmware/usbcomp_msd_cdc/inc/usbcfg.h
rename to firmware/inc/usbcfg.h
diff --git a/firmware/usbcomp_msd_cdc/inc/usbcore.h b/firmware/inc/usbcore.h
similarity index 100%
rename from firmware/usbcomp_msd_cdc/inc/usbcore.h
rename to firmware/inc/usbcore.h
diff --git a/firmware/usbcomp_msd_cdc/inc/usbdesc.h b/firmware/inc/usbdesc.h
similarity index 100%
rename from firmware/usbcomp_msd_cdc/inc/usbdesc.h
rename to firmware/inc/usbdesc.h
diff --git a/firmware/usbcomp_msd_cdc/inc/usbhw.h b/firmware/inc/usbhw.h
similarity index 100%
rename from firmware/usbcomp_msd_cdc/inc/usbhw.h
rename to firmware/inc/usbhw.h
diff --git a/firmware/usbcomp_msd_cdc/inc/usbreg.h b/firmware/inc/usbreg.h
similarity index 100%
rename from firmware/usbcomp_msd_cdc/inc/usbreg.h
rename to firmware/inc/usbreg.h
diff --git a/firmware/usbcomp_msd_cdc/inc/usbuser.h b/firmware/inc/usbuser.h
similarity index 100%
rename from firmware/usbcomp_msd_cdc/inc/usbuser.h
rename to firmware/inc/usbuser.h
diff --git a/firmware/usbcomp_msd_cdc/inc/vcomdemo.h b/firmware/inc/vcomdemo.h
similarity index 100%
rename from firmware/usbcomp_msd_cdc/inc/vcomdemo.h
rename to firmware/inc/vcomdemo.h
diff --git a/firmware/obj/debug.ld b/firmware/obj/debug.ld
new file mode 100644
index 0000000..fd9ea4a
--- /dev/null
+++ b/firmware/obj/debug.ld
@@ -0,0 +1,98 @@
+/*
+* GENERATED FILE - DO NOT EDIT
+* (C) Code Red Technologies Ltd, 2008-10
+* Generated linker script file for LPC1343
+* Created from nxp_lpc13_c.ld (vLPCXpresso 3.8 (2 [Build 129] [31/01/2011] ))
+* By LPCXpresso 3.8.2 [Build 129] [31/01/2011] on Fri Apr 01 20:01:18 CEST 2011
+*/
+
+
+INCLUDE "obj/debug_lib.ld"
+INCLUDE "obj/debug_mem.ld"
+
+ENTRY(ResetISR)
+
+SECTIONS
+{
+
+ /* MAIN TEXT SECTION */
+ .text : ALIGN(4)
+ {
+ FILL(0xff)
+ KEEP(*(.isr_vector))
+
+ /* Global Section Table */
+ . = ALIGN(4) ;
+ __section_table_start = .;
+ __data_section_table = .;
+ LONG(LOADADDR(.data));
+ LONG( ADDR(.data)) ;
+ LONG( SIZEOF(.data));
+ __data_section_table_end = .;
+ __bss_section_table = .;
+ LONG( ADDR(.bss));
+ LONG( SIZEOF(.bss));
+ __bss_section_table_end = .;
+ __section_table_end = . ;
+ /* End of Global Section Table */
+
+
+ *(.after_vectors*)
+
+ *(.text*)
+ *(.rodata .rodata.*)
+ . = ALIGN(4);
+
+ } > MFlash32
+
+ /*
+ * for exception handling/unwind - some Newlib functions (in common
+ * with C++ and STDC++) use this.
+ */
+ .ARM.extab : ALIGN(4)
+ {
+ *(.ARM.extab* .gnu.linkonce.armextab.*)
+ } > MFlash32
+ __exidx_start = .;
+
+ .ARM.exidx : ALIGN(4)
+ {
+ *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+ } > MFlash32
+ __exidx_end = .;
+
+ _etext = .;
+
+
+ /* MAIN DATA SECTION */
+
+ .uninit_RESERVED : ALIGN(4)
+ {
+ KEEP(*(.bss.$RESERVED*))
+ } > RamLoc8
+
+ .data : ALIGN(4)
+ {
+ FILL(0xff)
+ _data = .;
+ *(vtable)
+ *(.data*)
+ . = ALIGN(4) ;
+ _edata = .;
+ } > RamLoc8 AT>MFlash32
+
+
+ /* MAIN BSS SECTION */
+ .bss : ALIGN(4)
+ {
+ _bss = .;
+ *(.bss*)
+ *(COMMON)
+ . = ALIGN(4) ;
+ _ebss = .;
+ PROVIDE(end = .);
+ } > RamLoc8
+
+ PROVIDE(_pvHeapStart = .);
+ PROVIDE(_vStackTop = __top_RamLoc8 - 0);
+}
diff --git a/firmware/obj/debug_lib.ld b/firmware/obj/debug_lib.ld
new file mode 100644
index 0000000..dcdbf24
--- /dev/null
+++ b/firmware/obj/debug_lib.ld
@@ -0,0 +1,8 @@
+/*
+ * GENERATED FILE - DO NOT EDIT
+ * (C) Code Red Technologies Ltd, 2008-9
+ * Generated linker script library include file for Redlib (none)
+ * (created from redlib_none_c.ld (LPCXpresso 3.8.2 [Build 129] [31/01/2011] ) on Fri Apr 01 20:01:18 CEST 2011)
+*/
+
+GROUP(libcr_c.a libcr_eabihelpers.a)
diff --git a/firmware/obj/debug_mem.ld b/firmware/obj/debug_mem.ld
new file mode 100644
index 0000000..9a41d5d
--- /dev/null
+++ b/firmware/obj/debug_mem.ld
@@ -0,0 +1,18 @@
+/*
+ * GENERATED FILE - DO NOT EDIT
+ * (C) Code Red Technologies Ltd, 2008-9
+ * Generated linker script include file for
+ * (created from LinkMemoryTemplate (LPCXpresso 3.8.2 [Build 129] [31/01/2011] ) on Fri Apr 01 20:01:18 CEST 2011)
+*/
+
+MEMORY
+{
+ /* Define each memory region */
+ MFlash32 (rx) : ORIGIN = 0x0, LENGTH = 0x8000 /* 32k */
+ RamLoc8 (rwx) : ORIGIN = 0x10000000, LENGTH = 0x2000 /* 8k */
+
+}
+ /* Define a symbol for the top of each memory region */
+ __top_MFlash32 = 0x0 + 0x8000;
+ __top_RamLoc8 = 0x10000000 + 0x2000;
+
diff --git a/firmware/usbcomp_msd_cdc/src/DiskImg.c b/firmware/src/DiskImg.c
similarity index 100%
rename from firmware/usbcomp_msd_cdc/src/DiskImg.c
rename to firmware/src/DiskImg.c
diff --git a/firmware/usbcomp_msd_cdc/src/cdcuser.c b/firmware/src/cdcuser.c
similarity index 100%
rename from firmware/usbcomp_msd_cdc/src/cdcuser.c
rename to firmware/src/cdcuser.c
diff --git a/firmware/usbcomp_msd_cdc/src/clkconfig.c b/firmware/src/clkconfig.c
similarity index 100%
rename from firmware/usbcomp_msd_cdc/src/clkconfig.c
rename to firmware/src/clkconfig.c
diff --git a/firmware/CMSISv1p30_LPC13xx/src/core_cm3.c b/firmware/src/core_cm3.c
similarity index 100%
rename from firmware/CMSISv1p30_LPC13xx/src/core_cm3.c
rename to firmware/src/core_cm3.c
diff --git a/firmware/usbcomp_msd_cdc/src/cr_startup_lpc13.c b/firmware/src/cr_startup_lpc13.c
similarity index 100%
rename from firmware/usbcomp_msd_cdc/src/cr_startup_lpc13.c
rename to firmware/src/cr_startup_lpc13.c
diff --git a/firmware/usbcomp_msd_cdc/src/edubrm.c b/firmware/src/edubrm.c
similarity index 100%
rename from firmware/usbcomp_msd_cdc/src/edubrm.c
rename to firmware/src/edubrm.c
diff --git a/firmware/usbcomp_msd_cdc/src/edubrm.h b/firmware/src/edubrm.h
similarity index 100%
rename from firmware/usbcomp_msd_cdc/src/edubrm.h
rename to firmware/src/edubrm.h
diff --git a/firmware/usbcomp_msd_cdc/src/mscuser.c b/firmware/src/mscuser.c
similarity index 100%
rename from firmware/usbcomp_msd_cdc/src/mscuser.c
rename to firmware/src/mscuser.c
diff --git a/firmware/usbcomp_msd_cdc/src/serial.c b/firmware/src/serial.c
similarity index 100%
rename from firmware/usbcomp_msd_cdc/src/serial.c
rename to firmware/src/serial.c
diff --git a/firmware/CMSISv1p30_LPC13xx/src/system_LPC13xx.c b/firmware/src/system_LPC13xx.c
similarity index 100%
rename from firmware/CMSISv1p30_LPC13xx/src/system_LPC13xx.c
rename to firmware/src/system_LPC13xx.c
diff --git a/firmware/usbcomp_msd_cdc/src/usbcomp.c b/firmware/src/usbcomp.c
similarity index 100%
rename from firmware/usbcomp_msd_cdc/src/usbcomp.c
rename to firmware/src/usbcomp.c
diff --git a/firmware/usbcomp_msd_cdc/src/usbcore.c b/firmware/src/usbcore.c
similarity index 100%
rename from firmware/usbcomp_msd_cdc/src/usbcore.c
rename to firmware/src/usbcore.c
diff --git a/firmware/usbcomp_msd_cdc/src/usbdesc.c b/firmware/src/usbdesc.c
similarity index 100%
rename from firmware/usbcomp_msd_cdc/src/usbdesc.c
rename to firmware/src/usbdesc.c
diff --git a/firmware/usbcomp_msd_cdc/src/usbhw.c b/firmware/src/usbhw.c
similarity index 100%
rename from firmware/usbcomp_msd_cdc/src/usbhw.c
rename to firmware/src/usbhw.c
diff --git a/firmware/usbcomp_msd_cdc/src/usbuser.c b/firmware/src/usbuser.c
similarity index 100%
rename from firmware/usbcomp_msd_cdc/src/usbuser.c
rename to firmware/src/usbuser.c
diff --git a/firmware/usbcomp_msd_cdc/.cproject b/firmware/usbcomp_msd_cdc/.cproject
deleted file mode 100644
index 9d5f2ff..0000000
--- a/firmware/usbcomp_msd_cdc/.cproject
+++ /dev/null
@@ -1,1336 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<?xml version="1.0" encoding="UTF-8"?>
-<TargetConfig>
-<Properties property_0="" property_1="" property_2="" property_3="NXP" property_4="LPC1343" property_count="5" version="1"/>
-<infoList vendor="NXP">
-<info chip="LPC1343" match_id="0x3d00002b" name="LPC1343" stub="crt_emu_lpc11_13_nxp">
-<chip>
-<name>LPC1343</name>
-<family>LPC13xx</family>
-<vendor>NXP (formerly Philips)</vendor>
-<reset board="None" core="Real" sys="Real"/>
-<clock changeable="TRUE" freq="12MHz" is_accurate="TRUE"/>
-<memory can_program="true" id="Flash" is_ro="true" type="Flash"/>
-<memory id="RAM" type="RAM"/>
-<memory id="Periph" is_volatile="true" type="Peripheral"/>
-<memoryInstance derived_from="Flash" id="MFlash32" location="0x00000000" size="0x8000"/>
-<memoryInstance derived_from="RAM" id="RamLoc8" location="0x10000000" size="0x2000"/>
-<prog_flash blocksz="0x1000" location="0" maxprgbuff="0x1000" progwithcode="TRUE" size="0x8000"/>
-<peripheralInstance derived_from="LPC17_NVIC" determined="infoFile" id="NVIC" location="0xE000E000"/>
-<peripheralInstance derived_from="LPC11_13_TIMER32" determined="infoFile" id="TIMER0" location="0x40014000"/>
-<peripheralInstance derived_from="LPC11_13_TIMER32" determined="infoFile" id="TIMER1" location="0x40018000"/>
-<peripheralInstance derived_from="LPC1xxx_UART_MODEM" determined="infoFile" id="UART0" location="0x40008000"/>
-<peripheralInstance derived_from="LPC11_13_SSP" determined="infoFile" id="SSP" location="0x40040000"/>
-<peripheralInstance derived_from="LPC11_13_ADC" determined="infoFile" id="ADC" location="0x4001c000"/>
-<peripheralInstance derived_from="LPC11_13_I2C" determined="infoFile" id="I2C0" location="0x40000000"/>
-<peripheralInstance derived_from="CM3_DCR" determined="infoFile" id="DCR" location="0xE000EDF0"/>
-<peripheralInstance derived_from="LPC13_SYSCTL" determined="infoFile" id="SYSCTL" location="0x40048000"/>
-<peripheralInstance derived_from="LPC11_13_PMU" determined="infoFile" id="PMU" location="0x40038000"/>
-<peripheralInstance derived_from="LPC11_13_IOCON" determined="infoFile" id="IOCON" location="0x40044000"/>
-<peripheralInstance derived_from="LPC11_13_GPIO" determined="infoFile" id="GPIO0" location="0x50000000"/>
-<peripheralInstance derived_from="LPC11_13_GPIO" determined="infoFile" id="GPIO1" location="0x50010000"/>
-<peripheralInstance derived_from="LPC11_13_GPIO" determined="infoFile" id="GPIO2" location="0x50020000"/>
-<peripheralInstance derived_from="LPC11_13_GPIO" determined="infoFile" id="GPIO3" location="0x50030000"/>
-<peripheralInstance derived_from="LPC11_13_TIMER16" determined="infoFile" id="TMR160" location="0x4000c000"/>
-<peripheralInstance derived_from="LPC11_13_TIMER16" determined="infoFile" id="TMR161" location="0x40010000"/>
-<peripheralInstance derived_from="LPC11_13_USBDEV" determined="infoFile" id="USB" location="0x40020000"/>
-<peripheralInstance derived_from="LPC11_13_WDT" determined="infoFile" id="WDT" location="0x40004000"/>
-</chip>
-<processor>
-<name gcc_name="cortex-m3">Cortex-M3</name>
-<family>Cortex-M</family>
-</processor>
-<link href="nxp_lpc11_13_peripheral.xme" show="embed" type="simple"/>
-</info>
-</infoList>
-</TargetConfig>
-
-
diff --git a/firmware/usbcomp_msd_cdc/.gitignore b/firmware/usbcomp_msd_cdc/.gitignore
deleted file mode 100644
index 329d484..0000000
--- a/firmware/usbcomp_msd_cdc/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-Debug
diff --git a/firmware/usbcomp_msd_cdc/.project b/firmware/usbcomp_msd_cdc/.project
deleted file mode 100644
index 437f4b2..0000000
--- a/firmware/usbcomp_msd_cdc/.project
+++ /dev/null
@@ -1,82 +0,0 @@
-
-
- usbcomp_msd_cdc
-
-
- CMSISv1p30_LPC13xx
-
-
-
- org.eclipse.cdt.managedbuilder.core.genmakebuilder
- clean,full,incremental,
-
-
- ?name?
-
-
-
- org.eclipse.cdt.make.core.append_environment
- true
-
-
- org.eclipse.cdt.make.core.autoBuildTarget
- all
-
-
- org.eclipse.cdt.make.core.buildArguments
-
-
-
- org.eclipse.cdt.make.core.buildCommand
- make
-
-
- org.eclipse.cdt.make.core.buildLocation
- ${workspace_loc:/usbcomp_msd_cdc/Debug}
-
-
- org.eclipse.cdt.make.core.cleanBuildTarget
- clean
-
-
- org.eclipse.cdt.make.core.contents
- org.eclipse.cdt.make.core.activeConfigSettings
-
-
- org.eclipse.cdt.make.core.enableAutoBuild
- false
-
-
- org.eclipse.cdt.make.core.enableCleanBuild
- true
-
-
- org.eclipse.cdt.make.core.enableFullBuild
- true
-
-
- org.eclipse.cdt.make.core.fullBuildTarget
- all
-
-
- org.eclipse.cdt.make.core.stopOnError
- true
-
-
- org.eclipse.cdt.make.core.useDefaultBuildCmd
- true
-
-
-
-
- org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
-
-
-
-
-
- org.eclipse.cdt.core.cnature
- org.eclipse.cdt.managedbuilder.core.managedBuildNature
- org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
-
-
diff --git a/firmware/usbcomp_msd_cdc/readme.txt b/firmware/usbcomp_msd_cdc/readme.txt
deleted file mode 100644
index c07f8c9..0000000
--- a/firmware/usbcomp_msd_cdc/readme.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-usbcomp_msd_cdc
-=====================
-This project implements a USB composite class device that includes
-a mass storage device and a virtual COM device.
-
-To run this example, you must attach a USB cable to the board. See
-the "Getting Started Guide" appendix for details. You may also
-connect the LPCXpresso board to a base board from a 3rd party tool
-partner.
-
-When downloaded to the board and executed, the PC will first recognize
-a USB mass storage device and mount a new drive that contains a text
-file, and then it will recognize a USB "VCOM" device and ask for a
-driver. Point windows to the .inf file in the usbcomp_msd_cdc project
-directory to cause Windows to install the default USB serial driver.
-
-At this point, you should be able to read/write files in the newly
-mounted drive and send/receive characters through the USB virtual
-COM port at the same time. The transmit baud rate will equal the
-CDC port configured baud rate.
-
-One thing we have seen that can cause trouble with the USB examples
-is the Windows driver install. Since the example projects all use
-the same USB Vendor ID and Product ID, if you try out the HID
-example and then try out the CDC example, Windows may try
-to use the HID driver it had already installed with the CDC
-example code. To fix this, go to the Windows Device Manager,
-find the broken "HID" device and select "Uninstall." Then unplug the
-device and plug it back in. Windows should correctly identify the
-device as being a CDC device and install the correct
-driver.
-
-The project makes use of code from the following library projects:
-- CMSISv1p30_LPC13xx : for CMSIS 1.30 files relevant to LPC13xx
-
-This library project must exist in the same workspace in order
-for the project to successfully build.
-
-For more details, read the comments in config.h
diff --git a/firmware/usbcomp_msd_cdc/usbcomp_msd_cdc Debug.launch b/firmware/usbcomp_msd_cdc/usbcomp_msd_cdc Debug.launch
deleted file mode 100644
index ba36d0b..0000000
--- a/firmware/usbcomp_msd_cdc/usbcomp_msd_cdc Debug.launch
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/firmware/usbcomp_msd_cdc/usbcomp_msd_cdc Release.launch b/firmware/usbcomp_msd_cdc/usbcomp_msd_cdc Release.launch
deleted file mode 100644
index 3a6229c..0000000
--- a/firmware/usbcomp_msd_cdc/usbcomp_msd_cdc Release.launch
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-