index 248cb1e..8508e85 100644
--- a/hardware/teensy/boards.txt
+++ b/hardware/teensy/boards.txt
@@ -146,6 +146,7 @@ teensy3.build.option3=-D__MK20DX128__
teensy3.build.option4=-DTEENSYDUINO=120
teensy3.build.cppoption1=-fno-rtti
teensy3.build.linkoption1=-mthumb
+teensy3.build.linkoption2=-Wl,-Map,map.out
teensy3.build.additionalobject1=-larm_cortexM4l_math
teensy3.build.linkscript=mk20dx128.ld
teensy3.build.architecture=arm-none-eabi
@@ -162,6 +163,8 @@ teensy3.build.dependency=true
teensy3.build.time_t=true
#teensy3.build.linker_relaxation=true
teensy3.build.post_compile_script=teensy_post_compile
+teensy3.menu.usb.none.name=None
+teensy3.menu.usb.none.build.define0=-DUSB_NONE
teensy3.menu.usb.serial.name=Serial
teensy3.menu.usb.serial.build.define0=-DUSB_SERIAL
teensy3.menu.usb.hid.name=Keyboard + Mouse + Joystick
diff --git a/hardware/teensy/cores/teensy3/usb_desc.h b/hardware/teensy/cores/teensy3/usb_desc.h
index c3cf15c..f1240e6 100644
--- a/hardware/teensy/cores/teensy3/usb_desc.h
+++ b/hardware/teensy/cores/teensy3/usb_desc.h
@@ -83,7 +83,27 @@ let me know? http://forum.pjrc.com/forums/4-Suggestions-amp-Bug-Reports
-#if defined(USB_SERIAL)
+#if defined(USB_NONE)
+ #define VENDOR_ID 0x16C0
+ #define PRODUCT_ID 0x0483
+ #define MANUFACTURER_NAME {'T','e','e','n','s','y','d','u','i','n','o'}
+ #define MANUFACTURER_NAME_LEN 11
+ #define PRODUCT_NAME {'U','S','B',' ','F','l','a','s','h'}
+ #define PRODUCT_NAME_LEN 9
+ #define EP0_SIZE 8
+ #define NUM_ENDPOINTS 0
+ #define NUM_USB_BUFFERS 0
+ #define NUM_INTERFACE 2
+ #define CDC_STATUS_INTERFACE 0
+ #define CDC_DATA_INTERFACE 1
+ #define CDC_ACM_ENDPOINT 2
+ #define CDC_RX_ENDPOINT 3
+ #define CDC_TX_ENDPOINT 4
+ #define CDC_ACM_SIZE 16
+ #define CDC_RX_SIZE 64
+ #define CDC_TX_SIZE 64
+ #define CONFIG_DESC_SIZE (9+9+5+5+4+5+7+9+7+7)
+#elif defined(USB_SERIAL)
#define VENDOR_ID 0x16C0
#define PRODUCT_ID 0x0483
#define DEVICE_CLASS 2 // 2 = Communication Class
diff --git a/hardware/teensy/cores/teensy3/yield.cpp b/hardware/teensy/cores/teensy3/yield.cpp
index 55e7d29..16ae996 100644
--- a/hardware/teensy/cores/teensy3/yield.cpp
+++ b/hardware/teensy/cores/teensy3/yield.cpp
@@ -40,7 +40,9 @@ void yield(void)
if (running) return; // TODO: does this need to be atomic?
running = 1;
+#ifdef USB_SERIAL
if (Serial.available()) serialEvent();
+#endif
if (Serial1.available()) serialEvent1();
if (Serial2.available()) serialEvent2();
if (Serial3.available()) serialEvent3();