main while loop: wait for USB
diff --git a/sam3s_example/simtrace/simtrace_main.c b/sam3s_example/simtrace/simtrace_main.c
index 9ab55cc..1a17005 100644
--- a/sam3s_example/simtrace/simtrace_main.c
+++ b/sam3s_example/simtrace/simtrace_main.c
@@ -4,11 +4,11 @@
  *------------------------------------------------------------------------------*/
 
 #include "board.h"
-#include "simtrace.h"
 
 /*------------------------------------------------------------------------------
  *         Internal definitions
  *------------------------------------------------------------------------------*/
+#define CONF_NONE           0
 #define CONF_SNIFFER        1
 #define CONF_CCID_READER    2
 #define CONF_SIMCARD_EMUL   3
@@ -18,10 +18,11 @@
 /*------------------------------------------------------------------------------
  *         Internal variables
  *------------------------------------------------------------------------------*/
-uint8_t simtrace_config = CONF_SNIFFER;
+uint8_t simtrace_config = CONF_NONE;
 uint8_t conf_changed = 1;
 
 uint8_t rcvdChar = 0;
+uint32_t char_stat = 0;
 
 /*------------------------------------------------------------------------------
  *        Main 
@@ -29,6 +30,8 @@
 
 extern int main( void )
 {
+    uint8_t isUsbConnected = 0;
+
     LED_Configure(LED_NUM_GREEN);
     LED_Set(LED_NUM_GREEN);
 
@@ -37,9 +40,32 @@
 
     PIO_InitializeInterrupts(0);
 
+    SIMtrace_USB_Initialize();
+
+    printf("%s", "USB init\n\r");
+
+    while(USBD_GetState() < USBD_STATE_CONFIGURED);
 
     TRACE_DEBUG("%s", "Start\n\r");
+    printf("%s", "Start\n\r");
     while(1) {
+
+            /* Device is not configured */
+        if (USBD_GetState() < USBD_STATE_CONFIGURED) {
+
+            if (isUsbConnected) {
+                isUsbConnected = 0;
+//                TC_Stop(TC0, 0);
+            }
+        }
+        else if (isUsbConnected == 0) {
+            printf("USB is now configured\n\r");
+
+            isUsbConnected = 1;
+//            TC_Start(TC0, 0);
+        }    
+    
+
 /*  FIXME: Or should we move the while loop into every case, and break out
     in case the config changes? */
         switch(simtrace_config) {